That fuck shit the fascists are using
1package org.tm.archive.pin;
2
3import android.content.Context;
4import android.view.View;
5import android.widget.ProgressBar;
6import android.widget.Toast;
7
8import androidx.annotation.NonNull;
9import androidx.appcompat.app.AlertDialog;
10
11import com.google.android.material.dialog.MaterialAlertDialogBuilder;
12
13import org.signal.core.util.concurrent.SignalExecutors;
14import org.signal.core.util.logging.Log;
15import org.tm.archive.R;
16import org.signal.core.util.concurrent.SimpleTask;
17
18import java.io.IOException;
19import java.util.Objects;
20
21public final class RegistrationLockV2Dialog {
22
23 private static final String TAG = Log.tag(RegistrationLockV2Dialog.class);
24
25 private RegistrationLockV2Dialog() {}
26
27 public static void showEnableDialog(@NonNull Context context, @NonNull Runnable onDismiss) {
28 AlertDialog dialog = new MaterialAlertDialogBuilder(context)
29 .setTitle(R.string.RegistrationLockV2Dialog_turn_on_registration_lock)
30 .setView(R.layout.registration_lock_v2_dialog)
31 .setMessage(R.string.RegistrationLockV2Dialog_if_you_forget_your_signal_pin_when_registering_again)
32 .setNegativeButton(android.R.string.cancel, null)
33 .setPositiveButton(R.string.RegistrationLockV2Dialog_turn_on, null)
34 .setOnDismissListener(d -> {
35 onDismiss.run();
36 })
37 .create();
38 dialog.setOnShowListener(d -> {
39 ProgressBar progress = Objects.requireNonNull(dialog.findViewById(R.id.reglockv2_dialog_progress));
40 View positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
41
42 positiveButton.setOnClickListener(v -> {
43 progress.setIndeterminate(true);
44 progress.setVisibility(View.VISIBLE);
45
46 SimpleTask.run(SignalExecutors.UNBOUNDED, () -> {
47 try {
48 SvrRepository.enableRegistrationLockForUserWithPin();
49 Log.i(TAG, "Successfully enabled registration lock.");
50 return true;
51 } catch (IOException e) {
52 Log.w(TAG, "Failed to enable registration lock setting.", e);
53 return false;
54 }
55 }, (success) -> {
56 progress.setVisibility(View.GONE);
57
58 if (!success) {
59 Toast.makeText(context, R.string.preferences_app_protection__failed_to_enable_registration_lock, Toast.LENGTH_LONG).show();
60 }
61
62 dialog.dismiss();
63 });
64 });
65 });
66
67 dialog.show();
68 }
69
70 public static void showDisableDialog(@NonNull Context context, @NonNull Runnable onDismiss) {
71 AlertDialog dialog = new MaterialAlertDialogBuilder(context)
72 .setTitle(R.string.RegistrationLockV2Dialog_turn_off_registration_lock)
73 .setView(R.layout.registration_lock_v2_dialog)
74 .setNegativeButton(android.R.string.cancel, null)
75 .setPositiveButton(R.string.RegistrationLockV2Dialog_turn_off, null)
76 .setOnDismissListener(d -> {
77 onDismiss.run();
78 })
79 .create();
80 dialog.setOnShowListener(d -> {
81 ProgressBar progress = Objects.requireNonNull(dialog.findViewById(R.id.reglockv2_dialog_progress));
82 View positiveButton = dialog.getButton(AlertDialog.BUTTON_POSITIVE);
83
84 positiveButton.setOnClickListener(v -> {
85 progress.setIndeterminate(true);
86 progress.setVisibility(View.VISIBLE);
87
88 SimpleTask.run(SignalExecutors.UNBOUNDED, () -> {
89 try {
90 SvrRepository.disableRegistrationLockForUserWithPin();
91 Log.i(TAG, "Successfully disabled registration lock.");
92 return true;
93 } catch (IOException e) {
94 Log.w(TAG, "Failed to disable registration lock.", e);
95 return false;
96 }
97 }, (success) -> {
98 progress.setVisibility(View.GONE);
99
100 if (!success) {
101 Toast.makeText(context, R.string.preferences_app_protection__failed_to_disable_registration_lock, Toast.LENGTH_LONG).show();
102 }
103
104 dialog.dismiss();
105 });
106 });
107 });
108
109 dialog.show();
110 }
111}