Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 253cb874 authored by tomhsu's avatar tomhsu
Browse files

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

Flag: EXEMPT bug fix
Fix: b/382635197
Test: Manual test.
Change-Id: I0a48628d032d7ce1f47cbca20e63b20149b5daa0
parent aa237996
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -348,6 +348,13 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
        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. */
    protected <T extends AbstractPreferenceController> List<T> useAll(Class<T> clazz) {
        return (List<T>) mPreferenceControllers.getOrDefault(clazz, Collections.emptyList());
+4 −6
Original line number Diff line number Diff line
@@ -338,12 +338,10 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme
            convertToEsimPreferenceController.init(mSubId, mSubscriptionInfoEntity);
        }

        List<AbstractSubscriptionPreferenceController> subscriptionPreferenceControllers =
                useAll(AbstractSubscriptionPreferenceController.class);
        for (AbstractSubscriptionPreferenceController controller :
                subscriptionPreferenceControllers) {
            controller.init(mSubId);
        }
        List<AbstractPreferenceController> subscriptionPreferenceControllers =
                useGroup(AbstractSubscriptionPreferenceController.class);
        subscriptionPreferenceControllers.forEach(
                controller -> ((AbstractSubscriptionPreferenceController) controller).init(mSubId));
    }

    @Override