[Settings] Only display 1 SIM UI when multiple with same group UUID am: 150eb72a81

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ide453d4b8f1a2b40057804fa1bb47705c05dbf86
This commit is contained in:
Bonian Chen
2020-12-17 15:52:03 +00:00
committed by Automerger Merge Worker
2 changed files with 41 additions and 10 deletions

View File

@@ -52,6 +52,7 @@ import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.net.SignalStrengthUtil;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -166,6 +167,12 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
final int dataDefaultSubId = SubscriptionManager.getDefaultDataSubscriptionId();
for (SubscriptionInfo info : SubscriptionUtil.getActiveSubscriptions(mManager)) {
final int subId = info.getSubscriptionId();
// Avoid from showing subscription(SIM)s which has been marked as hidden
// For example, only one subscription will be shown when there're multiple
// subscriptions with same group UUID.
if (!isSubscriptionCanBeDisplayed(mContext, subId)) {
continue;
}
activeSubIds.add(subId);
Preference pref = existingPrefs.remove(subId);
if (pref == null) {
@@ -292,7 +299,17 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
if (mSubscriptionsListener.isAirplaneModeOn()) {
return false;
}
return SubscriptionUtil.getActiveSubscriptions(mManager).size() >= 2;
List<SubscriptionInfo> subInfoList = SubscriptionUtil.getActiveSubscriptions(mManager);
if (subInfoList == null) {
return false;
}
return subInfoList.stream()
// Avoid from showing subscription(SIM)s which has been marked as hidden
// For example, only one subscription will be shown when there're multiple
// subscriptions with same group UUID.
.filter(subInfo ->
isSubscriptionCanBeDisplayed(mContext, subInfo.getSubscriptionId()))
.count() >= 2;
}
@Override
@@ -330,4 +347,10 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
public void onSignalStrengthChanged() {
update();
}
@VisibleForTesting
boolean isSubscriptionCanBeDisplayed(Context context, int subId) {
return (SubscriptionUtil.getAvailableSubscription(context,
ProxySubscriptionManager.getInstance(context), subId) != null);
}
}