Skip to content

Commit

Permalink
fix navigation and hilt errors
Browse files Browse the repository at this point in the history
  • Loading branch information
brandyodhiambo committed Apr 18, 2024
1 parent 774f11d commit 1d1562c
Show file tree
Hide file tree
Showing 15 changed files with 53 additions and 75 deletions.
2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 9 additions & 13 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ plugins {
id("org.jetbrains.kotlin.android")
id("kotlin-parcelize")
id("com.google.devtools.ksp")
id("dagger.hilt.android.plugin")
}

apply {
Expand All @@ -14,11 +15,9 @@ android {
namespace = AndroidConfig.applicationId

applicationVariants.all {
kotlin.sourceSets {
getByName(name) {
kotlin.srcDir("build/generated/ksp/$name/kotlin")
}
}
addJavaSourceFoldersToModel(
File(buildDir, "generated/ksp/$name/kotlin")
)
}

defaultConfig {
Expand Down Expand Up @@ -71,14 +70,11 @@ dependencies {
implementation(project(Module.home))
implementation(project(Module.statistics))
implementation(project(Module.settings))
}

// RamCosta Navigation
implementation("io.github.raamcosta.compose-destinations:core:1.10.2")
ksp("io.github.raamcosta.compose-destinations:ksp:1.10.2")

// Navigation animation
implementation("com.google.accompanist:accompanist-navigation-animation:0.34.0")

// Splash Api dependency
implementation("androidx.core:core-splashscreen:1.0.1")
ksp {
arg("compose-destinations.mode", "destinations")
arg("compose-destinations.moduleName", "app")
}

10 changes: 9 additions & 1 deletion app/src/main/java/com/brandyodhiambo/quench/QuenchApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,17 @@ class QuenchApp : Application(), Configuration.Provider {

@Inject
lateinit var workerFactory: HiltWorkerFactory

override val workManagerConfiguration: Configuration
get() = Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()

/*@Inject
lateinit var workerFactory: HiltWorkerFactory
override fun getWorkManagerConfiguration(): Configuration {
return Configuration.Builder()
.setWorkerFactory(workerFactory)
.build()
}
}*/
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class FeatureNavigator(
AddReminderNavigator {
override fun navigateToNotificationScreen() {
navController.navigate(
NavGraphs.settings.route
QuenchNavGraphs.settings.route
)
}

Expand All @@ -55,9 +55,9 @@ class FeatureNavigator(

override fun navigateToMainScreen() {
navController.navigate(
NavGraphs.home.route
QuenchNavGraphs.home.route
) {
popUpTo(NavGraphs.splash.route) {
popUpTo(QuenchNavGraphs.splash.route) {
inclusive = true
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import com.ramcosta.composedestinations.spec.DestinationSpec
import com.ramcosta.composedestinations.spec.NavGraphSpec
import com.ramcosta.composedestinations.spec.Route

object NavGraphs {
object QuenchNavGraphs {
val splash = object : NavGraphSpec {
override val route: String = "splash"
override val startRoute: Route = SplashScreenDestination routedIn this
Expand All @@ -36,14 +36,15 @@ object NavGraphs {
SleepAndWakeTimeScreenDestination
).routedIn(this).associateBy { it.route }
}

val home = object : NavGraphSpec {
override val route: String = "home"
override val startRoute: Route = MainScreenDestination routedIn this
override val destinationsByRoute = listOf<DestinationSpec<*>>(
HomeScreenDestination,
MainScreenDestination
).routedIn(this).associateBy { it.route }
}
}

val settings = object : NavGraphSpec {
override val route: String = "settings"
Expand Down
12 changes: 7 additions & 5 deletions app/src/main/java/com/brandyodhiambo/quench/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@ import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Modifier
import androidx.navigation.NavDestination
import androidx.navigation.NavDestination.Companion.hierarchy
import androidx.navigation.compose.rememberNavController
import com.brandyodhiambo.common.domain.model.AlarmData
import com.brandyodhiambo.designsystem.theme.QuenchTheme
import com.brandyodhiambo.designsystem.theme.Theme
import com.brandyodhiambo.home.presentation.homeScreen.HomeViewModel
import com.brandyodhiambo.quench.R
import com.brandyodhiambo.quench.navigation.FeatureNavigator
import com.brandyodhiambo.quench.navigation.NavGraphs
import com.brandyodhiambo.quench.navigation.QuenchNavGraphs
import com.brandyodhiambo.quench.util.AlarmSchedularImpl
import com.brandyodhiambo.quench.util.createChannel
import com.brandyodhiambo.statistics.worker.startAchievementOnetimeWorkRequest
Expand All @@ -43,6 +44,7 @@ import com.brandyodhiambo.statistics.worker.startMonthlyOnetimeWorkRequest
import com.brandyodhiambo.statistics.worker.startWeeklyOnetimeWorkRequest
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
import com.ramcosta.composedestinations.DestinationsNavHost
import com.ramcosta.composedestinations.navigation.DependenciesContainerBuilder
import com.ramcosta.composedestinations.navigation.dependency
import com.ramcosta.composedestinations.rememberNavHostEngine
import com.ramcosta.composedestinations.scope.DestinationScope
Expand Down Expand Up @@ -81,11 +83,11 @@ class MainActivity : ComponentActivity() {
message = getString(R.string.it_s_time_to_drink_water)
)
alarmItem.let(scheduler::schedule)
val navController = rememberAnimatedNavController()
val navController = rememberNavController()
val navHostEngine = rememberNavHostEngine()

DestinationsNavHost(
navGraph = NavGraphs.root,
navGraph = QuenchNavGraphs.root,
navController = navController,
engine = navHostEngine,
dependenciesContainerBuilder = {
Expand All @@ -100,7 +102,7 @@ class MainActivity : ComponentActivity() {
}
}

fun DestinationScope<*>.currentNavigator(): FeatureNavigator {
fun DependenciesContainerBuilder<*>.currentNavigator(): FeatureNavigator {
return FeatureNavigator(
navController = navController,
navGraph = navBackStackEntry.destination.navGraph()
Expand All @@ -109,7 +111,7 @@ fun DestinationScope<*>.currentNavigator(): FeatureNavigator {

fun NavDestination.navGraph(): NavGraphSpec {
hierarchy.forEach { destination ->
NavGraphs.root.nestedNavGraphs.forEach { navGraph ->
QuenchNavGraphs.root.nestedNavGraphs.forEach { navGraph ->
if (destination.route == navGraph.route) {
return navGraph
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import com.brandyodhiambo.designsystem.components.Loader
import com.brandyodhiambo.home.presentation.sleepWakeScreen.SleepWakeViewModel
import com.brandyodhiambo.quench.R
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootNavGraph
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.withContext
Expand All @@ -42,7 +43,7 @@ interface SplashScreenNavigator {
}

@Composable
@Destination(start = true)
@Destination
fun SplashScreen(
navigator: SplashScreenNavigator,
viewModel: SleepWakeViewModel = hiltViewModel()
Expand Down
6 changes: 3 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ buildscript {
plugins {
id("com.android.application") version ("8.3.1") apply false
id("com.android.library") version ("8.3.1") apply false
id("org.jetbrains.kotlin.android") version ("1.9.23") apply false
id("com.google.dagger.hilt.android") version "2.49" apply false
id("com.google.devtools.ksp") version "1.9.23-1.0.20" apply false
id("org.jetbrains.kotlin.android") version ("1.9.22") apply false
id("com.google.dagger.hilt.android") version "2.51" apply false
id("com.google.devtools.ksp") version "1.9.22-1.0.17" apply false
id("org.jlleitschuh.gradle.ktlint") version "12.1.0" apply false
id("com.diffplug.spotless") version "6.25.0" apply false
}
Expand Down
1 change: 1 addition & 0 deletions buildSrc/src/main/java/AndroidConfig.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ object AndroidConfig {
const val versionCode = 3
const val versionName = "0.0.3"
const val javaVersion = "17"
const val ksp = "1.9.22-1.0.17"
}
Empty file.
2 changes: 1 addition & 1 deletion buildSrc/src/main/java/Versions.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
object Versions {
const val compose_version = "1.6.5"
const val compose_compiler = "1.5.11"
const val compose_compiler = "1.5.10"
const val room_version = "2.6.1"
const val work_version = "2.7.1"
const val lottie_version = "6.4.0"
Expand Down
10 changes: 0 additions & 10 deletions feature/home/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,6 @@ dependencies {
implementation("com.google.accompanist:accompanist-navigation-animation:0.34.0")
}

kotlin {
sourceSets {
debug {
kotlin.srcDir("build/generated/ksp/debug/kotlin")
}
release {
kotlin.srcDir("build/generated/ksp/release/kotlin")
}
}
}

ksp {
arg("compose-destinations.mode", "destinations")
Expand Down
17 changes: 1 addition & 16 deletions feature/settings/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,10 @@ dependencies {
implementation(project(Module.designsystem))
implementation(project(Module.common))

// RamCosta Navigation
implementation("io.github.raamcosta.compose-destinations:core:1.10.2")
implementation(project(mapOf("path" to ":feature:home")))
ksp("io.github.raamcosta.compose-destinations:ksp:1.10.2")

// Navigation animation
implementation("com.google.accompanist:accompanist-navigation-animation:0.34.0")
}

kotlin {
sourceSets {
debug {
kotlin.srcDir("build/generated/ksp/debug/kotlin")
}
release {
kotlin.srcDir("build/generated/ksp/release/kotlin")
}
}
}


ksp {
arg("compose-destinations.mode", "destinations")
Expand Down
17 changes: 0 additions & 17 deletions feature/statistics/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -50,31 +50,14 @@ dependencies {
implementation(project(Module.designsystem))
implementation(project(Module.common))
implementation(project(Module.database))

// RamCosta Navigation
implementation("io.github.raamcosta.compose-destinations:core:1.10.2")
implementation("androidx.work:work-runtime-ktx:2.9.0")
implementation(project(mapOf("path" to ":feature:home")))
ksp("io.github.raamcosta.compose-destinations:ksp:1.10.2")

// Navigation animation
implementation("com.google.accompanist:accompanist-navigation-animation:0.34.0")

// charts
implementation("com.github.MahmoudIbrahim3:android-compose-charts:1.2.2")
}

kotlin {
sourceSets {
debug {
kotlin.srcDir("build/generated/ksp/debug/kotlin")
}
release {
kotlin.srcDir("build/generated/ksp/release/kotlin")
}
}
}

ksp {
arg("compose-destinations.mode", "destinations")
arg("compose-destinations.moduleName", "statistics")
Expand Down
15 changes: 13 additions & 2 deletions shared_dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,11 @@ dependencies {
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0")

// Dagger - Hilt
implementation("com.google.dagger:hilt-android:2.49")
ksp("com.google.dagger:hilt-android-compiler:2.49")
implementation("com.google.dagger:hilt-android:2.51")
ksp("com.google.dagger:hilt-android-compiler:2.51")
implementation("androidx.hilt:hilt-work:1.2.0")
// When using Kotlin.
ksp("androidx.hilt:hilt-compiler:1.2.0")
implementation("androidx.hilt:hilt-navigation-compose:1.2.0")

// Timber
Expand Down Expand Up @@ -67,4 +69,13 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")


// RamCosta Navigation
implementation("io.github.raamcosta.compose-destinations:core:1.9.62")
ksp("io.github.raamcosta.compose-destinations:ksp:1.9.62")

// Navigation animation
implementation("com.google.accompanist:accompanist-navigation-animation:0.34.0")

// Splash Api dependency
implementation("androidx.core:core-splashscreen:1.0.1")
}

0 comments on commit 1d1562c

Please sign in to comment.