Merge "[Settings] Imporve MMS message UI state update" into udc-d1-dev am: 8182348d5c am: d4aa1b65a5

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

Change-Id: I403765aae030e5b1aea4482fc161a43932148b30
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-06-15 04:38:06 +00:00
committed by Automerger Merge Worker
2 changed files with 26 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.network.MobileDataContentObserver; import com.android.settings.network.MobileDataContentObserver;
@@ -38,6 +39,7 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
private TelephonyManager mTelephonyManager; private TelephonyManager mTelephonyManager;
private MobileDataContentObserver mMobileDataContentObserver; private MobileDataContentObserver mMobileDataContentObserver;
private PreferenceScreen mScreen; private PreferenceScreen mScreen;
private Preference mPreference;
public MmsMessagePreferenceController(Context context, String key) { public MmsMessagePreferenceController(Context context, String key) {
super(context, key); super(context, key);
@@ -61,6 +63,7 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
public void onStart() { public void onStart() {
if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) { if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
mMobileDataContentObserver.register(mContext, mSubId); mMobileDataContentObserver.register(mContext, mSubId);
updateState(mPreference);
} }
} }
@@ -75,6 +78,7 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mScreen = screen; mScreen = screen;
mPreference = screen.findPreference(getPreferenceKey());
} }

View File

@@ -21,15 +21,20 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.Looper;
import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting; import android.telephony.data.ApnSetting;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference; import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -63,7 +68,7 @@ public class MmsMessagePreferenceControllerTest {
when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
mPreference = new SwitchPreference(mContext); mPreference = spy(new SwitchPreference(mContext));
mController = new MmsMessagePreferenceController(mContext, "mms_message"); mController = new MmsMessagePreferenceController(mContext, "mms_message");
mController.init(SUB_ID); mController.init(SUB_ID);
mPreference.setKey(mController.getPreferenceKey()); mPreference.setKey(mController.getPreferenceKey());
@@ -118,4 +123,20 @@ public class MmsMessagePreferenceControllerTest {
verify(mTelephonyManager).setMobileDataPolicyEnabled( verify(mTelephonyManager).setMobileDataPolicyEnabled(
TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false); TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false);
} }
@Test
public void onStart_updatePreferenceUiState() {
if (Looper.myLooper() == null) {
Looper.prepare();
}
PreferenceManager preferenceManager = new PreferenceManager(mContext);
PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
preferenceScreen.addPreference(mPreference);
mController.displayPreference(preferenceScreen);
mController.onStart();
// First is preference initialization, and second is in onStart();
verify(mPreference, times(2)).setChecked(anyBoolean());
}
} }