Loading proto/src/telephony.proto +120 −4 Original line number Diff line number Diff line Loading @@ -476,6 +476,96 @@ enum RilErrno { // LCE service not supported RIL_E_LCE_NOT_SUPPORTED_NEW = 37; // Not sufficient memory to process the request RIL_E_NO_MEMORY = 38; // Modem hit unexpected error scenario while handling this request RIL_E_INTERNAL_ERR = 39; // Hit platform or system error RIL_E_SYSTEM_ERR = 40; // Vendor RIL got unexpected or incorrect response from modem for this request RIL_E_MODEM_ERR = 41; // Unexpected request for the current state RIL_E_INVALID_STATE = 42; // Not sufficient resource to process the request RIL_E_NO_RESOURCES = 43; // Received error from SIM card RIL_E_SIM_ERR = 44; // Received invalid arguments in request RIL_E_INVALID_ARGUMENTS = 45; // Cannot process the request in current SIM state RIL_E_INVALID_SIM_STATE = 46; // Cannot process the request in current Modem state RIL_E_INVALID_MODEM_STATE = 47; // Received invalid call id in request RIL_E_INVALID_CALL_ID = 48; // ACK received when there is no SMS to ack RIL_E_NO_SMS_TO_ACK = 49; // Received error from network RIL_E_NETWORK_ERR = 50; // Operation denied due to overly-frequent requests RIL_E_REQUEST_RATE_LIMITED = 51; // SIM is busy RIL_E_SIM_BUSY = 52; // The target EF is full RIL_E_SIM_FULL = 53; // Request is rejected by network RIL_E_NETWORK_REJECT = 54; // Not allowed the request now RIL_E_OPERATION_NOT_ALLOWED = 55; // The request record is empty RIL_E_EMPTY_RECORD = 56; // Invalid sms format RIL_E_INVALID_SMS_FORMAT = 57; // Message not encoded properly RIL_E_ENCODING_ERR = 58; // SMSC address specified is invalid RIL_E_INVALID_SMSC_ADDRESS = 59; // No such entry present to perform the request RIL_E_NO_SUCH_ENTRY = 60; // Network is not ready to perform the request RIL_E_NETWORK_NOT_READY = 61; // Device does not have this value provisioned RIL_E_NOT_PROVISIONED = 62; // Device does not have subscription RIL_E_NO_SUBSCRIPTION = 63; // Network cannot be found RIL_E_NO_NETWORK_FOUND = 64; // Operation cannot be performed because the device is currently in use RIL_E_DEVICE_IN_USE = 65; // Operation aborted RIL_E_ABORTED = 66; // Invalid response sent by vendor code RIL_E_INVALID_RESPONSE = 67; } // PDP_type values in TS 27.007 section 10.1.1. Loading Loading @@ -553,6 +643,9 @@ message TelephonyEvent { // Carrier Identification Matching Event CARRIER_ID_MATCHING = 13; // Carrier Key Change event. CARRIER_KEY_CHANGED = 14; } // Setup a packet data connection Loading Loading @@ -743,6 +836,26 @@ message TelephonyEvent { optional RilDataCall call = 3; } // Carrier Key Change Event. message CarrierKeyChange { enum KeyType { // Key Type Unknown. UNKNOWN = 0; // Key Type for WLAN. WLAN = 1; // Key Type for EPDG. EPDG = 2; } // Key type of the Encryption key. optional KeyType key_type = 1; // Whether the download was successful or not. optional bool isDownloadSuccessful = 2; } // Deactivate packet data connection message RilDeactivateDataCall { Loading Loading @@ -850,6 +963,9 @@ message TelephonyEvent { // Carrier id matching event optional CarrierIdMatching carrier_id_matching = 16; // Carrier key change optional CarrierKeyChange carrier_key_change = 17; } enum TimeInterval { Loading Loading @@ -1229,16 +1345,16 @@ message SmsSession { message CBMessage { // CB message format optional Format msgFormat = 1; optional Format msg_format = 1; // CB message priority optional CBPriority msgPriority = 2; optional CBPriority msg_priority = 2; // Type of CB msg optional CBMessageType msgType = 3; optional CBMessageType msg_type = 3; // Service category of CB message optional int32 serviceCategory = 4; optional int32 service_category = 4; } enum CBMessageType { Loading src/java/com/android/internal/telephony/CarrierIdentifier.java +2 −0 Original line number Diff line number Diff line Loading @@ -211,11 +211,13 @@ public class CarrierIdentifier extends Handler { if (mIccRecords != null) { logd("Removing stale icc objects."); mIccRecords.unregisterForRecordsLoaded(this); mIccRecords.unregisterForRecordsOverride(this); mIccRecords = null; } if (newIccRecords != null) { logd("new Icc object"); newIccRecords.registerForRecordsLoaded(this, SIM_LOAD_EVENT, null); newIccRecords.registerForRecordsOverride(this, SIM_LOAD_EVENT, null); mIccRecords = newIccRecords; } } Loading src/java/com/android/internal/telephony/CarrierInfoManager.java +24 −15 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; import com.android.internal.telephony.metrics.TelephonyMetrics; import java.util.Date; /** Loading @@ -50,30 +52,30 @@ public class CarrierInfoManager { /** * Returns Carrier specific information that will be used to encrypt the IMSI and IMPI. * @param keyType whether the key is being used for WLAN or ePDG. * @param mContext * @param context * @return ImsiEncryptionInfo which contains the information, including the public key, to be * used for encryption. */ public static ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int keyType, Context mContext) { Context context) { String mcc = ""; String mnc = ""; final TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); String networkOperator = telephonyManager.getNetworkOperator(); if (!TextUtils.isEmpty(networkOperator)) { mcc = networkOperator.substring(0, 3); mnc = networkOperator.substring(3); (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String simOperator = telephonyManager.getSimOperator(); if (!TextUtils.isEmpty(simOperator)) { mcc = simOperator.substring(0, 3); mnc = simOperator.substring(3); Log.i(LOG_TAG, "using values for mnc, mcc: " + mnc + "," + mcc); } else { Log.e(LOG_TAG, "Invalid networkOperator: " + networkOperator); Log.e(LOG_TAG, "Invalid networkOperator: " + simOperator); return null; } Cursor findCursor = null; try { // In the current design, MVNOs are not supported. If we decide to support them, // we'll need to add to this CL. ContentResolver mContentResolver = mContext.getContentResolver(); ContentResolver mContentResolver = context.getContentResolver(); String[] columns = {Telephony.CarrierColumns.PUBLIC_KEY, Telephony.CarrierColumns.EXPIRATION_TIME, Telephony.CarrierColumns.KEY_IDENTIFIER}; Loading Loading @@ -107,12 +109,13 @@ public class CarrierInfoManager { /** * Inserts or update the Carrier Key in the database * @param imsiEncryptionInfo ImsiEncryptionInfo object. * @param mContext Context. * @param context Context. */ public static void updateOrInsertCarrierKey(ImsiEncryptionInfo imsiEncryptionInfo, Context mContext) { Context context, int phoneId) { byte[] keyBytes = imsiEncryptionInfo.getPublicKey().getEncoded(); ContentResolver mContentResolver = mContext.getContentResolver(); ContentResolver mContentResolver = context.getContentResolver(); TelephonyMetrics tm = TelephonyMetrics.getInstance(); // In the current design, MVNOs are not supported. If we decide to support them, // we'll need to add to this CL. ContentValues contentValues = new ContentValues(); Loading @@ -125,6 +128,7 @@ public class CarrierInfoManager { contentValues.put(Telephony.CarrierColumns.PUBLIC_KEY, keyBytes); contentValues.put(Telephony.CarrierColumns.EXPIRATION_TIME, imsiEncryptionInfo.getExpirationTime().getTime()); boolean downloadSuccessfull = true; try { Log.i(LOG_TAG, "Inserting imsiEncryptionInfo into db"); mContentResolver.insert(Telephony.CarrierColumns.CONTENT_URI, contentValues); Loading @@ -145,12 +149,17 @@ public class CarrierInfoManager { String.valueOf(imsiEncryptionInfo.getKeyType())}); if (nRows == 0) { Log.d(LOG_TAG, "Error updating values:" + imsiEncryptionInfo); downloadSuccessfull = false; } } catch (Exception ex) { Log.d(LOG_TAG, "Error updating values:" + imsiEncryptionInfo + ex); downloadSuccessfull = false; } } catch (Exception e) { Log.d(LOG_TAG, "Error inserting/updating values:" + imsiEncryptionInfo + e); downloadSuccessfull = false; } finally { tm.writeCarrierKeyEvent(phoneId, imsiEncryptionInfo.getKeyType(), downloadSuccessfull); } } Loading @@ -162,12 +171,12 @@ public class CarrierInfoManager { * {@link java.security.PublicKey} and the Key Identifier. * The keyIdentifier Attribute value pair that helps a server locate * the private key to decrypt the permanent identity. * @param mContext Context. * @param context Context. */ public static void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo, Context mContext) { Context context, int phoneId) { Log.i(LOG_TAG, "inserting carrier key: " + imsiEncryptionInfo); updateOrInsertCarrierKey(imsiEncryptionInfo, mContext); updateOrInsertCarrierKey(imsiEncryptionInfo, context, phoneId); //todo send key to modem. Will be done in a subsequent CL. } Loading src/java/com/android/internal/telephony/CarrierServiceStateTracker.java +1 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,7 @@ public class CarrierServiceStateTracker extends Handler { CarrierConfigManager carrierConfigManager = (CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = carrierConfigManager.getConfigForSubId(mPhone.getSubId()); for (Map.Entry<Integer, NotificationType> entry : mNotificationTypeMap.entrySet()) { NotificationType notificationType = entry.getValue(); notificationType.setDelay(b); Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +28 −18 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static com.android.internal.telephony.CommandsInterface.CF_REASON_UNCONDI import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_VOICE; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.ContentValues; Loading Loading @@ -1387,7 +1388,11 @@ public class GsmCdmaPhone extends Phone { if (b != null) { String defaultVmNumber = b.getString(CarrierConfigManager.KEY_DEFAULT_VM_NUMBER_STRING); if (!TextUtils.isEmpty(defaultVmNumber)) { String defaultVmNumberRoaming = b.getString(CarrierConfigManager.KEY_DEFAULT_VM_NUMBER_ROAMING_STRING); if (!TextUtils.isEmpty(defaultVmNumberRoaming) && mSST.mSS.getRoaming()) { number = defaultVmNumberRoaming; } else { number = defaultVmNumber; } } Loading Loading @@ -1504,15 +1509,20 @@ public class GsmCdmaPhone extends Phone { } @Override @Nullable public String getSubscriberId() { if (isPhoneTypeGsm()) { IccRecords r = mIccRecords.get(); return (r != null) ? r.getIMSI() : null; } else if (isPhoneTypeCdma()) { return mSST.getImsi(); } else { //isPhoneTypeCdmaLte() return (mSimRecords != null) ? mSimRecords.getIMSI() : ""; String subscriberId = null; if (isPhoneTypeCdma()) { subscriberId = mSST.getImsi(); } else { // Both Gsm and CdmaLte get the IMSI from Usim. IccRecords iccRecords = mUiccController.getIccRecords( mPhoneId, UiccController.APP_FAM_3GPP); if (iccRecords != null) { subscriberId = iccRecords.getIMSI(); } } return subscriberId; } @Override Loading @@ -1522,7 +1532,7 @@ public class GsmCdmaPhone extends Phone { @Override public void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo) { CarrierInfoManager.setCarrierInfoForImsiEncryption(imsiEncryptionInfo, mContext); CarrierInfoManager.setCarrierInfoForImsiEncryption(imsiEncryptionInfo, mContext, mPhoneId); } @Override Loading @@ -1536,13 +1546,13 @@ public class GsmCdmaPhone extends Phone { } @Override public void resetCarrierKeysForImsiEncryption() { mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId); public int getCarrierIdListVersion() { return mCarrerIdentifier.getCarrierListVersion(); } @Override public int getCarrierIdListVersion() { return mCarrerIdentifier.getCarrierListVersion(); public void resetCarrierKeysForImsiEncryption() { mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId); } @Override Loading Loading @@ -2339,14 +2349,14 @@ public class GsmCdmaPhone extends Phone { int current_cdma_roaming_mode = Settings.Global.getInt(getContext().getContentResolver(), Settings.Global.CDMA_ROAMING_MODE, CarrierConfigManager.CDMA_ROAMING_MODE_RADIO_DEFAULT); TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT); switch (config_cdma_roaming_mode) { // Carrier's cdma_roaming_mode will overwrite the user's previous settings // Keep the user's previous setting in global variable which will be used // when carrier's setting is turn off. case CarrierConfigManager.CDMA_ROAMING_MODE_HOME: case CarrierConfigManager.CDMA_ROAMING_MODE_AFFILIATED: case CarrierConfigManager.CDMA_ROAMING_MODE_ANY: case TelephonyManager.CDMA_ROAMING_MODE_HOME: case TelephonyManager.CDMA_ROAMING_MODE_AFFILIATED: case TelephonyManager.CDMA_ROAMING_MODE_ANY: logd("cdma_roaming_mode is going to changed to " + config_cdma_roaming_mode); setCdmaRoamingPreference(config_cdma_roaming_mode, Loading @@ -2355,7 +2365,7 @@ public class GsmCdmaPhone extends Phone { // When carrier's setting is turn off, change the cdma_roaming_mode to the // previous user's setting case CarrierConfigManager.CDMA_ROAMING_MODE_RADIO_DEFAULT: case TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT: if (current_cdma_roaming_mode != config_cdma_roaming_mode) { logd("cdma_roaming_mode is going to changed to " + current_cdma_roaming_mode); Loading Loading
proto/src/telephony.proto +120 −4 Original line number Diff line number Diff line Loading @@ -476,6 +476,96 @@ enum RilErrno { // LCE service not supported RIL_E_LCE_NOT_SUPPORTED_NEW = 37; // Not sufficient memory to process the request RIL_E_NO_MEMORY = 38; // Modem hit unexpected error scenario while handling this request RIL_E_INTERNAL_ERR = 39; // Hit platform or system error RIL_E_SYSTEM_ERR = 40; // Vendor RIL got unexpected or incorrect response from modem for this request RIL_E_MODEM_ERR = 41; // Unexpected request for the current state RIL_E_INVALID_STATE = 42; // Not sufficient resource to process the request RIL_E_NO_RESOURCES = 43; // Received error from SIM card RIL_E_SIM_ERR = 44; // Received invalid arguments in request RIL_E_INVALID_ARGUMENTS = 45; // Cannot process the request in current SIM state RIL_E_INVALID_SIM_STATE = 46; // Cannot process the request in current Modem state RIL_E_INVALID_MODEM_STATE = 47; // Received invalid call id in request RIL_E_INVALID_CALL_ID = 48; // ACK received when there is no SMS to ack RIL_E_NO_SMS_TO_ACK = 49; // Received error from network RIL_E_NETWORK_ERR = 50; // Operation denied due to overly-frequent requests RIL_E_REQUEST_RATE_LIMITED = 51; // SIM is busy RIL_E_SIM_BUSY = 52; // The target EF is full RIL_E_SIM_FULL = 53; // Request is rejected by network RIL_E_NETWORK_REJECT = 54; // Not allowed the request now RIL_E_OPERATION_NOT_ALLOWED = 55; // The request record is empty RIL_E_EMPTY_RECORD = 56; // Invalid sms format RIL_E_INVALID_SMS_FORMAT = 57; // Message not encoded properly RIL_E_ENCODING_ERR = 58; // SMSC address specified is invalid RIL_E_INVALID_SMSC_ADDRESS = 59; // No such entry present to perform the request RIL_E_NO_SUCH_ENTRY = 60; // Network is not ready to perform the request RIL_E_NETWORK_NOT_READY = 61; // Device does not have this value provisioned RIL_E_NOT_PROVISIONED = 62; // Device does not have subscription RIL_E_NO_SUBSCRIPTION = 63; // Network cannot be found RIL_E_NO_NETWORK_FOUND = 64; // Operation cannot be performed because the device is currently in use RIL_E_DEVICE_IN_USE = 65; // Operation aborted RIL_E_ABORTED = 66; // Invalid response sent by vendor code RIL_E_INVALID_RESPONSE = 67; } // PDP_type values in TS 27.007 section 10.1.1. Loading Loading @@ -553,6 +643,9 @@ message TelephonyEvent { // Carrier Identification Matching Event CARRIER_ID_MATCHING = 13; // Carrier Key Change event. CARRIER_KEY_CHANGED = 14; } // Setup a packet data connection Loading Loading @@ -743,6 +836,26 @@ message TelephonyEvent { optional RilDataCall call = 3; } // Carrier Key Change Event. message CarrierKeyChange { enum KeyType { // Key Type Unknown. UNKNOWN = 0; // Key Type for WLAN. WLAN = 1; // Key Type for EPDG. EPDG = 2; } // Key type of the Encryption key. optional KeyType key_type = 1; // Whether the download was successful or not. optional bool isDownloadSuccessful = 2; } // Deactivate packet data connection message RilDeactivateDataCall { Loading Loading @@ -850,6 +963,9 @@ message TelephonyEvent { // Carrier id matching event optional CarrierIdMatching carrier_id_matching = 16; // Carrier key change optional CarrierKeyChange carrier_key_change = 17; } enum TimeInterval { Loading Loading @@ -1229,16 +1345,16 @@ message SmsSession { message CBMessage { // CB message format optional Format msgFormat = 1; optional Format msg_format = 1; // CB message priority optional CBPriority msgPriority = 2; optional CBPriority msg_priority = 2; // Type of CB msg optional CBMessageType msgType = 3; optional CBMessageType msg_type = 3; // Service category of CB message optional int32 serviceCategory = 4; optional int32 service_category = 4; } enum CBMessageType { Loading
src/java/com/android/internal/telephony/CarrierIdentifier.java +2 −0 Original line number Diff line number Diff line Loading @@ -211,11 +211,13 @@ public class CarrierIdentifier extends Handler { if (mIccRecords != null) { logd("Removing stale icc objects."); mIccRecords.unregisterForRecordsLoaded(this); mIccRecords.unregisterForRecordsOverride(this); mIccRecords = null; } if (newIccRecords != null) { logd("new Icc object"); newIccRecords.registerForRecordsLoaded(this, SIM_LOAD_EVENT, null); newIccRecords.registerForRecordsOverride(this, SIM_LOAD_EVENT, null); mIccRecords = newIccRecords; } } Loading
src/java/com/android/internal/telephony/CarrierInfoManager.java +24 −15 Original line number Diff line number Diff line Loading @@ -29,6 +29,8 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.Log; import com.android.internal.telephony.metrics.TelephonyMetrics; import java.util.Date; /** Loading @@ -50,30 +52,30 @@ public class CarrierInfoManager { /** * Returns Carrier specific information that will be used to encrypt the IMSI and IMPI. * @param keyType whether the key is being used for WLAN or ePDG. * @param mContext * @param context * @return ImsiEncryptionInfo which contains the information, including the public key, to be * used for encryption. */ public static ImsiEncryptionInfo getCarrierInfoForImsiEncryption(int keyType, Context mContext) { Context context) { String mcc = ""; String mnc = ""; final TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); String networkOperator = telephonyManager.getNetworkOperator(); if (!TextUtils.isEmpty(networkOperator)) { mcc = networkOperator.substring(0, 3); mnc = networkOperator.substring(3); (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); String simOperator = telephonyManager.getSimOperator(); if (!TextUtils.isEmpty(simOperator)) { mcc = simOperator.substring(0, 3); mnc = simOperator.substring(3); Log.i(LOG_TAG, "using values for mnc, mcc: " + mnc + "," + mcc); } else { Log.e(LOG_TAG, "Invalid networkOperator: " + networkOperator); Log.e(LOG_TAG, "Invalid networkOperator: " + simOperator); return null; } Cursor findCursor = null; try { // In the current design, MVNOs are not supported. If we decide to support them, // we'll need to add to this CL. ContentResolver mContentResolver = mContext.getContentResolver(); ContentResolver mContentResolver = context.getContentResolver(); String[] columns = {Telephony.CarrierColumns.PUBLIC_KEY, Telephony.CarrierColumns.EXPIRATION_TIME, Telephony.CarrierColumns.KEY_IDENTIFIER}; Loading Loading @@ -107,12 +109,13 @@ public class CarrierInfoManager { /** * Inserts or update the Carrier Key in the database * @param imsiEncryptionInfo ImsiEncryptionInfo object. * @param mContext Context. * @param context Context. */ public static void updateOrInsertCarrierKey(ImsiEncryptionInfo imsiEncryptionInfo, Context mContext) { Context context, int phoneId) { byte[] keyBytes = imsiEncryptionInfo.getPublicKey().getEncoded(); ContentResolver mContentResolver = mContext.getContentResolver(); ContentResolver mContentResolver = context.getContentResolver(); TelephonyMetrics tm = TelephonyMetrics.getInstance(); // In the current design, MVNOs are not supported. If we decide to support them, // we'll need to add to this CL. ContentValues contentValues = new ContentValues(); Loading @@ -125,6 +128,7 @@ public class CarrierInfoManager { contentValues.put(Telephony.CarrierColumns.PUBLIC_KEY, keyBytes); contentValues.put(Telephony.CarrierColumns.EXPIRATION_TIME, imsiEncryptionInfo.getExpirationTime().getTime()); boolean downloadSuccessfull = true; try { Log.i(LOG_TAG, "Inserting imsiEncryptionInfo into db"); mContentResolver.insert(Telephony.CarrierColumns.CONTENT_URI, contentValues); Loading @@ -145,12 +149,17 @@ public class CarrierInfoManager { String.valueOf(imsiEncryptionInfo.getKeyType())}); if (nRows == 0) { Log.d(LOG_TAG, "Error updating values:" + imsiEncryptionInfo); downloadSuccessfull = false; } } catch (Exception ex) { Log.d(LOG_TAG, "Error updating values:" + imsiEncryptionInfo + ex); downloadSuccessfull = false; } } catch (Exception e) { Log.d(LOG_TAG, "Error inserting/updating values:" + imsiEncryptionInfo + e); downloadSuccessfull = false; } finally { tm.writeCarrierKeyEvent(phoneId, imsiEncryptionInfo.getKeyType(), downloadSuccessfull); } } Loading @@ -162,12 +171,12 @@ public class CarrierInfoManager { * {@link java.security.PublicKey} and the Key Identifier. * The keyIdentifier Attribute value pair that helps a server locate * the private key to decrypt the permanent identity. * @param mContext Context. * @param context Context. */ public static void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo, Context mContext) { Context context, int phoneId) { Log.i(LOG_TAG, "inserting carrier key: " + imsiEncryptionInfo); updateOrInsertCarrierKey(imsiEncryptionInfo, mContext); updateOrInsertCarrierKey(imsiEncryptionInfo, context, phoneId); //todo send key to modem. Will be done in a subsequent CL. } Loading
src/java/com/android/internal/telephony/CarrierServiceStateTracker.java +1 −0 Original line number Diff line number Diff line Loading @@ -281,6 +281,7 @@ public class CarrierServiceStateTracker extends Handler { CarrierConfigManager carrierConfigManager = (CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE); PersistableBundle b = carrierConfigManager.getConfigForSubId(mPhone.getSubId()); for (Map.Entry<Integer, NotificationType> entry : mNotificationTypeMap.entrySet()) { NotificationType notificationType = entry.getValue(); notificationType.setDelay(b); Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +28 −18 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import static com.android.internal.telephony.CommandsInterface.CF_REASON_UNCONDI import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_VOICE; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.ContentValues; Loading Loading @@ -1387,7 +1388,11 @@ public class GsmCdmaPhone extends Phone { if (b != null) { String defaultVmNumber = b.getString(CarrierConfigManager.KEY_DEFAULT_VM_NUMBER_STRING); if (!TextUtils.isEmpty(defaultVmNumber)) { String defaultVmNumberRoaming = b.getString(CarrierConfigManager.KEY_DEFAULT_VM_NUMBER_ROAMING_STRING); if (!TextUtils.isEmpty(defaultVmNumberRoaming) && mSST.mSS.getRoaming()) { number = defaultVmNumberRoaming; } else { number = defaultVmNumber; } } Loading Loading @@ -1504,15 +1509,20 @@ public class GsmCdmaPhone extends Phone { } @Override @Nullable public String getSubscriberId() { if (isPhoneTypeGsm()) { IccRecords r = mIccRecords.get(); return (r != null) ? r.getIMSI() : null; } else if (isPhoneTypeCdma()) { return mSST.getImsi(); } else { //isPhoneTypeCdmaLte() return (mSimRecords != null) ? mSimRecords.getIMSI() : ""; String subscriberId = null; if (isPhoneTypeCdma()) { subscriberId = mSST.getImsi(); } else { // Both Gsm and CdmaLte get the IMSI from Usim. IccRecords iccRecords = mUiccController.getIccRecords( mPhoneId, UiccController.APP_FAM_3GPP); if (iccRecords != null) { subscriberId = iccRecords.getIMSI(); } } return subscriberId; } @Override Loading @@ -1522,7 +1532,7 @@ public class GsmCdmaPhone extends Phone { @Override public void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo) { CarrierInfoManager.setCarrierInfoForImsiEncryption(imsiEncryptionInfo, mContext); CarrierInfoManager.setCarrierInfoForImsiEncryption(imsiEncryptionInfo, mContext, mPhoneId); } @Override Loading @@ -1536,13 +1546,13 @@ public class GsmCdmaPhone extends Phone { } @Override public void resetCarrierKeysForImsiEncryption() { mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId); public int getCarrierIdListVersion() { return mCarrerIdentifier.getCarrierListVersion(); } @Override public int getCarrierIdListVersion() { return mCarrerIdentifier.getCarrierListVersion(); public void resetCarrierKeysForImsiEncryption() { mCIM.resetCarrierKeysForImsiEncryption(mContext, mPhoneId); } @Override Loading Loading @@ -2339,14 +2349,14 @@ public class GsmCdmaPhone extends Phone { int current_cdma_roaming_mode = Settings.Global.getInt(getContext().getContentResolver(), Settings.Global.CDMA_ROAMING_MODE, CarrierConfigManager.CDMA_ROAMING_MODE_RADIO_DEFAULT); TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT); switch (config_cdma_roaming_mode) { // Carrier's cdma_roaming_mode will overwrite the user's previous settings // Keep the user's previous setting in global variable which will be used // when carrier's setting is turn off. case CarrierConfigManager.CDMA_ROAMING_MODE_HOME: case CarrierConfigManager.CDMA_ROAMING_MODE_AFFILIATED: case CarrierConfigManager.CDMA_ROAMING_MODE_ANY: case TelephonyManager.CDMA_ROAMING_MODE_HOME: case TelephonyManager.CDMA_ROAMING_MODE_AFFILIATED: case TelephonyManager.CDMA_ROAMING_MODE_ANY: logd("cdma_roaming_mode is going to changed to " + config_cdma_roaming_mode); setCdmaRoamingPreference(config_cdma_roaming_mode, Loading @@ -2355,7 +2365,7 @@ public class GsmCdmaPhone extends Phone { // When carrier's setting is turn off, change the cdma_roaming_mode to the // previous user's setting case CarrierConfigManager.CDMA_ROAMING_MODE_RADIO_DEFAULT: case TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT: if (current_cdma_roaming_mode != config_cdma_roaming_mode) { logd("cdma_roaming_mode is going to changed to " + current_cdma_roaming_mode); Loading