Remove dismissal behavior from deferred setup card

Deferred setup is not skippable as user will need to review all SUW
screens at least one time.

Fixes: 126225957
Test: visual, robotests
Change-Id: I7b32c2382f459690d3b136cf9faa543d04aa8d3d
This commit is contained in:
Yanting Yang
2019-02-27 17:25:04 +08:00
parent 9495654926
commit 52367e8c65
3 changed files with 64 additions and 49 deletions

View File

@@ -21,59 +21,49 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ViewFlipper <LinearLayout
android:id="@+id/view_flipper" android:id="@+id/content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:gravity="left"
android:orientation="vertical"
android:paddingStart="@dimen/homepage_card_padding_start"
android:paddingEnd="@dimen/homepage_card_padding_end"
android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
<LinearLayout <ImageView
android:id="@+id/content" android:id="@android:id/icon"
android:layout_width="match_parent" android:layout_width="@dimen/homepage_card_icon_size"
android:layout_height="match_parent" android:layout_height="@dimen/homepage_card_icon_size"/>
android:gravity="left"
android:orientation="vertical"
android:paddingStart="@dimen/homepage_card_padding_start"
android:paddingEnd="@dimen/homepage_card_padding_end"
android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
<ImageView <TextView
android:id="@android:id/icon" android:id="@android:id/title"
android:layout_width="@dimen/homepage_card_icon_size" android:layout_width="wrap_content"
android:layout_height="@dimen/homepage_card_icon_size"/> android:layout_height="wrap_content"
android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
android:ellipsize="end"
android:maxLines="2"
android:minLines="1"
android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
<TextView <TextView
android:id="@android:id/title" android:id="@android:id/summary"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top" android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="2" android:maxLines="2"
android:minLines="1" android:minLines="1"
android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/> android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
<TextView <Button
android:id="@android:id/summary" android:id="@+id/finish_setup"
android:layout_width="wrap_content" style="@style/DeferredSetupCardButton"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top" android:layout_height="wrap_content"
android:ellipsize="end" android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
android:maxLines="2" android:text="@string/suggestion_button_text"/>
android:minLines="1"
android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
<Button </LinearLayout>
android:id="@+id/finish_setup"
style="@style/DeferredSetupCardButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
android:text="@string/suggestion_button_text"/>
</LinearLayout>
<!--dismissal view-->
<include layout="@layout/homepage_dismissal_view"/>
</ViewFlipper>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>

View File

@@ -139,6 +139,8 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life
switch (holder.getItemViewType()) { switch (holder.getItemViewType()) {
case VIEW_TYPE_DEFERRED_SETUP: case VIEW_TYPE_DEFERRED_SETUP:
// Deferred setup is never dismissible.
break;
case VIEW_TYPE_HALF_WIDTH: case VIEW_TYPE_HALF_WIDTH:
initDismissalActions(holder, card, R.id.content); initDismissalActions(holder, card, R.id.content);
break; break;

View File

@@ -16,11 +16,13 @@
package com.android.settings.homepage.contextualcards.slices; 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.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import android.app.Activity; import android.app.Activity;
@@ -128,6 +130,15 @@ public class SliceContextualCardRendererTest {
assertThat(viewFlipper.getCurrentView()).isEqualTo(dismissalView); assertThat(viewFlipper.getCurrentView()).isEqualTo(dismissalView);
} }
@Test
public void longClick_deferredSetupCard_shouldNotBeClickable() {
final RecyclerView.ViewHolder viewHolder = getDeferredSetupViewHolder();
final View contentView = viewHolder.itemView.findViewById(R.id.content);
mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
assertThat(contentView.isLongClickable()).isFalse();
}
@Test @Test
public void longClick_shouldAddViewHolderToSet() { public void longClick_shouldAddViewHolderToSet() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder(); final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
@@ -221,6 +232,18 @@ public class SliceContextualCardRendererTest {
return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH); 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(
mRenderer.createViewHolder(view, VIEW_TYPE_DEFERRED_SETUP));
doReturn(VIEW_TYPE_DEFERRED_SETUP).when(viewHolder).getItemViewType();
return viewHolder;
}
private ContextualCard buildContextualCard(Uri sliceUri) { private ContextualCard buildContextualCard(Uri sliceUri) {
return new ContextualCard.Builder() return new ContextualCard.Builder()
.setName("test_name") .setName("test_name")