diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index 49c22f42f..4f8566663 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -19,8 +19,6 @@ kotlin { api(libs.bundles.koin.common) implementation(compose.material3) implementation(libs.bundles.kotlinx.coroutines.common) - /*implementation(libs.bundles.compose.viewmodel.common)*/ - implementation(libs.bundles.paging.common) } androidMain.dependencies { api(libs.bundles.kotlinx.coroutines.android) @@ -34,6 +32,7 @@ kotlin { api(libs.bundles.koin.compose.work.android) implementation(libs.bundles.appcompat.android) implementation(libs.bundles.browser.android) + implementation(libs.bundles.paging.common) // fixme ломает navigation } val desktopMain by getting desktopMain.dependencies { diff --git a/core/interactor/build.gradle.kts b/core/interactor/build.gradle.kts index 04f2fbc36..1c268e8b5 100644 --- a/core/interactor/build.gradle.kts +++ b/core/interactor/build.gradle.kts @@ -21,7 +21,7 @@ kotlin { implementation(compose.runtime) implementation(compose.runtimeSaveable) implementation(libs.bundles.kotlinx.coroutines.common) - implementation(libs.bundles.paging.common) + implementation(libs.bundles.room.paging.common) } } } diff --git a/core/navigation/build.gradle.kts b/core/navigation/build.gradle.kts index f81d6a09a..10ffc1b1c 100644 --- a/core/navigation/build.gradle.kts +++ b/core/navigation/build.gradle.kts @@ -20,7 +20,7 @@ kotlin { val desktopMain by getting desktopMain.dependencies { api(libs.bundles.compose.navigation.common) - api(libs.bundles.precompose.desktop) + api(libs.bundles.compose.viewmodel.common) } } } diff --git a/core/persistence/build.gradle.kts b/core/persistence/build.gradle.kts index 972d6cc22..66113ee43 100644 --- a/core/persistence/build.gradle.kts +++ b/core/persistence/build.gradle.kts @@ -20,7 +20,6 @@ kotlin { api(project(":core:common")) api(project(":core:network")) implementation(libs.bundles.datastore.common) - implementation(libs.bundles.paging.common) implementation(libs.bundles.room.common) implementation(libs.bundles.sqlite.common) implementation(libs.bundles.okio.common) diff --git a/core/repository/build.gradle.kts b/core/repository/build.gradle.kts index 332e966ca..1728e29f3 100644 --- a/core/repository/build.gradle.kts +++ b/core/repository/build.gradle.kts @@ -17,7 +17,7 @@ kotlin { commonMain.dependencies { api(project(":core:persistence")) implementation(libs.bundles.kotlinx.coroutines.common) - implementation(libs.bundles.paging.common) + implementation(libs.bundles.room.paging.common) } } } diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 0c4973a4e..b7190af51 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -23,9 +23,8 @@ kotlin { sourceSets { commonMain.dependencies { implementation(project(":core:persistence")) - implementation(libs.bundles.paging.common) - implementation(libs.bundles.constraintlayout.common) implementation(libs.bundles.coil.common) + implementation(libs.bundles.constraintlayout.common) implementation(compose.components.resources) implementation(compose.foundation) implementation(compose.material) @@ -43,6 +42,7 @@ kotlin { api(libs.bundles.coil.android) api(libs.bundles.compose.android) api(libs.bundles.google.material.android) + implementation(libs.bundles.paging.common) // fixme ломает navigation } } } diff --git a/core/work/build.gradle.kts b/core/work/build.gradle.kts index 418ee0af4..6b2cf6fc6 100644 --- a/core/work/build.gradle.kts +++ b/core/work/build.gradle.kts @@ -18,7 +18,6 @@ kotlin { implementation(project(":core:interactor")) implementation(project(":core:notifications")) implementation(libs.bundles.kotlinx.serialization.common) - implementation(libs.bundles.paging.common) } androidMain.dependencies { implementation(libs.bundles.work.android) diff --git a/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MainWindowContent.kt b/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MainWindowContent.kt index 13b204a7f..62e62a0e3 100644 --- a/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MainWindowContent.kt +++ b/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MainWindowContent.kt @@ -1,8 +1,9 @@ package org.michaelbel.movies import androidx.compose.runtime.Composable -import moe.tlaster.precompose.navigation.NavHost -import moe.tlaster.precompose.navigation.rememberNavigator +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.rememberNavController import org.michaelbel.movies.account.accountGraph import org.michaelbel.movies.account.navigateToAccount import org.michaelbel.movies.auth.authGraph @@ -18,44 +19,10 @@ import org.michaelbel.movies.settings.navigateToSettings import org.michaelbel.movies.settings.settingsGraph @Composable -internal fun MainWindowContent() { - val navHostController = rememberNavigator() - +internal fun MainWindowContent( + navHostController: NavHostController = rememberNavController() +) { NavHost( - navigator = navHostController, - initialRoute = "feed" - ) { - authGraph( - navigateBack = navHostController::popBackStack - ) - accountGraph( - navigateBack = navHostController::popBackStack - ) - feedGraph( - navigateToSearch = navHostController::navigateToSearch, - navigateToAuth = navHostController::navigateToAuth, - navigateToAccount = navHostController::navigateToAccount, - navigateToSettings = navHostController::navigateToSettings, - navigateToDetails = navHostController::navigateToDetails - ) - detailsGraph( - navigateBack = navHostController::popBackStack, - navigateToGallery = navHostController::navigateToGallery - ) - galleryGraph( - navigateBack = navHostController::popBackStack - ) - searchGraph( - navigateBack = navHostController::popBackStack, - navigateToDetails = navHostController::navigateToDetails, - ) - settingsGraph( - navigateBack = navHostController::popBackStack - ) - } - - /*val navHostController: NavHostController = rememberNavController() - androidx.navigation.compose.NavHost( navController = navHostController, startDestination = "feed" ) { @@ -86,5 +53,5 @@ internal fun MainWindowContent() { settingsGraph( navigateBack = navHostController::popBackStack ) - }*/ + } } \ No newline at end of file diff --git a/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MoviesDesktop.kt b/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MoviesDesktop.kt index 97f26c2c8..76f1a22cf 100644 --- a/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MoviesDesktop.kt +++ b/desktopApp/src/jvmMain/kotlin/org/michaelbel/movies/MoviesDesktop.kt @@ -1,35 +1,66 @@ package org.michaelbel.movies -import androidx.compose.ui.window.singleWindowApplication -import moe.tlaster.precompose.PreComposeApp -import org.koin.core.context.startKoin +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.window.Window +import androidx.compose.ui.window.application +import androidx.lifecycle.ViewModelStore +import androidx.lifecycle.ViewModelStoreOwner +import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner import org.michaelbel.movies.common.ThemeData import org.michaelbel.movies.common.theme.AppTheme -import org.michaelbel.movies.di.appKoinModule import org.michaelbel.movies.ui.theme.MoviesTheme -fun main() { - startKoin { - modules(appKoinModule) +fun main() = application { + Window(onCloseRequest = ::exitApplication, title = "Movies") { + App() } +} - singleWindowApplication( - title = "Movies", - icon = null +@Composable +private fun App() = withViewModelStoreOwner { + MoviesTheme( + themeData = ThemeData( + appTheme = AppTheme.FollowSystem, + dynamicColors = false, + paletteKey = 0, + seedColor = 0 + ), + theme = AppTheme.FollowSystem, + enableEdgeToEdge = { _,_ -> } ) { - PreComposeApp { - MoviesTheme( - themeData = ThemeData( - appTheme = AppTheme.FollowSystem, - dynamicColors = false, - paletteKey = 0, - seedColor = 0 - ), - theme = AppTheme.FollowSystem, - enableEdgeToEdge = { _,_ -> } - ) { - MainWindowContent() - } - } + MainWindowContent() + } +} + +private class ComposeViewModelStoreOwner: ViewModelStoreOwner { + override val viewModelStore = ViewModelStore() + fun dispose() { viewModelStore.clear() } +} + +@Composable +private fun rememberComposeViewModelStoreOwner(): ViewModelStoreOwner { + val viewModelStoreOwner = remember { ComposeViewModelStoreOwner() } + DisposableEffect(viewModelStoreOwner) { + onDispose { viewModelStoreOwner.dispose() } + } + return viewModelStoreOwner +} + +@Composable +internal fun withViewModelStoreOwner(content: @Composable () -> Unit) { + if (LocalViewModelStoreOwner.current != null) { + // Normal case: use system-provided owner + content() + } else { + // Fallback case: use ViewModelStoreOwner with scope of this composable. + // It's required for Compose Multiplatform for now because it's not providing default value yet. + // Expected to be fixed in Compose Multiplatform 1.7.0 + CompositionLocalProvider( + LocalViewModelStoreOwner provides rememberComposeViewModelStoreOwner(), + content = content + ) } } \ No newline at end of file diff --git a/feature/account/src/desktopMain/kotlin/org/michaelbel/movies/account/AccountNavigation.kt b/feature/account/src/desktopMain/kotlin/org/michaelbel/movies/account/AccountNavigation.kt index 269f0df70..ba9ff4945 100644 --- a/feature/account/src/desktopMain/kotlin/org/michaelbel/movies/account/AccountNavigation.kt +++ b/feature/account/src/desktopMain/kotlin/org/michaelbel/movies/account/AccountNavigation.kt @@ -3,26 +3,8 @@ package org.michaelbel.movies.account import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.dialog -import moe.tlaster.precompose.navigation.Navigator -import moe.tlaster.precompose.navigation.RouteBuilder import org.michaelbel.movies.account.ui.AccountRoute -fun Navigator.navigateToAccount() { - navigate(AccountDestination.route) -} - -fun RouteBuilder.accountGraph( - navigateBack: () -> Unit -) { - dialog( - route = AccountDestination.route - ) { - AccountRoute( - onBackClick = navigateBack - ) - } -} - fun NavController.navigateToAccount() { navigate(AccountDestination.route) } diff --git a/feature/auth/src/desktopMain/kotlin/org/michaelbel/movies/auth/AuthNavigation.kt b/feature/auth/src/desktopMain/kotlin/org/michaelbel/movies/auth/AuthNavigation.kt index be566cca6..ff8186f6a 100644 --- a/feature/auth/src/desktopMain/kotlin/org/michaelbel/movies/auth/AuthNavigation.kt +++ b/feature/auth/src/desktopMain/kotlin/org/michaelbel/movies/auth/AuthNavigation.kt @@ -3,26 +3,8 @@ package org.michaelbel.movies.auth import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.dialog -import moe.tlaster.precompose.navigation.Navigator -import moe.tlaster.precompose.navigation.RouteBuilder import org.michaelbel.movies.auth.ui.AuthRoute -fun Navigator.navigateToAuth() { - navigate(AuthDestination.route) -} - -fun RouteBuilder.authGraph( - navigateBack: () -> Unit -) { - dialog( - route = AuthDestination.route, - ) { - AuthRoute( - onBackClick = navigateBack - ) - } -} - fun NavController.navigateToAuth() { navigate(AuthDestination.route) } diff --git a/feature/details/src/desktopMain/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt b/feature/details/src/desktopMain/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt index bf42a5085..e3e7810e2 100644 --- a/feature/details/src/desktopMain/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt +++ b/feature/details/src/desktopMain/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt @@ -1,29 +1,14 @@ package org.michaelbel.movies.details +import androidx.compose.foundation.clickable import androidx.compose.material.Text +import androidx.compose.ui.Modifier import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import moe.tlaster.precompose.navigation.Navigator -import moe.tlaster.precompose.navigation.RouteBuilder import org.michaelbel.movies.persistence.database.typealiases.MovieId import org.michaelbel.movies.persistence.database.typealiases.PagingKey -fun Navigator.navigateToDetails(pagingKey: PagingKey, movieId: MovieId) { - navigate("movie?movieList=$pagingKey&movieId=$movieId") -} - -fun RouteBuilder.detailsGraph( - navigateBack: () -> Unit, - navigateToGallery: (MovieId) -> Unit -) { - scene( - route = DetailsDestination.route - ) { - Text("details") - } -} - fun NavController.navigateToDetails(pagingKey: PagingKey, movieId: MovieId) { navigate("movie?movieList=$pagingKey&movieId=$movieId") } @@ -35,6 +20,9 @@ fun NavGraphBuilder.detailsGraph( composable( route = DetailsDestination.route ) { - Text("details") + Text( + text = "Details", + modifier = Modifier.clickable { navigateBack() } + ) } } \ No newline at end of file diff --git a/feature/feed-impl/build.gradle.kts b/feature/feed-impl/build.gradle.kts index 46f5c640a..67c493bf3 100644 --- a/feature/feed-impl/build.gradle.kts +++ b/feature/feed-impl/build.gradle.kts @@ -22,15 +22,17 @@ kotlin { sourceSets { commonMain.dependencies { - api(project(":core:navigation")) - api(project(":core:platform-services:interactor")) api(project(":core:ui")) api(project(":core:common")) + api(project(":core:navigation")) api(project(":core:interactor")) implementation(project(":core:notifications")) - implementation(libs.bundles.paging.common) + api(project(":core:platform-services:interactor")) implementation(libs.bundles.constraintlayout.common) } + androidMain.dependencies { + implementation(libs.bundles.paging.common) // fixme ломает navigation + } val desktopMain by getting desktopMain.dependencies { implementation(compose.foundation) diff --git a/feature/feed/src/desktopMain/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt b/feature/feed/src/desktopMain/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt index 0b204ff35..11c77aad7 100644 --- a/feature/feed/src/desktopMain/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt +++ b/feature/feed/src/desktopMain/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt @@ -2,32 +2,8 @@ package org.michaelbel.movies.feed import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import moe.tlaster.precompose.navigation.RouteBuilder import org.michaelbel.movies.feed.ui.FeedRoute -fun RouteBuilder.feedGraph( - navigateToSearch: () -> Unit, - navigateToAuth: () -> Unit, - navigateToAccount: () -> Unit, - navigateToSettings: () -> Unit, - navigateToDetails: (String, Int) -> Unit -) { - scene( - route = FeedDestination.route, - deepLinks = listOf( - "movies://redirect_url?request_token={request_token}&approved={approved}" - ) - ) { - FeedRoute( - onNavigateToSearch = navigateToSearch, - onNavigateToAccount = navigateToAccount, - onNavigateToAuth = navigateToAuth, - onNavigateToSettings = navigateToSettings, - onNavigateToDetails = navigateToDetails - ) - } -} - fun NavGraphBuilder.feedGraph( navigateToSearch: () -> Unit, navigateToAuth: () -> Unit, diff --git a/feature/gallery-impl/build.gradle.kts b/feature/gallery-impl/build.gradle.kts index ab08a8805..b470a33c3 100644 --- a/feature/gallery-impl/build.gradle.kts +++ b/feature/gallery-impl/build.gradle.kts @@ -22,11 +22,11 @@ kotlin { sourceSets { commonMain.dependencies { - api(project(":core:navigation")) api(project(":core:ui")) + api(project(":core:work")) api(project(":core:common")) api(project(":core:interactor")) - api(project(":core:work")) + api(project(":core:navigation")) implementation(libs.bundles.constraintlayout.common) } } diff --git a/feature/gallery/src/desktopMain/kotlin/org/michaelbel/movies/gallery/GalleryNavigation.kt b/feature/gallery/src/desktopMain/kotlin/org/michaelbel/movies/gallery/GalleryNavigation.kt index 616b0e1c8..078f251c3 100644 --- a/feature/gallery/src/desktopMain/kotlin/org/michaelbel/movies/gallery/GalleryNavigation.kt +++ b/feature/gallery/src/desktopMain/kotlin/org/michaelbel/movies/gallery/GalleryNavigation.kt @@ -1,27 +1,13 @@ package org.michaelbel.movies.gallery +import androidx.compose.foundation.clickable import androidx.compose.material.Text +import androidx.compose.ui.Modifier import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import moe.tlaster.precompose.navigation.Navigator -import moe.tlaster.precompose.navigation.RouteBuilder import org.michaelbel.movies.persistence.database.typealiases.MovieId -fun Navigator.navigateToGallery(movieId: MovieId) { - navigate("gallery/$movieId") -} - -fun RouteBuilder.galleryGraph( - navigateBack: () -> Unit, -) { - scene( - route = GalleryDestination.route - ) { - Text("gallery") - } -} - fun NavController.navigateToGallery(movieId: MovieId) { navigate("gallery/$movieId") } @@ -32,6 +18,9 @@ fun NavGraphBuilder.galleryGraph( composable( route = GalleryDestination.route ) { - Text("gallery") + Text( + text = "Gallery", + modifier = Modifier.clickable { navigateBack() } + ) } } \ No newline at end of file diff --git a/feature/search-impl/build.gradle.kts b/feature/search-impl/build.gradle.kts index 9b63aac0b..d1181a60a 100644 --- a/feature/search-impl/build.gradle.kts +++ b/feature/search-impl/build.gradle.kts @@ -27,9 +27,11 @@ kotlin { api(project(":core:common")) api(project(":core:interactor")) implementation(project(":core:notifications")) - implementation(libs.bundles.paging.common) implementation(libs.bundles.constraintlayout.common) } + androidMain.dependencies { + implementation(libs.bundles.paging.common) // fixme ломает navigation + } } } diff --git a/feature/search/src/desktopMain/kotlin/org/michaelbel/movies/search/SearchNavigation.kt b/feature/search/src/desktopMain/kotlin/org/michaelbel/movies/search/SearchNavigation.kt index 5ef409b4b..a694adc46 100644 --- a/feature/search/src/desktopMain/kotlin/org/michaelbel/movies/search/SearchNavigation.kt +++ b/feature/search/src/desktopMain/kotlin/org/michaelbel/movies/search/SearchNavigation.kt @@ -1,26 +1,11 @@ package org.michaelbel.movies.search +import androidx.compose.foundation.clickable import androidx.compose.material.Text +import androidx.compose.ui.Modifier import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import moe.tlaster.precompose.navigation.Navigator -import moe.tlaster.precompose.navigation.RouteBuilder - -fun Navigator.navigateToSearch() { - navigate(SearchDestination.route) -} - -fun RouteBuilder.searchGraph( - navigateBack: () -> Unit, - navigateToDetails: (String, Int) -> Unit, -) { - scene( - route = SearchDestination.route - ) { - Text("Feed") - } -} fun NavController.navigateToSearch() { navigate(SearchDestination.route) @@ -33,6 +18,9 @@ fun NavGraphBuilder.searchGraph( composable( route = SearchDestination.route ) { - Text("Feed") + Text( + text = "Feed", + modifier = Modifier.clickable { navigateBack() } + ) } } \ No newline at end of file diff --git a/feature/settings/src/desktopMain/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt b/feature/settings/src/desktopMain/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt index 0c62820e5..2ff6d24b8 100644 --- a/feature/settings/src/desktopMain/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt +++ b/feature/settings/src/desktopMain/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt @@ -3,26 +3,8 @@ package org.michaelbel.movies.settings import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import moe.tlaster.precompose.navigation.Navigator -import moe.tlaster.precompose.navigation.RouteBuilder import org.michaelbel.movies.settings.ui.SettingsRoute -fun Navigator.navigateToSettings() { - navigate(SettingsDestination.route) -} - -fun RouteBuilder.settingsGraph( - navigateBack: () -> Unit -) { - scene( - route = SettingsDestination.route - ) { - SettingsRoute( - onBackClick = navigateBack - ) - } -} - fun NavController.navigateToSettings() { navigate(SettingsDestination.route) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 81d3d63ad..cdf4ac9bc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -48,7 +48,7 @@ androidx-glance = "1.0.0" androidx-media3 = "1.3.1" androidx-navigation = "2.7.7" androidx-palette-ktx = "1.0.0" -androidx-paging = "3.2.1" +androidx-paging = "3.3.0-rc01" androidx-profile-installer = "1.3.1" androidx-room = "2.7.0-alpha01" androidx-startup = "1.1.1" @@ -85,7 +85,6 @@ barista = "4.3.0" kotest = "5.8.1" sqldelight = "2.0.2" koin = "3.5.6" -precompose = "1.6.0" constraintlayout-compose-multiplatform = "0.3.1" okio = "3.9.0" @@ -229,7 +228,6 @@ koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" } koin-core-jvm = { module = "io.insert-koin:koin-core-jvm", version.ref = "koin" } koin-test = { module = "io.insert-koin:koin-test", version.ref = "koin" } koin-test-junit4 = { module = "io.insert-koin:koin-test-junit4", version.ref = "koin" } -precompose = { module = "moe.tlaster:precompose", version.ref = "precompose" } constraintlayout-compose-multiplatform = { module = "tech.annexflow.compose:constraintlayout-compose-multiplatform", version.ref = "constraintlayout-compose-multiplatform" } okio = { module = "com.squareup.okio:okio", version.ref = "okio" } @@ -265,6 +263,9 @@ room-common = [ "androidx-room-runtime", "androidx-room-paging" ] +room-paging-common = [ + "androidx-room-paging" +] room-compiler-common = [ "androidx-room-compiler" ] @@ -469,9 +470,6 @@ kotlinx-coroutines-desktop = [ datastore-desktop = [ "androidx-datastore-core-okio-jvm" ] -precompose-desktop = [ - "precompose" -] [plugins] android-application = { id = "com.android.application", version.ref = "agp" } diff --git a/readme.md b/readme.md index fc255082f..473c31a70 100644 --- a/readme.md +++ b/readme.md @@ -164,7 +164,6 @@ The app is still usable without an API key. In this case functionality will be l - [x] [Biometric Authentication Dialog](https://d.android.com/training/sign-in/biometric-auth) - [x] [LeakCanary](https://github.com/square/leakcanary) - [x] [ConstraintLayout Multiplatform](https://github.com/Lavmee/constraintlayout-compose-multiplatform) -- [x] [PreCompose](https://github.com/Tlaster/PreCompose) - [x] [Koin](https://github.com/InsertKoinIO/koin) - [x] [Screenshot Detection](https://d.android.com/about/versions/14/features/screenshot-detection) - [x] [ConstraintLayout](https://d.android.com/develop/ui/views/layout/constraint-layout) removed in [44723cb](https://github.com/michaelbel/movies/commit/44723cbbafdad89bef6043f99cbd0fbab1ecf19a) diff --git a/readme.ru.md b/readme.ru.md index e9bc6c0b3..f64f2810c 100644 --- a/readme.ru.md +++ b/readme.ru.md @@ -164,7 +164,6 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] [Biometric Authentication Dialog](https://d.android.com/training/sign-in/biometric-auth) - [x] [LeakCanary](https://github.com/square/leakcanary) - [x] [ConstraintLayout Multiplatform](https://github.com/Lavmee/constraintlayout-compose-multiplatform) -- [x] [PreCompose](https://github.com/Tlaster/PreCompose) - [x] [Koin](https://github.com/InsertKoinIO/koin) - [x] [Screenshot Detection](https://d.android.com/about/versions/14/features/screenshot-detection) - [x] [ConstraintLayout](https://d.android.com/develop/ui/views/layout/constraint-layout) removed in [44723cb](https://github.com/michaelbel/movies/commit/44723cbbafdad89bef6043f99cbd0fbab1ecf19a) diff --git a/settings.gradle.kts b/settings.gradle.kts index dca6f0461..706aa6fd0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,8 +3,8 @@ pluginManagement { repositories { google() - mavenCentral() gradlePluginPortal() + mavenCentral() maven(url = "https://developer.huawei.com/repo/") } } @@ -12,7 +12,6 @@ pluginManagement { dependencyResolutionManagement { /*repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)*/ repositories { - mavenCentral() google { content { includeGroupAndSubgroups("androidx") @@ -20,6 +19,7 @@ dependencyResolutionManagement { includeGroupAndSubgroups("com.google") } } + mavenCentral() maven(url = "https://developer.huawei.com/repo/") } }