-
Notifications
You must be signed in to change notification settings - Fork 156
/
Constants.java
321 lines (287 loc) · 17.6 KB
/
Constants.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
/*
* Copyright 2009 Andrew Shu
*
* This file is part of "reddit is fun".
*
* "reddit is fun" is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* "reddit is fun" is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with "reddit is fun". If not, see <http://www.gnu.org/licenses/>.
*/
package com.andrewshu.android.reddit.common;
import android.app.Activity;
public class Constants {
public static final boolean LOGGING = true;
public static final boolean USE_COMMENTS_CACHE = false;
public static final boolean USE_THREADS_CACHE = false;
public static final boolean USE_SUBREDDITS_CACHE = true;
// File containing the serialized variables of last subreddit viewed
public static final String FILENAME_SUBREDDIT_CACHE = "subreddit.dat";
// File containing the serialized variables of last comments viewed
public static final String FILENAME_THREAD_CACHE = "thread.dat";
// File containing a long integer System.currentTimeMillis(). Timestamp is shared among caches.
public static final String FILENAME_CACHE_INFO = "cacheinfo.dat";
public static final String[] FILENAMES_CACHE = {
FILENAME_SUBREDDIT_CACHE, FILENAME_THREAD_CACHE, FILENAME_CACHE_INFO
};
public static final long MESSAGE_CHECK_MINIMUM_INTERVAL_MILLIS = 5 * 60 * 1000; // 5 minutes
public static final String LAST_MAIL_CHECK_TIME_MILLIS_KEY = "LAST_MAIL_CHECK_TIME_MILLIS_KEY";
// 1:subreddit 2:threadId 3:commentId
// The following commented-out one is good, but tough to get right, e.g.,
// http://www.reddit.com/eorhm vs. http://www.reddit.com/prefs, mobile, store, etc.
// So, for now require the captured URLs to have /comments or /tb prefix.
// public static final String COMMENT_PATH_PATTERN_STRING
// = "(?:/r/([^/]+)/comments|/comments|/tb)?/([^/]+)(?:/?$|/[^/]+/([a-zA-Z0-9]+)?)?";
public static final String COMMENT_PATH_PATTERN_STRING
= "(?:/r/([^/]+)/comments|/comments|/tb)/([^/]+)(?:/?$|/[^/]+/([a-zA-Z0-9]+)?)?";
public static final String REDDIT_PATH_PATTERN_STRING = "(?:/r/([^/]+))?/?$";
public static final String USER_PATH_PATTERN_STRING = "/user/([^/]+)/?$";
public static final String COMMENT_KIND = "t1";
public static final String THREAD_KIND = "t3";
public static final String MESSAGE_KIND = "t4";
public static final String SUBREDDIT_KIND = "t5";
public static final String MORE_KIND = "more";
public static final int DEFAULT_THREAD_DOWNLOAD_LIMIT = 25;
public static final int DEFAULT_COMMENT_DOWNLOAD_LIMIT = 200;
public static final long DEFAULT_FRESH_DURATION = 1800000; // 30 minutes
public static final long DEFAULT_FRESH_SUBREDDIT_LIST_DURATION = 86400000; // 24 hours
// startActivityForResult request codes
public static final int ACTIVITY_PICK_SUBREDDIT = 0;
public static final int ACTIVITY_SUBMIT_LINK = 1;
// notifications
public static final int NOTIFICATION_HAVE_MAIL = 0;
// services
public static final int SERVICE_ENVELOPE = 0;
// --- Intent extras ---
// Tell PickSubredditActivity to hide the fake subreddits string
public static final String EXTRA_HIDE_FAKE_SUBREDDITS_STRING = "hideFakeSubreddits";
public static final String EXTRA_ID = "id";
// Tell CommentsListActivity to jump to a comment context (a URL. pattern match)
public static final String EXTRA_COMMENT_CONTEXT = "jumpToComment";
// Tell CommentsListActivity to show "more children"
public static final String EXTRA_MORE_CHILDREN_ID = "moreChildrenId";
public static final String EXTRA_NUM_COMMENTS = "num_comments";
public static final String EXTRA_SUBREDDIT = "subreddit";
public static final String EXTRA_THREAD_URL = "thread_url";
public static final String EXTRA_TITLE = "title";
// User-defined result codes
public static final int RESULT_LOGIN_REQUIRED = Activity.RESULT_FIRST_USER;
// Menu and dialog actions
public static final int DIALOG_LOGIN = 2;
public static final int DIALOG_LOGOUT = 3;
public static final int DIALOG_THEME = 12;
public static final int DIALOG_REPLY = 14;
public static final int DIALOG_HIDE_COMMENT = 17;
public static final int DIALOG_SHOW_COMMENT = 18;
public static final int DIALOG_SORT_BY = 20;
public static final int DIALOG_SORT_BY_NEW = 21;
public static final int DIALOG_SORT_BY_CONTROVERSIAL = 22;
public static final int DIALOG_SORT_BY_TOP = 23;
public static final int DIALOG_COMMENT_CLICK = 24;
public static final int DIALOG_MESSAGE_CLICK = 25;
public static final int DIALOG_GOTO_PARENT = 28;
public static final int DIALOG_EDIT = 29;
public static final int DIALOG_DELETE = 30;
public static final int DIALOG_COMPOSE = 31;
public static final int DIALOG_FIND = 32;
public static final int DIALOG_REPORT = 33;
public static final int DIALOG_THREAD_CLICK = 34;
public static final int DIALOG_VIEW_PROFILE = 35;
// progress dialogs
public static final int DIALOG_LOGGING_IN = 1000;
public static final int DIALOG_SUBMITTING = 1004;
public static final int DIALOG_REPLYING = 1005;
public static final int DIALOG_LOADING_REDDITS_LIST = 1006;
public static final int DIALOG_DELETING = 1008;
public static final int DIALOG_EDITING = 1009;
public static final int DIALOG_COMPOSING = 1012;
public static final int SHARE_CONTEXT_ITEM = 1013;
public static final int OPEN_IN_BROWSER_CONTEXT_ITEM = 1014;
public static final int OPEN_COMMENTS_CONTEXT_ITEM = 1015;
public static final int SAVE_CONTEXT_ITEM = 1016;
public static final int UNSAVE_CONTEXT_ITEM = 1017;
public static final int HIDE_CONTEXT_ITEM = 1018;
public static final int UNHIDE_CONTEXT_ITEM = 1019;
public static final int VIEW_SUBREDDIT_CONTEXT_ITEM = 1020;
// Special CSS for webviews to match themes
public static final String CSS_DARK = "<style>body{color:#c0c0c0;background-color:#000000}a:link{color:#ffffff}</style>";
// Colors for markdown
public static final int MARKDOWN_LINK_COLOR = 0xff2288cc;
// States for StateListDrawables
public static final int[] STATE_CHECKED = new int[]{android.R.attr.state_checked};
public static final int[] STATE_NONE = new int[0];
// Strings
public static final String NO_STRING = "no";
public static final String FRONTPAGE_STRING = "reddit front page";
public static final String HAVE_MAIL_TICKER = "reddit mail";
public static final String HAVE_MAIL_TITLE = "reddit is fun";
public static final String HAVE_MAIL_TEXT = "You have reddit mail.";
// save instance state Bundle keys
public static final String AFTER_KEY = "after";
public static final String BEFORE_KEY = "before";
public static final String DELETE_TARGET_KIND_KEY = "delete_target_kind";
public static final String EDIT_TARGET_BODY_KEY = "edit_target_body";
public static final String ID_KEY = "id";
public static final String JUMP_TO_THREAD_ID_KEY = "jump_to_thread_id";
public static final String KARMA_KEY = "karma";
public static final String LAST_AFTER_KEY = "last_after";
public static final String LAST_BEFORE_KEY = "last_before";
public static final String REPORT_TARGET_NAME_KEY = "report_target_name";
public static final String REPLY_TARGET_NAME_KEY = "reply_target_name";
public static final String SUBREDDIT_KEY = "subreddit";
public static final String THREAD_COUNT_KEY = "thread_count";
public static final String THREAD_ID_KEY = "thread_id";
public static final String THREAD_LAST_COUNT_KEY = "last_thread_count";
public static final String THREAD_TITLE_KEY = "thread_title";
public static final String USERNAME_KEY = "username";
public static final String VOTE_TARGET_THING_INFO_KEY = "vote_target_thing_info";
public static final String WHICH_INBOX_KEY = "which_inbox";
public static final String SUBMIT_KIND_LINK = "link";
public static final String SUBMIT_KIND_SELF = "self";
public static final String SUBMIT_KIND_POLL = "poll";
// Sorting things
public static final class ThreadsSort {
public static final String SORT_BY_KEY = "threads_sort_by";
public static final String SORT_BY_HOT = "hot";
public static final String SORT_BY_NEW = "new";
public static final String SORT_BY_CONTROVERSIAL = "controversial";
public static final String SORT_BY_TOP = "top";
public static final String SORT_BY_HOT_URL = "";
public static final String SORT_BY_NEW_URL = "new/";
public static final String SORT_BY_CONTROVERSIAL_URL = "controversial/";
public static final String SORT_BY_TOP_URL = "top/";
public static final String[] SORT_BY_CHOICES = {SORT_BY_HOT, SORT_BY_NEW, SORT_BY_CONTROVERSIAL, SORT_BY_TOP};
public static final String[] SORT_BY_URL_CHOICES = {SORT_BY_HOT_URL, SORT_BY_NEW_URL, SORT_BY_CONTROVERSIAL_URL, SORT_BY_TOP_URL};
public static final String SORT_BY_NEW_NEW = "new";
public static final String SORT_BY_NEW_RISING = "rising";
public static final String SORT_BY_NEW_NEW_URL = "sort=new";
public static final String SORT_BY_NEW_RISING_URL = "sort=rising";
public static final String[] SORT_BY_NEW_CHOICES = {SORT_BY_NEW_NEW, SORT_BY_NEW_RISING};
public static final String[] SORT_BY_NEW_URL_CHOICES = {SORT_BY_NEW_NEW_URL, SORT_BY_NEW_RISING_URL};
public static final String SORT_BY_CONTROVERSIAL_HOUR = "this hour";
public static final String SORT_BY_CONTROVERSIAL_DAY = "today";
public static final String SORT_BY_CONTROVERSIAL_WEEK = "this week";
public static final String SORT_BY_CONTROVERSIAL_MONTH = "this month";
public static final String SORT_BY_CONTROVERSIAL_YEAR = "this year";
public static final String SORT_BY_CONTROVERSIAL_ALL = "all time";
public static final String SORT_BY_CONTROVERSIAL_HOUR_URL = "t=hour";
public static final String SORT_BY_CONTROVERSIAL_DAY_URL = "t=day";
public static final String SORT_BY_CONTROVERSIAL_WEEK_URL = "t=week";
public static final String SORT_BY_CONTROVERSIAL_MONTH_URL = "t=month";
public static final String SORT_BY_CONTROVERSIAL_YEAR_URL = "t=year";
public static final String SORT_BY_CONTROVERSIAL_ALL_URL = "t=all";
public static final String[] SORT_BY_CONTROVERSIAL_CHOICES = {SORT_BY_CONTROVERSIAL_HOUR, SORT_BY_CONTROVERSIAL_DAY,
SORT_BY_CONTROVERSIAL_WEEK, SORT_BY_CONTROVERSIAL_MONTH, SORT_BY_CONTROVERSIAL_YEAR, SORT_BY_CONTROVERSIAL_ALL};
public static final String[] SORT_BY_CONTROVERSIAL_URL_CHOICES = {SORT_BY_CONTROVERSIAL_HOUR_URL, SORT_BY_CONTROVERSIAL_DAY_URL,
SORT_BY_CONTROVERSIAL_WEEK_URL, SORT_BY_CONTROVERSIAL_MONTH_URL, SORT_BY_CONTROVERSIAL_YEAR_URL, SORT_BY_CONTROVERSIAL_ALL_URL};
public static final String SORT_BY_TOP_HOUR = "this hour";
public static final String SORT_BY_TOP_DAY = "today";
public static final String SORT_BY_TOP_WEEK = "this week";
public static final String SORT_BY_TOP_MONTH = "this month";
public static final String SORT_BY_TOP_YEAR = "this year";
public static final String SORT_BY_TOP_ALL = "all time";
public static final String SORT_BY_TOP_HOUR_URL = "t=hour";
public static final String SORT_BY_TOP_DAY_URL = "t=day";
public static final String SORT_BY_TOP_WEEK_URL = "t=week";
public static final String SORT_BY_TOP_MONTH_URL = "t=month";
public static final String SORT_BY_TOP_YEAR_URL = "t=year";
public static final String SORT_BY_TOP_ALL_URL = "t=all";
public static final String[] SORT_BY_TOP_CHOICES = {SORT_BY_TOP_HOUR, SORT_BY_TOP_DAY,
SORT_BY_TOP_WEEK, SORT_BY_TOP_MONTH, SORT_BY_TOP_YEAR, SORT_BY_TOP_ALL};
public static final String[] SORT_BY_TOP_URL_CHOICES = {SORT_BY_TOP_HOUR_URL, SORT_BY_TOP_DAY_URL,
SORT_BY_TOP_WEEK_URL, SORT_BY_TOP_MONTH_URL, SORT_BY_TOP_YEAR_URL, SORT_BY_TOP_ALL_URL};
}
public static final class CommentsSort {
public static final String SORT_BY_KEY = "comments_sort_by";
public static final String SORT_BY_BEST = "best";
public static final String SORT_BY_HOT = "hot";
public static final String SORT_BY_NEW = "new";
public static final String SORT_BY_CONTROVERSIAL = "controversial";
public static final String SORT_BY_TOP = "top";
public static final String SORT_BY_OLD = "old";
public static final String SORT_BY_BEST_URL = "sort=confidence";
public static final String SORT_BY_HOT_URL = "sort=hot";
public static final String SORT_BY_NEW_URL = "sort=new";
public static final String SORT_BY_CONTROVERSIAL_URL = "sort=controversial";
public static final String SORT_BY_TOP_URL = "sort=top";
public static final String SORT_BY_OLD_URL = "sort=old";
public static final String[] SORT_BY_CHOICES =
{SORT_BY_BEST, SORT_BY_HOT, SORT_BY_NEW,
SORT_BY_CONTROVERSIAL, SORT_BY_TOP, SORT_BY_OLD};
public static final String[] SORT_BY_URL_CHOICES =
{SORT_BY_BEST_URL, SORT_BY_HOT_URL, SORT_BY_NEW_URL,
SORT_BY_CONTROVERSIAL_URL, SORT_BY_TOP_URL, SORT_BY_OLD_URL};
}
// JSON values
public static final String JSON_AFTER = "after";
public static final String JSON_AUTHOR = "author";
public static final String JSON_BEFORE = "before";
public static final String JSON_BODY = "body";
public static final String JSON_CHILDREN = "children";
public static final String JSON_DATA = "data";
public static final String JSON_ERRORS = "errors";
public static final String JSON_JSON = "json";
public static final String JSON_KIND = "kind";
public static final String JSON_LISTING = "Listing";
public static final String JSON_MEDIA = "media";
public static final String JSON_MEDIA_EMBED = "media_embed";
public static final String JSON_MODHASH = "modhash";
public static final String JSON_NEW = "new";
public static final String JSON_NUM_COMMENTS = "num_comments";
public static final String JSON_TITLE = "title";
public static final String JSON_SUBREDDIT = "subreddit";
public static final String JSON_REPLIES = "replies";
public static final String JSON_SELFTEXT = "selftext";
public static final String JSON_SELFTEXT_HTML = "selftext_html";
public static final String JSON_SUBJECT = "subject";
// TabSpec tags
public static final String TAB_LINK = "tab_link";
public static final String TAB_TEXT = "tab_text";
// Preference keys and values
public static final String PREF_HOMEPAGE = "homepage";
public static final String PREF_USE_EXTERNAL_BROWSER = "use_external_browser";
public static final String PREF_CONFIRM_QUIT = "confirm_quit";
public static final String PREF_SAVE_HISTORY = "save_history";
public static final String PREF_ALWAYS_SHOW_NEXT_PREVIOUS = "always_show_next_previous";
public static final String PREF_COMMENTS_SORT_BY_URL = "sort_by_url";
public static final String PREF_THEME = "theme";
public static final String PREF_THEME_LIGHT = "THEME_LIGHT";
public static final String PREF_THEME_DARK = "THEME_DARK";
public static final String PREF_TEXT_SIZE = "text_size";
public static final String PREF_TEXT_SIZE_MEDIUM = "TEXT_SIZE_MEDIUM";
public static final String PREF_TEXT_SIZE_LARGE = "TEXT_SIZE_LARGE";
public static final String PREF_TEXT_SIZE_LARGER = "TEXT_SIZE_LARGER";
public static final String PREF_TEXT_SIZE_HUGE = "TEXT_SIZE_HUGE";
public static final String PREF_SHOW_COMMENT_GUIDE_LINES = "show_comment_guide_lines";
public static final String PREF_ROTATION = "rotation";
public static final String PREF_ROTATION_UNSPECIFIED = "ROTATION_UNSPECIFIED";
public static final String PREF_ROTATION_PORTRAIT = "ROTATION_PORTRAIT";
public static final String PREF_ROTATION_LANDSCAPE = "ROTATION_LANDSCAPE";
public static final String PREF_LOAD_THUMBNAILS = "load_thumbnails";
public static final String PREF_LOAD_THUMBNAILS_ONLY_WIFI = "load_thumbnails_only_wifi";
public static final String PREF_MAIL_NOTIFICATION_STYLE = "mail_notification_style";
public static final String PREF_MAIL_NOTIFICATION_STYLE_DEFAULT = "MAIL_NOTIFICATION_STYLE_DEFAULT";
public static final String PREF_MAIL_NOTIFICATION_STYLE_BIG_ENVELOPE = "MAIL_NOTIFICATION_STYLE_BIG_ENVELOPE";
public static final String PREF_MAIL_NOTIFICATION_STYLE_OFF = "MAIL_NOTIFICATION_STYLE_OFF";
public static final String PREF_MAIL_NOTIFICATION_SERVICE = "mail_notification_service";
public static final String PREF_MAIL_NOTIFICATION_SERVICE_OFF = "MAIL_NOTIFICATION_SERVICE_OFF";
public static final String PREF_MAIL_NOTIFICATION_SERVICE_5MIN = "MAIL_NOTIFICATION_SERVICE_5MIN";
public static final String PREF_MAIL_NOTIFICATION_SERVICE_30MIN = "MAIL_NOTIFICATION_SERVICE_30MIN";
public static final String PREF_MAIL_NOTIFICATION_SERVICE_1HOUR = "MAIL_NOTIFICATION_SERVICE_1HOUR";
public static final String PREF_MAIL_NOTIFICATION_SERVICE_6HOURS = "MAIL_NOTIFICATION_SERVICE_6HOURS";
public static final String PREF_MAIL_NOTIFICATION_SERVICE_1DAY = "MAIL_NOTIFICATION_SERVICE_1DAY";
// Reddit's base URL, without trailing slash
public static final String REDDIT_BASE_URL = "http://www.reddit.com";
public static final String REDDIT_SSL_BASE_URL = "https://pay.reddit.com";
public static final String REDDIT_LOGIN_URL = "https://ssl.reddit.com/api/login";
// A short HTML file returned by reddit, so we can get the modhash
public static final String MODHASH_URL = REDDIT_BASE_URL + "/r";
}