Clarify text shown in a11y service warning dialog
Replacing the text generated from the service's
capabilities (which could change) with a generic message
based on the maximum capabilities (full control) a service
can obtain.
Bug: 110715236
Test: atest SettingsRoboTests
Change-Id: Iecb548c77c9031626d4da24741ec1f753d0cc94f
diff --git a/res/layout/enable_accessibility_service_dialog_content.xml b/res/layout/enable_accessibility_service_dialog_content.xml
index f212eb1..e16dc65 100644
--- a/res/layout/enable_accessibility_service_dialog_content.xml
+++ b/res/layout/enable_accessibility_service_dialog_content.xml
@@ -38,20 +38,13 @@
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
- android:id="@+id/capabilities_header"
+ android:id="@+id/accessibility_service_warning"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:textAlignment="viewStart"
android:textAppearance="?android:attr/textAppearanceMedium"/>
- <LinearLayout
- android:id="@+id/capabilities"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:padding="10dip"/>
-
</LinearLayout>
</ScrollView>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fb8ab20..4700d3f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4818,11 +4818,12 @@
example="TalkBack">%1$s</xliff:g> affects data encryption, you need to confirm your password.
</string>
- <!-- Title for the capability of an accessibility service to receive events and keys. -->
- <string name="capability_title_receiveAccessibilityEvents">Observe your actions</string>
- <!-- Description for the capability of an accessibility service to receive events and keys. -->
- <string name="capability_desc_receiveAccessibilityEvents">Receive notifications when you\u2019re
- interacting with an app.</string>
+ <!-- Warning that explains that accessibility services have a lot of access to user data [CHAR LIMIT=NONE] -->
+ <string name="accessibility_service_warning"><xliff:g id="service"
+ example="TalkBack">%1$s</xliff:g> is requesting full control of this device. The service
+ can read the screen and act on behalf of users with accessibility needs.
+ This level of control is not appropriate for most apps.
+ </string>
<!-- Title for a warning about disabling an accessibility service. [CHAR LIMIT=NONE] -->
<string name="disable_service_title">Stop <xliff:g id="service" example="TalkBack">%1$s</xliff:g>?</string>
diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
index 6360d42..e0f1747 100644
--- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
+++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
@@ -43,8 +43,8 @@
import java.util.Locale;
/**
- * Utility class for creating the dialog that asks users for explicit permission to grant
- * all of the requested capabilities to an accessibility service before the service is enabled
+ * Utility class for creating the dialog that asks users for explicit permission for an
+ * accessibility service to access user data before the service is enabled
*/
public class AccessibilityServiceWarning {
public static Dialog createCapabilitiesDialog(Activity parentActivity,
@@ -117,60 +117,9 @@
encryptionWarningView.setVisibility(View.GONE);
}
- TextView capabilitiesHeaderView = (TextView) content.findViewById(
- R.id.capabilities_header);
- capabilitiesHeaderView.setText(context.getString(R.string.capabilities_list_title,
- getServiceName(context, info)));
-
- LinearLayout capabilitiesView = (LinearLayout) content.findViewById(R.id.capabilities);
-
- // This capability is implicit for all services.
- View capabilityView = inflater.inflate(
- com.android.internal.R.layout.app_permission_item_old, null);
-
- ImageView imageView = (ImageView) capabilityView.findViewById(
- com.android.internal.R.id.perm_icon);
- imageView.setImageDrawable(context.getDrawable(
- com.android.internal.R.drawable.ic_text_dot));
-
- TextView labelView = (TextView) capabilityView.findViewById(
- com.android.internal.R.id.permission_group);
- labelView.setText(context.getString(
- R.string.capability_title_receiveAccessibilityEvents));
-
- TextView descriptionView = (TextView) capabilityView.findViewById(
- com.android.internal.R.id.permission_list);
- descriptionView.setText(
- context.getString(R.string.capability_desc_receiveAccessibilityEvents));
-
- List<AccessibilityServiceInfo.CapabilityInfo> capabilities =
- info.getCapabilityInfos(context);
-
- capabilitiesView.addView(capabilityView);
-
- // Service-specific capabilities.
- final int capabilityCount = capabilities.size();
- for (int i = 0; i < capabilityCount; i++) {
- AccessibilityServiceInfo.CapabilityInfo capability = capabilities.get(i);
-
- capabilityView = inflater.inflate(
- com.android.internal.R.layout.app_permission_item_old, null);
-
- imageView = (ImageView) capabilityView.findViewById(
- com.android.internal.R.id.perm_icon);
- imageView.setImageDrawable(context.getDrawable(
- com.android.internal.R.drawable.ic_text_dot));
-
- labelView = (TextView) capabilityView.findViewById(
- com.android.internal.R.id.permission_group);
- labelView.setText(context.getString(capability.titleResId));
-
- descriptionView = (TextView) capabilityView.findViewById(
- com.android.internal.R.id.permission_list);
- descriptionView.setText(context.getString(capability.descResId));
-
- capabilitiesView.addView(capabilityView);
- }
+ TextView serviceWarningTextView = content.findViewById(R.id.accessibility_service_warning);
+ serviceWarningTextView.setText(context.getString(R.string.accessibility_service_warning,
+ getServiceName(context, info)));
return content;
}