diff --git a/app/src/main/java/org/thoughtcrime/securesms/animation/DepthPageTransformer.java b/app/src/main/java/org/thoughtcrime/securesms/animation/DepthPageTransformer.java deleted file mode 100644 index 32003f5f3..000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/animation/DepthPageTransformer.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.thoughtcrime.securesms.animation; - -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.viewpager.widget.ViewPager; -import androidx.viewpager2.widget.ViewPager2; - -/** - * Based on https://developer.android.com/training/animation/screen-slide#depth-page - */ -public final class DepthPageTransformer implements ViewPager.PageTransformer { - private static final float MIN_SCALE = 0.75f; - - public void transformPage(@NonNull View view, float position) { - final int pageWidth = view.getWidth(); - - if (position < -1f) { - view.setAlpha(0f); - - } else if (position <= 0f) { - view.setAlpha(1f); - view.setTranslationX(0f); - view.setScaleX(1f); - view.setScaleY(1f); - - } else if (position <= 1f) { - view.setAlpha(1f - position); - - view.setTranslationX(pageWidth * -position); - - final float scaleFactor = MIN_SCALE + (1f - MIN_SCALE) * (1f - Math.abs(position)); - - view.setScaleX(scaleFactor); - view.setScaleY(scaleFactor); - - } else { - view.setAlpha(0f); - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/animation/DepthPageTransformer2.kt b/app/src/main/java/org/thoughtcrime/securesms/animation/DepthPageTransformer2.kt deleted file mode 100644 index 13697478c..000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/animation/DepthPageTransformer2.kt +++ /dev/null @@ -1,41 +0,0 @@ -package org.thoughtcrime.securesms.animation - -import android.view.View -import androidx.annotation.RequiresApi -import androidx.viewpager2.widget.ViewPager2 - -private const val MIN_SCALE = 0.75f - -/** - * Lifted from https://developer.android.com/develop/ui/views/animations/screen-slide-2#depth-page - */ -@RequiresApi(21) -class DepthPageTransformer2 : ViewPager2.PageTransformer { - - override fun transformPage(view: View, position: Float) { - view.apply { - val pageWidth = width - when { - position < -1 -> alpha = 0f - position <= 0 -> { - alpha = 1f - translationX = 0f - translationZ = 0f - scaleX = 1f - scaleY = 1f - } - position <= 1 -> { - alpha = 1 - position - - translationX = pageWidth * -position - translationZ = -1f - - val scaleFactor = (MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position))) - scaleX = scaleFactor - scaleY = scaleFactor - } - else -> alpha = 0f - } - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt index d85d6d030..204d1b660 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewV2Fragment.kt @@ -5,7 +5,6 @@ import android.content.ActivityNotFoundException import android.content.Context import android.content.DialogInterface import android.content.Intent -import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.Menu @@ -19,6 +18,7 @@ import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.recyclerview.widget.RecyclerView +import androidx.viewpager2.widget.MarginPageTransformer import androidx.viewpager2.widget.ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback import com.google.android.material.appbar.MaterialToolbar @@ -28,7 +28,6 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.animation.DepthPageTransformer2 import org.thoughtcrime.securesms.attachments.DatabaseAttachment import org.thoughtcrime.securesms.components.ViewBinderDelegate import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment @@ -47,6 +46,7 @@ import org.thoughtcrime.securesms.util.LifecycleDisposable import org.thoughtcrime.securesms.util.MediaUtil import org.thoughtcrime.securesms.util.SaveAttachmentTask import org.thoughtcrime.securesms.util.StorageUtil +import org.thoughtcrime.securesms.util.ViewUtil import java.util.Locale import java.util.Optional @@ -108,9 +108,7 @@ class MediaPreviewV2Fragment : Fragment(R.layout.fragment_media_preview_v2), Med private fun initializeViewPager() { binding.mediaPager.offscreenPageLimit = OFFSCREEN_PAGE_LIMIT_DEFAULT - if (Build.VERSION.SDK_INT >= 21) { - binding.mediaPager.setPageTransformer(DepthPageTransformer2()) - } + binding.mediaPager.setPageTransformer(MarginPageTransformer(ViewUtil.dpToPx(24))) val adapter = MediaPreviewV2Adapter(this) binding.mediaPager.adapter = adapter binding.mediaPager.registerOnPageChangeCallback(object : OnPageChangeCallback() { diff --git a/app/src/main/res/drawable/mediapicker_item_border_dark.xml b/app/src/main/res/drawable/mediapicker_item_border_dark.xml index 8a0a12423..f2aa578a9 100644 --- a/app/src/main/res/drawable/mediapicker_item_border_dark.xml +++ b/app/src/main/res/drawable/mediapicker_item_border_dark.xml @@ -3,7 +3,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> - + @@ -53,6 +53,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" + android:layout_marginTop="11dp" android:layout_marginStart="12dp" android:layout_marginEnd="12dp" android:orientation="horizontal" @@ -63,11 +64,10 @@ + android:gravity="center_vertical" + android:orientation="horizontal"> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index dd3d27e2e..1fe036458 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -235,10 +235,12 @@ 52dp 76dp 20dp - 24dp - 24dp + + 20dp + 16dp 16dp 48dp 48dp 8dp + 36dp