Moving prediction icons back into recycler view.

- Fixes two accessibility issues with the prediction bar being
  separate from the rest of the list of icons related to scrolling
  and switch access.

Bug: 21725276
Change-Id: Ibc48e5028cace9a77000e6646b951f021910465d
This commit is contained in:
Winson Chung
2015-07-06 17:14:51 -07:00
parent 1406fd80d5
commit 1ae7a5018b
10 changed files with 101 additions and 424 deletions
@@ -37,7 +37,6 @@ public class AllAppsRecyclerViewContainerView extends FrameLayout
implements BubbleTextShadowHandler {
private final ClickShadowView mTouchFeedbackView;
private View mPredictionBarView;
public AllAppsRecyclerViewContainerView(Context context) {
this(context, null);
@@ -60,13 +59,6 @@ public class AllAppsRecyclerViewContainerView extends FrameLayout
addView(mTouchFeedbackView, size, size);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mPredictionBarView = findViewById(R.id.prediction_bar);
}
@Override
public void setPressedIcon(BubbleTextView icon, Bitmap background) {
if (icon == null || background == null) {
@@ -77,33 +69,4 @@ public class AllAppsRecyclerViewContainerView extends FrameLayout
mTouchFeedbackView.animateShadow();
}
}
/**
* This allows us to have custom drawing order, while keeping touch handling in correct z-order.
*/
@Override
protected void dispatchDraw(Canvas canvas) {
final long drawingTime = getDrawingTime();
// Draw the click feedback first (since it is always on the bottom)
if (mTouchFeedbackView != null && mTouchFeedbackView.getVisibility() == View.VISIBLE) {
drawChild(canvas, mTouchFeedbackView, drawingTime);
}
// Then draw the prediction bar, since it needs to be "under" the recycler view to get the
// right edge effect to be drawn over it
if (mPredictionBarView != null && mPredictionBarView.getVisibility() == View.VISIBLE) {
drawChild(canvas, mPredictionBarView, drawingTime);
}
// Draw the remaining views
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
View v = getChildAt(i);
if (v != mTouchFeedbackView && v != mPredictionBarView &&
v.getVisibility() == View.VISIBLE) {
drawChild(canvas, v, drawingTime);
}
}
}
}