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