From e78e3d734b577c1ab6dc0738a83600374908ea52 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 24 Sep 2015 11:23:31 -0700 Subject: Accessibility fixes 1) Use a different content description for temporary new page 2) Use different accessibility description for add widget toast 3) Announce when an item is deleted 4) Announce when hovering over a drop target 5) Announce state during drag-n-drop and widget resize (similar to seekbar) Bug: 23573321, 24057944 Change-Id: Icabb317625e70c78e11c0b4f99b9339172d93594 --- src/com/android/launcher3/AppWidgetResizeFrame.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/com/android/launcher3/AppWidgetResizeFrame.java') diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java index e6bf52531..d86853608 100644 --- a/src/com/android/launcher3/AppWidgetResizeFrame.java +++ b/src/com/android/launcher3/AppWidgetResizeFrame.java @@ -14,6 +14,8 @@ import android.view.Gravity; import android.widget.FrameLayout; import android.widget.ImageView; +import com.android.launcher3.accessibility.DragViewStateAnnouncer; + public class AppWidgetResizeFrame extends FrameLayout { private static final int SNAP_DURATION = 150; private static final float DIMMED_HANDLE_ALPHA = 0f; @@ -40,6 +42,8 @@ public class AppWidgetResizeFrame extends FrameLayout { private final int[] mLastDirectionVector = new int[2]; private final int[] mTmpPt = new int[2]; + private final DragViewStateAnnouncer mStateAnnouncer; + private boolean mLeftBorderActive; private boolean mRightBorderActive; private boolean mTopBorderActive; @@ -78,6 +82,8 @@ public class AppWidgetResizeFrame extends FrameLayout { mMinHSpan = info.minSpanX; mMinVSpan = info.minSpanY; + mStateAnnouncer = DragViewStateAnnouncer.createFor(this); + setBackgroundResource(R.drawable.widget_resize_shadow); setForeground(getResources().getDrawable(R.drawable.widget_resize_frame)); setPadding(0, 0, 0, 0); @@ -320,12 +326,18 @@ public class AppWidgetResizeFrame extends FrameLayout { if (mCellLayout.createAreaForResize(cellX, cellY, spanX, spanY, mWidgetView, mDirectionVector, onDismiss)) { + if (mStateAnnouncer != null && (lp.cellHSpan != spanX || lp.cellVSpan != spanY) ) { + mStateAnnouncer.announce( + mLauncher.getString(R.string.widget_resized, spanX, spanY)); + } + lp.tmpCellX = cellX; lp.tmpCellY = cellY; lp.cellHSpan = spanX; lp.cellVSpan = spanY; mRunningVInc += vSpanDelta; mRunningHInc += hSpanDelta; + if (!onDismiss) { updateWidgetSizeRanges(mWidgetView, mLauncher, spanX, spanY); } -- cgit v1.2.3