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

Commit c7b445f2 authored by Lucas Silva's avatar Lucas Silva Committed by Automerger Merge Worker
Browse files

Merge "Disable dreams home controls button when disabled on lockscreen." into...

Merge "Disable dreams home controls button when disabled on lockscreen." into udc-dev am: 5bce93eb

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



Change-Id: Ide2decf88a2e32a8712ab1980df4ff2d57d90665
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 380c08d6 5bce93eb
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -17,6 +17,9 @@
package com.android.settings.dream;

import android.content.Context;
import android.provider.Settings;

import androidx.preference.Preference;

import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
@@ -46,12 +49,21 @@ public class DreamHomeControlsPreferenceController extends TogglePreferenceContr
        final boolean supported =
                mBackend.getSupportedComplications()
                        .contains(DreamBackend.COMPLICATION_TYPE_HOME_CONTROLS);
        return supported ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;

        return controlsEnabledOnLockscreen() ? (supported ? AVAILABLE : CONDITIONALLY_UNAVAILABLE)
                : DISABLED_DEPENDENT_SETTING;
    }

    @Override
    public void updateState(Preference preference) {
        super.updateState(preference);
        preference.setEnabled(getAvailabilityStatus() == AVAILABLE);
        refreshSummary(preference);
    }

    @Override
    public boolean isChecked() {
        return mBackend.getEnabledComplications().contains(
        return controlsEnabledOnLockscreen() && mBackend.getEnabledComplications().contains(
                DreamBackend.COMPLICATION_TYPE_HOME_CONTROLS);
    }

@@ -61,6 +73,12 @@ public class DreamHomeControlsPreferenceController extends TogglePreferenceContr
        return true;
    }

    private boolean controlsEnabledOnLockscreen() {
        return Settings.Secure.getInt(
                mContext.getContentResolver(),
                Settings.Secure.LOCKSCREEN_SHOW_CONTROLS, 0) != 0;
    }

    @Override
    public int getSliceHighlightMenuRes() {
        return R.string.menu_key_display;
+21 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;

import android.content.Context;
import android.provider.Settings;
import android.util.ArraySet;

import androidx.preference.PreferenceScreen;
@@ -80,6 +81,7 @@ public class DreamHomeControlsPreferenceControllerTest {

    @Test
    public void testSetChecked_setTrue_enablesSetting() {
        setControlsEnabledOnLockscreen(true);
        mBackend.setHomeControlsEnabled(false);
        assertThat(mBackend.getEnabledComplications())
                .doesNotContain(COMPLICATION_TYPE_HOME_CONTROLS);
@@ -91,6 +93,7 @@ public class DreamHomeControlsPreferenceControllerTest {

    @Test
    public void testSetChecked_setFalse_disablesSetting() {
        setControlsEnabledOnLockscreen(true);
        mBackend.setHomeControlsEnabled(true);
        assertThat(mBackend.getEnabledComplications())
                .contains(COMPLICATION_TYPE_HOME_CONTROLS);
@@ -102,15 +105,33 @@ public class DreamHomeControlsPreferenceControllerTest {

    @Test
    public void testIsChecked_returnsFalse() {
        setControlsEnabledOnLockscreen(true);
        mBackend.setHomeControlsEnabled(false);
        assertThat(mController.isChecked()).isFalse();
    }

    @Test
    public void testIsChecked_returnsTrue() {
        setControlsEnabledOnLockscreen(true);
        mBackend.setHomeControlsEnabled(true);
        assertThat(mBackend.getEnabledComplications())
                .contains(COMPLICATION_TYPE_HOME_CONTROLS);
        assertThat(mController.isChecked()).isTrue();
    }

    @Test
    public void testIsChecked_lockScreenDisabled_returnsFalse() {
        setControlsEnabledOnLockscreen(false);
        mBackend.setHomeControlsEnabled(true);
        assertThat(mBackend.getEnabledComplications())
                .doesNotContain(COMPLICATION_TYPE_HOME_CONTROLS);
        assertThat(mController.isChecked()).isFalse();
    }

    private void setControlsEnabledOnLockscreen(boolean enabled) {
        Settings.Secure.putInt(
                mContext.getContentResolver(),
                Settings.Secure.LOCKSCREEN_SHOW_CONTROLS,
                enabled ? 1 : 0);
    }
}