diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java index b8c1abf60b..bef67de75a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryPasteFragment.java @@ -3,17 +3,20 @@ package org.thoughtcrime.securesms.payments.backup; import android.app.AlertDialog; import android.os.Bundle; import android.view.View; +import android.view.ViewGroup; import android.widget.EditText; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.Toolbar; +import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.navigation.Navigation; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import org.thoughtcrime.securesms.util.text.AfterTextChanged; import org.whispersystems.signalservice.api.payments.PaymentsConstants; @@ -30,6 +33,10 @@ public class PaymentsRecoveryPasteFragment extends Fragment { EditText input = view.findViewById(R.id.payments_recovery_paste_fragment_phrase); View next = view.findViewById(R.id.payments_recovery_paste_fragment_next); + toolbar.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + SystemWindowInsetsSetter.attach(toolbar, getViewLifecycleOwner(), WindowInsetsCompat.Type.statusBars()); + SystemWindowInsetsSetter.attach(view, getViewLifecycleOwner(), WindowInsetsCompat.Type.navigationBars() | WindowInsetsCompat.Type.ime()); + toolbar.setNavigationOnClickListener(v -> Navigation.findNavController(v).popBackStack()); if (savedInstanceState == null) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryStartFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryStartFragment.java index ad03a90fcb..24473b8e45 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryStartFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/PaymentsRecoveryStartFragment.java @@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.payments.backup; import android.os.Bundle; import android.view.View; +import android.view.ViewGroup; import android.widget.TextView; import androidx.activity.OnBackPressedCallback; @@ -11,6 +12,7 @@ import androidx.annotation.Nullable; import androidx.appcompat.widget.Toolbar; import androidx.biometric.BiometricManager; import androidx.biometric.BiometricPrompt; +import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.navigation.Navigation; @@ -22,6 +24,7 @@ import org.thoughtcrime.securesms.BiometricDeviceLockContract; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.signal.core.util.ServiceUtil; +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import org.thoughtcrime.securesms.util.views.LearnMoreTextView; import org.whispersystems.signalservice.api.payments.PaymentsConstants; @@ -52,6 +55,10 @@ public class PaymentsRecoveryStartFragment extends Fragment { finishOnConfirm = args.getFinishOnConfirm(); + toolbar.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + SystemWindowInsetsSetter.attach(toolbar, getViewLifecycleOwner(), WindowInsetsCompat.Type.statusBars()); + SystemWindowInsetsSetter.attach(view.findViewById(R.id.payments_recovery_start_fragment_scroll_view), getViewLifecycleOwner(), WindowInsetsCompat.Type.navigationBars()); + if (args.getIsRestore()) { title.setText(R.string.PaymentsRecoveryStartFragment__enter_recovery_phrase); message.setText(getString(R.string.PaymentsRecoveryStartFragment__your_recovery_phrase_is_a, PaymentsConstants.MNEMONIC_LENGTH)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/confirm/PaymentsRecoveryPhraseConfirmFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/confirm/PaymentsRecoveryPhraseConfirmFragment.java index 66f649dc23..b5a3b46c98 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/confirm/PaymentsRecoveryPhraseConfirmFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/confirm/PaymentsRecoveryPhraseConfirmFragment.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; +import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; @@ -14,6 +15,7 @@ import androidx.appcompat.content.res.AppCompatResources; import androidx.appcompat.widget.Toolbar; import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; +import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; @@ -22,6 +24,7 @@ import com.google.android.material.textfield.TextInputLayout; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.text.AfterTextChanged; @@ -53,6 +56,10 @@ public class PaymentsRecoveryPhraseConfirmFragment extends Fragment { PaymentsRecoveryPhraseConfirmFragmentArgs args = PaymentsRecoveryPhraseConfirmFragmentArgs.fromBundle(requireArguments()); + toolbar.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + SystemWindowInsetsSetter.attach(toolbar, getViewLifecycleOwner(), WindowInsetsCompat.Type.statusBars()); + SystemWindowInsetsSetter.attach(view.findViewById(R.id.payments_recovery_phrase_confirm_fragment_scroll_view), getViewLifecycleOwner(), WindowInsetsCompat.Type.navigationBars() | WindowInsetsCompat.Type.ime()); + validWordCheckMark = AppCompatResources.getDrawable(requireContext(), R.drawable.ic_check_circle_24); invalidWordX = AppCompatResources.getDrawable(requireContext(), R.drawable.ic_circle_x_24); diff --git a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/entry/PaymentsRecoveryEntryFragment.java b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/entry/PaymentsRecoveryEntryFragment.java index 22b0877048..1a0296d52c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/payments/backup/entry/PaymentsRecoveryEntryFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/payments/backup/entry/PaymentsRecoveryEntryFragment.java @@ -3,12 +3,14 @@ package org.thoughtcrime.securesms.payments.backup.entry; import android.os.Bundle; import android.text.TextUtils; import android.view.View; +import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.Toolbar; +import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; @@ -19,6 +21,7 @@ import com.google.android.material.textfield.TextInputLayout; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.payments.Mnemonic; import org.signal.core.util.Util; +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import org.thoughtcrime.securesms.util.text.AfterTextChanged; @@ -37,6 +40,10 @@ public class PaymentsRecoveryEntryFragment extends Fragment { View next = view.findViewById(R.id.payments_recovery_entry_fragment_next); PaymentsRecoveryEntryViewModel viewModel = new ViewModelProvider(this).get(PaymentsRecoveryEntryViewModel.class); + toolbar.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + SystemWindowInsetsSetter.attach(toolbar, getViewLifecycleOwner(), WindowInsetsCompat.Type.statusBars()); + SystemWindowInsetsSetter.attach(view.findViewById(R.id.payments_recovery_entry_fragment_scroll_view), getViewLifecycleOwner(), WindowInsetsCompat.Type.navigationBars() | WindowInsetsCompat.Type.ime()); + toolbar.setNavigationOnClickListener(t -> Navigation.findNavController(view).popBackStack(R.id.paymentsHome, false)); viewModel.getState().observe(getViewLifecycleOwner(), state -> { 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 1fc03bf464..33afa5bef9 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 @@ -7,12 +7,14 @@ import android.content.ClipboardManager; import android.content.Intent; import android.os.Bundle; import android.view.View; +import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.Toolbar; +import androidx.core.view.WindowInsetsCompat; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; @@ -29,6 +31,7 @@ import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.payments.Mnemonic; import org.signal.core.util.ServiceUtil; import org.signal.core.util.Util; +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter; import org.thoughtcrime.securesms.util.navigation.SafeNavigation; import java.util.Arrays; @@ -59,6 +62,10 @@ public class PaymentsRecoveryPhraseFragment extends Fragment { GridLayoutManager gridLayoutManager = new GridLayoutManager(requireContext(), SPAN_COUNT); PaymentsRecoveryPhraseFragmentArgs args = PaymentsRecoveryPhraseFragmentArgs.fromBundle(requireArguments()); + toolbar.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT; + SystemWindowInsetsSetter.attach(toolbar, getViewLifecycleOwner(), WindowInsetsCompat.Type.statusBars()); + SystemWindowInsetsSetter.attach(view.findViewById(R.id.payments_recovery_phrase_fragment_scroll_view), getViewLifecycleOwner(), WindowInsetsCompat.Type.navigationBars()); + final List words; if (args.getWords() != null) { diff --git a/app/src/main/res/layout/payments_recovery_entry_fragment.xml b/app/src/main/res/layout/payments_recovery_entry_fragment.xml index 15fd52e0b4..88e080b9f7 100644 --- a/app/src/main/res/layout/payments_recovery_entry_fragment.xml +++ b/app/src/main/res/layout/payments_recovery_entry_fragment.xml @@ -18,6 +18,7 @@ app:titleTextAppearance="@style/Signal.Text.TitleLarge" /> diff --git a/app/src/main/res/layout/payments_recovery_phrase_confirm_fragment.xml b/app/src/main/res/layout/payments_recovery_phrase_confirm_fragment.xml index fe61016208..e0fe63876b 100644 --- a/app/src/main/res/layout/payments_recovery_phrase_confirm_fragment.xml +++ b/app/src/main/res/layout/payments_recovery_phrase_confirm_fragment.xml @@ -18,6 +18,7 @@ app:titleTextAppearance="@style/Signal.Text.TitleLarge" /> diff --git a/app/src/main/res/layout/payments_recovery_phrase_fragment.xml b/app/src/main/res/layout/payments_recovery_phrase_fragment.xml index 09d0276870..9e027e8073 100644 --- a/app/src/main/res/layout/payments_recovery_phrase_fragment.xml +++ b/app/src/main/res/layout/payments_recovery_phrase_fragment.xml @@ -18,6 +18,7 @@ app:titleTextAppearance="@style/Signal.Text.TitleLarge" /> diff --git a/app/src/main/res/layout/payments_recovery_start_fragment.xml b/app/src/main/res/layout/payments_recovery_start_fragment.xml index 4a8c19fd42..38a1f635e0 100644 --- a/app/src/main/res/layout/payments_recovery_start_fragment.xml +++ b/app/src/main/res/layout/payments_recovery_start_fragment.xml @@ -18,6 +18,7 @@ app:titleTextAppearance="@style/Signal.Text.TitleLarge" />