Move matrixmedia sources to the libraries.matrixmedia.* packages

The matrixmedia modules were using the `libraries.matrix.ui.media` package
(shared with the matrixui module) and `libraries.matrix.ui.media.*`
namespaces. Use `libraries.matrixmedia.api`, `libraries.matrixmedia.impl`
and `libraries.matrixmedia.test` instead, matching the module paths.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benoit Marty
2026-10-05 13:52:02 +02:00
parent 9cb68844da
commit fe8b3764e5
52 changed files with 71 additions and 64 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ plugins {
}
android {
namespace = "io.element.android.libraries.matrix.ui.media.api"
namespace = "io.element.android.libraries.matrixmedia.api"
}
dependencies {
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.api
/**
* The size in pixel of the thumbnail to generate for the avatar.
@@ -5,7 +5,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.api
import coil3.ImageLoader
import io.element.android.libraries.matrix.api.MatrixClient
@@ -5,7 +5,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.api
import android.graphics.Bitmap
import io.element.android.libraries.designsystem.components.avatar.AvatarData
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.api
import io.element.android.libraries.matrix.api.media.MediaSource
+1 -1
View File
@@ -13,7 +13,7 @@ plugins {
}
android {
namespace = "io.element.android.libraries.matrix.ui.media.impl"
namespace = "io.element.android.libraries.matrixmedia.impl"
}
setupDependencyInjection()
@@ -5,10 +5,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrixmedia.api.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
import io.element.android.libraries.matrixmedia.api.MediaRequestData
internal fun AvatarData.toMediaRequestData(): MediaRequestData {
return MediaRequestData(
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import coil3.ImageLoader
import coil3.fetch.Fetcher
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import coil3.decode.DataSource
import coil3.decode.ImageSource
@@ -17,6 +17,7 @@ import io.element.android.libraries.matrix.api.exception.isNetworkError
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.api.media.toFile
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import okio.Buffer
import okio.FileSystem
import okio.Path.Companion.toOkioPath
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import coil3.ImageLoader
import dev.zacsweers.metro.AppScope
@@ -14,6 +14,7 @@ import dev.zacsweers.metro.ContributesBinding
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrixmedia.api.ImageLoaderHolder
import io.element.android.libraries.sessionstorage.api.observer.SessionListener
import io.element.android.libraries.sessionstorage.api.observer.SessionObserver
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import android.graphics.Canvas
import android.graphics.Paint
@@ -36,6 +36,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.matrixmedia.api.InitialsAvatarBitmapGenerator
@ContributesBinding(AppScope::class)
class DefaultInitialsAvatarBitmapGenerator : InitialsAvatarBitmapGenerator {
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import android.content.Context
import android.os.Build
@@ -6,12 +6,13 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import coil3.ImageLoader
import coil3.fetch.Fetcher
import coil3.request.Options
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
import io.element.android.libraries.matrixmedia.api.MediaRequestData
internal class MediaRequestDataFetcherFactory(
private val matrixMediaLoader: MatrixMediaLoader,
@@ -6,11 +6,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import coil3.key.Keyer
import coil3.request.Options
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrixmedia.api.MediaRequestData
internal class AvatarDataKeyer : Keyer<AvatarData> {
override fun key(data: AvatarData, options: Options): String? {
@@ -5,7 +5,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import android.graphics.Bitmap
import coil3.ComponentRegistry
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import androidx.test.platform.app.InstrumentationRegistry
import coil3.ImageLoader
@@ -5,7 +5,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media
package io.element.android.libraries.matrixmedia.impl
import coil3.ImageLoader
import io.element.android.libraries.matrix.api.media.MatrixMediaLoader
+1 -1
View File
@@ -10,7 +10,7 @@ plugins {
}
android {
namespace = "io.element.android.libraries.matrix.ui.media.test"
namespace = "io.element.android.libraries.matrixmedia.test"
}
dependencies {
@@ -6,7 +6,7 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media.test
package io.element.android.libraries.matrixmedia.test
import coil3.ComponentRegistry
import coil3.ImageLoader
@@ -6,12 +6,12 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media.test
package io.element.android.libraries.matrixmedia.test
import coil3.ImageLoader
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
import io.element.android.libraries.matrixmedia.api.ImageLoaderHolder
class FakeImageLoaderHolder(
val fakeImageLoader: ImageLoader = FakeImageLoader(),
@@ -5,11 +5,11 @@
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.ui.media.test
package io.element.android.libraries.matrixmedia.test
import coil3.Bitmap
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.ui.media.InitialsAvatarBitmapGenerator
import io.element.android.libraries.matrixmedia.api.InitialsAvatarBitmapGenerator
import io.element.android.tests.testutils.lambda.lambdaError
class FakeInitialsAvatarBitmapGenerator(
@@ -28,7 +28,7 @@ import io.element.android.libraries.designsystem.preview.ElementPreview
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.ui.media.MediaRequestData
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import kotlinx.parcelize.Parcelize
@Composable
@@ -44,7 +44,7 @@ import io.element.android.libraries.designsystem.theme.components.Button
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
import io.element.android.libraries.designsystem.theme.components.TextButton
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.ui.media.MediaRequestData
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import io.element.android.libraries.mediaviewer.impl.R
import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.libraries.ui.strings.Strings
@@ -12,9 +12,9 @@ import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UniqueId
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.api.timeline.Timeline
import io.element.android.libraries.matrix.ui.media.MediaRequestData
import io.element.android.libraries.matrix.ui.media.contentvalidation.ContentValidationState
import io.element.android.libraries.matrix.ui.media.contentvalidation.ContentValidationValue
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import io.element.android.libraries.mediaviewer.api.MediaInfo
sealed interface MediaItem {
@@ -94,8 +94,8 @@ import io.element.android.libraries.designsystem.utils.hasCompactHeightWindowSiz
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarHost
import io.element.android.libraries.designsystem.utils.snackbar.rememberSnackbarHostState
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.ui.media.MediaRequestData
import io.element.android.libraries.matrix.ui.media.contentvalidation.collectMediaState
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import io.element.android.libraries.mediaviewer.api.MediaInfo
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
import io.element.android.libraries.mediaviewer.impl.details.MediaBottomSheetState
@@ -12,7 +12,7 @@ import android.graphics.Bitmap
import androidx.core.graphics.drawable.IconCompat
import coil3.ImageLoader
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.matrix.ui.media.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
import io.element.android.libraries.matrixmedia.api.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
/**
* Loads the avatars used to decorate notifications, since the notification APIs need bitmaps rather than Compose images.
@@ -23,9 +23,9 @@ import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.ui.media.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
import io.element.android.libraries.matrix.ui.media.InitialsAvatarBitmapGenerator
import io.element.android.libraries.matrix.ui.media.MediaRequestData
import io.element.android.libraries.matrixmedia.api.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
import io.element.android.libraries.matrixmedia.api.InitialsAvatarBitmapGenerator
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
import io.element.android.services.toolbox.api.sdk.BuildVersionSdkIntProvider
import timber.log.Timber
@@ -20,7 +20,7 @@ import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.ThreadId
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
import io.element.android.libraries.matrixmedia.api.ImageLoaderHolder
import io.element.android.libraries.push.api.notifications.NotificationCleaner
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
import io.element.android.libraries.push.impl.notifications.factories.NotificationCreator
@@ -27,7 +27,7 @@ import io.element.android.libraries.di.annotations.ApplicationContext
import io.element.android.libraries.matrix.api.MatrixClientProvider
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
import io.element.android.libraries.matrixmedia.api.ImageLoaderHolder
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
import io.element.android.libraries.push.api.notifications.conversations.NotificationConversationService
import io.element.android.libraries.push.impl.intent.IntentProvider
@@ -19,10 +19,10 @@ import io.element.android.libraries.matrix.api.media.MediaSource
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_TIMESTAMP
import io.element.android.libraries.matrix.ui.components.aMatrixUser
import io.element.android.libraries.matrix.ui.media.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
import io.element.android.libraries.matrix.ui.media.MediaRequestData
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoader
import io.element.android.libraries.matrix.ui.media.test.FakeInitialsAvatarBitmapGenerator
import io.element.android.libraries.matrixmedia.api.AVATAR_THUMBNAIL_SIZE_IN_PIXEL
import io.element.android.libraries.matrixmedia.api.MediaRequestData
import io.element.android.libraries.matrixmedia.test.FakeImageLoader
import io.element.android.libraries.matrixmedia.test.FakeInitialsAvatarBitmapGenerator
import io.element.android.libraries.push.impl.notifications.factories.MARK_AS_READ_ACTION_TITLE
import io.element.android.libraries.push.impl.notifications.factories.QUICK_REPLY_ACTION_TITLE
import io.element.android.libraries.push.impl.notifications.factories.aNotificationAccountParams
@@ -32,7 +32,7 @@ import io.element.android.libraries.matrix.test.FakeMatrixClient
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
import io.element.android.libraries.matrix.test.room.aRoomInfo
import io.element.android.libraries.matrix.ui.components.aMatrixUser
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoaderHolder
import io.element.android.libraries.matrixmedia.test.FakeImageLoaderHolder
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
import io.element.android.libraries.push.impl.notifications.factories.NotificationAccountParams
import io.element.android.libraries.push.impl.notifications.factories.NotificationCreator
@@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoader
import io.element.android.libraries.matrixmedia.test.FakeImageLoader
import io.element.android.libraries.push.impl.notifications.factories.aNotificationAccountParams
import io.element.android.libraries.push.impl.notifications.fake.FakeActiveNotificationsProvider
import io.element.android.libraries.push.impl.notifications.fake.FakeNotificationCreator
@@ -14,7 +14,7 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.libraries.matrix.test.A_ROOM_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoader
import io.element.android.libraries.matrixmedia.test.FakeImageLoader
import io.element.android.libraries.push.api.notifications.NotificationIdProvider
import io.element.android.libraries.push.impl.notifications.fake.FakeActiveNotificationsProvider
import io.element.android.libraries.push.impl.notifications.fake.FakeNotificationCreator
@@ -22,7 +22,7 @@ import io.element.android.libraries.matrix.test.A_ROOM_ID_2
import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.A_SESSION_ID_2
import io.element.android.libraries.matrix.test.FakeMatrixClientProvider
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoaderHolder
import io.element.android.libraries.matrixmedia.test.FakeImageLoaderHolder
import io.element.android.libraries.push.impl.notifications.factories.FakeIntentProvider
import io.element.android.libraries.push.impl.notifications.shortcut.createShortcutId
import io.element.android.libraries.push.test.notifications.push.FakeNotificationBitmapLoader
@@ -27,8 +27,8 @@ import io.element.android.libraries.matrix.test.A_SESSION_ID
import io.element.android.libraries.matrix.test.A_THREAD_ID
import io.element.android.libraries.matrix.test.core.aBuildMeta
import io.element.android.libraries.matrix.ui.components.aMatrixUser
import io.element.android.libraries.matrix.ui.media.test.FakeImageLoader
import io.element.android.libraries.matrix.ui.media.test.FakeInitialsAvatarBitmapGenerator
import io.element.android.libraries.matrixmedia.test.FakeImageLoader
import io.element.android.libraries.matrixmedia.test.FakeInitialsAvatarBitmapGenerator
import io.element.android.libraries.push.api.notifications.NotificationBitmapLoader
import io.element.android.libraries.push.impl.notifications.DefaultNotificationBitmapLoader
import io.element.android.libraries.push.impl.notifications.NotificationActionIds