Remove the specific UX of Deferred Setup card

Bug: 142927894
Test: visual, robotests
Change-Id: If93506fb11c6417967fab3d082b19947adef0d61
This commit is contained in:
Jason Chiu
2020-01-20 09:02:14 +00:00
parent 09f634edfc
commit 1b0fbfeae6
12 changed files with 6 additions and 477 deletions

View File

@@ -17,7 +17,6 @@
package com.android.settings.homepage.contextualcards;
import static com.android.settings.homepage.contextualcards.ContextualCardManager.KEY_CONTEXTUAL_CARDS;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH;
@@ -541,55 +540,6 @@ public class ContextualCardManagerTest {
}
}
@Test
public void getCardsWithViewType_onlyDeferredSetupCard_shouldHaveDeferredSetupCard() {
final List<ContextualCard> oneDeferredSetupCards = getDeferredSetupCardList();
final List<ContextualCard> result = mManager.getCardsWithViewType(oneDeferredSetupCards);
assertThat(result).hasSize(1);
assertThat(result.get(0).getViewType()).isEqualTo(VIEW_TYPE_DEFERRED_SETUP);
}
@Test
public void getCardsWithViewType_hasDeferredSetupCard_shouldHaveDeferredSetupCard() {
final List<Integer> categories = Arrays.asList(
ContextualCardProto.ContextualCard.Category.DEFERRED_SETUP_VALUE,
ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE,
ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE,
ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE
);
final List<ContextualCard> cards = buildCategoriedCards(getContextualCardList(),
categories);
final List<ContextualCard> result = mManager.getCardsWithViewType(cards);
assertThat(result).hasSize(5);
assertThat(result.get(0).getViewType()).isEqualTo(VIEW_TYPE_DEFERRED_SETUP);
}
@Test
public void getCardsWithViewType_noDeferredSetupCard_shouldNotHaveDeferredSetupCard() {
final List<Integer> categories = Arrays.asList(
ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE,
ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE,
ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE,
ContextualCardProto.ContextualCard.Category.SUGGESTION_VALUE
);
final List<ContextualCard> cards = buildCategoriedCards(
getContextualCardList(), categories);
final List<ContextualCard> result = mManager.getCardsWithViewType(cards);
assertThat(result).hasSize(5);
for (int i = 0; i < result.size(); i++) {
assertThat(result.get(i).getViewType()).isNotEqualTo(
ContextualCardProto.ContextualCard.Category.DEFERRED_SETUP_VALUE);
}
}
@Test
public void getCardsToKeep_hasSavedCard_shouldResetSavedCards() {
final List<String> savedCardNames = new ArrayList<>();
@@ -655,16 +605,4 @@ public class ContextualCardManagerTest {
.build());
return cards;
}
private List<ContextualCard> getDeferredSetupCardList() {
final List<ContextualCard> cards = new ArrayList<>();
cards.add(new ContextualCard.Builder()
.setName("deferred_setup")
.setCardType(ContextualCard.CardType.SLICE)
.setCategory(ContextualCardProto.ContextualCard.Category.DEFERRED_SETUP_VALUE)
.setSliceUri(new Uri.Builder().appendPath("test_deferred_setup_path").build())
.setViewType(VIEW_TYPE_FULL_WIDTH)
.build());
return cards;
}
}

View File

@@ -16,9 +16,6 @@
package com.android.settings.homepage.contextualcards;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
import static com.google.common.truth.Truth.assertThat;
import android.app.Activity;
@@ -39,7 +36,6 @@ import com.android.settings.homepage.contextualcards.slices.SliceContextualCardR
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
@@ -156,7 +152,7 @@ public class ContextualCardsAdapterTest {
.setName("test_name")
.setCardType(ContextualCard.CardType.SLICE)
.setSliceUri(TEST_SLICE_URI)
.setViewType(VIEW_TYPE_DEFERRED_SETUP)
.setViewType(SliceContextualCardRenderer.VIEW_TYPE_HALF_WIDTH)
.build());
cards.add(new ContextualCard.Builder()
.setName("test_name_1")
@@ -172,7 +168,7 @@ public class ContextualCardsAdapterTest {
.setName(TEST_SLICE_NAME)
.setCardType(ContextualCard.CardType.SLICE)
.setSliceUri(sliceUri)
.setViewType(VIEW_TYPE_FULL_WIDTH)
.setViewType(SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH)
.build();
}

View File

@@ -16,13 +16,11 @@
package com.android.settings.homepage.contextualcards.slices;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
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;
@@ -162,15 +160,6 @@ public class SliceContextualCardRendererTest {
assertThat(swipeBg.getVisibility()).isEqualTo(View.GONE);
}
@Test
public void bindView_deferredSetupCard_shouldNotCrash() {
final RecyclerView.ViewHolder viewHolder = getDeferredSetupViewHolder();
final ContextualCard card = buildContextualCard(TEST_SLICE_URI);
mRenderer.mSliceLiveDataMap.put(TEST_SLICE_URI, mSliceLiveData);
mRenderer.bindView(viewHolder, card);
}
@Test
public void viewClick_keepCard_shouldShowSlice() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
@@ -257,18 +246,6 @@ public class SliceContextualCardRendererTest {
return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH);
}
private RecyclerView.ViewHolder getDeferredSetupViewHolder() {
final RecyclerView recyclerView = new RecyclerView(mActivity);
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
final View view = LayoutInflater.from(mActivity)
.inflate(VIEW_TYPE_DEFERRED_SETUP, recyclerView, false);
final RecyclerView.ViewHolder viewHolder = spy(
new SliceDeferredSetupCardRendererHelper.DeferredSetupCardViewHolder(view));
doReturn(VIEW_TYPE_DEFERRED_SETUP).when(viewHolder).getItemViewType();
return viewHolder;
}
private ContextualCard buildContextualCard(Uri sliceUri) {
return new ContextualCard.Builder()
.setName("test_name")

View File

@@ -1,130 +0,0 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.homepage.contextualcards.slices;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.android.settings.homepage.contextualcards.slices.SliceDeferredSetupCardRendererHelper.DeferredSetupCardViewHolder;
import static com.google.common.truth.Truth.assertThat;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import androidx.core.graphics.drawable.IconCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.slice.Slice;
import androidx.slice.SliceProvider;
import androidx.slice.builders.ListBuilder;
import androidx.slice.builders.SliceAction;
import androidx.slice.widget.SliceLiveData;
import com.android.settings.R;
import com.android.settings.homepage.contextualcards.ContextualCard;
import com.android.settings.intelligence.ContextualCardProto;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class SliceDeferredSetupCardRendererHelperTest {
private static final Uri TEST_SLICE_URI = Uri.parse("content://test/test");
private static final CharSequence TITLE = "test_title";
private static final CharSequence SUMMARY = "test_summary";
private Activity mActivity;
private SliceDeferredSetupCardRendererHelper mHelper;
@Before
public void setUp() {
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
mActivity = Robolectric.buildActivity(Activity.class).create().get();
mActivity.setTheme(R.style.Theme_Settings_Home);
mHelper = new SliceDeferredSetupCardRendererHelper(mActivity);
}
@Test
public void createViewHolder_shouldAlwaysReturnCustomViewHolder() {
final RecyclerView.ViewHolder viewHolder = getDeferredSetupCardViewHolder();
assertThat(viewHolder).isInstanceOf(
DeferredSetupCardViewHolder.class);
}
@Test
public void bindView_shouldSetTitle() {
final RecyclerView.ViewHolder viewHolder = getDeferredSetupCardViewHolder();
mHelper.bindView(viewHolder, buildContextualCard(), buildSlice());
assertThat(((DeferredSetupCardViewHolder) viewHolder).title.getText()).isEqualTo(TITLE);
}
@Test
public void bindView_shouldSetSummary() {
final RecyclerView.ViewHolder viewHolder = getDeferredSetupCardViewHolder();
mHelper.bindView(viewHolder, buildContextualCard(), buildSlice());
assertThat(((DeferredSetupCardViewHolder) viewHolder).summary.getText()).isEqualTo(SUMMARY);
}
private RecyclerView.ViewHolder getDeferredSetupCardViewHolder() {
final RecyclerView recyclerView = new RecyclerView(mActivity);
recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
final View view = LayoutInflater.from(mActivity).inflate(VIEW_TYPE_DEFERRED_SETUP,
recyclerView, false);
return mHelper.createViewHolder(view);
}
private ContextualCard buildContextualCard() {
return new ContextualCard.Builder()
.setName("test_name")
.setCategory(ContextualCardProto.ContextualCard.Category.DEFERRED_SETUP_VALUE)
.setCardType(ContextualCard.CardType.SLICE)
.setSliceUri(TEST_SLICE_URI)
.setViewType(VIEW_TYPE_DEFERRED_SETUP)
.build();
}
private Slice buildSlice() {
final IconCompat icon = IconCompat.createWithResource(mActivity, R.drawable.empty_icon);
final PendingIntent pendingIntent = PendingIntent.getActivity(
mActivity,
TITLE.hashCode() /* requestCode */,
new Intent("test action"),
0 /* flags */);
final SliceAction action
= SliceAction.createDeeplink(pendingIntent, icon, ListBuilder.SMALL_IMAGE, TITLE);
return new ListBuilder(mActivity, TEST_SLICE_URI, ListBuilder.INFINITY)
.addRow(new ListBuilder.RowBuilder()
.addEndItem(icon, ListBuilder.ICON_IMAGE)
.setTitle(TITLE)
.setSubtitle(SUMMARY)
.setPrimaryAction(action))
.build();
}
}

View File

@@ -16,8 +16,6 @@
package com.android.settings.homepage.contextualcards.slices;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -35,7 +33,6 @@ import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardRenderer;
import com.android.settings.homepage.contextualcards.conditional.ConditionContextualCardRenderer.ConditionalCardHolder;
import com.android.settings.homepage.contextualcards.slices.SliceDeferredSetupCardRendererHelper.DeferredSetupCardViewHolder;
import com.android.settings.homepage.contextualcards.slices.SliceFullCardRendererHelper.SliceViewHolder;
import org.junit.Before;
@@ -76,12 +73,6 @@ public class SwipeDismissalDelegateTest {
.isEqualTo(0);
}
@Test
public void getMovementFlags_deferredSetupViewHolder_shouldDisableSwipe() {
assertThat(mDismissalDelegate.getMovementFlags(mRecyclerView, getDeferredSetupViewHolder()))
.isEqualTo(0);
}
@Test
public void getMovementFlags_dismissalView_shouldDisableSwipe() {
final RecyclerView.ViewHolder holder = getSliceViewHolder();
@@ -126,13 +117,4 @@ public class SwipeDismissalDelegateTest {
return viewHolder;
}
private RecyclerView.ViewHolder getDeferredSetupViewHolder() {
final View view = LayoutInflater.from(mActivity)
.inflate(VIEW_TYPE_DEFERRED_SETUP, mRecyclerView, false);
final RecyclerView.ViewHolder viewHolder = spy(new DeferredSetupCardViewHolder(view));
doReturn(VIEW_TYPE_DEFERRED_SETUP).when(viewHolder).getItemViewType();
return viewHolder;
}
}