That fuck shit the fascists are using
1package org.tm.archive.keyvalue;
2
3import androidx.annotation.NonNull;
4
5import java.util.Arrays;
6import java.util.List;
7
8public class UiHints extends SignalStoreValues {
9
10 private static final int NEVER_DISPLAY_PULL_TO_FILTER_TIP_THRESHOLD = 3;
11
12 private static final String HAS_SEEN_GROUP_SETTINGS_MENU_TOAST = "uihints.has_seen_group_settings_menu_toast";
13 private static final String HAS_CONFIRMED_DELETE_FOR_EVERYONE_ONCE = "uihints.has_confirmed_delete_for_everyone_once";
14 private static final String HAS_SET_OR_SKIPPED_USERNAME_CREATION = "uihints.has_set_or_skipped_username_creation";
15 private static final String NEVER_DISPLAY_PULL_TO_FILTER_TIP = "uihints.never_display_pull_to_filter_tip";
16 private static final String HAS_SEEN_SCHEDULED_MESSAGES_INFO_ONCE = "uihints.has_seen_scheduled_messages_info_once";
17 private static final String HAS_SEEN_TEXT_FORMATTING_ALERT = "uihints.text_formatting.has_seen_alert";
18 private static final String HAS_NOT_SEEN_EDIT_MESSAGE_BETA_ALERT = "uihints.edit_message.has_not_seen_beta_alert";
19 private static final String HAS_SEEN_SAFETY_NUMBER_NUX = "uihints.has_seen_safety_number_nux";
20 private static final String DECLINED_NOTIFICATION_LOGS_PROMPT = "uihints.declined_notification_logs";
21 private static final String LAST_NOTIFICATION_LOGS_PROMPT_TIME = "uihints.last_notification_logs_prompt";
22 private static final String DISMISSED_BATTERY_SAVER_PROMPT = "uihints.declined_battery_saver_prompt";
23 private static final String LAST_BATTERY_SAVER_PROMPT = "uihints.last_battery_saver_prompt";
24 private static final String LAST_CRASH_PROMPT = "uihints.last_crash_prompt";
25 private static final String HAS_COMPLETED_USERNAME_ONBOARDING = "uihints.has_completed_username_onboarding";
26
27 UiHints(@NonNull KeyValueStore store) {
28 super(store);
29 }
30
31 @Override
32 void onFirstEverAppLaunch() {
33 markHasSeenGroupSettingsMenuToast();
34 }
35
36 @Override
37 @NonNull List<String> getKeysToIncludeInBackup() {
38 return Arrays.asList(NEVER_DISPLAY_PULL_TO_FILTER_TIP, HAS_COMPLETED_USERNAME_ONBOARDING, HAS_SEEN_TEXT_FORMATTING_ALERT);
39 }
40
41 public void markHasSeenGroupSettingsMenuToast() {
42 putBoolean(HAS_SEEN_GROUP_SETTINGS_MENU_TOAST, true);
43 }
44
45 public boolean hasSeenGroupSettingsMenuToast() {
46 return getBoolean(HAS_SEEN_GROUP_SETTINGS_MENU_TOAST, false);
47 }
48
49 public void markHasSeenScheduledMessagesInfoSheet() {
50 putBoolean(HAS_SEEN_SCHEDULED_MESSAGES_INFO_ONCE, true);
51 }
52
53 public boolean hasSeenScheduledMessagesInfoSheet() {
54 return getBoolean(HAS_SEEN_SCHEDULED_MESSAGES_INFO_ONCE, false);
55 }
56
57 public void markHasConfirmedDeleteForEveryoneOnce() {
58 putBoolean(HAS_CONFIRMED_DELETE_FOR_EVERYONE_ONCE, true);
59 }
60
61 public boolean hasConfirmedDeleteForEveryoneOnce() {
62 return getBoolean(HAS_CONFIRMED_DELETE_FOR_EVERYONE_ONCE, false);
63 }
64
65 public boolean hasSetOrSkippedUsernameCreation() {
66 return getBoolean(HAS_SET_OR_SKIPPED_USERNAME_CREATION, false);
67 }
68
69 public void markHasSetOrSkippedUsernameCreation() {
70 putBoolean(HAS_SET_OR_SKIPPED_USERNAME_CREATION, true);
71 }
72
73 public void setHasCompletedUsernameOnboarding(boolean value) {
74 putBoolean(HAS_COMPLETED_USERNAME_ONBOARDING, value);
75 }
76
77 public boolean hasCompletedUsernameOnboarding() {
78 return getBoolean(HAS_COMPLETED_USERNAME_ONBOARDING, false);
79 }
80
81 public void resetNeverDisplayPullToRefreshCount() {
82 putInteger(NEVER_DISPLAY_PULL_TO_FILTER_TIP, 0);
83 }
84
85 public boolean canDisplayPullToFilterTip() {
86 return getNeverDisplayPullToFilterTip() < NEVER_DISPLAY_PULL_TO_FILTER_TIP_THRESHOLD;
87 }
88
89 public void incrementNeverDisplayPullToFilterTip() {
90 int inc = Math.min(NEVER_DISPLAY_PULL_TO_FILTER_TIP_THRESHOLD, getNeverDisplayPullToFilterTip() + 1);
91 putInteger(NEVER_DISPLAY_PULL_TO_FILTER_TIP, inc);
92 }
93
94 private int getNeverDisplayPullToFilterTip() {
95 return getInteger(NEVER_DISPLAY_PULL_TO_FILTER_TIP, 0);
96 }
97
98 public boolean hasNotSeenTextFormattingAlert() {
99 return getBoolean(HAS_SEEN_TEXT_FORMATTING_ALERT, true);
100 }
101
102 public void markHasSeenTextFormattingAlert() {
103 putBoolean(HAS_SEEN_TEXT_FORMATTING_ALERT, false);
104 }
105
106 public boolean hasNotSeenEditMessageBetaAlert() {
107 return getBoolean(HAS_NOT_SEEN_EDIT_MESSAGE_BETA_ALERT, true);
108 }
109
110 public void markHasSeenEditMessageBetaAlert() {
111 putBoolean(HAS_NOT_SEEN_EDIT_MESSAGE_BETA_ALERT, false);
112 }
113
114 public boolean hasSeenSafetyNumberUpdateNux() {
115 return getBoolean(HAS_SEEN_SAFETY_NUMBER_NUX, false);
116 }
117
118 public void markHasSeenSafetyNumberUpdateNux() {
119 putBoolean(HAS_SEEN_SAFETY_NUMBER_NUX, true);
120 }
121
122 public long getLastNotificationLogsPrompt() {
123 return getLong(LAST_NOTIFICATION_LOGS_PROMPT_TIME, 0);
124 }
125
126 public void setLastNotificationLogsPrompt(long timeMs) {
127 putLong(LAST_NOTIFICATION_LOGS_PROMPT_TIME, timeMs);
128 }
129
130 public void markDeclinedShareNotificationLogs() {
131 putBoolean(DECLINED_NOTIFICATION_LOGS_PROMPT, true);
132 }
133
134 public boolean hasDeclinedToShareNotificationLogs() {
135 return getBoolean(DECLINED_NOTIFICATION_LOGS_PROMPT, false);
136 }
137
138 public void markDismissedBatterySaverPrompt() {
139 putBoolean(DISMISSED_BATTERY_SAVER_PROMPT, true);
140 }
141
142 public boolean hasDismissedBatterySaverPrompt() {
143 return getBoolean(DISMISSED_BATTERY_SAVER_PROMPT, false);
144 }
145
146 public long getLastBatterySaverPrompt() {
147 return getLong(LAST_BATTERY_SAVER_PROMPT, 0);
148 }
149
150 public void setLastBatterySaverPrompt(long time) {
151 putLong(LAST_BATTERY_SAVER_PROMPT, time);
152 }
153
154 public void setLastCrashPrompt(long time) {
155 putLong(LAST_CRASH_PROMPT, time);
156 }
157
158 public long getLastCrashPrompt() {
159 return getLong(LAST_CRASH_PROMPT, 0);
160 }
161}