Loading src/com/android/settings/dream/DreamHomeControlsPreferenceController.java +20 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading @@ -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; Loading tests/robotests/src/com/android/settings/dream/DreamHomeControlsPreferenceControllerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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); Loading @@ -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); } } Loading
src/com/android/settings/dream/DreamHomeControlsPreferenceController.java +20 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading @@ -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; Loading
tests/robotests/src/com/android/settings/dream/DreamHomeControlsPreferenceControllerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading @@ -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); Loading @@ -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); } }