summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/network
diff options
context:
space:
mode:
authorBonian Chen <bonianchen@google.com>2020-05-04 11:36:55 +0800
committerBonian Chen <bonianchen@google.com>2020-05-04 11:48:09 +0800
commitd231727e3b6dbe1a03437b6d8ca8b759b60761cc (patch)
tree7429d99fa42cbc62e84b26febf76b7497ab56b30 /src/com/android/settings/network
parent37c795af3a1157fb5cd244d1dd9474983304b025 (diff)
downloadpackages_apps_Settings-d231727e3b6dbe1a03437b6d8ca8b759b60761cc.tar.gz
packages_apps_Settings-d231727e3b6dbe1a03437b6d8ca8b759b60761cc.tar.bz2
packages_apps_Settings-d231727e3b6dbe1a03437b6d8ca8b759b60761cc.zip
[Settings] Code refactor
Move some work out of constructor of EnabledNetworkModePreferenceController. Which could avoid callbacks before init() been invoked. Bug: 141833767 Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=Enhanced4gBasePreferenceControllerTest Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=EnabledNetworkModePreferenceControllerTest Change-Id: I11f25d130a746c75184a21a8991177b02ad237f0 Change-Id: I6aa58a8d9d15b1524bf03f425e3eae3a0254593e
Diffstat (limited to 'src/com/android/settings/network')
-rw-r--r--src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java35
-rw-r--r--src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java11
2 files changed, 32 insertions, 14 deletions
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index 5343709208..d5a192a545 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -61,19 +61,6 @@ public class EnabledNetworkModePreferenceController extends
public EnabledNetworkModePreferenceController(Context context, String key) {
super(context, key);
- mPreferredNetworkModeObserver = new PreferredNetworkModeContentObserver(
- new Handler(Looper.getMainLooper()));
- mPreferredNetworkModeObserver.setPreferredNetworkModeChangedListener(
- () -> updatePreference());
- }
-
- private void updatePreference() {
- if (mPreferenceScreen != null) {
- displayPreference(mPreferenceScreen);
- }
- if (mPreference != null) {
- updateState(mPreference);
- }
}
@Override
@@ -100,11 +87,17 @@ public class EnabledNetworkModePreferenceController extends
@OnLifecycleEvent(ON_START)
public void onStart() {
+ if (mPreferredNetworkModeObserver == null) {
+ return;
+ }
mPreferredNetworkModeObserver.register(mContext, mSubId);
}
@OnLifecycleEvent(ON_STOP)
public void onStop() {
+ if (mPreferredNetworkModeObserver == null) {
+ return;
+ }
mPreferredNetworkModeObserver.unregister(mContext);
}
@@ -151,9 +144,25 @@ public class EnabledNetworkModePreferenceController extends
mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
mBuilder = new PreferenceEntriesBuilder(mContext, mSubId);
+ if (mPreferredNetworkModeObserver == null) {
+ mPreferredNetworkModeObserver = new PreferredNetworkModeContentObserver(
+ new Handler(Looper.getMainLooper()));
+ mPreferredNetworkModeObserver.setPreferredNetworkModeChangedListener(
+ () -> updatePreference());
+ }
+
lifecycle.addObserver(this);
}
+ private void updatePreference() {
+ if (mPreferenceScreen != null) {
+ displayPreference(mPreferenceScreen);
+ }
+ if (mPreference != null) {
+ updateState(mPreference);
+ }
+ }
+
private final static class PreferenceEntriesBuilder {
private CarrierConfigManager mCarrierConfigManager;
private Context mContext;
diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
index 3a91616a3c..91d01d36a1 100644
--- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
@@ -69,10 +69,13 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
public Enhanced4gBasePreferenceController(Context context, String key) {
super(context, key);
m4gLteListeners = new ArrayList<>();
- mPhoneStateListener = new PhoneCallStateListener();
}
public Enhanced4gBasePreferenceController init(int subId) {
+ if (mPhoneStateListener == null) {
+ mPhoneStateListener = new PhoneCallStateListener();
+ }
+
if (mSubId == subId) {
return this;
}
@@ -122,11 +125,17 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc
@Override
public void onStart() {
+ if (mPhoneStateListener == null) {
+ return;
+ }
mPhoneStateListener.register(mContext, mSubId);
}
@Override
public void onStop() {
+ if (mPhoneStateListener == null) {
+ return;
+ }
mPhoneStateListener.unregister();
}