Loading src/java/com/android/internal/telephony/metrics/MetricsCollector.java +2 −1 Original line number Diff line number Diff line Loading @@ -777,7 +777,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { perSimStatus.minimumVoltageClass, // simVoltageClass perSimStatus.userModifiedApnTypes, // userModifiedApnTypeBitmask perSimStatus.unmeteredNetworks, // unmeteredNetworks perSimStatus.vonrEnabled); // vonrEnabled perSimStatus.vonrEnabled, // vonrEnabled perSimStatus.crossSimCallingEnabled); // crossSimCallingEnabled data.add(statsEvent); result = StatsManager.PULL_SUCCESS; } Loading src/java/com/android/internal/telephony/metrics/PerSimStatus.java +27 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.annotation.Nullable; import android.database.Cursor; import android.net.Uri; import android.provider.Telephony; import android.telephony.AnomalyReporter; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; Loading @@ -46,9 +47,14 @@ import com.android.internal.telephony.subscription.SubscriptionInfoInternal; import com.android.internal.telephony.subscription.SubscriptionManagerService; import com.android.internal.telephony.uicc.UiccController; import com.android.internal.telephony.uicc.UiccSlot; import com.android.telephony.Rlog; import java.util.UUID; /** Stores the per SIM status. */ public class PerSimStatus { private static final String TAG = "PerSimStatus"; private static final long BITMASK_2G = TelephonyManager.NETWORK_TYPE_BITMASK_GSM | TelephonyManager.NETWORK_TYPE_BITMASK_GPRS Loading @@ -56,6 +62,9 @@ public class PerSimStatus { | TelephonyManager.NETWORK_TYPE_BITMASK_CDMA | TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT; private static final UUID CROSS_SIM_CALLING_STATUS_ANOMALY_UUID = UUID.fromString("377e1a33-d4ac-4039-9cc0-f0d8396757f3"); public final int carrierId; public final int phoneNumberSourceUicc; public final int phoneNumberSourceCarrier; Loading @@ -74,6 +83,8 @@ public class PerSimStatus { public final long unmeteredNetworks; public final boolean vonrEnabled; public final boolean crossSimCallingEnabled; /** Returns the current sim status of the given {@link Phone}. */ @Nullable public static PerSimStatus getCurrentState(Phone phone) { Loading Loading @@ -105,7 +116,8 @@ public class PerSimStatus { getMinimumVoltageClass(phone), getUserModifiedApnTypes(phone), persistAtomsStorage.getUnmeteredNetworks(phone.getPhoneId(), carrierId), isVonrEnabled(phone)); isVonrEnabled(phone), isCrossSimCallingEnabled(imsMmTelManager)); } private PerSimStatus( Loading @@ -125,7 +137,8 @@ public class PerSimStatus { int minimumVoltageClass, int userModifiedApnTypes, long unmeteredNetworks, boolean vonrEnabled) { boolean vonrEnabled, boolean crossSimCallingEnabled) { this.carrierId = carrierId; this.phoneNumberSourceUicc = phoneNumberSourceUicc; this.phoneNumberSourceCarrier = phoneNumberSourceCarrier; Loading @@ -143,6 +156,18 @@ public class PerSimStatus { this.userModifiedApnTypes = userModifiedApnTypes; this.unmeteredNetworks = unmeteredNetworks; this.vonrEnabled = vonrEnabled; this.crossSimCallingEnabled = crossSimCallingEnabled; } private static boolean isCrossSimCallingEnabled(ImsMmTelManager imsMmTelManager) { try { return imsMmTelManager != null && imsMmTelManager.isCrossSimCallingEnabled(); } catch (Exception e) { AnomalyReporter.reportAnomaly(CROSS_SIM_CALLING_STATUS_ANOMALY_UUID, "Failed to query ImsMmTelManager for cross-SIM calling status!"); Rlog.e(TAG, e.getMessage()); } return false; } @Nullable Loading tests/telephonytests/src/com/android/internal/telephony/metrics/PerSimStatusTest.java +8 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ public class PerSimStatusTest extends TelephonyTest { .when(imsMmTelManager1) .getVoWiFiRoamingModeSetting(); doReturn(false).when(imsMmTelManager1).isVtSettingEnabled(); doReturn(true).when(imsMmTelManager1).isCrossSimCallingEnabled(); doReturn(false).when(mPhone).getDataRoamingEnabled(); doReturn(1L) .when(mPhone) Loading Loading @@ -152,6 +153,7 @@ public class PerSimStatusTest extends TelephonyTest { .when(imsMmTelManager2) .getVoWiFiRoamingModeSetting(); doReturn(true).when(imsMmTelManager2).isVtSettingEnabled(); doReturn(false).when(imsMmTelManager2).isCrossSimCallingEnabled(); doReturn(false).when(mSecondPhone).getDataRoamingEnabled(); doReturn(1L) .when(mSecondPhone) Loading Loading @@ -191,6 +193,8 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus1.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus1.unmeteredNetworks); assertEquals(false, perSimStatus1.vonrEnabled); assertEquals(true, perSimStatus1.crossSimCallingEnabled); assertEquals(101, perSimStatus2.carrierId); assertEquals(1, perSimStatus2.phoneNumberSourceUicc); assertEquals(2, perSimStatus2.phoneNumberSourceCarrier); Loading @@ -210,6 +214,7 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus2.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus2.unmeteredNetworks); assertEquals(false, perSimStatus2.vonrEnabled); assertEquals(false, perSimStatus2.crossSimCallingEnabled); } @Test Loading Loading @@ -279,6 +284,7 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks); assertEquals(true, perSimStatus.vonrEnabled); assertEquals(false, perSimStatus.crossSimCallingEnabled); } @Test Loading Loading @@ -340,6 +346,7 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks); assertEquals(true, perSimStatus.vonrEnabled); assertEquals(false, perSimStatus.crossSimCallingEnabled); } @Test Loading Loading @@ -397,5 +404,6 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks); assertEquals(true, perSimStatus.vonrEnabled); assertEquals(false, perSimStatus.crossSimCallingEnabled); } } Loading
src/java/com/android/internal/telephony/metrics/MetricsCollector.java +2 −1 Original line number Diff line number Diff line Loading @@ -777,7 +777,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback { perSimStatus.minimumVoltageClass, // simVoltageClass perSimStatus.userModifiedApnTypes, // userModifiedApnTypeBitmask perSimStatus.unmeteredNetworks, // unmeteredNetworks perSimStatus.vonrEnabled); // vonrEnabled perSimStatus.vonrEnabled, // vonrEnabled perSimStatus.crossSimCallingEnabled); // crossSimCallingEnabled data.add(statsEvent); result = StatsManager.PULL_SUCCESS; } Loading
src/java/com/android/internal/telephony/metrics/PerSimStatus.java +27 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.annotation.Nullable; import android.database.Cursor; import android.net.Uri; import android.provider.Telephony; import android.telephony.AnomalyReporter; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; Loading @@ -46,9 +47,14 @@ import com.android.internal.telephony.subscription.SubscriptionInfoInternal; import com.android.internal.telephony.subscription.SubscriptionManagerService; import com.android.internal.telephony.uicc.UiccController; import com.android.internal.telephony.uicc.UiccSlot; import com.android.telephony.Rlog; import java.util.UUID; /** Stores the per SIM status. */ public class PerSimStatus { private static final String TAG = "PerSimStatus"; private static final long BITMASK_2G = TelephonyManager.NETWORK_TYPE_BITMASK_GSM | TelephonyManager.NETWORK_TYPE_BITMASK_GPRS Loading @@ -56,6 +62,9 @@ public class PerSimStatus { | TelephonyManager.NETWORK_TYPE_BITMASK_CDMA | TelephonyManager.NETWORK_TYPE_BITMASK_1xRTT; private static final UUID CROSS_SIM_CALLING_STATUS_ANOMALY_UUID = UUID.fromString("377e1a33-d4ac-4039-9cc0-f0d8396757f3"); public final int carrierId; public final int phoneNumberSourceUicc; public final int phoneNumberSourceCarrier; Loading @@ -74,6 +83,8 @@ public class PerSimStatus { public final long unmeteredNetworks; public final boolean vonrEnabled; public final boolean crossSimCallingEnabled; /** Returns the current sim status of the given {@link Phone}. */ @Nullable public static PerSimStatus getCurrentState(Phone phone) { Loading Loading @@ -105,7 +116,8 @@ public class PerSimStatus { getMinimumVoltageClass(phone), getUserModifiedApnTypes(phone), persistAtomsStorage.getUnmeteredNetworks(phone.getPhoneId(), carrierId), isVonrEnabled(phone)); isVonrEnabled(phone), isCrossSimCallingEnabled(imsMmTelManager)); } private PerSimStatus( Loading @@ -125,7 +137,8 @@ public class PerSimStatus { int minimumVoltageClass, int userModifiedApnTypes, long unmeteredNetworks, boolean vonrEnabled) { boolean vonrEnabled, boolean crossSimCallingEnabled) { this.carrierId = carrierId; this.phoneNumberSourceUicc = phoneNumberSourceUicc; this.phoneNumberSourceCarrier = phoneNumberSourceCarrier; Loading @@ -143,6 +156,18 @@ public class PerSimStatus { this.userModifiedApnTypes = userModifiedApnTypes; this.unmeteredNetworks = unmeteredNetworks; this.vonrEnabled = vonrEnabled; this.crossSimCallingEnabled = crossSimCallingEnabled; } private static boolean isCrossSimCallingEnabled(ImsMmTelManager imsMmTelManager) { try { return imsMmTelManager != null && imsMmTelManager.isCrossSimCallingEnabled(); } catch (Exception e) { AnomalyReporter.reportAnomaly(CROSS_SIM_CALLING_STATUS_ANOMALY_UUID, "Failed to query ImsMmTelManager for cross-SIM calling status!"); Rlog.e(TAG, e.getMessage()); } return false; } @Nullable Loading
tests/telephonytests/src/com/android/internal/telephony/metrics/PerSimStatusTest.java +8 −0 Original line number Diff line number Diff line Loading @@ -107,6 +107,7 @@ public class PerSimStatusTest extends TelephonyTest { .when(imsMmTelManager1) .getVoWiFiRoamingModeSetting(); doReturn(false).when(imsMmTelManager1).isVtSettingEnabled(); doReturn(true).when(imsMmTelManager1).isCrossSimCallingEnabled(); doReturn(false).when(mPhone).getDataRoamingEnabled(); doReturn(1L) .when(mPhone) Loading Loading @@ -152,6 +153,7 @@ public class PerSimStatusTest extends TelephonyTest { .when(imsMmTelManager2) .getVoWiFiRoamingModeSetting(); doReturn(true).when(imsMmTelManager2).isVtSettingEnabled(); doReturn(false).when(imsMmTelManager2).isCrossSimCallingEnabled(); doReturn(false).when(mSecondPhone).getDataRoamingEnabled(); doReturn(1L) .when(mSecondPhone) Loading Loading @@ -191,6 +193,8 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus1.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus1.unmeteredNetworks); assertEquals(false, perSimStatus1.vonrEnabled); assertEquals(true, perSimStatus1.crossSimCallingEnabled); assertEquals(101, perSimStatus2.carrierId); assertEquals(1, perSimStatus2.phoneNumberSourceUicc); assertEquals(2, perSimStatus2.phoneNumberSourceCarrier); Loading @@ -210,6 +214,7 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus2.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus2.unmeteredNetworks); assertEquals(false, perSimStatus2.vonrEnabled); assertEquals(false, perSimStatus2.crossSimCallingEnabled); } @Test Loading Loading @@ -279,6 +284,7 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks); assertEquals(true, perSimStatus.vonrEnabled); assertEquals(false, perSimStatus.crossSimCallingEnabled); } @Test Loading Loading @@ -340,6 +346,7 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks); assertEquals(true, perSimStatus.vonrEnabled); assertEquals(false, perSimStatus.crossSimCallingEnabled); } @Test Loading Loading @@ -397,5 +404,6 @@ public class PerSimStatusTest extends TelephonyTest { perSimStatus.minimumVoltageClass); assertEquals(NETWORK_TYPE_BITMASK_GSM, perSimStatus.unmeteredNetworks); assertEquals(true, perSimStatus.vonrEnabled); assertEquals(false, perSimStatus.crossSimCallingEnabled); } }