From ecea0e12d6091fdcbe8a24f4d21370a0ee60aa69 Mon Sep 17 00:00:00 2001 From: "Z. Charles Dziura" Date: Fri, 16 Aug 2024 15:49:36 -0400 Subject: [PATCH] Got a working app build, hallelujah! --- app/app/build.gradle.kts | 2 + .../makeshift/debtpirate/MainActivity.kt | 48 ++++++++----------- .../debtpirate/usecases/login/LoginScreen.kt | 23 +++++++++ app/gradle.properties | 2 +- app/gradle/libs.versions.toml | 5 +- 5 files changed, 51 insertions(+), 29 deletions(-) create mode 100644 app/app/src/main/java/software/makeshift/debtpirate/usecases/login/LoginScreen.kt diff --git a/app/app/build.gradle.kts b/app/app/build.gradle.kts index 5c3e9cc..28807c5 100644 --- a/app/app/build.gradle.kts +++ b/app/app/build.gradle.kts @@ -63,11 +63,13 @@ dependencies { implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.navigation.compose) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) + androidTestImplementation(libs.androidx.navigation.testing) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) } diff --git a/app/app/src/main/java/software/makeshift/debtpirate/MainActivity.kt b/app/app/src/main/java/software/makeshift/debtpirate/MainActivity.kt index e028dc9..26ee1b1 100644 --- a/app/app/src/main/java/software/makeshift/debtpirate/MainActivity.kt +++ b/app/app/src/main/java/software/makeshift/debtpirate/MainActivity.kt @@ -4,44 +4,38 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import kotlinx.serialization.Serializable import software.makeshift.debtpirate.ui.theme.DebtPirateTheme +import software.makeshift.debtpirate.usecases.login.LoginScreen + +@Serializable +object LoginRoute class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { + val navController = rememberNavController() + DebtPirateTheme { - Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> - Greeting( - name = "Android", - modifier = Modifier.padding(innerPadding) - ) + NavHost(navController = navController, startDestination = LoginRoute) { + composable { + LoginScreen() + } } } } } } -@Composable -fun Greeting(name: String, modifier: Modifier = Modifier) { - Text( - text = "Hello $name!", - modifier = modifier - ) -} - -@Preview(showBackground = true) -@Composable -fun GreetingPreview() { - DebtPirateTheme { - Greeting("Android") - } -} \ No newline at end of file +//@Preview(showBackground = true) +//@Composable +//fun GreetingPreview() { +// DebtPirateTheme { +// Greeting("Android") +// } +//} \ No newline at end of file diff --git a/app/app/src/main/java/software/makeshift/debtpirate/usecases/login/LoginScreen.kt b/app/app/src/main/java/software/makeshift/debtpirate/usecases/login/LoginScreen.kt new file mode 100644 index 0000000..5dd607f --- /dev/null +++ b/app/app/src/main/java/software/makeshift/debtpirate/usecases/login/LoginScreen.kt @@ -0,0 +1,23 @@ +package software.makeshift.debtpirate.usecases.login + +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier + +@Composable +fun LoginScreen() { + Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> + Greeting(modifier = Modifier.padding(innerPadding)) + } +} + +@Composable +private fun Greeting(modifier: Modifier = Modifier) { + Text( + text = "Hello from Login!", + modifier = modifier + ) +} \ No newline at end of file diff --git a/app/gradle.properties b/app/gradle.properties index 132244e..29bd29d 100644 --- a/app/gradle.properties +++ b/app/gradle.properties @@ -6,7 +6,7 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. For more details, visit # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects diff --git a/app/gradle/libs.versions.toml b/app/gradle/libs.versions.toml index 35f9974..421e9cd 100644 --- a/app/gradle/libs.versions.toml +++ b/app/gradle/libs.versions.toml @@ -11,7 +11,8 @@ material3 = "1.3.0-beta05" kotlinxSerializationJson = "1.7.1" lifecycleRuntimeKtx = "2.8.4" activityCompose = "1.9.1" -composeBom = "2024.04.01" +composeBom = "2024.06.00" +navigation = "2.8.0-beta01" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -31,6 +32,8 @@ androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" } +androidx-navigation-testing = { group = "androidx.navigation", name = "navigation-testing", version.ref = "navigation" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" }