Merge "Block incoming SMS if SMS is not supported." into main
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
index 5a73cae..f190a43 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -775,6 +775,7 @@
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
@Override
public int getPhoneType() {
+ if (mFeatureFlags.cleanupCdma()) return PhoneConstants.PHONE_TYPE_GSM;
if (mPrecisePhoneType == PhoneConstants.PHONE_TYPE_GSM) {
return PhoneConstants.PHONE_TYPE_GSM;
} else {
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index a2b919f..0c645a0 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -2284,6 +2284,7 @@
* @param response is callback message to report one of TelephonyManager#CDMA_ROAMING_MODE_*
*/
public void queryCdmaRoamingPreference(Message response) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.queryCdmaRoamingPreference(response);
}
@@ -2293,6 +2294,7 @@
* @param response is callback message to report one of TelephonyManager#CDMA_SUBSCRIPTION_*
*/
public void queryCdmaSubscriptionMode(Message response) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.getCdmaSubscriptionSource(response);
}
@@ -2330,6 +2332,7 @@
* @param response is callback message
*/
public void setCdmaRoamingPreference(int cdmaRoamingType, Message response) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.setCdmaRoamingPreference(cdmaRoamingType, response);
}
@@ -2339,6 +2342,7 @@
* @param response is callback message
*/
public void setCdmaSubscriptionMode(int cdmaSubscriptionType, Message response) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.setCdmaSubscriptionSource(cdmaSubscriptionType, response);
}
@@ -2775,6 +2779,7 @@
* @param workSource calling WorkSource
*/
public void nvReadItem(int itemID, Message response, WorkSource workSource) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.nvReadItem(itemID, response, workSource);
}
@@ -2789,6 +2794,7 @@
*/
public void nvWriteItem(int itemID, String itemValue, Message response,
WorkSource workSource) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.nvWriteItem(itemID, itemValue, response, workSource);
}
@@ -2800,6 +2806,7 @@
* @param response Callback message.
*/
public void nvWriteCdmaPrl(byte[] preferredRoamingList, Message response) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.nvWriteCdmaPrl(preferredRoamingList, response);
}
@@ -3513,6 +3520,7 @@
* @param obj User object.
*/
public void registerForNumberInfo(Handler h, int what, Object obj) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.registerForNumberInfo(h, what, obj);
}
@@ -3523,6 +3531,7 @@
* @param h Handler to be removed from the registrant list.
*/
public void unregisterForNumberInfo(Handler h) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.unregisterForNumberInfo(h);
}
@@ -3538,6 +3547,7 @@
* @param obj User object.
*/
public void registerForRedirectedNumberInfo(Handler h, int what, Object obj) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.registerForRedirectedNumberInfo(h, what, obj);
}
@@ -3548,6 +3558,7 @@
* @param h Handler to be removed from the registrant list.
*/
public void unregisterForRedirectedNumberInfo(Handler h) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.unregisterForRedirectedNumberInfo(h);
}
@@ -3563,6 +3574,7 @@
* @param obj User object.
*/
public void registerForLineControlInfo(Handler h, int what, Object obj) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.registerForLineControlInfo(h, what, obj);
}
@@ -3573,6 +3585,7 @@
* @param h Handler to be removed from the registrant list.
*/
public void unregisterForLineControlInfo(Handler h) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.unregisterForLineControlInfo(h);
}
@@ -3588,6 +3601,7 @@
* @param obj User object.
*/
public void registerFoT53ClirlInfo(Handler h, int what, Object obj) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.registerFoT53ClirlInfo(h, what, obj);
}
@@ -3598,6 +3612,7 @@
* @param h Handler to be removed from the registrant list.
*/
public void unregisterForT53ClirInfo(Handler h) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.unregisterForT53ClirInfo(h);
}
@@ -3613,6 +3628,7 @@
* @param obj User object.
*/
public void registerForT53AudioControlInfo(Handler h, int what, Object obj) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.registerForT53AudioControlInfo(h, what, obj);
}
@@ -3623,6 +3639,7 @@
* @param h Handler to be removed from the registrant list.
*/
public void unregisterForT53AudioControlInfo(Handler h) {
+ if (mFeatureFlags.cleanupCdma()) return;
mCi.unregisterForT53AudioControlInfo(h);
}
@@ -4161,8 +4178,11 @@
setRoamingOverrideHelper(gsmRoamingList, GSM_ROAMING_LIST_OVERRIDE_PREFIX, iccId);
setRoamingOverrideHelper(gsmNonRoamingList, GSM_NON_ROAMING_LIST_OVERRIDE_PREFIX, iccId);
- setRoamingOverrideHelper(cdmaRoamingList, CDMA_ROAMING_LIST_OVERRIDE_PREFIX, iccId);
- setRoamingOverrideHelper(cdmaNonRoamingList, CDMA_NON_ROAMING_LIST_OVERRIDE_PREFIX, iccId);
+ if (!mFeatureFlags.cleanupCdma()) {
+ setRoamingOverrideHelper(cdmaRoamingList, CDMA_ROAMING_LIST_OVERRIDE_PREFIX, iccId);
+ setRoamingOverrideHelper(cdmaNonRoamingList, CDMA_NON_ROAMING_LIST_OVERRIDE_PREFIX,
+ iccId);
+ }
// Refresh.
ServiceStateTracker tracker = getServiceStateTracker();
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index 1bb9984..39b6d37 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -1125,6 +1125,9 @@
SparseArray<RadioServiceProxy> proxies, @NonNull FeatureFlags flags) {
super(context);
mFeatureFlags = flags;
+ if (mFeatureFlags.cleanupCdma()) {
+ cdmaSubscription = TelephonyManager.CDMA_SUBSCRIPTION_UNKNOWN;
+ }
if (RILJ_LOGD) {
riljLog("RIL: init allowedNetworkTypes=" + allowedNetworkTypes
+ " cdmaSubscription=" + cdmaSubscription + ")");
@@ -3218,6 +3221,8 @@
@Override
public void setCdmaSubscriptionSource(int cdmaSubscription, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioSimProxy simProxy = getRadioServiceProxy(RadioSimProxy.class);
if (!canMakeRequest("setCdmaSubscriptionSource", simProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -3238,6 +3243,8 @@
@Override
public void queryCdmaRoamingPreference(Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class);
if (!canMakeRequest("queryCdmaRoamingPreference", networkProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3258,6 +3265,8 @@
@Override
public void setCdmaRoamingPreference(int cdmaRoamingType, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioNetworkProxy networkProxy = getRadioServiceProxy(RadioNetworkProxy.class);
if (!canMakeRequest("setCdmaRoamingPreference", networkProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3357,6 +3366,8 @@
@Override
public void sendCDMAFeatureCode(String featureCode, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioVoiceProxy voiceProxy = getRadioServiceProxy(RadioVoiceProxy.class);
if (!canMakeRequest("sendCDMAFeatureCode", voiceProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -3397,6 +3408,8 @@
@Override
public void sendCdmaSMSExpectMore(byte[] pdu, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("sendCdmaSMSExpectMore", messagingProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3423,6 +3436,8 @@
@Override
public void sendCdmaSms(byte[] pdu, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("sendCdmaSms", messagingProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -3444,6 +3459,8 @@
@Override
public void acknowledgeLastIncomingCdmaSms(boolean success, int cause, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("acknowledgeLastIncomingCdmaSms", messagingProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3531,6 +3548,8 @@
@Override
public void getCdmaBroadcastConfig(Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("getCdmaBroadcastConfig", messagingProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3551,6 +3570,8 @@
@Override
public void setCdmaBroadcastConfig(CdmaSmsBroadcastConfigInfo[] configs, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("setCdmaBroadcastConfig", messagingProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3575,6 +3596,8 @@
@Override
public void setCdmaBroadcastActivation(boolean activate, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("setCdmaBroadcastActivation", messagingProxy, result,
RADIO_HAL_VERSION_1_4)) {
@@ -3596,6 +3619,8 @@
@Override
public void getCDMASubscription(Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioSimProxy simProxy = getRadioServiceProxy(RadioSimProxy.class);
if (!canMakeRequest("getCDMASubscription", simProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -3634,6 +3659,8 @@
@Override
public void deleteSmsOnRuim(int index, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioMessagingProxy messagingProxy = getRadioServiceProxy(RadioMessagingProxy.class);
if (!canMakeRequest("deleteSmsOnRuim", messagingProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -3787,6 +3814,8 @@
@Override
public void getCdmaSubscriptionSource(Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioSimProxy simProxy = getRadioServiceProxy(RadioSimProxy.class);
if (!canMakeRequest("getCdmaSubscriptionSource", simProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -4074,6 +4103,8 @@
@Override
public void nvReadItem(int itemID, Message result, WorkSource workSource) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioModemProxy modemProxy = getRadioServiceProxy(RadioModemProxy.class);
if (!canMakeRequest("nvReadItem", modemProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -4094,6 +4125,8 @@
@Override
public void nvWriteItem(int itemId, String itemValue, Message result, WorkSource workSource) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioModemProxy modemProxy = getRadioServiceProxy(RadioModemProxy.class);
if (!canMakeRequest("nvWriteItem", modemProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -4115,6 +4148,8 @@
@Override
public void nvWriteCdmaPrl(byte[] preferredRoamingList, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioModemProxy modemProxy = getRadioServiceProxy(RadioModemProxy.class);
if (!canMakeRequest("nvWriteCdmaPrl", modemProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -4135,6 +4170,8 @@
@Override
public void nvResetConfig(int resetType, Message result) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
RadioModemProxy modemProxy = getRadioServiceProxy(RadioModemProxy.class);
if (!canMakeRequest("nvResetConfig", modemProxy, result, RADIO_HAL_VERSION_1_4)) {
return;
@@ -6118,6 +6155,8 @@
@UnsupportedAppUsage
void notifyRegistrantsCdmaInfoRec(CdmaInformationRecords infoRec) {
+ if (mFeatureFlags.cleanupCdma()) return;
+
int response = RIL_UNSOL_CDMA_INFO_REC;
if (infoRec.record instanceof CdmaInformationRecords.CdmaDisplayInfoRec) {
if (mDisplayInfoRegistrants != null) {
diff --git a/src/java/com/android/internal/telephony/RILUtils.java b/src/java/com/android/internal/telephony/RILUtils.java
index eb86499..15e2374 100644
--- a/src/java/com/android/internal/telephony/RILUtils.java
+++ b/src/java/com/android/internal/telephony/RILUtils.java
@@ -2929,6 +2929,7 @@
*/
public static CellSignalStrengthGsm convertHalGsmSignalStrength(
android.hardware.radio.V1_0.GsmSignalStrength ss) {
+ if (ss == null) return new CellSignalStrengthGsm();
CellSignalStrengthGsm ret = new CellSignalStrengthGsm(
CellSignalStrength.getRssiDbmFromAsu(ss.signalStrength), ss.bitErrorRate,
ss.timingAdvance);
@@ -2946,6 +2947,7 @@
*/
public static CellSignalStrengthGsm convertHalGsmSignalStrength(
android.hardware.radio.network.GsmSignalStrength ss) {
+ if (ss == null) return new CellSignalStrengthGsm();
CellSignalStrengthGsm ret = new CellSignalStrengthGsm(
CellSignalStrength.getRssiDbmFromAsu(ss.signalStrength), ss.bitErrorRate,
ss.timingAdvance);
@@ -2966,6 +2968,7 @@
public static CellSignalStrengthCdma convertHalCdmaSignalStrength(
android.hardware.radio.V1_0.CdmaSignalStrength cdma,
android.hardware.radio.V1_0.EvdoSignalStrength evdo) {
+ if (cdma == null || evdo == null) return new CellSignalStrengthCdma();
return new CellSignalStrengthCdma(-cdma.dbm, -cdma.ecio, -evdo.dbm, -evdo.ecio,
evdo.signalNoiseRatio);
}
@@ -2980,6 +2983,7 @@
public static CellSignalStrengthCdma convertHalCdmaSignalStrength(
android.hardware.radio.network.CdmaSignalStrength cdma,
android.hardware.radio.network.EvdoSignalStrength evdo) {
+ if (cdma == null || evdo == null) return new CellSignalStrengthCdma();
return new CellSignalStrengthCdma(-cdma.dbm, -cdma.ecio, -evdo.dbm, -evdo.ecio,
evdo.signalNoiseRatio);
}
@@ -3443,9 +3447,11 @@
android.hardware.radio.data.SetupDataCallResult result) {
if (result == null) return null;
List<LinkAddress> laList = new ArrayList<>();
- for (android.hardware.radio.data.LinkAddress la : result.addresses) {
- laList.add(convertToLinkAddress(la.address, la.addressProperties,
- la.deprecationTime, la.expirationTime));
+ if (result.addresses != null) {
+ for (android.hardware.radio.data.LinkAddress la : result.addresses) {
+ laList.add(convertToLinkAddress(la.address, la.addressProperties,
+ la.deprecationTime, la.expirationTime));
+ }
}
List<InetAddress> dnsList = new ArrayList<>();
if (result.dnses != null) {
@@ -3487,15 +3493,19 @@
}
}
List<QosBearerSession> qosSessions = new ArrayList<>();
- for (android.hardware.radio.data.QosSession session : result.qosSessions) {
- qosSessions.add(convertHalQosBearerSession(session));
+ if (result.qosSessions != null) {
+ for (android.hardware.radio.data.QosSession session : result.qosSessions) {
+ qosSessions.add(convertHalQosBearerSession(session));
+ }
}
List<TrafficDescriptor> trafficDescriptors = new ArrayList<>();
- for (android.hardware.radio.data.TrafficDescriptor td : result.trafficDescriptors) {
- try {
- trafficDescriptors.add(convertHalTrafficDescriptor(td));
- } catch (IllegalArgumentException e) {
- loge("convertHalDataCallResult: Failed to convert traffic descriptor. e=" + e);
+ if (result.trafficDescriptors != null) {
+ for (android.hardware.radio.data.TrafficDescriptor td : result.trafficDescriptors) {
+ try {
+ trafficDescriptors.add(convertHalTrafficDescriptor(td));
+ } catch (IllegalArgumentException e) {
+ loge("convertHalDataCallResult: Failed to convert traffic descriptor. e=" + e);
+ }
}
}
@@ -3675,6 +3685,7 @@
}
private static Qos convertHalQos(android.hardware.radio.V1_6.Qos qos) {
+ if (qos == null) return null;
switch (qos.getDiscriminator()) {
case android.hardware.radio.V1_6.Qos.hidl_discriminator.eps:
android.hardware.radio.V1_6.EpsQos eps = qos.eps();
@@ -3690,6 +3701,7 @@
}
private static Qos convertHalQos(android.hardware.radio.data.Qos qos) {
+ if (qos == null) return null;
switch (qos.getTag()) {
case android.hardware.radio.data.Qos.eps:
android.hardware.radio.data.EpsQos eps = qos.getEps();
@@ -4235,7 +4247,8 @@
iccCardStatus.setCardState(cardStatus10.cardState);
iccCardStatus.setUniversalPinState(cardStatus10.universalPinState);
iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus10.gsmUmtsSubscriptionAppIndex;
- iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus10.cdmaSubscriptionAppIndex;
+ iccCardStatus.mCdmaSubscriptionAppIndex =
+ Flags.cleanupCdma() ? -1 : cardStatus10.cdmaSubscriptionAppIndex;
iccCardStatus.mImsSubscriptionAppIndex = cardStatus10.imsSubscriptionAppIndex;
int numApplications = cardStatus10.applications.size();
@@ -4305,7 +4318,8 @@
iccCardStatus.setMultipleEnabledProfilesMode(cardStatus.supportedMepMode);
iccCardStatus.setUniversalPinState(cardStatus.universalPinState);
iccCardStatus.mGsmUmtsSubscriptionAppIndex = cardStatus.gsmUmtsSubscriptionAppIndex;
- iccCardStatus.mCdmaSubscriptionAppIndex = cardStatus.cdmaSubscriptionAppIndex;
+ iccCardStatus.mCdmaSubscriptionAppIndex =
+ Flags.cleanupCdma() ? -1 : cardStatus.cdmaSubscriptionAppIndex;
iccCardStatus.mImsSubscriptionAppIndex = cardStatus.imsSubscriptionAppIndex;
iccCardStatus.atr = cardStatus.atr;
iccCardStatus.iccid = cardStatus.iccid;
diff --git a/src/java/com/android/internal/telephony/RadioMessagingProxy.java b/src/java/com/android/internal/telephony/RadioMessagingProxy.java
index c652284..624c82d 100644
--- a/src/java/com/android/internal/telephony/RadioMessagingProxy.java
+++ b/src/java/com/android/internal/telephony/RadioMessagingProxy.java
@@ -20,6 +20,7 @@
import android.telephony.Rlog;
import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
+import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
import java.util.ArrayList;
@@ -107,6 +108,7 @@
*/
public void acknowledgeLastIncomingCdmaSms(int serial, boolean success, int cause)
throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
android.hardware.radio.messaging.CdmaSmsAck msg =
@@ -147,6 +149,7 @@
* @throws RemoteException
*/
public void deleteSmsOnRuim(int serial, int index) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mMessagingProxy.deleteSmsOnRuim(serial, index);
@@ -176,6 +179,7 @@
* @throws RemoteException
*/
public void getCdmaBroadcastConfig(int serial) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mMessagingProxy.getCdmaBroadcastConfig(serial);
@@ -248,6 +252,7 @@
* @throws RemoteException
*/
public void sendCdmaSms(int serial, byte[] pdu) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mMessagingProxy.sendCdmaSms(serial, RILUtils.convertToHalCdmaSmsMessageAidl(pdu));
@@ -266,6 +271,7 @@
* @throws RemoteException
*/
public void sendCdmaSmsExpectMore(int serial, byte[] pdu) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mMessagingProxy.sendCdmaSmsExpectMore(
@@ -378,6 +384,7 @@
* @throws RemoteException
*/
public void setCdmaBroadcastActivation(int serial, boolean activate) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mMessagingProxy.setCdmaBroadcastActivation(serial, activate);
@@ -394,6 +401,7 @@
*/
public void setCdmaBroadcastConfig(int serial, CdmaSmsBroadcastConfigInfo[] configs)
throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
ArrayList<android.hardware.radio.messaging.CdmaBroadcastSmsConfigInfo> halConfigs =
@@ -513,6 +521,7 @@
* @throws RemoteException
*/
public void writeSmsToRuim(int serial, int status, byte[] pdu) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
android.hardware.radio.messaging.CdmaSmsWriteArgs args =
diff --git a/src/java/com/android/internal/telephony/RadioModemProxy.java b/src/java/com/android/internal/telephony/RadioModemProxy.java
index cdcbcc0..bc19d55 100644
--- a/src/java/com/android/internal/telephony/RadioModemProxy.java
+++ b/src/java/com/android/internal/telephony/RadioModemProxy.java
@@ -19,6 +19,8 @@
import android.os.RemoteException;
import android.telephony.Rlog;
+import com.android.internal.telephony.flags.Flags;
+
/**
* A holder for IRadioModem.
* Use getAidl to get IRadioModem and call the AIDL implementations of the HAL APIs.
@@ -195,6 +197,7 @@
* @throws RemoteException
*/
public void nvReadItem(int serial, int itemId) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mModemProxy.nvReadItem(serial, itemId);
@@ -210,6 +213,7 @@
* @throws RemoteException
*/
public void nvResetConfig(int serial, int resetType) throws RemoteException {
+ if (Flags.cleanupCdma() && resetType != 1) return;
if (isEmpty()) return;
if (isAidl()) {
mModemProxy.nvResetConfig(serial, RILUtils.convertToHalResetNvTypeAidl(resetType));
@@ -225,6 +229,7 @@
* @throws RemoteException
*/
public void nvWriteCdmaPrl(int serial, byte[] prl) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mModemProxy.nvWriteCdmaPrl(serial, prl);
@@ -241,6 +246,7 @@
* @throws RemoteException
*/
public void nvWriteItem(int serial, int itemId, String itemValue) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
android.hardware.radio.modem.NvWriteItem item =
diff --git a/src/java/com/android/internal/telephony/RadioNetworkProxy.java b/src/java/com/android/internal/telephony/RadioNetworkProxy.java
index 12e6c90..c4b6f76 100644
--- a/src/java/com/android/internal/telephony/RadioNetworkProxy.java
+++ b/src/java/com/android/internal/telephony/RadioNetworkProxy.java
@@ -28,6 +28,8 @@
import android.telephony.Rlog;
import android.telephony.SignalThresholdInfo;
+import com.android.internal.telephony.flags.Flags;
+
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -172,6 +174,7 @@
* @throws RemoteException
*/
public void getCdmaRoamingPreference(int serial) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mNetworkProxy.getCdmaRoamingPreference(serial);
@@ -431,6 +434,7 @@
* @throws RemoteException
*/
public void setCdmaRoamingPreference(int serial, int cdmaRoamingType) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mNetworkProxy.setCdmaRoamingPreference(serial, cdmaRoamingType);
diff --git a/src/java/com/android/internal/telephony/RadioSimProxy.java b/src/java/com/android/internal/telephony/RadioSimProxy.java
index 1c864fe..9316ea4 100644
--- a/src/java/com/android/internal/telephony/RadioSimProxy.java
+++ b/src/java/com/android/internal/telephony/RadioSimProxy.java
@@ -21,6 +21,7 @@
import android.telephony.ImsiEncryptionInfo;
import android.telephony.Rlog;
+import com.android.internal.telephony.flags.Flags;
import com.android.internal.telephony.uicc.IccCardApplicationStatus.PersoSubState;
import com.android.internal.telephony.uicc.SimPhonebookRecord;
@@ -168,6 +169,7 @@
* @throws RemoteException
*/
public void getCdmaSubscription(int serial) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mSimProxy.getCdmaSubscription(serial);
@@ -182,6 +184,7 @@
* @throws RemoteException
*/
public void getCdmaSubscriptionSource(int serial) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mSimProxy.getCdmaSubscriptionSource(serial);
@@ -631,6 +634,7 @@
* @throws RemoteException
*/
public void setCdmaSubscriptionSource(int serial, int cdmaSub) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mSimProxy.setCdmaSubscriptionSource(serial, cdmaSub);
diff --git a/src/java/com/android/internal/telephony/RadioVoiceProxy.java b/src/java/com/android/internal/telephony/RadioVoiceProxy.java
index e57a61d..d85017b 100644
--- a/src/java/com/android/internal/telephony/RadioVoiceProxy.java
+++ b/src/java/com/android/internal/telephony/RadioVoiceProxy.java
@@ -21,6 +21,8 @@
import android.telephony.Rlog;
import android.telephony.emergency.EmergencyNumber;
+import com.android.internal.telephony.flags.Flags;
+
import java.util.ArrayList;
/**
@@ -488,6 +490,7 @@
* @throws RemoteException
*/
public void sendCdmaFeatureCode(int serial, String featureCode) throws RemoteException {
+ if (Flags.cleanupCdma()) return;
if (isEmpty()) return;
if (isAidl()) {
mVoiceProxy.sendCdmaFeatureCode(serial, featureCode);
diff --git a/src/java/com/android/internal/telephony/SmsDispatchersController.java b/src/java/com/android/internal/telephony/SmsDispatchersController.java
index 91aac26..373ee4a 100644
--- a/src/java/com/android/internal/telephony/SmsDispatchersController.java
+++ b/src/java/com/android/internal/telephony/SmsDispatchersController.java
@@ -139,12 +139,12 @@
/** Time at which the current PARTIAL_SEGMENT_WAIT_DURATION timer was started */
private long mCurrentWaitStartTime = INVALID_TIME;
- private SMSDispatcher mCdmaDispatcher;
+ private SMSDispatcher mCdmaDispatcher = null;
private SMSDispatcher mGsmDispatcher;
private ImsSmsDispatcher mImsSmsDispatcher;
private GsmInboundSmsHandler mGsmInboundSmsHandler;
- private CdmaInboundSmsHandler mCdmaInboundSmsHandler;
+ private CdmaInboundSmsHandler mCdmaInboundSmsHandler = null;
private Phone mPhone;
/** Outgoing message counter. Shared by all dispatchers. */
@@ -409,11 +409,14 @@
// Create dispatchers, inbound SMS handlers and
// broadcast undelivered messages in raw table.
mImsSmsDispatcher = new ImsSmsDispatcher(phone, this, ImsManager::getConnector);
- mCdmaDispatcher = new CdmaSMSDispatcher(phone, this);
mGsmInboundSmsHandler = GsmInboundSmsHandler.makeInboundSmsHandler(phone.getContext(),
storageMonitor, phone, looper, mFeatureFlags);
- mCdmaInboundSmsHandler = CdmaInboundSmsHandler.makeInboundSmsHandler(phone.getContext(),
- storageMonitor, phone, (CdmaSMSDispatcher) mCdmaDispatcher, looper, mFeatureFlags);
+ if (!mFeatureFlags.cleanupCdma()) {
+ mCdmaDispatcher = new CdmaSMSDispatcher(phone, this);
+ mCdmaInboundSmsHandler = CdmaInboundSmsHandler.makeInboundSmsHandler(phone.getContext(),
+ storageMonitor, phone, (CdmaSMSDispatcher) mCdmaDispatcher, looper,
+ mFeatureFlags);
+ }
mGsmDispatcher = new GsmSMSDispatcher(phone, this, mGsmInboundSmsHandler);
SmsBroadcastUndelivered.initialize(phone.getContext(),
mGsmInboundSmsHandler, mCdmaInboundSmsHandler, mFeatureFlags);
@@ -455,9 +458,9 @@
mCi.unregisterForImsNetworkStateChanged(this);
mPhone.unregisterForServiceStateChanged(this);
mGsmDispatcher.dispose();
- mCdmaDispatcher.dispose();
+ if (mCdmaDispatcher != null) mCdmaDispatcher.dispose();
mGsmInboundSmsHandler.dispose();
- mCdmaInboundSmsHandler.dispose();
+ if (mCdmaInboundSmsHandler != null) mCdmaInboundSmsHandler.dispose();
// Cancels the domain selection request if it's still in progress.
finishDomainSelection(mDscHolder);
finishDomainSelection(mEmergencyDscHolder);
@@ -577,7 +580,7 @@
default:
if (isCdmaMo()) {
- mCdmaDispatcher.handleMessage(msg);
+ if (mCdmaDispatcher != null) mCdmaDispatcher.handleMessage(msg);
} else {
mGsmDispatcher.handleMessage(msg);
}
@@ -659,7 +662,8 @@
private void handlePartialSegmentTimerExpiry(long waitTimerStart) {
if (mGsmInboundSmsHandler.getCurrentState().getName().equals("WaitingState")
- || mCdmaInboundSmsHandler.getCurrentState().getName().equals("WaitingState")) {
+ || (mCdmaInboundSmsHandler != null
+ && mCdmaInboundSmsHandler.getCurrentState().getName().equals("WaitingState"))) {
logd("handlePartialSegmentTimerExpiry: ignoring timer expiry as InboundSmsHandler is"
+ " in WaitingState");
return;
@@ -790,7 +794,7 @@
+ ", format=" + format + "to mGsmInboundSmsHandler");
mGsmInboundSmsHandler.sendMessage(
InboundSmsHandler.EVENT_INJECT_SMS, isOverIms ? 1 : 0, token, ar);
- } else if (format.equals(SmsConstants.FORMAT_3GPP2)) {
+ } else if (format.equals(SmsConstants.FORMAT_3GPP2) && mCdmaInboundSmsHandler != null) {
Rlog.i(TAG, "SmsDispatchersController:injectSmsText Sending msg=" + msg
+ ", format=" + format + "to mCdmaInboundSmsHandler");
mCdmaInboundSmsHandler.sendMessage(
@@ -998,6 +1002,7 @@
* @return true if Cdma format should be used for MO SMS, false otherwise.
*/
protected boolean isCdmaMo() {
+ if (mFeatureFlags.cleanupCdma()) return false;
if (!isIms()) {
// IMS is not registered, use Voice technology to determine SMS format.
return (PhoneConstants.PHONE_TYPE_CDMA == mPhone.getPhoneType());
@@ -1013,6 +1018,7 @@
* @return true if format given is CDMA format, false otherwise.
*/
public boolean isCdmaFormat(String format) {
+ if (mFeatureFlags.cleanupCdma()) return false;
return (mCdmaDispatcher.getFormat().equals(format));
}
@@ -2286,9 +2292,9 @@
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
mGsmInboundSmsHandler.dump(fd, pw, args);
- mCdmaInboundSmsHandler.dump(fd, pw, args);
+ if (mCdmaInboundSmsHandler != null) mCdmaInboundSmsHandler.dump(fd, pw, args);
mGsmDispatcher.dump(fd, pw, args);
- mCdmaDispatcher.dump(fd, pw, args);
+ if (mCdmaDispatcher != null) mCdmaDispatcher.dump(fd, pw, args);
mImsSmsDispatcher.dump(fd, pw, args);
}
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java b/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java
index 0fac334..eea49e3 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java
@@ -28,6 +28,7 @@
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.flags.Flags;
import com.android.telephony.Rlog;
import java.util.concurrent.atomic.AtomicInteger;
@@ -63,6 +64,7 @@
// Constructor
private CdmaSubscriptionSourceManager(Context context, CommandsInterface ci) {
+ if (Flags.cleanupCdma()) return;
mCi = ci;
mCi.registerForCdmaSubscriptionChanged(this, EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED, null);
mCi.registerForOn(this, EVENT_RADIO_ON, null);
@@ -97,7 +99,7 @@
mCdmaSubscriptionSourceChangedRegistrants.remove(h);
synchronized (sReferenceCountMonitor) {
sReferenceCount--;
- if (sReferenceCount <= 0) {
+ if (sReferenceCount <= 0 && mCi != null) {
mCi.unregisterForCdmaSubscriptionChanged(this);
mCi.unregisterForOn(this);
mCi.unregisterForSubscriptionStatusChanged(this);
@@ -112,6 +114,7 @@
*/
@Override
public void handleMessage(Message msg) {
+ if (Flags.cleanupCdma()) return;
AsyncResult ar;
switch (msg.what) {
case EVENT_CDMA_SUBSCRIPTION_SOURCE_CHANGED:
@@ -165,6 +168,8 @@
* @return Default CDMA subscription source from Settings DB if present.
*/
public static int getDefault(Context context) {
+ if (Flags.cleanupCdma()) return Phone.CDMA_SUBSCRIPTION_UNKNOWN;
+
// Get the default value from the Settings
int subscriptionSource = Settings.Global.getInt(context.getContentResolver(),
Settings.Global.CDMA_SUBSCRIPTION_MODE, Phone.PREFERRED_CDMA_SUBSCRIPTION);
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java b/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java
index 1d9dc68..309fe79 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java
@@ -233,9 +233,17 @@
if (channel == IccOpenLogicalChannelResponse.INVALID_CHANNEL
|| status != IccOpenLogicalChannelResponse.STATUS_NO_ERROR) {
mChannelOpened = false;
- resultCallback.onException(
- new ApduException("Failed to open logical channel for AID: "
- + mAid + ", with status: " + status));
+ returnRespnseOrException(
+ channel,
+ /* closeChannelImmediately= */ false,
+ /* response= */ null,
+ new ApduException(
+ "Failed to open logical channel for AID: "
+ + mAid
+ + ", with status: "
+ + status),
+ resultCallback,
+ handler);
return;
}
PreferenceManager.getDefaultSharedPreferences(mContext)