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

Commit 61aa8cd9 authored by chen xu's avatar chen xu Committed by Pengquan Meng
Browse files

new SystemAPI to getSimLocale

1. expose to system API
2. refactor to support passing subId instead of read from defaultSIM and
previously inserted SIM.

Bug: 122620985
Test: cts
Merged-In: I8f78ba00abf0ef74bd2b2147755596edaee156cf
Change-Id: I8f78ba00abf0ef74bd2b2147755596edaee156cf
parent bc40469e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6166,6 +6166,7 @@ package android.telephony {
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public int getRadioPowerState();
    method public int getSimApplicationState();
    method public int getSimCardState();
    method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getSimLocale();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getSupportedRadioAccessFamily();
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public java.util.List<android.telephony.TelephonyHistogram> getTelephonyHistograms();
    method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public android.telephony.UiccCardInfo[] getUiccCardsInfo();
+32 −2
Original line number Diff line number Diff line
@@ -93,6 +93,7 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.regex.Matcher;
@@ -8435,18 +8436,47 @@ public class TelephonyManager {
    }


    /** @hide */
    /**
     * Returns a well-formed IETF BCP 47 language tag representing the locale from the SIM, e.g,
     * en-US. Returns {@code null} if no locale could be derived from subscriptions.
     *
     * <p>Requires Permission:
     * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE READ_PRIVILEGED_PHONE_STATE}
     *
     * @see Locale#toLanguageTag()
     * @see Locale#forLanguageTag(String)
     *
     * @hide
     */
    @SystemApi
    @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    @Nullable public String getSimLocale() {
        try {
            final ITelephony telephony = getITelephony();
            if (telephony != null) {
                return telephony.getSimLocaleForSubscriber(getSubId());
            }
        } catch (RemoteException ex) {
        }
        return null;
    }

    /**
     * TODO delete after SuW migrates to new API.
     * @hide
     */
    public String getLocaleFromDefaultSim() {
        try {
            final ITelephony telephony = getITelephony();
            if (telephony != null) {
                return telephony.getLocaleFromDefaultSim();
                return telephony.getSimLocaleForSubscriber(getSubId());
            }
        } catch (RemoteException ex) {
        }
        return null;
    }


    /**
     * Requests the modem activity info. The recipient will place the result
     * in `result`.
+2 −2
Original line number Diff line number Diff line
@@ -1177,12 +1177,12 @@ interface ITelephony {
    void factoryReset(int subId);

    /**
     * An estimate of the users's current locale based on the default SIM.
     * Returns users's current locale based on the SIM.
     *
     * The returned string will be a well formed BCP-47 language tag, or {@code null}
     * if no locale could be derived.
     */
    String getLocaleFromDefaultSim();
    String getSimLocaleForSubscriber(int subId);

    /**
     * Requests the modem activity info asynchronously.