Add a method to get controllers with same parent class type.

Flag: EXEMPT bug fix
Fix: b/382635197
Test: Manual test.
Change-Id: I0a48628d032d7ce1f47cbca20e63b20149b5daa0
This commit is contained in:
tomhsu
2024-12-06 10:37:34 +00:00
parent aa2379967c
commit 253cb874d8
2 changed files with 11 additions and 6 deletions

View File

@@ -348,6 +348,13 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
return null; return null;
} }
/** Returns grouped controllers of input type T. */
protected <T extends AbstractPreferenceController> List<AbstractPreferenceController> useGroup(
Class<T> clazz) {
return mPreferenceControllers.values().stream().flatMap(Collection::stream).filter(
controller -> clazz.isInstance(controller)).toList();
}
/** Returns all controllers of type T. */ /** Returns all controllers of type T. */
protected <T extends AbstractPreferenceController> List<T> useAll(Class<T> clazz) { protected <T extends AbstractPreferenceController> List<T> useAll(Class<T> clazz) {
return (List<T>) mPreferenceControllers.getOrDefault(clazz, Collections.emptyList()); return (List<T>) mPreferenceControllers.getOrDefault(clazz, Collections.emptyList());

View File

@@ -338,12 +338,10 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme
convertToEsimPreferenceController.init(mSubId, mSubscriptionInfoEntity); convertToEsimPreferenceController.init(mSubId, mSubscriptionInfoEntity);
} }
List<AbstractSubscriptionPreferenceController> subscriptionPreferenceControllers = List<AbstractPreferenceController> subscriptionPreferenceControllers =
useAll(AbstractSubscriptionPreferenceController.class); useGroup(AbstractSubscriptionPreferenceController.class);
for (AbstractSubscriptionPreferenceController controller : subscriptionPreferenceControllers.forEach(
subscriptionPreferenceControllers) { controller -> ((AbstractSubscriptionPreferenceController) controller).init(mSubId));
controller.init(mSubId);
}
} }
@Override @Override