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

@ -1,3 +1,5 @@
import extension.setupAnvil
/*
* Copyright 2022-2024 New Vector Ltd.
*
@ -13,6 +15,8 @@ android {
namespace = "io.element.android.services.appnavstate.api"
}
setupAnvil()
dependencies {
implementation(libs.coroutines.core)
implementation(libs.androidx.lifecycle.runtime)

View file

@ -7,19 +7,20 @@
package io.element.android.services.appnavstate.api
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.di.SingleIn
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.SingleIn
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.room.JoinedRoom
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import dev.zacsweers.metro.Inject
/**
* Holds the active rooms for a given session so they can be reused instead of instantiating new ones.
*/
@SingleIn(AppScope::class)
class ActiveRoomsHolder @Inject constructor() {
@Inject
class ActiveRoomsHolder {
private val rooms = ConcurrentHashMap<SessionId, MutableSet<JoinedRoom>>()
/**