From 7e507abf32f2dbce66e28dfc8f04cd5b1dbed7c1 Mon Sep 17 00:00:00 2001
From: Christian Schabesberger <chris.schabesberger@mailbox.org>
Date: Mon, 4 Oct 2021 11:08:24 +0200
Subject: [PATCH] add debug interceptor

---
 owncloudComLibrary/build.gradle                        |  1 +
 .../android/lib/common/http/DebugInterceptorFactory.kt |  9 +++++++++
 .../android/lib/common/http/DummyInterceptor.kt        | 10 ++++++++++
 .../owncloud/android/lib/common/http/HttpClient.java   |  9 +++++++++
 .../android/lib/common/http/DebugInterceptorFactory.kt |  7 +++++++
 5 files changed, 36 insertions(+)
 create mode 100644 owncloudComLibrary/src/debug/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt
 create mode 100644 owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/DummyInterceptor.kt
 create mode 100644 owncloudComLibrary/src/release/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt

diff --git a/owncloudComLibrary/build.gradle b/owncloudComLibrary/build.gradle
index 98f4a691..f862a4fd 100644
--- a/owncloudComLibrary/build.gradle
+++ b/owncloudComLibrary/build.gradle
@@ -16,6 +16,7 @@ dependencies {
 
     testImplementation 'junit:junit:4.13.2'
     testImplementation 'org.robolectric:robolectric:4.7.3'
+    debugImplementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
 }
 
 android {
diff --git a/owncloudComLibrary/src/debug/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt b/owncloudComLibrary/src/debug/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt
new file mode 100644
index 00000000..00a599b0
--- /dev/null
+++ b/owncloudComLibrary/src/debug/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt
@@ -0,0 +1,9 @@
+package com.owncloud.android.lib.common.http
+
+import com.facebook.stetho.okhttp3.StethoInterceptor
+
+class DebugInterceptorFactory {
+    companion object {
+        fun getInterceptor() = StethoInterceptor()
+    }
+}
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/DummyInterceptor.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/DummyInterceptor.kt
new file mode 100644
index 00000000..e7dfe719
--- /dev/null
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/DummyInterceptor.kt
@@ -0,0 +1,10 @@
+package com.owncloud.android.lib.common.http
+
+import okhttp3.Interceptor
+import okhttp3.Response
+
+class DummyInterceptor : Interceptor {
+    override fun intercept(chain: Interceptor.Chain): Response {
+        return chain.proceed(chain.request())
+    }
+}
\ No newline at end of file
diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java
index 046dc711..989e8209 100644
--- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java
+++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java
@@ -58,6 +58,7 @@ public class HttpClient {
     private static Context sContext;
     private static HashMap<String, List<Cookie>> sCookieStore = new HashMap<>();
     private static LogInterceptor sLogInterceptor;
+    private static DebugInterceptor sDebugInterceptor;
 
     public static OkHttpClient getOkHttpClient() {
         if (sOkHttpClient == null) {
@@ -111,6 +112,7 @@ public class HttpClient {
                                                      CookieJar cookieJar) {
         return new OkHttpClient.Builder()
                 .addNetworkInterceptor(getLogInterceptor())
+                .addNetworkInterceptor(DebugInterceptorFactory.Companion.getInterceptor())
                 .protocols(Collections.singletonList(Protocol.HTTP_1_1))
                 .readTimeout(HttpConstants.DEFAULT_DATA_TIMEOUT, TimeUnit.MILLISECONDS)
                 .writeTimeout(HttpConstants.DEFAULT_DATA_TIMEOUT, TimeUnit.MILLISECONDS)
@@ -129,6 +131,13 @@ public class HttpClient {
         return sLogInterceptor;
     }
 
+    public static DebugInterceptor getDebugInterceptor() {
+        if (sDebugInterceptor == null) {
+            sDebugInterceptor = new DebugInterceptor();
+        }
+        return sDebugInterceptor;
+    }
+
     public static List<Cookie> getCookiesFromUrl(HttpUrl httpUrl) {
         return sCookieStore.get(httpUrl.host());
     }
diff --git a/owncloudComLibrary/src/release/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt b/owncloudComLibrary/src/release/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt
new file mode 100644
index 00000000..4521247f
--- /dev/null
+++ b/owncloudComLibrary/src/release/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt
@@ -0,0 +1,7 @@
+package com.owncloud.android.lib.common.http
+
+class DebugInterceptorFactory {
+    companion object {
+        fun getInterceptor() = DummyInterceptor()
+    }
+}
\ No newline at end of file