Skip to content

Commit 08bbe3f

Browse files
committed
Some cleanup:
- Remove unnecessary `GlobalScope`. - Rename `Component` to `Graph`, `DaggerComponentOwner` to `DependencyInjectionGraphOwner`. - Rename component builders to factories, where necessary.
1 parent 6a05e1b commit 08bbe3f

File tree

20 files changed

+99
-127
lines changed

20 files changed

+99
-127
lines changed

app/src/main/kotlin/io/element/android/x/ElementXApplication.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,16 @@ package io.element.android.x
99

1010
import android.app.Application
1111
import androidx.startup.AppInitializer
12-
import dev.zacsweers.metro.asContribution
12+
import dev.zacsweers.metro.createGraphFactory
1313
import io.element.android.features.cachecleaner.api.CacheCleanerInitializer
14-
import io.element.android.libraries.di.DaggerComponentOwner
15-
import io.element.android.x.di.AppComponent
16-
import io.element.android.x.di.globalGraph
14+
import io.element.android.libraries.di.DependencyInjectionGraphOwner
15+
import io.element.android.x.di.AppGraph
1716
import io.element.android.x.info.logApplicationInfo
1817
import io.element.android.x.initializer.CrashInitializer
1918
import io.element.android.x.initializer.PlatformInitializer
2019

21-
class ElementXApplication : Application(), DaggerComponentOwner {
22-
override val daggerComponent: AppComponent = globalGraph.asContribution<AppComponent.Factory>().create(this)
20+
class ElementXApplication : Application(), DependencyInjectionGraphOwner {
21+
override val graph: AppGraph = createGraphFactory<AppGraph.Factory>().create(this)
2322

2423
override fun onCreate() {
2524
super.onCreate()

app/src/main/kotlin/io/element/android/x/MainNode.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import com.bumble.appyx.core.node.ParentNode
2121
import com.bumble.appyx.core.plugin.Plugin
2222
import io.element.android.appnav.RootFlowNode
2323
import io.element.android.libraries.architecture.createNode
24-
import io.element.android.libraries.di.DaggerComponentOwner
24+
import io.element.android.libraries.di.DependencyInjectionGraphOwner
2525
import io.element.android.libraries.di.annotations.ApplicationContext
2626
import kotlinx.coroutines.launch
2727
import kotlinx.parcelize.Parcelize
@@ -38,8 +38,8 @@ class MainNode(
3838
buildContext = buildContext,
3939
plugins = plugins,
4040
),
41-
DaggerComponentOwner {
42-
override val daggerComponent = (context as DaggerComponentOwner).daggerComponent
41+
DependencyInjectionGraphOwner {
42+
override val graph = (context as DependencyInjectionGraphOwner).graph
4343

4444
override fun resolve(navTarget: RootNavTarget, buildContext: BuildContext): Node {
4545
return createNode<RootFlowNode>(buildContext = buildContext)

app/src/main/kotlin/io/element/android/x/di/AppComponent.kt renamed to app/src/main/kotlin/io/element/android/x/di/AppGraph.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,20 @@ package io.element.android.x.di
99

1010
import android.content.Context
1111
import dev.zacsweers.metro.AppScope
12-
import dev.zacsweers.metro.ContributesTo
13-
import dev.zacsweers.metro.GraphExtension
12+
import dev.zacsweers.metro.DependencyGraph
1413
import dev.zacsweers.metro.Provides
1514
import io.element.android.libraries.architecture.NodeFactoriesBindings
1615
import io.element.android.libraries.di.annotations.ApplicationContext
1716

18-
@GraphExtension(AppScope::class)
19-
interface AppComponent : NodeFactoriesBindings {
20-
val sessionComponentFactory: SessionComponent.Factory
17+
@DependencyGraph(AppScope::class)
18+
interface AppGraph : NodeFactoriesBindings {
19+
val sessionGraphFactory: SessionGraph.Factory
2120

22-
@ContributesTo(GlobalScope::class)
23-
@GraphExtension.Factory
21+
@DependencyGraph.Factory
2422
interface Factory {
2523
fun create(
2624
@ApplicationContext @Provides
2725
context: Context
28-
): AppComponent
26+
): AppGraph
2927
}
3028
}

app/src/main/kotlin/io/element/android/x/di/DefaultRoomComponentFactory.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ import io.element.android.libraries.matrix.api.room.JoinedRoom
1616
@ContributesBinding(SessionScope::class)
1717
@Inject
1818
class DefaultRoomComponentFactory(
19-
private val sessionComponent: SessionComponent,
19+
private val sessionGraph: SessionGraph,
2020
) : RoomComponentFactory {
2121
override fun create(room: JoinedRoom): Any {
22-
return sessionComponent.roomComponentFactory
22+
return sessionGraph.roomGraphFactory
2323
.create(room, room)
2424
}
2525
}

app/src/main/kotlin/io/element/android/x/di/DefaultSessionComponentFactory.kt renamed to app/src/main/kotlin/io/element/android/x/di/DefaultSessionGraphFactory.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ package io.element.android.x.di
1010
import dev.zacsweers.metro.AppScope
1111
import dev.zacsweers.metro.ContributesBinding
1212
import dev.zacsweers.metro.Inject
13-
import io.element.android.appnav.di.SessionComponentFactory
13+
import io.element.android.appnav.di.SessionGraphFactory
1414
import io.element.android.libraries.matrix.api.MatrixClient
1515

1616
@ContributesBinding(AppScope::class)
1717
@Inject
18-
class DefaultSessionComponentFactory(
19-
private val appComponent: AppComponent
20-
) : SessionComponentFactory {
18+
class DefaultSessionGraphFactory(
19+
private val appGraph: AppGraph
20+
) : SessionGraphFactory {
2121
override fun create(client: MatrixClient): Any {
22-
return appComponent.sessionComponentFactory.createSessionComponent(client)
22+
return appGraph.sessionGraphFactory.create(client)
2323
}
2424
}

app/src/main/kotlin/io/element/android/x/di/GlobalGraph.kt

Lines changed: 0 additions & 16 deletions
This file was deleted.

app/src/main/kotlin/io/element/android/x/di/GlobalScope.kt

Lines changed: 0 additions & 10 deletions
This file was deleted.

app/src/main/kotlin/io/element/android/x/di/RoomComponent.kt renamed to app/src/main/kotlin/io/element/android/x/di/RoomGraph.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ import io.element.android.libraries.matrix.api.room.BaseRoom
1717
import io.element.android.libraries.matrix.api.room.JoinedRoom
1818

1919
@GraphExtension(RoomScope::class)
20-
interface RoomComponent : NodeFactoriesBindings {
20+
interface RoomGraph : NodeFactoriesBindings {
2121
@ContributesTo(SessionScope::class)
2222
@GraphExtension.Factory
2323
interface Factory {
2424
fun create(
2525
@Provides joinedRoom: JoinedRoom,
2626
@Provides baseRoom: BaseRoom
27-
): RoomComponent
27+
): RoomGraph
2828
}
2929
}

app/src/main/kotlin/io/element/android/x/di/SessionComponent.kt renamed to app/src/main/kotlin/io/element/android/x/di/SessionGraph.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ import io.element.android.libraries.di.SessionScope
1616
import io.element.android.libraries.matrix.api.MatrixClient
1717

1818
@GraphExtension(SessionScope::class)
19-
interface SessionComponent : NodeFactoriesBindings {
20-
val roomComponentFactory: RoomComponent.Factory
19+
interface SessionGraph : NodeFactoriesBindings {
20+
val roomGraphFactory: RoomGraph.Factory
2121

2222
@ContributesTo(AppScope::class)
2323
@GraphExtension.Factory
2424
interface Factory {
25-
fun createSessionComponent(@Provides matrixClient: MatrixClient): SessionComponent
25+
fun create(@Provides matrixClient: MatrixClient): SessionGraph
2626
}
2727
}

appnav/src/main/kotlin/io/element/android/appnav/LoggedInAppScopeFlowNode.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ import dev.zacsweers.metro.AppScope
2626
import dev.zacsweers.metro.Assisted
2727
import dev.zacsweers.metro.Inject
2828
import io.element.android.anvilannotations.ContributesNode
29-
import io.element.android.appnav.di.SessionComponentFactory
29+
import io.element.android.appnav.di.SessionGraphFactory
3030
import io.element.android.libraries.architecture.NodeInputs
3131
import io.element.android.libraries.architecture.createNode
3232
import io.element.android.libraries.architecture.inputs
33-
import io.element.android.libraries.di.DaggerComponentOwner
33+
import io.element.android.libraries.di.DependencyInjectionGraphOwner
3434
import io.element.android.libraries.matrix.api.MatrixClient
3535
import io.element.android.libraries.matrix.ui.media.ImageLoaderHolder
3636
import kotlinx.parcelize.Parcelize
@@ -45,7 +45,7 @@ import kotlinx.parcelize.Parcelize
4545
class LoggedInAppScopeFlowNode(
4646
@Assisted buildContext: BuildContext,
4747
@Assisted plugins: List<Plugin>,
48-
sessionComponentFactory: SessionComponentFactory,
48+
sessionGraphFactory: SessionGraphFactory,
4949
private val imageLoaderHolder: ImageLoaderHolder,
5050
) : ParentNode<LoggedInAppScopeFlowNode.NavTarget>(
5151
navModel = PermanentNavModel(
@@ -54,7 +54,7 @@ class LoggedInAppScopeFlowNode(
5454
),
5555
buildContext = buildContext,
5656
plugins = plugins
57-
), DaggerComponentOwner {
57+
), DependencyInjectionGraphOwner {
5858
interface Callback : Plugin {
5959
fun onOpenBugReport()
6060
}
@@ -67,7 +67,7 @@ class LoggedInAppScopeFlowNode(
6767
) : NodeInputs
6868

6969
private val inputs: Inputs = inputs()
70-
override val daggerComponent = sessionComponentFactory.create(inputs.matrixClient)
70+
override val graph = sessionGraphFactory.create(inputs.matrixClient)
7171

7272
override fun onBuilt() {
7373
super.onBuilt()

0 commit comments

Comments
 (0)