diff --git a/ayannetworking/build.gradle b/ayannetworking/build.gradle index b9ec84e..94abcb0 100644 --- a/ayannetworking/build.gradle +++ b/ayannetworking/build.gradle @@ -8,7 +8,7 @@ android { minSdkVersion 16 targetSdkVersion 28 versionCode 1 - versionName "0.1.1" + versionName "0.2.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" diff --git a/ayannetworking/src/main/java/ir/ayantech/ayannetworking/api/AyanApi.kt b/ayannetworking/src/main/java/ir/ayantech/ayannetworking/api/AyanApi.kt index b1bbe52..20e849f 100644 --- a/ayannetworking/src/main/java/ir/ayantech/ayannetworking/api/AyanApi.kt +++ b/ayannetworking/src/main/java/ir/ayantech/ayannetworking/api/AyanApi.kt @@ -26,7 +26,6 @@ class AyanApi( private var apiInterface: ApiInterface? = null - fun aaa(defaultBaseUrl: String, timeout: Long) = (apiInterface ?: RetrofitClient.getInstance(defaultBaseUrl, timeout).create(ApiInterface::class.java).also { apiInterface = it diff --git a/ayannetworking/src/main/java/ir/ayantech/ayannetworking/networking/RetrofitClient.kt b/ayannetworking/src/main/java/ir/ayantech/ayannetworking/networking/RetrofitClient.kt index 1b0fb61..b05946b 100644 --- a/ayannetworking/src/main/java/ir/ayantech/ayannetworking/networking/RetrofitClient.kt +++ b/ayannetworking/src/main/java/ir/ayantech/ayannetworking/networking/RetrofitClient.kt @@ -1,5 +1,6 @@ package ir.ayantech.ayannetworking.networking +import android.os.Build import okhttp3.OkHttpClient import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory @@ -31,11 +32,28 @@ class RetrofitClient private constructor() { okHttpClientBuilder.readTimeout(timeout, TimeUnit.SECONDS) okHttpClientBuilder.writeTimeout(timeout, TimeUnit.SECONDS) okHttpClientBuilder.proxy(Proxy.NO_PROXY) + okHttpClientBuilder.addInterceptor { + val userAgentRequest = it.request() + .newBuilder() + .header("User-Agent", getFormattedDeviceInfo()) + .build() + it.proceed(userAgentRequest) + } return okHttpClient ?: okHttpClientBuilder.build().also { okHttpClient = it } } fun cancelCalls() { okHttpClient?.dispatcher()?.cancelAll() } + + private fun getFormattedDeviceInfo(): String { + val information = listOf( + "BuildVersion:(${Build.VERSION.RELEASE})", + "Brand:(${Build.BRAND})", + "Model:(${Build.MODEL})", + "Device:(${Build.DEVICE})" + ) + return information.joinToString(separator = " ") + } } }