[automerger skipped] Merge 24Q3 (ab/11976889) to aosp-main-future am: b4cd5c9667 -s ours
am skip reason: Merged-In Id2809adad9d49ba72fc9b65647229efbc4575140 with SHA-1 10b5c36304 is already in history
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/27909015
Change-Id: I1fe53417e727b98b94d0a52ed6e98e6440e1a6e1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
index ffa5b69..b96887c 100644
--- a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
+++ b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
@@ -391,9 +391,12 @@
}
mSlotsSupportingSimultaneousCellularCalls.add(i);
}
- // Ensure the slots supporting cellular DSDA does not exceed the phone count
- if (mSlotsSupportingSimultaneousCellularCalls.size() > getPhoneCount()) {
- loge("Invalid size of DSDA slots. Disabling cellular DSDA.");
+ // Ensure the number of slots supporting cellular DSDA is valid:
+ if (mSlotsSupportingSimultaneousCellularCalls.size() > getPhoneCount() ||
+ mSlotsSupportingSimultaneousCellularCalls.size() < 2) {
+ loge("Invalid size of DSDA slots. Disabling cellular DSDA. Size of "
+ + "mSlotsSupportingSimultaneousCellularCalls=" +
+ mSlotsSupportingSimultaneousCellularCalls.size());
mSlotsSupportingSimultaneousCellularCalls.clear();
}
} else {
diff --git a/src/java/com/android/internal/telephony/domainselection/DomainSelectionResolver.java b/src/java/com/android/internal/telephony/domainselection/DomainSelectionResolver.java
index 410f89b..1b66e54 100644
--- a/src/java/com/android/internal/telephony/domainselection/DomainSelectionResolver.java
+++ b/src/java/com/android/internal/telephony/domainselection/DomainSelectionResolver.java
@@ -64,8 +64,7 @@
* to be bound to the domain selection controller.
*/
public static void make(Context context, String flattenedComponentName) {
- Log.i(TAG, "make flag=" + Flags.apDomainSelectionEnabled()
- + ", useOem=" + Flags.useOemDomainSelectionService());
+ Log.i(TAG, "make useOem=" + Flags.useOemDomainSelectionService());
if (sInstance == null) {
sInstance = new DomainSelectionResolver(context, flattenedComponentName);
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/PhoneConfigurationManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/PhoneConfigurationManagerTest.java
index 0e04aff..b09d90d 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/PhoneConfigurationManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/PhoneConfigurationManagerTest.java
@@ -203,26 +203,40 @@
for (int i : enabledLogicalSlots) { expectedSlots.add(i); }
assertEquals(expectedSlots, mPcm.getSlotsSupportingSimultaneousCellularCalls());
}
+ @Test
+ @SmallTest
+ public void testUpdateSimultaneousCallingSupportBothInvalidSlotIds() throws Exception {
+ // Test case where both slot IDs are invalid (-1 and 5).
+ testUpdateSimultaneousCallingSupportWithInvalidSlots(Arrays.asList(-1, 5));
+ }
@Test
@SmallTest
- public void testUpdateSimultaneousCallingSupport_invalidResponse_shouldFail() throws Exception {
- doReturn(false).when(mFeatureFlags).simultaneousCallingIndications();
- init(2);
- mPcm.updateSimultaneousCallingSupport();
+ public void testUpdateSimultaneousCallingSupportOneInvalidSlotId() throws Exception {
+ // Test case where one slot ID is valid (1) and the other is invalid (2).
+ testUpdateSimultaneousCallingSupportWithInvalidSlots(Arrays.asList(1, 2));
+ }
- // Have the modem send invalid phone slots -1 and 5:
- List<Integer> invalidEnabledLogicalSlots = Arrays.asList(-1, 5);
- ArgumentCaptor<Message> captor = ArgumentCaptor.forClass(Message.class);
- verify(mMockRadioConfig).updateSimultaneousCallingSupport(captor.capture());
- Message msg = captor.getValue();
- AsyncResult.forMessage(msg, invalidEnabledLogicalSlots, null);
- msg.sendToTarget();
- processAllMessages();
+ @Test
+ @SmallTest
+ public void testUpdateSimultaneousCallingSupportInvalidExtraSlotId() throws Exception {
+ // Test case where the number of slot IDs exceeds the phone count (2) and one slot ID is
+ // invalid (2).
+ testUpdateSimultaneousCallingSupportWithInvalidSlots(Arrays.asList(0, 1, 2));
+ }
- // We would expect to DSDA to be disabled and mSlotsSupportingSimultaneousCellularCalls to
- // have been cleared:
- assertTrue(mPcm.getSlotsSupportingSimultaneousCellularCalls().isEmpty());
+ @Test
+ @SmallTest
+ public void testUpdateSimultaneousCallingSupportInvalidSingularSlotId() throws Exception {
+ // Test case where only a single, invalid slot ID (0) is provided.
+ testUpdateSimultaneousCallingSupportWithInvalidSlots(List.of(0));
+ }
+
+ @Test
+ @SmallTest
+ public void testUpdateSimultaneousCallingSupportInvalidEmptySlotIds() throws Exception {
+ // Test case where an empty list of slot IDs is provided.
+ testUpdateSimultaneousCallingSupportWithInvalidSlots(List.of());
}
/**
@@ -576,4 +590,28 @@
assertEquals(capability, mPcm.getStaticPhoneCapability());
}
+
+ private void testUpdateSimultaneousCallingSupportWithInvalidSlots(List<Integer> invalidSlots)
+ throws Exception {
+ doReturn(false).when(mFeatureFlags).simultaneousCallingIndications();
+ init(2);
+ mPcm.updateSimultaneousCallingSupport();
+
+ sendInvalidSlotsToModem(invalidSlots);
+ processAllMessages();
+
+ assertDsdaDisabledAndSlotsCleared();
+ }
+
+ private void sendInvalidSlotsToModem(List<Integer> invalidSlots) {
+ ArgumentCaptor<Message> captor = ArgumentCaptor.forClass(Message.class);
+ verify(mMockRadioConfig).updateSimultaneousCallingSupport(captor.capture());
+ Message msg = captor.getValue();
+ AsyncResult.forMessage(msg, invalidSlots, null);
+ msg.sendToTarget();
+ }
+
+ private void assertDsdaDisabledAndSlotsCleared() {
+ assertTrue(mPcm.getSlotsSupportingSimultaneousCellularCalls().isEmpty());
+ }
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SimultaneousCallingTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/SimultaneousCallingTrackerTest.java
index 879b184..054df07 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SimultaneousCallingTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SimultaneousCallingTrackerTest.java
@@ -254,7 +254,7 @@
/**
* Test that simultaneous calling is not supported when IMS is not registered and cellular
- * simultaneous calling is only supported for one SIM subscription.
+ * simultaneous calling is not supported for any SIM subscriptions.
*/
@Test
@SmallTest
@@ -264,8 +264,8 @@
init(2);
setAndVerifyStaticCapability(STATIC_DSDA_CAPABILITY);
- // Have the modem inform telephony that only phone slot 0 supports DSDA:
- List<Integer> enabledLogicalSlots = List.of(0);
+ // Have the modem inform telephony that no phone slots currently support DSDA:
+ List<Integer> enabledLogicalSlots = List.of();
setAndVerifySlotsSupportingSimultaneousCellularCalling(enabledLogicalSlots);
// Trigger onSubscriptionsChanged by updating the subscription ID of a phone slot: