diff --git a/.gitignore b/.gitignore index 86ddf4a..ff8ec2d 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,8 @@ modules/features/splash/ui/build modules/features/splash/impl/build modules/features/theme/build modules/features/theme/impl/build +modules/features/theme/ui/build +modules/features/info/ui/build modules/features/ui/build # Services diff --git a/gradle.properties b/gradle.properties index ed1f519..b86320b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ makeevrserg.android.kotlinCompilerExtensionVersion=1.5.3 # Project makeevrserg.project.name=ApplicationTemplate makeevrserg.project.group=com.makeevrserg.applicationtemplate -makeevrserg.project.version.string=1.0.1 +makeevrserg.project.version.string=1.1.0 makeevrserg.project.version.code=11 makeevrserg.project.description=Template for KMP applcation makeevrserg.project.developers=makeevrserg|Makeev Roman|makeevrserg@gmail.com diff --git a/instances/androidApp/build.gradle.kts b/instances/androidApp/build.gradle.kts index b57078c..f4b51df 100644 --- a/instances/androidApp/build.gradle.kts +++ b/instances/androidApp/build.gradle.kts @@ -130,6 +130,7 @@ dependencies { // Local implementation(projects.modules.features.root.impl) implementation(projects.modules.features.root.ui) + implementation(projects.modules.features.theme.ui) implementation(projects.modules.services.coreUi) implementation(projects.modules.services.coreResources) } diff --git a/modules/features/info/ui/build.gradle.kts b/modules/features/info/ui/build.gradle.kts new file mode 100644 index 0000000..b116866 --- /dev/null +++ b/modules/features/info/ui/build.gradle.kts @@ -0,0 +1,41 @@ +@file:Suppress("UnusedPrivateMember") + +import ru.astrainteractive.gradleplugin.property.extension.ModelPropertyValueExt.requireProjectInfo + +plugins { + id("org.jetbrains.compose") + id("com.android.library") + kotlin("multiplatform") + id("ru.astrainteractive.gradleplugin.java.core") + id("ru.astrainteractive.gradleplugin.android.core") + id("ru.astrainteractive.gradleplugin.android.compose") +} + +kotlin { + android() + sourceSets { + val commonMain by getting { + dependencies { + // Compose MPP + implementation(compose.foundation) + implementation(compose.ui) + implementation(compose.runtime) + implementation(compose.uiTooling) + implementation(compose.preview) + implementation(compose.material) + implementation(compose.material3) + implementation(compose.materialIconsExtended) + // Moko + implementation(libs.moko.resources.core) + // Local + implementation(projects.modules.services.coreResources) + implementation(projects.modules.services.coreUi) + implementation(projects.modules.services.buildKonfig) + } + } + } +} + +android { + namespace = "${requireProjectInfo.group}.features.info.ui" +} diff --git a/modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/AndroidLinkBrowser.kt b/modules/features/info/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/AndroidLinkBrowser.kt similarity index 100% rename from modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/AndroidLinkBrowser.kt rename to modules/features/info/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/AndroidLinkBrowser.kt diff --git a/modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt b/modules/features/info/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt similarity index 100% rename from modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt rename to modules/features/info/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/LinkBrowser.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/LinkBrowser.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/LinkBrowser.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/linkbrowser/LinkBrowser.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/InfoScreen.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/InfoScreen.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/InfoScreen.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/InfoScreen.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/BottomSheetIndicator.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/BottomSheetIndicator.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/BottomSheetIndicator.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/BottomSheetIndicator.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/ComposeLinkBrowser.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/LinkWidget.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/LinkWidget.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/LinkWidget.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/components/LinkWidget.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/data/InfoScreenLinks.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/data/InfoScreenLinks.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/data/InfoScreenLinks.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/data/InfoScreenLinks.kt diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/model/LinkModel.kt b/modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/model/LinkModel.kt similarity index 100% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/model/LinkModel.kt rename to modules/features/info/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/info/ui/model/LinkModel.kt diff --git a/modules/features/root/ui/build.gradle.kts b/modules/features/root/ui/build.gradle.kts index a092790..df47708 100644 --- a/modules/features/root/ui/build.gradle.kts +++ b/modules/features/root/ui/build.gradle.kts @@ -42,6 +42,7 @@ kotlin { implementation(projects.modules.features.splash.impl) implementation(projects.modules.features.splash.ui) implementation(projects.modules.features.root.impl) + implementation(projects.modules.features.info.ui) } } val androidMain by getting { diff --git a/modules/features/theme/ui/build.gradle.kts b/modules/features/theme/ui/build.gradle.kts new file mode 100644 index 0000000..8a53af7 --- /dev/null +++ b/modules/features/theme/ui/build.gradle.kts @@ -0,0 +1,40 @@ +@file:Suppress("UnusedPrivateMember") + +import ru.astrainteractive.gradleplugin.property.extension.ModelPropertyValueExt.requireProjectInfo + +plugins { + id("org.jetbrains.compose") + id("com.android.library") + kotlin("multiplatform") + id("ru.astrainteractive.gradleplugin.java.core") + id("ru.astrainteractive.gradleplugin.android.core") + id("ru.astrainteractive.gradleplugin.android.compose") +} + +kotlin { + androidTarget() + targetHierarchy.default() + sourceSets { + val commonMain by getting { + dependencies { + // Compose MPP + implementation(compose.foundation) + implementation(compose.ui) + implementation(compose.runtime) + // Local + implementation(projects.modules.services.coreUi) + implementation(projects.modules.features.theme.impl) + } + } + val androidMain by getting { + dependencies { + // Accompanist + implementation(libs.google.accompanist.systemuicontroller) + } + } + } +} + +android { + namespace = "${requireProjectInfo.group}.features.theme.ui" +} diff --git a/modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/ui/components/TransparentBars.kt b/modules/features/theme/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/components/TransparentBars.kt similarity index 91% rename from modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/ui/components/TransparentBars.kt rename to modules/features/theme/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/components/TransparentBars.kt index 59bfca5..c84672c 100644 --- a/modules/features/root/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/ui/components/TransparentBars.kt +++ b/modules/features/theme/ui/src/androidMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/components/TransparentBars.kt @@ -1,4 +1,4 @@ -package com.makeevrserg.applicationtemplate.mobile.features.ui.components +package com.makeevrserg.applicationtemplate.mobile.features.theme.components import androidx.compose.runtime.Composable import androidx.compose.runtime.DisposableEffect diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/ui/components/TransparentBars.kt b/modules/features/theme/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/components/TransparentBars.kt similarity index 57% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/ui/components/TransparentBars.kt rename to modules/features/theme/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/components/TransparentBars.kt index 3faf69c..19d9c88 100644 --- a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/ui/components/TransparentBars.kt +++ b/modules/features/theme/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/components/TransparentBars.kt @@ -1,4 +1,4 @@ -package com.makeevrserg.applicationtemplate.mobile.features.ui.components +package com.makeevrserg.applicationtemplate.mobile.features.theme.components import androidx.compose.runtime.Composable diff --git a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/ui/ApplicationTheme.kt b/modules/features/theme/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/ui/ApplicationTheme.kt similarity index 92% rename from modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/ui/ApplicationTheme.kt rename to modules/features/theme/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/ui/ApplicationTheme.kt index 9a50230..8e8f065 100644 --- a/modules/features/root/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/ui/ApplicationTheme.kt +++ b/modules/features/theme/ui/src/commonMain/kotlin/com/makeevrserg/applicationtemplate/mobile/features/theme/ui/ApplicationTheme.kt @@ -5,10 +5,10 @@ import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import com.makeevrserg.applicationtemplate.mobile.core.ui.theme.AdaptThemeFade import com.makeevrserg.applicationtemplate.mobile.core.ui.theme.ComposeTheme +import com.makeevrserg.applicationtemplate.mobile.features.theme.components.TransparentBars import com.makeevrserg.applicationtemplate.mobile.features.theme.data.model.Theme import com.makeevrserg.applicationtemplate.mobile.features.theme.presentation.PreviewThemeSwitcherComponent import com.makeevrserg.applicationtemplate.mobile.features.theme.presentation.ThemeSwitcherComponent -import com.makeevrserg.applicationtemplate.mobile.features.ui.components.TransparentBars @Composable fun ApplicationTheme( diff --git a/settings.gradle.kts b/settings.gradle.kts index a69a419..83585fa 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,9 +28,14 @@ include(":modules:services:core-resources") include(":modules:services:core-ui") include(":modules:services:core") include(":modules:services:build-konfig") -// Feature +// Feature-root include(":modules:features:root:impl") include(":modules:features:root:ui") +// Feature-splash include(":modules:features:splash:impl") include(":modules:features:splash:ui") +// Feature-theme include(":modules:features:theme:impl") +include(":modules:features:theme:ui") +// Feature-info +include(":modules:features:info:ui")