From ce9903e8db04d13217f2a93069811dce8745d7a7 Mon Sep 17 00:00:00 2001 From: Yi-Ling Chuang Date: Mon, 6 May 2019 19:03:39 +0800 Subject: [PATCH] Hide dismissal swipe background before slice gets ready Only make swipe background visible once slice has a successfual binding. Bug: 131843256 Test: robotests Change-Id: I7866873a217e8ca882634a48108939022713c87b --- res/layout/dismissal_swipe_background.xml | 3 ++- .../slices/SliceContextualCardRenderer.java | 5 ++++ .../SliceContextualCardRendererTest.java | 24 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/res/layout/dismissal_swipe_background.xml b/res/layout/dismissal_swipe_background.xml index 49f6266243c..72689223127 100644 --- a/res/layout/dismissal_swipe_background.xml +++ b/res/layout/dismissal_swipe_background.xml @@ -20,7 +20,8 @@ android:id="@+id/dismissal_swipe_background" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/contextual_card_dismissal_background"> + android:background="@color/contextual_card_dismissal_background" + android:visibility="gone"> { if (slice == null) { Log.w(TAG, "Slice is null"); @@ -137,6 +140,8 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life default: mFullCardHelper.bindView(holder, card, slice); } + + swipeBackground.setVisibility(View.VISIBLE); }); switch (holder.getItemViewType()) { diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java index fff17653f30..70761cf52d5 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java @@ -136,6 +136,30 @@ public class SliceContextualCardRendererTest { assertThat(mRenderer.mFlippedCardSet).contains(viewHolder); } + @Test + public void bindView_beforeSuccessfulSliceBinding_shouldHideSwipeBackground() { + final RecyclerView.ViewHolder viewHolder = getSliceViewHolder(); + final ContextualCard card = buildContextualCard(TEST_SLICE_URI); + final View swipeBg = viewHolder.itemView.findViewById(R.id.dismissal_swipe_background); + + mRenderer.bindView(viewHolder, card); + + assertThat(swipeBg.getVisibility()).isEqualTo(View.GONE); + } + + @Test + public void bindView_reuseViewHolder_shouldHideSwipeBackgroundBeforeSliceBinding() { + final RecyclerView.ViewHolder viewHolder = getSliceViewHolder(); + final ContextualCard card = buildContextualCard(TEST_SLICE_URI); + final View swipeBg = viewHolder.itemView.findViewById(R.id.dismissal_swipe_background); + swipeBg.setVisibility(View.VISIBLE); + mRenderer.mSliceLiveDataMap.put(TEST_SLICE_URI, mSliceLiveData); + + mRenderer.bindView(viewHolder, card); + + assertThat(swipeBg.getVisibility()).isEqualTo(View.GONE); + } + @Test public void viewClick_keepCard_shouldShowSlice() { final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();