diff --git a/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt deleted file mode 100644 index b25609f0d6..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/verify/PnpSafetyNumberEducationDialogFragment.kt +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2023 Signal Messenger, LLC - * SPDX-License-Identifier: AGPL-3.0-only - */ - -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 -import org.thoughtcrime.securesms.components.ViewBinderDelegate -import org.thoughtcrime.securesms.databinding.SafetyNumberPnpEducationBottomSheetBinding -import org.thoughtcrime.securesms.keyvalue.SignalStore -import org.thoughtcrime.securesms.util.BottomSheetUtil -import org.thoughtcrime.securesms.util.CommunicationActions -import org.thoughtcrime.securesms.util.visible - -class PnpSafetyNumberEducationDialogFragment : FixedRoundedCornerBottomSheetDialogFragment() { - 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) - - binding.lottie.visible = true - binding.lottie.playAnimation() - binding.lottie.addAnimatorListener(object : AnimationCompleteListener() { - override fun onAnimationEnd(animation: Animator) { - binding.lottie.removeAnimatorListener(this) - binding.lottie.setMinAndMaxFrame(60, 360) - binding.lottie.repeatMode = LottieDrawable.RESTART - binding.lottie.repeatCount = LottieDrawable.INFINITE - binding.lottie.frame = 60 - binding.lottie.playAnimation() - } - }) - - binding.okay.setOnClickListener { - SignalStore.uiHints().markHasSeenSafetyNumberUpdateNux() - dismiss() - } - - binding.help.setOnClickListener { - CommunicationActions.openBrowserLink(requireContext(), "https://support.signal.org/hc/en-us/articles/360007060632") - } - } - - companion object { - @JvmStatic - fun show(fragmentManager: FragmentManager) { - val fragment = PnpSafetyNumberEducationDialogFragment() - if (fragmentManager.findFragmentByTag(BottomSheetUtil.STANDARD_BOTTOM_SHEET_FRAGMENT_TAG) == null) { - fragment.show(fragmentManager, BottomSheetUtil.STANDARD_BOTTOM_SHEET_FRAGMENT_TAG) - } - } - } -} 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 83459a955e..d2e732d8dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifyDisplayFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifyDisplayFragment.kt @@ -82,10 +82,6 @@ class VerifyDisplayFragment : Fragment(), OnScrollChangedListener { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { initializeViewModel() - binding.safetyNumberUpdatingBannerText.text = getString(R.string.verify_display_fragment__safety_numbers_are_updating_banner_no_learn_more) - binding.safetyNumberUpdatingBannerText.setLink("https://signal.org/redirect/safety-numbers") - binding.safetyNumberUpdatingBannerText.setLinkColor(ContextCompat.getColor(requireContext(), R.color.signal_colorPrimary)) - updateVerifyButton(requireArguments().getBoolean(VERIFIED_STATE, false), false) binding.verifyButton.setOnClickListener { updateVerifyButton(!currentVerifiedState, true) } @@ -116,7 +112,6 @@ class VerifyDisplayFragment : Fragment(), OnScrollChangedListener { return@observe } val multipleCards = fingerprints.size > 1 - binding.safetyNumberChangeBanner.visible = multipleCards binding.dotIndicators.visible = multipleCards if (fingerprints.isEmpty()) { @@ -145,14 +140,6 @@ class VerifyDisplayFragment : Fragment(), OnScrollChangedListener { viewModel = ViewModelProvider(this, VerifySafetyNumberViewModel.Factory(recipientId, localIdentity, remoteIdentity)).get(VerifySafetyNumberViewModel::class.java) } - override fun onStart() { - super.onStart() - if (!viewModel.showedSafetyNumberEducationDialog) { - PnpSafetyNumberEducationDialogFragment.show(childFragmentManager) - viewModel.showedSafetyNumberEducationDialog = true - } - } - override fun onResume() { super.onResume() setRecipientText(viewModel.recipient.get()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt index 089de4840a..78613e5b01 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/verify/VerifySafetyNumberViewModel.kt @@ -37,7 +37,6 @@ class VerifySafetyNumberViewModel( } val recipient: LiveRecipient = Recipient.live(recipientId) - var showedSafetyNumberEducationDialog = SignalStore.uiHints().hasSeenSafetyNumberUpdateNux() private val fingerprintListLiveData = MutableLiveData>() @@ -53,14 +52,6 @@ class VerifySafetyNumberViewModel( val generator = NumericFingerprintGenerator(5200) var aciFingerprint: SafetyNumberFingerprint? = null - var e164Fingerprint: SafetyNumberFingerprint? = null - - if (resolved.e164.isPresent) { - val localIdentifier = Recipient.self().requireE164().toByteArray() - val remoteIdentifier = resolved.requireE164().toByteArray() - val version = 1 - e164Fingerprint = SafetyNumberFingerprint(version, localIdentifier, localIdentity, remoteIdentifier, remoteIdentity, generator.createFor(version, localIdentifier, localIdentity, remoteIdentifier, remoteIdentity)) - } if (resolved.aci.isPresent) { val localIdentifier = SignalStore.account().requireAci().toByteArray() @@ -71,9 +62,6 @@ class VerifySafetyNumberViewModel( if (aciFingerprint != null) { fingerprintList.add(aciFingerprint) - if (e164Fingerprint != null) { - fingerprintList.add(e164Fingerprint) - } } fingerprintListLiveData.postValue(fingerprintList) 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 deleted file mode 100644 index 319f54ee6f..0000000000 --- a/app/src/main/res/layout/safety_number_pnp_education_bottom_sheet.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/verify_display_fragment.xml b/app/src/main/res/layout/verify_display_fragment.xml index 28e8da5182..b7d864df2b 100644 --- a/app/src/main/res/layout/verify_display_fragment.xml +++ b/app/src/main/res/layout/verify_display_fragment.xml @@ -21,50 +21,13 @@ app:titleTextAppearance="@style/Signal.Text.TitleLarge" tools:title="@string/AndroidManifest__verify_safety_number" /> - - - - - - - + app:constraint_referenced_ids="toolbar"/> @@ -91,6 +54,7 @@ android:id="@+id/dot_indicators" android:layout_width="match_parent" android:layout_height="wrap_content" + android:visibility="gone" app:tabBackground="@drawable/safety_dot_indicator" app:tabGravity="center" app:tabPaddingEnd="10dp" @@ -104,7 +68,7 @@ android:layout_height="wrap_content" android:layout_marginStart="32dp" android:layout_marginEnd="32dp" - android:layout_marginTop="8dp" + android:layout_marginTop="24dp" android:layout_marginBottom="20dp" android:gravity="center" android:lineSpacingExtra="3sp" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ef7e89c296..3172c85613 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2716,24 +2716,13 @@ - To verify end-to-end encryption with %s, match the color card above with their device and compare the numbers. If these don’t match, swipe and try the other pair of safety numbers. Only one pair needs to match. + To verify end-to-end encryption with %1$s, compare the numbers above with their device. You can also scan the code on their device. Tap to scan Successful match Failed to verify safety number Loading… Mark as verified Clear verification - - Safety numbers are being updated. - - - Changes to safety numbers - - Safety numbers are being updated over a transition period to enable upcoming privacy features in Signal.\n\nTo verify safety numbers, match the color card with your contact’s device. If these don’t match, swipe and try the other pair of safety numbers. Only one pair needs to match. - - Need help? - - Got it Scan the QR Code on your contact\'s device.