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

Commit b1bdec31 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add back the shortcut dialog content for accessibility gesture" into sc-v2-dev

parents 750dc4a0 f07aa0fa
Loading
Loading
Loading
Loading
+36 −9
Original line number Diff line number Diff line
@@ -344,12 +344,11 @@ public class AccessibilityDialogUtils {

    private static void initSoftwareShortcut(Context context, View view) {
        final View dialogView = view.findViewById(R.id.software_shortcut);
        final CharSequence title = context.getText(
                R.string.accessibility_shortcut_edit_dialog_title_software);
        final TextView summary = dialogView.findViewById(R.id.summary);
        final int lineHeight = summary.getLineHeight();

        setupShortcutWidget(dialogView, title,
        setupShortcutWidget(dialogView,
                retrieveTitle(context),
                retrieveSoftwareShortcutSummary(context, lineHeight),
                retrieveSoftwareShortcutImageResId(context));
    }
@@ -398,20 +397,49 @@ public class AccessibilityDialogUtils {
        return sb;
    }

    private static CharSequence retrieveTitle(Context context) {
        int resId;
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            resId = R.string.accessibility_shortcut_edit_dialog_title_software;
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            resId = R.string.accessibility_shortcut_edit_dialog_title_software_by_gesture;
        } else {
            resId = R.string.accessibility_shortcut_edit_dialog_title_software;
        }
        return context.getText(resId);
    }

    private static CharSequence retrieveSoftwareShortcutSummary(Context context, int lineHeight) {
        final SpannableStringBuilder sb = new SpannableStringBuilder();
        if (!AccessibilityUtil.isFloatingMenuEnabled(context)) {
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            sb.append(getCustomizeAccessibilityButtonLink(context));
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            final int resId = AccessibilityUtil.isTouchExploreEnabled(context)
                    ? R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback
                    : R.string.accessibility_shortcut_edit_dialog_summary_software_gesture;
            sb.append(context.getText(resId));
            sb.append("\n\n");
            sb.append(getCustomizeAccessibilityButtonLink(context));
        } else {
            sb.append(getSummaryStringWithIcon(context, lineHeight));
            sb.append("\n\n");
        }
            sb.append(getCustomizeAccessibilityButtonLink(context));
        }
        return sb;
    }

    private static int retrieveSoftwareShortcutImageResId(Context context) {
        return AccessibilityUtil.isFloatingMenuEnabled(context)
                ? R.drawable.accessibility_shortcut_type_software_floating
                : R.drawable.accessibility_shortcut_type_software;
        int resId;
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            resId = R.drawable.accessibility_shortcut_type_software_floating;
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            resId = AccessibilityUtil.isTouchExploreEnabled(context)
                    ? R.drawable.accessibility_shortcut_type_software_gesture_talkback
                    : R.drawable.accessibility_shortcut_type_software_gesture;
        } else {
            resId = R.drawable.accessibility_shortcut_type_software;
        }
        return resId;
    }

    private static CharSequence getCustomizeAccessibilityButtonLink(Context context) {
@@ -422,7 +450,6 @@ public class AccessibilityDialogUtils {
                .launch();
        final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(
                AnnotationSpan.LinkInfo.DEFAULT_ANNOTATION, linkListener);

        return AnnotationSpan.linkify(context.getText(
                R.string.accessibility_shortcut_edit_dialog_summary_software_floating), linkInfo);
    }
+38 −10
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.style.ImageSpan;
import android.view.Gravity;
import android.view.LayoutInflater;
@@ -323,8 +324,7 @@ public final class AccessibilityGestureNavigationTutorial {
    }

    private static TutorialPage createSoftwareTutorialPage(@NonNull Context context) {
        final CharSequence title = context.getText(
                R.string.accessibility_tutorial_dialog_title_button);
        final CharSequence title = getSoftwareTitle(context);
        final ImageView image = createSoftwareImage(context);
        final CharSequence instruction = getSoftwareInstruction(context);
        final ImageView indicatorIcon =
@@ -382,18 +382,46 @@ public final class AccessibilityGestureNavigationTutorial {
    }

    private static ImageView createSoftwareImage(Context context) {
        final int resId = AccessibilityUtil.isFloatingMenuEnabled(context)
                ? R.drawable.accessibility_shortcut_type_software_floating
                : R.drawable.accessibility_shortcut_type_software;

        int resId;
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            resId = R.drawable.accessibility_shortcut_type_software_floating;
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            resId = AccessibilityUtil.isTouchExploreEnabled(context)
                    ? R.drawable.accessibility_shortcut_type_software_gesture_talkback
                    : R.drawable.accessibility_shortcut_type_software_gesture;
        } else {
            resId = R.drawable.accessibility_shortcut_type_software;
        }
        return createImageView(context, resId);
    }

    private static CharSequence getSoftwareTitle(Context context) {
        int resId;
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            resId = R.string.accessibility_tutorial_dialog_title_button;
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            resId = R.string.accessibility_tutorial_dialog_title_gesture;
        } else {
            resId = R.string.accessibility_tutorial_dialog_title_button;
        }
        return context.getText(resId);
    }

    private static CharSequence getSoftwareInstruction(Context context) {
        return AccessibilityUtil.isFloatingMenuEnabled(context)
                ? context.getText(R.string.accessibility_tutorial_dialog_message_floating_button)
                : getSoftwareInstructionWithIcon(context,
                        context.getText(R.string.accessibility_tutorial_dialog_message_button));
        final SpannableStringBuilder sb = new SpannableStringBuilder();
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            final int resId = R.string.accessibility_tutorial_dialog_message_floating_button;
            sb.append(context.getText(resId));
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            final int resId = AccessibilityUtil.isTouchExploreEnabled(context)
                    ? R.string.accessibility_tutorial_dialog_message_gesture_talkback
                    : R.string.accessibility_tutorial_dialog_message_gesture;
            sb.append(context.getText(resId));
        } else {
            final int resId = R.string.accessibility_tutorial_dialog_message_button;
            sb.append(getSoftwareInstructionWithIcon(context, context.getText(resId)));
        }
        return sb;
    }

    private static CharSequence getSoftwareInstructionWithIcon(Context context, CharSequence text) {
+14 −5
Original line number Diff line number Diff line
@@ -584,6 +584,18 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
        return value;
    }

    private static CharSequence getSoftwareShortcutTypeSummary(Context context) {
        int resId;
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            resId = R.string.accessibility_shortcut_edit_summary_software;
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            resId = R.string.accessibility_shortcut_edit_summary_software_gesture;
        } else {
            resId = R.string.accessibility_shortcut_edit_summary_software;
        }
        return context.getText(resId);
    }

    protected CharSequence getShortcutTypeSummary(Context context) {
        if (!mShortcutPreference.isSettingsEditable()) {
            return context.getText(R.string.accessibility_shortcut_edit_dialog_title_hardware);
@@ -597,11 +609,8 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference
                mComponentName.flattenToString(), UserShortcutType.SOFTWARE);

        final List<CharSequence> list = new ArrayList<>();
        final CharSequence softwareTitle = context.getText(
                R.string.accessibility_shortcut_edit_summary_software);

        if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
            list.add(softwareTitle);
            list.add(getSoftwareShortcutTypeSummary(context));
        }
        if (hasShortcutType(shortcutTypes, UserShortcutType.HARDWARE)) {
            final CharSequence hardwareTitle = context.getText(
@@ -611,7 +620,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference

        // Show software shortcut if first time to use.
        if (list.isEmpty()) {
            list.add(softwareTitle);
            list.add(getSoftwareShortcutTypeSummary(context));
        }

        return CaseMap.toTitle().wholeString().noLowercase().apply(Locale.getDefault(), /* iter= */
+14 −6
Original line number Diff line number Diff line
@@ -265,6 +265,18 @@ public class ToggleScreenMagnificationPreferenceFragment extends
        return (value & type) == type;
    }

    private static CharSequence getSoftwareShortcutTypeSummary(Context context) {
        int resId;
        if (AccessibilityUtil.isFloatingMenuEnabled(context)) {
            resId = R.string.accessibility_shortcut_edit_summary_software;
        } else if (AccessibilityUtil.isGestureNavigateEnabled(context)) {
            resId = R.string.accessibility_shortcut_edit_summary_software_gesture;
        } else {
            resId = R.string.accessibility_shortcut_edit_summary_software;
        }
        return context.getText(resId);
    }

    @Override
    protected CharSequence getShortcutTypeSummary(Context context) {
        if (!mShortcutPreference.isChecked()) {
@@ -275,18 +287,14 @@ public class ToggleScreenMagnificationPreferenceFragment extends
                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);

        final List<CharSequence> list = new ArrayList<>();
        final CharSequence softwareTitle = context.getText(
                R.string.accessibility_shortcut_edit_summary_software);

        if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
            list.add(softwareTitle);
            list.add(getSoftwareShortcutTypeSummary(context));
        }
        if (hasShortcutType(shortcutTypes, UserShortcutType.HARDWARE)) {
            final CharSequence hardwareTitle = context.getText(
                    R.string.accessibility_shortcut_hardware_keyword);
            list.add(hardwareTitle);
        }

        if (hasShortcutType(shortcutTypes, UserShortcutType.TRIPLETAP)) {
            final CharSequence tripleTapTitle = context.getText(
                    R.string.accessibility_shortcut_triple_tap_keyword);
@@ -295,7 +303,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends

        // Show software shortcut if first time to use.
        if (list.isEmpty()) {
            list.add(softwareTitle);
            list.add(getSoftwareShortcutTypeSummary(context));
        }

        return CaseMap.toTitle().wholeString().noLowercase().apply(Locale.getDefault(), /* iter= */