Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9c0cf79 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

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

parents 097f9ce7 8182348d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.network.MobileDataContentObserver;
@@ -38,6 +39,7 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
    private TelephonyManager mTelephonyManager;
    private MobileDataContentObserver mMobileDataContentObserver;
    private PreferenceScreen mScreen;
    private Preference mPreference;

    public MmsMessagePreferenceController(Context context, String key) {
        super(context, key);
@@ -61,6 +63,7 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
    public void onStart() {
        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
            mMobileDataContentObserver.register(mContext, mSubId);
            updateState(mPreference);
        }
    }

@@ -75,6 +78,7 @@ public class MmsMessagePreferenceController extends TelephonyTogglePreferenceCon
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mScreen = screen;
        mPreference = screen.findPreference(getPreferenceKey());
    }


+22 −1
Original line number Diff line number Diff line
@@ -21,15 +21,20 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U

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.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.os.Looper;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.data.ApnSetting;

import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -63,7 +68,7 @@ public class MmsMessagePreferenceControllerTest {
        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
        when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);

        mPreference = new SwitchPreference(mContext);
        mPreference = spy(new SwitchPreference(mContext));
        mController = new MmsMessagePreferenceController(mContext, "mms_message");
        mController.init(SUB_ID);
        mPreference.setKey(mController.getPreferenceKey());
@@ -118,4 +123,20 @@ public class MmsMessagePreferenceControllerTest {
        verify(mTelephonyManager).setMobileDataPolicyEnabled(
                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());
    }
}