diff options
author | Bonian Chen <bonianchen@google.com> | 2020-05-05 08:34:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-05-05 08:34:01 +0000 |
commit | cdab906c459fd40aecbccfd6d06736508b98e2da (patch) | |
tree | 61d8289bed74aa421450136fe80d3f3f6711aa18 /src/com/android | |
parent | 4bad98ff098f5e8cd089d8944c1ef4e5eec38f6d (diff) | |
parent | 52d7a9602083a2c51f1cee9f61627a01bd7b894d (diff) | |
download | packages_apps_Settings-cdab906c459fd40aecbccfd6d06736508b98e2da.tar.gz packages_apps_Settings-cdab906c459fd40aecbccfd6d06736508b98e2da.tar.bz2 packages_apps_Settings-cdab906c459fd40aecbccfd6d06736508b98e2da.zip |
Merge "[Settings] Refactor for performance" into rvc-dev
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/settings/network/telephony/DataDuringCallsPreferenceController.java | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/com/android/settings/network/telephony/DataDuringCallsPreferenceController.java b/src/com/android/settings/network/telephony/DataDuringCallsPreferenceController.java index 1137e06f0e..625f86303b 100644 --- a/src/com/android/settings/network/telephony/DataDuringCallsPreferenceController.java +++ b/src/com/android/settings/network/telephony/DataDuringCallsPreferenceController.java @@ -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,14 +59,26 @@ 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() { - mChangeListener.stop(); - mMobileDataContentObserver.unRegister(mContext); + if (mChangeListener != null) { + mChangeListener.stop(); + } + if (mMobileDataContentObserver != null) { + mMobileDataContentObserver.unRegister(mContext); + } } @Override @@ -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()); } |