Reflect QS shortcut changes in a11y pages.
Bug: 314843909 Test: manual (modify qs tiles in QS panel while the a11y page is open, verify the a11y page reflect the qs changes) Test: atest com.android.settings.accessibility Test: atest com.android.settings.accessibility.shortcuts Flag: ACONFIG android.view.accessibility.a11y_qs_shortcut Change-Id: Ie5b46459faab902912a214ca131eb5d0b105a7ef
This commit is contained in:
@@ -16,13 +16,20 @@
|
||||
|
||||
package com.android.settings.gestures;
|
||||
|
||||
import static com.android.settings.gestures.OneHandedSettingsUtils.ONE_HANDED_MODE_TARGET_NAME;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.UserHandle;
|
||||
import android.platform.test.annotations.DisableFlags;
|
||||
import android.platform.test.annotations.EnableFlags;
|
||||
import android.platform.test.flag.junit.SetFlagsRule;
|
||||
import android.provider.Settings;
|
||||
import android.view.accessibility.Flags;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
@@ -30,7 +37,8 @@ import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public class OneHandedSettingsUtilsTest {
|
||||
|
||||
@Rule
|
||||
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
|
||||
private static final int OFF = 0;
|
||||
private static final int ON = 1;
|
||||
|
||||
@@ -120,4 +128,66 @@ public class OneHandedSettingsUtilsTest {
|
||||
OneHandedSettingsUtils.OneHandedTimeout.LONG.getValue(), mCurrentUserId))
|
||||
.isEqualTo(12);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getShortcutEnabled_a11yButtonVolumeKeysShortcutEnabled_returnTrue() {
|
||||
setupShortcuts(
|
||||
/* enableFab= */ true, /* enableVolumeKeys= */ true, /* enableQs=*/ false);
|
||||
|
||||
assertThat(OneHandedSettingsUtils.getShortcutEnabled(mContext)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getShortcutEnabled_a11yButtonShortcutEnabled_returnTrue() {
|
||||
setupShortcuts(
|
||||
/* enableFab= */ true, /* enableVolumeKeys= */ false, /* enableQs=*/ false);
|
||||
|
||||
assertThat(OneHandedSettingsUtils.getShortcutEnabled(mContext)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getShortcutEnabled_volumeKeysShortcutEnabled_returnTrue() {
|
||||
setupShortcuts(
|
||||
/* enableFab= */ false, /* enableVolumeKeys= */ true, /* enableQs=*/ false);
|
||||
|
||||
assertThat(OneHandedSettingsUtils.getShortcutEnabled(mContext)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getShortcutEnabled_noShortcutsEnabled_returnFalse() {
|
||||
setupShortcuts(
|
||||
/* enableFab= */ false, /* enableVolumeKeys= */ false, /* enableQs=*/ false);
|
||||
|
||||
assertThat(OneHandedSettingsUtils.getShortcutEnabled(mContext)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
|
||||
public void getShortcutEnabled_qsShortcutEnabled_returnTrue() {
|
||||
setupShortcuts(
|
||||
/* enableFab= */ false, /* enableVolumeKeys= */ false, /* enableQs=*/ true);
|
||||
|
||||
assertThat(OneHandedSettingsUtils.getShortcutEnabled(mContext)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisableFlags(Flags.FLAG_A11Y_QS_SHORTCUT)
|
||||
public void getShortcutEnabled_flagDisabled_qsShortcutEnabled_returnFalse() {
|
||||
setupShortcuts(
|
||||
/* enableFab= */ false, /* enableVolumeKeys= */ false, /* enableQs=*/ true);
|
||||
|
||||
assertThat(OneHandedSettingsUtils.getShortcutEnabled(mContext)).isFalse();
|
||||
}
|
||||
|
||||
private void setupShortcuts(boolean enableFab, boolean enableVolumeKeys, boolean enableQs) {
|
||||
setupShortcut(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, enableFab);
|
||||
setupShortcut(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, enableVolumeKeys);
|
||||
setupShortcut(Settings.Secure.ACCESSIBILITY_QS_TARGETS, enableQs);
|
||||
}
|
||||
|
||||
private void setupShortcut(String shortcutSettingKey, boolean enabled) {
|
||||
final String targetName = enabled ? ONE_HANDED_MODE_TARGET_NAME : "";
|
||||
Settings.Secure.putStringForUser(
|
||||
mContext.getContentResolver(), shortcutSettingKey, targetName, mCurrentUserId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user