summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLing Ma <linggm@google.com>2022-12-09 16:40:23 -0800
committerLing Ma <linggm@google.com>2022-12-28 11:22:55 -0800
commit150eda2af9b867e3fe320fa8a79dc9b0bc7abbd9 (patch)
tree3b4e572633f28d0b2b22bcdfdb94e1ccf76215a7
parentedeba1892921baba8961b051a1ce941ca60bde7a (diff)
downloadMms-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
-rw-r--r--proto/src/persist_mms_atoms.proto4
-rw-r--r--src/com/android/mms/service/metrics/MmsMetricsCollector.java6
-rw-r--r--src/com/android/mms/service/metrics/MmsStats.java15
-rw-r--r--tests/unittests/src/com/android/mms/service/metrics/MmsStatsTest.java2
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);
}