[Settings] Fix MMS message UI is no consistency between UI and real state. am: 5216eeaaec

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23655882

Change-Id: I61dc41ada82f1fbcba4c1b337681ebd3e4b47055
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
tom hsu
2023-06-13 08:54:36 +00:00
committed by Automerger Merge Worker

View File

@@ -31,21 +31,19 @@ import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.core.lifecycle.events.OnStop;
/** /**
* Preference controller for "Mobile data" * Preference controller for "MMS messages"
*/ */
public class MmsMessagePreferenceController extends TelephonyTogglePreferenceController implements public class MmsMessagePreferenceController extends TelephonyTogglePreferenceController implements
LifecycleObserver, OnStart, OnStop { LifecycleObserver, OnStart, OnStop {
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
private SubscriptionManager mSubscriptionManager;
private MobileDataContentObserver mMobileDataContentObserver; private MobileDataContentObserver mMobileDataContentObserver;
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
public MmsMessagePreferenceController(Context context, String key) { public MmsMessagePreferenceController(Context context, String key) {
super(context, key); super(context, key);
mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
mMobileDataContentObserver = new MobileDataContentObserver( mMobileDataContentObserver = new MobileDataContentObserver(
new Handler(Looper.getMainLooper())); new Handler(Looper.getMainLooper()));
mMobileDataContentObserver.setOnMobileDataChangedListener(()->refreshPreference()); mMobileDataContentObserver.setOnMobileDataChangedListener(() -> refreshPreference());
} }
@Override @Override
@@ -88,12 +86,15 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
@Override @Override
public boolean setChecked(boolean isChecked) { public boolean setChecked(boolean isChecked) {
if (mTelephonyManager == null) {
return false;
}
mTelephonyManager.setMobileDataPolicyEnabled( mTelephonyManager.setMobileDataPolicyEnabled(
TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, isChecked); TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, isChecked);
return isChecked == mTelephonyManager.isMobileDataPolicyEnabled( return true;
TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED);
} }
@Override @Override
public boolean isChecked() { public boolean isChecked() {
return mTelephonyManager != null && mTelephonyManager.isDataEnabledForApn( return mTelephonyManager != null && mTelephonyManager.isDataEnabledForApn(