That fuck shit the fascists are using
1package org.tm.archive;
2
3import android.content.Context;
4
5import androidx.annotation.NonNull;
6import androidx.annotation.Nullable;
7import androidx.appcompat.app.AlertDialog;
8
9import com.google.android.material.dialog.MaterialAlertDialogBuilder;
10
11import java.util.concurrent.TimeUnit;
12
13public class MuteDialog extends AlertDialog {
14
15
16 protected MuteDialog(Context context) {
17 super(context);
18 }
19
20 protected MuteDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
21 super(context, cancelable, cancelListener);
22 }
23
24 protected MuteDialog(Context context, int theme) {
25 super(context, theme);
26 }
27
28 public static void show(final Context context, final @NonNull MuteSelectionListener listener) {
29 show(context, listener, null);
30 }
31
32 public static void show(final Context context, final @NonNull MuteSelectionListener listener, @Nullable Runnable cancelListener) {
33 AlertDialog.Builder builder = new MaterialAlertDialogBuilder(context);
34 builder.setTitle(R.string.MuteDialog_mute_notifications);
35 builder.setItems(R.array.mute_durations, (dialog, which) -> {
36 final long muteUntil;
37
38 switch (which) {
39 case 0: muteUntil = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(1); break;
40 case 1: muteUntil = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(8); break;
41 case 2: muteUntil = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(1); break;
42 case 3: muteUntil = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(7); break;
43 case 4: muteUntil = Long.MAX_VALUE; break;
44 default: muteUntil = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(1); break;
45 }
46
47 listener.onMuted(muteUntil);
48 });
49
50 if (cancelListener != null) {
51 builder.setOnCancelListener(dialog -> {
52 cancelListener.run();
53 dialog.dismiss();
54 });
55 }
56
57 builder.show();
58
59 }
60
61 public interface MuteSelectionListener {
62 public void onMuted(long until);
63 }
64
65}