Merge "[MEP] psim->esim, don't skip carrierConfigChanged with subId -1" into tm-qpr-dev am: da58404ea6

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20064005

Change-Id: Id8b05f8faaadee52922e785b6e15c40eb1dd12de
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
SongFerng Wang
2022-10-07 14:09:58 +00:00
committed by Automerger Merge Worker
2 changed files with 21 additions and 6 deletions

View File

@@ -32,9 +32,20 @@ public class CarrierConfigChangedReceiver extends BroadcastReceiver {
CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED; CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED;
private final CountDownLatch mLatch; private final CountDownLatch mLatch;
private final boolean mIsWaitingForValidSubId;
public CarrierConfigChangedReceiver(CountDownLatch latch) { /**
* This is the CarrierConfigChanged receiver. If it receives the carrier config changed, then it
* call the CountDownLatch.countDown().
* If the "isWaitingForValidSubId" is true, then the receiver skip the carrier config changed
* with the subId = -1. The receiver executes the countDown when the CarrierConfigChanged
* with valid subId.
* If the "isWaitingForValidSubId" is false, then the receiver executes the countDown when
* receiving any CarrierConfigChanged.
*/
public CarrierConfigChangedReceiver(CountDownLatch latch, boolean isWaitingForValidSubId) {
mLatch = latch; mLatch = latch;
mIsWaitingForValidSubId = isWaitingForValidSubId;
} }
public void registerOn(Context context) { public void registerOn(Context context) {
@@ -53,7 +64,8 @@ public class CarrierConfigChangedReceiver extends BroadcastReceiver {
} }
private void checkSubscriptionIndex(Intent intent) { private void checkSubscriptionIndex(Intent intent) {
if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)) { if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)
|| !mIsWaitingForValidSubId) {
int subId = intent.getIntExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, -1); int subId = intent.getIntExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, -1);
Log.i(TAG, "subId from config changed: " + subId); Log.i(TAG, "subId from config changed: " + subId);
mLatch.countDown(); mLatch.countDown();

View File

@@ -141,7 +141,8 @@ public class UiccSlotUtil {
inactiveRemovableSlot, inactiveRemovableSlot,
/*removable sim's port Id*/ TelephonyManager.DEFAULT_PORT_INDEX, /*removable sim's port Id*/ TelephonyManager.DEFAULT_PORT_INDEX,
excludedLogicalSlotIndex), excludedLogicalSlotIndex),
context); context,
/*isWaitingForValidSubId=*/ true);
} }
/** /**
@@ -179,7 +180,8 @@ public class UiccSlotUtil {
performSwitchToSlot(telMgr, performSwitchToSlot(telMgr,
prepareUiccSlotMappings(uiccSlotMappings, /*slot is not psim*/ false, prepareUiccSlotMappings(uiccSlotMappings, /*slot is not psim*/ false,
physicalSlotId, port, excludedLogicalSlotIndex), physicalSlotId, port, excludedLogicalSlotIndex),
context); context,
/*isWaitingForValidSubId=*/ false);
} }
/** /**
@@ -231,7 +233,8 @@ public class UiccSlotUtil {
} }
private static void performSwitchToSlot(TelephonyManager telMgr, private static void performSwitchToSlot(TelephonyManager telMgr,
Collection<UiccSlotMapping> uiccSlotMappings, Context context) Collection<UiccSlotMapping> uiccSlotMappings, Context context,
boolean isWaitingForValidSubId)
throws UiccSlotsException { throws UiccSlotsException {
CarrierConfigChangedReceiver receiver = null; CarrierConfigChangedReceiver receiver = null;
long waitingTimeMillis = long waitingTimeMillis =
@@ -241,7 +244,7 @@ public class UiccSlotUtil {
DEFAULT_WAIT_AFTER_SWITCH_TIMEOUT_MILLIS); DEFAULT_WAIT_AFTER_SWITCH_TIMEOUT_MILLIS);
try { try {
CountDownLatch latch = new CountDownLatch(1); CountDownLatch latch = new CountDownLatch(1);
receiver = new CarrierConfigChangedReceiver(latch); receiver = new CarrierConfigChangedReceiver(latch, isWaitingForValidSubId);
receiver.registerOn(context); receiver.registerOn(context);
telMgr.setSimSlotMapping(uiccSlotMappings); telMgr.setSimSlotMapping(uiccSlotMappings);
latch.await(waitingTimeMillis, TimeUnit.MILLISECONDS); latch.await(waitingTimeMillis, TimeUnit.MILLISECONDS);