Merge "Remove viewFlipper used in contextual card dismissal." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8b3cde0fb1
@@ -77,8 +77,7 @@ public class ContextualCardsFragment extends InstrumentedFragment implements
|
||||
mCardsContainer.setAdapter(mContextualCardsAdapter);
|
||||
mContextualCardManager.setListener(mContextualCardsAdapter);
|
||||
mCardsContainer.setListener(this);
|
||||
mItemTouchHelper = new ItemTouchHelper(
|
||||
new SwipeDismissalDelegate(context, mContextualCardsAdapter));
|
||||
mItemTouchHelper = new ItemTouchHelper(new SwipeDismissalDelegate(mContextualCardsAdapter));
|
||||
mItemTouchHelper.attachToRecyclerView(mCardsContainer);
|
||||
|
||||
return rootView;
|
||||
|
@@ -24,7 +24,6 @@ import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ViewFlipper;
|
||||
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -142,7 +141,7 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life
|
||||
}
|
||||
|
||||
if (card.isPendingDismiss()) {
|
||||
flipCardToDismissalView(holder);
|
||||
showDismissalView(holder);
|
||||
mFlippedCardSet.add(holder);
|
||||
}
|
||||
}
|
||||
@@ -170,12 +169,19 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life
|
||||
}
|
||||
|
||||
private void resetCardView(RecyclerView.ViewHolder holder) {
|
||||
final ViewFlipper viewFlipper = holder.itemView.findViewById(R.id.view_flipper);
|
||||
viewFlipper.setDisplayedChild(0 /* whichChild */);
|
||||
holder.itemView.findViewById(R.id.dismissal_view).setVisibility(View.GONE);
|
||||
getInitialView(holder).setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
private void flipCardToDismissalView(RecyclerView.ViewHolder holder) {
|
||||
final ViewFlipper viewFlipper = holder.itemView.findViewById(R.id.view_flipper);
|
||||
viewFlipper.showNext();
|
||||
private void showDismissalView(RecyclerView.ViewHolder holder) {
|
||||
holder.itemView.findViewById(R.id.dismissal_view).setVisibility(View.VISIBLE);
|
||||
getInitialView(holder).setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
private View getInitialView(RecyclerView.ViewHolder viewHolder) {
|
||||
if (viewHolder.getItemViewType() == VIEW_TYPE_HALF_WIDTH) {
|
||||
return ((SliceHalfCardRendererHelper.HalfCardViewHolder) viewHolder).content;
|
||||
}
|
||||
return ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView;
|
||||
}
|
||||
}
|
||||
|
@@ -71,12 +71,10 @@ class SliceFullCardRendererHelper {
|
||||
|
||||
static class SliceViewHolder extends RecyclerView.ViewHolder {
|
||||
public final SliceView sliceView;
|
||||
public final LinearLayout sliceViewWrapper;
|
||||
|
||||
public SliceViewHolder(View view) {
|
||||
super(view);
|
||||
sliceView = view.findViewById(R.id.slice_view);
|
||||
sliceViewWrapper = view.findViewById(R.id.slice_view_wrapper);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -16,10 +16,8 @@
|
||||
|
||||
package com.android.settings.homepage.contextualcards.slices;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.view.View;
|
||||
import android.widget.ViewFlipper;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
||||
@@ -36,11 +34,9 @@ public class SwipeDismissalDelegate extends ItemTouchHelper.Callback {
|
||||
void onSwiped(int position);
|
||||
}
|
||||
|
||||
private final Context mContext;
|
||||
private final SwipeDismissalDelegate.Listener mListener;
|
||||
|
||||
public SwipeDismissalDelegate(Context context, SwipeDismissalDelegate.Listener listener) {
|
||||
mContext = context;
|
||||
public SwipeDismissalDelegate(SwipeDismissalDelegate.Listener listener) {
|
||||
mListener = listener;
|
||||
}
|
||||
|
||||
@@ -59,14 +55,10 @@ public class SwipeDismissalDelegate extends ItemTouchHelper.Callback {
|
||||
switch (viewHolder.getItemViewType()) {
|
||||
case SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH:
|
||||
case SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH:
|
||||
//TODO(b/129438972): Convert this to a regular view.
|
||||
final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.view_flipper);
|
||||
|
||||
// As we are using ViewFlipper to switch between the initial view and
|
||||
// dismissal view, here we are making sure the current displayed view is the
|
||||
// initial view of either slice full card or half card, and only allow swipe on
|
||||
// these two types.
|
||||
if (viewFlipper.getCurrentView().getId() != getInitialViewId(viewHolder)) {
|
||||
// Here we are making sure the current displayed view is the initial view of
|
||||
// either slice full card or half card, and only allow swipe on these two types.
|
||||
if (viewHolder.itemView.findViewById(R.id.dismissal_view).getVisibility()
|
||||
== View.VISIBLE) {
|
||||
// Disable swiping when we are in the dismissal view
|
||||
return 0;
|
||||
}
|
||||
@@ -114,13 +106,6 @@ public class SwipeDismissalDelegate extends ItemTouchHelper.Callback {
|
||||
getDefaultUIUtil().onDraw(c, recyclerView, view, dX, dY, actionState, isCurrentlyActive);
|
||||
}
|
||||
|
||||
private int getInitialViewId(RecyclerView.ViewHolder viewHolder) {
|
||||
if (viewHolder.getItemViewType() == SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH) {
|
||||
return R.id.content;
|
||||
}
|
||||
return R.id.slice_view_wrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the foreground view from the {@link android.widget.FrameLayout} as we only swipe
|
||||
* the foreground out in {@link SwipeDismissalDelegate#onChildDraw} and gets the view
|
||||
@@ -132,6 +117,6 @@ public class SwipeDismissalDelegate extends ItemTouchHelper.Callback {
|
||||
if (viewHolder.getItemViewType() == SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH) {
|
||||
return ((SliceHalfCardRendererHelper.HalfCardViewHolder) viewHolder).content;
|
||||
}
|
||||
return ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceViewWrapper;
|
||||
return ((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user