Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -791,7 +791,7 @@ public class NetworkControllerImpl extends BroadcastReceiver private SubscriptionInfo addSignalController(int id, int simSlotIndex) { SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0, null, 0, 0, ""); null, 0, 0, "", SubscriptionManager.SIM_PROVISIONED); mMobileSignalControllers.put(id, new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info, mSubDefaults, mReceiverHandler.getLooper())); Loading telephony/java/android/telephony/CarrierConfigManager.java +18 −0 Original line number Diff line number Diff line Loading @@ -629,6 +629,20 @@ public class CarrierConfigManager { public static final String KEY_MMS_UA_PROF_URL_STRING = "uaProfUrl"; public static final String KEY_MMS_USER_AGENT_STRING = "userAgent"; /** * If carriers require differentiate un-provisioned status: cold sim or out of credit sim * a package name and activity name can be provided to launch a supported carrier application * that check the sim provisioning status * The first element is the package name and the second element is the activity name * of the provisioning app * example: * <item>com.google.android.carrierPackageName</item> * <item>com.google.android.carrierPackageName.CarrierActivityName</item> * @hide */ public static final String KEY_SIM_PROVISIONING_STATUS_DETECTION_CARRIER_APP_STRING_ARRAY = "sim_state_detection_carrier_app_string_array"; /** * Determines whether the carrier supports making non-emergency phone calls while the phone is * in emergency callback mode. Default value is {@code true}, meaning that non-emergency calls Loading Loading @@ -798,6 +812,10 @@ public class CarrierConfigManager { sDefaults.putString(KEY_MMS_USER_AGENT_STRING, ""); sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true); sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false); // Used for Sim card State detection app sDefaults.putStringArray(KEY_SIM_PROVISIONING_STATUS_DETECTION_CARRIER_APP_STRING_ARRAY, null); } /** Loading telephony/java/android/telephony/SubscriptionInfo.java +26 −3 Original line number Diff line number Diff line Loading @@ -89,6 +89,14 @@ public class SubscriptionInfo implements Parcelable { */ private int mDataRoaming; /** * Sim Provisioning Status: * {@See SubscriptionManager#SIM_PROVISIONED} * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD} * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT} */ private int mSimProvisioningStatus; /** * SIM Icon bitmap */ Loading @@ -114,7 +122,7 @@ public class SubscriptionInfo implements Parcelable { */ public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName, CharSequence carrierName, int nameSource, int iconTint, String number, int roaming, Bitmap icon, int mcc, int mnc, String countryIso) { Bitmap icon, int mcc, int mnc, String countryIso, int simProvisioningStatus) { this.mId = id; this.mIccId = iccId; this.mSimSlotIndex = simSlotIndex; Loading @@ -128,6 +136,7 @@ public class SubscriptionInfo implements Parcelable { this.mMcc = mcc; this.mMnc = mnc; this.mCountryIso = countryIso; this.mSimProvisioningStatus = simProvisioningStatus; } /** Loading Loading @@ -263,6 +272,17 @@ public class SubscriptionInfo implements Parcelable { return this.mDataRoaming; } /** * @return Sim Provisioning Status * {@See SubscriptionManager#SIM_PROVISIONED} * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD} * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT} * @hide */ public int getSimProvisioningStatus() { return this.mSimProvisioningStatus; } /** * @return the MCC. */ Loading Loading @@ -299,10 +319,12 @@ public class SubscriptionInfo implements Parcelable { int mcc = source.readInt(); int mnc = source.readInt(); String countryIso = source.readString(); int simProvisioningStatus = source.readInt(); Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source); return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso); nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso, simProvisioningStatus); } @Override Loading @@ -325,6 +347,7 @@ public class SubscriptionInfo implements Parcelable { dest.writeInt(mMcc); dest.writeInt(mMnc); dest.writeString(mCountryIso); dest.writeInt(mSimProvisioningStatus); mIconBitmap.writeToParcel(dest, flags); } Loading Loading @@ -355,6 +378,6 @@ public class SubscriptionInfo implements Parcelable { + " displayName=" + mDisplayName + " carrierName=" + mCarrierName + " nameSource=" + mNameSource + " iconTint=" + mIconTint + " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc " + mMcc + " mnc " + mMnc + "}"; + " mnc " + mMnc + " SimProvisioningStatus " + mSimProvisioningStatus +"}"; } } telephony/java/android/telephony/SubscriptionManager.java +57 −0 Original line number Diff line number Diff line Loading @@ -232,6 +232,22 @@ public class SubscriptionManager { /** Indicates that data roaming is disabled for a subscription */ public static final int DATA_ROAMING_DISABLE = 0; /** Sim provisioning status: provisioned */ /** @hide */ public static final int SIM_PROVISIONED = 0; /** Sim provisioning status: un-provisioned due to cold sim */ /** @hide */ public static final int SIM_UNPROVISIONED_COLD = 1; /** Sim provisioning status: un-provisioned due to out of credit */ /** @hide */ public static final int SIM_UNPROVISIONED_OUT_OF_CREDIT = 2; /** Maximum possible sim provisioning status */ /** @hide */ public static final int MAX_SIM_PROVISIONING_STATUS = SIM_UNPROVISIONED_OUT_OF_CREDIT; /** @hide */ public static final int DATA_ROAMING_DEFAULT = DATA_ROAMING_DISABLE; Loading @@ -249,6 +265,13 @@ public class SubscriptionManager { */ public static final String MNC = "mnc"; /** * TelephonyProvider column name for the sim provisioning status associated with a SIM. * <P>Type: INTEGER (int)</P> * @hide */ public static final String SIM_PROVISIONING_STATUS = "sim_provisioning_status"; /** * TelephonyProvider column name for extreme threat in CB settings * @hide Loading Loading @@ -819,6 +842,40 @@ public class SubscriptionManager { return result; } /** * Set Sim Provisioning Status by subscription ID * @param simProvisioningStatus with the subscription * {@See SubscriptionManager#SIM_PROVISIONED} * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD} * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT} * @param subId the unique SubInfoRecord index in database * @return the number of records updated * Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required * @hide */ public int setSimProvisioningStatus(int simProvisioningStatus, int subId) { if (VDBG) { logd("[setSimProvisioningStatus]+ status:" + simProvisioningStatus + " subId:" + subId); } if (simProvisioningStatus < 0 || simProvisioningStatus > MAX_SIM_PROVISIONING_STATUS || !isValidSubscriptionId(subId)) { logd("[setSimProvisioningStatus]- fail"); return -1; } int result = 0; try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { result = iSub.setSimProvisioningStatus(simProvisioningStatus, subId); } } catch (RemoteException ex) { // ignore it } return result; } /** * Get slotId associated with the subscription. * @return slotId as a positive integer or a negative value if an error either Loading telephony/java/com/android/internal/telephony/DctConstants.java +1 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,7 @@ public class DctConstants { public static final int EVENT_DATA_RAT_CHANGED = BASE + 41; public static final int CMD_CLEAR_PROVISIONING_SPINNER = BASE + 42; public static final int EVENT_DEVICE_PROVISIONED_CHANGE = BASE + 43; public static final int EVENT_REDIRECTION_DETECTED = BASE + 44; /***** Constants *****/ Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -791,7 +791,7 @@ public class NetworkControllerImpl extends BroadcastReceiver private SubscriptionInfo addSignalController(int id, int simSlotIndex) { SubscriptionInfo info = new SubscriptionInfo(id, "", simSlotIndex, "", "", 0, 0, "", 0, null, 0, 0, ""); null, 0, 0, "", SubscriptionManager.SIM_PROVISIONED); mMobileSignalControllers.put(id, new MobileSignalController(mContext, mConfig, mHasMobileDataFeature, mPhone, mCallbackHandler, this, info, mSubDefaults, mReceiverHandler.getLooper())); Loading
telephony/java/android/telephony/CarrierConfigManager.java +18 −0 Original line number Diff line number Diff line Loading @@ -629,6 +629,20 @@ public class CarrierConfigManager { public static final String KEY_MMS_UA_PROF_URL_STRING = "uaProfUrl"; public static final String KEY_MMS_USER_AGENT_STRING = "userAgent"; /** * If carriers require differentiate un-provisioned status: cold sim or out of credit sim * a package name and activity name can be provided to launch a supported carrier application * that check the sim provisioning status * The first element is the package name and the second element is the activity name * of the provisioning app * example: * <item>com.google.android.carrierPackageName</item> * <item>com.google.android.carrierPackageName.CarrierActivityName</item> * @hide */ public static final String KEY_SIM_PROVISIONING_STATUS_DETECTION_CARRIER_APP_STRING_ARRAY = "sim_state_detection_carrier_app_string_array"; /** * Determines whether the carrier supports making non-emergency phone calls while the phone is * in emergency callback mode. Default value is {@code true}, meaning that non-emergency calls Loading Loading @@ -798,6 +812,10 @@ public class CarrierConfigManager { sDefaults.putString(KEY_MMS_USER_AGENT_STRING, ""); sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true); sDefaults.putBoolean(KEY_USE_RCS_PRESENCE_BOOL, false); // Used for Sim card State detection app sDefaults.putStringArray(KEY_SIM_PROVISIONING_STATUS_DETECTION_CARRIER_APP_STRING_ARRAY, null); } /** Loading
telephony/java/android/telephony/SubscriptionInfo.java +26 −3 Original line number Diff line number Diff line Loading @@ -89,6 +89,14 @@ public class SubscriptionInfo implements Parcelable { */ private int mDataRoaming; /** * Sim Provisioning Status: * {@See SubscriptionManager#SIM_PROVISIONED} * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD} * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT} */ private int mSimProvisioningStatus; /** * SIM Icon bitmap */ Loading @@ -114,7 +122,7 @@ public class SubscriptionInfo implements Parcelable { */ public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName, CharSequence carrierName, int nameSource, int iconTint, String number, int roaming, Bitmap icon, int mcc, int mnc, String countryIso) { Bitmap icon, int mcc, int mnc, String countryIso, int simProvisioningStatus) { this.mId = id; this.mIccId = iccId; this.mSimSlotIndex = simSlotIndex; Loading @@ -128,6 +136,7 @@ public class SubscriptionInfo implements Parcelable { this.mMcc = mcc; this.mMnc = mnc; this.mCountryIso = countryIso; this.mSimProvisioningStatus = simProvisioningStatus; } /** Loading Loading @@ -263,6 +272,17 @@ public class SubscriptionInfo implements Parcelable { return this.mDataRoaming; } /** * @return Sim Provisioning Status * {@See SubscriptionManager#SIM_PROVISIONED} * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD} * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT} * @hide */ public int getSimProvisioningStatus() { return this.mSimProvisioningStatus; } /** * @return the MCC. */ Loading Loading @@ -299,10 +319,12 @@ public class SubscriptionInfo implements Parcelable { int mcc = source.readInt(); int mnc = source.readInt(); String countryIso = source.readString(); int simProvisioningStatus = source.readInt(); Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source); return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName, nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso); nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso, simProvisioningStatus); } @Override Loading @@ -325,6 +347,7 @@ public class SubscriptionInfo implements Parcelable { dest.writeInt(mMcc); dest.writeInt(mMnc); dest.writeString(mCountryIso); dest.writeInt(mSimProvisioningStatus); mIconBitmap.writeToParcel(dest, flags); } Loading Loading @@ -355,6 +378,6 @@ public class SubscriptionInfo implements Parcelable { + " displayName=" + mDisplayName + " carrierName=" + mCarrierName + " nameSource=" + mNameSource + " iconTint=" + mIconTint + " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc " + mMcc + " mnc " + mMnc + "}"; + " mnc " + mMnc + " SimProvisioningStatus " + mSimProvisioningStatus +"}"; } }
telephony/java/android/telephony/SubscriptionManager.java +57 −0 Original line number Diff line number Diff line Loading @@ -232,6 +232,22 @@ public class SubscriptionManager { /** Indicates that data roaming is disabled for a subscription */ public static final int DATA_ROAMING_DISABLE = 0; /** Sim provisioning status: provisioned */ /** @hide */ public static final int SIM_PROVISIONED = 0; /** Sim provisioning status: un-provisioned due to cold sim */ /** @hide */ public static final int SIM_UNPROVISIONED_COLD = 1; /** Sim provisioning status: un-provisioned due to out of credit */ /** @hide */ public static final int SIM_UNPROVISIONED_OUT_OF_CREDIT = 2; /** Maximum possible sim provisioning status */ /** @hide */ public static final int MAX_SIM_PROVISIONING_STATUS = SIM_UNPROVISIONED_OUT_OF_CREDIT; /** @hide */ public static final int DATA_ROAMING_DEFAULT = DATA_ROAMING_DISABLE; Loading @@ -249,6 +265,13 @@ public class SubscriptionManager { */ public static final String MNC = "mnc"; /** * TelephonyProvider column name for the sim provisioning status associated with a SIM. * <P>Type: INTEGER (int)</P> * @hide */ public static final String SIM_PROVISIONING_STATUS = "sim_provisioning_status"; /** * TelephonyProvider column name for extreme threat in CB settings * @hide Loading Loading @@ -819,6 +842,40 @@ public class SubscriptionManager { return result; } /** * Set Sim Provisioning Status by subscription ID * @param simProvisioningStatus with the subscription * {@See SubscriptionManager#SIM_PROVISIONED} * {@See SubscriptionManager#SIM_UNPROVISIONED_COLD} * {@See SubscriptionManager#SIM_UNPROVISIONED_OUT_OF_CREDIT} * @param subId the unique SubInfoRecord index in database * @return the number of records updated * Permissions android.Manifest.permission.MODIFY_PHONE_STATE is required * @hide */ public int setSimProvisioningStatus(int simProvisioningStatus, int subId) { if (VDBG) { logd("[setSimProvisioningStatus]+ status:" + simProvisioningStatus + " subId:" + subId); } if (simProvisioningStatus < 0 || simProvisioningStatus > MAX_SIM_PROVISIONING_STATUS || !isValidSubscriptionId(subId)) { logd("[setSimProvisioningStatus]- fail"); return -1; } int result = 0; try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { result = iSub.setSimProvisioningStatus(simProvisioningStatus, subId); } } catch (RemoteException ex) { // ignore it } return result; } /** * Get slotId associated with the subscription. * @return slotId as a positive integer or a negative value if an error either Loading
telephony/java/com/android/internal/telephony/DctConstants.java +1 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,7 @@ public class DctConstants { public static final int EVENT_DATA_RAT_CHANGED = BASE + 41; public static final int CMD_CLEAR_PROVISIONING_SPINNER = BASE + 42; public static final int EVENT_DEVICE_PROVISIONED_CHANGE = BASE + 43; public static final int EVENT_REDIRECTION_DETECTED = BASE + 44; /***** Constants *****/ Loading