Merge "[Settings] Select RAT in between SIMs for Internet" into tm-dev am: 08b7f53383 am: 2034695af7

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

Change-Id: I9a2e943ebe76959b4ba9f6cace61429876ff8c3d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Bonian Chen
2022-05-19 11:24:56 +00:00
committed by Automerger Merge Worker
3 changed files with 21 additions and 10 deletions

View File

@@ -456,7 +456,11 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
} }
@Override @Override
public void onTelephonyDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { public void onTelephonyDisplayInfoChanged(int subId,
TelephonyDisplayInfo telephonyDisplayInfo) {
if (subId != mSubsPrefCtrlInjector.getDefaultDataSubscriptionId()) {
return;
}
mTelephonyDisplayInfo = telephonyDisplayInfo; mTelephonyDisplayInfo = telephonyDisplayInfo;
update(); update();
} }

View File

@@ -37,8 +37,9 @@ public class TelephonyDisplayInfoListener {
private TelephonyManager mBaseTelephonyManager; private TelephonyManager mBaseTelephonyManager;
private Callback mCallback; private Callback mCallback;
private Map<Integer, PhoneStateListener> mListeners; private Map<Integer, PhoneStateListener> mListeners;
private Map<Integer, TelephonyDisplayInfo> mDisplayInfos;
private TelephonyDisplayInfo mTelephonyDisplayInfo = private static final TelephonyDisplayInfo mDefaultTelephonyDisplayInfo =
new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN, new TelephonyDisplayInfo(TelephonyManager.NETWORK_TYPE_UNKNOWN,
TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE); TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE);
/** /**
@@ -48,19 +49,20 @@ public class TelephonyDisplayInfoListener {
/** /**
* Used to notify TelephonyDisplayInfo change. * Used to notify TelephonyDisplayInfo change.
*/ */
void onTelephonyDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo); void onTelephonyDisplayInfoChanged(int subId, TelephonyDisplayInfo telephonyDisplayInfo);
} }
public TelephonyDisplayInfoListener(Context context, Callback callback) { public TelephonyDisplayInfoListener(Context context, Callback callback) {
mBaseTelephonyManager = context.getSystemService(TelephonyManager.class); mBaseTelephonyManager = context.getSystemService(TelephonyManager.class);
mCallback = callback; mCallback = callback;
mListeners = new HashMap<>(); mListeners = new HashMap<>();
mDisplayInfos = new HashMap<>();
} }
/** /**
* Get TelephonyDisplayInfo. * Get TelephonyDisplayInfo.
*/ */
public TelephonyDisplayInfo getTelephonyDisplayInfo() { public TelephonyDisplayInfo getTelephonyDisplayInfo(int subId) {
return mTelephonyDisplayInfo; return mDisplayInfos.get(subId);
} }
/** Resumes listening telephony display info changes to the set of ids from the last call to /** Resumes listening telephony display info changes to the set of ids from the last call to
@@ -85,15 +87,17 @@ public class TelephonyDisplayInfoListener {
for (int idToRemove : Sets.difference(currentIds, ids)) { for (int idToRemove : Sets.difference(currentIds, ids)) {
stopListening(idToRemove); stopListening(idToRemove);
mListeners.remove(idToRemove); mListeners.remove(idToRemove);
mDisplayInfos.remove(idToRemove);
} }
for (int idToAdd : Sets.difference(ids, currentIds)) { for (int idToAdd : Sets.difference(ids, currentIds)) {
PhoneStateListener listener = new PhoneStateListener() { PhoneStateListener listener = new PhoneStateListener() {
@Override @Override
public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) { public void onDisplayInfoChanged(TelephonyDisplayInfo telephonyDisplayInfo) {
mTelephonyDisplayInfo = telephonyDisplayInfo; mDisplayInfos.put(idToAdd, telephonyDisplayInfo);
mCallback.onTelephonyDisplayInfoChanged(telephonyDisplayInfo); mCallback.onTelephonyDisplayInfoChanged(idToAdd, telephonyDisplayInfo);
} }
}; };
mDisplayInfos.put(idToAdd, mDefaultTelephonyDisplayInfo);
mListeners.put(idToAdd, listener); mListeners.put(idToAdd, listener);
startListening(idToAdd); startListening(idToAdd);
} }

View File

@@ -364,7 +364,8 @@ public class SubscriptionsPreferenceControllerTest {
mController.onResume(); mController.onResume();
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onTelephonyDisplayInfoChanged(telephonyDisplayInfo); mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(),
telephonyDisplayInfo);
assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
} }
@@ -388,7 +389,8 @@ public class SubscriptionsPreferenceControllerTest {
mController.onResume(); mController.onResume();
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onTelephonyDisplayInfoChanged(telephonyDisplayInfo); mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(),
telephonyDisplayInfo);
assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
} }
@@ -414,7 +416,8 @@ public class SubscriptionsPreferenceControllerTest {
mController.onResume(); mController.onResume();
mController.displayPreference(mPreferenceScreen); mController.displayPreference(mPreferenceScreen);
mController.onTelephonyDisplayInfoChanged(telephonyDisplayInfo); mController.onTelephonyDisplayInfoChanged(sub.get(0).getSubscriptionId(),
telephonyDisplayInfo);
assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary); assertThat(mPreferenceCategory.getPreference(0).getSummary()).isEqualTo(expectedSummary);
} }