From 4ad3ec049bb2d5d8d89170663e47461b89748c6d Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sat, 25 Sep 2021 19:57:30 +0200 Subject: [PATCH] Add compose navigation --- settings.gradle.kts | 4 ++++ ui/build.gradle.kts | 2 ++ .../mm20/launcher2/ui/activity/ComposeActivity.kt | 13 +++++++++++-- .../mm20/launcher2/ui/screens/LauncherMainScreen.kt | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 4b4070e5..53f19576 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -240,6 +240,10 @@ dependencyResolutionManagement { ) ) + alias("androidx.navigation.compose") + .to("androidx.navigation", "navigation-compose") + .version("2.4.0-alpha09") + alias("materialcomponents") .to("com.google.android.material", "material") .version("1.5.0-alpha02") diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 4515e067..4e5c4e0c 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -61,6 +61,8 @@ dependencies { implementation(libs.androidx.compose.animation) implementation(libs.androidx.compose.animationgraphics) + implementation(libs.androidx.navigation.compose) + // Legacy dependencies implementation(libs.androidx.transition) implementation(libs.materialcomponents) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/activity/ComposeActivity.kt b/ui/src/main/java/de/mm20/launcher2/ui/activity/ComposeActivity.kt index ba6ac856..8e31403f 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/activity/ComposeActivity.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/activity/ComposeActivity.kt @@ -14,12 +14,15 @@ import androidx.compose.ui.geometry.Size import androidx.core.view.WindowCompat import androidx.core.view.doOnLayout import androidx.lifecycle.lifecycleScope +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController import com.google.accompanist.insets.ProvideWindowInsets -import de.mm20.launcher2.ui.LauncherMainScreen import de.mm20.launcher2.ui.LauncherTheme import de.mm20.launcher2.ui.locals.LocalAppWidgetHost import de.mm20.launcher2.ui.locals.LocalColorScheme import de.mm20.launcher2.ui.locals.LocalWindowSize +import de.mm20.launcher2.ui.screens.LauncherMainScreen import de.mm20.launcher2.ui.theme.WallpaperColors import de.mm20.launcher2.ui.theme.colors.DefaultColorScheme import de.mm20.launcher2.ui.theme.colors.WallpaperColorScheme @@ -39,6 +42,8 @@ class ComposeActivity : AppCompatActivity() { WindowCompat.setDecorFitsSystemWindows(window, false) setContent { + val navController = rememberNavController() + var windowSize by remember { mutableStateOf(Size(0f, 0f)) } findViewById(android.R.id.content).doOnLayout { windowSize = Size(it.width.toFloat(), it.height.toFloat()) @@ -85,7 +90,11 @@ class ComposeActivity : AppCompatActivity() { LocalColorScheme provides colorScheme, ) { LauncherTheme { - LauncherMainScreen() + NavHost(navController = navController, startDestination = "home") { + composable("home") { + LauncherMainScreen(navController) + } + } } } } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/screens/LauncherMainScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/screens/LauncherMainScreen.kt index 4a9d1d70..8d74c60b 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/screens/LauncherMainScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/screens/LauncherMainScreen.kt @@ -36,7 +36,7 @@ import kotlinx.coroutines.launch InternalCoroutinesApi::class ) @Composable -fun LauncherMainScreen() { +fun LauncherMainScreen(navController: NavController) { val systemUiController = rememberSystemUiController()