Loading src/java/com/android/internal/telephony/SubscriptionController.java +19 −2 Original line number Diff line number Diff line Loading @@ -318,6 +318,8 @@ public class SubscriptionController extends ISub.Stub { SubscriptionManager.IS_OPPORTUNISTIC)) == 1; String groupUUID = cursor.getString(cursor.getColumnIndexOrThrow( SubscriptionManager.GROUP_UUID)); boolean isMetered = cursor.getInt(cursor.getColumnIndexOrThrow( SubscriptionManager.IS_METERED)) == 1; if (VDBG) { String iccIdToPrint = SubscriptionInfo.givePrintableIccid(iccId); Loading @@ -328,7 +330,7 @@ public class SubscriptionController extends ISub.Stub { + " mcc:" + mcc + " mnc:" + mnc + " countIso:" + countryIso + " isEmbedded:" + isEmbedded + " accessRules:" + Arrays.toString(accessRules) + " cardId:" + cardIdToPrint + " isOpportunistic:" + isOpportunistic + " groupUUID:" + groupUUID); + " groupUUID:" + groupUUID + " isMetered:" + isMetered); } // If line1number has been set to a different number, use it instead. Loading @@ -338,7 +340,7 @@ public class SubscriptionController extends ISub.Stub { } return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso, isEmbedded, accessRules, cardId, isOpportunistic, groupUUID); isEmbedded, accessRules, cardId, isOpportunistic, groupUUID, isMetered); } /** Loading Loading @@ -2028,6 +2030,7 @@ public class SubscriptionController extends ISub.Stub { case SubscriptionManager.CB_OPT_OUT_DIALOG: case SubscriptionManager.ENHANCED_4G_MODE_ENABLED: case SubscriptionManager.IS_OPPORTUNISTIC: case SubscriptionManager.IS_METERED: case SubscriptionManager.VT_IMS_ENABLED: case SubscriptionManager.WFC_IMS_ENABLED: case SubscriptionManager.WFC_IMS_MODE: Loading Loading @@ -2088,6 +2091,7 @@ public class SubscriptionController extends ISub.Stub { case SubscriptionManager.WFC_IMS_ROAMING_ENABLED: case SubscriptionManager.IS_OPPORTUNISTIC: case SubscriptionManager.GROUP_UUID: case SubscriptionManager.IS_METERED: resultValue = cursor.getInt(0) + ""; break; default: Loading Loading @@ -2239,6 +2243,19 @@ public class SubscriptionController extends ISub.Stub { String.valueOf(opportunistic ? 1 : 0)); } /** * Set whether a subscription is metered * * @param isMetered whether it’s a metered subscription. * @param subId the unique SubscriptionInfo index in database * @return the number of records updated */ @Override public int setMetered(boolean isMetered, int subId) { return setSubscriptionProperty(subId, SubscriptionManager.IS_METERED, String.valueOf(isMetered ? 1 : 0)); } @Override public int setPreferredData(int subId) { enforceModifyPhoneState("setPreferredData"); Loading tests/telephonytests/src/com/android/internal/telephony/FakeTelephonyProvider.java +2 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,8 @@ public class FakeTelephonyProvider extends MockContentProvider { + SubscriptionManager.WFC_IMS_ROAMING_MODE + " INTEGER DEFAULT -1," + SubscriptionManager.WFC_IMS_ROAMING_ENABLED + " INTEGER DEFAULT -1," + SubscriptionManager.IS_OPPORTUNISTIC + " INTEGER DEFAULT 0," + SubscriptionManager.GROUP_UUID + " TEXT" + SubscriptionManager.GROUP_UUID + " TEXT," + SubscriptionManager.IS_METERED + " INTEGER DEFAULT 1" + ");"; } Loading tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java +12 −3 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class SubscriptionControllerTest extends TelephonyTest { String disName = "TESTING"; String disNum = "12345"; boolean isOpportunistic = true; boolean isMetered = false; testInsertSim(); /* Get SUB ID */ Loading @@ -142,22 +143,30 @@ public class SubscriptionControllerTest extends TelephonyTest { assertTrue(subIds != null && subIds.length != 0); int subID = subIds[0]; /* Getting, there is no direct getter function for each fields of property */ SubscriptionInfo subInfo = mSubscriptionControllerUT .getActiveSubscriptionInfo(subID, mCallingPackage); //isMetered should initialize as true assertTrue(subInfo.isMetered()); /* Setting */ mSubscriptionControllerUT.setDisplayName(disName, subID); mSubscriptionControllerUT.setDataRoaming(dataRoaming, subID); mSubscriptionControllerUT.setDisplayNumber(disNum, subID); mSubscriptionControllerUT.setIconTint(iconTint, subID); mSubscriptionControllerUT.setOpportunistic(isOpportunistic, subID); mSubscriptionControllerUT.setMetered(isMetered, subID); /* Getting, there is no direct getter function for each fields of property */ SubscriptionInfo subInfo = mSubscriptionControllerUT subInfo = mSubscriptionControllerUT .getActiveSubscriptionInfo(subID, mCallingPackage); assertNotNull(subInfo); assertEquals(dataRoaming, subInfo.getDataRoaming()); assertEquals(disName, subInfo.getDisplayName()); assertEquals(iconTint, subInfo.getIconTint()); assertEquals(disNum, subInfo.getNumber()); assertEquals(isOpportunistic, subInfo.isOpportunistic()); assertEquals(isMetered, subInfo.isMetered()); /* verify broadcast intent */ ArgumentCaptor<Intent> captorIntent = ArgumentCaptor.forClass(Intent.class); Loading Loading
src/java/com/android/internal/telephony/SubscriptionController.java +19 −2 Original line number Diff line number Diff line Loading @@ -318,6 +318,8 @@ public class SubscriptionController extends ISub.Stub { SubscriptionManager.IS_OPPORTUNISTIC)) == 1; String groupUUID = cursor.getString(cursor.getColumnIndexOrThrow( SubscriptionManager.GROUP_UUID)); boolean isMetered = cursor.getInt(cursor.getColumnIndexOrThrow( SubscriptionManager.IS_METERED)) == 1; if (VDBG) { String iccIdToPrint = SubscriptionInfo.givePrintableIccid(iccId); Loading @@ -328,7 +330,7 @@ public class SubscriptionController extends ISub.Stub { + " mcc:" + mcc + " mnc:" + mnc + " countIso:" + countryIso + " isEmbedded:" + isEmbedded + " accessRules:" + Arrays.toString(accessRules) + " cardId:" + cardIdToPrint + " isOpportunistic:" + isOpportunistic + " groupUUID:" + groupUUID); + " groupUUID:" + groupUUID + " isMetered:" + isMetered); } // If line1number has been set to a different number, use it instead. Loading @@ -338,7 +340,7 @@ public class SubscriptionController extends ISub.Stub { } return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso, isEmbedded, accessRules, cardId, isOpportunistic, groupUUID); isEmbedded, accessRules, cardId, isOpportunistic, groupUUID, isMetered); } /** Loading Loading @@ -2028,6 +2030,7 @@ public class SubscriptionController extends ISub.Stub { case SubscriptionManager.CB_OPT_OUT_DIALOG: case SubscriptionManager.ENHANCED_4G_MODE_ENABLED: case SubscriptionManager.IS_OPPORTUNISTIC: case SubscriptionManager.IS_METERED: case SubscriptionManager.VT_IMS_ENABLED: case SubscriptionManager.WFC_IMS_ENABLED: case SubscriptionManager.WFC_IMS_MODE: Loading Loading @@ -2088,6 +2091,7 @@ public class SubscriptionController extends ISub.Stub { case SubscriptionManager.WFC_IMS_ROAMING_ENABLED: case SubscriptionManager.IS_OPPORTUNISTIC: case SubscriptionManager.GROUP_UUID: case SubscriptionManager.IS_METERED: resultValue = cursor.getInt(0) + ""; break; default: Loading Loading @@ -2239,6 +2243,19 @@ public class SubscriptionController extends ISub.Stub { String.valueOf(opportunistic ? 1 : 0)); } /** * Set whether a subscription is metered * * @param isMetered whether it’s a metered subscription. * @param subId the unique SubscriptionInfo index in database * @return the number of records updated */ @Override public int setMetered(boolean isMetered, int subId) { return setSubscriptionProperty(subId, SubscriptionManager.IS_METERED, String.valueOf(isMetered ? 1 : 0)); } @Override public int setPreferredData(int subId) { enforceModifyPhoneState("setPreferredData"); Loading
tests/telephonytests/src/com/android/internal/telephony/FakeTelephonyProvider.java +2 −1 Original line number Diff line number Diff line Loading @@ -97,7 +97,8 @@ public class FakeTelephonyProvider extends MockContentProvider { + SubscriptionManager.WFC_IMS_ROAMING_MODE + " INTEGER DEFAULT -1," + SubscriptionManager.WFC_IMS_ROAMING_ENABLED + " INTEGER DEFAULT -1," + SubscriptionManager.IS_OPPORTUNISTIC + " INTEGER DEFAULT 0," + SubscriptionManager.GROUP_UUID + " TEXT" + SubscriptionManager.GROUP_UUID + " TEXT," + SubscriptionManager.IS_METERED + " INTEGER DEFAULT 1" + ");"; } Loading
tests/telephonytests/src/com/android/internal/telephony/SubscriptionControllerTest.java +12 −3 Original line number Diff line number Diff line Loading @@ -135,6 +135,7 @@ public class SubscriptionControllerTest extends TelephonyTest { String disName = "TESTING"; String disNum = "12345"; boolean isOpportunistic = true; boolean isMetered = false; testInsertSim(); /* Get SUB ID */ Loading @@ -142,22 +143,30 @@ public class SubscriptionControllerTest extends TelephonyTest { assertTrue(subIds != null && subIds.length != 0); int subID = subIds[0]; /* Getting, there is no direct getter function for each fields of property */ SubscriptionInfo subInfo = mSubscriptionControllerUT .getActiveSubscriptionInfo(subID, mCallingPackage); //isMetered should initialize as true assertTrue(subInfo.isMetered()); /* Setting */ mSubscriptionControllerUT.setDisplayName(disName, subID); mSubscriptionControllerUT.setDataRoaming(dataRoaming, subID); mSubscriptionControllerUT.setDisplayNumber(disNum, subID); mSubscriptionControllerUT.setIconTint(iconTint, subID); mSubscriptionControllerUT.setOpportunistic(isOpportunistic, subID); mSubscriptionControllerUT.setMetered(isMetered, subID); /* Getting, there is no direct getter function for each fields of property */ SubscriptionInfo subInfo = mSubscriptionControllerUT subInfo = mSubscriptionControllerUT .getActiveSubscriptionInfo(subID, mCallingPackage); assertNotNull(subInfo); assertEquals(dataRoaming, subInfo.getDataRoaming()); assertEquals(disName, subInfo.getDisplayName()); assertEquals(iconTint, subInfo.getIconTint()); assertEquals(disNum, subInfo.getNumber()); assertEquals(isOpportunistic, subInfo.isOpportunistic()); assertEquals(isMetered, subInfo.isMetered()); /* verify broadcast intent */ ArgumentCaptor<Intent> captorIntent = ArgumentCaptor.forClass(Intent.class); Loading