Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f47351d4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix the duplicate components in edit shortcut menu list." into rvc-dev am: 22a0b13e

Change-Id: I69e00001eb1e3fbe7ce416eb01a83dc0a2503fb7
parents bdb9fccf 22a0b13e
Loading
Loading
Loading
Loading
+30 −2
Original line number Original line Diff line number Diff line
@@ -169,13 +169,41 @@ public class AccessibilityButtonChooserActivity extends Activity {
    private static List<AccessibilityButtonTarget> getInstalledServiceTargets(
    private static List<AccessibilityButtonTarget> getInstalledServiceTargets(
            @NonNull Context context) {
            @NonNull Context context) {
        final List<AccessibilityButtonTarget> targets = new ArrayList<>();
        final List<AccessibilityButtonTarget> targets = new ArrayList<>();
        targets.addAll(getAccessibilityServiceTargets(context));
        targets.addAll(getAccessibilityFilteredTargets(context));
        targets.addAll(getAccessibilityActivityTargets(context));
        targets.addAll(getWhiteListingServiceTargets(context));
        targets.addAll(getWhiteListingServiceTargets(context));


        return targets;
        return targets;
    }
    }


    private static List<AccessibilityButtonTarget> getAccessibilityFilteredTargets(
            @NonNull Context context) {
        final List<AccessibilityButtonTarget> serviceTargets =
                getAccessibilityServiceTargets(context);
        final List<AccessibilityButtonTarget> activityTargets =
                getAccessibilityActivityTargets(context);

        for (AccessibilityButtonTarget activityTarget : activityTargets) {
            serviceTargets.removeIf(serviceTarget -> {
                final ComponentName serviceComponentName =
                        ComponentName.unflattenFromString(serviceTarget.getId());
                final ComponentName activityComponentName =
                        ComponentName.unflattenFromString(activityTarget.getId());
                final boolean isSamePackageName = activityComponentName.getPackageName().equals(
                        serviceComponentName.getPackageName());
                final boolean isSameLabel = activityTarget.getLabel().equals(
                        serviceTarget.getLabel());

                return isSamePackageName && isSameLabel;
            });
        }

        final List<AccessibilityButtonTarget> targets = new ArrayList<>();
        targets.addAll(serviceTargets);
        targets.addAll(activityTargets);

        return targets;
    }

    private static List<AccessibilityButtonTarget> getAccessibilityServiceTargets(
    private static List<AccessibilityButtonTarget> getAccessibilityServiceTargets(
            @NonNull Context context) {
            @NonNull Context context) {
        final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);
        final AccessibilityManager ams = context.getSystemService(AccessibilityManager.class);