Merge "Update accessibility hint for widget cell that shows add button." into main
diff --git a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java
index 44ab966..0cf1f2e 100644
--- a/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java
+++ b/src/com/android/launcher3/widget/LauncherAppWidgetHostView.java
@@ -68,6 +68,8 @@
private static final String TRACE_METHOD_NAME = "appwidget load-widget ";
+ private static final Integer NO_LAYOUT_ID = Integer.valueOf(0);
+
private final CheckLongPressHelper mLongPressHelper;
protected final ActivityContext mActivityContext;
@@ -164,6 +166,21 @@
return false;
}
+ private boolean isTaggedAsScrollable() {
+ // TODO: Introduce new api in AppWidgetHostView to indicate whether the widget is
+ // scrollable.
+ for (int i = 0; i < this.getChildCount(); i++) {
+ View child = this.getChildAt(i);
+ final Integer layoutId = (Integer) child.getTag(android.R.id.widget_frame);
+ if (layoutId != null) {
+ // The layout id is only set to 0 when RemoteViews is created from
+ // DrawInstructions.
+ return NO_LAYOUT_ID.equals(layoutId);
+ }
+ }
+ return false;
+ }
+
/**
* Returns true if the application of {@link RemoteViews} through {@link #updateAppWidget} are
* currently being deferred.
@@ -266,7 +283,7 @@
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
- mIsScrollable = checkScrollableRecursively(this);
+ mIsScrollable = isTaggedAsScrollable() || checkScrollableRecursively(this);
}
/**