mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-15 08:45:04 +01:00
Fix avatar caching
This commit is contained in:
parent
b3bb2d6adb
commit
a9b4846de9
@ -184,8 +184,8 @@ dependencies {
|
|||||||
// Koin AndroidX Experimental features
|
// Koin AndroidX Experimental features
|
||||||
implementation "org.koin:koin-androidx-ext:$koin_version"
|
implementation "org.koin:koin-androidx-ext:$koin_version"
|
||||||
|
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
|
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3'
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'
|
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3'
|
||||||
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
||||||
|
|
||||||
implementation "com.github.stateless4j:stateless4j:2.6.0"
|
implementation "com.github.stateless4j:stateless4j:2.6.0"
|
||||||
|
@ -23,10 +23,13 @@ package com.nextcloud.talk.newarch.di.module
|
|||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.os.Build.VERSION.SDK_INT
|
||||||
|
import android.os.Build.VERSION_CODES.P
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import coil.ImageLoader
|
import coil.ImageLoader
|
||||||
import coil.decode.GifDecoder
|
import coil.decode.GifDecoder
|
||||||
|
import coil.decode.ImageDecoderDecoder
|
||||||
import coil.decode.SvgDecoder
|
import coil.decode.SvgDecoder
|
||||||
import com.github.aurae.retrofit2.LoganSquareConverterFactory
|
import com.github.aurae.retrofit2.LoganSquareConverterFactory
|
||||||
import com.nextcloud.talk.BuildConfig
|
import com.nextcloud.talk.BuildConfig
|
||||||
@ -43,6 +46,7 @@ import com.nextcloud.talk.newarch.utils.NetworkUtils.GetProxyRunnable
|
|||||||
import com.nextcloud.talk.newarch.utils.NetworkUtils.MagicAuthenticator
|
import com.nextcloud.talk.newarch.utils.NetworkUtils.MagicAuthenticator
|
||||||
import com.nextcloud.talk.utils.LoggingUtils
|
import com.nextcloud.talk.utils.LoggingUtils
|
||||||
import com.nextcloud.talk.utils.preferences.AppPreferences
|
import com.nextcloud.talk.utils.preferences.AppPreferences
|
||||||
|
import com.nextcloud.talk.utils.singletons.AvatarStatusCodeHolder
|
||||||
import com.nextcloud.talk.utils.ssl.MagicKeyManager
|
import com.nextcloud.talk.utils.ssl.MagicKeyManager
|
||||||
import com.nextcloud.talk.utils.ssl.MagicTrustManager
|
import com.nextcloud.talk.utils.ssl.MagicTrustManager
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
@ -61,7 +65,6 @@ import java.net.CookiePolicy.ACCEPT_ALL
|
|||||||
import java.net.Proxy
|
import java.net.Proxy
|
||||||
import java.security.*
|
import java.security.*
|
||||||
import java.security.cert.CertificateException
|
import java.security.cert.CertificateException
|
||||||
import java.util.*
|
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.net.ssl.KeyManagerFactory
|
import javax.net.ssl.KeyManagerFactory
|
||||||
import javax.net.ssl.SSLContext
|
import javax.net.ssl.SSLContext
|
||||||
@ -142,6 +145,20 @@ fun createOkHttpClient(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
httpClient.addNetworkInterceptor { chain ->
|
||||||
|
var response = chain.proceed(chain.request())
|
||||||
|
|
||||||
|
if (response.request().url().encodedPath().contains("/avatar/")) {
|
||||||
|
AvatarStatusCodeHolder.getInstance().statusCode = response.code()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (response.code() == 201) {
|
||||||
|
response = response.newBuilder().code(200).build()
|
||||||
|
}
|
||||||
|
|
||||||
|
response
|
||||||
|
}
|
||||||
|
|
||||||
httpClient.addInterceptor(NetworkUtils.HeadersInterceptor())
|
httpClient.addInterceptor(NetworkUtils.HeadersInterceptor())
|
||||||
|
|
||||||
if (BuildConfig.DEBUG && !context.resources.getBoolean(R.bool.nc_is_debug)) {
|
if (BuildConfig.DEBUG && !context.resources.getBoolean(R.bool.nc_is_debug)) {
|
||||||
@ -278,7 +295,11 @@ fun createImageLoader(
|
|||||||
crossfade(true)
|
crossfade(true)
|
||||||
okHttpClient(okHttpClient)
|
okHttpClient(okHttpClient)
|
||||||
componentRegistry {
|
componentRegistry {
|
||||||
|
if (SDK_INT >= P) {
|
||||||
|
add(ImageDecoderDecoder())
|
||||||
|
} else {
|
||||||
add(GifDecoder())
|
add(GifDecoder())
|
||||||
|
}
|
||||||
add(SvgDecoder(androidApplication))
|
add(SvgDecoder(androidApplication))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,6 @@ package com.nextcloud.talk.newarch.utils
|
|||||||
|
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.preferences.AppPreferences
|
import com.nextcloud.talk.utils.preferences.AppPreferences
|
||||||
import com.nextcloud.talk.utils.singletons.AvatarStatusCodeHolder
|
|
||||||
import okhttp3.*
|
import okhttp3.*
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.InetSocketAddress
|
import java.net.InetSocketAddress
|
||||||
@ -46,11 +45,6 @@ class NetworkUtils {
|
|||||||
|
|
||||||
val response = chain.proceed(request)
|
val response = chain.proceed(request)
|
||||||
|
|
||||||
if (request.url().encodedPath().contains("/avatar/")) {
|
|
||||||
AvatarStatusCodeHolder.getInstance()
|
|
||||||
.statusCode = response.code()
|
|
||||||
}
|
|
||||||
|
|
||||||
return response
|
return response
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user