Merge "Fix the janky transition of contextual cards." into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ff35a3e641
@@ -114,6 +114,17 @@ public class EligibleCardCheckerTest {
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isCardEligibleToDisplay_sliceNotNull_cacheSliceToCard() {
|
||||
final ContextualWifiSlice wifiSlice = new ContextualWifiSlice(mContext);
|
||||
final Slice slice = wifiSlice.getSlice();
|
||||
doReturn(slice).when(mEligibleCardChecker).bindSlice(any(Uri.class));
|
||||
|
||||
mEligibleCardChecker.isCardEligibleToDisplay(getContextualCard(TEST_SLICE_URI));
|
||||
|
||||
assertThat(mEligibleCardChecker.mCard.getSlice()).isNotNull();
|
||||
}
|
||||
|
||||
private ContextualCard getContextualCard(Uri sliceUri) {
|
||||
return new ContextualCard.Builder()
|
||||
.setName("test_card")
|
||||
|
@@ -17,10 +17,12 @@
|
||||
package com.android.settings.homepage.contextualcards.slices;
|
||||
|
||||
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
|
||||
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_STICKY;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.Activity;
|
||||
@@ -39,6 +41,7 @@ import com.android.settings.R;
|
||||
import com.android.settings.homepage.contextualcards.ContextualCard;
|
||||
import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
|
||||
import com.android.settings.homepage.contextualcards.ControllerRendererPool;
|
||||
import com.android.settings.wifi.slice.ContextualWifiSlice;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -81,7 +84,7 @@ public class SliceContextualCardRendererTest {
|
||||
@Test
|
||||
public void bindView_invalidScheme_sliceShouldBeNull() {
|
||||
final Uri sliceUri = Uri.parse("contet://com.android.settings.slices/action/flashlight");
|
||||
RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
|
||||
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
|
||||
|
||||
mRenderer.bindView(viewHolder, buildContextualCard(sliceUri));
|
||||
|
||||
@@ -90,6 +93,29 @@ public class SliceContextualCardRendererTest {
|
||||
.isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindView_viewTypeFullWidth_shouldSetCachedSlice() {
|
||||
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
|
||||
|
||||
mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
|
||||
|
||||
assertThat(
|
||||
((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView.getSlice())
|
||||
.isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindView_viewTypeSticky_shouldSetCachedSlice() {
|
||||
final RecyclerView.ViewHolder viewHolder = spy(getStickyViewHolder());
|
||||
doReturn(VIEW_TYPE_STICKY).when(viewHolder).getItemViewType();
|
||||
|
||||
mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
|
||||
|
||||
assertThat(
|
||||
((SliceFullCardRendererHelper.SliceViewHolder) viewHolder).sliceView.getSlice())
|
||||
.isNotNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bindView_newSliceLiveData_shouldAddDataToMap() {
|
||||
mRenderer.bindView(getSliceViewHolder(), buildContextualCard(TEST_SLICE_URI));
|
||||
@@ -246,12 +272,23 @@ public class SliceContextualCardRendererTest {
|
||||
return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH);
|
||||
}
|
||||
|
||||
private RecyclerView.ViewHolder getStickyViewHolder() {
|
||||
final RecyclerView recyclerView = new RecyclerView(mActivity);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
final View view = LayoutInflater.from(mActivity).inflate(VIEW_TYPE_STICKY, recyclerView,
|
||||
false);
|
||||
|
||||
return mRenderer.createViewHolder(view, VIEW_TYPE_STICKY);
|
||||
}
|
||||
|
||||
private ContextualCard buildContextualCard(Uri sliceUri) {
|
||||
final Slice slice = new ContextualWifiSlice(mActivity).getSlice();
|
||||
return new ContextualCard.Builder()
|
||||
.setName("test_name")
|
||||
.setCardType(ContextualCard.CardType.SLICE)
|
||||
.setSliceUri(sliceUri)
|
||||
.setViewType(VIEW_TYPE_FULL_WIDTH)
|
||||
.setSlice(slice)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user