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:
@@ -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>
|
@@ -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;
|
||||||
|
@@ -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")
|
||||||
|
Reference in New Issue
Block a user