diff --git a/.gitignore b/.gitignore index 889d857..7d9c0e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,28 +1,18 @@ -### Gradle ### -.gradle/ -build/ - -### IDE ### *.iml - -/.idea/ -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml - -### Kotlin ### - -/.kotlin/ - -### Android ### +.kotlin +.gradle +**/build/ +xcuserdata +!src/**/build/ local.properties -/captures +.idea +.DS_Store +captures .externalNativeBuild .cxx - -### OS ### - -.DS_Store +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcodeproj/project.xcworkspace/ +!*.xcworkspace/contents.xcworkspacedata +**/xcshareddata/WorkspaceSettings.xcsettings diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4360b26..fc25f20 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -13,12 +13,12 @@ kotlin { } android { - compileSdk = 35 + compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { applicationId = "com.jetbrains.simplelogin.androidapp" - minSdk = 24 - targetSdk = 35 + minSdk = libs.versions.android.minSdk.get().toInt() + targetSdk = libs.versions.android.targetSdk.get().toInt() versionCode = 1 versionName = "1.0" @@ -38,9 +38,6 @@ android { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } - buildFeatures { - compose = true - } namespace = "com.jetbrains.simplelogin.androidapp" } diff --git a/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginActivity.kt b/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginActivity.kt index 75267f7..e048e8a 100644 --- a/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginActivity.kt +++ b/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginActivity.kt @@ -4,9 +4,11 @@ import android.app.Activity import android.os.Bundle import android.widget.Toast import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface +import androidx.lifecycle.viewmodel.compose.viewModel import com.jetbrains.simplelogin.androidapp.R import com.jetbrains.simplelogin.androidapp.data.LoginDataSource import com.jetbrains.simplelogin.androidapp.data.LoginDataValidator @@ -15,18 +17,23 @@ import com.jetbrains.simplelogin.androidapp.data.LoginRepository class LoginActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { MaterialTheme { + val loginViewModel = viewModel { + LoginViewModel( + loginRepository = LoginRepository( + dataSource = LoginDataSource() + ), + dataValidator = LoginDataValidator() + ) + } + Surface() { LoginScreen( - viewModel = LoginViewModel( - loginRepository = LoginRepository( - dataSource = LoginDataSource() - ), - dataValidator = LoginDataValidator() - ), + viewModel = loginViewModel, onLoginSuccess = { // Show welcome message val successResult = it.success diff --git a/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginScreen.kt b/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginScreen.kt index 948b198..5f31744 100644 --- a/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginScreen.kt +++ b/app/src/main/java/com/jetbrains/simplelogin/androidapp/ui/login/LoginScreen.kt @@ -9,7 +9,6 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType @@ -42,8 +41,8 @@ fun LoginScreen( Column( modifier = Modifier - .fillMaxSize() - .padding(16.dp), + .safeContentPadding() + .fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { diff --git a/gradle.properties b/gradle.properties index 436f744..e069552 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,11 @@ #Gradle -org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8 -Dkotlin.daemon.jvm.options\="-Xmx2048M" +org.gradle.jvmargs=-Xmx4096M -Dfile.encoding=UTF-8 +org.gradle.configuration-cache=true +org.gradle.caching=true #Kotlin kotlin.code.style=official +kotlin.daemon.jvmargs=-Xmx3072M #Android android.useAndroidX=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 32ef55e..fbd6a77 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,24 +1,23 @@ [versions] -android-gradlePlugin = "8.9.0" +android-gradlePlugin = "8.10.1" android-compileSdk = "35" android-minSdk = "24" android-targetSdk = "35" androidx-activityCompose = "1.10.1" -androidx-appcompat = "1.7.0" +androidx-appcompat = "1.7.1" androidx-constraintlayout = "2.2.1" androidx-core-ktx = "1.16.0" androidx-espresso-core = "3.6.1" androidx-material = "1.12.0" androidx-test-junit = "1.2.1" annotation = "1.9.1" -compose = "1.7.8" -compose-plugin = "1.7.3" +compose = "1.8.3" junit = "4.13.2" -kotlin = "2.1.10" -kotlinxCoroutinesCore = "1.10.1" -lifecycleLivedataKtx = "2.8.7" -lifecycleRuntimeKtx = "2.8.7" -lifecycleViewmodelCompose = "2.8.7" +kotlin = "2.2.0" +kotlinxCoroutinesCore = "1.10.2" +lifecycleLivedataKtx = "2.9.1" +lifecycleRuntimeKtx = "2.9.1" +lifecycleViewmodelCompose = "2.9.1" material3 = "1.3.2" [libraries]