summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/accessibility/common/ShortcutConstants.java41
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java61
-rw-r--r--core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java60
-rw-r--r--core/java/com/android/internal/accessibility/util/ShortcutUtils.java23
4 files changed, 61 insertions, 124 deletions
diff --git a/core/java/com/android/internal/accessibility/common/ShortcutConstants.java b/core/java/com/android/internal/accessibility/common/ShortcutConstants.java
index b814e3f47162..7c9c51c2842f 100644
--- a/core/java/com/android/internal/accessibility/common/ShortcutConstants.java
+++ b/core/java/com/android/internal/accessibility/common/ShortcutConstants.java
@@ -79,21 +79,6 @@ public final class ShortcutConstants {
}
/**
- * Annotation for different shortcut target.
- */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- TargetType.ACCESSIBILITY_SERVICE,
- TargetType.ACCESSIBILITY_ACTIVITY,
- TargetType.WHITE_LISTING,
- })
- public @interface TargetType {
- int ACCESSIBILITY_SERVICE = 0;
- int ACCESSIBILITY_ACTIVITY = 1;
- int WHITE_LISTING = 2;
- }
-
- /**
* Annotation for different shortcut menu mode.
*
* {@code LAUNCH} for clicking list item to trigger the service callback.
@@ -108,30 +93,4 @@ public final class ShortcutConstants {
int LAUNCH = 0;
int EDIT = 1;
}
-
- /**
- * Annotation for align the element index of white listing feature
- * {@code WHITE_LISTING_FEATURES}.
- *
- * {@code COMPONENT_ID} is to get the service component name.
- * {@code LABEL_ID} is to get the service label text.
- * {@code ICON_ID} is to get the service icon.
- * {@code FRAGMENT_TYPE} is to get the service fragment type.
- * {@code SETTINGS_KEY} is to get the service settings key.
- */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- WhiteListingFeatureElementIndex.COMPONENT_ID,
- WhiteListingFeatureElementIndex.LABEL_ID,
- WhiteListingFeatureElementIndex.ICON_ID,
- WhiteListingFeatureElementIndex.FRAGMENT_TYPE,
- WhiteListingFeatureElementIndex.SETTINGS_KEY,
- })
- public @interface WhiteListingFeatureElementIndex {
- int COMPONENT_ID = 0;
- int LABEL_ID = 1;
- int ICON_ID = 2;
- int FRAGMENT_TYPE = 3;
- int SETTINGS_KEY = 4;
- }
}
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
index 42b827b25dfe..e8d2813fe39e 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java
@@ -20,6 +20,7 @@ import static android.view.accessibility.AccessibilityManager.ACCESSIBILITY_SHOR
import static android.view.accessibility.AccessibilityManager.ShortcutType;
import static com.android.internal.accessibility.common.ShortcutConstants.ShortcutMenuMode;
+import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.createEnableDialogContentView;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getInstalledTargets;
import static com.android.internal.accessibility.dialog.AccessibilityTargetHelper.getTargets;
import static com.android.internal.util.Preconditions.checkArgument;
@@ -27,26 +28,18 @@ import static com.android.internal.util.Preconditions.checkArgument;
import android.annotation.Nullable;
import android.app.Activity;
import android.app.AlertDialog;
-import android.content.Context;
import android.content.DialogInterface;
import android.content.res.TypedArray;
import android.os.Bundle;
-import android.os.storage.StorageManager;
-import android.text.BidiFormatter;
-import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.accessibility.AccessibilityManager;
import android.widget.AdapterView;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.TextView;
import com.android.internal.R;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
/**
* Activity used to display various targets related to accessibility service, accessibility
@@ -169,56 +162,4 @@ public class AccessibilityShortcutChooserActivity extends Activity {
mMenuDialog.getListView().setOnItemClickListener(
isEditMenuMode ? this::onTargetChecked : this::onTargetSelected);
}
-
- private static View createEnableDialogContentView(Context context,
- AccessibilityServiceTarget target, View.OnClickListener allowListener,
- View.OnClickListener denyListener) {
- final LayoutInflater inflater = (LayoutInflater) context.getSystemService(
- Context.LAYOUT_INFLATER_SERVICE);
-
- final View content = inflater.inflate(
- R.layout.accessibility_enable_service_encryption_warning, /* root= */ null);
-
- final TextView encryptionWarningView = (TextView) content.findViewById(
- R.id.accessibility_encryption_warning);
- if (StorageManager.isNonDefaultBlockEncrypted()) {
- final String text = context.getString(
- R.string.accessibility_enable_service_encryption_warning,
- getServiceName(context, target.getLabel()));
- encryptionWarningView.setText(text);
- encryptionWarningView.setVisibility(View.VISIBLE);
- } else {
- encryptionWarningView.setVisibility(View.GONE);
- }
-
- final ImageView dialogIcon = content.findViewById(
- R.id.accessibility_permissionDialog_icon);
- dialogIcon.setImageDrawable(target.getIcon());
-
- final TextView dialogTitle = content.findViewById(
- R.id.accessibility_permissionDialog_title);
- dialogTitle.setText(context.getString(R.string.accessibility_enable_service_title,
- getServiceName(context, target.getLabel())));
-
- final Button allowButton = content.findViewById(
- R.id.accessibility_permission_enable_allow_button);
- final Button denyButton = content.findViewById(
- R.id.accessibility_permission_enable_deny_button);
- allowButton.setOnClickListener((view) -> {
- target.onCheckedChanged(/* isChecked= */ true);
- allowListener.onClick(view);
- });
- denyButton.setOnClickListener((view) -> {
- target.onCheckedChanged(/* isChecked= */ false);
- denyListener.onClick(view);
- });
-
- return content;
- }
-
- // Gets the service name and bidi wrap it to protect from bidi side effects.
- private static CharSequence getServiceName(Context context, CharSequence label) {
- final Locale locale = context.getResources().getConfiguration().getLocales().get(0);
- return BidiFormatter.getInstance(locale).unicodeWrap(label);
- }
}
diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
index 2772e2ce0fd4..f63cbe0dcd9e 100644
--- a/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
+++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityTargetHelper.java
@@ -31,9 +31,16 @@ import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.os.Build;
+import android.os.storage.StorageManager;
import android.provider.Settings;
+import android.text.BidiFormatter;
+import android.view.LayoutInflater;
+import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.ShortcutType;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
import com.android.internal.R;
import com.android.internal.accessibility.common.ShortcutConstants.AccessibilityFragmentType;
@@ -41,6 +48,7 @@ import com.android.internal.accessibility.common.ShortcutConstants.Accessibility
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Locale;
/**
* Collection of utilities for accessibility target.
@@ -198,4 +206,56 @@ final class AccessibilityTargetHelper {
throw new IllegalStateException("Unexpected fragment type");
}
}
+
+ static View createEnableDialogContentView(Context context,
+ AccessibilityServiceTarget target, View.OnClickListener allowListener,
+ View.OnClickListener denyListener) {
+ final LayoutInflater inflater = (LayoutInflater) context.getSystemService(
+ Context.LAYOUT_INFLATER_SERVICE);
+
+ final View content = inflater.inflate(
+ R.layout.accessibility_enable_service_encryption_warning, /* root= */ null);
+
+ final TextView encryptionWarningView = (TextView) content.findViewById(
+ R.id.accessibility_encryption_warning);
+ if (StorageManager.isNonDefaultBlockEncrypted()) {
+ final String text = context.getString(
+ R.string.accessibility_enable_service_encryption_warning,
+ getServiceName(context, target.getLabel()));
+ encryptionWarningView.setText(text);
+ encryptionWarningView.setVisibility(View.VISIBLE);
+ } else {
+ encryptionWarningView.setVisibility(View.GONE);
+ }
+
+ final ImageView dialogIcon = content.findViewById(
+ R.id.accessibility_permissionDialog_icon);
+ dialogIcon.setImageDrawable(target.getIcon());
+
+ final TextView dialogTitle = content.findViewById(
+ R.id.accessibility_permissionDialog_title);
+ dialogTitle.setText(context.getString(R.string.accessibility_enable_service_title,
+ getServiceName(context, target.getLabel())));
+
+ final Button allowButton = content.findViewById(
+ R.id.accessibility_permission_enable_allow_button);
+ final Button denyButton = content.findViewById(
+ R.id.accessibility_permission_enable_deny_button);
+ allowButton.setOnClickListener((view) -> {
+ target.onCheckedChanged(/* isChecked= */ true);
+ allowListener.onClick(view);
+ });
+ denyButton.setOnClickListener((view) -> {
+ target.onCheckedChanged(/* isChecked= */ false);
+ denyListener.onClick(view);
+ });
+
+ return content;
+ }
+
+ // Gets the service name and bidi wrap it to protect from bidi side effects.
+ private static CharSequence getServiceName(Context context, CharSequence label) {
+ final Locale locale = context.getResources().getConfiguration().getLocales().get(0);
+ return BidiFormatter.getInstance(locale).unicodeWrap(label);
+ }
}
diff --git a/core/java/com/android/internal/accessibility/util/ShortcutUtils.java b/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
index fa90b49e85af..c338a292646b 100644
--- a/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
+++ b/core/java/com/android/internal/accessibility/util/ShortcutUtils.java
@@ -99,29 +99,6 @@ public final class ShortcutUtils {
}
/**
- * Returns if component id existed in one of {@link UserShortcutType} string from Settings.
- *
- * @param context The current context.
- * @param shortcutTypes A combination of {@link UserShortcutType}.
- * @param componentId The component id that need to be checked existed in Settings.
- * @return {@code true} if component id existed in Settings.
- */
- public static boolean hasValuesInSettings(Context context, @UserShortcutType int shortcutTypes,
- @NonNull String componentId) {
- boolean exist = false;
- if ((shortcutTypes & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE) {
- exist = isComponentIdExistingInSettings(context, UserShortcutType.SOFTWARE,
- componentId);
- }
- if (((shortcutTypes & UserShortcutType.HARDWARE) == UserShortcutType.HARDWARE)) {
- exist |= isComponentIdExistingInSettings(context, UserShortcutType.HARDWARE,
- componentId);
- }
- return exist;
- }
-
-
- /**
* Returns if component id existed in Settings.
*
* @param context The current context.