From efec07072897e00772259e8b4a38171ac172e053 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 1 Jun 2026 15:51:36 -0400 Subject: [PATCH] Force screen security flag on PIN screens. --- .../securesms/lock/v2/ConfirmSvrPinFragment.kt | 7 +++++++ .../securesms/lock/v2/CreateSvrPinFragment.kt | 8 ++++++++ .../backup/phrase/PaymentsRecoveryPhraseFragment.java | 3 +++ 3 files changed, 18 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt index fbf3ae4d9d..2cda5405b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmSvrPinFragment.kt @@ -2,11 +2,13 @@ package org.thoughtcrime.securesms.lock.v2 import android.app.Activity import android.content.DialogInterface +import android.os.Bundle import android.view.View import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.thoughtcrime.securesms.R +import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.lock.v2.ConfirmSvrPinViewModel.SaveAnimation import org.thoughtcrime.securesms.megaphone.Megaphones @@ -16,6 +18,11 @@ import org.thoughtcrime.securesms.util.SpanUtil internal class ConfirmSvrPinFragment : BaseSvrPinFragment() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + TemporaryScreenshotSecurity.bindToViewLifecycleOwner(this) + } + override fun initializeViewStates() { val args = ConfirmSvrPinFragmentArgs.fromBundle(requireArguments()) if (args.isPinChange) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/CreateSvrPinFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/CreateSvrPinFragment.kt index 061816c679..aeb4265ca8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/CreateSvrPinFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/CreateSvrPinFragment.kt @@ -1,5 +1,7 @@ package org.thoughtcrime.securesms.lock.v2 +import android.os.Bundle +import android.view.View import android.view.animation.Animation import android.view.animation.TranslateAnimation import android.widget.EditText @@ -8,12 +10,18 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.ViewModelProvider import androidx.navigation.Navigation.findNavController import org.thoughtcrime.securesms.R +import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity import org.thoughtcrime.securesms.lock.v2.CreateSvrPinViewModel.NavigationEvent import org.thoughtcrime.securesms.lock.v2.CreateSvrPinViewModel.PinErrorEvent import org.thoughtcrime.securesms.util.SpanUtil import org.thoughtcrime.securesms.util.navigation.safeNavigate class CreateSvrPinFragment : BaseSvrPinFragment() { + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + TemporaryScreenshotSecurity.bindToViewLifecycleOwner(this) + } + override fun initializeViewStates() { val args = CreateSvrPinFragmentArgs.fromBundle(requireArguments()) if (args.isPinChange) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java index 890a2104bf..1fc03bf464 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/phrase/PaymentsRecoveryPhraseFragment.java @@ -24,6 +24,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.signal.core.util.ClearClipboardAlarmReceiver; import org.signal.core.util.PendingIntentFlags; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.payments.Mnemonic; import org.signal.core.util.ServiceUtil; @@ -47,6 +48,8 @@ public class PaymentsRecoveryPhraseFragment extends Fragment { @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + TemporaryScreenshotSecurity.bindToViewLifecycleOwner(this); + Toolbar toolbar = view.findViewById(R.id.payments_recovery_phrase_fragment_toolbar); RecyclerView recyclerView = view.findViewById(R.id.payments_recovery_phrase_fragment_recycler); TextView message = view.findViewById(R.id.payments_recovery_phrase_fragment_message);