kopia lustrzana https://github.com/ryukoposting/Signal-Android
Simplify PIN opt-out code.
rodzic
e27fc512b4
commit
4b961d2d8f
|
@ -215,11 +215,6 @@ abstract class BaseKbsPinFragment<ViewModel extends BaseKbsPinViewModel> extends
|
|||
}
|
||||
|
||||
private void onPinSkipped() {
|
||||
PinOptOutDialog.showForSkip(requireContext(),
|
||||
this::closeNavGraphBranch,
|
||||
() -> {
|
||||
PinState.onPinCreateFailure();
|
||||
closeNavGraphBranch();
|
||||
});
|
||||
PinOptOutDialog.show(requireContext(), this::closeNavGraphBranch);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -126,11 +126,6 @@ public final class KbsSplashFragment extends Fragment {
|
|||
}
|
||||
|
||||
private void onPinSkipped() {
|
||||
PinOptOutDialog.showForSkip(requireContext(),
|
||||
() -> requireActivity().finish(),
|
||||
() -> {
|
||||
PinState.onPinCreateFailure();
|
||||
requireActivity().finish();
|
||||
});
|
||||
PinOptOutDialog.show(requireContext(), () -> requireActivity().finish());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,50 +19,30 @@ public final class PinOptOutDialog {
|
|||
|
||||
private static final String TAG = Log.tag(PinOptOutDialog.class);
|
||||
|
||||
public static void showForSkip(@NonNull Context context, @NonNull Runnable onSuccess, @NonNull Runnable onFailed) {
|
||||
show(context,
|
||||
true,
|
||||
onSuccess,
|
||||
onFailed);
|
||||
}
|
||||
|
||||
public static void showForOptOut(@NonNull Context context, @NonNull Runnable onSuccess, @NonNull Runnable onFailed) {
|
||||
show(context,
|
||||
false,
|
||||
onSuccess,
|
||||
onFailed);
|
||||
}
|
||||
|
||||
private static void show(@NonNull Context context,
|
||||
boolean isForSkip,
|
||||
@NonNull Runnable onSuccess,
|
||||
@NonNull Runnable onFailed)
|
||||
{
|
||||
public static void show(@NonNull Context context, @NonNull Runnable onSuccess) {
|
||||
Log.i(TAG, "show()");
|
||||
AlertDialog dialog = new AlertDialog.Builder(context)
|
||||
.setTitle(R.string.PinOptOutDialog_warning)
|
||||
.setMessage(R.string.PinOptOutDialog_if_you_disable_the_pin_you_will_lose_all_data)
|
||||
.setCancelable(true)
|
||||
.setPositiveButton(R.string.PinOptOutDialog_disable_pin, (d, which) -> {
|
||||
Log.i(TAG, "Disable clicked.");
|
||||
d.dismiss();
|
||||
AlertDialog progress = SimpleProgressDialog.show(context);
|
||||
|
||||
SimpleTask.run(() -> {
|
||||
if (isForSkip) {
|
||||
PinState.onPinCreationSkipped();
|
||||
} else {
|
||||
PinState.onPinOptOut();
|
||||
}
|
||||
return true;
|
||||
PinState.onPinOptOut();
|
||||
return null;
|
||||
}, success -> {
|
||||
if (success) {
|
||||
onSuccess.run();
|
||||
} else {
|
||||
onFailed.run();
|
||||
}
|
||||
Log.i(TAG, "Disable operation finished.");
|
||||
onSuccess.run();
|
||||
progress.dismiss();
|
||||
});
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, (d, which) -> d.dismiss())
|
||||
.setNegativeButton(android.R.string.cancel, (d, which) -> {
|
||||
Log.i(TAG, "Cancel clicked.");
|
||||
d.dismiss();
|
||||
})
|
||||
.create();
|
||||
|
||||
dialog.setOnShowListener(dialogInterface -> {
|
||||
|
|
|
@ -202,19 +202,6 @@ public final class PinState {
|
|||
updateState(buildInferredStateFromOtherFields());
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoked when the user has chosen to skip PIN creation.
|
||||
*/
|
||||
@WorkerThread
|
||||
public static synchronized void onPinCreationSkipped() {
|
||||
Log.i(TAG, "onPinCreationSkipped()");
|
||||
assertState(State.NO_REGISTRATION_LOCK);
|
||||
|
||||
optOutOfPin();
|
||||
|
||||
updateState(buildInferredStateFromOtherFields());
|
||||
}
|
||||
|
||||
/**
|
||||
* Invoked whenever a Signal PIN user enables registration lock.
|
||||
*/
|
||||
|
|
|
@ -82,12 +82,11 @@ public class AdvancedPinPreferenceFragment extends ListSummaryPreferenceFragment
|
|||
.setPositiveButton(android.R.string.ok, (d, which) -> d.dismiss())
|
||||
.show();
|
||||
} else if (!enabled) {
|
||||
PinOptOutDialog.showForOptOut(requireContext(),
|
||||
() -> {
|
||||
updatePreferenceState();
|
||||
Snackbar.make(requireView(), R.string.ApplicationPreferencesActivity_pin_disabled, Snackbar.LENGTH_SHORT).setTextColor(Color.WHITE).show();
|
||||
},
|
||||
() -> Toast.makeText(requireContext(), R.string.ApplicationPreferencesActivity_failed_to_disable_pins_try_again_later, Toast.LENGTH_LONG).show());
|
||||
PinOptOutDialog.show(requireContext(),
|
||||
() -> {
|
||||
updatePreferenceState();
|
||||
Snackbar.make(requireView(), R.string.ApplicationPreferencesActivity_pin_disabled, Snackbar.LENGTH_SHORT).setTextColor(Color.WHITE).show();
|
||||
});
|
||||
} else {
|
||||
startActivityForResult(CreateKbsPinActivity.getIntentForPinCreate(requireContext()), CreateKbsPinActivity.REQUEST_NEW_PIN);
|
||||
}
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
<string name="ApplicationPreferencesActivity_privacy_summary_screen_lock">Screen lock %1$s</string>
|
||||
<string name="ApplicationPreferencesActivity_appearance_summary">Theme %1$s, Language %2$s</string>
|
||||
<string name="ApplicationPreferencesActivity_pins_are_required_for_registration_lock">PINs are required for registration lock. To disable PINs, please first disable registration lock.</string>
|
||||
<string name="ApplicationPreferencesActivity_failed_to_disable_pins_try_again_later">Failed to disable PINs. Try again later.</string>
|
||||
<string name="ApplicationPreferencesActivity_pin_created">PIN created.</string>
|
||||
<string name="ApplicationPreferencesActivity_pin_disabled">PIN disabled.</string>
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue