diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a803905a..df416f23 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.android.app") + id("wottrich.github.io.smartchecklist.compose") alias(libs.plugins.ksp) } @@ -19,13 +20,7 @@ android { } } - buildFeatures { - compose = true - buildConfig = true - } - composeOptions { - kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() - } + android.buildFeatures.buildConfig = true packaging { resources.excludes.apply { @@ -45,10 +40,10 @@ dependencies { implementation(libs.kotlin.stdlib) implementation(libs.android.core.ktx) implementation(libs.android.app.compat) - implementation(libs.compose.accompanist.system.ui.controller) implementation(libs.bundles.compose.default) implementation(libs.bundles.koin.default) implementation(libs.bundles.compose.navigation.default) + implementation(libs.android.activity.ktx) implementation(project(path = ":baseui")) implementation(project(path = ":datasource")) implementation(project(path = ":infrastructure:extensions:intent")) diff --git a/app/src/main/java/wottrich/github/io/smartchecklist/presentation/activity/MainHostActivity.kt b/app/src/main/java/wottrich/github/io/smartchecklist/presentation/activity/MainHostActivity.kt index 853fd328..2849910e 100644 --- a/app/src/main/java/wottrich/github/io/smartchecklist/presentation/activity/MainHostActivity.kt +++ b/app/src/main/java/wottrich/github/io/smartchecklist/presentation/activity/MainHostActivity.kt @@ -3,9 +3,18 @@ package wottrich.github.io.smartchecklist.presentation.activity import android.content.Intent import android.os.Bundle import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.WindowInsets +import androidx.compose.foundation.layout.systemBars +import androidx.compose.foundation.layout.windowInsetsBottomHeight +import androidx.compose.foundation.layout.windowInsetsTopHeight import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Surface import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.rememberNavController @@ -16,10 +25,11 @@ import com.google.accompanist.navigation.material.ModalBottomSheetLayout import com.google.accompanist.navigation.material.rememberBottomSheetNavigator import kotlinx.coroutines.InternalCoroutinesApi import org.koin.android.ext.android.inject +import wottrich.github.io.smartchecklist.baseui.ui.ApplicationTheme import wottrich.github.io.smartchecklist.baseui.ui.Dimens +import wottrich.github.io.smartchecklist.baseui.ui.pallet.SmartChecklistTheme import wottrich.github.io.smartchecklist.navigation.AppNavigator import wottrich.github.io.smartchecklist.navigation.NavigationHome -import wottrich.github.io.smartchecklist.presentation.ui.StatusBarColor @InternalCoroutinesApi @OptIn(ExperimentalMaterialNavigationApi::class) @@ -29,6 +39,7 @@ class MainHostActivity : AppCompatActivity() { private var sharedNavHostController: NavHostController? = null override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { val navController = rememberNavController().also { @@ -36,14 +47,21 @@ class MainHostActivity : AppCompatActivity() { } val bottomSheetNavigator = rememberBottomSheetNavigator() navController.navigatorProvider += bottomSheetNavigator - BottomSheetNavigator(bottomSheetNavigator = bottomSheetNavigator) { - AppNavigator(navHostController = navController) + ApplicationTheme { + Surface(color = SmartChecklistTheme.colors.background) { + Column { + Spacer(modifier = Modifier.windowInsetsTopHeight(WindowInsets.systemBars)) + BottomSheetNavigator(bottomSheetNavigator = bottomSheetNavigator) { + AppNavigator(navHostController = navController) + } + Spacer(modifier = Modifier.windowInsetsBottomHeight(WindowInsets.systemBars)) + } + } } - StatusBarColor() } } - override fun onNewIntent(intent: Intent?) { + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) sharedNavHostController?.handleDeepLink(intent) } diff --git a/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/StatusBarColor.kt b/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/StatusBarColor.kt deleted file mode 100644 index 7e81ca01..00000000 --- a/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/StatusBarColor.kt +++ /dev/null @@ -1,22 +0,0 @@ -package wottrich.github.io.smartchecklist.presentation.ui - -import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect -import com.google.accompanist.systemuicontroller.rememberSystemUiController -import wottrich.github.io.smartchecklist.baseui.ui.ApplicationTheme -import wottrich.github.io.smartchecklist.baseui.ui.pallet.SmartChecklistTheme - -@Composable -fun StatusBarColor() { - ApplicationTheme { - val rememberSystemUiController = rememberSystemUiController() - val useDarkItems = SmartChecklistTheme.colors.isLight - val backgroundStatusBarColor = SmartChecklistTheme.colors.background - SideEffect { - rememberSystemUiController.setStatusBarColor( - color = backgroundStatusBarColor, - darkIcons = useDarkItems - ) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/content/HomeScaffold.kt b/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/content/HomeScaffold.kt index 0e48024d..595a294b 100644 --- a/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/content/HomeScaffold.kt +++ b/app/src/main/java/wottrich/github/io/smartchecklist/presentation/ui/content/HomeScaffold.kt @@ -1,7 +1,9 @@ package wottrich.github.io.smartchecklist.presentation.ui.content +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.RowScope +import androidx.compose.foundation.layout.navigationBarsPadding import androidx.compose.material.DrawerState import androidx.compose.material.FabPosition import androidx.compose.material.Icon @@ -10,12 +12,16 @@ import androidx.compose.material.MaterialTheme import androidx.compose.material.Scaffold import androidx.compose.material.ScaffoldState import androidx.compose.material.SnackbarHostState +import androidx.compose.material.Surface import androidx.compose.material.TopAppBar import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Menu +import androidx.compose.material.primarySurface import androidx.compose.material.rememberScaffoldState import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import wottrich.github.io.smartchecklist.baseui.ui.pallet.SmartChecklistTheme @@ -42,7 +48,11 @@ fun HomeScaffold( drawerContent() }, bottomBar = { - HomeTopBar(coroutineScope, drawerState, onTitleContent, actionContent) + Surface(color = MaterialTheme.colors.primarySurface) { + Box(modifier = Modifier.navigationBarsPadding()) { + HomeTopBar(coroutineScope, drawerState, onTitleContent, actionContent) + } + } } ) { innerPadding -> content(innerPadding) @@ -75,6 +85,7 @@ private fun HomeTopBar( title = { onTitleContent() }, - actions = actionContent + actions = actionContent, + elevation = 0.dp ) } \ No newline at end of file diff --git a/baseui/build.gradle.kts b/baseui/build.gradle.kts index 674472fb..5187873f 100644 --- a/baseui/build.gradle.kts +++ b/baseui/build.gradle.kts @@ -1,10 +1,9 @@ plugins { id("wottrich.github.io.smartchecklist.android.lib") + id("wottrich.github.io.smartchecklist.compose") } android { - buildFeatures.compose = true - composeOptions.kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() namespace = "wottrich.github.io.smartchecklist.baseui" } diff --git a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/behaviour/ripple/RippleStatusColor.kt b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/behaviour/ripple/RippleStatusColor.kt deleted file mode 100644 index 165cbcdc..00000000 --- a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/behaviour/ripple/RippleStatusColor.kt +++ /dev/null @@ -1,27 +0,0 @@ -package wottrich.github.io.smartchecklist.baseui.behaviour.ripple - -import androidx.compose.material.ripple.RippleAlpha -import androidx.compose.material.ripple.RippleTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color -import wottrich.github.io.smartchecklist.baseui.ui.pallet.SmartChecklistTheme - -class RippleStatusColor(private val isPositive: Boolean) : RippleTheme { - - @Composable - override fun defaultColor(): Color { - return if (isPositive) { - SmartChecklistTheme.colors.status.positive - } else { - SmartChecklistTheme.colors.status.negative - } - } - - @Composable - override fun rippleAlpha(): RippleAlpha { - return RippleTheme.defaultRippleAlpha( - contentColor = SmartChecklistTheme.colors.secondary, - lightTheme = SmartChecklistTheme.colors.isLight - ) - } -} \ No newline at end of file diff --git a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/components/completable/CompletableComponentRippleLayer.kt b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/components/completable/CompletableComponentRippleLayer.kt index aeaf0627..fb06c7f8 100644 --- a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/components/completable/CompletableComponentRippleLayer.kt +++ b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/components/completable/CompletableComponentRippleLayer.kt @@ -1,14 +1,33 @@ package wottrich.github.io.smartchecklist.baseui.components.completable +import androidx.compose.material.LocalRippleConfiguration +import androidx.compose.material.RippleConfiguration +import androidx.compose.material.RippleDefaults import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider -import wottrich.github.io.smartchecklist.baseui.behaviour.ripple.RippleStatusColor +import wottrich.github.io.smartchecklist.baseui.ui.pallet.SmartChecklistTheme @Composable internal fun CompletableComponentRippleLayer(isCompleted: Boolean, content: @Composable () -> Unit) { + val rippleConfiguration = getRippleConfiguration(isPositive = !isCompleted) CompositionLocalProvider( - LocalRippleTheme provides RippleStatusColor(!isCompleted), + LocalRippleConfiguration provides rippleConfiguration, content = content ) +} + +@Composable +private fun getRippleConfiguration(isPositive: Boolean): RippleConfiguration { + return RippleConfiguration( + color = if (isPositive) { + SmartChecklistTheme.colors.status.positive + } else { + SmartChecklistTheme.colors.status.negative + }, + rippleAlpha = RippleDefaults.rippleAlpha( + contentColor = SmartChecklistTheme.colors.secondary, + lightTheme = SmartChecklistTheme.colors.isLight + ) + ) } \ No newline at end of file diff --git a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/icons/ArrowBackIcon.kt b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/icons/ArrowBackIcon.kt index 150f441e..fd37c4d2 100644 --- a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/icons/ArrowBackIcon.kt +++ b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/icons/ArrowBackIcon.kt @@ -3,7 +3,7 @@ package wottrich.github.io.smartchecklist.baseui.icons import androidx.compose.foundation.clickable import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip @@ -29,7 +29,7 @@ fun ArrowBackIcon( ) { VectorIcon( modifier = modifier, - imageVector = Icons.Default.ArrowBack, + imageVector = Icons.AutoMirrored.Default.ArrowBack, contentDescription = contentDescription, tint = SmartChecklistTheme.colors.onSurface ) diff --git a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/ui/Theme.kt b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/ui/Theme.kt index e7b12f93..b5b4ba19 100644 --- a/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/ui/Theme.kt +++ b/baseui/src/main/java/wottrich/github/io/smartchecklist/baseui/ui/Theme.kt @@ -33,19 +33,19 @@ fun ApplicationTheme( fun SmartChecklistColors.toMaterialTheme(): Colors { return Colors( - primary, - primaryVariant, - secondary, - secondaryVariant, - background, - surface, - error, - onPrimary, - onSecondary, - onBackground, - onSurface, - onError, - isLight + primary = primary, + primaryVariant = primaryVariant, + secondary = secondary, + secondaryVariant = secondaryVariant, + background = background, + surface = surface, + error = error, + onPrimary = onPrimary, + onSecondary = onSecondary, + onBackground = onBackground, + onSurface = onSurface, + onError = onError, + isLight = isLight ) } diff --git a/build.gradle.kts b/build.gradle.kts index 36a2a4fe..58c2c5b4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,4 +6,5 @@ plugins { alias(libs.plugins.jetbrains.kotlin.jvm) apply false alias(libs.plugins.jetbrains.kotlin.parcelize) apply false alias(libs.plugins.ksp) apply false + alias(libs.plugins.compose.compiler) apply false } \ No newline at end of file diff --git a/features/checklist/impl/build.gradle.kts b/features/checklist/impl/build.gradle.kts index 98cbf82e..edaaa555 100644 --- a/features/checklist/impl/build.gradle.kts +++ b/features/checklist/impl/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android { diff --git a/features/newchecklist/impl/build.gradle.kts b/features/newchecklist/impl/build.gradle.kts index 415485b4..c3c620e9 100644 --- a/features/newchecklist/impl/build.gradle.kts +++ b/features/newchecklist/impl/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android { diff --git a/features/quicklychecklist/impl/build.gradle.kts b/features/quicklychecklist/impl/build.gradle.kts index 0cb8b781..2e78ba77 100644 --- a/features/quicklychecklist/impl/build.gradle.kts +++ b/features/quicklychecklist/impl/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android { diff --git a/features/task/impl/build.gradle.kts b/features/task/impl/build.gradle.kts index fd454245..f0332791 100644 --- a/features/task/impl/build.gradle.kts +++ b/features/task/impl/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android { diff --git a/gradle-conventions/conventions/build.gradle.kts b/gradle-conventions/conventions/build.gradle.kts index 9a153819..9014182b 100644 --- a/gradle-conventions/conventions/build.gradle.kts +++ b/gradle-conventions/conventions/build.gradle.kts @@ -12,11 +12,8 @@ repositories { } dependencies { - // Make version catalogs accessible from precompiled script plugins - // https://github.com/gradle/gradle/issues/15383 - implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) - implementation(libs.kotlin.gradle.plugin) + implementation(libs.gradlePlugins.compose.compiler) implementation("com.android.tools.build:gradle:${libs.versions.gradle.get()}") } diff --git a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.base.android.gradle.kts b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.base.android.gradle.kts index 1cb20d23..63e53d08 100644 --- a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.base.android.gradle.kts +++ b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.base.android.gradle.kts @@ -1,16 +1,18 @@ +import gradle.kotlin.dsl.accessors._7244ddc599ca65e2ebad7d615d91b637.versionCatalogs +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.kotlinExtension plugins { kotlin("android") } -internal val libs = the() +private val libs: VersionCatalog = versionCatalogs.named("libs") android { - compileSdkVersion(34) + compileSdkVersion(35) defaultConfig { minSdk = 21 - targetSdk = 33 + targetSdk = 35 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("consumer-rules.pro") @@ -28,9 +30,6 @@ android { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() - } kotlin { jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) @@ -45,8 +44,8 @@ tasks.withType { } tasks.withType { - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) } } @@ -58,6 +57,6 @@ kotlinExtension.jvmToolchain { dependencies { val implementation by configurations - implementation(libs.kotlin.stdlib) - implementation(libs.android.core.ktx) + implementation(libs.findLibrary("kotlin.stdlib").get()) + implementation(libs.findLibrary("android.core.ktx").get()) } \ No newline at end of file diff --git a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.compose.gradle.kts b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.compose.gradle.kts new file mode 100644 index 00000000..546f7c62 --- /dev/null +++ b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.compose.gradle.kts @@ -0,0 +1,14 @@ +plugins { + id("org.jetbrains.kotlin.plugin.compose") +} + +private val libs: VersionCatalog = versionCatalogs.named("libs") + +dependencies { + val implementation by configurations + val debugImplementation by configurations + + implementation(platform(libs.findLibrary("compose.bom").get())) + implementation(libs.findBundle("compose.default").get()) + debugImplementation(libs.findLibrary("compose.ui.tooling").get()) +} \ No newline at end of file diff --git a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.feature.impl.gradle.kts b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.feature.impl.gradle.kts index e2cfbcfe..bd11d0b3 100644 --- a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.feature.impl.gradle.kts +++ b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.feature.impl.gradle.kts @@ -1,12 +1,3 @@ -import org.gradle.kotlin.dsl.the - plugins { id("wottrich.github.io.smartchecklist.android.lib") -} - -internal val libs = the() - -android { - buildFeatures.compose = true - composeOptions.kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() } \ No newline at end of file diff --git a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.kotlin.lib.gradle.kts b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.kotlin.lib.gradle.kts index 14d0326f..7af05c68 100644 --- a/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.kotlin.lib.gradle.kts +++ b/gradle-conventions/conventions/src/main/kotlin/wottrich.github.io.smartchecklist.kotlin.lib.gradle.kts @@ -2,6 +2,7 @@ import org.gradle.api.JavaVersion import org.gradle.api.tasks.compile.JavaCompile import org.gradle.jvm.toolchain.JavaLanguageVersion import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.kotlinExtension plugins { @@ -9,16 +10,14 @@ plugins { kotlin("jvm") } -internal val libs = the() - tasks.withType { sourceCompatibility = JavaVersion.VERSION_17.toString() targetCompatibility = JavaVersion.VERSION_17.toString() } tasks.withType { - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) } } diff --git a/gradle-conventions/conventions/src/main/kotlin/wottrich/github/io/smartchecklist/ConvetionsGradleDsl.kt b/gradle-conventions/conventions/src/main/kotlin/wottrich/github/io/smartchecklist/ConvetionsGradleDsl.kt index 7e95b817..c8890027 100644 --- a/gradle-conventions/conventions/src/main/kotlin/wottrich/github/io/smartchecklist/ConvetionsGradleDsl.kt +++ b/gradle-conventions/conventions/src/main/kotlin/wottrich/github/io/smartchecklist/ConvetionsGradleDsl.kt @@ -1,17 +1,11 @@ import com.android.build.gradle.BaseExtension import org.gradle.api.Action import org.gradle.api.Project -import org.gradle.api.plugins.ExtensionAware import org.gradle.kotlin.dsl.get -import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions internal val Project.android: BaseExtension get() = this.extensions["android"] as BaseExtension internal fun Project.android(block: Action) { block.execute(android) -} - -internal fun BaseExtension.kotlinOptions(configure: KotlinJvmOptions.() -> Unit) { - (this as ExtensionAware).extensions.configure(KotlinJvmOptions::class.java, configure) } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bfc5915b..03c11a5b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,23 +1,23 @@ [versions] -kotlin = "1.9.20" -ksp = "1.9.20-1.0.14" -gradle = "8.0.2" +kotlin = "2.1.21" +ksp = "2.1.21-2.0.1" +gradle = "8.10.1" coreKtx = "1.7.0" coroutines = "1.7.1" appCompat = "1.4.1" lifecycleRuntime = "2.5.1" lifecycleViewModelKtx = "2.3.1" koin = "3.5.0" -composeCompiler = "1.5.5" +composeBom = "2025.06.01" compose = "1.5.4" -composeActivity = "1.8.1" composeNavigation = "2.7.0-beta2" composeAccompanist = "0.31.5-beta" coroutinesCore = "1.7.3" retrofit = "2.9.0" loggingInterceptor = "4.9.0" -room = "2.6.1" +room = "2.7.1" androidMaterial = "1.5.0" +androidActivityKtx = "1.10.1" mockK = "1.12.2" coreTesting = "2.1.0" junit = "4.13.2" @@ -28,19 +28,17 @@ espressoCore = "3.4.0-beta01" android-core-ktx = { group="androidx.core", name="core-ktx", version.ref="coreKtx" } android-app-compat = { group="androidx.appcompat", name="appcompat", version.ref="appCompat" } android-material = { group="com.google.android.material", name="material", version.ref="androidMaterial" } +android-activity-ktx = { group="androidx.activity", name="activity-ktx", version.ref="androidActivityKtx"} # Compose -compose-ui = { group="androidx.compose.ui", name="ui", version.ref="compose" } -compose-ui-tooling = { group="androidx.compose.ui", name="ui-tooling", version.ref="compose" } -compose-runtime = { group="androidx.compose.runtime", name="runtime", version.ref="compose" } -compose-material = { group="androidx.compose.material", name="material", version.ref="compose" } -compose-activity = { group="androidx.activity", name="activity-compose", version.ref="composeActivity" } -compose-compiler = { group="androidx.compose.compiler", name="compiler", version.ref="compose" } +compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } +compose-ui-tooling = { group="androidx.compose.ui", name="ui-tooling" } +compose-material = { group="androidx.compose.material", name="material" } compose-navigation = { group="androidx.navigation", name="navigation-compose", version.ref="composeNavigation" } +compose-icons = { group="androidx.compose.material", name="material-icons-core" } +gradlePlugins-compose-compiler = { module = "org.jetbrains.kotlin:compose-compiler-gradle-plugin", version.ref = "kotlin" } # Compose accompanist compose-accompanist-navigation = { group="com.google.accompanist", name="accompanist-navigation-material", version.ref="composeAccompanist" } compose-accompanist-navigation-animation = { group="com.google.accompanist", name="accompanist-navigation-animation", version.ref="composeAccompanist" } -compose-accompanist-placeholder = { group="com.google.accompanist", name="accompanist-placeholder", version.ref="composeAccompanist" } -compose-accompanist-system-ui-controller = { group="com.google.accompanist", name="accompanist-systemuicontroller", version.ref="composeAccompanist" } # Coroutines coroutines-core = { group="org.jetbrains.kotlinx", name="kotlinx-coroutines-core", version.ref="coroutines" } # Gson @@ -80,8 +78,9 @@ jetbrains-kotlin-android = { id="org.jetbrains.kotlin.android", version.ref="kot jetbrains-kotlin-jvm = { id="org.jetbrains.kotlin.jvm", version.ref="kotlin" } jetbrains-kotlin-parcelize = { id="org.jetbrains.kotlin.plugin.parcelize", version.ref="kotlin" } ksp = { id="com.google.devtools.ksp", version.ref="ksp" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } [bundles] -compose-default = [ "compose-ui", "compose-ui-tooling", "compose-runtime", "compose-material"] +compose-default = [ "compose-material", "compose-icons" ] compose-navigation-default = [ "compose-navigation", "compose-accompanist-navigation", "compose-accompanist-navigation-animation" ] koin-default = [ "koin-core", "koin-android", "koin-android-compose" ] room-default = [ "room-runtime", "room-ktx" ] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a5952066..260504c0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index 9da6d415..8b679b82 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,6 +2,7 @@ pluginManagement { repositories { google() mavenCentral() + gradlePluginPortal() } includeBuild("gradle-conventions/conventions") } diff --git a/ui-aboutus/build.gradle.kts b/ui-aboutus/build.gradle.kts index 5d17f5d8..84219a66 100644 --- a/ui-aboutus/build.gradle.kts +++ b/ui-aboutus/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android { diff --git a/ui-privacy-policy/impl/build.gradle.kts b/ui-privacy-policy/impl/build.gradle.kts index d955b156..a7b00ca5 100644 --- a/ui-privacy-policy/impl/build.gradle.kts +++ b/ui-privacy-policy/impl/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android { diff --git a/ui-support/build.gradle.kts b/ui-support/build.gradle.kts index 7c053f40..dd51529d 100644 --- a/ui-support/build.gradle.kts +++ b/ui-support/build.gradle.kts @@ -1,5 +1,6 @@ plugins { id("wottrich.github.io.smartchecklist.feature.impl") + id("wottrich.github.io.smartchecklist.compose") } android {