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

Commit 17ad56b3 authored by Bonian Chen's avatar Bonian Chen
Browse files

[Settings] Avoid from redraw UI when first time onResume

Registration of subscription change lead to redraw.
However, entire UI is newly created where redraw is not required
when fragment first time created.

Therefore, remove first callback from SubscriptionManager to reduce some
time.

Bug: 141833767
Test: manual
Change-Id: I54a58dd8271bb2cd8cd531cc02ff7d64b3e4328c
parent 8224a5ad
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
    private String mClickedPrefKey;

    private ActiveSubsciptionsListener mActiveSubsciptionsListener;
    private boolean mActiveSubsciptionsListenerStarting;
    private boolean mDropFirstSubscriptionChangeNotify;
    private int mActiveSubsciptionsListenerCount;

    public MobileNetworkSettings() {
@@ -207,20 +207,20 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
    public void onResume() {
        super.onResume();
        if (mActiveSubsciptionsListener == null) {
            mActiveSubsciptionsListenerStarting = true;
            mActiveSubsciptionsListener = new ActiveSubsciptionsListener(
                    getContext().getMainLooper(), getContext(), mSubId) {
                public void onChanged() {
                    onSubscriptionDetailChanged();
                }
            };
            mActiveSubsciptionsListenerStarting = false;
            mDropFirstSubscriptionChangeNotify = true;
        }
        mActiveSubsciptionsListener.start();
    }

    private void onSubscriptionDetailChanged() {
        if (mActiveSubsciptionsListenerStarting) {
        if (mDropFirstSubscriptionChangeNotify) {
            mDropFirstSubscriptionChangeNotify = false;
            Log.d(LOG_TAG, "Callback during onResume()");
            return;
        }
@@ -235,6 +235,14 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
        });
    }

    @Override
    public void onDestroy() {
        if (mActiveSubsciptionsListener != null) {
            mActiveSubsciptionsListener.stop();
        }
        super.onDestroy();
    }

    @VisibleForTesting
    void onRestoreInstance(Bundle icicle) {
        if (icicle != null) {