summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/accessibility
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-06-16 12:29:03 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-06-22 14:17:34 -0700
commitd0a6ae7f645e6ba564aebb50316c53fa2e119459 (patch)
tree15bba4b1eea09e0178a22911567952dc45d5ff12 /src/com/android/launcher3/accessibility
parent8e6a8004808fbbf782812a6cd75324a7008cc610 (diff)
downloadandroid_packages_apps_Trebuchet-d0a6ae7f645e6ba564aebb50316c53fa2e119459.tar.gz
android_packages_apps_Trebuchet-d0a6ae7f645e6ba564aebb50316c53fa2e119459.tar.bz2
android_packages_apps_Trebuchet-d0a6ae7f645e6ba564aebb50316c53fa2e119459.zip
Accessibility fixes and updates
> Adding custom actions on the page indicator to go to overview mode > Disabling custom actions on the first page > Disabling 'move page left' on the second page Change-Id: Ib8154f70cb3f93e663a881357c6c46c33253887f
Diffstat (limited to 'src/com/android/launcher3/accessibility')
-rw-r--r--src/com/android/launcher3/accessibility/OverviewAccessibilityDelegate.java72
-rw-r--r--src/com/android/launcher3/accessibility/OverviewScreenAccessibilityDelegate.java5
2 files changed, 76 insertions, 1 deletions
diff --git a/src/com/android/launcher3/accessibility/OverviewAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/OverviewAccessibilityDelegate.java
new file mode 100644
index 000000000..64559f2ec
--- /dev/null
+++ b/src/com/android/launcher3/accessibility/OverviewAccessibilityDelegate.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.launcher3.accessibility;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+import android.view.View.AccessibilityDelegate;
+import android.view.accessibility.AccessibilityNodeInfo;
+import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
+
+import com.android.launcher3.Launcher;
+import com.android.launcher3.R;
+import com.android.launcher3.Utilities;
+
+/**
+ * Accessibility delegate with actions pointing to various Overview entry points.
+ */
+public class OverviewAccessibilityDelegate extends AccessibilityDelegate {
+
+ private static final int OVERVIEW = R.string.accessibility_action_overview;
+ private static final int WALLPAPERS = R.string.wallpaper_button_text;
+ private static final int WIDGETS = R.string.widget_button_text;
+ private static final int SETTINGS = R.string.settings_button_text;
+
+ @Override
+ public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info) {
+ super.onInitializeAccessibilityNodeInfo(host, info);
+
+ Context context = host.getContext();
+ info.addAction(new AccessibilityAction(OVERVIEW, context.getText(OVERVIEW)));
+
+ if (Utilities.isWallapaperAllowed(context)) {
+ info.addAction(new AccessibilityAction(WALLPAPERS, context.getText(WALLPAPERS)));
+ }
+ info.addAction(new AccessibilityAction(WIDGETS, context.getText(WIDGETS)));
+ info.addAction(new AccessibilityAction(SETTINGS, context.getText(SETTINGS)));
+ }
+
+ @Override
+ public boolean performAccessibilityAction(View host, int action, Bundle args) {
+ Launcher launcher = (Launcher) host.getContext();
+ if (action == OVERVIEW) {
+ launcher.showOverviewMode(true);
+ return true;
+ } else if (action == WALLPAPERS) {
+ launcher.onClickWallpaperPicker(host);
+ return true;
+ } else if (action == WIDGETS) {
+ launcher.onClickAddWidgetButton(host);
+ return true;
+ } else if (action == SETTINGS) {
+ launcher.onClickSettingsButton(host);
+ return true;
+ }
+ return super.performAccessibilityAction(host, action, args);
+ }
+}
diff --git a/src/com/android/launcher3/accessibility/OverviewScreenAccessibilityDelegate.java b/src/com/android/launcher3/accessibility/OverviewScreenAccessibilityDelegate.java
index c5b52de72..5f68f90b1 100644
--- a/src/com/android/launcher3/accessibility/OverviewScreenAccessibilityDelegate.java
+++ b/src/com/android/launcher3/accessibility/OverviewScreenAccessibilityDelegate.java
@@ -28,6 +28,7 @@ import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.Workspace;
+import com.android.launcher3.config.FeatureFlags;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public class OverviewScreenAccessibilityDelegate extends AccessibilityDelegate {
@@ -88,7 +89,9 @@ public class OverviewScreenAccessibilityDelegate extends AccessibilityDelegate {
if (index < mWorkspace.getChildCount() - 1) {
info.addAction(mActions.get(MOVE_FORWARD));
}
- if (index > mWorkspace.numCustomPages()) {
+
+ int startIndex = mWorkspace.numCustomPages() + (FeatureFlags.QSB_ON_FIRST_SCREEN ? 1 : 0);
+ if (index > startIndex) {
info.addAction(mActions.get(MOVE_BACKWARD));
}
}