That fuck shit the fascists are using
at master 111 lines 4.1 kB view raw
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}