From 802fad998ee99a128ff86f311b02021297bde8f1 Mon Sep 17 00:00:00 2001 From: jasonwshsu Date: Thu, 9 Jan 2020 21:31:40 +0800 Subject: [PATCH] Accessibility shortcut secondary action - legacy type fragment only have hardware shortcut - LegacyAccessibilityServicePreferenceFragment only allowed hardware shortcut, software shortcut appear is controlled by flagRequestAccessibilityButton Bug: 142530063 Test: manual Change-Id: I90c7246c83b5525613e22ff5f0ad03295288c53d --- ...acyAccessibilityServicePreferenceFragment.java | 15 +++++++++++++++ ...gleAccessibilityServicePreferenceFragment.java | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/accessibility/LegacyAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/LegacyAccessibilityServicePreferenceFragment.java index 4714fb39716..13397a2d215 100644 --- a/src/com/android/settings/accessibility/LegacyAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/LegacyAccessibilityServicePreferenceFragment.java @@ -16,6 +16,8 @@ package com.android.settings.accessibility; +import static com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; + import android.os.Bundle; import android.view.View; @@ -23,9 +25,12 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; +import com.google.common.collect.ImmutableSet; + /** For accessibility services that target SDK <= Q. */ public class LegacyAccessibilityServicePreferenceFragment extends ToggleAccessibilityServicePreferenceFragment { + @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); @@ -39,5 +44,15 @@ public class LegacyAccessibilityServicePreferenceFragment extends shortcutPreference.setSummary(hardwareTitle); shortcutPreference.setSettingsVisibility(View.GONE); } + // Only allowed hardware PreferredShortcutType in this fragment. + setAllowedPreferredShortcutType(UserShortcutType.HARDWARE); + } + + private void setAllowedPreferredShortcutType(int type) { + final AccessibilityUserShortcutType shortcut = new AccessibilityUserShortcutType( + getComponentName().flattenToString(), type); + + SharedPreferenceUtils.setUserShortcutType(getPrefContext(), + ImmutableSet.of(shortcut.flattenToString())); } } diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index e2751570fcf..c24127fa0a9 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -623,7 +623,7 @@ public class ToggleAccessibilityServicePreferenceFragment extends } } - private ComponentName getComponentName() { + ComponentName getComponentName() { return mComponentName; } }