[Settings] Fix MMS message UI is no consistency between UI and real state.
Bug: 285253872 Bug: 281566495 Test: Manual test passed. Change-Id: I805490fd5c4417e88c38a047f99ef626c16f600a
This commit is contained in:
@@ -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(
|
||||||
|
Reference in New Issue
Block a user