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

Commit 6181e256 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Gracefully handle subscription id not existing case" into udc-dev

parents 9fd25683 cd4ae07a
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -5160,14 +5160,24 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
    }

    /**
     * @return UserHandle from phone sub id, or null if subscription is invalid.
     * @return User handle associated with the phone's subscription id. {@code null} if subscription
     * is invalid or not found.
     */
    @Nullable
    public UserHandle getUserHandle() {
        SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
        int subId = getSubId();
        return subManager.isValidSubscriptionId(subId)
                ? subManager.getSubscriptionUserHandle(subId)
                : null;

        UserHandle userHandle = null;
        try {
            SubscriptionManager subManager = mContext.getSystemService(SubscriptionManager.class);
            if (subManager != null) {
                userHandle = subManager.getSubscriptionUserHandle(subId);
            }
        } catch (IllegalArgumentException ex) {
            loge("getUserHandle: ex=" + ex);
        }

        return userHandle;
    }

    /**
+15 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ import android.os.Handler;
import android.os.Message;
import android.os.PersistableBundle;
import android.os.Process;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.WorkSource;
import android.preference.PreferenceManager;
@@ -2574,4 +2575,18 @@ public class GsmCdmaPhoneTest extends TelephonyTest {

        verify(est).exitEmergencyCallbackMode();
    }

    @Test
    public void testGetUserHandle() {
        UserHandle userHandle = new UserHandle(123);
        doReturn(userHandle).when(mSubscriptionManager).getSubscriptionUserHandle(anyInt());
        assertEquals(userHandle, mPhoneUT.getUserHandle());

        doReturn(null).when(mSubscriptionManager).getSubscriptionUserHandle(anyInt());
        assertNull(mPhoneUT.getUserHandle());

        doThrow(IllegalArgumentException.class).when(mSubscriptionManager)
                .getSubscriptionUserHandle(anyInt());
        assertNull(mPhoneUT.getUserHandle());
    }
}