BearND has uploaded a new change for review.

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

Change subject: Developer preference for Retrofit log level
......................................................................

Developer preference for Retrofit log level

Now you can change the log level without having to change code.
After you've changed the log level for Retrofit in the Developer settings
and restarted the app, requests and responses will be logged with the given
LogLevel.

See retrofit.RestAdapter.LogLevel for details about the different settings.

Change-Id: I546f1cca8b4c2ce75e4a550280fa3ad9fc09bbc9
---
M app/src/main/java/org/wikipedia/server/mwapi/MwPageEndpointsCache.java
M app/src/main/java/org/wikipedia/server/restbase/RbPageEndpointsCache.java
M app/src/main/java/org/wikipedia/settings/Prefs.java
M app/src/main/res/values/dev_settings_strings.xml
M app/src/main/res/values/preference_keys.xml
A app/src/main/res/values/preference_values.xml
M app/src/main/res/xml/developer_preferences.xml
7 files changed, 52 insertions(+), 5 deletions(-)


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

diff --git 
a/app/src/main/java/org/wikipedia/server/mwapi/MwPageEndpointsCache.java 
b/app/src/main/java/org/wikipedia/server/mwapi/MwPageEndpointsCache.java
index c7143c8..c5a2cf4 100644
--- a/app/src/main/java/org/wikipedia/server/mwapi/MwPageEndpointsCache.java
+++ b/app/src/main/java/org/wikipedia/server/mwapi/MwPageEndpointsCache.java
@@ -3,6 +3,7 @@
 import org.wikipedia.OkHttpConnectionFactory;
 import org.wikipedia.Site;
 import org.wikipedia.WikipediaApp;
+import org.wikipedia.settings.Prefs;
 
 import com.google.gson.GsonBuilder;
 
@@ -37,7 +38,7 @@
         final String domain = site.getApiDomain();
         final WikipediaApp app = WikipediaApp.getInstance();
         RestAdapter restAdapter = new RestAdapter.Builder()
-//                .setLogLevel(RestAdapter.LogLevel.FULL)
+                .setLogLevel(Prefs.getRetrofitLogLevel())
 
                 .setClient(new 
OkClient(OkHttpConnectionFactory.createClient(app)))
 
diff --git 
a/app/src/main/java/org/wikipedia/server/restbase/RbPageEndpointsCache.java 
b/app/src/main/java/org/wikipedia/server/restbase/RbPageEndpointsCache.java
index f4a1572..2cd6d3a 100644
--- a/app/src/main/java/org/wikipedia/server/restbase/RbPageEndpointsCache.java
+++ b/app/src/main/java/org/wikipedia/server/restbase/RbPageEndpointsCache.java
@@ -38,7 +38,7 @@
         final String domain = site.getApiDomain();
         final WikipediaApp app = WikipediaApp.getInstance();
         RestAdapter restAdapter = new RestAdapter.Builder()
-                .setLogLevel(RestAdapter.LogLevel.FULL)
+                .setLogLevel(Prefs.getRetrofitLogLevel())
 
                 .setClient(new 
OkClient(OkHttpConnectionFactory.createClient(app)))
 
diff --git a/app/src/main/java/org/wikipedia/settings/Prefs.java 
b/app/src/main/java/org/wikipedia/settings/Prefs.java
index 853e409..4523b9b 100644
--- a/app/src/main/java/org/wikipedia/settings/Prefs.java
+++ b/app/src/main/java/org/wikipedia/settings/Prefs.java
@@ -1,14 +1,16 @@
 package org.wikipedia.settings;
 
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-
 import org.wikipedia.R;
 import org.wikipedia.WikipediaApp;
 import org.wikipedia.data.GsonMarshaller;
 import org.wikipedia.data.TabUnmarshaller;
 import org.wikipedia.page.tabs.Tab;
 import org.wikipedia.theme.Theme;
+
+import retrofit.RestAdapter;
+
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
 
 import java.util.Collections;
 import java.util.List;
@@ -240,6 +242,26 @@
         setBoolean(R.string.preference_key_exp_json_page_load, enabled);
     }
 
+    public static RestAdapter.LogLevel getRetrofitLogLevel() {
+        String prefValue = 
getString(R.string.preference_key_retrofit_log_level, null);
+        if (prefValue == null) {
+            return RestAdapter.LogLevel.NONE;
+        }
+        switch (prefValue) {
+            case "BASIC":
+                return RestAdapter.LogLevel.BASIC;
+            case "HEADERS":
+                return RestAdapter.LogLevel.HEADERS;
+            case "HEADERS_AND_ARGS":
+                return RestAdapter.LogLevel.HEADERS_AND_ARGS;
+            case "FULL":
+                return RestAdapter.LogLevel.FULL;
+            case "NONE":
+            default:
+                return RestAdapter.LogLevel.NONE;
+        }
+    }
+
     public static long getLastRunTime(@NonNull String task) {
         return getLong(getLastRunTimeKey(task), 0);
     }
diff --git a/app/src/main/res/values/dev_settings_strings.xml 
b/app/src/main/res/values/dev_settings_strings.xml
index a86d333..d928029 100644
--- a/app/src/main/res/values/dev_settings_strings.xml
+++ b/app/src/main/res/values/dev_settings_strings.xml
@@ -8,6 +8,8 @@
     <string name="preferences_developer_misc_heading">Miscellaneous</string>
     <string name="preferences_developer_onboarding_heading">Onboarding</string>
     <string name="preferences_developer_feature_testing_heading">A/B feature 
testing</string>
+    <string name="preferences_developer_logging_heading">Logging</string>
+    <string name="preferences_developer_retrofit_log_level">Retrofit Log Level 
(restart required)</string>
     <string name="preferences_developer_crash_key">crash</string>
     <string name="preferences_developer_crash_title">Crash</string>
     <string name="preferences_developer_crash_summary">Tap here to crash the 
app</string>
diff --git a/app/src/main/res/values/preference_keys.xml 
b/app/src/main/res/values/preference_keys.xml
index b9d8ecb..5e4a63b 100644
--- a/app/src/main/res/values/preference_keys.xml
+++ b/app/src/main/res/values/preference_keys.xml
@@ -23,6 +23,7 @@
     <string name="preference_key_show_images">showImages</string>
     <string name="preference_key_exp_html_page_load">expHtmlPageLoad</string>
     <string name="preference_key_exp_json_page_load">expJsonPageLoad</string>
+    <string name="preference_key_retrofit_log_level">retrofitLog</string>
     <string 
name="preference_key_daily_event_time_task_name">dailyEventTask</string>
     <string name="preference_key_login_username">username</string>
     <string name="preference_key_login_password">password</string>
diff --git a/app/src/main/res/values/preference_values.xml 
b/app/src/main/res/values/preference_values.xml
new file mode 100644
index 0000000..20487fd
--- /dev/null
+++ b/app/src/main/res/values/preference_values.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string-array name="preference_values_retrofit_log">
+        <item>NONE</item>
+        <item>BASIC</item>
+        <item>HEADERS</item>
+        <item>HEADERS_AND_ARGS</item>
+        <item>FULL</item>
+    </string-array>
+</resources>
\ No newline at end of file
diff --git a/app/src/main/res/xml/developer_preferences.xml 
b/app/src/main/res/xml/developer_preferences.xml
index 2e16b43..3fd35f3 100644
--- a/app/src/main/res/xml/developer_preferences.xml
+++ b/app/src/main/res/xml/developer_preferences.xml
@@ -39,6 +39,17 @@
 
     </PreferenceCategory>
 
+    <PreferenceCategory 
android:title="@string/preferences_developer_logging_heading">
+
+        <ListPreference
+            android:key="@string/preference_key_retrofit_log_level"
+            android:title="@string/preferences_developer_retrofit_log_level"
+            android:entries="@array/preference_values_retrofit_log"
+            android:entryValues="@array/preference_values_retrofit_log"
+            android:summary="%s" />
+
+    </PreferenceCategory>
+
     <PreferenceCategory 
android:title="@string/preferences_developer_misc_heading">
 
         <!--suppress AndroidUnknownAttribute -->

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I546f1cca8b4c2ce75e4a550280fa3ad9fc09bbc9
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: BearND <bsitzm...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to