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.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import app.folio.core.data.DriverFactory
|
import app.folio.core.data.DriverFactory
|
||||||
|
import app.folio.db.LedgerDatabase
|
||||||
|
import app.folio.di.AppGraph
|
||||||
|
import dev.zacsweers.metro.createGraphFactory
|
||||||
|
|
||||||
class MainActivity : ComponentActivity() {
|
class MainActivity : ComponentActivity() {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
val driverFactory = DriverFactory(applicationContext)
|
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 androidx.compose.ui.window.ComposeUIViewController
|
||||||
import app.folio.core.data.DriverFactory
|
import app.folio.core.data.DriverFactory
|
||||||
|
import app.folio.db.LedgerDatabase
|
||||||
|
import app.folio.di.AppGraph
|
||||||
import app.folio.ui.IosBackGesture
|
import app.folio.ui.IosBackGesture
|
||||||
|
import dev.zacsweers.metro.createGraphFactory
|
||||||
import kotlinx.cinterop.BetaInteropApi
|
import kotlinx.cinterop.BetaInteropApi
|
||||||
import kotlinx.cinterop.ExperimentalForeignApi
|
import kotlinx.cinterop.ExperimentalForeignApi
|
||||||
import kotlinx.cinterop.ObjCAction
|
import kotlinx.cinterop.ObjCAction
|
||||||
@@ -28,7 +31,10 @@ private val backGestureTarget = BackGestureTarget()
|
|||||||
@OptIn(ExperimentalForeignApi::class)
|
@OptIn(ExperimentalForeignApi::class)
|
||||||
fun MainViewController(): UIViewController {
|
fun MainViewController(): UIViewController {
|
||||||
val driverFactory = DriverFactory()
|
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(
|
val gesture = UIScreenEdgePanGestureRecognizer(
|
||||||
target = backGestureTarget,
|
target = backGestureTarget,
|
||||||
action = NSSelectorFromString("handleGesture:"),
|
action = NSSelectorFromString("handleGesture:"),
|
||||||
|
|||||||
Reference in new issue
Block a user