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