Start migrating Anvil KSP to Metro

This commit is contained in:
Jorge Martín 2025-08-20 15:29:50 +02:00
parent d4d57b1e21
commit b76a71ebf5
703 changed files with 3523 additions and 2820 deletions

View file

@ -7,13 +7,13 @@
package io.element.android.libraries.textcomposer.mentions
import com.squareup.anvil.annotations.ContributesBinding
import dev.zacsweers.metro.ContributesBinding
import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache
import io.element.android.libraries.matrix.ui.messages.RoomNamesCache
import javax.inject.Inject
import dev.zacsweers.metro.Inject
private const val EVERYONE_DISPLAY_TEXT = "@room"
private const val BUBBLE_ICON = "\uD83D\uDCAC" // 💬
@ -28,7 +28,8 @@ interface MentionSpanFormatter {
* based on its MentionType and context.
*/
@ContributesBinding(RoomScope::class)
class DefaultMentionSpanFormatter @Inject constructor(
@Inject
class DefaultMentionSpanFormatter(
private val roomMemberProfilesCache: RoomMemberProfilesCache,
private val roomNamesCache: RoomNamesCache,
) : MentionSpanFormatter {

View file

@ -12,14 +12,15 @@ import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.permalink.PermalinkData
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
import javax.inject.Inject
import dev.zacsweers.metro.Inject
private const val EVERYONE_MENTION_TEXT = "@room"
/**
* Provider for [MentionSpan]s.
*/
open class MentionSpanProvider @Inject constructor(
open @Inject
class MentionSpanProvider(
private val permalinkParser: PermalinkParser,
private val mentionSpanFormatter: MentionSpanFormatter,
private val mentionSpanTheme: MentionSpanTheme,

View file

@ -38,7 +38,7 @@ import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.theme.messageFromMeBackground
import io.element.android.libraries.designsystem.theme.messageFromOtherBackground
import io.element.android.libraries.di.SessionScope
import io.element.android.libraries.di.SingleIn
import dev.zacsweers.metro.SingleIn
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomAlias
import io.element.android.libraries.matrix.api.core.UserId
@ -46,7 +46,7 @@ import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
import io.element.android.libraries.matrix.api.permalink.PermalinkData
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
import kotlinx.collections.immutable.persistentListOf
import javax.inject.Inject
import dev.zacsweers.metro.Inject
/**
* Theme used for mention spans.

View file

@ -12,12 +12,12 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.staticCompositionLocalOf
import com.squareup.anvil.annotations.ContributesBinding
import dev.zacsweers.metro.ContributesBinding
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.di.RoomScope
import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache
import io.element.android.libraries.matrix.ui.messages.RoomNamesCache
import javax.inject.Inject
import dev.zacsweers.metro.Inject
interface MentionSpanUpdater {
fun updateMentionSpans(text: CharSequence): CharSequence
@ -27,7 +27,8 @@ interface MentionSpanUpdater {
}
@ContributesBinding(RoomScope::class)
class DefaultMentionSpanUpdater @Inject constructor(
@Inject
class DefaultMentionSpanUpdater(
private val formatter: MentionSpanFormatter,
private val theme: MentionSpanTheme,
private val roomMemberProfilesCache: RoomMemberProfilesCache,