diff --git a/app/src/main/java/org/tasks/caldav/CaldavClientProvider.kt b/app/src/main/java/org/tasks/caldav/CaldavClientProvider.kt index 26338371a..644482711 100644 --- a/app/src/main/java/org/tasks/caldav/CaldavClientProvider.kt +++ b/app/src/main/java/org/tasks/caldav/CaldavClientProvider.kt @@ -15,6 +15,7 @@ import org.tasks.DebugNetworkInterceptor import org.tasks.R import org.tasks.billing.Inventory import org.tasks.data.CaldavAccount +import org.tasks.http.UserAgentInterceptor import org.tasks.preferences.Preferences import org.tasks.security.KeyStoreEncryption import java.util.concurrent.TimeUnit @@ -95,6 +96,7 @@ class CaldavClientProvider @Inject constructor( .connectTimeout(15, TimeUnit.SECONDS) .writeTimeout(30, TimeUnit.SECONDS) .readTimeout(120, TimeUnit.SECONDS) + .addNetworkInterceptor(UserAgentInterceptor) auth?.let { builder.addNetworkInterceptor(it) if (it is Authenticator) { diff --git a/app/src/main/java/org/tasks/etebase/EtebaseClientProvider.kt b/app/src/main/java/org/tasks/etebase/EtebaseClientProvider.kt index b50b01ed8..87d721ed5 100644 --- a/app/src/main/java/org/tasks/etebase/EtebaseClientProvider.kt +++ b/app/src/main/java/org/tasks/etebase/EtebaseClientProvider.kt @@ -1,28 +1,23 @@ package org.tasks.etebase import android.content.Context -import android.os.Build import at.bitfire.cert4android.CustomCertManager import com.etebase.client.Account import com.etebase.client.Client import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -import okhttp3.Interceptor import okhttp3.OkHttpClient -import okhttp3.Response import okhttp3.internal.tls.OkHostnameVerifier -import org.tasks.BuildConfig import org.tasks.DebugNetworkInterceptor import org.tasks.caldav.MemoryCookieStore import org.tasks.data.CaldavAccount import org.tasks.data.CaldavDao +import org.tasks.http.UserAgentInterceptor import org.tasks.preferences.Preferences import org.tasks.security.KeyStoreEncryption -import java.io.IOException import java.security.KeyManagementException import java.security.NoSuchAlgorithmException -import java.util.* import java.util.concurrent.TimeUnit import javax.inject.Inject import javax.net.ssl.SSLContext @@ -74,18 +69,4 @@ class EtebaseClientProvider @Inject constructor( } return builder.build() } - - private object UserAgentInterceptor : Interceptor { - private val userAgent = "${BuildConfig.APPLICATION_ID}/${BuildConfig.VERSION_NAME} (okhttp3) Android/${Build.VERSION.RELEASE}" - - @Throws(IOException::class) - override fun intercept(chain: Interceptor.Chain): Response { - val locale = Locale.getDefault() - val request = chain.request().newBuilder() - .header("User-Agent", userAgent) - .header("Accept-Language", locale.language + "-" + locale.country + ", " + locale.language + ";q=0.7, *;q=0.5") - .build() - return chain.proceed(request) - } - } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/http/UserAgentInterceptor.kt b/app/src/main/java/org/tasks/http/UserAgentInterceptor.kt new file mode 100644 index 000000000..aa909f3a3 --- /dev/null +++ b/app/src/main/java/org/tasks/http/UserAgentInterceptor.kt @@ -0,0 +1,22 @@ +package org.tasks.http + +import android.os.Build +import okhttp3.Interceptor +import okhttp3.Response +import org.tasks.BuildConfig +import java.io.IOException +import java.util.* + +object UserAgentInterceptor : Interceptor { + private val userAgent = "${BuildConfig.APPLICATION_ID}/${BuildConfig.VERSION_NAME} (okhttp3) Android/${Build.VERSION.RELEASE}" + + @Throws(IOException::class) + override fun intercept(chain: Interceptor.Chain): Response { + val locale = Locale.getDefault() + val request = chain.request().newBuilder() + .header("User-Agent", userAgent) + .header("Accept-Language", locale.language + "-" + locale.country + ", " + locale.language + ";q=0.7, *;q=0.5") + .build() + return chain.proceed(request) + } +}