kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix bug with back navigation during payment lock.
rodzic
f8aedca08e
commit
cdad45096b
|
@ -27,12 +27,14 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
import org.signal.core.util.ThreadUtil;
|
import org.signal.core.util.ThreadUtil;
|
||||||
import org.signal.core.util.logging.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.thoughtcrime.securesms.BiometricDeviceAuthentication;
|
import org.thoughtcrime.securesms.BiometricDeviceAuthentication;
|
||||||
import org.thoughtcrime.securesms.BiometricDeviceLockContract;
|
import org.thoughtcrime.securesms.BiometricDeviceLockContract;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
|
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity;
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||||
import org.thoughtcrime.securesms.payments.CanNotSendPaymentDialog;
|
import org.thoughtcrime.securesms.payments.CanNotSendPaymentDialog;
|
||||||
import org.thoughtcrime.securesms.payments.FiatMoneyUtil;
|
import org.thoughtcrime.securesms.payments.FiatMoneyUtil;
|
||||||
|
@ -218,7 +220,19 @@ public class ConfirmPaymentFragment extends BottomSheetDialogFragment {
|
||||||
public void onConfirmPayment() {
|
public void onConfirmPayment() {
|
||||||
setCancelable(false);
|
setCancelable(false);
|
||||||
if (isPaymentLockEnabled(requireContext())) {
|
if (isPaymentLockEnabled(requireContext())) {
|
||||||
biometricAuth.authenticate(requireContext(), true, this::showConfirmDeviceCredentialIntent);
|
boolean success = biometricAuth.authenticate(requireContext(), true, this::showConfirmDeviceCredentialIntent);
|
||||||
|
if (!success) {
|
||||||
|
setCancelable(true);
|
||||||
|
new MaterialAlertDialogBuilder(requireContext())
|
||||||
|
.setTitle(R.string.ConfirmPaymentFragment__failed_to_show_payment_lock)
|
||||||
|
.setMessage(R.string.ConfirmPaymentFragment__you_enabled_payment_lock_in_the_settings)
|
||||||
|
.setNeutralButton(android.R.string.ok, (d, i) -> d.dismiss())
|
||||||
|
.setNegativeButton(R.string.ConfirmPaymentFragment__go_to_settings, (d, i) -> {
|
||||||
|
startActivity(AppSettingsActivity.privacy(requireContext()));
|
||||||
|
d.dismiss();
|
||||||
|
})
|
||||||
|
.show();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
viewModel.confirmPayment();
|
viewModel.confirmPayment();
|
||||||
}
|
}
|
||||||
|
@ -234,8 +248,14 @@ public class ConfirmPaymentFragment extends BottomSheetDialogFragment {
|
||||||
@Override
|
@Override
|
||||||
public void onAuthenticationError(int errorCode, @NonNull CharSequence errorString) {
|
public void onAuthenticationError(int errorCode, @NonNull CharSequence errorString) {
|
||||||
Log.w(TAG, "Authentication error: " + errorCode);
|
Log.w(TAG, "Authentication error: " + errorCode);
|
||||||
if (errorCode != BiometricPrompt.ERROR_CANCELED && errorCode != BiometricPrompt.ERROR_USER_CANCELED) {
|
switch (errorCode) {
|
||||||
onAuthenticationFailed();
|
case BiometricPrompt.ERROR_CANCELED:
|
||||||
|
case BiometricPrompt.ERROR_USER_CANCELED:
|
||||||
|
setCancelable(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
onAuthenticationFailed();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2992,6 +2992,12 @@
|
||||||
<string name="ConfirmPaymentFragment__invalid_recipient">Invalid recipient</string>
|
<string name="ConfirmPaymentFragment__invalid_recipient">Invalid recipient</string>
|
||||||
<!-- Biometric/Device authentication prompt title which comes up before sending a payment -->
|
<!-- Biometric/Device authentication prompt title which comes up before sending a payment -->
|
||||||
<string name="ConfirmPaymentFragment__unlock_to_send_payment">Unlock to Send Payment</string>
|
<string name="ConfirmPaymentFragment__unlock_to_send_payment">Unlock to Send Payment</string>
|
||||||
|
<!-- Title of a dialog show when we were unable to present the user's screenlock before sending a payment -->
|
||||||
|
<string name="ConfirmPaymentFragment__failed_to_show_payment_lock">Failed to show payment lock</string>
|
||||||
|
<!-- Body of a dialog show when we were unable to present the user's screenlock before sending a payment -->
|
||||||
|
<string name="ConfirmPaymentFragment__you_enabled_payment_lock_in_the_settings">You enabled payment lock in the settings, but it cannot be shown.</string>
|
||||||
|
<!-- Button in a dialog that will take the user to the privacy settings -->
|
||||||
|
<string name="ConfirmPaymentFragment__go_to_settings">Go to settings</string>
|
||||||
<string name="ConfirmPaymentFragment__this_person_has_not_activated_payments">This person has not activated payments</string>
|
<string name="ConfirmPaymentFragment__this_person_has_not_activated_payments">This person has not activated payments</string>
|
||||||
<string name="ConfirmPaymentFragment__unable_to_request_a_network_fee">Unable to request a network fee. To continue this payment tap okay to try again.</string>
|
<string name="ConfirmPaymentFragment__unable_to_request_a_network_fee">Unable to request a network fee. To continue this payment tap okay to try again.</string>
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue