diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java index df1e71ecd44..c79cc65bbfa 100644 --- a/src/com/android/settings/dashboard/DashboardFragment.java +++ b/src/com/android/settings/dashboard/DashboardFragment.java @@ -348,6 +348,13 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment return null; } + /** Returns grouped controllers of input type T. */ + protected List useGroup( + Class clazz) { + return mPreferenceControllers.values().stream().flatMap(Collection::stream).filter( + controller -> clazz.isInstance(controller)).toList(); + } + /** Returns all controllers of type T. */ protected List useAll(Class clazz) { return (List) mPreferenceControllers.getOrDefault(clazz, Collections.emptyList()); diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java index f5113cacd44..d934c99634b 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java @@ -334,12 +334,10 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme convertToEsimPreferenceController.init(mSubId, mSubscriptionInfoEntity); } - List subscriptionPreferenceControllers = - useAll(AbstractSubscriptionPreferenceController.class); - for (AbstractSubscriptionPreferenceController controller : - subscriptionPreferenceControllers) { - controller.init(mSubId); - } + List subscriptionPreferenceControllers = + useGroup(AbstractSubscriptionPreferenceController.class); + subscriptionPreferenceControllers.forEach( + controller -> ((AbstractSubscriptionPreferenceController) controller).init(mSubId)); } @Override