Make sure to update MobileNetworkSettings after MobileDataPreference change
Otherwise the UI will get stuck on an outdated state when changing the
"Mobile data" switch.
Issue: FP2A10-119
Change-Id: Iaf974ac8a695207c2058f3c19280e7023041f368
diff --git a/src/com/android/phone/MobileDataPreference.java b/src/com/android/phone/MobileDataPreference.java
index e1ceab0..3838eea 100644
--- a/src/com/android/phone/MobileDataPreference.java
+++ b/src/com/android/phone/MobileDataPreference.java
@@ -177,6 +177,7 @@
private void setChecked(boolean checked) {
if (mChecked == checked) return;
mChecked = checked;
+ callChangeListener(checked);
notifyChanged();
}
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 231d1a8..46f2648 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -812,6 +812,7 @@
mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
+ mMobileDataPref.setOnPreferenceChangeListener(this);
mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
//get UI object references
@@ -1576,6 +1577,9 @@
|| preference == getPreferenceScreen()
.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
return true;
+ } else if (preference == mMobileDataPref) {
+ // Update after 1s delay, so the UI will be configured correctly
+ mHandler.postDelayed(this::updateBody, 1000);
}
updateBody();