Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migrate to compose destinations v2 #88

Merged
merged 1 commit into from
May 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.

7 changes: 4 additions & 3 deletions app/src/main/java/com/kanyideveloper/muviz/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,11 @@ import androidx.navigation.compose.rememberNavController
import com.kanyideveloper.muviz.common.presentation.components.StandardScaffold
import com.kanyideveloper.muviz.common.presentation.theme.MuvizTheme
import com.kanyideveloper.muviz.common.presentation.theme.Theme
import com.kanyideveloper.muviz.destinations.AccountScreenDestination
import com.kanyideveloper.muviz.destinations.FavoritesScreenDestination
import com.kanyideveloper.muviz.destinations.HomeScreenDestination
import com.ramcosta.composedestinations.DestinationsNavHost
import com.ramcosta.composedestinations.generated.NavGraphs
import com.ramcosta.composedestinations.generated.destinations.AccountScreenDestination
import com.ramcosta.composedestinations.generated.destinations.FavoritesScreenDestination
import com.ramcosta.composedestinations.generated.destinations.HomeScreenDestination
import com.ramcosta.composedestinations.rememberNavHostEngine
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,10 @@ import com.kanyideveloper.muviz.common.presentation.theme.MuvizTheme
import com.kanyideveloper.muviz.common.util.appVersionCode
import com.kanyideveloper.muviz.common.util.appVersionName
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.navigation.DestinationsNavigator

@Destination
@Destination<RootGraph>
@Composable
fun AboutScreen(
navigator: DestinationsNavigator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,12 @@ import com.kanyideveloper.muviz.about.domain.model.AccountItem
import com.kanyideveloper.muviz.common.presentation.components.StandardToolbar
import com.kanyideveloper.muviz.common.presentation.theme.MuvizTheme
import com.kanyideveloper.muviz.common.presentation.theme.Theme
import com.kanyideveloper.muviz.destinations.AboutScreenDestination
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.AboutScreenDestination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator

@Destination
@Destination<RootGraph>
@Composable
fun AccountScreen(
navigator: DestinationsNavigator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ import androidx.hilt.navigation.compose.hiltViewModel
import com.kanyideveloper.muviz.cast.domain.model.Cast
import com.kanyideveloper.muviz.common.presentation.components.StandardToolbar
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.navigation.DestinationsNavigator

@Destination
@Destination<RootGraph>
@Composable
fun CastDetailsScreen(
cast: Cast,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,12 @@ import com.kanyideveloper.muviz.cast.domain.model.Credits
import com.kanyideveloper.muviz.common.presentation.components.StandardToolbar
import com.kanyideveloper.muviz.common.presentation.theme.MuvizTheme
import com.kanyideveloper.muviz.common.util.Constants
import com.kanyideveloper.muviz.destinations.CastDetailsScreenDestination
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.CastDetailsScreenDestination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator

@Destination
@Destination<RootGraph>
@Composable
fun CastsScreen(
credits: Credits,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,28 @@
package com.kanyideveloper.muviz.common.domain.model

import com.kanyideveloper.muviz.R
import com.kanyideveloper.muviz.destinations.AccountScreenDestination
import com.kanyideveloper.muviz.destinations.Destination
import com.kanyideveloper.muviz.destinations.FavoritesScreenDestination
import com.kanyideveloper.muviz.destinations.HomeScreenDestination
import com.ramcosta.composedestinations.generated.destinations.AccountScreenDestination
import com.ramcosta.composedestinations.generated.destinations.FavoritesScreenDestination
import com.ramcosta.composedestinations.generated.destinations.HomeScreenDestination

sealed class BottomNavItem(var title: String, var icon: Int, var destination: Destination) {
sealed class BottomNavItem(
val title: String,
val icon: Int,
val route: String,
) {
data object Home : BottomNavItem(
title = "Home",
icon = R.drawable.ic_home,
destination = HomeScreenDestination
route = HomeScreenDestination.route
)
data object Favorites: BottomNavItem(
title = "Favorites",
icon = R.drawable.ic_star,
destination = FavoritesScreenDestination
route = FavoritesScreenDestination.route
)
data object Account: BottomNavItem(
title = "Account",
icon = R.drawable.ic_profile,
destination = AccountScreenDestination
route = AccountScreenDestination.route
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ fun StandardScaffold(
)
},
alwaysShowLabel = true,
selected = currentDestination?.route?.contains(item.destination.route) == true,
selected = currentDestination?.route?.contains(item.route) == true,
onClick = {
navController.navigate(item.destination.route) {
navController.navigate(item.route) {
navController.graph.startDestinationRoute?.let { screenRoute ->
popUpTo(screenRoute) {
saveState = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.TopAppBarDefaults
Expand Down Expand Up @@ -49,7 +49,7 @@ fun StandardToolbar(
onBackArrowClicked
) {
Icon(
imageVector = Icons.Default.ArrowBack,
imageVector = Icons.AutoMirrored.Default.ArrowBack,
contentDescription = null,
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,12 @@ import coil.compose.rememberImagePainter
import com.kanyideveloper.muviz.common.presentation.components.StandardToolbar
import com.kanyideveloper.muviz.favorites.data.data.local.Favorite
import com.kanyideveloper.muviz.filmdetail.presentation.common.VoteAverageRatingIndicator
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.FilmDetailsScreenDestination
import timber.log.Timber

@OptIn(ExperimentalMaterialApi::class)
@Destination
@Destination<RootGraph>
@Composable
fun FavoritesScreen(
navigator: DestinationsNavigator,
Expand Down Expand Up @@ -162,14 +164,14 @@ fun FavoritesScreen(
.clickable {
if (favorite.mediaType == "tv") {
navigator.navigate(
com.kanyideveloper.muviz.destinations.FilmDetailsScreenDestination(
FilmDetailsScreenDestination(
filmId = favorite.mediaId,
filmType = "tv"
)
)
} else if (favorite.mediaType == "movie") {
navigator.navigate(
com.kanyideveloper.muviz.destinations.FilmDetailsScreenDestination(
FilmDetailsScreenDestination(
filmId = favorite.mediaId,
filmType = "movie"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,15 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.kanyideveloper.muviz.destinations.CastDetailsScreenDestination
import com.kanyideveloper.muviz.destinations.CastsScreenDestination
import com.kanyideveloper.muviz.filmdetail.presentation.common.FilmImageBanner
import com.kanyideveloper.muviz.filmdetail.presentation.common.FilmInfo
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.CastDetailsScreenDestination
import com.ramcosta.composedestinations.generated.destinations.CastsScreenDestination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator

@Destination
@Destination<RootGraph>
@Composable
fun FilmDetailsScreen(
filmId: Int,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,16 +68,15 @@ import coil.request.ImageRequest
import com.kanyideveloper.muviz.R
import com.kanyideveloper.muviz.common.presentation.components.StandardToolbar
import com.kanyideveloper.muviz.common.util.Constants.IMAGE_BASE_UR
import com.kanyideveloper.muviz.destinations.FilmDetailsScreenDestination
import com.kanyideveloper.muviz.destinations.SearchScreenDestination
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootNavGraph
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.FilmDetailsScreenDestination
import com.ramcosta.composedestinations.generated.destinations.SearchScreenDestination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
import retrofit2.HttpException
import java.io.IOException

@RootNavGraph(start = true)
@Destination
@Destination<RootGraph>(start = true)
@Composable
fun HomeScreen(
navigator: DestinationsNavigator,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,17 @@ import com.kanyideveloper.muviz.R
import com.kanyideveloper.muviz.common.presentation.components.StandardToolbar
import com.kanyideveloper.muviz.common.presentation.theme.MuvizTheme
import com.kanyideveloper.muviz.common.util.Constants
import com.kanyideveloper.muviz.destinations.FilmDetailsScreenDestination
import com.kanyideveloper.muviz.genre.domain.model.Genre
import com.kanyideveloper.muviz.search.domain.model.Search
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.FilmDetailsScreenDestination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
import retrofit2.HttpException
import java.io.IOException

@OptIn(androidx.compose.ui.ExperimentalComposeUiApi::class)
@Destination(start = false)
@Destination<RootGraph>
@Composable
fun SearchScreen(
navigator: DestinationsNavigator,
Expand Down
6 changes: 3 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ accompanistFlowlayout = "0.34.0"
accompanist = "0.34.0"
activityCompose = "1.9.0"
androidxJunit = "1.1.5"
animationsCore = "1.10.2"
composeDestinations = "2.1.0-beta08"
coilCompose = "2.6.0"
constraintlayout = "2.1.4"
coreKtx = "1.13.1"
Expand Down Expand Up @@ -60,7 +60,7 @@ androidx-ui = { module = "androidx.compose.ui:ui", version.ref = "compose" }
androidx-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose" }
androidx-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose" }
androidx-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose" }
compose-destination-core = { module = "io.github.raamcosta.compose-destinations:animations-core", version.ref = "animationsCore" }
compose-destination-core = { module = "io.github.raamcosta.compose-destinations:core", version.ref = "composeDestinations" }
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coilCompose" }
converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" }
hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hiltAndroid" }
Expand All @@ -69,7 +69,7 @@ jakewharton-timber = { module = "com.jakewharton.timber:timber", version.ref = "
junit = { module = "junit:junit", version.ref = "junitVersion" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutinesAndroid" }
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" }
compose-destination-ksp = { module = "io.github.raamcosta.compose-destinations:ksp", version.ref = "animationsCore" }
compose-destination-ksp = { module = "io.github.raamcosta.compose-destinations:ksp", version.ref = "composeDestinations" }
logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
Expand Down