diff --git a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt index f8df0b1d..6b53657f 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt @@ -9,7 +9,6 @@ import androidx.compose.material.BottomNavigationItem import androidx.compose.material.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.Providers -import androidx.compose.runtime.ambientOf import androidx.compose.runtime.getValue import androidx.compose.ui.platform.setContent import androidx.navigation.compose.KEY_ROUTE @@ -26,10 +25,9 @@ import dev.msfjarvis.lobsters.ui.HottestPosts import dev.msfjarvis.lobsters.ui.LobstersTheme import dev.msfjarvis.lobsters.ui.SavedPosts import dev.msfjarvis.lobsters.urllauncher.UrlLauncher +import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient import javax.inject.Inject -val UrlLauncherAmbient = ambientOf { error("Needs to be provided") } - @AndroidEntryPoint class MainActivity : AppCompatActivity() { @Inject lateinit var urlLauncher: UrlLauncher @@ -89,10 +87,10 @@ fun LobstersApp( ) { NavHost(navController, startDestination = Destination.Hottest.route) { composable(Destination.Hottest.route) { - HottestPosts(urlLauncher = urlLauncher, viewModel = viewModel) + HottestPosts(viewModel = viewModel) } composable(Destination.Saved.route) { - SavedPosts(urlLauncher = urlLauncher, viewModel = viewModel) + SavedPosts(viewModel = viewModel) } } } diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt index 48b754b1..6e5708fb 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt @@ -9,15 +9,15 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import dev.msfjarvis.lobsters.data.LobstersViewModel -import dev.msfjarvis.lobsters.urllauncher.UrlLauncher +import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient @Composable fun HottestPosts( - urlLauncher: UrlLauncher, viewModel: LobstersViewModel, ) { val posts by viewModel.posts.collectAsState() val listState = rememberLazyListState() + val urlLauncher = UrlLauncherAmbient.current if (posts.isEmpty()) { EmptyList(saved = false) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/SavedPosts.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/SavedPosts.kt index 3998a8f4..4705f9ee 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/SavedPosts.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/SavedPosts.kt @@ -9,15 +9,15 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import dev.msfjarvis.lobsters.data.LobstersViewModel -import dev.msfjarvis.lobsters.urllauncher.UrlLauncher +import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient @Composable fun SavedPosts( - urlLauncher: UrlLauncher, viewModel: LobstersViewModel, ) { val posts by viewModel.savedPosts.collectAsState() val listState = rememberLazyListState() + val urlLauncher = UrlLauncherAmbient.current if (posts.isEmpty()) { EmptyList(saved = true) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/urllauncher/UrlLauncherAmbient.kt b/app/src/main/java/dev/msfjarvis/lobsters/urllauncher/UrlLauncherAmbient.kt new file mode 100644 index 00000000..e17df796 --- /dev/null +++ b/app/src/main/java/dev/msfjarvis/lobsters/urllauncher/UrlLauncherAmbient.kt @@ -0,0 +1,5 @@ +package dev.msfjarvis.lobsters.urllauncher + +import androidx.compose.runtime.ambientOf + +val UrlLauncherAmbient = ambientOf { error("Needs to be provided") }