RESTRICT AUTOMERGE Stops hiding a11y services with the same package+label as an activity. am: 398ab19923
am: 51113ad5ef
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/28806654 Change-Id: I8d823e7b82a69e924adcc6559289aeb4f46cce04 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -22,7 +22,6 @@ import android.app.settings.SettingsEnums;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.UserHandle;
|
||||
@@ -389,17 +388,11 @@ public class AccessibilitySettings extends DashboardFragment {
|
||||
final List<AccessibilityShortcutInfo> installedShortcutList =
|
||||
a11yManager.getInstalledAccessibilityShortcutListAsUser(context,
|
||||
UserHandle.myUserId());
|
||||
|
||||
// Remove duplicate item here, new a ArrayList to copy unmodifiable list result
|
||||
// (getInstalledAccessibilityServiceList).
|
||||
final List<AccessibilityServiceInfo> installedServiceList = new ArrayList<>(
|
||||
a11yManager.getInstalledAccessibilityServiceList());
|
||||
installedServiceList.removeIf(
|
||||
target -> containsTargetNameInList(installedShortcutList, target));
|
||||
|
||||
final List<RestrictedPreference> activityList =
|
||||
preferenceHelper.createAccessibilityActivityPreferenceList(installedShortcutList);
|
||||
|
||||
final List<RestrictedPreference> serviceList =
|
||||
preferenceHelper.createAccessibilityServicePreferenceList(installedServiceList);
|
||||
|
||||
@@ -410,24 +403,6 @@ public class AccessibilitySettings extends DashboardFragment {
|
||||
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) {
|
||||
String[] services = getResources().getStringArray(key);
|
||||
PreferenceCategory category = mCategoryToPrefCategoryMap.get(categoryKey);
|
||||
|
Reference in New Issue
Block a user