From d0a44c3f146172e83268f795a21c1669cdb2e044 Mon Sep 17 00:00:00 2001 From: Clark Date: Fri, 21 Jul 2023 14:41:07 -0400 Subject: [PATCH] Small screen fixes for ACI safety number screen. --- .../PnpSafetyNumberEducationDialogFragment.kt | 14 +++- .../securesms/verify/VerifyDisplayFragment.kt | 8 +- ...fety_number_pnp_education_bottom_sheet.xml | 75 +++++++++++-------- app/src/main/res/values/dimens.xml | 1 - 4 files changed, 63 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt index 0b91f52550..b25609f0d6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt @@ -6,12 +6,15 @@ package org.thoughtcrime.securesms.verify import android.animation.Animator +import android.app.Dialog import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.FragmentManager import com.airbnb.lottie.LottieDrawable +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.android.material.bottomsheet.BottomSheetDialog import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.animation.AnimationCompleteListener import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment @@ -23,14 +26,21 @@ import org.thoughtcrime.securesms.util.CommunicationActions import org.thoughtcrime.securesms.util.visible class PnpSafetyNumberEducationDialogFragment : FixedRoundedCornerBottomSheetDialogFragment() { - override val peekHeightPercentage: Float = 0.66f - private val binding by ViewBinderDelegate(SafetyNumberPnpEducationBottomSheetBinding::bind) override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { return inflater.inflate(R.layout.safety_number_pnp_education_bottom_sheet, container, false) } + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val dialog = super.onCreateDialog(savedInstanceState) as BottomSheetDialog + dialog.behavior.skipCollapsed = true + dialog.setOnShowListener { + dialog.behavior.state = BottomSheetBehavior.STATE_EXPANDED + } + return dialog + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) diff --git a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifyDisplayFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifyDisplayFragment.kt index f50470ae6b..83459a955e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifyDisplayFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifyDisplayFragment.kt @@ -42,6 +42,7 @@ import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.visible import java.nio.charset.StandardCharsets import java.util.Locale +import kotlin.math.max /** * Fragment to display a user's identity key. @@ -100,8 +101,11 @@ class VerifyDisplayFragment : Fragment(), OnScrollChangedListener { } }) val peekSize = resources.getDimensionPixelSize(R.dimen.safety_number_qr_peek) - val pageWidth = resources.getDimensionPixelSize(R.dimen.safety_number_qr_width) - val pageTransformer = ViewPager2.PageTransformer { page: View, position: Float -> page.translationX = -position * (peekSize + (page.width - pageWidth) / 2f) } + val pageTransformer = ViewPager2.PageTransformer { page: View, position: Float -> + val remainingWidth = (max(0, page.width - ((page as ViewGroup).getChildAt(0).width))) / 2f + val peekWidth = peekSize.toFloat().coerceAtMost(remainingWidth / 2f) + page.translationX = -position * (peekWidth + remainingWidth) + } binding.verifyViewPager.setPageTransformer(pageTransformer) binding.verifyViewPager.offscreenPageLimit = 1 TabLayoutMediator(binding.dotIndicators, binding.verifyViewPager) { _: TabLayout.Tab?, _: Int -> }.attach() diff --git a/app/src/main/res/layout/safety_number_pnp_education_bottom_sheet.xml b/app/src/main/res/layout/safety_number_pnp_education_bottom_sheet.xml index 0690c8cf46..319f54ee6f 100644 --- a/app/src/main/res/layout/safety_number_pnp_education_bottom_sheet.xml +++ b/app/src/main/res/layout/safety_number_pnp_education_bottom_sheet.xml @@ -15,46 +15,61 @@ android:layout_height="2dp" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" + android:layout_marginBottom="10dp" android:background="@color/signal_icon_tint_tab_unselected"/> - - - + android:layout_height="0dp" + android:layout_weight="1"> - + + + + + + + + + + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 1ce1e78625..c0da017c56 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -222,5 +222,4 @@ 32dp 24dp - 288dp