summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/network
diff options
context:
space:
mode:
authorBonian Chen <bonianchen@google.com>2020-05-05 08:34:01 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-05-05 08:34:01 +0000
commitcdab906c459fd40aecbccfd6d06736508b98e2da (patch)
tree61d8289bed74aa421450136fe80d3f3f6711aa18 /src/com/android/settings/network
parent4bad98ff098f5e8cd089d8944c1ef4e5eec38f6d (diff)
parent52d7a9602083a2c51f1cee9f61627a01bd7b894d (diff)
downloadpackages_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/settings/network')
-rw-r--r--src/com/android/settings/network/telephony/DataDuringCallsPreferenceController.java23
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());
}