That fuck shit the fascists are using
at master 65 lines 2.2 kB view raw
1package org.tm.archive.lock; 2 3import androidx.annotation.StringRes; 4 5import org.signal.core.util.logging.Log; 6import org.tm.archive.R; 7 8import java.util.HashMap; 9import java.util.Map; 10import java.util.NavigableSet; 11import java.util.TreeSet; 12import java.util.concurrent.TimeUnit; 13 14/** 15 * Reminder intervals for Signal PINs. 16 */ 17public class SignalPinReminders { 18 19 private static final String TAG = Log.tag(SignalPinReminders.class); 20 21 private static final long ONE_DAY = TimeUnit.DAYS.toMillis(1); 22 private static final long THREE_DAYS = TimeUnit.DAYS.toMillis(3); 23 private static final long ONE_WEEK = TimeUnit.DAYS.toMillis(7); 24 private static final long TWO_WEEKS = TimeUnit.DAYS.toMillis(14); 25 private static final long FOUR_WEEKS = TimeUnit.DAYS.toMillis(28); 26 27 private static final NavigableSet<Long> INTERVALS = new TreeSet<Long>() {{ 28 add(ONE_DAY); 29 add(THREE_DAYS); 30 add(ONE_WEEK); 31 add(TWO_WEEKS); 32 add(FOUR_WEEKS); 33 }}; 34 35 private static final Map<Long, Integer> STRINGS = new HashMap<Long, Integer>() {{ 36 put(ONE_DAY, R.string.SignalPinReminders_well_remind_you_again_tomorrow); 37 put(THREE_DAYS, R.string.SignalPinReminders_well_remind_you_again_in_a_few_days); 38 put(ONE_WEEK, R.string.SignalPinReminders_well_remind_you_again_in_a_week); 39 put(TWO_WEEKS, R.string.SignalPinReminders_well_remind_you_again_in_a_couple_weeks); 40 put(FOUR_WEEKS, R.string.SignalPinReminders_well_remind_you_again_in_a_month); 41 }}; 42 43 public static final long INITIAL_INTERVAL = INTERVALS.first(); 44 45 public static long getNextInterval(long currentInterval) { 46 Long next = INTERVALS.higher(currentInterval); 47 return next != null ? next : INTERVALS.last(); 48 } 49 50 public static long getPreviousInterval(long currentInterval) { 51 Long previous = INTERVALS.lower(currentInterval); 52 return previous != null ? previous : INTERVALS.first(); 53 } 54 55 public static @StringRes int getReminderString(long interval) { 56 Integer stringRes = STRINGS.get(interval); 57 58 if (stringRes != null) { 59 return stringRes; 60 } else { 61 Log.w(TAG, "Couldn't find a string for interval " + interval); 62 return R.string.SignalPinReminders_well_remind_you_again_later; 63 } 64 } 65}