Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c20a57f authored by Aishwarya Mallampati's avatar Aishwarya Mallampati Committed by Automerger Merge Worker
Browse files

Added resource overlay flag to enable/disable getSubscriptionUserHandle am:...

Added resource overlay flag to enable/disable getSubscriptionUserHandle am: 60892c9e am: 443d146a

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/2499716



Change-Id: I5b140b7ff326cd670c0f9f7b932916cbc16c6743
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents a0b0880a 443d146a
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -4814,9 +4814,15 @@ public class SubscriptionController extends ISub.Stub {
     * @throws IllegalArgumentException if subId is invalid.
     */
    @Override
    @Nullable
    public UserHandle getSubscriptionUserHandle(int subId) {
        enforceManageSubscriptionUserAssociation("getSubscriptionUserHandle");

        if (!mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_enable_get_subscription_user_handle)) {
            return null;
        }

        long token = Binder.clearCallingIdentity();
        try {
            String userHandleStr = getSubscriptionProperty(subId, SubscriptionManager.USER_HANDLE);
+6 −0
Original line number Diff line number Diff line
@@ -2988,11 +2988,17 @@ public class SubscriptionManagerService extends ISub.Stub {
     * @throws IllegalArgumentException if {@code subId} is invalid.
     */
    @Override
    @Nullable
    @RequiresPermission(Manifest.permission.MANAGE_SUBSCRIPTION_USER_ASSOCIATION)
    public UserHandle getSubscriptionUserHandle(int subId) {
        enforcePermissions("getSubscriptionUserHandle",
                Manifest.permission.MANAGE_SUBSCRIPTION_USER_ASSOCIATION);

        if (!mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_enable_get_subscription_user_handle)) {
            return null;
        }

        long token = Binder.clearCallingIdentity();
        try {
            SubscriptionInfoInternal subInfo = mSubscriptionDatabaseManager
+16 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -2140,6 +2141,7 @@ public class SubscriptionControllerTest extends TelephonyTest {
    @Test
    public void setSubscriptionUserHandle_withoutPermission() {
        testInsertSim();
        enableGetSubscriptionUserHandle();
        /* Get SUB ID */
        int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
        assertTrue(subIds != null && subIds.length != 0);
@@ -2154,6 +2156,7 @@ public class SubscriptionControllerTest extends TelephonyTest {
    @Test
    public void setGetSubscriptionUserHandle_userHandleNull() {
        testInsertSim();
        enableGetSubscriptionUserHandle();
        /* Get SUB ID */
        int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
        assertTrue(subIds != null && subIds.length != 0);
@@ -2167,6 +2170,8 @@ public class SubscriptionControllerTest extends TelephonyTest {

    @Test
    public void setSubscriptionUserHandle_invalidSubId() {
        enableGetSubscriptionUserHandle();

        assertThrows(IllegalArgumentException.class,
                () -> mSubscriptionControllerUT.setSubscriptionUserHandle(
                        UserHandle.of(UserHandle.USER_SYSTEM),
@@ -2176,6 +2181,7 @@ public class SubscriptionControllerTest extends TelephonyTest {
    @Test
    public void setGetSubscriptionUserHandle_withValidUserHandleAndSubId() {
        testInsertSim();
        enableGetSubscriptionUserHandle();
        /* Get SUB ID */
        int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
        assertTrue(subIds != null && subIds.length != 0);
@@ -2191,6 +2197,7 @@ public class SubscriptionControllerTest extends TelephonyTest {
    @Test
    public void getSubscriptionUserHandle_withoutPermission() {
        testInsertSim();
        enableGetSubscriptionUserHandle();
        /* Get SUB ID */
        int[] subIds = mSubscriptionControllerUT.getActiveSubIdList(/*visibleOnly*/false);
        assertTrue(subIds != null && subIds.length != 0);
@@ -2203,8 +2210,17 @@ public class SubscriptionControllerTest extends TelephonyTest {

    @Test
    public void getSubscriptionUserHandle_invalidSubId() {
        enableGetSubscriptionUserHandle();

        assertThrows(IllegalArgumentException.class,
                () -> mSubscriptionControllerUT.getSubscriptionUserHandle(
                        SubscriptionManager.DEFAULT_SUBSCRIPTION_ID));
    }

    private void enableGetSubscriptionUserHandle() {
        Resources mResources = mock(Resources.class);
        doReturn(true).when(mResources).getBoolean(
                eq(com.android.internal.R.bool.config_enable_get_subscription_user_handle));
        doReturn(mResources).when(mContext).getResources();
    }
}
 No newline at end of file
+6 −1
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import android.app.PropertyInvalidatedCache;
import android.compat.testing.PlatformCompatChangeRule;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
@@ -916,8 +917,12 @@ public class SubscriptionManagerServiceTest extends TelephonyTest {
    @Test
    public void testSetGetSubscriptionUserHandle() {
        insertSubscription(FAKE_SUBSCRIPTION_INFO1);
        Resources mResources = Mockito.mock(Resources.class);
        doReturn(true).when(mResources).getBoolean(
                eq(com.android.internal.R.bool.config_enable_get_subscription_user_handle));
        doReturn(mResources).when(mContext).getResources();

        // Should fail without MODIFY_PHONE_STATE
        // Should fail without MANAGE_SUBSCRIPTION_USER_ASSOCIATION
        assertThrows(SecurityException.class, () -> mSubscriptionManagerServiceUT
                .setSubscriptionUserHandle(new UserHandle(12), 1));