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..b92c9b5a --- /dev/null +++ b/owncloudComLibrary/src/debug/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt @@ -0,0 +1,30 @@ +/* ownCloud Android Library is available under MIT license + * Copyright (C) 2020 ownCloud GmbH. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +package com.owncloud.android.lib.common.http + +import com.facebook.stetho.okhttp3.StethoInterceptor + +object DebugInterceptorFactory { + 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..8a81b460 --- /dev/null +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/DummyInterceptor.kt @@ -0,0 +1,31 @@ +/* ownCloud Android Library is available under MIT license + * Copyright (C) 2020 ownCloud GmbH. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +package com.owncloud.android.lib.common.http + +import okhttp3.Interceptor + +class DummyInterceptor : Interceptor { + override fun intercept(chain: Interceptor.Chain) = 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..ed1dd847 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 @@ -31,6 +31,7 @@ import com.owncloud.android.lib.common.network.NetworkUtils; import okhttp3.Cookie; import okhttp3.CookieJar; import okhttp3.HttpUrl; +import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Protocol; import okhttp3.TlsVersion; @@ -58,6 +59,7 @@ public class HttpClient { private static Context sContext; private static HashMap> sCookieStore = new HashMap<>(); private static LogInterceptor sLogInterceptor; + private static Interceptor sDebugInterceptor; public static OkHttpClient getOkHttpClient() { if (sOkHttpClient == null) { @@ -111,6 +113,7 @@ public class HttpClient { CookieJar cookieJar) { return new OkHttpClient.Builder() .addNetworkInterceptor(getLogInterceptor()) + .addNetworkInterceptor(DebugInterceptorFactory.INSTANCE.getInterceptor()) .protocols(Collections.singletonList(Protocol.HTTP_1_1)) .readTimeout(HttpConstants.DEFAULT_DATA_TIMEOUT, TimeUnit.MILLISECONDS) .writeTimeout(HttpConstants.DEFAULT_DATA_TIMEOUT, TimeUnit.MILLISECONDS) 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..713bdca3 --- /dev/null +++ b/owncloudComLibrary/src/release/java/com/owncloud/android/lib/common/http/DebugInterceptorFactory.kt @@ -0,0 +1,29 @@ +/* ownCloud Android Library is available under MIT license + * Copyright (C) 2020 ownCloud GmbH. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * + */ + +package com.owncloud.android.lib.common.http + +object DebugInterceptorFactory { + fun getInterceptor() = DummyInterceptor() +} \ No newline at end of file