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
diff --git a/res/layout/homepage_slice_deferred_setup_tile.xml b/res/layout/homepage_slice_deferred_setup_tile.xml
index 73199d4..68916ee 100644
--- a/res/layout/homepage_slice_deferred_setup_tile.xml
+++ b/res/layout/homepage_slice_deferred_setup_tile.xml
@@ -21,59 +21,49 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content">
 
-    <ViewFlipper
-        android:id="@+id/view_flipper"
+    <LinearLayout
+        android:id="@+id/content"
         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
-            android:id="@+id/content"
-            android:layout_width="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">
+        <ImageView
+            android:id="@android:id/icon"
+            android:layout_width="@dimen/homepage_card_icon_size"
+            android:layout_height="@dimen/homepage_card_icon_size"/>
 
-            <ImageView
-                android:id="@android:id/icon"
-                android:layout_width="@dimen/homepage_card_icon_size"
-                android:layout_height="@dimen/homepage_card_icon_size"/>
+        <TextView
+            android:id="@android:id/title"
+            android:layout_width="wrap_content"
+            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
-                android:id="@android:id/title"
-                android:layout_width="wrap_content"
-                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
+            android:id="@android:id/summary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
+            android:ellipsize="end"
+            android:maxLines="2"
+            android:minLines="1"
+            android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
 
-            <TextView
-                android:id="@android:id/summary"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
-                android:ellipsize="end"
-                android:maxLines="2"
-                android:minLines="1"
-                android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
+        <Button
+            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"/>
 
-            <Button
-                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>
+    </LinearLayout>
 </com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 48e9f1e..b9170a9 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -139,6 +139,8 @@
 
         switch (holder.getItemViewType()) {
             case VIEW_TYPE_DEFERRED_SETUP:
+                // Deferred setup is never dismissible.
+                break;
             case VIEW_TYPE_HALF_WIDTH:
                 initDismissalActions(holder, card, R.id.content);
                 break;
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 b156782..e08d845 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
@@ -16,11 +16,13 @@
 
 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;
@@ -129,6 +131,15 @@
     }
 
     @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
     public void longClick_shouldAddViewHolderToSet() {
         final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
         final View card = viewHolder.itemView.findViewById(R.id.slice_view);
@@ -221,6 +232,18 @@
         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) {
         return new ContextualCard.Builder()
                 .setName("test_name")