From c5f4a9c89e18b4de5ad2b122768017e878a620cf Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 19 Jul 2022 13:07:24 -0300 Subject: [PATCH] Implement feedback for Material3 Gallery refresh. --- .../v2/gallery/MediaGalleryFragment.kt | 3 ++ .../v2/gallery/MediaGallerySelectableItem.kt | 2 ++ .../v2/review/MediaReviewSelectedItem.kt | 3 +- .../main/res/color/media_selection_stroke.xml | 5 ---- .../media_gallery_button_background.xml | 12 ++++++++ app/src/main/res/drawable/add_media.xml | 12 -------- .../media_gallery_button_background.xml | 10 +++++++ .../layout/v2_media_gallery_folder_item.xml | 9 ++++++ .../res/layout/v2_media_gallery_fragment.xml | 1 - .../main/res/layout/v2_media_gallery_item.xml | 9 ++++++ .../layout/v2_media_gallery_item_no_check.xml | 9 ++++++ .../layout/v2_media_review_add_media_item.xml | 13 +++++---- .../res/layout/v2_media_review_fragment.xml | 28 ++++++++++--------- .../layout/v2_media_review_selected_item.xml | 20 +++++++++++-- 14 files changed, 96 insertions(+), 40 deletions(-) delete mode 100644 app/src/main/res/color/media_selection_stroke.xml create mode 100644 app/src/main/res/drawable-v21/media_gallery_button_background.xml delete mode 100644 app/src/main/res/drawable/add_media.xml create mode 100644 app/src/main/res/drawable/media_gallery_button_background.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt index e8c977910..bb7d6d662 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGalleryFragment.kt @@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.components.recyclerview.GridDividerDecoration import org.thoughtcrime.securesms.mediasend.Media import org.thoughtcrime.securesms.mediasend.MediaRepository import org.thoughtcrime.securesms.mediasend.v2.MediaCountIndicatorButton +import org.thoughtcrime.securesms.util.Material3OnScrollHelper import org.thoughtcrime.securesms.util.Stopwatch import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter @@ -75,6 +76,8 @@ class MediaGalleryFragment : Fragment(R.layout.v2_media_gallery_fragment) { onBack() } + Material3OnScrollHelper(requireActivity(), toolbar).attach(galleryRecycler) + if (callbacks.isCameraEnabled()) { toolbar.setOnMenuItemClickListener { item -> if (item.itemId == R.id.action_camera) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt index 461702f50..ccf2d576e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/gallery/MediaGallerySelectableItem.kt @@ -24,6 +24,7 @@ import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder import org.thoughtcrime.securesms.util.visible +import java.util.concurrent.TimeUnit typealias OnMediaFolderClicked = (MediaFolder) -> Unit typealias OnMediaClicked = (Media, Boolean) -> Unit @@ -132,6 +133,7 @@ object MediaGallerySelectableItem { val end = if (isSelected) 1f else 0f animator = ValueAnimator.ofFloat(start, end).apply { + duration = TimeUnit.MILLISECONDS.toMillis(100L) addUpdateListener { animator -> val fraction = animator.animatedValue as Float updateImageView(fraction) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt index 4941533fc..2e80f11e6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/review/MediaReviewSelectedItem.kt @@ -34,6 +34,7 @@ object MediaReviewSelectedItem { private val imageView: ImageView = itemView.findViewById(R.id.media_review_selected_image) private val playOverlay: ImageView = itemView.findViewById(R.id.media_review_play_overlay) + private val trashOverlay: ImageView = itemView.findViewById(R.id.media_review_trash_overlay) override fun bind(model: Model) { Glide.with(imageView) @@ -42,7 +43,7 @@ object MediaReviewSelectedItem { .into(imageView) playOverlay.visible = MediaUtil.isNonGifVideo(model.media) && !model.isSelected - imageView.isSelected = model.isSelected + trashOverlay.visible = model.isSelected itemView.contentDescription = if (model.isSelected) { context.getString(R.string.MediaReviewSelectedItem__tap_to_remove) diff --git a/app/src/main/res/color/media_selection_stroke.xml b/app/src/main/res/color/media_selection_stroke.xml deleted file mode 100644 index 91057ee33..000000000 --- a/app/src/main/res/color/media_selection_stroke.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable-v21/media_gallery_button_background.xml b/app/src/main/res/drawable-v21/media_gallery_button_background.xml new file mode 100644 index 000000000..472e952f1 --- /dev/null +++ b/app/src/main/res/drawable-v21/media_gallery_button_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/add_media.xml b/app/src/main/res/drawable/add_media.xml deleted file mode 100644 index fff66dfe4..000000000 --- a/app/src/main/res/drawable/add_media.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/media_gallery_button_background.xml b/app/src/main/res/drawable/media_gallery_button_background.xml new file mode 100644 index 000000000..51f3b8bc4 --- /dev/null +++ b/app/src/main/res/drawable/media_gallery_button_background.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/v2_media_gallery_folder_item.xml b/app/src/main/res/layout/v2_media_gallery_folder_item.xml index c87c9cd62..02acebe90 100644 --- a/app/src/main/res/layout/v2_media_gallery_folder_item.xml +++ b/app/src/main/res/layout/v2_media_gallery_folder_item.xml @@ -48,4 +48,13 @@ app:layout_constraintTop_toBottomOf="@id/media_gallery_image" tools:text="Lorem ipsum dolor sit amet" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/v2_media_gallery_fragment.xml b/app/src/main/res/layout/v2_media_gallery_fragment.xml index 416a4f4a7..8f3f34a34 100644 --- a/app/src/main/res/layout/v2_media_gallery_fragment.xml +++ b/app/src/main/res/layout/v2_media_gallery_fragment.xml @@ -20,7 +20,6 @@ android:id="@+id/media_gallery_grid" android:layout_width="match_parent" android:layout_height="0dp" - android:paddingHorizontal="12dp" app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" app:layout_constraintBottom_toTopOf="@id/media_gallery_bottom_bar_barrier" app:layout_constraintTop_toBottomOf="@id/media_gallery_toolbar" diff --git a/app/src/main/res/layout/v2_media_gallery_item.xml b/app/src/main/res/layout/v2_media_gallery_item.xml index c3392c455..d275f9cd1 100644 --- a/app/src/main/res/layout/v2_media_gallery_item.xml +++ b/app/src/main/res/layout/v2_media_gallery_item.xml @@ -45,4 +45,13 @@ app:layout_constraintTop_toTopOf="parent" tools:text="1" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/v2_media_gallery_item_no_check.xml b/app/src/main/res/layout/v2_media_gallery_item_no_check.xml index d5569cef6..03c604ec6 100644 --- a/app/src/main/res/layout/v2_media_gallery_item_no_check.xml +++ b/app/src/main/res/layout/v2_media_gallery_item_no_check.xml @@ -31,5 +31,14 @@ app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/v2_media_gallery_item_video_overlay" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/v2_media_review_add_media_item.xml b/app/src/main/res/layout/v2_media_review_add_media_item.xml index 914de91d1..8dfc0500e 100644 --- a/app/src/main/res/layout/v2_media_review_add_media_item.xml +++ b/app/src/main/res/layout/v2_media_review_add_media_item.xml @@ -1,13 +1,14 @@ - \ No newline at end of file + app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle" + app:srcCompat="@drawable/ic_add_media_22" /> \ No newline at end of file diff --git a/app/src/main/res/layout/v2_media_review_fragment.xml b/app/src/main/res/layout/v2_media_review_fragment.xml index b89d03bd6..439137ca1 100644 --- a/app/src/main/res/layout/v2_media_review_fragment.xml +++ b/app/src/main/res/layout/v2_media_review_fragment.xml @@ -68,19 +68,21 @@ tools:listitem="@layout/v2_media_review_selected_item" tools:visibility="visible" /> - @@ -100,23 +102,23 @@ tools:alpha="1" tools:visibility="visible"> - - @@ -200,7 +202,7 @@ android:layout_marginStart="10dp" android:layout_marginBottom="16dp" android:alpha="0" - android:background="@color/signal_dark_colorSurfaceVariant" + android:background="@drawable/media_gallery_button_background" android:padding="6dp" android:scaleType="centerInside" android:translationY="48dp" @@ -221,7 +223,7 @@ android:layout_marginStart="12dp" android:layout_marginBottom="16dp" android:alpha="0" - android:background="@color/signal_dark_colorSurfaceVariant" + android:background="@drawable/media_gallery_button_background" android:padding="4dp" android:scaleType="centerInside" android:translationY="48dp" @@ -243,7 +245,7 @@ android:layout_marginStart="12dp" android:layout_marginBottom="16dp" android:alpha="0" - android:background="@color/signal_dark_colorSurfaceVariant" + android:background="@drawable/media_gallery_button_background" android:padding="4dp" android:scaleType="centerInside" android:translationY="48dp" @@ -264,7 +266,7 @@ android:layout_height="48dp" android:layout_marginStart="12dp" android:layout_marginBottom="16dp" - android:background="@color/signal_dark_colorSurfaceVariant" + android:background="@drawable/media_gallery_button_background" android:padding="4dp" android:scaleType="centerInside" android:translationY="48dp" diff --git a/app/src/main/res/layout/v2_media_review_selected_item.xml b/app/src/main/res/layout/v2_media_review_selected_item.xml index 70f05cb7d..d1e15c667 100644 --- a/app/src/main/res/layout/v2_media_review_selected_item.xml +++ b/app/src/main/res/layout/v2_media_review_selected_item.xml @@ -12,11 +12,11 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:importantForAccessibility="no" + android:padding="1dp" android:scaleType="centerCrop" app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.MediaSelection.Selected" - app:strokeColor="@color/media_selection_stroke" + app:strokeColor="@color/core_white" app:strokeWidth="2dp" - android:padding="1dp" tools:background="@drawable/test_gradient" /> + + \ No newline at end of file