BearND has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/147368

Change subject: Codestyle: Category Design (some in App)
......................................................................

Codestyle: Category Design (some in App)

Refactored constants for animations and preference keys.
Introduced new class PreferenceKeys but tried to keep the
refactoring step small and manageable.

Change-Id: I0961efffac399f7f574d5b50c0c169abab915862
---
M wikipedia/res/values/preference_keys.xml
M wikipedia/src/main/java/org/wikipedia/RemoteConfig.java
M wikipedia/src/main/java/org/wikipedia/SharedPreferenceCookieManager.java
M wikipedia/src/main/java/org/wikipedia/Utils.java
M wikipedia/src/main/java/org/wikipedia/ViewAnimations.java
M wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
M wikipedia/src/main/java/org/wikipedia/analytics/Funnel.java
M wikipedia/src/main/java/org/wikipedia/bridge/StyleFetcherTask.java
M wikipedia/src/main/java/org/wikipedia/bridge/StyleLoader.java
M wikipedia/src/main/java/org/wikipedia/editing/EditTokenStorage.java
M wikipedia/src/main/java/org/wikipedia/networking/MccMncStateHandler.java
M wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingActivity.java
M wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
A wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
M wikipedia/src/main/java/org/wikipedia/settings/SettingsActivity.java
15 files changed, 164 insertions(+), 80 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/68/147368/1

diff --git a/wikipedia/res/values/preference_keys.xml 
b/wikipedia/res/values/preference_keys.xml
index 501b7aa..34d2dcc 100644
--- a/wikipedia/res/values/preference_keys.xml
+++ b/wikipedia/res/values/preference_keys.xml
@@ -6,7 +6,7 @@
     <string name="preference_edittoken_wikis">edittoken_wikis</string>
     <string 
name="preference_edittoken_for_wiki">edittoken_for_wiki_%1$s</string>
     <string 
name="preference_key_zero_interstitial">zero_warn_when_leaving</string>
-    <string name="preference_key_zero_devmode">zero_dev_option_on</string>
+    <!--<string 
name="preference_key_zero_devmode">zero_dev_option_on</string>-->
     <string name="preference_key_remote_config">remote_config</string>
     <string 
name="preference_key_eventlogging_opt_in">eventlogging_opt_in</string>
     <string 
name="preference_key_styles_last_updated">styles_last_updated</string>
@@ -17,4 +17,4 @@
     <string name="preference_onboard">onboard</string>
     <string name="preference_text_size_multiplier">textSizeMultiplier</string>
     <string name="preference_color_theme">colorTheme</string>
-</resources>
\ No newline at end of file
+</resources>
diff --git a/wikipedia/src/main/java/org/wikipedia/RemoteConfig.java 
b/wikipedia/src/main/java/org/wikipedia/RemoteConfig.java
index 837c6a0..0ebfc12 100644
--- a/wikipedia/src/main/java/org/wikipedia/RemoteConfig.java
+++ b/wikipedia/src/main/java/org/wikipedia/RemoteConfig.java
@@ -3,6 +3,7 @@
 import android.content.SharedPreferences;
 import org.json.JSONException;
 import org.json.JSONObject;
+import org.wikipedia.settings.PrefKeys;
 
 /**
  * Store for config values that are retreived from a server,
@@ -20,7 +21,7 @@
 
     public void updateConfig(JSONObject newConfig) {
         prefs.edit()
-                .putString(WikipediaApp.PREFERENCE_REMOTE_CONFIG, 
newConfig.toString())
+                .putString(PrefKeys.getRemoteConfig(), newConfig.toString())
                 .commit();
         curConfig = newConfig;
     }
@@ -29,7 +30,7 @@
         if (curConfig == null) {
             try {
                 // If there's no pref set, just give back the empty JSON Object
-                curConfig = new 
JSONObject(prefs.getString(WikipediaApp.PREFERENCE_REMOTE_CONFIG, "{}"));
+                curConfig = new 
JSONObject(prefs.getString(PrefKeys.getRemoteConfig(), "{}"));
             } catch (JSONException e) {
                 // This shouldn't be happening, and if it does I'd like a 
crash report
                 throw new RuntimeException(e);
diff --git 
a/wikipedia/src/main/java/org/wikipedia/SharedPreferenceCookieManager.java 
b/wikipedia/src/main/java/org/wikipedia/SharedPreferenceCookieManager.java
index 1c61680..8995228 100644
--- a/wikipedia/src/main/java/org/wikipedia/SharedPreferenceCookieManager.java
+++ b/wikipedia/src/main/java/org/wikipedia/SharedPreferenceCookieManager.java
@@ -2,6 +2,7 @@
 
 import android.content.SharedPreferences;
 import android.text.TextUtils;
+import org.wikipedia.settings.PrefKeys;
 
 import java.io.IOException;
 import java.net.CookieManager;
@@ -23,9 +24,9 @@
 
     public SharedPreferenceCookieManager(SharedPreferences prefs) {
         this.prefs = prefs;
-        List<String> domains = 
makeList(prefs.getString(WikipediaApp.PREFERENCE_COOKIE_DOMAINS, ""));
+        List<String> domains = 
makeList(prefs.getString(PrefKeys.getCookieDomainsKey(), ""));
         for (String domain: domains) {
-            String key = 
String.format(WikipediaApp.PREFERENCE_COOKIES_FOR_DOMAINS, domain);
+            String key = String.format(PrefKeys.getCookiesForDomain(), domain);
             String cookies = prefs.getString(key, "");
             cookieJar.put(domain, makeCookieMap(makeList(cookies)));
         }
@@ -90,10 +91,10 @@
         }
 
         SharedPreferences.Editor editor = prefs.edit();
-        editor.putString(WikipediaApp.PREFERENCE_COOKIE_DOMAINS, 
makeString(cookieJar.keySet()));
+        editor.putString(PrefKeys.getCookieDomainsKey(), 
makeString(cookieJar.keySet()));
 
         for (String domain : domainsModified) {
-            String prefKey = 
String.format(WikipediaApp.PREFERENCE_COOKIES_FOR_DOMAINS, domain);
+            String prefKey = String.format(PrefKeys.getCookiesForDomain(), 
domain);
             editor.putString(prefKey, 
makeString(makeCookieList(cookieJar.get(domain))));
 
         }
@@ -109,10 +110,10 @@
     public void clearAllCookies() {
         SharedPreferences.Editor editor = prefs.edit();
         for (String domain: cookieJar.keySet()) {
-            String key = 
String.format(WikipediaApp.PREFERENCE_COOKIES_FOR_DOMAINS, domain);
+            String key = String.format(PrefKeys.getCookiesForDomain(), domain);
             editor.remove(key);
         }
-        editor.remove(WikipediaApp.PREFERENCE_COOKIE_DOMAINS);
+        editor.remove(PrefKeys.getCookieDomainsKey());
         editor.commit();
         cookieJar.clear();
     }
diff --git a/wikipedia/src/main/java/org/wikipedia/Utils.java 
b/wikipedia/src/main/java/org/wikipedia/Utils.java
index 65b5425..523d377 100644
--- a/wikipedia/src/main/java/org/wikipedia/Utils.java
+++ b/wikipedia/src/main/java/org/wikipedia/Utils.java
@@ -35,6 +35,7 @@
 import org.wikipedia.bridge.CommunicationBridge;
 import org.wikipedia.events.WikipediaZeroInterstitialEvent;
 import org.wikipedia.events.WikipediaZeroStateChangeEvent;
+import org.wikipedia.settings.PrefKeys;
 import org.wikipedia.zero.WikipediaZeroTask;
 
 import java.io.BufferedReader;
@@ -403,7 +404,7 @@
     public static void handleExternalLink(final Context context, final Uri 
uri) {
         if (WikipediaApp.isWikipediaZeroDevmodeOn() && 
WikipediaApp.getWikipediaZeroDisposition()) {
             SharedPreferences sharedPref = 
PreferenceManager.getDefaultSharedPreferences(context);
-            if 
(sharedPref.getBoolean(WikipediaApp.PREFERENCE_ZERO_INTERSTITIAL, true)) {
+            if (sharedPref.getBoolean(PrefKeys.getZeroInterstitial(), true)) {
                 WikipediaApp.getInstance().getBus().post(new 
WikipediaZeroInterstitialEvent(uri));
             } else {
                 Utils.visitInExternalBrowser(context, uri);
diff --git a/wikipedia/src/main/java/org/wikipedia/ViewAnimations.java 
b/wikipedia/src/main/java/org/wikipedia/ViewAnimations.java
index a10c8c9..e2dd558 100644
--- a/wikipedia/src/main/java/org/wikipedia/ViewAnimations.java
+++ b/wikipedia/src/main/java/org/wikipedia/ViewAnimations.java
@@ -1,5 +1,6 @@
 package org.wikipedia;
 
+import android.content.res.Resources;
 import android.os.Build;
 import android.view.View;
 import com.nineoldandroids.animation.Animator;
@@ -12,8 +13,15 @@
  * Contains convenient methods for performing various animations on Views.
  */
 public final class ViewAnimations {
+    private static long SHORT_ANIMATION_DURATION;
+    private static long MEDIUM_ANIMATION_DURATION;
 
     private ViewAnimations() { }
+
+    public static void init(Resources resources) {
+        SHORT_ANIMATION_DURATION = 
resources.getInteger(android.R.integer.config_shortAnimTime);
+        MEDIUM_ANIMATION_DURATION = 
resources.getInteger(android.R.integer.config_mediumAnimTime);
+    }
 
     /**
      * Crossfades two views, one of which is assumed to be currently visible
@@ -44,7 +52,7 @@
             view.setVisibility(View.VISIBLE);
             animate(view)
                     .alpha(1.0f)
-                    .setDuration(WikipediaApp.MEDIUM_ANIMATION_DURATION)
+                    .setDuration(MEDIUM_ANIMATION_DURATION)
                     .setListener(new AnimatorListenerAdapter() {
                         private boolean wasCanceled = false;
 
@@ -88,7 +96,7 @@
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
             animate(view)
                     .alpha(0f)
-                    .setDuration(WikipediaApp.MEDIUM_ANIMATION_DURATION)
+                    .setDuration(MEDIUM_ANIMATION_DURATION)
                     .setListener(new AnimatorListenerAdapter() {
                         private boolean wasCanceled = false;
 
@@ -127,7 +135,7 @@
     public static void slideIn(final View view, AnimatorListenerAdapter 
listener) {
         animate(view)
                 .translationX(0)
-                .setDuration(WikipediaApp.SHORT_ANIMATION_DURATION)
+                .setDuration(SHORT_ANIMATION_DURATION)
                 .setListener(listener != null ? listener : new 
AnimatorListenerAdapter() {
                     @Override
                     public void onAnimationStart(Animator animation) {
@@ -146,7 +154,7 @@
     public static void slideOutLeft(final View view, AnimatorListenerAdapter 
listener) {
         animate(view)
                 .translationX(-view.getWidth())
-                .setDuration(WikipediaApp.SHORT_ANIMATION_DURATION)
+                .setDuration(SHORT_ANIMATION_DURATION)
                 .setListener(listener != null ? listener : new 
AnimatorListenerAdapter() {
                     @Override
                     public void onAnimationEnd(Animator animation) {
@@ -165,7 +173,7 @@
     public static void slideOutRight(final View view, AnimatorListenerAdapter 
listener) {
         animate(view)
                 .translationX(view.getWidth())
-                .setDuration(WikipediaApp.SHORT_ANIMATION_DURATION)
+                .setDuration(SHORT_ANIMATION_DURATION)
                 .setListener(listener != null ? listener : new 
AnimatorListenerAdapter() {
                     @Override
                     public void onAnimationEnd(Animator animation) {
@@ -186,8 +194,7 @@
      */
     public static void ensureTranslationY(View view, int translation) {
         if (ViewHelper.getTranslationY(view) != translation) {
-            
animate(view).translationY(translation).setDuration(WikipediaApp.SHORT_ANIMATION_DURATION).start();
+            
animate(view).translationY(translation).setDuration(SHORT_ANIMATION_DURATION).start();
         }
     }
-
 }
diff --git a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java 
b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
index 1c050d1..17f4c7a 100644
--- a/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
+++ b/wikipedia/src/main/java/org/wikipedia/WikipediaApp.java
@@ -4,6 +4,7 @@
 import android.content.IntentFilter;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.graphics.Color;
 import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
@@ -37,6 +38,7 @@
 import org.wikipedia.pageimages.PageImagePersister;
 import org.wikipedia.savedpages.SavedPage;
 import org.wikipedia.savedpages.SavedPagePersister;
+import org.wikipedia.settings.PrefKeys;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -51,23 +53,6 @@
         resDialogCommentPrompt = R.string.acra_report_dialog_comment,
         mailTo = "[email protected]")
 public class WikipediaApp extends Application {
-    public static long SHORT_ANIMATION_DURATION;
-    public static long MEDIUM_ANIMATION_DURATION;
-
-    public static String PREFERENCE_CONTENT_LANGUAGE;
-    public static String PREFERENCE_COOKIE_DOMAINS;
-    public static String PREFERENCE_COOKIES_FOR_DOMAINS;
-    public static String PREFERENCE_EDITTOKEN_WIKIS;
-    public static String PREFERENCE_EDITTOKEN_FOR_WIKI;
-    public static String PREFERENCE_ZERO_INTERSTITIAL;
-    public static String PREFERENCE_ZERO_DEVMODE;
-    public static String PREFERENCE_REMOTE_CONFIG;
-    public static String PREFERENCE_EVENTLOGGING_ENABLED;
-    public static String PREFERENCE_STYLES_LAST_UPDATED;
-    public static String PREFERENCE_READING_APP_INSTALL_ID;
-    public static String PREFERENCE_ONBOARD;
-    public static String PREFERENCE_TEXT_SIZE_MULTIPLIER;
-    public static String PREFERENCE_COLOR_THEME;
 
     public static float SCREEN_DENSITY;
 
@@ -116,24 +101,11 @@
 
         bus = new Bus();
 
-        SHORT_ANIMATION_DURATION = 
getResources().getInteger(android.R.integer.config_shortAnimTime);
-        MEDIUM_ANIMATION_DURATION = 
getResources().getInteger(android.R.integer.config_mediumAnimTime);
-        SCREEN_DENSITY = getResources().getDisplayMetrics().density;
+        final Resources resources = getResources();
+        ViewAnimations.init(resources);
+        SCREEN_DENSITY = resources.getDisplayMetrics().density;
 
-        PREFERENCE_CONTENT_LANGUAGE = 
getResources().getString(R.string.preference_key_language);
-        PREFERENCE_COOKIE_DOMAINS = 
getString(R.string.preference_cookie_domains);
-        PREFERENCE_COOKIES_FOR_DOMAINS = 
getString(R.string.preference_cookies_for_domain);
-        PREFERENCE_EDITTOKEN_WIKIS = 
getString(R.string.preference_edittoken_wikis);
-        PREFERENCE_EDITTOKEN_FOR_WIKI = 
getString(R.string.preference_edittoken_for_wiki);
-        PREFERENCE_ZERO_INTERSTITIAL = 
getResources().getString(R.string.preference_key_zero_interstitial);
-        PREFERENCE_ZERO_DEVMODE = 
getResources().getString(R.string.preference_key_zero_devmode);
-        PREFERENCE_REMOTE_CONFIG = 
getString(R.string.preference_key_remote_config);
-        PREFERENCE_EVENTLOGGING_ENABLED = 
getString(R.string.preference_key_eventlogging_opt_in);
-        PREFERENCE_STYLES_LAST_UPDATED = 
getString(R.string.preference_key_styles_last_updated);
-        PREFERENCE_READING_APP_INSTALL_ID = 
getString(R.string.preference_reading_app_install_id);
-        PREFERENCE_ONBOARD = getString(R.string.preference_onboard);
-        PREFERENCE_TEXT_SIZE_MULTIPLIER = 
getString(R.string.preference_text_size_multiplier);
-        PREFERENCE_COLOR_THEME = getString(R.string.preference_color_theme);
+        PrefKeys.initPreferenceKeys(resources);
 
         PROTOCOL = "https"; // Move this to a preference or something later on
 
@@ -221,7 +193,7 @@
     public String getPrimaryLanguage() {
         if (primaryLanguage == null) {
             SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-            primaryLanguage = prefs.getString(PREFERENCE_CONTENT_LANGUAGE, 
null);
+            primaryLanguage = 
prefs.getString(PrefKeys.getContentLanguageKey(), null);
             if (primaryLanguage == null) {
                 // No preference set!
                 String wikiCode = 
Utils.langCodeToWikiLang(Locale.getDefault().getLanguage());
@@ -237,7 +209,7 @@
     public void setPrimaryLanguage(String language) {
         primaryLanguage = language;
         SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-        prefs.edit().putString(PREFERENCE_CONTENT_LANGUAGE, language).commit();
+        prefs.edit().putString(PrefKeys.getContentLanguageKey(), 
language).commit();
         primarySite = null;
     }
 
@@ -369,11 +341,11 @@
     private String appInstallReadActionID;
     public String getAppInstallReadActionID() {
         SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-        if (prefs.contains(PREFERENCE_READING_APP_INSTALL_ID)) {
-            appInstallReadActionID = 
prefs.getString(PREFERENCE_READING_APP_INSTALL_ID, null);
+        if (prefs.contains(PrefKeys.getReadingAppInstallId())) {
+            appInstallReadActionID = 
prefs.getString(PrefKeys.getReadingAppInstallId(), null);
         } else {
             appInstallReadActionID = UUID.randomUUID().toString();
-            prefs.edit().putString(PREFERENCE_READING_APP_INSTALL_ID, 
appInstallReadActionID).commit();
+            prefs.edit().putString(PrefKeys.getReadingAppInstallId(), 
appInstallReadActionID).commit();
         }
         Log.d("Wikipedia", "ID is" + appInstallReadActionID);
         return appInstallReadActionID;
@@ -409,7 +381,7 @@
     public int getCurrentTheme() {
         if (currentTheme == 0) {
             SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-            currentTheme = prefs.getInt(PREFERENCE_COLOR_THEME, THEME_LIGHT);
+            currentTheme = prefs.getInt(PrefKeys.getColorTheme(), THEME_LIGHT);
             if (currentTheme != THEME_LIGHT && currentTheme != THEME_DARK) {
                 currentTheme = THEME_LIGHT;
             }
@@ -428,7 +400,7 @@
         }
         currentTheme = newTheme;
         SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-        prefs.edit().putInt(PREFERENCE_COLOR_THEME, currentTheme).commit();
+        prefs.edit().putInt(PrefKeys.getColorTheme(), currentTheme).commit();
 
         //update color filter for logo icon (used in ActionBar activities)...
         adjustDrawableToTheme(getResources().getDrawable(R.drawable.search_w));
@@ -451,7 +423,7 @@
 
     public int getFontSizeMultiplier() {
         SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-        return prefs.getInt(WikipediaApp.PREFERENCE_TEXT_SIZE_MULTIPLIER, 0);
+        return prefs.getInt(PrefKeys.getTextSizeMultiplier(), 0);
     }
 
     public void setFontSizeMultiplier(int multiplier) {
@@ -461,7 +433,7 @@
             multiplier = FONT_SIZE_MULTIPLIER_MAX;
         }
         SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-        prefs.edit().putInt(WikipediaApp.PREFERENCE_TEXT_SIZE_MULTIPLIER, 
multiplier).commit();
+        prefs.edit().putInt(PrefKeys.getTextSizeMultiplier(), 
multiplier).commit();
         bus.post(new ChangeTextSizeEvent());
     }
 
@@ -472,7 +444,7 @@
      * @return Actual current size of the font.
      */
     public float getFontSize(Window window) {
-        int multiplier = 
PreferenceManager.getDefaultSharedPreferences(this).getInt(WikipediaApp.PREFERENCE_TEXT_SIZE_MULTIPLIER,
 0);
+        int multiplier = 
PreferenceManager.getDefaultSharedPreferences(this).getInt(PrefKeys.getTextSizeMultiplier(),
 0);
         return Utils.getFontSizeFromSp(window, 
getResources().getDimension(R.dimen.textSize)) * (1.0f + multiplier * 
FONT_SIZE_FACTOR);
     }
 }
diff --git a/wikipedia/src/main/java/org/wikipedia/analytics/Funnel.java 
b/wikipedia/src/main/java/org/wikipedia/analytics/Funnel.java
index d4a6e7d..e3d0246 100644
--- a/wikipedia/src/main/java/org/wikipedia/analytics/Funnel.java
+++ b/wikipedia/src/main/java/org/wikipedia/analytics/Funnel.java
@@ -9,6 +9,7 @@
 import org.wikipedia.Site;
 import org.wikipedia.Utils;
 import org.wikipedia.WikipediaApp;
+import org.wikipedia.settings.PrefKeys;
 
 public abstract class Funnel {
     private final String schemaName;
@@ -65,7 +66,7 @@
      *                depending on what they are logging.
      */
     protected void log(Site site, Object... params) {
-        if (!prefs.getBoolean(WikipediaApp.PREFERENCE_EVENTLOGGING_ENABLED, 
true)) {
+        if (!prefs.getBoolean(PrefKeys.getEventLoggingEnabled(), true)) {
             // If EL is turned off, this is a NOP
             return;
         }
diff --git a/wikipedia/src/main/java/org/wikipedia/bridge/StyleFetcherTask.java 
b/wikipedia/src/main/java/org/wikipedia/bridge/StyleFetcherTask.java
index 6ea161c..36890bd 100644
--- a/wikipedia/src/main/java/org/wikipedia/bridge/StyleFetcherTask.java
+++ b/wikipedia/src/main/java/org/wikipedia/bridge/StyleFetcherTask.java
@@ -9,6 +9,7 @@
 import org.wikipedia.Utils;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.recurring.RecurringTask;
+import org.wikipedia.settings.PrefKeys;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -76,7 +77,7 @@
             //if any of the above code throws an exception, the following 
last-updated date will not
             //be updated, so the task will be retried on the next go.
             SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(getContext());
-            
prefs.edit().putString(WikipediaApp.PREFERENCE_STYLES_LAST_UPDATED, 
Utils.formatISO8601(new Date())).commit();
+            prefs.edit().putString(PrefKeys.getStylesLastUpdated(), 
Utils.formatISO8601(new Date())).commit();
 
         } catch (FileNotFoundException e) {
             // This doesn't actually seem to happen ever?
diff --git a/wikipedia/src/main/java/org/wikipedia/bridge/StyleLoader.java 
b/wikipedia/src/main/java/org/wikipedia/bridge/StyleLoader.java
index 386677e..9e50e02 100644
--- a/wikipedia/src/main/java/org/wikipedia/bridge/StyleLoader.java
+++ b/wikipedia/src/main/java/org/wikipedia/bridge/StyleLoader.java
@@ -7,7 +7,7 @@
 import org.wikipedia.R;
 import org.wikipedia.Site;
 import org.wikipedia.Utils;
-import org.wikipedia.WikipediaApp;
+import org.wikipedia.settings.PrefKeys;
 
 import java.text.ParseException;
 import java.util.Date;
@@ -48,10 +48,10 @@
      * @return
      */
     public StyleBundle getAvailableBundle(String type, Site site) {
-        if (prefs.contains(WikipediaApp.PREFERENCE_STYLES_LAST_UPDATED)) {
+        if (prefs.contains(PrefKeys.getStylesLastUpdated())) {
             Date downloadUpdated;
             try {
-                downloadUpdated = 
Utils.parseISO8601(prefs.getString(WikipediaApp.PREFERENCE_STYLES_LAST_UPDATED, 
""));
+                downloadUpdated = 
Utils.parseISO8601(prefs.getString(PrefKeys.getStylesLastUpdated(), ""));
             } catch (ParseException e) {
                 // This does not happen
                 throw new RuntimeException(e);
diff --git 
a/wikipedia/src/main/java/org/wikipedia/editing/EditTokenStorage.java 
b/wikipedia/src/main/java/org/wikipedia/editing/EditTokenStorage.java
index 1ba5927..68d0fe7 100644
--- a/wikipedia/src/main/java/org/wikipedia/editing/EditTokenStorage.java
+++ b/wikipedia/src/main/java/org/wikipedia/editing/EditTokenStorage.java
@@ -6,7 +6,7 @@
 import android.text.TextUtils;
 import org.wikipedia.Site;
 import org.wikipedia.Utils;
-import org.wikipedia.WikipediaApp;
+import org.wikipedia.settings.PrefKeys;
 
 import java.util.Arrays;
 import java.util.HashMap;
@@ -24,9 +24,9 @@
     public EditTokenStorage(Context context) {
         this.context = context;
         this.prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        List<String> wikis = 
makeList(prefs.getString(WikipediaApp.PREFERENCE_EDITTOKEN_WIKIS, ""));
+        List<String> wikis = 
makeList(prefs.getString(PrefKeys.getEditTokenWikis(), ""));
         for (String wiki: wikis) {
-            String key = 
String.format(WikipediaApp.PREFERENCE_EDITTOKEN_FOR_WIKI, wiki);
+            String key = String.format(PrefKeys.getEditTokenForWiki(), wiki);
             tokenJar.put(wiki, prefs.getString(key, null));
         }
     }
@@ -53,10 +53,10 @@
     public void clearAllTokens() {
         SharedPreferences.Editor editor = prefs.edit();
         for (String domain: tokenJar.keySet()) {
-            String key = 
String.format(WikipediaApp.PREFERENCE_EDITTOKEN_FOR_WIKI, domain);
+            String key = String.format(PrefKeys.getEditTokenForWiki(), domain);
             editor.remove(key);
         }
-        editor.remove(WikipediaApp.PREFERENCE_EDITTOKEN_WIKIS);
+        editor.remove(PrefKeys.getEditTokenWikis());
         editor.commit();
         tokenJar.clear();
     }
@@ -64,9 +64,9 @@
     private void updatePrefs(String wiki, String token) {
         tokenJar.put(wiki, token);
         String wikisList = makeString(tokenJar.keySet());
-        String wikiKey = 
String.format(WikipediaApp.PREFERENCE_EDITTOKEN_FOR_WIKI, wiki);
+        String wikiKey = String.format(PrefKeys.getEditTokenForWiki(), wiki);
         prefs.edit()
-                .putString(WikipediaApp.PREFERENCE_EDITTOKEN_WIKIS, wikisList)
+                .putString(PrefKeys.getEditTokenWikis(), wikisList)
                 .putString(wikiKey, token)
                 .commit();
     }
diff --git 
a/wikipedia/src/main/java/org/wikipedia/networking/MccMncStateHandler.java 
b/wikipedia/src/main/java/org/wikipedia/networking/MccMncStateHandler.java
index ebc48ec..d57bdbb 100644
--- a/wikipedia/src/main/java/org/wikipedia/networking/MccMncStateHandler.java
+++ b/wikipedia/src/main/java/org/wikipedia/networking/MccMncStateHandler.java
@@ -6,6 +6,7 @@
 import org.wikipedia.Site;
 import org.wikipedia.Utils;
 import org.wikipedia.WikipediaApp;
+import org.wikipedia.settings.PrefKeys;
 
 import java.util.HashMap;
 
@@ -29,7 +30,7 @@
         }
         // Forget about it if it was already sent or user opted out of logging 
or the API server isn't a mobile Wikipedia.
         if (this.mccMncSent
-            || 
!PreferenceManager.getDefaultSharedPreferences(this.app).getBoolean(WikipediaApp.PREFERENCE_EVENTLOGGING_ENABLED,
 true)
+            || 
!PreferenceManager.getDefaultSharedPreferences(this.app).getBoolean(PrefKeys.getEventLoggingEnabled(),
 true)
             || !(site.getApiDomain().contains(".m.wikipedia.org"))) {
             return null;
         }
diff --git 
a/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingActivity.java 
b/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingActivity.java
index a6d9f1c..e1b8c97 100644
--- a/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingActivity.java
+++ b/wikipedia/src/main/java/org/wikipedia/onboarding/OnboardingActivity.java
@@ -15,6 +15,7 @@
 import org.wikipedia.analytics.LoginFunnel;
 import org.wikipedia.analytics.OnboardingFunnel;
 import org.wikipedia.login.LoginActivity;
+import org.wikipedia.settings.PrefKeys;
 
 /**
  * Onboarding screen, which shows up the first time this app is started unless 
the user is already logged in.
@@ -86,6 +87,6 @@
 
     private void markAllAboard() {
         SharedPreferences prefs = 
PreferenceManager.getDefaultSharedPreferences(this);
-        prefs.edit().putBoolean(WikipediaApp.PREFERENCE_ONBOARD, 
true).commit();
+        prefs.edit().putBoolean(PrefKeys.getOnboard(), true).commit();
     }
 }
diff --git a/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java 
b/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
index 12afe34..a101393 100644
--- a/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
+++ b/wikipedia/src/main/java/org/wikipedia/page/PageActivity.java
@@ -34,6 +34,7 @@
 import org.wikipedia.interlanguage.LangLinksActivity;
 import org.wikipedia.recurring.RecurringTasksExecutor;
 import org.wikipedia.search.SearchArticlesFragment;
+import org.wikipedia.settings.PrefKeys;
 import org.wikipedia.staticdata.MainPageNameData;
 import org.wikipedia.theme.ThemeChooserDialog;
 
@@ -165,7 +166,7 @@
      */
     private boolean showOnboarding() {
         return (getIntent() == null || 
Intent.ACTION_MAIN.equals(getIntent().getAction()))
-                && 
!PreferenceManager.getDefaultSharedPreferences(this).getBoolean(WikipediaApp.PREFERENCE_ONBOARD,
 false)
+                && 
!PreferenceManager.getDefaultSharedPreferences(this).getBoolean(PrefKeys.getOnboard(),
 false)
                 && !app.getUserInfoStorage().isLoggedIn();
     }
 
diff --git a/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java 
b/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
new file mode 100644
index 0000000..6841775
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/settings/PrefKeys.java
@@ -0,0 +1,97 @@
+package org.wikipedia.settings;
+
+import android.content.res.Resources;
+import org.wikipedia.R;
+
+/**
+ * Keys in SharedPreference file used by this App.
+ * TODO: Check with Yuvi why not just using Java constants.
+ * TODO: Check with Adam about PREFERENCE_ZERO_DEVMODE.
+ */
+public final class PrefKeys {
+    private static String PREFERENCE_CONTENT_LANGUAGE;
+    private static String PREFERENCE_COOKIE_DOMAINS;
+    private static String PREFERENCE_COOKIES_FOR_DOMAINS;
+    private static String PREFERENCE_EDITTOKEN_WIKIS;
+    private static String PREFERENCE_EDITTOKEN_FOR_WIKI;
+    private static String PREFERENCE_ZERO_INTERSTITIAL;
+//    private static String PREFERENCE_ZERO_DEVMODE;
+    private static String PREFERENCE_REMOTE_CONFIG;
+    private static String PREFERENCE_EVENTLOGGING_ENABLED;
+    private static String PREFERENCE_STYLES_LAST_UPDATED;
+    private static String PREFERENCE_READING_APP_INSTALL_ID;
+    private static String PREFERENCE_ONBOARD;
+    private static String PREFERENCE_TEXT_SIZE_MULTIPLIER;
+    private static String PREFERENCE_COLOR_THEME;
+
+    private PrefKeys() { }
+
+    public static void initPreferenceKeys(Resources resources) {
+        PREFERENCE_CONTENT_LANGUAGE = 
resources.getString(R.string.preference_key_language);
+        PREFERENCE_COOKIE_DOMAINS = 
resources.getString(R.string.preference_cookie_domains);
+        PREFERENCE_COOKIES_FOR_DOMAINS = 
resources.getString(R.string.preference_cookies_for_domain);
+        PREFERENCE_EDITTOKEN_WIKIS = 
resources.getString(R.string.preference_edittoken_wikis);
+        PREFERENCE_EDITTOKEN_FOR_WIKI = 
resources.getString(R.string.preference_edittoken_for_wiki);
+        PREFERENCE_ZERO_INTERSTITIAL = 
resources.getString(R.string.preference_key_zero_interstitial);
+//        PREFERENCE_ZERO_DEVMODE = 
resources.getString(R.string.preference_key_zero_devmode);
+        PREFERENCE_REMOTE_CONFIG = 
resources.getString(R.string.preference_key_remote_config);
+        PREFERENCE_EVENTLOGGING_ENABLED = 
resources.getString(R.string.preference_key_eventlogging_opt_in);
+        PREFERENCE_STYLES_LAST_UPDATED = 
resources.getString(R.string.preference_key_styles_last_updated);
+        PREFERENCE_READING_APP_INSTALL_ID = 
resources.getString(R.string.preference_reading_app_install_id);
+        PREFERENCE_ONBOARD = resources.getString(R.string.preference_onboard);
+        PREFERENCE_TEXT_SIZE_MULTIPLIER = 
resources.getString(R.string.preference_text_size_multiplier);
+        PREFERENCE_COLOR_THEME = 
resources.getString(R.string.preference_color_theme);
+    }
+
+    public static String getContentLanguageKey() {
+        return PREFERENCE_CONTENT_LANGUAGE;
+    }
+
+    public static String getCookieDomainsKey() {
+        return PREFERENCE_COOKIE_DOMAINS;
+    }
+
+    public static String getCookiesForDomain() {
+        return PREFERENCE_COOKIES_FOR_DOMAINS;
+    }
+
+    public static String getEditTokenWikis() {
+        return PREFERENCE_EDITTOKEN_WIKIS;
+    }
+
+    public static String getEditTokenForWiki() {
+        return PREFERENCE_EDITTOKEN_FOR_WIKI;
+    }
+
+    public static String getZeroInterstitial() {
+        return PREFERENCE_ZERO_INTERSTITIAL;
+    }
+
+    public static String getRemoteConfig() {
+        return PREFERENCE_REMOTE_CONFIG;
+    }
+
+    public static String getEventLoggingEnabled() {
+        return PREFERENCE_EVENTLOGGING_ENABLED;
+    }
+
+    public static String getStylesLastUpdated() {
+        return PREFERENCE_STYLES_LAST_UPDATED;
+    }
+
+    public static String getReadingAppInstallId() {
+        return PREFERENCE_READING_APP_INSTALL_ID;
+    }
+
+    public static String getOnboard() {
+        return PREFERENCE_ONBOARD;
+    }
+
+    public static String getTextSizeMultiplier() {
+        return PREFERENCE_TEXT_SIZE_MULTIPLIER;
+    }
+
+    public static String getColorTheme() {
+        return PREFERENCE_COLOR_THEME;
+    }
+}
diff --git 
a/wikipedia/src/main/java/org/wikipedia/settings/SettingsActivity.java 
b/wikipedia/src/main/java/org/wikipedia/settings/SettingsActivity.java
index b893537..8724119 100644
--- a/wikipedia/src/main/java/org/wikipedia/settings/SettingsActivity.java
+++ b/wikipedia/src/main/java/org/wikipedia/settings/SettingsActivity.java
@@ -45,10 +45,10 @@
 
     @Override
     public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, 
String key) {
-        if (key.equals(WikipediaApp.PREFERENCE_CONTENT_LANGUAGE)) {
-            LanguagePreference pref = (LanguagePreference) 
findPreference(WikipediaApp.PREFERENCE_CONTENT_LANGUAGE);
+        if (key.equals(PrefKeys.getContentLanguageKey())) {
+            LanguagePreference pref = (LanguagePreference) 
findPreference(PrefKeys.getContentLanguageKey());
             pref.setSummary(pref.getCurrentLanguageDisplayString());
             setResult(ACTIVITY_RESULT_LANGUAGE_CHANGED);
         }
     }
-}
\ No newline at end of file
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/147368
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0961efffac399f7f574d5b50c0c169abab915862
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to