That fuck shit the fascists are using
1package org.tm.archive.contacts;
2
3import android.app.AlertDialog;
4import android.content.Context;
5import android.content.DialogInterface;
6import android.content.Intent;
7
8import androidx.annotation.NonNull;
9import androidx.appcompat.app.AppCompatActivity;
10
11import com.google.android.material.dialog.MaterialAlertDialogBuilder;
12
13import org.tm.archive.R;
14import org.tm.archive.database.MessageTable;
15import org.tm.archive.database.SignalDatabase;
16import org.tm.archive.database.ThreadTable;
17import org.tm.archive.dependencies.ApplicationDependencies;
18import org.tm.archive.keyvalue.SignalStore;
19import org.tm.archive.notifications.MarkReadReceiver;
20import org.signal.core.util.concurrent.SimpleTask;
21
22import java.util.List;
23
24/**
25 * Activity which displays a dialog to confirm whether to turn off "Contact Joined Signal" notifications.
26 */
27public class TurnOffContactJoinedNotificationsActivity extends AppCompatActivity {
28
29 private final static String EXTRA_THREAD_ID = "thread_id";
30
31 public static Intent newIntent(@NonNull Context context, long threadId) {
32 Intent intent = new Intent(context, TurnOffContactJoinedNotificationsActivity.class);
33
34 intent.putExtra(EXTRA_THREAD_ID, threadId);
35
36 return intent;
37 }
38
39 @Override
40 protected void onResume() {
41 super.onResume();
42
43 new MaterialAlertDialogBuilder(this)
44 .setMessage(R.string.TurnOffContactJoinedNotificationsActivity__turn_off_contact_joined_signal)
45 .setPositiveButton(android.R.string.ok, (dialog, which) -> {
46 handlePositiveAction(dialog);
47 })
48 .setNegativeButton(android.R.string.cancel, ((dialog, which) -> {
49 dialog.dismiss();
50 }))
51 .setOnDismissListener(dialog -> finish())
52 .show();
53 }
54
55 private void handlePositiveAction(@NonNull DialogInterface dialog) {
56 SimpleTask.run(getLifecycle(), () -> {
57 ThreadTable threadTable = SignalDatabase.threads();
58
59 List<MessageTable.MarkedMessageInfo> marked = threadTable.setRead(getIntent().getLongExtra(EXTRA_THREAD_ID, -1), false);
60 MarkReadReceiver.process(marked);
61
62 SignalStore.settings().setNotifyWhenContactJoinsSignal(false);
63 ApplicationDependencies.getMessageNotifier().updateNotification(this);
64
65 return null;
66 }, unused -> {
67 dialog.dismiss();
68 });
69 }
70}