[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
This commit is contained in:
Bonian Chen
2020-05-04 11:36:55 +08:00
parent 37c795af3a
commit d231727e3b
2 changed files with 32 additions and 14 deletions

View File

@@ -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;

View File

@@ -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();
}