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

Commit 36ad7638 authored by Shuo Qian's avatar Shuo Qian Committed by Android (Google) Code Review
Browse files

Merge "Emergency API review"

parents ca1de57f 613c3d58
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -45078,14 +45078,14 @@ package android.telephony {
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @WorkerThread public android.os.PersistableBundle getCarrierConfig();
    method public int getCarrierIdFromSimMccMnc();
    method @Deprecated @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public android.telephony.CellLocation getCellLocation();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @Nullable public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getCurrentEmergencyNumberList(int);
    method public int getDataActivity();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getDataNetworkType();
    method public int getDataState();
    method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId();
    method @Deprecated @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public String getDeviceId(int);
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getDeviceSoftwareVersion();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @NonNull public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @NonNull public java.util.Map<java.lang.Integer,java.util.List<android.telephony.emergency.EmergencyNumber>> getEmergencyNumberList(int);
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String[] getForbiddenPlmns();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getGroupIdLevel1();
    method public String getIccAuthentication(int, int, String);
@@ -45137,9 +45137,9 @@ package android.telephony {
    method public String iccTransmitApduBasicChannel(int, int, int, int, int, String);
    method public String iccTransmitApduLogicalChannel(int, int, int, int, int, int, String);
    method public boolean isConcurrentVoiceAndDataSupported();
    method public boolean isCurrentEmergencyNumber(@NonNull String);
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean isDataEnabled();
    method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataRoamingEnabled();
    method public boolean isEmergencyNumber(@NonNull String);
    method public boolean isHearingAidCompatibilitySupported();
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean isMultisimSupported();
    method public boolean isNetworkRoaming();
@@ -45459,15 +45459,13 @@ package android.telephony.emergency {
  public final class EmergencyNumber implements java.lang.Comparable<android.telephony.emergency.EmergencyNumber> android.os.Parcelable {
    method public int compareTo(@NonNull android.telephony.emergency.EmergencyNumber);
    method public int describeContents();
    method public String getCountryIso();
    method @NonNull public String getCountryIso();
    method public int getEmergencyCallRouting();
    method public int getEmergencyNumberSourceBitmask();
    method public java.util.List<java.lang.Integer> getEmergencyNumberSources();
    method public java.util.List<java.lang.Integer> getEmergencyServiceCategories();
    method public int getEmergencyServiceCategoryBitmask();
    method @NonNull public java.util.List<java.lang.Integer> getEmergencyNumberSources();
    method @NonNull public java.util.List<java.lang.Integer> getEmergencyServiceCategories();
    method @NonNull public java.util.List<java.lang.String> getEmergencyUrns();
    method public String getMnc();
    method public String getNumber();
    method @NonNull public String getMnc();
    method @NonNull public String getNumber();
    method public boolean isFromSources(int);
    method public boolean isInEmergencyServiceCategories(int);
    method public void writeToParcel(android.os.Parcel, int);
+3 −3
Original line number Diff line number Diff line
@@ -8060,10 +8060,10 @@ package android.telephony {
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoiceActivationState();
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handlePinMmi(String);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean handlePinMmiForSubscriber(int, String);
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCurrentPotentialEmergencyNumber(@NonNull String);
    method public boolean isDataConnectivityPossible();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String);
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isRebootRequiredForModemConfigChange();
    method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
@@ -8456,7 +8456,7 @@ package android.telephony.ims {
    method public static int getCallTypeFromVideoState(int);
    method public int getEmergencyCallRouting();
    method public int getEmergencyServiceCategories();
    method public java.util.List<java.lang.String> getEmergencyUrns();
    method @NonNull public java.util.List<java.lang.String> getEmergencyUrns();
    method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile();
    method public int getRestrictCause();
    method public int getServiceType();
@@ -8474,7 +8474,7 @@ package android.telephony.ims {
    method public void setEmergencyCallRouting(int);
    method public void setEmergencyCallTesting(boolean);
    method public void setEmergencyServiceCategories(int);
    method public void setEmergencyUrns(java.util.List<java.lang.String>);
    method public void setEmergencyUrns(@NonNull java.util.List<java.lang.String>);
    method public void setHasKnownUserIntentEmergency(boolean);
    method public void updateCallExtras(android.telephony.ims.ImsCallProfile);
    method public void updateCallType(android.telephony.ims.ImsCallProfile);
+1 −1
Original line number Diff line number Diff line
@@ -1803,7 +1803,7 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub {
        synchronized (mRecords) {
            TelephonyManager tm = (TelephonyManager) mContext.getSystemService(
                    Context.TELEPHONY_SERVICE);
            mEmergencyNumberList = tm.getCurrentEmergencyNumberList();
            mEmergencyNumberList = tm.getEmergencyNumberList();

            for (Record r : mRecords) {
                if (r.matchPhoneStateListenerEvent(
+14 −15
Original line number Diff line number Diff line
@@ -25,12 +25,11 @@ import android.annotation.IntDef;
import android.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.database.Cursor;
import android.location.CountryDetector;
import android.net.Uri;
import android.os.SystemProperties;
import android.os.PersistableBundle;
import android.os.SystemProperties;
import android.provider.Contacts;
import android.provider.ContactsContract;
import android.telecom.PhoneAccount;
@@ -1738,7 +1737,7 @@ public class PhoneNumberUtils {
     * @return true if the number is in the list of emergency numbers
     *         listed in the RIL / SIM, otherwise return false.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)} instead.
     * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)} instead.
     */
    @Deprecated
    public static boolean isEmergencyNumber(String number) {
@@ -1754,7 +1753,7 @@ public class PhoneNumberUtils {
     * @return true if the number is in the list of emergency numbers
     *         listed in the RIL / SIM, otherwise return false.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -1785,7 +1784,7 @@ public class PhoneNumberUtils {
     *         listed in the RIL / SIM, *or* if the number starts with the
     *         same digits as any of those emergency numbers.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -1814,7 +1813,7 @@ public class PhoneNumberUtils {
     *         listed in the RIL / SIM, *or* if the number starts with the
     *         same digits as any of those emergency numbers.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -1883,7 +1882,7 @@ public class PhoneNumberUtils {
     * @return if the number is an emergency number for the specific country, then return true,
     * otherwise false
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -1903,7 +1902,7 @@ public class PhoneNumberUtils {
     * @return if the number is an emergency number for the specific country, then return true,
     * otherwise false
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -1934,7 +1933,7 @@ public class PhoneNumberUtils {
     *         country, *or* if the number starts with the same digits as
     *         any of those emergency numbers.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -1964,7 +1963,7 @@ public class PhoneNumberUtils {
     *         country, *or* if the number starts with the same digits as
     *         any of those emergency numbers.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -2017,7 +2016,7 @@ public class PhoneNumberUtils {
    private static boolean isEmergencyNumberInternal(int subId, String number,
                                                     String defaultCountryIso,
                                                     boolean useExactMatch) {
        return TelephonyManager.getDefault().isCurrentEmergencyNumber(number);
        return TelephonyManager.getDefault().isEmergencyNumber(number);
    }

    /**
@@ -2028,7 +2027,7 @@ public class PhoneNumberUtils {
     * @return true if the specified number is an emergency number for the country the user
     * is currently in.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)}
     *             instead.
     */
    @Deprecated
@@ -2045,7 +2044,7 @@ public class PhoneNumberUtils {
     * @return true if the specified number is an emergency number for the country the user
     * is currently in.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -2079,7 +2078,7 @@ public class PhoneNumberUtils {
     *
     * @see android.location.CountryDetector
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)}
     *             instead.
     *
     * @hide
@@ -2110,7 +2109,7 @@ public class PhoneNumberUtils {
     * @return true if the specified number is an emergency number for a local country, based on the
     *              CountryDetector.
     *
     * @deprecated Please use {@link TelephonyManager#isCurrentPotentialEmergencyNumber(String)}
     * @deprecated Please use {@link TelephonyManager#isPotentialEmergencyNumber(String)}
     *             instead.
     *
     * @hide
+44 −33
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -10030,18 +10031,21 @@ public class TelephonyManager {
     * a SecurityException if the caller does not have the permission.
     */
    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
    @Nullable
    public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList() {
    @NonNull
    public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList() {
        Map<Integer, List<EmergencyNumber>> emergencyNumberList = new HashMap<>();
        try {
            ITelephony telephony = getITelephony();
            if (telephony == null) {
                return null;
            if (telephony != null) {
                return telephony.getEmergencyNumberList(mContext.getOpPackageName());
            } else {
                throw new IllegalStateException("telephony service is null.");
            }
            return telephony.getCurrentEmergencyNumberList(mContext.getOpPackageName());
        } catch (RemoteException ex) {
            Log.e(TAG, "getCurrentEmergencyNumberList RemoteException", ex);
            Log.e(TAG, "getEmergencyNumberList RemoteException", ex);
            ex.rethrowAsRuntimeException();
        }
        return null;
        return emergencyNumberList;
    }

    /**
@@ -10080,19 +10084,18 @@ public class TelephonyManager {
     * a SecurityException if the caller does not have the permission.
     */
    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
    @Nullable
    public Map<Integer, List<EmergencyNumber>> getCurrentEmergencyNumberList(
    @NonNull
    public Map<Integer, List<EmergencyNumber>> getEmergencyNumberList(
            @EmergencyServiceCategories int categories) {
        Map<Integer, List<EmergencyNumber>> emergencyNumberList = new HashMap<>();
        try {
            ITelephony telephony = getITelephony();
            if (telephony == null) {
                return null;
            }
            Map<Integer, List<EmergencyNumber>> numberMap = telephony
                    .getCurrentEmergencyNumberList(mContext.getOpPackageName());
            if (numberMap != null) {
                for (Integer subscriptionId : numberMap.keySet()) {
                    List<EmergencyNumber> numberList = numberMap.get(subscriptionId);
            if (telephony != null) {
                emergencyNumberList = telephony.getEmergencyNumberList(
                        mContext.getOpPackageName());
                if (emergencyNumberList != null) {
                    for (Integer subscriptionId : emergencyNumberList.keySet()) {
                        List<EmergencyNumber> numberList = emergencyNumberList.get(subscriptionId);
                        for (EmergencyNumber number : numberList) {
                            if (!number.isInEmergencyServiceCategories(categories)) {
                                numberList.remove(number);
@@ -10100,11 +10103,15 @@ public class TelephonyManager {
                        }
                    }
                }
            return numberMap;
                return emergencyNumberList;
            } else {
                throw new IllegalStateException("telephony service is null.");
            }
        } catch (RemoteException ex) {
            Log.e(TAG, "getCurrentEmergencyNumberList with Categories RemoteException", ex);
            Log.e(TAG, "getEmergencyNumberList with Categories RemoteException", ex);
            ex.rethrowAsRuntimeException();
        }
        return null;
        return emergencyNumberList;
    }

    /**
@@ -10118,15 +10125,17 @@ public class TelephonyManager {
     * @return {@code true} if the given number is an emergency number based on current locale,
     * sim, modem and network; {@code false} otherwise.
     */
    public boolean isCurrentEmergencyNumber(@NonNull String number) {
    public boolean isEmergencyNumber(@NonNull String number) {
        try {
            ITelephony telephony = getITelephony();
            if (telephony == null) {
                return false;
            if (telephony != null) {
                return telephony.isEmergencyNumber(number, true);
            } else {
                throw new IllegalStateException("telephony service is null.");
            }
            return telephony.isCurrentEmergencyNumber(number, true);
        } catch (RemoteException ex) {
            Log.e(TAG, "isCurrentEmergencyNumber RemoteException", ex);
            Log.e(TAG, "isEmergencyNumber RemoteException", ex);
            ex.rethrowAsRuntimeException();
        }
        return false;
    }
@@ -10155,15 +10164,17 @@ public class TelephonyManager {
     */
    @SystemApi
    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    public boolean isCurrentPotentialEmergencyNumber(@NonNull String number) {
    public boolean isPotentialEmergencyNumber(@NonNull String number) {
        try {
            ITelephony telephony = getITelephony();
            if (telephony == null) {
                return false;
            if (telephony != null) {
                return telephony.isEmergencyNumber(number, false);
            } else {
                throw new IllegalStateException("telephony service is null.");
            }
            return telephony.isCurrentEmergencyNumber(number, false);
        } catch (RemoteException ex) {
            Log.e(TAG, "isCurrentEmergencyNumber RemoteException", ex);
            Log.e(TAG, "isEmergencyNumber RemoteException", ex);
            ex.rethrowAsRuntimeException();
        }
        return false;
    }
Loading