RESTRICT AUTOMERGE Stops hiding a11y services with the same package+label as an activity. am: c4963a73f0

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/28782741

Change-Id: Ibd262d1e500113d0b29fae776cc950610dcc02db
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Daniel Norman
2024-08-22 00:16:47 +00:00
committed by Automerger Merge Worker

View File

@@ -27,7 +27,6 @@ import android.content.Context;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
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.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
@@ -407,17 +406,11 @@ public class AccessibilitySettings extends DashboardFragment {
final List<AccessibilityShortcutInfo> installedShortcutList = final List<AccessibilityShortcutInfo> installedShortcutList =
a11yManager.getInstalledAccessibilityShortcutListAsUser(context, a11yManager.getInstalledAccessibilityShortcutListAsUser(context,
UserHandle.myUserId()); UserHandle.myUserId());
// Remove duplicate item here, new a ArrayList to copy unmodifiable list result
// (getInstalledAccessibilityServiceList).
final List<AccessibilityServiceInfo> installedServiceList = new ArrayList<>( final List<AccessibilityServiceInfo> installedServiceList = new ArrayList<>(
a11yManager.getInstalledAccessibilityServiceList()); a11yManager.getInstalledAccessibilityServiceList());
installedServiceList.removeIf(
target -> containsTargetNameInList(installedShortcutList, target));
final List<RestrictedPreference> activityList = final List<RestrictedPreference> activityList =
preferenceHelper.createAccessibilityActivityPreferenceList(installedShortcutList); preferenceHelper.createAccessibilityActivityPreferenceList(installedShortcutList);
final List<RestrictedPreference> serviceList = final List<RestrictedPreference> serviceList =
preferenceHelper.createAccessibilityServicePreferenceList(installedServiceList); preferenceHelper.createAccessibilityServicePreferenceList(installedServiceList);
@@ -428,24 +421,6 @@ public class AccessibilitySettings extends DashboardFragment {
return preferenceList; return preferenceList;
} }
private boolean containsTargetNameInList(List<AccessibilityShortcutInfo> shortcutInfos,
AccessibilityServiceInfo targetServiceInfo) {
final ServiceInfo serviceInfo = targetServiceInfo.getResolveInfo().serviceInfo;
final String servicePackageName = serviceInfo.packageName;
final CharSequence serviceLabel = serviceInfo.loadLabel(getPackageManager());
for (int i = 0, count = shortcutInfos.size(); i < count; ++i) {
final ActivityInfo activityInfo = shortcutInfos.get(i).getActivityInfo();
final String activityPackageName = activityInfo.packageName;
final CharSequence activityLabel = activityInfo.loadLabel(getPackageManager());
if (servicePackageName.equals(activityPackageName)
&& serviceLabel.equals(activityLabel)) {
return true;
}
}
return false;
}
private void initializePreBundledServicesMapFromArray(String categoryKey, int key) { private void initializePreBundledServicesMapFromArray(String categoryKey, int key) {
String[] services = getResources().getStringArray(key); String[] services = getResources().getStringArray(key);
PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey); PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey);