feat(MultiFingerMultiTap): Add two-finger triple-tap shortcut on magnification dialog

The shortcut is separate from single-finger triple-tap. It’s under hardware shortcut and above/outside of Advanced section.

Bug: 297805269
Test: manual
Test: atest ToggleScreenMagnificationPreferenceFragmentTest
Change-Id: Id74cf3e457c04e167f3100d977b6c70c5d601026
This commit is contained in:
Jean Chen
2023-10-18 23:11:54 +08:00
parent 066909bc07
commit 48d73aa3f3
8 changed files with 269 additions and 0 deletions

View File

@@ -52,6 +52,7 @@ import androidx.annotation.RawRes;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import com.android.server.accessibility.Flags;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.utils.AnnotationSpan;
@@ -247,6 +248,9 @@ public class AccessibilityDialogUtils {
R.layout.accessibility_edit_shortcut_magnification, null);
initSoftwareShortcut(context, contentView);
initHardwareShortcut(context, contentView);
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
initTwoFingerTripleTapMagnificationShortcut(context, contentView);
}
initMagnifyShortcut(context, contentView);
initAdvancedWidget(contentView);
break;
@@ -255,6 +259,9 @@ public class AccessibilityDialogUtils {
R.layout.accessibility_edit_shortcut_magnification, null);
initSoftwareShortcutForSUW(context, contentView);
initHardwareShortcut(context, contentView);
if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
initTwoFingerTripleTapMagnificationShortcut(context, contentView);
}
initMagnifyShortcut(context, contentView);
initAdvancedWidget(contentView);
break;
@@ -358,6 +365,23 @@ public class AccessibilityDialogUtils {
R.raw.a11y_shortcut_type_triple_tap);
}
private static void initTwoFingerTripleTapMagnificationShortcut(Context context, View view) {
// TODO(b/306153204): Update shortcut string and image when UX provides them
final View dialogView = view.findViewById(R.id.two_finger_triple_tap_shortcut);
final CharSequence title = context.getText(
R.string.accessibility_shortcut_edit_dialog_title_two_finger_triple_tap);
String summary = context.getString(
R.string.accessibility_shortcut_edit_dialog_summary_two_finger_triple_tap);
// Format the number '3' in the summary.
final Object[] arguments = {3};
summary = MessageFormat.format(summary, arguments);
setupShortcutWidgetWithImageRawResource(context, dialogView, title, summary,
R.raw.a11y_shortcut_type_triple_tap);
dialogView.setVisibility(View.VISIBLE);
}
private static void initAdvancedWidget(View view) {
final LinearLayout advanced = view.findViewById(R.id.advanced_shortcut);
final View tripleTap = view.findViewById(R.id.triple_tap_shortcut);