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

Commit a4d2bb47 authored by arunvoddu's avatar arunvoddu
Browse files

Moved SmscIdentity to SMSManager also made it SystemApi

Bug: 260577776
Test: atest frameworks/opt/telephony/tests/telephonytests/src/com/android/internal/telephony
Change-Id: I57dcedad1b4f74061c8c86d38cfa076e3867696c
parent 7c9b1e92
Loading
Loading
Loading
Loading
+24 −16
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.app.AppOpsManager;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Binder;
import android.os.Build;
import android.os.RemoteException;
@@ -624,27 +625,34 @@ public class PhoneSubInfoController extends IPhoneSubInfo.Stub {
    }

    /**
     * Returns SIP URI or tel URI of the Public Service Identity of the SM-SC that fetched from
     * EFPSISMSC elementary field that are loaded based on the ISIM/USIM appType.
     * Returns SIP URI or tel URI of the Public Service Identity of the SM-SC fetched from
     * EF_PSISMSC elementary field as defined in Section 4.5.9 (3GPP TS 31.102).
     * @throws IllegalStateException in case if phone or UiccApplication is not available.
     */
    public String getSmscIdentity(int subId, int appType)
            throws RemoteException {
        return callPhoneMethodForSubIdWithPrivilegedCheck(subId, "getSmscIdentity",
    public Uri getSmscIdentity(int subId, int appType) throws RemoteException {
        Uri smscIdentityUri = callPhoneMethodForSubIdWithPrivilegedCheck(subId, "getSmscIdentity",
                (phone) -> {
                    try {
                        String smscIdentity = null;
                        UiccPort uiccPort = phone.getUiccPort();
                    if (uiccPort == null || uiccPort.getUiccProfile() == null) {
                        loge("getSmscIdentity(): uiccPort or uiccProfile is null");
                        return null;
                    }
                    UiccCardApplication uiccApp = uiccPort.getUiccProfile().getApplicationByType(
                        UiccCardApplication uiccApp =
                                uiccPort.getUiccProfile().getApplicationByType(
                                        appType);
                    if (uiccApp == null) {
                        loge("getSmscIdentity(): no app with specified type = "
                                + appType);
                        smscIdentity = (uiccApp != null) ? uiccApp.getIccRecords().getSmscIdentity()
                                : null;
                        if (TextUtils.isEmpty(smscIdentity)) {
                            return Uri.EMPTY;
                        }
                        return Uri.parse(smscIdentity);
                    } catch (NullPointerException ex) {
                        Rlog.e(TAG, "getSmscIdentity(): Exception = " + ex);
                        return null;
                    }
                    return uiccApp.getIccRecords().getSmscIdentity();
                });
        if (smscIdentityUri == null) {
            throw new IllegalStateException("Telephony service error");
        }
        return smscIdentityUri;
    }

    private void log(String s) {
+20 −18
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ package com.android.internal.telephony;

import static android.Manifest.permission.READ_PHONE_STATE;
import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
import static android.telephony.TelephonyManager.APPTYPE_ISIM;
import static android.telephony.TelephonyManager.APPTYPE_USIM;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@@ -52,9 +54,9 @@ import org.mockito.Mockito;
public class PhoneSubInfoControllerTest extends TelephonyTest {
    private static final String FEATURE_ID = "myfeatureId";
    private static final String PSI_SMSC_TEL1 = "tel:+91123456789";
    private static final String PSI_SMSC_SIP1 = "sip:+1234567890@msg.pc.t-mobile.com;user=phone";
    private static final String PSI_SMSC_SIP1 = "sip:+1234567890@abc.pc.operetor1.com;user=phone";
    private static final String PSI_SMSC_TEL2 = "tel:+91987654321";
    private static final String PSI_SMSC_SIP2 = "sip:+19876543210@msg.pc.t-mobile.com;user=phone";
    private static final String PSI_SMSC_SIP2 = "sip:+19876543210@dcf.pc.operetor2.com;user=phone";

    private PhoneSubInfoController mPhoneSubInfoControllerUT;
    private AppOpsManager mAppOsMgr;
@@ -965,13 +967,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {
        try {
            setUpInitials();
            assertEquals(PSI_SMSC_TEL1, mPhoneSubInfoControllerUT
                    .getSmscIdentity(0, 5));
                    .getSmscIdentity(0, APPTYPE_ISIM).toString());
            assertEquals(PSI_SMSC_TEL1, mPhoneSubInfoControllerUT
                    .getSmscIdentity(0, 3));
                    .getSmscIdentity(0, APPTYPE_USIM).toString());
            assertEquals(PSI_SMSC_TEL2, mPhoneSubInfoControllerUT
                    .getSmscIdentity(1, 5));
                    .getSmscIdentity(1, APPTYPE_ISIM).toString());
            assertEquals(PSI_SMSC_TEL2, mPhoneSubInfoControllerUT
                    .getSmscIdentity(1, 5));
                    .getSmscIdentity(1, APPTYPE_USIM).toString());
        } catch (RemoteException e) {
            e.printStackTrace();
        }
@@ -1003,13 +1005,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {
            doReturn(PSI_SMSC_SIP2).when(mIsimUiccRecords).getSmscIdentity();

            assertEquals(PSI_SMSC_SIP1, mPhoneSubInfoControllerUT
                    .getSmscIdentity(0, 5));
                    .getSmscIdentity(0, APPTYPE_ISIM).toString());
            assertEquals(PSI_SMSC_SIP1, mPhoneSubInfoControllerUT
                    .getSmscIdentity(0, 3));
                    .getSmscIdentity(0, APPTYPE_USIM).toString());
            assertEquals(PSI_SMSC_SIP2, mPhoneSubInfoControllerUT
                    .getSmscIdentity(1, 5));
                    .getSmscIdentity(1, APPTYPE_ISIM).toString());
            assertEquals(PSI_SMSC_SIP2, mPhoneSubInfoControllerUT
                    .getSmscIdentity(1, 5));
                    .getSmscIdentity(1, APPTYPE_USIM).toString());
        } catch (RemoteException e) {
            e.printStackTrace();
        }
@@ -1022,7 +1024,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {
        //case 1: no READ_PRIVILEGED_PHONE_STATE & appOsMgr READ_PHONE_PERMISSION
        mContextFixture.removeCallingOrSelfPermission(ContextFixture.PERMISSION_ENABLE_ALL);
        try {
            mPhoneSubInfoControllerUT.getSmscIdentity(0, 5);
            mPhoneSubInfoControllerUT.getSmscIdentity(0, APPTYPE_ISIM);
            Assert.fail("expected Security Exception Thrown");
        } catch (Exception ex) {
            assertTrue(ex instanceof SecurityException);
@@ -1030,7 +1032,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {
        }

        try {
            mPhoneSubInfoControllerUT.getSmscIdentity(1, 5);
            mPhoneSubInfoControllerUT.getSmscIdentity(1, APPTYPE_ISIM);
            Assert.fail("expected Security Exception Thrown");
        } catch (Exception ex) {
            assertTrue(ex instanceof SecurityException);
@@ -1038,7 +1040,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {
        }

        try {
            mPhoneSubInfoControllerUT.getSmscIdentity(0, 3);
            mPhoneSubInfoControllerUT.getSmscIdentity(0, APPTYPE_USIM);
            Assert.fail("expected Security Exception Thrown");
        } catch (Exception ex) {
            assertTrue(ex instanceof SecurityException);
@@ -1046,7 +1048,7 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {
        }

        try {
            mPhoneSubInfoControllerUT.getSmscIdentity(1, 3);
            mPhoneSubInfoControllerUT.getSmscIdentity(1, APPTYPE_USIM);
            Assert.fail("expected Security Exception Thrown");
        } catch (Exception ex) {
            assertTrue(ex instanceof SecurityException);
@@ -1061,13 +1063,13 @@ public class PhoneSubInfoControllerTest extends TelephonyTest {

        try {
            assertEquals(PSI_SMSC_TEL1, mPhoneSubInfoControllerUT
                    .getSmscIdentity(0, 5));
                    .getSmscIdentity(0, APPTYPE_ISIM).toString());
            assertEquals(PSI_SMSC_TEL1, mPhoneSubInfoControllerUT
                    .getSmscIdentity(0, 3));
                    .getSmscIdentity(0, APPTYPE_USIM).toString());
            assertEquals(PSI_SMSC_TEL2, mPhoneSubInfoControllerUT
                    .getSmscIdentity(1, 5));
                    .getSmscIdentity(1, APPTYPE_ISIM).toString());
            assertEquals(PSI_SMSC_TEL2, mPhoneSubInfoControllerUT
                    .getSmscIdentity(1, 5));
                    .getSmscIdentity(1, APPTYPE_USIM).toString());
        } catch (RemoteException e) {
            e.printStackTrace();
        }