mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
refactor(folio): build AppGraph from platform entry points
MainActivity (Android) and MainViewController (iOS) now own the suspend DriverFactory.create() and feed the resulting LedgerDatabase into Metro's createGraphFactory<AppGraph.Factory>().
This commit is contained in:
1 parent
02f28aeac1
commit
85e7d7ad48
2 files changed
+14
-2
No files matched your search
@@ -4,11 +4,17 @@ import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.compose.setContent
|
||||
import app.folio.core.data.DriverFactory
|
||||
import app.folio.db.LedgerDatabase
|
||||
import app.folio.di.AppGraph
|
||||
import dev.zacsweers.metro.createGraphFactory
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
val driverFactory = DriverFactory(applicationContext)
|
||||
setContent { App(driverFactory) }
|
||||
val graphFactory = createGraphFactory<AppGraph.Factory>()
|
||||
setContent {
|
||||
App(graphBuilder = { graphFactory.create(LedgerDatabase(driverFactory.create())) })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,10 @@ package app.folio
|
||||
|
||||
import androidx.compose.ui.window.ComposeUIViewController
|
||||
import app.folio.core.data.DriverFactory
|
||||
import app.folio.db.LedgerDatabase
|
||||
import app.folio.di.AppGraph
|
||||
import app.folio.ui.IosBackGesture
|
||||
import dev.zacsweers.metro.createGraphFactory
|
||||
import kotlinx.cinterop.BetaInteropApi
|
||||
import kotlinx.cinterop.ExperimentalForeignApi
|
||||
import kotlinx.cinterop.ObjCAction
|
||||
@@ -28,7 +31,10 @@ private val backGestureTarget = BackGestureTarget()
|
||||
@OptIn(ExperimentalForeignApi::class)
|
||||
fun MainViewController(): UIViewController {
|
||||
val driverFactory = DriverFactory()
|
||||
val vc = ComposeUIViewController { App(driverFactory) }
|
||||
val graphFactory = createGraphFactory<AppGraph.Factory>()
|
||||
val vc = ComposeUIViewController {
|
||||
App(graphBuilder = { graphFactory.create(LedgerDatabase(driverFactory.create())) })
|
||||
}
|
||||
val gesture = UIScreenEdgePanGestureRecognizer(
|
||||
target = backGestureTarget,
|
||||
action = NSSelectorFromString("handleGesture:"),
|
||||
|
||||
Reference in new issue
Block a user