Skip to content

Commit 671c6f0

Browse files
authored
Merge pull request #83 from stslex/dev
update libs
2 parents 77e04d2 + b083fd2 commit 671c6f0

File tree

28 files changed

+310
-167
lines changed

28 files changed

+310
-167
lines changed

.github/workflows/android_deploy_beta.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ jobs:
2121
- name: Update Version
2222
run: bash ./.github/scripts/update_versions.sh
2323

24-
- uses: ruby/setup-ruby@v1.152.0
24+
- uses: ruby/setup-ruby@v1
2525
with:
26-
ruby-version: '2.7.0'
26+
ruby-version: '3.3'
2727

2828
- name: Cache Ruby - Bundler
2929
uses: actions/cache@v2

.github/workflows/android_deploy_prod.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jobs:
1919
- name: Update Version
2020
run: bash ./.github/scripts/update_versions.sh
2121

22-
- uses: ruby/setup-ruby@v1.152.0
22+
- uses: ruby/setup-ruby@v1
2323
with:
24-
ruby-version: '2.7.0'
24+
ruby-version: '3.3'
2525

2626
- name: Cache Ruby - Bundler
2727
uses: actions/cache@v2
@@ -94,4 +94,4 @@ jobs:
9494
uses: ad-m/github-push-action@master
9595
with:
9696
github_token: ${{ secrets.PUSH_TOKEN }}
97-
branch: ${{ github.ref }}
97+
branch: ${{ github.ref }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
*.iml
22
.gradle
33
.idea
4+
.kotlin
45
/local.properties
56
.DS_Store
67
/build

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
alias(libs.plugins.convention.application)
33
alias(libs.plugins.convention.application.compose)
4+
alias(libs.plugins.composeCompiler)
45
}
56

67
dependencies {

app/src/main/java/st/slex/csplashscreen/ui/InitialApp.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,27 @@ import androidx.compose.material3.MaterialTheme
1313
import androidx.compose.material3.Scaffold
1414
import androidx.compose.runtime.Composable
1515
import androidx.compose.runtime.DisposableEffect
16+
import androidx.compose.runtime.Stable
1617
import androidx.compose.runtime.getValue
1718
import androidx.compose.runtime.mutableStateOf
1819
import androidx.compose.runtime.remember
1920
import androidx.compose.runtime.setValue
2021
import androidx.compose.ui.Modifier
2122
import androidx.compose.ui.graphics.Color
2223
import androidx.compose.ui.unit.dp
23-
import androidx.navigation.NavHostController
2424
import com.google.accompanist.systemuicontroller.rememberSystemUiController
2525
import st.slex.csplashscreen.core.navigation.AppDestination
2626
import st.slex.csplashscreen.core.navigation.navigator.NavigationTarget
27+
import st.slex.csplashscreen.ui.components.NavHostControllerHolder
2728
import st.slex.csplashscreen.ui.components.NavigationHost
2829
import st.slex.csplashscreen.ui.components.bottom_appbar.BottomAppBarResource
2930
import st.slex.csplashscreen.ui.components.bottom_appbar.MainBottomAppBar
3031

3132
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
3233
@Composable
34+
@Stable
3335
fun InitialApp(
34-
navController: NavHostController,
36+
navControllerHolder: NavHostControllerHolder,
3537
onBottomAppBarClick: (NavigationTarget.Screen) -> Unit,
3638
modifier: Modifier = Modifier,
3739
) {
@@ -42,7 +44,7 @@ fun InitialApp(
4244
mutableStateOf<AppDestination?>(AppDestination.HOME)
4345
}
4446

45-
navController.addOnDestinationChangedListener { _, destination, _ ->
47+
navControllerHolder.navController.addOnDestinationChangedListener { _, destination, _ ->
4648
currentDestination = AppDestination.findByRoute(destination.route)
4749
}
4850

@@ -76,7 +78,7 @@ fun InitialApp(
7678
modifier = Modifier
7779
.background(MaterialTheme.colorScheme.background)
7880
.systemBarsPadding(),
79-
navController = navController,
81+
holder = navControllerHolder,
8082
)
8183
},
8284
)

app/src/main/java/st/slex/csplashscreen/ui/MainActivity.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import android.os.Bundle
44
import androidx.activity.ComponentActivity
55
import androidx.activity.compose.setContent
66
import androidx.compose.runtime.Composable
7+
import androidx.compose.runtime.Stable
78
import androidx.compose.runtime.remember
89
import androidx.core.view.WindowCompat
9-
import androidx.navigation.NavHostController
1010
import androidx.navigation.compose.rememberNavController
1111
import org.koin.androidx.compose.getKoin
1212
import org.koin.androidx.compose.koinViewModel
1313
import st.slex.csplashscreen.core.navigation.di.moduleCoreNavigation
1414
import st.slex.csplashscreen.core.ui.theme.AppTheme
15+
import st.slex.csplashscreen.ui.components.NavHostControllerHolder
1516

1617
class MainActivity : ComponentActivity() {
1718

@@ -21,15 +22,15 @@ class MainActivity : ComponentActivity() {
2122
WindowCompat.setDecorFitsSystemWindows(window, false)
2223
setContent {
2324
AppTheme {
24-
val navHostController = rememberNavController()
25-
SetupComposeDependencies(navHostController)
25+
val navHostControllerHolder = NavHostControllerHolder(rememberNavController())
26+
SetupComposeDependencies(navHostControllerHolder)
2627

2728
val viewModel = koinViewModel<InitialAppViewModel>()
2829
InitialApp(
2930
/*TODO AFTER reconfiguration controller in VM don't change it State,
3031
so it need to have latest instance.
3132
Need Research to find more efficient way */
32-
navController = navHostController,
33+
navControllerHolder = navHostControllerHolder,
3334
onBottomAppBarClick = remember {
3435
{ viewModel.navigate(it) }
3536
}
@@ -39,12 +40,13 @@ class MainActivity : ComponentActivity() {
3940
}
4041

4142
@Composable
43+
@Stable
4244
private fun SetupComposeDependencies(
43-
navController: NavHostController
45+
holder: NavHostControllerHolder
4446
) {
4547
getKoin().loadModules(
4648
listOf(
47-
moduleCoreNavigation(navController),
49+
moduleCoreNavigation(holder.navController),
4850
)
4951
)
5052
}

app/src/main/java/st/slex/csplashscreen/ui/components/NavigationHost.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package st.slex.csplashscreen.ui.components
22

33
import androidx.compose.runtime.Composable
4+
import androidx.compose.runtime.Stable
45
import androidx.compose.ui.Modifier
56
import androidx.navigation.NavHostController
67
import androidx.navigation.compose.NavHost
@@ -12,14 +13,18 @@ import st.slex.csplashscreen.feature.home.navigation.homeGraph
1213
import st.slex.csplashscreen.feature.search.navigation.searchPhotosGraph
1314
import st.slex.csplashscreen.feature.user.navigation.userGraph
1415

16+
@Stable
17+
class NavHostControllerHolder(val navController: NavHostController)
18+
1519
@Composable
20+
@Stable
1621
fun NavigationHost(
17-
navController: NavHostController,
22+
holder: NavHostControllerHolder,
1823
modifier: Modifier = Modifier,
1924
startDestination: AppDestination = AppDestination.HOME
2025
) {
2126
NavHost(
22-
navController = navController,
27+
navController = holder.navController,
2328
startDestination = startDestination.navigationRoute
2429
) {
2530
homeGraph(modifier)

build-logic/dependencies/build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ dependencies {
1111
compileOnly(libs.ksp.gradlePlugin)
1212
compileOnly(libs.room.gradlePlugin)
1313
compileOnly(libs.android.tools.common)
14+
compileOnly(libs.vkompose.gradlePlugin)
15+
compileOnly(libs.composeCompiler.gradlePlugin)
1416
}
1517

1618
tasks {
@@ -38,7 +40,7 @@ gradlePlugin {
3840
id = "csplashscreen.android.library"
3941
implementationClass = "AndroidLibraryConventionPlugin"
4042
}
41-
register("roomLibrary"){
43+
register("roomLibrary") {
4244
id = "csplashscreen.room.library"
4345
implementationClass = "RoomLibraryConventionPlugin"
4446
}
Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import AppExt.findPluginId
2+
import AppExt.libs
13
import com.android.build.api.dsl.ApplicationExtension
24
import org.gradle.api.Plugin
35
import org.gradle.api.Project
@@ -7,11 +9,15 @@ import st.slex.csplashscreen.configureAndroidCompose
79
class AndroidApplicationComposeConventionPlugin : Plugin<Project> {
810

911
override fun apply(target: Project) {
10-
1112
with(target) {
1213
pluginManager.apply("com.android.application")
13-
val extension = extensions.getByType<ApplicationExtension>()
14-
configureAndroidCompose(extension)
14+
pluginManager.apply(libs.findPluginId("kotlin"))
15+
pluginManager.apply(libs.findPluginId("composeCompiler"))
16+
pluginManager.apply(libs.findPluginId("vkompose"))
17+
18+
configureAndroidCompose(
19+
commonExtension = extensions.getByType<ApplicationExtension>()
20+
)
1521
}
1622
}
1723
}

build-logic/dependencies/src/main/kotlin/AndroidApplicationConventionPlugin.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import AppExt.currentLibs
21
import AppExt.findVersionInt
32
import AppExt.findVersionString
3+
import AppExt.libs
44
import com.android.build.api.dsl.ApplicationExtension
5-
import com.google.devtools.ksp.gradle.KspExtension
65
import org.gradle.api.Plugin
76
import org.gradle.api.Project
87
import org.gradle.kotlin.dsl.configure
@@ -16,7 +15,6 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
1615

1716
override fun apply(target: Project) {
1817
with(target) {
19-
val libs = currentLibs
2018
with(pluginManager) {
2119
apply("com.android.application")
2220
apply("org.jetbrains.kotlin.android")
@@ -36,10 +34,6 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
3634
configureSigning(target)
3735
}
3836
}
39-
40-
extensions.configure<KspExtension> {
41-
arg("KOIN_CONFIG_CHECK", "true")
42-
}
4337
}
4438
}
4539
}

0 commit comments

Comments
 (0)