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