Skip to content

Commit 8d16661

Browse files
committed
Prepare for iOS
1 parent c2ea4c3 commit 8d16661

File tree

12 files changed

+200
-30
lines changed

12 files changed

+200
-30
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.michaelbel.movies.account
2+
3+
import androidx.compose.ui.window.DialogProperties
4+
import androidx.navigation.NavController
5+
import androidx.navigation.NavGraphBuilder
6+
import androidx.navigation.compose.dialog
7+
import org.michaelbel.movies.account.ui.AccountRoute
8+
9+
fun NavController.navigateToAccount() {
10+
navigate(AccountDestination.route)
11+
}
12+
13+
fun NavGraphBuilder.accountGraph(
14+
navigateBack: () -> Unit
15+
) {
16+
dialog(
17+
route = AccountDestination.route,
18+
dialogProperties = DialogProperties(
19+
usePlatformDefaultWidth = true
20+
)
21+
) {
22+
AccountRoute(
23+
onBackClick = navigateBack
24+
)
25+
}
26+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.michaelbel.movies.details
2+
3+
import androidx.navigation.NavController
4+
import androidx.navigation.NavGraphBuilder
5+
import androidx.navigation.NavType
6+
import androidx.navigation.compose.composable
7+
import androidx.navigation.navArgument
8+
import org.michaelbel.movies.details.ui.DetailsRoute
9+
import org.michaelbel.movies.persistence.database.typealiases.MovieId
10+
import org.michaelbel.movies.persistence.database.typealiases.PagingKey
11+
12+
fun NavController.navigateToDetails(pagingKey: PagingKey, movieId: MovieId) {
13+
navigate("movie?movieList=$pagingKey&movieId=$movieId")
14+
}
15+
16+
fun NavGraphBuilder.detailsGraph(
17+
navigateBack: () -> Unit,
18+
navigateToGallery: (MovieId) -> Unit
19+
) {
20+
composable(
21+
route = DetailsDestination.route,
22+
arguments = listOf(
23+
navArgument("movieList") {
24+
type = NavType.StringType
25+
nullable = true
26+
},
27+
navArgument("movieId") { type = NavType.LongType }
28+
),
29+
) {
30+
DetailsRoute(
31+
onBackClick = navigateBack,
32+
onNavigateToGallery = navigateToGallery
33+
)
34+
}
35+
}

feature/feed-impl/src/iosMain/kotlin/org/michaelbel/movies/feed/ui/FeedRoute.desktop.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.michaelbel.movies.feed.ui
22

3+
import androidx.compose.foundation.clickable
4+
import androidx.compose.material3.Text
35
import androidx.compose.runtime.Composable
46
import androidx.compose.ui.Modifier
57

@@ -13,6 +15,11 @@ fun FeedRoute(
1315
modifier: Modifier = Modifier,
1416
//viewModel: FeedViewModel = koinInject<FeedViewModel>()
1517
) {
18+
Text(
19+
text = "settings",
20+
modifier = Modifier.clickable { onNavigateToSettings() }
21+
)
22+
1623
/*val currentFeedView by viewModel.currentFeedView.collectAsStateCommon()
1724
val currentMovieList by viewModel.currentMovieList.collectAsStateCommon()
1825
val pagingData by viewModel.pagingDataFlow.collectAsStateCommon()
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.michaelbel.movies.feed
2+
3+
import androidx.navigation.NavGraphBuilder
4+
import androidx.navigation.compose.composable
5+
import org.michaelbel.movies.feed.ui.FeedRoute
6+
7+
fun NavGraphBuilder.feedGraph(
8+
navigateToSearch: () -> Unit,
9+
navigateToAuth: () -> Unit,
10+
navigateToAccount: () -> Unit,
11+
navigateToSettings: () -> Unit,
12+
navigateToDetails: (String, Int) -> Unit
13+
) {
14+
composable(
15+
route = FeedDestination.route
16+
) {
17+
FeedRoute(
18+
onNavigateToSearch = navigateToSearch,
19+
onNavigateToAccount = navigateToAccount,
20+
onNavigateToAuth = navigateToAuth,
21+
onNavigateToSettings = navigateToSettings,
22+
onNavigateToDetails = navigateToDetails
23+
)
24+
}
25+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.michaelbel.movies.gallery
2+
3+
import androidx.navigation.NavController
4+
import androidx.navigation.NavGraphBuilder
5+
import androidx.navigation.compose.composable
6+
import org.michaelbel.movies.gallery.ui.GalleryRoute
7+
import org.michaelbel.movies.persistence.database.typealiases.MovieId
8+
9+
fun NavController.navigateToGallery(movieId: MovieId) {
10+
navigate("gallery/$movieId")
11+
}
12+
13+
fun NavGraphBuilder.galleryGraph(
14+
navigateBack: () -> Unit,
15+
) {
16+
composable(
17+
route = GalleryDestination.route
18+
) {
19+
GalleryRoute(
20+
onBackClick = navigateBack
21+
)
22+
}
23+
}

feature/main-impl/src/iosMain/kotlin/org/michaelbel/movies/main/MainContent.ios.kt

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,20 @@ import androidx.compose.runtime.Composable
44
import androidx.navigation.NavHostController
55
import androidx.navigation.compose.NavHost
66
import androidx.navigation.compose.rememberNavController
7+
import org.michaelbel.movies.account.accountGraph
8+
import org.michaelbel.movies.account.navigateToAccount
79
import org.michaelbel.movies.auth.authGraph
10+
import org.michaelbel.movies.auth.ktx.navigateToAuth
11+
import org.michaelbel.movies.details.detailsGraph
12+
import org.michaelbel.movies.details.navigateToDetails
813
import org.michaelbel.movies.feed.FeedDestination
14+
import org.michaelbel.movies.feed.feedGraph
15+
import org.michaelbel.movies.gallery.galleryGraph
16+
import org.michaelbel.movies.gallery.navigateToGallery
17+
import org.michaelbel.movies.search.navigateToSearch
18+
import org.michaelbel.movies.search.searchGraph
19+
import org.michaelbel.movies.settings.navigateToSettings
20+
import org.michaelbel.movies.settings.settingsGraph
921

1022
@Composable
1123
fun MainContent(
@@ -18,7 +30,7 @@ fun MainContent(
1830
authGraph(
1931
navigateBack = navHostController::popBackStack
2032
)
21-
/*accountGraph(
33+
accountGraph(
2234
navigateBack = navHostController::popBackStack
2335
)
2436
feedGraph(
@@ -41,6 +53,6 @@ fun MainContent(
4153
)
4254
settingsGraph(
4355
navigateBack = navHostController::popBackStack
44-
)*/
56+
)
4557
}
4658
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package org.michaelbel.movies.search
2+
3+
import androidx.navigation.NavController
4+
import androidx.navigation.NavGraphBuilder
5+
import androidx.navigation.compose.composable
6+
import org.michaelbel.movies.search.ui.SearchRoute
7+
8+
fun NavController.navigateToSearch() {
9+
navigate(SearchDestination.route)
10+
}
11+
12+
fun NavGraphBuilder.searchGraph(
13+
navigateBack: () -> Unit,
14+
navigateToDetails: (String, Int) -> Unit,
15+
) {
16+
composable(
17+
route = SearchDestination.route
18+
) {
19+
SearchRoute(
20+
onBackClick = navigateBack,
21+
onNavigateToDetails = navigateToDetails
22+
)
23+
}
24+
}

feature/settings-impl/src/iosMain/kotlin/org/michaelbel/movies/settings/ui/SettingsRoute.ios.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.michaelbel.movies.settings.ui
22

3+
import androidx.compose.foundation.clickable
4+
import androidx.compose.material3.Text
35
import androidx.compose.runtime.Composable
46
import androidx.compose.ui.Modifier
57

@@ -9,6 +11,10 @@ fun SettingsRoute(
911
modifier: Modifier = Modifier,
1012
//viewModel: SettingsViewModel = koinInject<SettingsViewModel>()
1113
) {
14+
Text(
15+
text = "feed",
16+
modifier = Modifier.clickable { onBackClick() }
17+
)
1218
/*val currentLanguage = AppLanguage.transform(stringResource(MoviesStrings.language_code))
1319
val themeData by viewModel.themeData.collectAsStateCommon()
1420
val currentFeedView by viewModel.currentFeedView.collectAsStateCommon()
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.michaelbel.movies.settings
2+
3+
import androidx.navigation.NavController
4+
import androidx.navigation.NavGraphBuilder
5+
import androidx.navigation.compose.composable
6+
import org.michaelbel.movies.settings.ui.SettingsRoute
7+
8+
fun NavController.navigateToSettings() {
9+
navigate(SettingsDestination.route)
10+
}
11+
12+
fun NavGraphBuilder.settingsGraph(
13+
navigateBack: () -> Unit
14+
) {
15+
composable(
16+
route = SettingsDestination.route
17+
) {
18+
SettingsRoute(
19+
onBackClick = navigateBack
20+
)
21+
}
22+
}

iosAppCompose/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ kotlin {
2626

2727
sourceSets {
2828
commonMain.dependencies {
29+
implementation(project(":core:platform-services:inject-ios"))
30+
implementation(project(":feature:main-impl"))
2931
implementation(compose.runtime)
3032
implementation(compose.foundation)
3133
implementation(compose.material)
@@ -59,8 +61,6 @@ kotlin {
5961
implementation(compose.ui)
6062
implementation(compose.components.resources)
6163
implementation(compose.components.uiToolingPreview)
62-
63-
//implementation(project(":feature:feed"))
6464
}
6565
}
6666
}

0 commit comments

Comments
 (0)