Merge changes from topic "b-303511250-cleanup" into main
* changes: Use A11yManagerService to check if the A11yService warning is required. Minor refactoring to replace duplicated logic with existing methods.
This commit is contained in:
committed by
Android (Google) Code Review
commit
2edaf7668c
@@ -64,7 +64,7 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
|
|||||||
@Override
|
@Override
|
||||||
void onDialogButtonFromShortcutToggleClicked(View view) {
|
void onDialogButtonFromShortcutToggleClicked(View view) {
|
||||||
super.onDialogButtonFromShortcutToggleClicked(view);
|
super.onDialogButtonFromShortcutToggleClicked(view);
|
||||||
if (!android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
|
if (!android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
if (view.getId() == R.id.permission_enable_allow_button) {
|
if (view.getId() == R.id.permission_enable_allow_button) {
|
||||||
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
|
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName,
|
||||||
true);
|
true);
|
||||||
@@ -80,7 +80,7 @@ public class InvisibleToggleAccessibilityServicePreferenceFragment extends
|
|||||||
@Override
|
@Override
|
||||||
void onAllowButtonFromShortcutToggleClicked() {
|
void onAllowButtonFromShortcutToggleClicked() {
|
||||||
super.onAllowButtonFromShortcutToggleClicked();
|
super.onAllowButtonFromShortcutToggleClicked();
|
||||||
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
|
AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -157,7 +157,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
if (info == null) {
|
if (info == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
mWarningDialog =
|
mWarningDialog =
|
||||||
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
|
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
|
||||||
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
|
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
|
||||||
@@ -175,7 +175,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
if (info == null) {
|
if (info == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
mWarningDialog =
|
mWarningDialog =
|
||||||
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
|
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
|
||||||
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
|
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
|
||||||
@@ -193,7 +193,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
if (info == null) {
|
if (info == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (android.view.accessibility.Flags.deduplicateAccessibilityWarningDialog()) {
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
mWarningDialog =
|
mWarningDialog =
|
||||||
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
|
com.android.internal.accessibility.dialog.AccessibilityServiceWarning
|
||||||
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
|
.createAccessibilityServiceWarningDialog(getPrefContext(), info,
|
||||||
@@ -332,13 +332,18 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
|
final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
|
||||||
mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
|
mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
|
||||||
if (preference.isChecked()) {
|
if (preference.isChecked()) {
|
||||||
if (!mToggleServiceSwitchPreference.isChecked()) {
|
final boolean isWarningRequired;
|
||||||
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
|
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
|
||||||
|
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
|
||||||
|
} else {
|
||||||
|
isWarningRequired = !mToggleServiceSwitchPreference.isChecked();
|
||||||
|
}
|
||||||
|
if (isWarningRequired) {
|
||||||
preference.setChecked(false);
|
preference.setChecked(false);
|
||||||
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
|
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
|
||||||
} else {
|
} else {
|
||||||
AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
|
onAllowButtonFromShortcutToggleClicked();
|
||||||
mComponentName);
|
|
||||||
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), shortcutTypes,
|
AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), shortcutTypes,
|
||||||
@@ -349,10 +354,20 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSettingsClicked(ShortcutPreference preference) {
|
public void onSettingsClicked(ShortcutPreference preference) {
|
||||||
final boolean isServiceOnOrShortcutAdded = mShortcutPreference.isChecked()
|
final boolean isWarningRequired;
|
||||||
|| mToggleServiceSwitchPreference.isChecked();
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
showPopupDialog(isServiceOnOrShortcutAdded ? DialogEnums.EDIT_SHORTCUT
|
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
|
||||||
: DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
|
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
|
||||||
|
} else {
|
||||||
|
isWarningRequired = !(mShortcutPreference.isChecked()
|
||||||
|
|| mToggleServiceSwitchPreference.isChecked());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isWarningRequired) {
|
||||||
|
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
|
||||||
|
} else {
|
||||||
|
onAllowButtonFromShortcutClicked();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -467,7 +482,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
mIsDialogShown.set(false);
|
mIsDialogShown.set(false);
|
||||||
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
||||||
}
|
}
|
||||||
mWarningDialog.dismiss();
|
if (mWarningDialog != null) {
|
||||||
|
mWarningDialog.dismiss();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onDenyButtonFromEnableToggleClicked() {
|
private void onDenyButtonFromEnableToggleClicked() {
|
||||||
@@ -496,7 +513,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
mIsDialogShown.set(false);
|
mIsDialogShown.set(false);
|
||||||
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
||||||
|
|
||||||
mWarningDialog.dismiss();
|
if (mWarningDialog != null) {
|
||||||
|
mWarningDialog.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
|
||||||
}
|
}
|
||||||
@@ -522,7 +541,9 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
mIsDialogShown.set(false);
|
mIsDialogShown.set(false);
|
||||||
showPopupDialog(DialogEnums.EDIT_SHORTCUT);
|
showPopupDialog(DialogEnums.EDIT_SHORTCUT);
|
||||||
|
|
||||||
mWarningDialog.dismiss();
|
if (mWarningDialog != null) {
|
||||||
|
mWarningDialog.dismiss();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onDenyButtonFromShortcutClicked() {
|
private void onDenyButtonFromShortcutClicked() {
|
||||||
@@ -534,13 +555,17 @@ public class ToggleAccessibilityServicePreferenceFragment extends
|
|||||||
mToggleServiceSwitchPreference.setChecked(false);
|
mToggleServiceSwitchPreference.setChecked(false);
|
||||||
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
|
||||||
/* disableService */ false);
|
/* disableService */ false);
|
||||||
if (!mShortcutPreference.isChecked()) {
|
final boolean isWarningRequired;
|
||||||
|
if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
|
||||||
|
isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
|
||||||
|
.isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
|
||||||
|
} else {
|
||||||
|
isWarningRequired = !mShortcutPreference.isChecked();
|
||||||
|
}
|
||||||
|
if (isWarningRequired) {
|
||||||
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
|
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
|
||||||
} else {
|
} else {
|
||||||
handleConfirmServiceEnabled(/* confirmed= */ true);
|
onAllowButtonFromEnableToggleClicked();
|
||||||
if (serviceSupportsAccessibilityButton()) {
|
|
||||||
showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mToggleServiceSwitchPreference.setChecked(true);
|
mToggleServiceSwitchPreference.setChecked(true);
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.accessibility;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -31,8 +32,13 @@ import android.content.pm.ApplicationInfo;
|
|||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.pm.ServiceInfo;
|
import android.content.pm.ServiceInfo;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.platform.test.annotations.RequiresFlagsEnabled;
|
||||||
|
import android.platform.test.flag.junit.CheckFlagsRule;
|
||||||
|
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
|
||||||
import android.service.quicksettings.TileService;
|
import android.service.quicksettings.TileService;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
|
import android.view.accessibility.Flags;
|
||||||
|
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
@@ -40,8 +46,10 @@ import androidx.test.core.app.ApplicationProvider;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
|
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
|
||||||
|
import com.android.settings.widget.SettingsMainSwitchPreference;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.Answers;
|
import org.mockito.Answers;
|
||||||
@@ -59,6 +67,9 @@ import java.util.List;
|
|||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
public class ToggleAccessibilityServicePreferenceFragmentTest {
|
public class ToggleAccessibilityServicePreferenceFragmentTest {
|
||||||
|
|
||||||
|
@Rule
|
||||||
|
public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
|
||||||
|
|
||||||
private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
|
private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
|
||||||
private static final String PLACEHOLDER_PACKAGE_NAME2 = "com.placeholder.example2";
|
private static final String PLACEHOLDER_PACKAGE_NAME2 = "com.placeholder.example2";
|
||||||
private static final String PLACEHOLDER_SERVICE_CLASS_NAME = "a11yservice1";
|
private static final String PLACEHOLDER_SERVICE_CLASS_NAME = "a11yservice1";
|
||||||
@@ -73,20 +84,25 @@ public class ToggleAccessibilityServicePreferenceFragmentTest {
|
|||||||
PLACEHOLDER_PACKAGE_NAME + "tile.placeholder";
|
PLACEHOLDER_PACKAGE_NAME + "tile.placeholder";
|
||||||
private static final String PLACEHOLDER_TILE_NAME2 =
|
private static final String PLACEHOLDER_TILE_NAME2 =
|
||||||
PLACEHOLDER_PACKAGE_NAME + "tile.placeholder2";
|
PLACEHOLDER_PACKAGE_NAME + "tile.placeholder2";
|
||||||
|
private static final int NO_DIALOG = -1;
|
||||||
|
|
||||||
private TestToggleAccessibilityServicePreferenceFragment mFragment;
|
private TestToggleAccessibilityServicePreferenceFragment mFragment;
|
||||||
private PreferenceScreen mScreen;
|
private PreferenceScreen mScreen;
|
||||||
private Context mContext = ApplicationProvider.getApplicationContext();
|
private Context mContext;
|
||||||
|
|
||||||
private ShadowAccessibilityManager mShadowAccessibilityManager;
|
private ShadowAccessibilityManager mShadowAccessibilityManager;
|
||||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||||
private PreferenceManager mPreferenceManager;
|
private PreferenceManager mPreferenceManager;
|
||||||
|
@Mock
|
||||||
|
private AccessibilityManager mMockAccessibilityManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUpTestFragment() {
|
public void setUpTestFragment() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
|
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||||
mFragment = spy(new TestToggleAccessibilityServicePreferenceFragment());
|
mFragment = spy(new TestToggleAccessibilityServicePreferenceFragment());
|
||||||
|
mFragment.setArguments(new Bundle());
|
||||||
when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
|
when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
|
||||||
when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
|
when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
|
||||||
when(mFragment.getContext()).thenReturn(mContext);
|
when(mFragment.getContext()).thenReturn(mContext);
|
||||||
@@ -213,6 +229,86 @@ public class ToggleAccessibilityServicePreferenceFragmentTest {
|
|||||||
assertThat(mFragment.serviceSupportsAccessibilityButton()).isFalse();
|
assertThat(mFragment.serviceSupportsAccessibilityButton()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
|
||||||
|
public void enableService_warningRequired_showWarning() throws Throwable {
|
||||||
|
setupServiceWarningRequired(true);
|
||||||
|
mFragment.mToggleServiceSwitchPreference =
|
||||||
|
new SettingsMainSwitchPreference(mContext, /* attrs= */null);
|
||||||
|
|
||||||
|
mFragment.onCheckedChanged(null, true);
|
||||||
|
|
||||||
|
assertThat(mFragment.mLastShownDialogId).isEqualTo(
|
||||||
|
AccessibilityDialogUtils.DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
|
||||||
|
public void enableService_warningNotRequired_dontShowWarning() throws Throwable {
|
||||||
|
final AccessibilityServiceInfo info = setupServiceWarningRequired(false);
|
||||||
|
mFragment.mToggleServiceSwitchPreference =
|
||||||
|
new SettingsMainSwitchPreference(mContext, /* attrs= */null);
|
||||||
|
mFragment.mPreferenceKey = info.getComponentName().flattenToString();
|
||||||
|
|
||||||
|
mFragment.onCheckedChanged(null, true);
|
||||||
|
|
||||||
|
assertThat(mFragment.mLastShownDialogId).isEqualTo(
|
||||||
|
AccessibilityDialogUtils.DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
|
||||||
|
public void toggleShortcutPreference_warningRequired_showWarning() throws Throwable {
|
||||||
|
setupServiceWarningRequired(true);
|
||||||
|
mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
|
||||||
|
|
||||||
|
mFragment.mShortcutPreference.setChecked(true);
|
||||||
|
mFragment.onToggleClicked(mFragment.mShortcutPreference);
|
||||||
|
|
||||||
|
assertThat(mFragment.mLastShownDialogId).isEqualTo(
|
||||||
|
AccessibilityDialogUtils.DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
|
||||||
|
assertThat(mFragment.mShortcutPreference.isChecked()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
|
||||||
|
public void toggleShortcutPreference_warningNotRequired_dontShowWarning() throws Throwable {
|
||||||
|
setupServiceWarningRequired(false);
|
||||||
|
mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
|
||||||
|
|
||||||
|
mFragment.mShortcutPreference.setChecked(true);
|
||||||
|
mFragment.onToggleClicked(mFragment.mShortcutPreference);
|
||||||
|
|
||||||
|
assertThat(mFragment.mLastShownDialogId).isEqualTo(
|
||||||
|
AccessibilityDialogUtils.DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
|
||||||
|
assertThat(mFragment.mShortcutPreference.isChecked()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
|
||||||
|
public void clickShortcutSettingsPreference_warningRequired_showWarning() throws Throwable {
|
||||||
|
setupServiceWarningRequired(true);
|
||||||
|
mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
|
||||||
|
|
||||||
|
mFragment.onSettingsClicked(mFragment.mShortcutPreference);
|
||||||
|
|
||||||
|
assertThat(mFragment.mLastShownDialogId).isEqualTo(
|
||||||
|
AccessibilityDialogUtils.DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
|
||||||
|
public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning()
|
||||||
|
throws Throwable {
|
||||||
|
setupServiceWarningRequired(false);
|
||||||
|
mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
|
||||||
|
|
||||||
|
mFragment.onSettingsClicked(mFragment.mShortcutPreference);
|
||||||
|
|
||||||
|
assertThat(mFragment.mLastShownDialogId).isEqualTo(
|
||||||
|
AccessibilityDialogUtils.DialogEnums.EDIT_SHORTCUT);
|
||||||
|
}
|
||||||
|
|
||||||
private void setupTileService(String packageName, String name, String tileName) {
|
private void setupTileService(String packageName, String name, String tileName) {
|
||||||
final Intent tileProbe = new Intent(TileService.ACTION_QS_TILE);
|
final Intent tileProbe = new Intent(TileService.ACTION_QS_TILE);
|
||||||
final ResolveInfo info = new ResolveInfo();
|
final ResolveInfo info = new ResolveInfo();
|
||||||
@@ -222,6 +318,21 @@ public class ToggleAccessibilityServicePreferenceFragmentTest {
|
|||||||
shadowPackageManager.addResolveInfoForIntent(tileProbe, info);
|
shadowPackageManager.addResolveInfoForIntent(tileProbe, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private AccessibilityServiceInfo setupServiceWarningRequired(boolean required)
|
||||||
|
throws Throwable {
|
||||||
|
final AccessibilityServiceInfo info = getFakeAccessibilityServiceInfo(
|
||||||
|
PLACEHOLDER_PACKAGE_NAME,
|
||||||
|
PLACEHOLDER_SERVICE_CLASS_NAME);
|
||||||
|
info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
|
||||||
|
mFragment.mComponentName = info.getComponentName();
|
||||||
|
when(mContext.getSystemService(AccessibilityManager.class))
|
||||||
|
.thenReturn(mMockAccessibilityManager);
|
||||||
|
when(mMockAccessibilityManager.isAccessibilityServiceWarningRequired(any()))
|
||||||
|
.thenReturn(required);
|
||||||
|
when(mFragment.getAccessibilityServiceInfo()).thenReturn(info);
|
||||||
|
return info;
|
||||||
|
}
|
||||||
|
|
||||||
private static class FakeServiceInfo extends ServiceInfo {
|
private static class FakeServiceInfo extends ServiceInfo {
|
||||||
private String mTileName;
|
private String mTileName;
|
||||||
|
|
||||||
@@ -255,10 +366,16 @@ public class ToggleAccessibilityServicePreferenceFragmentTest {
|
|||||||
|
|
||||||
private static class TestToggleAccessibilityServicePreferenceFragment
|
private static class TestToggleAccessibilityServicePreferenceFragment
|
||||||
extends ToggleAccessibilityServicePreferenceFragment {
|
extends ToggleAccessibilityServicePreferenceFragment {
|
||||||
|
int mLastShownDialogId = NO_DIALOG;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ComponentName getTileComponentName() {
|
protected ComponentName getTileComponentName() {
|
||||||
return PLACEHOLDER_TILE_COMPONENT_NAME;
|
return PLACEHOLDER_TILE_COMPONENT_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void showDialog(int dialogId) {
|
||||||
|
mLastShownDialogId = dialogId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user