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

Commit 52d7a960 authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Refactor for performance

Refactor DataDuringCallsPreferenceController in order to reduce the time
spend on constuct and initialize DataDuringCallsPreferenceController.

Bug: 141833767
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataDuringCallsPreferenceControllerTest
Change-Id: I484cafa739f9e6e58427894712f2bb7e2ed1f4ff
parent 90cce123
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -49,10 +49,6 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen
    public DataDuringCallsPreferenceController(Context context,
            String preferenceKey) {
        super(context, preferenceKey);
        mChangeListener = new SubscriptionsChangeListener(mContext, this);
        mMobileDataContentObserver = new MobileDataContentObserver(
                new Handler(Looper.getMainLooper()));
        mMobileDataContentObserver.setOnMobileDataChangedListener(()->refreshPreference());
    }

    public void init(Lifecycle lifecycle, int subId) {
@@ -63,15 +59,27 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen

    @OnLifecycleEvent(ON_RESUME)
    public void onResume() {
        if (mChangeListener == null) {
            mChangeListener = new SubscriptionsChangeListener(mContext, this);
        }
        mChangeListener.start();
        if (mMobileDataContentObserver == null) {
            mMobileDataContentObserver = new MobileDataContentObserver(
                    new Handler(Looper.getMainLooper()));
            mMobileDataContentObserver.setOnMobileDataChangedListener(() -> refreshPreference());
        }
        mMobileDataContentObserver.register(mContext, mSubId);
    }

    @OnLifecycleEvent(ON_PAUSE)
    public void onPause() {
        if (mChangeListener != null) {
            mChangeListener.stop();
        }
        if (mMobileDataContentObserver != null) {
            mMobileDataContentObserver.unRegister(mContext);
        }
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
@@ -103,6 +111,9 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen
    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        if (preference == null) {
            return;
        }
        preference.setVisible(isAvailable());
    }