Merge "Perform validation on SignalStrengthUpdateRequest"
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 8cf8f51..d80efdd 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -5556,12 +5556,20 @@
}
}
- public void setImsRegistrationState(boolean registered) {
+ /**
+ * Sets the ims registration state on all valid {@link Phone}s.
+ */
+ public void setImsRegistrationState(final boolean registered) {
enforceModifyPermission();
final long identity = Binder.clearCallingIdentity();
try {
- getDefaultPhone().setImsRegistrationState(registered);
+ // NOTE: Before S, this method only set the default phone.
+ for (final Phone phone : PhoneFactory.getPhones()) {
+ if (SubscriptionManager.isValidSubscriptionId(phone.getSubId())) {
+ phone.setImsRegistrationState(registered);
+ }
+ }
} finally {
Binder.restoreCallingIdentity(identity);
}
diff --git a/src/com/android/services/telephony/rcs/UceControllerManager.java b/src/com/android/services/telephony/rcs/UceControllerManager.java
index d1f91d1..09288f1 100644
--- a/src/com/android/services/telephony/rcs/UceControllerManager.java
+++ b/src/com/android/services/telephony/rcs/UceControllerManager.java
@@ -51,6 +51,7 @@
private final ExecutorService mExecutorService;
private volatile UceController mUceController;
+ private volatile RcsFeatureManager mRcsFeatureManager;
public UceControllerManager(Context context, int slotId, int subId) {
Log.d(LOG_TAG, "create: slotId=" + slotId + ", subId=" + subId);
@@ -74,12 +75,18 @@
@Override
public void onRcsConnected(RcsFeatureManager manager) {
- mExecutorService.submit(() -> mUceController.onRcsConnected(manager));
+ mExecutorService.submit(() -> {
+ mRcsFeatureManager = manager;
+ mUceController.onRcsConnected(manager);
+ });
}
@Override
public void onRcsDisconnected() {
- mExecutorService.submit(() -> mUceController.onRcsDisconnected());
+ mExecutorService.submit(() -> {
+ mRcsFeatureManager = null;
+ mUceController.onRcsDisconnected();
+ });
}
@Override
@@ -103,6 +110,12 @@
// Destroy existing UceController and create a new one.
mUceController.onDestroy();
mUceController = new UceController(mContext, subId);
+
+ // The RCS should be connected when the mRcsFeatureManager is not null. Set it to the
+ // new UceController instance.
+ if (mRcsFeatureManager != null) {
+ mUceController.onRcsConnected(mRcsFeatureManager);
+ }
});
}