mirror of
https://github.com/element-hq/element-android
synced 2024-11-28 13:38:49 +03:00
Do some cleanup
This commit is contained in:
parent
4b74c7320b
commit
1ed8ff8711
11 changed files with 26 additions and 18 deletions
|
@ -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.
|
||||||
|
|
|
@ -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)
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -36,4 +36,4 @@ internal annotation class UnauthenticatedWithCertificate
|
||||||
|
|
||||||
@Qualifier
|
@Qualifier
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
internal annotation class WithProgress
|
internal annotation class UnauthenticatedWithCertificateWithProgress
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue