Do some cleanup

This commit is contained in:
Benoit Marty 2020-06-30 19:06:48 +02:00
parent 4b74c7320b
commit 1ed8ff8711
11 changed files with 26 additions and 18 deletions

View file

@ -28,6 +28,7 @@ import im.vector.matrix.android.api.session.call.CallSignalingService
import im.vector.matrix.android.api.session.content.ContentUploadStateTracker import im.vector.matrix.android.api.session.content.ContentUploadStateTracker
import im.vector.matrix.android.api.session.content.ContentUrlResolver import im.vector.matrix.android.api.session.content.ContentUrlResolver
import im.vector.matrix.android.api.session.crypto.CryptoService import im.vector.matrix.android.api.session.crypto.CryptoService
import im.vector.matrix.android.api.session.file.ContentDownloadStateTracker
import im.vector.matrix.android.api.session.file.FileService import im.vector.matrix.android.api.session.file.FileService
import im.vector.matrix.android.api.session.group.GroupService import im.vector.matrix.android.api.session.group.GroupService
import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilitiesService import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilitiesService
@ -46,7 +47,6 @@ import im.vector.matrix.android.api.session.terms.TermsService
import im.vector.matrix.android.api.session.typing.TypingUsersTracker import im.vector.matrix.android.api.session.typing.TypingUsersTracker
import im.vector.matrix.android.api.session.user.UserService import im.vector.matrix.android.api.session.user.UserService
import im.vector.matrix.android.api.session.widgets.WidgetService import im.vector.matrix.android.api.session.widgets.WidgetService
import im.vector.matrix.android.internal.session.download.ContentDownloadStateTracker
/** /**
* This interface defines interactions with a session. * This interface defines interactions with a session.

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package im.vector.matrix.android.internal.session.download package im.vector.matrix.android.api.session.file
interface ContentDownloadStateTracker { interface ContentDownloadStateTracker {
fun track(key: String, updateListener: UpdateListener) fun track(key: String, updateListener: UpdateListener)

View file

@ -32,10 +32,12 @@ interface FileService {
* Download file in external storage * Download file in external storage
*/ */
TO_EXPORT, TO_EXPORT,
/** /**
* Download file in cache * Download file in cache
*/ */
FOR_INTERNAL_USE, FOR_INTERNAL_USE,
/** /**
* Download file in file provider path * Download file in file provider path
*/ */

View file

@ -36,4 +36,4 @@ internal annotation class UnauthenticatedWithCertificate
@Qualifier @Qualifier
@Retention(AnnotationRetention.RUNTIME) @Retention(AnnotationRetention.RUNTIME)
internal annotation class WithProgress internal annotation class UnauthenticatedWithCertificateWithProgress

View file

@ -32,7 +32,8 @@ import im.vector.matrix.android.internal.crypto.attachments.MXEncryptedAttachmen
import im.vector.matrix.android.internal.di.CacheDirectory import im.vector.matrix.android.internal.di.CacheDirectory
import im.vector.matrix.android.internal.di.ExternalFilesDirectory import im.vector.matrix.android.internal.di.ExternalFilesDirectory
import im.vector.matrix.android.internal.di.SessionDownloadsDirectory import im.vector.matrix.android.internal.di.SessionDownloadsDirectory
import im.vector.matrix.android.internal.di.WithProgress import im.vector.matrix.android.internal.di.UnauthenticatedWithCertificateWithProgress
import im.vector.matrix.android.internal.session.download.DownloadProgressInterceptor.Companion.DOWNLOAD_PROGRESS_INTERCEPTOR_HEADER
import im.vector.matrix.android.internal.task.TaskExecutor import im.vector.matrix.android.internal.task.TaskExecutor
import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers
import im.vector.matrix.android.internal.util.toCancelable import im.vector.matrix.android.internal.util.toCancelable
@ -60,7 +61,7 @@ internal class DefaultFileService @Inject constructor(
@SessionDownloadsDirectory @SessionDownloadsDirectory
private val sessionCacheDirectory: File, private val sessionCacheDirectory: File,
private val contentUrlResolver: ContentUrlResolver, private val contentUrlResolver: ContentUrlResolver,
@WithProgress @UnauthenticatedWithCertificateWithProgress
private val okHttpClient: OkHttpClient, private val okHttpClient: OkHttpClient,
private val coroutineDispatchers: MatrixCoroutineDispatchers, private val coroutineDispatchers: MatrixCoroutineDispatchers,
private val taskExecutor: TaskExecutor private val taskExecutor: TaskExecutor
@ -122,7 +123,7 @@ internal class DefaultFileService @Inject constructor(
val request = Request.Builder() val request = Request.Builder()
.url(resolvedUrl) .url(resolvedUrl)
.header("matrix-sdk:mxc_URL", url) .header(DOWNLOAD_PROGRESS_INTERCEPTOR_HEADER, url)
.build() .build()
val response = try { val response = try {

View file

@ -32,6 +32,7 @@ import im.vector.matrix.android.api.session.call.CallSignalingService
import im.vector.matrix.android.api.session.content.ContentUploadStateTracker import im.vector.matrix.android.api.session.content.ContentUploadStateTracker
import im.vector.matrix.android.api.session.content.ContentUrlResolver import im.vector.matrix.android.api.session.content.ContentUrlResolver
import im.vector.matrix.android.api.session.crypto.CryptoService import im.vector.matrix.android.api.session.crypto.CryptoService
import im.vector.matrix.android.api.session.file.ContentDownloadStateTracker
import im.vector.matrix.android.api.session.file.FileService import im.vector.matrix.android.api.session.file.FileService
import im.vector.matrix.android.api.session.group.GroupService import im.vector.matrix.android.api.session.group.GroupService
import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilitiesService import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilitiesService
@ -53,7 +54,6 @@ import im.vector.matrix.android.internal.auth.SessionParamsStore
import im.vector.matrix.android.internal.crypto.DefaultCryptoService import im.vector.matrix.android.internal.crypto.DefaultCryptoService
import im.vector.matrix.android.internal.di.SessionId import im.vector.matrix.android.internal.di.SessionId
import im.vector.matrix.android.internal.di.WorkManagerProvider import im.vector.matrix.android.internal.di.WorkManagerProvider
import im.vector.matrix.android.internal.session.download.ContentDownloadStateTracker
import im.vector.matrix.android.internal.session.identity.DefaultIdentityService import im.vector.matrix.android.internal.session.identity.DefaultIdentityService
import im.vector.matrix.android.internal.session.room.timeline.TimelineEventDecryptor import im.vector.matrix.android.internal.session.room.timeline.TimelineEventDecryptor
import im.vector.matrix.android.internal.session.sync.SyncTokenStore import im.vector.matrix.android.internal.session.sync.SyncTokenStore

View file

@ -49,9 +49,9 @@ import im.vector.matrix.android.internal.di.SessionFilesDirectory
import im.vector.matrix.android.internal.di.SessionId import im.vector.matrix.android.internal.di.SessionId
import im.vector.matrix.android.internal.di.Unauthenticated import im.vector.matrix.android.internal.di.Unauthenticated
import im.vector.matrix.android.internal.di.UnauthenticatedWithCertificate import im.vector.matrix.android.internal.di.UnauthenticatedWithCertificate
import im.vector.matrix.android.internal.di.UnauthenticatedWithCertificateWithProgress
import im.vector.matrix.android.internal.di.UserId import im.vector.matrix.android.internal.di.UserId
import im.vector.matrix.android.internal.di.UserMd5 import im.vector.matrix.android.internal.di.UserMd5
import im.vector.matrix.android.internal.di.WithProgress
import im.vector.matrix.android.internal.eventbus.EventBusTimberLogger import im.vector.matrix.android.internal.eventbus.EventBusTimberLogger
import im.vector.matrix.android.internal.network.DefaultNetworkConnectivityChecker import im.vector.matrix.android.internal.network.DefaultNetworkConnectivityChecker
import im.vector.matrix.android.internal.network.FallbackNetworkCallbackStrategy import im.vector.matrix.android.internal.network.FallbackNetworkCallbackStrategy
@ -222,7 +222,7 @@ internal abstract class SessionModule {
@JvmStatic @JvmStatic
@Provides @Provides
@SessionScope @SessionScope
@WithProgress @UnauthenticatedWithCertificateWithProgress
fun providesProgressOkHttpClient(@UnauthenticatedWithCertificate okHttpClient: OkHttpClient, fun providesProgressOkHttpClient(@UnauthenticatedWithCertificate okHttpClient: OkHttpClient,
downloadProgressInterceptor: DownloadProgressInterceptor): OkHttpClient { downloadProgressInterceptor: DownloadProgressInterceptor): OkHttpClient {
return okHttpClient.newBuilder() return okHttpClient.newBuilder()

View file

@ -20,7 +20,7 @@ import dagger.Binds
import dagger.Module import dagger.Module
import im.vector.matrix.android.api.session.content.ContentUploadStateTracker import im.vector.matrix.android.api.session.content.ContentUploadStateTracker
import im.vector.matrix.android.api.session.content.ContentUrlResolver import im.vector.matrix.android.api.session.content.ContentUrlResolver
import im.vector.matrix.android.internal.session.download.ContentDownloadStateTracker import im.vector.matrix.android.api.session.file.ContentDownloadStateTracker
import im.vector.matrix.android.internal.session.download.DefaultContentDownloadStateTracker import im.vector.matrix.android.internal.session.download.DefaultContentDownloadStateTracker
@Module @Module

View file

@ -19,12 +19,13 @@ package im.vector.matrix.android.internal.session.download
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper
import im.vector.matrix.android.api.extensions.tryThis import im.vector.matrix.android.api.extensions.tryThis
import im.vector.matrix.android.api.session.file.ContentDownloadStateTracker
import im.vector.matrix.android.internal.session.SessionScope import im.vector.matrix.android.internal.session.SessionScope
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@SessionScope @SessionScope
class DefaultContentDownloadStateTracker @Inject constructor() : ProgressListener, ContentDownloadStateTracker { internal class DefaultContentDownloadStateTracker @Inject constructor() : ProgressListener, ContentDownloadStateTracker {
private val mainHandler = Handler(Looper.getMainLooper()) private val mainHandler = Handler(Looper.getMainLooper())
private val states = mutableMapOf<String, ContentDownloadStateTracker.State>() private val states = mutableMapOf<String, ContentDownloadStateTracker.State>()

View file

@ -20,16 +20,20 @@ import okhttp3.Interceptor
import okhttp3.Response import okhttp3.Response
import javax.inject.Inject import javax.inject.Inject
class DownloadProgressInterceptor @Inject constructor( internal class DownloadProgressInterceptor @Inject constructor(
private val downloadStateTracker: DefaultContentDownloadStateTracker private val downloadStateTracker: DefaultContentDownloadStateTracker
) : Interceptor { ) : Interceptor {
companion object {
const val DOWNLOAD_PROGRESS_INTERCEPTOR_HEADER = "matrix-sdk:mxc_URL"
}
override fun intercept(chain: Interceptor.Chain): Response { override fun intercept(chain: Interceptor.Chain): Response {
val url = chain.request().url.toUrl() val url = chain.request().url.toUrl()
val mxcURl = chain.request().header("matrix-sdk:mxc_URL") val mxcURl = chain.request().header(DOWNLOAD_PROGRESS_INTERCEPTOR_HEADER)
val request = chain.request().newBuilder() val request = chain.request().newBuilder()
.removeHeader("matrix-sdk:mxc_URL") .removeHeader(DOWNLOAD_PROGRESS_INTERCEPTOR_HEADER)
.build() .build()
val originalResponse = chain.proceed(request) val originalResponse = chain.proceed(request)

View file

@ -19,7 +19,7 @@ package im.vector.riotx.features.home.room.detail.timeline.helper
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import androidx.vectordrawable.graphics.drawable.Animatable2Compat import androidx.vectordrawable.graphics.drawable.Animatable2Compat
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
import im.vector.matrix.android.internal.session.download.ContentDownloadStateTracker import im.vector.matrix.android.api.session.file.ContentDownloadStateTracker
import im.vector.riotx.R import im.vector.riotx.R
import im.vector.riotx.core.di.ActiveSessionHolder import im.vector.riotx.core.di.ActiveSessionHolder
import im.vector.riotx.core.di.ScreenScope import im.vector.riotx.core.di.ScreenScope