Add ability to disable conference event package handling from command line.
Useful for testing non-CEP behavior on a network which does provide CEP
updates.
Bug: 139299700
Test: Manual test of CEP override.
Change-Id: I296bffcacec20336d6512f9219ed927d30a21a5a
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 0469d7d..d0eda12 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -18,6 +18,7 @@
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
+import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_IMS;
import static com.android.internal.telephony.PhoneConstants.SUBSCRIPTION_KEY;
import android.Manifest.permission;
@@ -149,6 +150,8 @@
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.euicc.EuiccConnector;
import com.android.internal.telephony.ims.ImsResolver;
+import com.android.internal.telephony.imsphone.ImsPhone;
+import com.android.internal.telephony.imsphone.ImsPhoneCallTracker;
import com.android.internal.telephony.metrics.TelephonyMetrics;
import com.android.internal.telephony.uicc.IccIoResult;
import com.android.internal.telephony.uicc.IccUtils;
@@ -7183,4 +7186,32 @@
Binder.restoreCallingIdentity(identity);
}
}
+
+ /**
+ * Updates whether conference event pacakge handling is enabled.
+ * @param isCepEnabled {@code true} if CEP handling is enabled (default), or {@code false}
+ * otherwise.
+ */
+ @Override
+ public void setCepEnabled(boolean isCepEnabled) {
+ TelephonyPermissions.enforceShellOnly(Binder.getCallingUid(), "setCepEnabled");
+
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled);
+ for (Phone phone : PhoneFactory.getPhones()) {
+ Phone defaultPhone = phone.getImsPhone();
+ if (defaultPhone != null && defaultPhone.getPhoneType() == PHONE_TYPE_IMS) {
+ ImsPhone imsPhone = (ImsPhone) defaultPhone;
+ ImsPhoneCallTracker imsPhoneCallTracker =
+ (ImsPhoneCallTracker) imsPhone.getCallTracker();
+ imsPhoneCallTracker.setConferenceEventPackageEnabled(isCepEnabled);
+ Rlog.i(LOG_TAG, "setCepEnabled isCepEnabled=" + isCepEnabled + ", for imsPhone "
+ + imsPhone.getMsisdn());
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
}