Various PIN bug fixes.
parent
0a883dc234
commit
dc689d325b
|
@ -999,6 +999,7 @@ public class ConversationFragment extends Fragment
|
|||
|
||||
if (messageRecord.isSecure() &&
|
||||
!messageRecord.isUpdate() &&
|
||||
!recipient.get().isBlocked() &&
|
||||
((ConversationAdapter) list.getAdapter()).getSelectedItems().isEmpty())
|
||||
{
|
||||
isReacting = true;
|
||||
|
|
|
@ -2,8 +2,10 @@ package org.thoughtcrime.securesms.lock.v2;
|
|||
|
||||
import android.animation.Animator;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RawRes;
|
||||
|
@ -75,6 +77,7 @@ public class ConfirmKbsPinFragment extends BaseKbsPinFragment<ConfirmKbsPinViewM
|
|||
break;
|
||||
case CREATING_PIN:
|
||||
getLabel().setText(R.string.ConfirmKbsPinFragment__creating_pin);
|
||||
getInput().setEnabled(false);
|
||||
break;
|
||||
case RE_ENTER_PIN:
|
||||
getLabel().setText(R.string.ConfirmKbsPinFragment__re_enter_pin);
|
||||
|
|
|
@ -127,7 +127,7 @@ public final class EnterCodeFragment extends BaseRegistrationFragment {
|
|||
@Override
|
||||
public void onSuccess(Boolean r) {
|
||||
Navigation.findNavController(requireView())
|
||||
.navigate(EnterCodeFragmentDirections.actionRequireKbsLockPin(timeRemaining));
|
||||
.navigate(EnterCodeFragmentDirections.actionRequireKbsLockPin(timeRemaining, true));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ public final class EnterCodeFragment extends BaseRegistrationFragment {
|
|||
@Override
|
||||
public void onSuccess(Boolean r) {
|
||||
Navigation.findNavController(requireView())
|
||||
.navigate(EnterCodeFragmentDirections.actionRequireKbsLockPin(timeRemaining));
|
||||
.navigate(EnterCodeFragmentDirections.actionRequireKbsLockPin(timeRemaining, false));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -63,7 +63,13 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
keyboardToggle = view.findViewById(R.id.kbs_lock_keyboard_toggle);
|
||||
forgotPin = view.findViewById(R.id.kbs_lock_forgot_pin);
|
||||
|
||||
timeRemaining = RegistrationLockFragmentArgs.fromBundle(requireArguments()).getTimeRemaining();
|
||||
RegistrationLockFragmentArgs args = RegistrationLockFragmentArgs.fromBundle(requireArguments());
|
||||
|
||||
timeRemaining = args.getTimeRemaining();
|
||||
|
||||
if (args.getIsV1RegistrationLock()) {
|
||||
keyboardToggle.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
forgotPin.setVisibility(View.GONE);
|
||||
forgotPin.setOnClickListener(v -> handleForgottenPin(timeRemaining));
|
||||
|
@ -78,10 +84,7 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
return false;
|
||||
});
|
||||
|
||||
pinEntry.setFocusable(true);
|
||||
if (pinEntry.requestFocus()) {
|
||||
ServiceUtil.getInputMethodManager(pinEntry.getContext()).showSoftInput(pinEntry, 0);
|
||||
}
|
||||
enableAndFocusPinEntry();
|
||||
|
||||
pinButton.setOnClickListener((v) -> {
|
||||
hideKeyboard(requireContext(), pinEntry);
|
||||
|
@ -136,6 +139,8 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
}
|
||||
|
||||
private void handlePinEntry() {
|
||||
pinEntry.setEnabled(false);
|
||||
|
||||
final String pin = pinEntry.getText().toString();
|
||||
|
||||
int trimmedLength = pin.replace(" ", "").length();
|
||||
|
@ -179,6 +184,7 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
|
||||
cancelSpinning(pinButton);
|
||||
pinEntry.getText().clear();
|
||||
enableAndFocusPinEntry();
|
||||
|
||||
errorLabel.setText(R.string.RegistrationLockFragment__incorrect_pin);
|
||||
}
|
||||
|
@ -192,6 +198,7 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
public void onIncorrectKbsRegistrationLockPin(@NonNull TokenResponse tokenResponse) {
|
||||
cancelSpinning(pinButton);
|
||||
pinEntry.getText().clear();
|
||||
enableAndFocusPinEntry();
|
||||
|
||||
model.setKeyBackupCurrentToken(tokenResponse);
|
||||
|
||||
|
@ -224,6 +231,7 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
@Override
|
||||
public void onRateLimited() {
|
||||
cancelSpinning(pinButton);
|
||||
enableAndFocusPinEntry();
|
||||
|
||||
new AlertDialog.Builder(requireContext())
|
||||
.setTitle(R.string.RegistrationActivity_too_many_attempts)
|
||||
|
@ -244,6 +252,7 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
@Override
|
||||
public void onError() {
|
||||
cancelSpinning(pinButton);
|
||||
enableAndFocusPinEntry();
|
||||
|
||||
Toast.makeText(requireContext(), R.string.RegistrationActivity_error_connecting_to_service, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
@ -283,4 +292,13 @@ public final class RegistrationLockFragment extends BaseRegistrationFragment {
|
|||
return R.string.RegistrationLockFragment__enter_numeric_pin;
|
||||
}
|
||||
}
|
||||
|
||||
private void enableAndFocusPinEntry() {
|
||||
pinEntry.setEnabled(true);
|
||||
pinEntry.setFocusable(true);
|
||||
|
||||
if (pinEntry.requestFocus()) {
|
||||
ServiceUtil.getInputMethodManager(pinEntry.getContext()).showSoftInput(pinEntry, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,6 +151,10 @@
|
|||
android:name="timeRemaining"
|
||||
app:argType="long" />
|
||||
|
||||
<argument
|
||||
android:name="isV1RegistrationLock"
|
||||
app:argType="boolean" />
|
||||
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
|
|
Loading…
Reference in New Issue