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

Commit 316302c0 authored by Jayachandran C's avatar Jayachandran C
Browse files

Remove usage of IccCardConstants hidden APIs

Expose the string IccCardConstants as system APIs
Use TelephonyManger.SIM_STATE_XXX for remaining

Bug: 145767148
Test: Build
Change-Id: I5711d783be8c8414b8f9d7baa80cb4224bd771aa
parent 846c0fe0
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -1502,9 +1502,25 @@ package android.content {
    field public static final String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK";
    field public static final String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED";
    field public static final String EXTRA_ROLE_NAME = "android.intent.extra.ROLE_NAME";
    field @Deprecated public static final String EXTRA_SIM_LOCKED_REASON = "reason";
    field @Deprecated public static final String EXTRA_SIM_STATE = "ss";
    field public static final String EXTRA_UNKNOWN_INSTANT_APP = "android.intent.extra.UNKNOWN_INSTANT_APP";
    field public static final String EXTRA_VERIFICATION_BUNDLE = "android.intent.extra.VERIFICATION_BUNDLE";
    field public static final String METADATA_SETUP_VERSION = "android.SETUP_VERSION";
    field @Deprecated public static final String SIM_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";
    field @Deprecated public static final String SIM_LOCKED_NETWORK = "NETWORK";
    field @Deprecated public static final String SIM_LOCKED_ON_PIN = "PIN";
    field @Deprecated public static final String SIM_LOCKED_ON_PUK = "PUK";
    field @Deprecated public static final String SIM_STATE_ABSENT = "ABSENT";
    field @Deprecated public static final String SIM_STATE_CARD_IO_ERROR = "CARD_IO_ERROR";
    field @Deprecated public static final String SIM_STATE_CARD_RESTRICTED = "CARD_RESTRICTED";
    field @Deprecated public static final String SIM_STATE_IMSI = "IMSI";
    field @Deprecated public static final String SIM_STATE_LOADED = "LOADED";
    field @Deprecated public static final String SIM_STATE_LOCKED = "LOCKED";
    field @Deprecated public static final String SIM_STATE_NOT_READY = "NOT_READY";
    field @Deprecated public static final String SIM_STATE_PRESENT = "PRESENT";
    field @Deprecated public static final String SIM_STATE_READY = "READY";
    field @Deprecated public static final String SIM_STATE_UNKNOWN = "UNKNOWN";
  }
  public class IntentFilter implements android.os.Parcelable {
+171 −1
Original line number Diff line number Diff line
@@ -3995,15 +3995,185 @@ public class Intent implements Parcelable, Cloneable {
     * Broadcast Action: The sim card state has changed.
     * For more details see TelephonyIntents.ACTION_SIM_STATE_CHANGED. This is here
     * because TelephonyIntents is an internal class.
     * @hide
     * The intent will have following extras.</p>
     * <p>
     * @see #EXTRA_SIM_STATE
     * @see #EXTRA_SIM_LOCKED_REASON
     *
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED} or
     * {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
     *
     * @hide
     */
    @Deprecated
    @SystemApi
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_SIM_STATE_CHANGED = "android.intent.action.SIM_STATE_CHANGED";

    /**
     * The extra used with {@link #ACTION_SIM_STATE_CHANGED} for broadcasting SIM STATE.
     * This will have one of the following intent values.
     * @see #SIM_STATE_UNKNOWN
     * @see #SIM_STATE_NOT_READY
     * @see #SIM_STATE_ABSENT
     * @see #SIM_STATE_PRESENT
     * @see #SIM_STATE_CARD_IO_ERROR
     * @see #SIM_STATE_CARD_RESTRICTED
     * @see #SIM_STATE_LOCKED
     * @see #SIM_STATE_READY
     * @see #SIM_STATE_IMSI
     * @see #SIM_STATE_LOADED
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String EXTRA_SIM_STATE = "ss";

    /**
     * The intent value UNKNOWN represents the SIM state unknown
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_UNKNOWN = "UNKNOWN";

    /**
     * The intent value NOT_READY means that the SIM is not ready eg. radio is off or powering on
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_NOT_READY = "NOT_READY";

    /**
     * The intent value ABSENT means the SIM card is missing
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_ABSENT = "ABSENT";

    /**
     * The intent value PRESENT means the device has a SIM card inserted
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_PRESENT = "PRESENT";

    /**
     * The intent value CARD_IO_ERROR means for three consecutive times there was SIM IO error
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    static public final String SIM_STATE_CARD_IO_ERROR = "CARD_IO_ERROR";

    /**
     * The intent value CARD_RESTRICTED means card is present but not usable due to carrier
     * restrictions
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    static public final String SIM_STATE_CARD_RESTRICTED = "CARD_RESTRICTED";

    /**
     * The intent value LOCKED means the SIM is locked by PIN or by network
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_LOCKED = "LOCKED";

    /**
     * The intent value READY means the SIM is ready to be accessed
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_READY = "READY";

    /**
     * The intent value IMSI means the SIM IMSI is ready in property
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_IMSI = "IMSI";

    /**
     * The intent value LOADED means all SIM records, including IMSI, are loaded
     * @hide
     * @deprecated Use {@link #ACTION_SIM_CARD_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_STATE_LOADED = "LOADED";

    /**
     * The extra used with {@link #ACTION_SIM_STATE_CHANGED} for broadcasting SIM STATE.
     * This extra will have one of the following intent values.
     * <p>
     * @see #SIM_LOCKED_ON_PIN
     * @see #SIM_LOCKED_ON_PUK
     * @see #SIM_LOCKED_NETWORK
     * @see #SIM_ABSENT_ON_PERM_DISABLED
     *
     * @hide
     * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String EXTRA_SIM_LOCKED_REASON = "reason";

    /**
     * The intent value PIN means the SIM is locked on PIN1
     * @hide
     * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_LOCKED_ON_PIN = "PIN";

    /**
     * The intent value PUK means the SIM is locked on PUK1
     * @hide
     * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
     */
    /* PUK means ICC is locked on PUK1 */
    @Deprecated
    @SystemApi
    public static final String SIM_LOCKED_ON_PUK = "PUK";

    /**
     * The intent value NETWORK means the SIM is locked on NETWORK PERSONALIZATION
     * @hide
     * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_LOCKED_NETWORK = "NETWORK";

    /**
     * The intent value PERM_DISABLED means SIM is permanently disabled due to puk fails
     * @hide
     * @deprecated Use {@link #ACTION_SIM_APPLICATION_STATE_CHANGED}
     */
    @Deprecated
    @SystemApi
    public static final String SIM_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";

    /**
     * Broadcast Action: indicate that the phone service state has changed.
     * The intent will have the following extra values:</p>
+18 −20
Original line number Diff line number Diff line
@@ -31,8 +31,6 @@ import android.telephony.TelephonyManager;
import android.util.Log;

import com.android.internal.app.IBatteryStats;
import com.android.internal.telephony.IccCardConstants;
import com.android.internal.telephony.TelephonyIntents;
import com.android.server.am.BatteryStatsService;

public class DataConnectionStats extends BroadcastReceiver {
@@ -44,7 +42,7 @@ public class DataConnectionStats extends BroadcastReceiver {
    private final Handler mListenerHandler;
    private final PhoneStateListener mPhoneStateListener;

    private IccCardConstants.State mSimState = IccCardConstants.State.READY;
    private int mSimState = TelephonyManager.SIM_STATE_READY;
    private SignalStrength mSignalStrength;
    private ServiceState mServiceState;
    private int mDataState = TelephonyManager.DATA_DISCONNECTED;
@@ -66,7 +64,7 @@ public class DataConnectionStats extends BroadcastReceiver {
              | PhoneStateListener.LISTEN_DATA_ACTIVITY);

        IntentFilter filter = new IntentFilter();
        filter.addAction(TelephonyIntents.ACTION_SIM_STATE_CHANGED);
        filter.addAction(Intent.ACTION_SIM_STATE_CHANGED);
        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
        filter.addAction(ConnectivityManager.INET_CONDITION_ACTION);
        mContext.registerReceiver(this, filter, null /* broadcastPermission */, mListenerHandler);
@@ -75,7 +73,7 @@ public class DataConnectionStats extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        if (action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
        if (action.equals(Intent.ACTION_SIM_STATE_CHANGED)) {
            updateSimState(intent);
            notePhoneDataConnectionState();
        } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION) ||
@@ -88,8 +86,8 @@ public class DataConnectionStats extends BroadcastReceiver {
        if (mServiceState == null) {
            return;
        }
        boolean simReadyOrUnknown = mSimState == IccCardConstants.State.READY
                || mSimState == IccCardConstants.State.UNKNOWN;
        boolean simReadyOrUnknown = mSimState == TelephonyManager.SIM_STATE_READY
                || mSimState == TelephonyManager.SIM_STATE_UNKNOWN;
        boolean visible = (simReadyOrUnknown || isCdma()) // we only check the sim state for GSM
                && hasService()
                && mDataState == TelephonyManager.DATA_CONNECTED;
@@ -105,23 +103,23 @@ public class DataConnectionStats extends BroadcastReceiver {
    }

    private final void updateSimState(Intent intent) {
        String stateExtra = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE);
        if (IccCardConstants.INTENT_VALUE_ICC_ABSENT.equals(stateExtra)) {
            mSimState = IccCardConstants.State.ABSENT;
        } else if (IccCardConstants.INTENT_VALUE_ICC_READY.equals(stateExtra)) {
            mSimState = IccCardConstants.State.READY;
        } else if (IccCardConstants.INTENT_VALUE_ICC_LOCKED.equals(stateExtra)) {
        String stateExtra = intent.getStringExtra(Intent.EXTRA_SIM_STATE);
        if (Intent.SIM_STATE_ABSENT.equals(stateExtra)) {
            mSimState = TelephonyManager.SIM_STATE_ABSENT;
        } else if (Intent.SIM_STATE_READY.equals(stateExtra)) {
            mSimState = TelephonyManager.SIM_STATE_READY;
        } else if (Intent.SIM_STATE_LOCKED.equals(stateExtra)) {
            final String lockedReason =
                    intent.getStringExtra(IccCardConstants.INTENT_KEY_LOCKED_REASON);
            if (IccCardConstants.INTENT_VALUE_LOCKED_ON_PIN.equals(lockedReason)) {
                mSimState = IccCardConstants.State.PIN_REQUIRED;
            } else if (IccCardConstants.INTENT_VALUE_LOCKED_ON_PUK.equals(lockedReason)) {
                mSimState = IccCardConstants.State.PUK_REQUIRED;
                    intent.getStringExtra(Intent.EXTRA_SIM_LOCKED_REASON);
            if (Intent.SIM_LOCKED_ON_PIN.equals(lockedReason)) {
                mSimState = TelephonyManager.SIM_STATE_PIN_REQUIRED;
            } else if (Intent.SIM_LOCKED_ON_PUK.equals(lockedReason)) {
                mSimState = TelephonyManager.SIM_STATE_PUK_REQUIRED;
            } else {
                mSimState = IccCardConstants.State.NETWORK_LOCKED;
                mSimState = TelephonyManager.SIM_STATE_NETWORK_LOCKED;
            }
        } else {
            mSimState = IccCardConstants.State.UNKNOWN;
            mSimState = TelephonyManager.SIM_STATE_UNKNOWN;
        }
    }

+18 −16
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.internal.telephony;

import android.content.Intent;
import android.telephony.TelephonyManager;

import dalvik.annotation.compat.UnsupportedAppUsage;
@@ -25,37 +26,38 @@ import dalvik.annotation.compat.UnsupportedAppUsage;
public class IccCardConstants {

    /* The extra data for broadcasting intent INTENT_ICC_STATE_CHANGE */
    public static final String INTENT_KEY_ICC_STATE = "ss";
    public static final String INTENT_KEY_ICC_STATE = Intent.EXTRA_SIM_STATE;
    /* UNKNOWN means the ICC state is unknown */
    public static final String INTENT_VALUE_ICC_UNKNOWN = "UNKNOWN";
    public static final String INTENT_VALUE_ICC_UNKNOWN = Intent.SIM_STATE_UNKNOWN;
    /* NOT_READY means the ICC interface is not ready (eg, radio is off or powering on) */
    public static final String INTENT_VALUE_ICC_NOT_READY = "NOT_READY";
    public static final String INTENT_VALUE_ICC_NOT_READY = Intent.SIM_STATE_NOT_READY;
    /* ABSENT means ICC is missing */
    public static final String INTENT_VALUE_ICC_ABSENT = "ABSENT";
    public static final String INTENT_VALUE_ICC_ABSENT = Intent.SIM_STATE_ABSENT;
    /* PRESENT means ICC is present */
    public static final String INTENT_VALUE_ICC_PRESENT = "PRESENT";
    public static final String INTENT_VALUE_ICC_PRESENT = Intent.SIM_STATE_PRESENT;
    /* CARD_IO_ERROR means for three consecutive times there was SIM IO error */
    static public final String INTENT_VALUE_ICC_CARD_IO_ERROR = "CARD_IO_ERROR";
    static public final String INTENT_VALUE_ICC_CARD_IO_ERROR = Intent.SIM_STATE_CARD_IO_ERROR;
    /* CARD_RESTRICTED means card is present but not usable due to carrier restrictions */
    static public final String INTENT_VALUE_ICC_CARD_RESTRICTED = "CARD_RESTRICTED";
    static public final String INTENT_VALUE_ICC_CARD_RESTRICTED = Intent.SIM_STATE_CARD_RESTRICTED;
    /* LOCKED means ICC is locked by pin or by network */
    public static final String INTENT_VALUE_ICC_LOCKED = "LOCKED";
    public static final String INTENT_VALUE_ICC_LOCKED = Intent.SIM_STATE_LOCKED;
    /* READY means ICC is ready to access */
    public static final String INTENT_VALUE_ICC_READY = "READY";
    public static final String INTENT_VALUE_ICC_READY = Intent.SIM_STATE_READY;
    /* IMSI means ICC IMSI is ready in property */
    public static final String INTENT_VALUE_ICC_IMSI = "IMSI";
    public static final String INTENT_VALUE_ICC_IMSI = Intent.SIM_STATE_IMSI;
    /* LOADED means all ICC records, including IMSI, are loaded */
    public static final String INTENT_VALUE_ICC_LOADED = "LOADED";
    public static final String INTENT_VALUE_ICC_LOADED = Intent.SIM_STATE_LOADED;
    /* The extra data for broadcasting intent INTENT_ICC_STATE_CHANGE */
    public static final String INTENT_KEY_LOCKED_REASON = "reason";
    public static final String INTENT_KEY_LOCKED_REASON = Intent.EXTRA_SIM_LOCKED_REASON;
    /* PIN means ICC is locked on PIN1 */
    public static final String INTENT_VALUE_LOCKED_ON_PIN = "PIN";
    public static final String INTENT_VALUE_LOCKED_ON_PIN = Intent.SIM_LOCKED_ON_PIN;
    /* PUK means ICC is locked on PUK1 */
    public static final String INTENT_VALUE_LOCKED_ON_PUK = "PUK";
    public static final String INTENT_VALUE_LOCKED_ON_PUK = Intent.SIM_LOCKED_ON_PUK;
    /* NETWORK means ICC is locked on NETWORK PERSONALIZATION */
    public static final String INTENT_VALUE_LOCKED_NETWORK = "NETWORK";
    public static final String INTENT_VALUE_LOCKED_NETWORK = Intent.SIM_LOCKED_NETWORK;
    /* PERM_DISABLED means ICC is permanently disabled due to puk fails */
    public static final String INTENT_VALUE_ABSENT_ON_PERM_DISABLED = "PERM_DISABLED";
    public static final String INTENT_VALUE_ABSENT_ON_PERM_DISABLED =
            Intent.SIM_ABSENT_ON_PERM_DISABLED;

    /**
     * This is combination of IccCardStatus.CardState and IccCardApplicationStatus.AppState