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

Commit 24b2d92f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update screen pinning state whenever it changes."

parents 6a2ed84d f93fcd36
Loading
Loading
Loading
Loading
+11 −15
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.settings.security;
import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -38,19 +37,16 @@ public class ScreenPinningPreferenceController extends BasePreferenceController
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        final Preference preference = screen.findPreference(getPreferenceKey());
        if (preference == null) {
            return;
        }
        if (Settings.System.getInt(mContext.getContentResolver(),
                Settings.System.LOCK_TO_APP_ENABLED, 0) != 0) {
            preference.setSummary(
                    mContext.getString(R.string.switch_on_text));
        } else {
            preference.setSummary(
                    mContext.getString(R.string.switch_off_text));
    public String getSummary() {
        return Settings.System.getInt(mContext.getContentResolver(),
                Settings.System.LOCK_TO_APP_ENABLED, 0) != 0
                ? mContext.getString(R.string.switch_on_text)
                : mContext.getString(R.string.switch_off_text);
    }

    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        preference.setSummary(getSummary());
    }
}
+4 −15
Original line number Diff line number Diff line
@@ -18,23 +18,19 @@ package com.android.settings.security;

import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@@ -43,10 +39,6 @@ import org.robolectric.annotation.Config;
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ScreenPinningPreferenceControllerTest {

    @Mock
    private PreferenceScreen mScreen;

    private FakeFeatureFactory mFeatureFactory;
    private Context mContext;
    private ScreenPinningPreferenceController mController;
    private Preference mPreference;
@@ -55,12 +47,9 @@ public class ScreenPinningPreferenceControllerTest {
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mFeatureFactory = FakeFeatureFactory.setupForTest();
        mController = new ScreenPinningPreferenceController(mContext);
        mPreference = new Preference(mContext);
        mPreference.setKey(mController.getPreferenceKey());
        when(mScreen.findPreference(mController.getPreferenceKey()))
                .thenReturn(mPreference);
    }

    @After
@@ -75,22 +64,22 @@ public class ScreenPinningPreferenceControllerTest {
    }

    @Test
    public void displayPreference_isOff_shouldDisableOffSummary() {
    public void updateState_isOff_shouldDisableOffSummary() {
        Settings.System.putInt(mContext.getContentResolver(),
                Settings.System.LOCK_TO_APP_ENABLED, 0);

        mController.displayPreference(mScreen);
        mController.updateState(mPreference);

        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.switch_off_text));
    }

    @Test
    public void displayPreference_isOn_shouldDisableOnSummary() {
    public void updateState_isOn_shouldDisableOnSummary() {
        Settings.System.putInt(mContext.getContentResolver(),
                Settings.System.LOCK_TO_APP_ENABLED, 1);

        mController.displayPreference(mScreen);
        mController.updateState(mPreference);

        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.switch_on_text));