From 5216eeaaec70efbeb576dc6d0fbb4941c01b0aca Mon Sep 17 00:00:00 2001 From: tom hsu Date: Wed, 7 Jun 2023 17:58:49 +0800 Subject: [PATCH] [Settings] Fix MMS message UI is no consistency between UI and real state. Bug: 285253872 Bug: 281566495 Test: Manual test passed. Change-Id: I805490fd5c4417e88c38a047f99ef626c16f600a --- .../telephony/MmsMessagePreferenceController.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java index 5908ecd8740..54a106a2f68 100644 --- a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java +++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.java @@ -31,21 +31,19 @@ import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; /** - * Preference controller for "Mobile data" + * Preference controller for "MMS messages" */ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceController implements LifecycleObserver, OnStart, OnStop { private TelephonyManager mTelephonyManager; - private SubscriptionManager mSubscriptionManager; private MobileDataContentObserver mMobileDataContentObserver; private PreferenceScreen mScreen; public MmsMessagePreferenceController(Context context, String key) { super(context, key); - mSubscriptionManager = context.getSystemService(SubscriptionManager.class); mMobileDataContentObserver = new MobileDataContentObserver( new Handler(Looper.getMainLooper())); - mMobileDataContentObserver.setOnMobileDataChangedListener(()->refreshPreference()); + mMobileDataContentObserver.setOnMobileDataChangedListener(() -> refreshPreference()); } @Override @@ -88,12 +86,15 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon @Override public boolean setChecked(boolean isChecked) { + if (mTelephonyManager == null) { + return false; + } mTelephonyManager.setMobileDataPolicyEnabled( TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, isChecked); - return isChecked == mTelephonyManager.isMobileDataPolicyEnabled( - TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED); + return true; } + @Override public boolean isChecked() { return mTelephonyManager != null && mTelephonyManager.isDataEnabledForApn(