diff options
author | Ling Ma <linggm@google.com> | 2022-12-09 16:40:23 -0800 |
---|---|---|
committer | Ling Ma <linggm@google.com> | 2022-12-28 11:22:55 -0800 |
commit | 150eda2af9b867e3fe320fa8a79dc9b0bc7abbd9 (patch) | |
tree | 3b4e572633f28d0b2b22bcdfdb94e1ccf76215a7 | |
parent | edeba1892921baba8961b051a1ce941ca60bde7a (diff) | |
download | Mms-150eda2af9b867e3fe320fa8a79dc9b0bc7abbd9.tar.gz |
Add MMS metrics for work profile
Track wherether the MMS is sent/received by a sub that's tied to work
profile
Bug: 261776686
Test: sample: https://paste.googleplex.com/5336247844208640
Change-Id: If2556fff36844ebf391016ece05ecf9d80339087
4 files changed, 23 insertions, 4 deletions
diff --git a/proto/src/persist_mms_atoms.proto b/proto/src/persist_mms_atoms.proto index c562246..bde1cb9 100644 --- a/proto/src/persist_mms_atoms.proto +++ b/proto/src/persist_mms_atoms.proto @@ -50,6 +50,7 @@ message IncomingMms { optional int64 mms_count = 9; optional int32 retry_id = 10; optional bool handled_by_carrier_app = 11; + optional bool is_managed_profile = 12; } message OutgoingMms { @@ -65,4 +66,5 @@ message OutgoingMms { optional bool is_from_default_app = 10; optional int32 retry_id = 11; optional bool handled_by_carrier_app = 12; -}
\ No newline at end of file + optional bool is_managed_profile = 13; +} diff --git a/src/com/android/mms/service/metrics/MmsMetricsCollector.java b/src/com/android/mms/service/metrics/MmsMetricsCollector.java index f20d61a..8da61ba 100644 --- a/src/com/android/mms/service/metrics/MmsMetricsCollector.java +++ b/src/com/android/mms/service/metrics/MmsMetricsCollector.java @@ -90,7 +90,8 @@ public class MmsMetricsCollector implements StatsManager.StatsPullAtomCallback { mms.getAvgIntervalMillis(), mms.getMmsCount(), mms.getRetryId(), - mms.getHandledByCarrierApp()); + mms.getHandledByCarrierApp(), + mms.getIsManagedProfile()); } private static StatsEvent buildStatsEvent(OutgoingMms mms) { @@ -107,7 +108,8 @@ public class MmsMetricsCollector implements StatsManager.StatsPullAtomCallback { mms.getMmsCount(), mms.getIsFromDefaultApp(), mms.getRetryId(), - mms.getHandledByCarrierApp()); + mms.getHandledByCarrierApp(), + mms.getIsManagedProfile()); } @Override diff --git a/src/com/android/mms/service/metrics/MmsStats.java b/src/com/android/mms/service/metrics/MmsStats.java index 9495edb..7e98b0b 100644 --- a/src/com/android/mms/service/metrics/MmsStats.java +++ b/src/com/android/mms/service/metrics/MmsStats.java @@ -26,6 +26,7 @@ import android.content.Context; import android.os.Binder; import android.os.SystemClock; import android.os.UserHandle; +import android.os.UserManager; import android.telephony.ServiceState; import android.telephony.SmsManager; import android.telephony.SubscriptionInfo; @@ -101,6 +102,7 @@ public class MmsStats { .setMmsCount(1) .setRetryId(retryId) .setHandledByCarrierApp(handledByCarrierApp) + .setIsManagedProfile(isManagedProfile()) .build(); mPersistMmsAtomsStorage.addIncomingMms(incomingMms); } @@ -120,10 +122,21 @@ public class MmsStats { .setIsFromDefaultApp(isDefaultMmsApp()) .setRetryId(retryId) .setHandledByCarrierApp(handledByCarrierApp) + .setIsManagedProfile(isManagedProfile()) .build(); mPersistMmsAtomsStorage.addOutgoingMms(outgoingMms); } + /** @return {@code true} if this SIM is dedicated to work profile */ + private boolean isManagedProfile() { + SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class); + if (subManager == null || !subManager.isActiveSubscriptionId(mSubId)) return false; + UserHandle userHandle = subManager.getSubscriptionUserHandle(mSubId); + UserManager userManager = mContext.getSystemService(UserManager.class); + if (userHandle == null || userManager == null) return false; + return userManager.isManagedProfile(userHandle.getIdentifier()); + } + /** Returns data network type of current subscription. */ private int getDataNetworkType() { return mTelephonyManager.getDataNetworkType(); @@ -216,4 +229,4 @@ public class MmsStats { private long getInterval() { return (SystemClock.elapsedRealtime() - mTimestamp); } -}
\ No newline at end of file +} diff --git a/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java b/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java index a91d0c8..2b2cae5 100644 --- a/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java +++ b/tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java @@ -91,6 +91,7 @@ public class MmsStatsTest { assertThat(incomingMms.getMmsCount()).isEqualTo(1); assertThat(incomingMms.getRetryId()).isEqualTo(0); assertThat(incomingMms.getHandledByCarrierApp()).isEqualTo(false); + assertThat(incomingMms.getIsManagedProfile()).isEqualTo(false); verifyNoMoreInteractions(mPersistMmsAtomsStorage); } @@ -118,6 +119,7 @@ public class MmsStatsTest { assertThat(outgoingMms.getRetryId()).isEqualTo(0); assertThat(outgoingMms.getHandledByCarrierApp()).isEqualTo(false); assertThat(outgoingMms.getIsFromDefaultApp()).isEqualTo(false); + assertThat(outgoingMms.getIsManagedProfile()).isEqualTo(false); verifyNoMoreInteractions(mPersistMmsAtomsStorage); } |