Loading src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +5 −1 Original line number Diff line number Diff line Loading @@ -933,9 +933,13 @@ public class SubscriptionManagerService extends ISub.Stub { * * @param subId Subscription id. * @param groupOwner The group owner to assign to the subscription * * @throws SecurityException if the caller does not have required permissions. */ @Override @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) public void setGroupOwner(int subId, @NonNull String groupOwner) { // This can throw IllegalArgumentException if the subscription does not exist. enforcePermissions("setGroupOwner", Manifest.permission.MODIFY_PHONE_STATE); try { mSubscriptionDatabaseManager.setGroupOwner( subId, Loading tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +18 −4 Original line number Diff line number Diff line Loading @@ -425,20 +425,34 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { @Test public void testSetAdminOwned() { mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); mSubscriptionManagerServiceUT.addSubInfo(FAKE_ICCID1, FAKE_CARRIER_NAME1, 0, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM); mSubscriptionManagerServiceUT.addSubInfo(FAKE_ICCID1, FAKE_CARRIER_NAME1, 0, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM); processAllMessages(); String groupOwner = "test"; mSubscriptionManagerServiceUT.setGroupOwner(1, groupOwner); SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT .getSubscriptionInfoInternal(1); SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT.getSubscriptionInfoInternal(1); assertThat(subInfo).isNotNull(); assertThat(subInfo.getGroupOwner()).isEqualTo(groupOwner); verify(mMockedSubscriptionManagerServiceCallback).onSubscriptionChanged(eq(1)); } @Test public void testSetGroupOwner_callerMissingpPermission_throws() { mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); mSubscriptionManagerServiceUT.addSubInfo(FAKE_ICCID1, FAKE_CARRIER_NAME1, 0, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM); processAllMessages(); String groupOwner = "test"; // Remove MODIFY_PHONE_STATE mContextFixture.removeCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); assertThrows(SecurityException.class, () -> mSubscriptionManagerServiceUT.setGroupOwner(1, groupOwner)); } @Test @DisableCompatChanges({TelephonyManager.ENABLE_FEATURE_MAPPING}) public void testSetPhoneNumber() { Loading Loading
src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +5 −1 Original line number Diff line number Diff line Loading @@ -933,9 +933,13 @@ public class SubscriptionManagerService extends ISub.Stub { * * @param subId Subscription id. * @param groupOwner The group owner to assign to the subscription * * @throws SecurityException if the caller does not have required permissions. */ @Override @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) public void setGroupOwner(int subId, @NonNull String groupOwner) { // This can throw IllegalArgumentException if the subscription does not exist. enforcePermissions("setGroupOwner", Manifest.permission.MODIFY_PHONE_STATE); try { mSubscriptionDatabaseManager.setGroupOwner( subId, Loading
tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +18 −4 Original line number Diff line number Diff line Loading @@ -425,20 +425,34 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { @Test public void testSetAdminOwned() { mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); mSubscriptionManagerServiceUT.addSubInfo(FAKE_ICCID1, FAKE_CARRIER_NAME1, 0, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM); mSubscriptionManagerServiceUT.addSubInfo(FAKE_ICCID1, FAKE_CARRIER_NAME1, 0, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM); processAllMessages(); String groupOwner = "test"; mSubscriptionManagerServiceUT.setGroupOwner(1, groupOwner); SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT .getSubscriptionInfoInternal(1); SubscriptionInfoInternal subInfo = mSubscriptionManagerServiceUT.getSubscriptionInfoInternal(1); assertThat(subInfo).isNotNull(); assertThat(subInfo.getGroupOwner()).isEqualTo(groupOwner); verify(mMockedSubscriptionManagerServiceCallback).onSubscriptionChanged(eq(1)); } @Test public void testSetGroupOwner_callerMissingpPermission_throws() { mContextFixture.addCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); mSubscriptionManagerServiceUT.addSubInfo(FAKE_ICCID1, FAKE_CARRIER_NAME1, 0, SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM); processAllMessages(); String groupOwner = "test"; // Remove MODIFY_PHONE_STATE mContextFixture.removeCallingOrSelfPermission(Manifest.permission.MODIFY_PHONE_STATE); assertThrows(SecurityException.class, () -> mSubscriptionManagerServiceUT.setGroupOwner(1, groupOwner)); } @Test @DisableCompatChanges({TelephonyManager.ENABLE_FEATURE_MAPPING}) public void testSetPhoneNumber() { Loading