Simplify PIN opt-out code.

fork-5.53.8
Greyson Parrelli 2020-07-13 09:29:17 -04:00
rodzic e27fc512b4
commit 4b961d2d8f
6 zmienionych plików z 18 dodań i 63 usunięć

Wyświetl plik

@ -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);
}
}

Wyświetl plik

@ -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());
}
}

Wyświetl plik

@ -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 -> {

Wyświetl plik

@ -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.
*/

Wyświetl plik

@ -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);
}

Wyświetl plik

@ -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>