--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/dismissal_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="@dimen/homepage_card_padding_start"
+ android:layout_marginTop="@dimen/homepage_card_padding_start"
+ android:text="@string/contextual_card_dismiss_confirm_message"
+ android:textAppearance="@style/TextAppearance.ContextualCardDismissalText"/>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="bottom|end">
+
+ <Button
+ android:id="@+id/keep"
+ style="@style/ContextualCardDismissalButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/contextual_card_dismiss_keep"/>
+
+ <Button
+ android:id="@+id/remove"
+ style="@style/ContextualCardDismissalButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/contextual_card_dismiss_remove"/>
+
+ </LinearLayout>
+</LinearLayout>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+ -->
+
+<com.google.android.material.card.MaterialCardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/ContextualCardStyle">
+
+ <ViewFlipper
+ android:id="@+id/view_flipper"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <LinearLayout
+ android:id="@+id/content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/homepage_card_padding_start"
+ android:paddingEnd="@dimen/homepage_card_padding_end"
+ android:paddingTop="@dimen/homepage_half_card_padding_top"
+ android:paddingBottom="@dimen/homepage_half_card_padding_bottom"
+ android:orientation="vertical">
+
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/homepage_card_icon_size"
+ android:layout_height="@dimen/homepage_card_icon_size"
+ android:tint="?android:attr/colorAccent"/>
+
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:maxLines="2"
+ android:minLines="1"
+ android:ellipsize="end"
+ android:layout_marginTop="@dimen/homepage_half_card_title_margin_top"
+ android:textAppearance="@style/TextAppearance.ConditionCardTitle"/>
+
+ </LinearLayout>
+
+ <!--dismissal view-->
+ <include layout="@layout/homepage_dismissal_view"/>
+
+ </ViewFlipper>
+</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
style="@style/ContextualCardStyle">
<ViewFlipper
- android:id="@+id/viewFlipper"
+ android:id="@+id/view_flipper"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:paddingEnd="@dimen/homepage_card_padding_end"/>
<!--dismissal view-->
- <LinearLayout
- android:id="@+id/dismissal_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
-
- <TextView
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginLeft="@dimen/homepage_card_padding_start"
- android:layout_marginTop="@dimen/homepage_card_padding_start"
- android:text="@string/contextual_card_dismiss_confirm_message"
- style="@style/TextAppearance.ContextualCardDismissalText"/>
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="bottom|end">
-
- <Button
- android:id="@+id/keep"
- style="@style/ContextualCardDismissalButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/contextual_card_dismiss_keep"/>
-
- <Button
- android:id="@+id/remove"
- style="@style/ContextualCardDismissalButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/contextual_card_dismiss_remove"/>
+ <include layout="@layout/homepage_dismissal_view"/>
- </LinearLayout>
- </LinearLayout>
</ViewFlipper>
</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
<dimen name="homepage_card_side_margin">4dp</dimen>
<dimen name="homepage_card_padding_start">16dp</dimen>
<dimen name="homepage_card_padding_end">16dp</dimen>
+ <dimen name="homepage_half_card_padding_top">12dp</dimen>
+ <dimen name="homepage_half_card_padding_bottom">16dp</dimen>
+ <dimen name="homepage_half_card_title_margin_top">12dp</dimen>
<!-- Horizontal divider size and margin -->
<dimen name="horizontal_divider_margin_top">4dp</dimen>
public SliceViewHolder(View view) {
super(view);
sliceView = view.findViewById(R.id.slice_view);
- viewFlipper = view.findViewById(R.id.viewFlipper);
+ viewFlipper = view.findViewById(R.id.view_flipper);
}
public void resetCard() {
public void longClick_shouldFlipCard() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
final View card = viewHolder.itemView.findViewById(R.id.slice_view);
- final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.viewFlipper);
+ final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.view_flipper);
final View dismissalView = viewHolder.itemView.findViewById(R.id.dismissal_view);
mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
final View card = viewHolder.itemView.findViewById(R.id.slice_view);
final Button btnKeep = viewHolder.itemView.findViewById(R.id.keep);
- final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.viewFlipper);
+ final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.view_flipper);
mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
card.performLongClick();
public void onStop_cardIsFlipped_shouldFlipBack() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
final View card = viewHolder.itemView.findViewById(R.id.slice_view);
- final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.viewFlipper);
+ final ViewFlipper viewFlipper = viewHolder.itemView.findViewById(R.id.view_flipper);
mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
card.performLongClick();