From e06e67516e5010df9049546dcedf3fb4c1288c83 Mon Sep 17 00:00:00 2001 From: Clara Fok Date: Wed, 11 Jun 2025 20:44:13 -0700 Subject: [PATCH] Split feature modules into api and impl modules Source code is still left in api module. impl module is empty at this point. --- app/build.gradle.kts | 12 +++---- .../apps/nowinandroid/ui/NavigationTest.kt | 12 +++---- .../nowinandroid/navigation/NiaNavHost.kt | 14 ++++---- .../navigation/TopLevelDestination.kt | 24 +++++++------- .../samples/apps/nowinandroid/ui/NiaApp.kt | 6 +++- .../apps/nowinandroid/ui/NiaAppState.kt | 8 ++--- .../interests2pane/Interests2PaneViewModel.kt | 2 +- .../InterestsListDetailScreen.kt | 12 +++---- .../ui/InterestsListDetailScreenTest.kt | 2 +- feature/bookmarks/{ => api}/.gitignore | 0 feature/bookmarks/{ => api}/build.gradle.kts | 2 +- .../bookmarks/api}/BookmarksScreenTest.kt | 3 +- .../{ => api}/src/main/AndroidManifest.xml | 0 .../feature/bookmarks/api}/BookmarksScreen.kt | 14 ++++---- .../bookmarks/api}/BookmarksViewModel.kt | 2 +- .../api}/navigation/BookmarksNavigation.kt | 4 +-- ...ture_bookmarks_api_mg_empty_bookmarks.xml} | 0 .../{ => api}/src/main/res/values/strings.xml | 12 +++---- .../bookmarks/api}/BookmarksViewModelTest.kt | 3 +- feature/{foryou => bookmarks/impl}/.gitignore | 0 feature/bookmarks/impl/build.gradle.kts | 26 +++++++++++++++ feature/{interests => foryou/api}/.gitignore | 0 feature/foryou/{ => api}/build.gradle.kts | 2 +- .../feature/foryou/api}/ForYouScreenTest.kt | 12 +++---- .../{ => api}/src/main/AndroidManifest.xml | 0 .../feature/foryou/api}/ForYouScreen.kt | 14 +++++--- .../feature/foryou/api}/ForYouViewModel.kt | 2 +- .../feature/foryou/api}/OnboardingUiState.kt | 2 +- .../api}/navigation/ForYouNavigation.kt | 4 +-- ...eature_foryou_api_ic_icon_placeholder.xml} | 0 .../{ => api}/src/main/res/values/strings.xml | 12 +++---- .../api}/ForYouScreenScreenshotTests.kt | 8 ++--- .../foryou/api}/ForYouViewModelTest.kt | 2 +- feature/{search => foryou/impl}/.gitignore | 0 feature/foryou/impl/build.gradle.kts | 26 +++++++++++++++ .../ForYouScreenLoading_foldable.png | Bin 14885 -> 0 bytes .../screenshots/ForYouScreenLoading_phone.png | Bin 10310 -> 0 bytes .../ForYouScreenLoading_tablet.png | Bin 19160 -> 0 bytes .../ForYouScreenPopulatedAndLoading_phone.png | Bin 65816 -> 0 bytes ...ouScreenPopulatedAndLoading_phone_dark.png | Bin 65378 -> 0 bytes .../ForYouScreenPopulatedFeed_phone.png | Bin 57192 -> 0 bytes .../{settings => interests/api}/.gitignore | 0 feature/interests/{ => api}/build.gradle.kts | 2 +- .../interests/api}/InterestsScreenTest.kt | 10 +++--- .../{ => api}/src/main/AndroidManifest.xml | 0 .../feature/interests/api}/InterestsScreen.kt | 6 ++-- .../interests/api}/InterestsViewModel.kt | 4 +-- .../feature/interests/api}/TabContent.kt | 2 +- .../api}/navigation/InterestsNavigation.kt | 2 +- .../{ => api}/src/main/res/values/strings.xml | 6 ++-- .../interests/api}/InterestsViewModelTest.kt | 2 +- feature/{topic => interests/impl}/.gitignore | 0 feature/interests/impl/build.gradle.kts | 24 ++++++++++++++ feature/search/api/.gitignore | 1 + feature/search/{ => api}/build.gradle.kts | 2 +- .../feature/search/api}/SearchScreenTest.kt | 2 +- .../{ => api}/src/main/AndroidManifest.xml | 0 .../search/api}/RecentSearchQueriesUiState.kt | 2 +- .../search/api}/SearchResultUiState.kt | 2 +- .../feature/search/api}/SearchScreen.kt | 26 +++++++-------- .../SearchUiStatePreviewParameterProvider.kt | 7 ++-- .../feature/search/api}/SearchViewModel.kt | 2 +- .../api}/navigation/SearchNavigation.kt | 6 ++-- .../api/src/main/res/values/strings.xml | 29 +++++++++++++++++ .../search/api}/SearchViewModelTest.kt | 12 +++---- feature/search/impl/.gitignore | 1 + feature/search/impl/build.gradle.kts | 25 +++++++++++++++ .../search/src/main/res/values/strings.xml | 29 ----------------- feature/settings/api/.gitignore | 1 + feature/settings/{ => api}/build.gradle.kts | 2 +- .../settings/api}/SettingsDialogTest.kt | 6 ++-- .../settings/api/src/main/AndroidManifest.xml | 27 ++++++++++++++++ .../feature/settings/api}/SettingsDialog.kt | 8 ++--- .../settings/api}/SettingsViewModel.kt | 6 ++-- .../{ => api}/src/main/res/values/strings.xml | 0 .../settings/api}/SettingsViewModelTest.kt | 6 ++-- feature/settings/src/main/AndroidManifest.xml | 27 ---------------- feature/topic/api/.gitignore | 1 + feature/topic/{ => api}/build.gradle.kts | 2 +- .../feature/topic/api}/TopicScreenTest.kt | 4 +-- .../{ => api}/src/main/AndroidManifest.xml | 0 .../topic/api}/TopicDetailPlaceholder.kt | 6 ++-- .../feature/topic/api}/TopicScreen.kt | 6 ++-- .../feature/topic/api}/TopicViewModel.kt | 2 +- .../topic/api}/navigation/TopicNavigation.kt | 6 ++-- ...eature_topic_api_ic_topic_placeholder.xml} | 30 +++++++++--------- .../{ => api}/src/main/res/values/strings.xml | 4 +-- .../feature/topic/api}/TopicViewModelTest.kt | 2 +- feature/topic/impl/.gitignore | 1 + feature/topic/impl/build.gradle.kts | 25 +++++++++++++++ gradle/libs.versions.toml | 3 +- settings.gradle.kts | 17 ++++++---- 92 files changed, 392 insertions(+), 246 deletions(-) rename feature/bookmarks/{ => api}/.gitignore (100%) rename feature/bookmarks/{ => api}/build.gradle.kts (98%) rename feature/bookmarks/{src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks => api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api}/BookmarksScreenTest.kt (98%) rename feature/bookmarks/{ => api}/src/main/AndroidManifest.xml (100%) rename feature/bookmarks/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api}/BookmarksScreen.kt (98%) rename feature/bookmarks/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api}/BookmarksViewModel.kt (97%) rename feature/bookmarks/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api}/navigation/BookmarksNavigation.kt (88%) rename feature/bookmarks/{src/main/res/drawable/feature_bookmarks_img_empty_bookmarks.xml => api/src/main/res/drawable/feature_bookmarks_api_mg_empty_bookmarks.xml} (100%) rename feature/bookmarks/{ => api}/src/main/res/values/strings.xml (59%) rename feature/bookmarks/{src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks => api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api}/BookmarksViewModelTest.kt (97%) rename feature/{foryou => bookmarks/impl}/.gitignore (100%) create mode 100644 feature/bookmarks/impl/build.gradle.kts rename feature/{interests => foryou/api}/.gitignore (100%) rename feature/foryou/{ => api}/build.gradle.kts (99%) rename feature/foryou/{src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/ForYouScreenTest.kt (97%) rename feature/foryou/{ => api}/src/main/AndroidManifest.xml (100%) rename feature/foryou/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/ForYouScreen.kt (97%) rename feature/foryou/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/ForYouViewModel.kt (98%) rename feature/foryou/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/OnboardingUiState.kt (95%) rename feature/foryou/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/navigation/ForYouNavigation.kt (94%) rename feature/foryou/{src/main/res/drawable/feature_foryou_ic_icon_placeholder.xml => api/src/main/res/drawable/feature_foryou_api_ic_icon_placeholder.xml} (100%) rename feature/foryou/{ => api}/src/main/res/values/strings.xml (57%) rename feature/foryou/{src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/ForYouScreenScreenshotTests.kt (95%) rename feature/foryou/{src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou => api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api}/ForYouViewModelTest.kt (99%) rename feature/{search => foryou/impl}/.gitignore (100%) create mode 100644 feature/foryou/impl/build.gradle.kts delete mode 100644 feature/foryou/src/test/screenshots/ForYouScreenLoading_foldable.png delete mode 100644 feature/foryou/src/test/screenshots/ForYouScreenLoading_phone.png delete mode 100644 feature/foryou/src/test/screenshots/ForYouScreenLoading_tablet.png delete mode 100644 feature/foryou/src/test/screenshots/ForYouScreenPopulatedAndLoading_phone.png delete mode 100644 feature/foryou/src/test/screenshots/ForYouScreenPopulatedAndLoading_phone_dark.png delete mode 100644 feature/foryou/src/test/screenshots/ForYouScreenPopulatedFeed_phone.png rename feature/{settings => interests/api}/.gitignore (100%) rename feature/interests/{ => api}/build.gradle.kts (98%) rename feature/interests/{src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests => api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/api}/InterestsScreenTest.kt (93%) rename feature/interests/{ => api}/src/main/AndroidManifest.xml (100%) rename feature/interests/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api}/InterestsScreen.kt (96%) rename feature/interests/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api}/InterestsViewModel.kt (94%) rename feature/interests/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api}/TabContent.kt (98%) rename feature/interests/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api}/navigation/InterestsNavigation.kt (93%) rename feature/interests/{ => api}/src/main/res/values/strings.xml (75%) rename feature/interests/{src/test/kotlin/com/google/samples/apps/nowinandroid/interests => api/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/api}/InterestsViewModelTest.kt (99%) rename feature/{topic => interests/impl}/.gitignore (100%) create mode 100644 feature/interests/impl/build.gradle.kts create mode 100644 feature/search/api/.gitignore rename feature/search/{ => api}/build.gradle.kts (99%) rename feature/search/{src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/SearchScreenTest.kt (99%) rename feature/search/{ => api}/src/main/AndroidManifest.xml (100%) rename feature/search/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/RecentSearchQueriesUiState.kt (93%) rename feature/search/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/SearchResultUiState.kt (96%) rename feature/search/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/SearchScreen.kt (97%) rename feature/search/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/SearchUiStatePreviewParameterProvider.kt (87%) rename feature/search/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/SearchViewModel.kt (99%) rename feature/search/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/navigation/SearchNavigation.kt (86%) create mode 100644 feature/search/api/src/main/res/values/strings.xml rename feature/search/{src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search => api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/api}/SearchViewModelTest.kt (93%) create mode 100644 feature/search/impl/.gitignore create mode 100644 feature/search/impl/build.gradle.kts delete mode 100644 feature/search/src/main/res/values/strings.xml create mode 100644 feature/settings/api/.gitignore rename feature/settings/{ => api}/build.gradle.kts (98%) rename feature/settings/{src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings => api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api}/SettingsDialogTest.kt (96%) create mode 100644 feature/settings/api/src/main/AndroidManifest.xml rename feature/settings/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api}/SettingsDialog.kt (97%) rename feature/settings/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api}/SettingsViewModel.kt (92%) rename feature/settings/{ => api}/src/main/res/values/strings.xml (100%) rename feature/settings/{src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings => api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api}/SettingsViewModelTest.kt (90%) delete mode 100644 feature/settings/src/main/AndroidManifest.xml create mode 100644 feature/topic/api/.gitignore rename feature/topic/{ => api}/build.gradle.kts (99%) rename feature/topic/{src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic => api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api}/TopicScreenTest.kt (97%) rename feature/topic/{ => api}/src/main/AndroidManifest.xml (100%) rename feature/topic/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api}/TopicDetailPlaceholder.kt (95%) rename feature/topic/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api}/TopicScreen.kt (98%) rename feature/topic/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api}/TopicViewModel.kt (98%) rename feature/topic/{src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic => api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api}/navigation/TopicNavigation.kt (88%) rename feature/topic/{src/main/res/drawable/feature_topic_ic_topic_placeholder.xml => api/src/main/res/drawable/feature_topic_api_ic_topic_placeholder.xml} (75%) rename feature/topic/{ => api}/src/main/res/values/strings.xml (82%) rename feature/topic/{src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic => api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api}/TopicViewModelTest.kt (99%) create mode 100644 feature/topic/impl/.gitignore create mode 100644 feature/topic/impl/build.gradle.kts diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 09005606b..627be6727 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -68,12 +68,12 @@ android { } dependencies { - implementation(projects.feature.interests) - implementation(projects.feature.foryou) - implementation(projects.feature.bookmarks) - implementation(projects.feature.topic) - implementation(projects.feature.search) - implementation(projects.feature.settings) + implementation(projects.feature.interests.api) + implementation(projects.feature.foryou.api) + implementation(projects.feature.bookmarks.api) + implementation(projects.feature.topic.api) + implementation(projects.feature.search.api) + implementation(projects.feature.settings.api) implementation(projects.core.common) implementation(projects.core.ui) diff --git a/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt b/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt index 54053a1bb..8d479e3b1 100644 --- a/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt +++ b/app/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/ui/NavigationTest.kt @@ -47,10 +47,10 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import javax.inject.Inject -import com.google.samples.apps.nowinandroid.feature.bookmarks.R as BookmarksR -import com.google.samples.apps.nowinandroid.feature.foryou.R as FeatureForyouR -import com.google.samples.apps.nowinandroid.feature.search.R as FeatureSearchR -import com.google.samples.apps.nowinandroid.feature.settings.R as SettingsR +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.R as BookmarksR +import com.google.samples.apps.nowinandroid.feature.foryou.api.R as FeatureForyouR +import com.google.samples.apps.nowinandroid.feature.search.api.R as FeatureSearchR +import com.google.samples.apps.nowinandroid.feature.settings.api.R as SettingsR /** * Tests all the navigation flows that are handled by the navigation library. @@ -83,8 +83,8 @@ class NavigationTest { lateinit var newsRepository: NewsRepository // The strings used for matching in these tests - private val navigateUp by composeTestRule.stringResource(FeatureForyouR.string.feature_foryou_navigate_up) - private val forYou by composeTestRule.stringResource(FeatureForyouR.string.feature_foryou_title) + private val navigateUp by composeTestRule.stringResource(FeatureForyouR.string.feature_foryou_api_navigate_up) + private val forYou by composeTestRule.stringResource(FeatureForyouR.string.feature_foryou_api_title) private val interests by composeTestRule.stringResource(FeatureSearchR.string.feature_search_interests) private val sampleTopic = "Headlines" private val appName by composeTestRule.stringResource(R.string.app_name) diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt index e079c98f4..1f8f88686 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/NiaNavHost.kt @@ -19,13 +19,13 @@ package com.google.samples.apps.nowinandroid.navigation import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.navigation.compose.NavHost -import com.google.samples.apps.nowinandroid.feature.bookmarks.navigation.bookmarksScreen -import com.google.samples.apps.nowinandroid.feature.foryou.navigation.ForYouBaseRoute -import com.google.samples.apps.nowinandroid.feature.foryou.navigation.forYouSection -import com.google.samples.apps.nowinandroid.feature.interests.navigation.navigateToInterests -import com.google.samples.apps.nowinandroid.feature.search.navigation.searchScreen -import com.google.samples.apps.nowinandroid.feature.topic.navigation.navigateToTopic -import com.google.samples.apps.nowinandroid.feature.topic.navigation.topicScreen +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.navigation.bookmarksScreen +import com.google.samples.apps.nowinandroid.feature.foryou.api.navigation.ForYouBaseRoute +import com.google.samples.apps.nowinandroid.feature.foryou.api.navigation.forYouSection +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.navigateToInterests +import com.google.samples.apps.nowinandroid.feature.search.api.navigation.searchScreen +import com.google.samples.apps.nowinandroid.feature.topic.api.navigation.navigateToTopic +import com.google.samples.apps.nowinandroid.feature.topic.api.navigation.topicScreen import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination.INTERESTS import com.google.samples.apps.nowinandroid.ui.NiaAppState import com.google.samples.apps.nowinandroid.ui.interests2pane.interestsListDetailScreen diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/TopLevelDestination.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/TopLevelDestination.kt index 429e626ff..d43101078 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/TopLevelDestination.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/navigation/TopLevelDestination.kt @@ -20,14 +20,14 @@ import androidx.annotation.StringRes import androidx.compose.ui.graphics.vector.ImageVector import com.google.samples.apps.nowinandroid.R import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons -import com.google.samples.apps.nowinandroid.feature.bookmarks.navigation.BookmarksRoute -import com.google.samples.apps.nowinandroid.feature.foryou.navigation.ForYouBaseRoute -import com.google.samples.apps.nowinandroid.feature.foryou.navigation.ForYouRoute -import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.navigation.BookmarksRoute +import com.google.samples.apps.nowinandroid.feature.foryou.api.navigation.ForYouBaseRoute +import com.google.samples.apps.nowinandroid.feature.foryou.api.navigation.ForYouRoute +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.InterestsRoute import kotlin.reflect.KClass -import com.google.samples.apps.nowinandroid.feature.bookmarks.R as bookmarksR -import com.google.samples.apps.nowinandroid.feature.foryou.R as forYouR -import com.google.samples.apps.nowinandroid.feature.search.R as searchR +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.R as bookmarksR +import com.google.samples.apps.nowinandroid.feature.foryou.api.R as forYouR +import com.google.samples.apps.nowinandroid.feature.search.api.R as searchR /** * Type for the top level destinations in the application. Contains metadata about the destination @@ -54,7 +54,7 @@ enum class TopLevelDestination( FOR_YOU( selectedIcon = NiaIcons.Upcoming, unselectedIcon = NiaIcons.UpcomingBorder, - iconTextId = forYouR.string.feature_foryou_title, + iconTextId = forYouR.string.feature_foryou_api_title, titleTextId = R.string.app_name, route = ForYouRoute::class, baseRoute = ForYouBaseRoute::class, @@ -62,15 +62,15 @@ enum class TopLevelDestination( BOOKMARKS( selectedIcon = NiaIcons.Bookmarks, unselectedIcon = NiaIcons.BookmarksBorder, - iconTextId = bookmarksR.string.feature_bookmarks_title, - titleTextId = bookmarksR.string.feature_bookmarks_title, + iconTextId = bookmarksR.string.feature_bookmarks_api_title, + titleTextId = bookmarksR.string.feature_bookmarks_api_title, route = BookmarksRoute::class, ), INTERESTS( selectedIcon = NiaIcons.Grid3x3, unselectedIcon = NiaIcons.Grid3x3, - iconTextId = searchR.string.feature_search_interests, - titleTextId = searchR.string.feature_search_interests, + iconTextId = searchR.string.feature_search_api_interests, + titleTextId = searchR.string.feature_search_api_interests, route = InterestsRoute::class, ), } diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index 45319922a..373ae97be 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -75,17 +75,21 @@ import com.google.samples.apps.nowinandroid.core.designsystem.component.NiaTopAp import com.google.samples.apps.nowinandroid.core.designsystem.icon.NiaIcons import com.google.samples.apps.nowinandroid.core.designsystem.theme.GradientColors import com.google.samples.apps.nowinandroid.core.designsystem.theme.LocalGradientColors +<<<<<<< HEAD import com.google.samples.apps.nowinandroid.core.designsystem.theme.NiaTheme import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource import com.google.samples.apps.nowinandroid.core.ui.DevicePreviews import com.google.samples.apps.nowinandroid.feature.settings.SettingsDialog +======= +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsDialog +>>>>>>> 068d8cc9 (Split feature modules into api and impl modules) import com.google.samples.apps.nowinandroid.navigation.NiaNavHost import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flowOf import kotlinx.datetime.TimeZone import kotlin.reflect.KClass -import com.google.samples.apps.nowinandroid.feature.settings.R as settingsR +import com.google.samples.apps.nowinandroid.feature.settings.api.R as settingsR @Composable fun NiaApp( diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt index 7c892c854..4c1d23318 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt @@ -34,10 +34,10 @@ import com.google.samples.apps.nowinandroid.core.data.repository.UserNewsResourc import com.google.samples.apps.nowinandroid.core.data.util.NetworkMonitor import com.google.samples.apps.nowinandroid.core.data.util.TimeZoneMonitor import com.google.samples.apps.nowinandroid.core.ui.TrackDisposableJank -import com.google.samples.apps.nowinandroid.feature.bookmarks.navigation.navigateToBookmarks -import com.google.samples.apps.nowinandroid.feature.foryou.navigation.navigateToForYou -import com.google.samples.apps.nowinandroid.feature.interests.navigation.navigateToInterests -import com.google.samples.apps.nowinandroid.feature.search.navigation.navigateToSearch +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.navigation.navigateToBookmarks +import com.google.samples.apps.nowinandroid.feature.foryou.api.navigation.navigateToForYou +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.navigateToInterests +import com.google.samples.apps.nowinandroid.feature.search.api.navigation.navigateToSearch import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination.BOOKMARKS import com.google.samples.apps.nowinandroid.navigation.TopLevelDestination.FOR_YOU diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt index 3d37f3417..83978a6f4 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/Interests2PaneViewModel.kt @@ -19,7 +19,7 @@ package com.google.samples.apps.nowinandroid.ui.interests2pane import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.navigation.toRoute -import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.InterestsRoute import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.StateFlow import javax.inject.Inject diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt index c0f425c65..07e93eee1 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/interests2pane/InterestsListDetailScreen.kt @@ -52,12 +52,12 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable -import com.google.samples.apps.nowinandroid.feature.interests.InterestsRoute -import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute -import com.google.samples.apps.nowinandroid.feature.topic.TopicDetailPlaceholder -import com.google.samples.apps.nowinandroid.feature.topic.TopicScreen -import com.google.samples.apps.nowinandroid.feature.topic.TopicViewModel -import com.google.samples.apps.nowinandroid.feature.topic.navigation.TopicRoute +import com.google.samples.apps.nowinandroid.feature.interests.api.InterestsRoute +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.InterestsRoute +import com.google.samples.apps.nowinandroid.feature.topic.api.TopicDetailPlaceholder +import com.google.samples.apps.nowinandroid.feature.topic.api.TopicScreen +import com.google.samples.apps.nowinandroid.feature.topic.api.TopicViewModel +import com.google.samples.apps.nowinandroid.feature.topic.api.navigation.TopicRoute import kotlinx.coroutines.launch import kotlinx.serialization.Serializable import kotlin.math.max diff --git a/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/InterestsListDetailScreenTest.kt b/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/InterestsListDetailScreenTest.kt index 1062c7e56..682f4983f 100644 --- a/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/InterestsListDetailScreenTest.kt +++ b/app/src/testDemo/kotlin/com/google/samples/apps/nowinandroid/ui/InterestsListDetailScreenTest.kt @@ -45,7 +45,7 @@ import org.robolectric.annotation.Config import javax.inject.Inject import kotlin.properties.ReadOnlyProperty import kotlin.test.assertTrue -import com.google.samples.apps.nowinandroid.feature.topic.R as FeatureTopicR +import com.google.samples.apps.nowinandroid.feature.topic.api.R as FeatureTopicR private const val EXPANDED_WIDTH = "w1200dp-h840dp" private const val COMPACT_WIDTH = "w412dp-h915dp" diff --git a/feature/bookmarks/.gitignore b/feature/bookmarks/api/.gitignore similarity index 100% rename from feature/bookmarks/.gitignore rename to feature/bookmarks/api/.gitignore diff --git a/feature/bookmarks/build.gradle.kts b/feature/bookmarks/api/build.gradle.kts similarity index 98% rename from feature/bookmarks/build.gradle.kts rename to feature/bookmarks/api/build.gradle.kts index 51a15ce7a..f12a39f7d 100644 --- a/feature/bookmarks/build.gradle.kts +++ b/feature/bookmarks/api/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } android { - namespace = "com.google.samples.apps.nowinandroid.feature.bookmarks" + namespace = "com.google.samples.apps.nowinandroid.feature.bookmarks.api" } dependencies { diff --git a/feature/bookmarks/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt b/feature/bookmarks/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksScreenTest.kt similarity index 98% rename from feature/bookmarks/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt rename to feature/bookmarks/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksScreenTest.kt index dd01b84c9..78f29f92a 100644 --- a/feature/bookmarks/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt +++ b/feature/bookmarks/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksScreenTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.bookmarks +package com.google.samples.apps.nowinandroid.feature.bookmarks.api import androidx.activity.ComponentActivity import androidx.compose.runtime.CompositionLocalProvider @@ -35,7 +35,6 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.testing.TestLifecycleOwner import com.google.samples.apps.nowinandroid.core.testing.data.userNewsResourcesTestData -import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test diff --git a/feature/bookmarks/src/main/AndroidManifest.xml b/feature/bookmarks/api/src/main/AndroidManifest.xml similarity index 100% rename from feature/bookmarks/src/main/AndroidManifest.xml rename to feature/bookmarks/api/src/main/AndroidManifest.xml diff --git a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt b/feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksScreen.kt similarity index 98% rename from feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt rename to feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksScreen.kt index 7c229c5ea..019fb4609 100644 --- a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt +++ b/feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksScreen.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.bookmarks +package com.google.samples.apps.nowinandroid.feature.bookmarks.api import androidx.annotation.VisibleForTesting import androidx.compose.foundation.Image @@ -112,8 +112,8 @@ internal fun BookmarksScreen( undoBookmarkRemoval: () -> Unit = {}, clearUndoState: () -> Unit = {}, ) { - val bookmarkRemovedMessage = stringResource(id = R.string.feature_bookmarks_removed) - val undoText = stringResource(id = R.string.feature_bookmarks_undo) + val bookmarkRemovedMessage = stringResource(id = R.string.feature_bookmarks_api_removed) + val undoText = stringResource(id = R.string.feature_bookmarks_api_undo) LaunchedEffect(shouldDisplayUndoBookmark) { if (shouldDisplayUndoBookmark) { @@ -155,7 +155,7 @@ private fun LoadingState(modifier: Modifier = Modifier) { .fillMaxWidth() .wrapContentSize() .testTag("forYou:loading"), - contentDesc = stringResource(id = R.string.feature_bookmarks_loading), + contentDesc = stringResource(id = R.string.feature_bookmarks_api_loading), ) } @@ -228,7 +228,7 @@ private fun EmptyState(modifier: Modifier = Modifier) { val iconTint = LocalTintTheme.current.iconTint Image( modifier = Modifier.fillMaxWidth(), - painter = painterResource(id = R.drawable.feature_bookmarks_img_empty_bookmarks), + painter = painterResource(id = R.drawable.feature_bookmarks_api_mg_empty_bookmarks), colorFilter = if (iconTint != Color.Unspecified) ColorFilter.tint(iconTint) else null, contentDescription = null, ) @@ -236,7 +236,7 @@ private fun EmptyState(modifier: Modifier = Modifier) { Spacer(modifier = Modifier.height(48.dp)) Text( - text = stringResource(id = R.string.feature_bookmarks_empty_error), + text = stringResource(id = R.string.feature_bookmarks_api_empty_error), modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = MaterialTheme.typography.titleMedium, @@ -246,7 +246,7 @@ private fun EmptyState(modifier: Modifier = Modifier) { Spacer(modifier = Modifier.height(8.dp)) Text( - text = stringResource(id = R.string.feature_bookmarks_empty_description), + text = stringResource(id = R.string.feature_bookmarks_api_empty_description), modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, style = MaterialTheme.typography.bodyMedium, diff --git a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt b/feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksViewModel.kt similarity index 97% rename from feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt rename to feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksViewModel.kt index f93602485..7b8945eb2 100644 --- a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt +++ b/feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksViewModel.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.bookmarks +package com.google.samples.apps.nowinandroid.feature.bookmarks.api import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf diff --git a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt b/feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/navigation/BookmarksNavigation.kt similarity index 88% rename from feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt rename to feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/navigation/BookmarksNavigation.kt index ea8d525ab..23b48b17a 100644 --- a/feature/bookmarks/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt +++ b/feature/bookmarks/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/navigation/BookmarksNavigation.kt @@ -14,13 +14,13 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.bookmarks.navigation +package com.google.samples.apps.nowinandroid.feature.bookmarks.api.navigation import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptions import androidx.navigation.compose.composable -import com.google.samples.apps.nowinandroid.feature.bookmarks.BookmarksRoute +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.BookmarksRoute import kotlinx.serialization.Serializable @Serializable object BookmarksRoute diff --git a/feature/bookmarks/src/main/res/drawable/feature_bookmarks_img_empty_bookmarks.xml b/feature/bookmarks/api/src/main/res/drawable/feature_bookmarks_api_mg_empty_bookmarks.xml similarity index 100% rename from feature/bookmarks/src/main/res/drawable/feature_bookmarks_img_empty_bookmarks.xml rename to feature/bookmarks/api/src/main/res/drawable/feature_bookmarks_api_mg_empty_bookmarks.xml diff --git a/feature/bookmarks/src/main/res/values/strings.xml b/feature/bookmarks/api/src/main/res/values/strings.xml similarity index 59% rename from feature/bookmarks/src/main/res/values/strings.xml rename to feature/bookmarks/api/src/main/res/values/strings.xml index 6e2b23043..98f4b4a8d 100644 --- a/feature/bookmarks/src/main/res/values/strings.xml +++ b/feature/bookmarks/api/src/main/res/values/strings.xml @@ -15,10 +15,10 @@ limitations under the License. --> - Saved - Loading saved… - No saved updates - Updates you save will be stored here\nto read later - Bookmark removed - UNDO + Saved + Loading saved… + No saved updates + Updates you save will be stored here\nto read later + Bookmark removed + UNDO diff --git a/feature/bookmarks/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt b/feature/bookmarks/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksViewModelTest.kt similarity index 97% rename from feature/bookmarks/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt rename to feature/bookmarks/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksViewModelTest.kt index aa42adae2..ae3b488c7 100644 --- a/feature/bookmarks/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt +++ b/feature/bookmarks/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/api/BookmarksViewModelTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.bookmarks +package com.google.samples.apps.nowinandroid.feature.bookmarks.api import com.google.samples.apps.nowinandroid.core.data.repository.CompositeUserNewsResourceRepository import com.google.samples.apps.nowinandroid.core.testing.data.newsResourcesTestData @@ -23,6 +23,7 @@ import com.google.samples.apps.nowinandroid.core.testing.repository.TestUserData import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Loading import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success +import com.google.samples.apps.nowinandroid.feature.bookmarks.api.BookmarksViewModel import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import kotlinx.coroutines.test.UnconfinedTestDispatcher diff --git a/feature/foryou/.gitignore b/feature/bookmarks/impl/.gitignore similarity index 100% rename from feature/foryou/.gitignore rename to feature/bookmarks/impl/.gitignore diff --git a/feature/bookmarks/impl/build.gradle.kts b/feature/bookmarks/impl/build.gradle.kts new file mode 100644 index 000000000..f46554044 --- /dev/null +++ b/feature/bookmarks/impl/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + alias(libs.plugins.nowinandroid.android.feature) + alias(libs.plugins.nowinandroid.android.library.compose) +} + +android { + namespace = "com.google.samples.apps.nowinandroid.feature.bookmarks.impl" +} + +dependencies { } diff --git a/feature/interests/.gitignore b/feature/foryou/api/.gitignore similarity index 100% rename from feature/interests/.gitignore rename to feature/foryou/api/.gitignore diff --git a/feature/foryou/build.gradle.kts b/feature/foryou/api/build.gradle.kts similarity index 99% rename from feature/foryou/build.gradle.kts rename to feature/foryou/api/build.gradle.kts index 1600946be..9042f246a 100644 --- a/feature/foryou/build.gradle.kts +++ b/feature/foryou/api/build.gradle.kts @@ -22,7 +22,7 @@ plugins { } android { - namespace = "com.google.samples.apps.nowinandroid.feature.foryou" + namespace = "com.google.samples.apps.nowinandroid.feature.foryou.api" testOptions.unitTests.isIncludeAndroidResources = true } diff --git a/feature/foryou/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt b/feature/foryou/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreenTest.kt similarity index 97% rename from feature/foryou/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt rename to feature/foryou/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreenTest.kt index c3ec5c560..46905fd8b 100644 --- a/feature/foryou/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt +++ b/feature/foryou/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreenTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou +package com.google.samples.apps.nowinandroid.feature.foryou.api import androidx.activity.ComponentActivity import androidx.compose.foundation.layout.Box @@ -45,7 +45,7 @@ class ForYouScreenTest { private val doneButtonMatcher by lazy { hasText( - composeTestRule.activity.resources.getString(R.string.feature_foryou_done), + composeTestRule.activity.resources.getString(R.string.feature_foryou_api_done), ) } @@ -70,7 +70,7 @@ class ForYouScreenTest { composeTestRule .onNodeWithContentDescription( - composeTestRule.activity.resources.getString(R.string.feature_foryou_loading), + composeTestRule.activity.resources.getString(R.string.feature_foryou_api_loading), ) .assertExists() } @@ -96,7 +96,7 @@ class ForYouScreenTest { composeTestRule .onNodeWithContentDescription( - composeTestRule.activity.resources.getString(R.string.feature_foryou_loading), + composeTestRule.activity.resources.getString(R.string.feature_foryou_api_loading), ) .assertExists() } @@ -215,7 +215,7 @@ class ForYouScreenTest { composeTestRule .onNodeWithContentDescription( - composeTestRule.activity.resources.getString(R.string.feature_foryou_loading), + composeTestRule.activity.resources.getString(R.string.feature_foryou_api_loading), ) .assertExists() } @@ -241,7 +241,7 @@ class ForYouScreenTest { composeTestRule .onNodeWithContentDescription( - composeTestRule.activity.resources.getString(R.string.feature_foryou_loading), + composeTestRule.activity.resources.getString(R.string.feature_foryou_api_loading), ) .assertExists() } diff --git a/feature/foryou/src/main/AndroidManifest.xml b/feature/foryou/api/src/main/AndroidManifest.xml similarity index 100% rename from feature/foryou/src/main/AndroidManifest.xml rename to feature/foryou/api/src/main/AndroidManifest.xml diff --git a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreen.kt similarity index 97% rename from feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt rename to feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreen.kt index 115fab594..f792e3f94 100644 --- a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt +++ b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreen.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou +package com.google.samples.apps.nowinandroid.feature.foryou.api import android.os.Build.VERSION import android.os.Build.VERSION_CODES @@ -231,7 +231,7 @@ internal fun ForYouScreen( targetOffsetY = { fullHeight -> -fullHeight }, ) + fadeOut(), ) { - val loadingContentDescription = stringResource(id = R.string.feature_foryou_loading) + val loadingContentDescription = stringResource(id = R.string.feature_foryou_api_loading) Box( modifier = Modifier .fillMaxWidth() @@ -286,7 +286,7 @@ private fun LazyStaggeredGridScope.onboarding( item(span = StaggeredGridItemSpan.FullLine, contentType = "onboarding") { Column(modifier = interestsItemModifier) { Text( - text = stringResource(R.string.feature_foryou_onboarding_guidance_title), + text = stringResource(R.string.feature_foryou_api_onboarding_guidance_title), textAlign = TextAlign.Center, modifier = Modifier .fillMaxWidth() @@ -294,7 +294,7 @@ private fun LazyStaggeredGridScope.onboarding( style = MaterialTheme.typography.titleMedium, ) Text( - text = stringResource(R.string.feature_foryou_onboarding_guidance_subtitle), + text = stringResource(R.string.feature_foryou_api_onboarding_guidance_subtitle), modifier = Modifier .fillMaxWidth() .padding(top = 8.dp, start = 24.dp, end = 24.dp), @@ -320,8 +320,12 @@ private fun LazyStaggeredGridScope.onboarding( .fillMaxWidth(), ) { Text( +<<<<<<< HEAD:feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt text = stringResource(R.string.feature_foryou_done), color = if (onboardingUiState.isDismissable) androidx.compose.ui.graphics.Color.Unspecified else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.7f), +======= + text = stringResource(R.string.feature_foryou_api_done), +>>>>>>> 068d8cc9 (Split feature modules into api and impl modules):feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreen.kt ) } } @@ -450,7 +454,7 @@ fun TopicIcon( modifier: Modifier = Modifier, ) { DynamicAsyncImage( - placeholder = painterResource(R.drawable.feature_foryou_ic_icon_placeholder), + placeholder = painterResource(R.drawable.feature_foryou_api_ic_icon_placeholder), imageUrl = imageUrl, // decorative contentDescription = null, diff --git a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouViewModel.kt similarity index 98% rename from feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt rename to feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouViewModel.kt index 4b6cd39c9..6fb44a5f5 100644 --- a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt +++ b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouViewModel.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou +package com.google.samples.apps.nowinandroid.feature.foryou.api import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel diff --git a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/OnboardingUiState.kt b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/OnboardingUiState.kt similarity index 95% rename from feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/OnboardingUiState.kt rename to feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/OnboardingUiState.kt index 70634b4c5..cd2197bcb 100644 --- a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/OnboardingUiState.kt +++ b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/OnboardingUiState.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou +package com.google.samples.apps.nowinandroid.feature.foryou.api import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic diff --git a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/navigation/ForYouNavigation.kt similarity index 94% rename from feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt rename to feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/navigation/ForYouNavigation.kt index b77ce72a0..a4b276983 100644 --- a/feature/foryou/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt +++ b/feature/foryou/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/navigation/ForYouNavigation.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou.navigation +package com.google.samples.apps.nowinandroid.feature.foryou.api.navigation import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder @@ -23,7 +23,7 @@ import androidx.navigation.compose.composable import androidx.navigation.compose.navigation import androidx.navigation.navDeepLink import com.google.samples.apps.nowinandroid.core.notifications.DEEP_LINK_URI_PATTERN -import com.google.samples.apps.nowinandroid.feature.foryou.ForYouScreen +import com.google.samples.apps.nowinandroid.feature.foryou.api.ForYouScreen import kotlinx.serialization.Serializable @Serializable data object ForYouRoute // route to ForYou screen diff --git a/feature/foryou/src/main/res/drawable/feature_foryou_ic_icon_placeholder.xml b/feature/foryou/api/src/main/res/drawable/feature_foryou_api_ic_icon_placeholder.xml similarity index 100% rename from feature/foryou/src/main/res/drawable/feature_foryou_ic_icon_placeholder.xml rename to feature/foryou/api/src/main/res/drawable/feature_foryou_api_ic_icon_placeholder.xml diff --git a/feature/foryou/src/main/res/values/strings.xml b/feature/foryou/api/src/main/res/values/strings.xml similarity index 57% rename from feature/foryou/src/main/res/values/strings.xml rename to feature/foryou/api/src/main/res/values/strings.xml index 166749664..4694eb444 100644 --- a/feature/foryou/src/main/res/values/strings.xml +++ b/feature/foryou/api/src/main/res/values/strings.xml @@ -15,11 +15,11 @@ limitations under the License. --> - For you - Done - Loading for you… - Navigate up - What are you interested in? - Updates from topics you follow will appear here. Follow some things to get started. + For you + Done + Loading for you… + Navigate up + What are you interested in? + Updates from topics you follow will appear here. Follow some things to get started. diff --git a/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTests.kt b/feature/foryou/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreenScreenshotTests.kt similarity index 95% rename from feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTests.kt rename to feature/foryou/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreenScreenshotTests.kt index 29fc6f536..447472d1c 100644 --- a/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenScreenshotTests.kt +++ b/feature/foryou/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouScreenScreenshotTests.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou +package com.google.samples.apps.nowinandroid.feature.foryou.api import androidx.activity.ComponentActivity import androidx.compose.runtime.Composable @@ -31,9 +31,9 @@ import com.google.samples.apps.nowinandroid.core.testing.util.captureMultiDevice import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider -import com.google.samples.apps.nowinandroid.feature.foryou.OnboardingUiState.Loading -import com.google.samples.apps.nowinandroid.feature.foryou.OnboardingUiState.NotShown -import com.google.samples.apps.nowinandroid.feature.foryou.OnboardingUiState.Shown +import com.google.samples.apps.nowinandroid.feature.foryou.api.OnboardingUiState.Loading +import com.google.samples.apps.nowinandroid.feature.foryou.api.OnboardingUiState.NotShown +import com.google.samples.apps.nowinandroid.feature.foryou.api.OnboardingUiState.Shown import dagger.hilt.android.testing.HiltTestApplication import org.hamcrest.Matchers import org.junit.Before diff --git a/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt b/feature/foryou/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouViewModelTest.kt similarity index 99% rename from feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt rename to feature/foryou/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouViewModelTest.kt index 812544c0c..b8a4ef86b 100644 --- a/feature/foryou/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt +++ b/feature/foryou/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/foryou/api/ForYouViewModelTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.foryou +package com.google.samples.apps.nowinandroid.feature.foryou.api import androidx.lifecycle.SavedStateHandle import com.google.samples.apps.nowinandroid.core.analytics.AnalyticsEvent diff --git a/feature/search/.gitignore b/feature/foryou/impl/.gitignore similarity index 100% rename from feature/search/.gitignore rename to feature/foryou/impl/.gitignore diff --git a/feature/foryou/impl/build.gradle.kts b/feature/foryou/impl/build.gradle.kts new file mode 100644 index 000000000..37f49d304 --- /dev/null +++ b/feature/foryou/impl/build.gradle.kts @@ -0,0 +1,26 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + alias(libs.plugins.nowinandroid.android.feature) + alias(libs.plugins.nowinandroid.android.library.compose) +} + +android { + namespace = "com.google.samples.apps.nowinandroid.feature.foryou.impl" +} + +dependencies { } \ No newline at end of file diff --git a/feature/foryou/src/test/screenshots/ForYouScreenLoading_foldable.png b/feature/foryou/src/test/screenshots/ForYouScreenLoading_foldable.png deleted file mode 100644 index 538c9032c6dd714a86a54fe3051262c8bf39fad4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14885 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

B1dwR=(rG}LkZRC-jaamVg8VD9Txv?@-n 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 P`)_^s?I_uP^!)z;;Wx4Z diff --git a/feature/foryou/src/test/screenshots/ForYouScreenPopulatedAndLoading_phone.png b/feature/foryou/src/test/screenshots/ForYouScreenPopulatedAndLoading_phone.png deleted file mode 100644 index a86a8232fcb22b4aae50e03eee2b17b8afab3147..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65816 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 diff --git a/feature/foryou/src/test/screenshots/ForYouScreenPopulatedAndLoading_phone_dark.png b/feature/foryou/src/test/screenshots/ForYouScreenPopulatedAndLoading_phone_dark.png deleted file mode 100644 index d500394ef740e3657532920e0653e367474ba523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65378 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 b?25EL=UrG!)57(x09f)bRb&dKjD!Cd`Xz(K diff --git a/feature/foryou/src/test/screenshots/ForYouScreenPopulatedFeed_phone.png b/feature/foryou/src/test/screenshots/ForYouScreenPopulatedFeed_phone.png deleted file mode 100644 index 1498f9b7b0c65ccfdabd2cf29b591d7b8f6a3944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57192 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 diff --git a/feature/settings/.gitignore b/feature/interests/api/.gitignore similarity index 100% rename from feature/settings/.gitignore rename to feature/interests/api/.gitignore diff --git a/feature/interests/build.gradle.kts b/feature/interests/api/build.gradle.kts similarity index 98% rename from feature/interests/build.gradle.kts rename to feature/interests/api/build.gradle.kts index 2b84b135f..a3627fac6 100644 --- a/feature/interests/build.gradle.kts +++ b/feature/interests/api/build.gradle.kts @@ -20,7 +20,7 @@ plugins { alias(libs.plugins.nowinandroid.android.library.jacoco) } android { - namespace = "com.google.samples.apps.nowinandroid.feature.interests" + namespace = "com.google.samples.apps.nowinandroid.feature.interests.api" } dependencies { diff --git a/feature/interests/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt b/feature/interests/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/api/InterestsScreenTest.kt similarity index 93% rename from feature/interests/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt rename to feature/interests/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/api/InterestsScreenTest.kt index a441f5a9d..2286dadb2 100644 --- a/feature/interests/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt +++ b/feature/interests/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/interests/api/InterestsScreenTest.kt @@ -25,13 +25,13 @@ import androidx.compose.ui.test.onAllNodesWithContentDescription import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithText import com.google.samples.apps.nowinandroid.core.testing.data.followableTopicTestData -import com.google.samples.apps.nowinandroid.feature.interests.InterestsScreen -import com.google.samples.apps.nowinandroid.feature.interests.InterestsUiState +import com.google.samples.apps.nowinandroid.feature.interests.api.InterestsScreen +import com.google.samples.apps.nowinandroid.feature.interests.api.InterestsUiState import org.junit.Before import org.junit.Rule import org.junit.Test import com.google.samples.apps.nowinandroid.core.ui.R as CoreUiR -import com.google.samples.apps.nowinandroid.feature.interests.R as InterestsR +import com.google.samples.apps.nowinandroid.feature.interests.api.R as InterestsR /** * UI test for checking the correct behaviour of the Interests screen; @@ -51,8 +51,8 @@ class InterestsScreenTest { @Before fun setup() { composeTestRule.activity.apply { - interestsLoading = getString(InterestsR.string.feature_interests_loading) - interestsEmptyHeader = getString(InterestsR.string.feature_interests_empty_header) + interestsLoading = getString(InterestsR.string.feature_interests_api_loading) + interestsEmptyHeader = getString(InterestsR.string.feature_interests_api_empty_header) interestsTopicCardFollowButton = getString(CoreUiR.string.core_ui_interests_card_follow_button_content_desc) interestsTopicCardUnfollowButton = diff --git a/feature/interests/src/main/AndroidManifest.xml b/feature/interests/api/src/main/AndroidManifest.xml similarity index 100% rename from feature/interests/src/main/AndroidManifest.xml rename to feature/interests/api/src/main/AndroidManifest.xml diff --git a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/InterestsScreen.kt similarity index 96% rename from feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt rename to feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/InterestsScreen.kt index 9b18ac89b..8f50ae638 100644 --- a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt +++ b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/InterestsScreen.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.interests +package com.google.samples.apps.nowinandroid.feature.interests.api import androidx.compose.foundation.layout.Column import androidx.compose.material3.Text @@ -70,7 +70,7 @@ internal fun InterestsScreen( when (uiState) { InterestsUiState.Loading -> NiaLoadingWheel( - contentDesc = stringResource(id = R.string.feature_interests_loading), + contentDesc = stringResource(id = R.string.feature_interests_api_loading), ) is InterestsUiState.Interests -> @@ -90,7 +90,7 @@ internal fun InterestsScreen( @Composable private fun InterestsEmptyScreen() { - Text(text = stringResource(id = R.string.feature_interests_empty_header)) + Text(text = stringResource(id = R.string.feature_interests_api_empty_header)) } @DevicePreviews diff --git a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/InterestsViewModel.kt similarity index 94% rename from feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt rename to feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/InterestsViewModel.kt index 67cc8884f..5c7b37c32 100644 --- a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt +++ b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/InterestsViewModel.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.interests +package com.google.samples.apps.nowinandroid.feature.interests.api import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel @@ -24,7 +24,7 @@ import com.google.samples.apps.nowinandroid.core.data.repository.UserDataReposit import com.google.samples.apps.nowinandroid.core.domain.GetFollowableTopicsUseCase import com.google.samples.apps.nowinandroid.core.domain.TopicSortField import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic -import com.google.samples.apps.nowinandroid.feature.interests.navigation.InterestsRoute +import com.google.samples.apps.nowinandroid.feature.interests.api.navigation.InterestsRoute import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow diff --git a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/TabContent.kt similarity index 98% rename from feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt rename to feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/TabContent.kt index 133c2bedd..5685ec6ab 100644 --- a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt +++ b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/TabContent.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.interests +package com.google.samples.apps.nowinandroid.feature.interests.api import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.layout.Box diff --git a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/navigation/InterestsNavigation.kt similarity index 93% rename from feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt rename to feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/navigation/InterestsNavigation.kt index d83e4a9b2..f509ba6b8 100644 --- a/feature/interests/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt +++ b/feature/interests/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/interests/api/navigation/InterestsNavigation.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.interests.navigation +package com.google.samples.apps.nowinandroid.feature.interests.api.navigation import androidx.navigation.NavController import androidx.navigation.NavOptions diff --git a/feature/interests/src/main/res/values/strings.xml b/feature/interests/api/src/main/res/values/strings.xml similarity index 75% rename from feature/interests/src/main/res/values/strings.xml rename to feature/interests/api/src/main/res/values/strings.xml index 8d5322859..c76bd4915 100644 --- a/feature/interests/src/main/res/values/strings.xml +++ b/feature/interests/api/src/main/res/values/strings.xml @@ -15,7 +15,7 @@ limitations under the License. --> - Interests - Loading data - "No available data" + Interests + Loading data + "No available data" diff --git a/feature/interests/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt b/feature/interests/api/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/api/InterestsViewModelTest.kt similarity index 99% rename from feature/interests/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt rename to feature/interests/api/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/api/InterestsViewModelTest.kt index cdf21f325..55a1ded1a 100644 --- a/feature/interests/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt +++ b/feature/interests/api/src/test/kotlin/com/google/samples/apps/nowinandroid/interests/api/InterestsViewModelTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.interests +package com.google.samples.apps.nowinandroid.interests.api import androidx.lifecycle.SavedStateHandle import androidx.navigation.testing.invoke diff --git a/feature/topic/.gitignore b/feature/interests/impl/.gitignore similarity index 100% rename from feature/topic/.gitignore rename to feature/interests/impl/.gitignore diff --git a/feature/interests/impl/build.gradle.kts b/feature/interests/impl/build.gradle.kts new file mode 100644 index 000000000..a83efdc4a --- /dev/null +++ b/feature/interests/impl/build.gradle.kts @@ -0,0 +1,24 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + alias(libs.plugins.nowinandroid.android.feature) + alias(libs.plugins.nowinandroid.android.library.compose) + alias(libs.plugins.nowinandroid.android.library.jacoco) +} +android { + namespace = "com.google.samples.apps.nowinandroid.feature.interests.impl" +} \ No newline at end of file diff --git a/feature/search/api/.gitignore b/feature/search/api/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/search/api/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/search/build.gradle.kts b/feature/search/api/build.gradle.kts similarity index 99% rename from feature/search/build.gradle.kts rename to feature/search/api/build.gradle.kts index 5bb659c35..741a87fff 100644 --- a/feature/search/build.gradle.kts +++ b/feature/search/api/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } android { - namespace = "com.google.samples.apps.nowinandroid.feature.search" + namespace = "com.google.samples.apps.nowinandroid.feature.search.api" } dependencies { diff --git a/feature/search/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreenTest.kt b/feature/search/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchScreenTest.kt similarity index 99% rename from feature/search/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreenTest.kt rename to feature/search/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchScreenTest.kt index a9e2fa98f..a86de6ab3 100644 --- a/feature/search/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreenTest.kt +++ b/feature/search/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchScreenTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import androidx.activity.ComponentActivity import androidx.compose.ui.test.assertCountEquals diff --git a/feature/search/src/main/AndroidManifest.xml b/feature/search/api/src/main/AndroidManifest.xml similarity index 100% rename from feature/search/src/main/AndroidManifest.xml rename to feature/search/api/src/main/AndroidManifest.xml diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/RecentSearchQueriesUiState.kt b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/RecentSearchQueriesUiState.kt similarity index 93% rename from feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/RecentSearchQueriesUiState.kt rename to feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/RecentSearchQueriesUiState.kt index 8aa5bb3b8..3e5d704a5 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/RecentSearchQueriesUiState.kt +++ b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/RecentSearchQueriesUiState.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import com.google.samples.apps.nowinandroid.core.data.model.RecentSearchQuery diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchResultUiState.kt b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchResultUiState.kt similarity index 96% rename from feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchResultUiState.kt rename to feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchResultUiState.kt index aaf7dba7d..27b4003bf 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchResultUiState.kt +++ b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchResultUiState.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.model.data.UserNewsResource diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchScreen.kt similarity index 97% rename from feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt rename to feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchScreen.kt index b617f98a9..28c7c3bfc 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchScreen.kt +++ b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchScreen.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import androidx.compose.foundation.clickable import androidx.compose.foundation.gestures.Orientation @@ -93,7 +93,7 @@ import com.google.samples.apps.nowinandroid.core.ui.NewsFeedUiState.Success import com.google.samples.apps.nowinandroid.core.ui.R.string import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent import com.google.samples.apps.nowinandroid.core.ui.newsFeed -import com.google.samples.apps.nowinandroid.feature.search.R as searchR +import com.google.samples.apps.nowinandroid.feature.search.api.R as searchR @Composable internal fun SearchRoute( @@ -211,7 +211,7 @@ fun EmptySearchResultBody( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(horizontal = 48.dp), ) { - val message = stringResource(id = searchR.string.feature_search_result_not_found, searchQuery) + val message = stringResource(id = searchR.string.feature_search_api_result_not_found, searchQuery) val start = message.indexOf(searchQuery) Text( text = AnnotatedString( @@ -229,7 +229,7 @@ fun EmptySearchResultBody( modifier = Modifier.padding(vertical = 24.dp), ) val tryAnotherSearchString = buildAnnotatedString { - append(stringResource(id = searchR.string.feature_search_try_another_search)) + append(stringResource(id = searchR.string.feature_search_api_try_another_search)) append(" ") withLink( LinkAnnotation.Clickable( @@ -245,12 +245,12 @@ fun EmptySearchResultBody( fontWeight = FontWeight.Bold, ), ) { - append(stringResource(id = searchR.string.feature_search_interests)) + append(stringResource(id = searchR.string.feature_search_api_interests)) } } append(" ") - append(stringResource(id = searchR.string.feature_search_to_browse_topics)) + append(stringResource(id = searchR.string.feature_search_api_to_browse_topics)) } Text( text = tryAnotherSearchString, @@ -273,7 +273,7 @@ private fun SearchNotReadyBody() { modifier = Modifier.padding(horizontal = 48.dp), ) { Text( - text = stringResource(id = searchR.string.feature_search_not_ready), + text = stringResource(id = searchR.string.feature_search_api_not_ready), style = MaterialTheme.typography.bodyLarge, textAlign = TextAlign.Center, modifier = Modifier.padding(vertical = 24.dp), @@ -314,7 +314,7 @@ private fun SearchResultBody( Text( text = buildAnnotatedString { withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) { - append(stringResource(id = searchR.string.feature_search_topics)) + append(stringResource(id = searchR.string.feature_search_api_topics)) } }, modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), @@ -350,7 +350,7 @@ private fun SearchResultBody( Text( text = buildAnnotatedString { withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) { - append(stringResource(id = searchR.string.feature_search_updates)) + append(stringResource(id = searchR.string.feature_search_api_updates)) } }, modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), @@ -402,7 +402,7 @@ private fun RecentSearchesBody( Text( text = buildAnnotatedString { withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) { - append(stringResource(id = searchR.string.feature_search_recent_searches)) + append(stringResource(id = searchR.string.feature_search_api_recent_searches)) } }, modifier = Modifier.padding(horizontal = 16.dp, vertical = 8.dp), @@ -417,7 +417,7 @@ private fun RecentSearchesBody( Icon( imageVector = NiaIcons.Close, contentDescription = stringResource( - id = searchR.string.feature_search_clear_recent_searches_content_desc, + id = searchR.string.feature_search_api_clear_recent_searches_content_desc, ), tint = MaterialTheme.colorScheme.onSurface, ) @@ -491,7 +491,7 @@ private fun SearchTextField( Icon( imageVector = NiaIcons.Search, contentDescription = stringResource( - id = searchR.string.feature_search_title, + id = searchR.string.feature_search_api_title, ), tint = MaterialTheme.colorScheme.onSurface, ) @@ -506,7 +506,7 @@ private fun SearchTextField( Icon( imageVector = NiaIcons.Close, contentDescription = stringResource( - id = searchR.string.feature_search_clear_search_text_content_desc, + id = searchR.string.feature_search_api_clear_search_text_content_desc, ), tint = MaterialTheme.colorScheme.onSurface, ) diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchUiStatePreviewParameterProvider.kt similarity index 87% rename from feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt rename to feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchUiStatePreviewParameterProvider.kt index 257d8b68e..cd31ad8ad 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchUiStatePreviewParameterProvider.kt +++ b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchUiStatePreviewParameterProvider.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Android Open Source Project + * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,12 +16,13 @@ @file:Suppress("ktlint:standard:max-line-length") -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic import com.google.samples.apps.nowinandroid.core.ui.PreviewParameterData.newsResources import com.google.samples.apps.nowinandroid.core.ui.PreviewParameterData.topics +import com.google.samples.apps.nowinandroid.feature.search.api.SearchResultUiState.Success /** * This [PreviewParameterProvider](https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/preview/PreviewParameterProvider) @@ -29,7 +30,7 @@ import com.google.samples.apps.nowinandroid.core.ui.PreviewParameterData.topics */ class SearchUiStatePreviewParameterProvider : PreviewParameterProvider { override val values: Sequence = sequenceOf( - SearchResultUiState.Success( + Success( topics = topics.mapIndexed { i, topic -> FollowableTopic(topic = topic, isFollowed = i % 2 == 0) }, diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchViewModel.kt similarity index 99% rename from feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt rename to feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchViewModel.kt index 36947880e..ed1ea1171 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt +++ b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchViewModel.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel diff --git a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/navigation/SearchNavigation.kt similarity index 86% rename from feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt rename to feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/navigation/SearchNavigation.kt index 3b16e5f71..b45956b29 100644 --- a/feature/search/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/navigation/SearchNavigation.kt +++ b/feature/search/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/navigation/SearchNavigation.kt @@ -14,13 +14,13 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search.navigation +package com.google.samples.apps.nowinandroid.feature.search.api.navigation import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptions import androidx.navigation.compose.composable -import com.google.samples.apps.nowinandroid.feature.search.SearchRoute +import com.google.samples.apps.nowinandroid.feature.search.api.SearchRoute import kotlinx.serialization.Serializable @Serializable data object SearchRoute @@ -36,7 +36,7 @@ fun NavGraphBuilder.searchScreen( // TODO: Handle back stack for each top-level destination. At the moment each top-level // destination may have own search screen's back stack. composable { - SearchRoute( + com.google.samples.apps.nowinandroid.feature.search.api.SearchRoute( onBackClick = onBackClick, onInterestsClick = onInterestsClick, onTopicClick = onTopicClick, diff --git a/feature/search/api/src/main/res/values/strings.xml b/feature/search/api/src/main/res/values/strings.xml new file mode 100644 index 000000000..d2d218493 --- /dev/null +++ b/feature/search/api/src/main/res/values/strings.xml @@ -0,0 +1,29 @@ + + + + Search + Clear search text + Sorry, there is no content found for your search \"%1$s\" + Sorry, we are still processing the search index. Please come back later + Try another search or explorer + Interests + to browse topics + Topics + Updates + Recent searches + Clear searches + diff --git a/feature/search/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModelTest.kt b/feature/search/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchViewModelTest.kt similarity index 93% rename from feature/search/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModelTest.kt rename to feature/search/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchViewModelTest.kt index 1b866cec2..7b719b1cc 100644 --- a/feature/search/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/SearchViewModelTest.kt +++ b/feature/search/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/search/api/SearchViewModelTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023 The Android Open Source Project + * Copyright 2022 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.search +package com.google.samples.apps.nowinandroid.feature.search.api import androidx.lifecycle.SavedStateHandle import com.google.samples.apps.nowinandroid.core.analytics.NoOpAnalyticsHelper @@ -27,10 +27,10 @@ import com.google.samples.apps.nowinandroid.core.testing.repository.TestSearchCo import com.google.samples.apps.nowinandroid.core.testing.repository.TestUserDataRepository import com.google.samples.apps.nowinandroid.core.testing.repository.emptyUserData import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule -import com.google.samples.apps.nowinandroid.feature.search.RecentSearchQueriesUiState.Success -import com.google.samples.apps.nowinandroid.feature.search.SearchResultUiState.EmptyQuery -import com.google.samples.apps.nowinandroid.feature.search.SearchResultUiState.Loading -import com.google.samples.apps.nowinandroid.feature.search.SearchResultUiState.SearchNotReady +import com.google.samples.apps.nowinandroid.feature.search.api.RecentSearchQueriesUiState.Success +import com.google.samples.apps.nowinandroid.feature.search.api.SearchResultUiState.EmptyQuery +import com.google.samples.apps.nowinandroid.feature.search.api.SearchResultUiState.Loading +import com.google.samples.apps.nowinandroid.feature.search.api.SearchResultUiState.SearchNotReady import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.first import kotlinx.coroutines.launch diff --git a/feature/search/impl/.gitignore b/feature/search/impl/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/search/impl/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/search/impl/build.gradle.kts b/feature/search/impl/build.gradle.kts new file mode 100644 index 000000000..abb0feacd --- /dev/null +++ b/feature/search/impl/build.gradle.kts @@ -0,0 +1,25 @@ +/* + * Copyright 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +plugins { + alias(libs.plugins.nowinandroid.android.feature) + alias(libs.plugins.nowinandroid.android.library.compose) + alias(libs.plugins.nowinandroid.android.library.jacoco) +} + +android { + namespace = "com.google.samples.apps.nowinandroid.feature.search.impl" +} \ No newline at end of file diff --git a/feature/search/src/main/res/values/strings.xml b/feature/search/src/main/res/values/strings.xml deleted file mode 100644 index e11576747..000000000 --- a/feature/search/src/main/res/values/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - Search - Clear search text - Sorry, there is no content found for your search \"%1$s\" - Sorry, we are still processing the search index. Please come back later - Try another search or explorer - Interests - to browse topics - Topics - Updates - Recent searches - Clear searches - diff --git a/feature/settings/api/.gitignore b/feature/settings/api/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/settings/api/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/settings/build.gradle.kts b/feature/settings/api/build.gradle.kts similarity index 98% rename from feature/settings/build.gradle.kts rename to feature/settings/api/build.gradle.kts index 15d65204d..d29e024b2 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings/api/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } android { - namespace = "com.google.samples.apps.nowinandroid.feature.settings" + namespace = "com.google.samples.apps.nowinandroid.feature.settings.api" } dependencies { diff --git a/feature/settings/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt b/feature/settings/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsDialogTest.kt similarity index 96% rename from feature/settings/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt rename to feature/settings/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsDialogTest.kt index 790b5964d..c92894ee0 100644 --- a/feature/settings/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialogTest.kt +++ b/feature/settings/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsDialogTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.settings +package com.google.samples.apps.nowinandroid.feature.settings.api import androidx.activity.ComponentActivity import androidx.compose.ui.test.assertIsSelected @@ -23,8 +23,8 @@ import androidx.compose.ui.test.onNodeWithText import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig.DARK import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand.ANDROID import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand.DEFAULT -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Loading -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Success +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Loading +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Success import org.junit.Rule import org.junit.Test diff --git a/feature/settings/api/src/main/AndroidManifest.xml b/feature/settings/api/src/main/AndroidManifest.xml new file mode 100644 index 000000000..00b4c35bd --- /dev/null +++ b/feature/settings/api/src/main/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt b/feature/settings/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsDialog.kt similarity index 97% rename from feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt rename to feature/settings/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsDialog.kt index ad7f30f43..0d544598e 100644 --- a/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsDialog.kt +++ b/feature/settings/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsDialog.kt @@ -16,7 +16,7 @@ @file:Suppress("ktlint:standard:max-line-length") -package com.google.samples.apps.nowinandroid.feature.settings +package com.google.samples.apps.nowinandroid.feature.settings.api import android.content.Intent import androidx.compose.animation.AnimatedVisibility @@ -66,9 +66,9 @@ import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand.ANDROID import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand.DEFAULT import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent -import com.google.samples.apps.nowinandroid.feature.settings.R.string -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Loading -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Success +import com.google.samples.apps.nowinandroid.feature.settings.api.R.string +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Loading +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Success @Composable fun SettingsDialog( diff --git a/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt b/feature/settings/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsViewModel.kt similarity index 92% rename from feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt rename to feature/settings/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsViewModel.kt index 123c84d1c..f34c72f0c 100644 --- a/feature/settings/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModel.kt +++ b/feature/settings/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsViewModel.kt @@ -14,15 +14,15 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.settings +package com.google.samples.apps.nowinandroid.feature.settings.api import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.google.samples.apps.nowinandroid.core.data.repository.UserDataRepository import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Loading -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Success +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Loading +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Success import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.SharingStarted.Companion.WhileSubscribed import kotlinx.coroutines.flow.StateFlow diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings/api/src/main/res/values/strings.xml similarity index 100% rename from feature/settings/src/main/res/values/strings.xml rename to feature/settings/api/src/main/res/values/strings.xml diff --git a/feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt b/feature/settings/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsViewModelTest.kt similarity index 90% rename from feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt rename to feature/settings/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsViewModelTest.kt index f977612a1..31b73df5b 100644 --- a/feature/settings/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/SettingsViewModelTest.kt +++ b/feature/settings/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/settings/api/SettingsViewModelTest.kt @@ -14,14 +14,14 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.settings +package com.google.samples.apps.nowinandroid.feature.settings.api import com.google.samples.apps.nowinandroid.core.model.data.DarkThemeConfig.DARK import com.google.samples.apps.nowinandroid.core.model.data.ThemeBrand.ANDROID import com.google.samples.apps.nowinandroid.core.testing.repository.TestUserDataRepository import com.google.samples.apps.nowinandroid.core.testing.util.MainDispatcherRule -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Loading -import com.google.samples.apps.nowinandroid.feature.settings.SettingsUiState.Success +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Loading +import com.google.samples.apps.nowinandroid.feature.settings.api.SettingsUiState.Success import kotlinx.coroutines.flow.collect import kotlinx.coroutines.launch import kotlinx.coroutines.test.UnconfinedTestDispatcher diff --git a/feature/settings/src/main/AndroidManifest.xml b/feature/settings/src/main/AndroidManifest.xml deleted file mode 100644 index 1fd9557d1..000000000 --- a/feature/settings/src/main/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - diff --git a/feature/topic/api/.gitignore b/feature/topic/api/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/topic/api/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/topic/build.gradle.kts b/feature/topic/api/build.gradle.kts similarity index 99% rename from feature/topic/build.gradle.kts rename to feature/topic/api/build.gradle.kts index bd8b59ec8..00678fa35 100644 --- a/feature/topic/build.gradle.kts +++ b/feature/topic/api/build.gradle.kts @@ -21,7 +21,7 @@ plugins { } android { - namespace = "com.google.samples.apps.nowinandroid.feature.topic" + namespace = "com.google.samples.apps.nowinandroid.feature.topic.api" } dependencies { diff --git a/feature/topic/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt b/feature/topic/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicScreenTest.kt similarity index 97% rename from feature/topic/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt rename to feature/topic/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicScreenTest.kt index 2b87baf9e..5c80f67c3 100644 --- a/feature/topic/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt +++ b/feature/topic/api/src/androidTest/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicScreenTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.topic +package com.google.samples.apps.nowinandroid.feature.topic.api import androidx.activity.ComponentActivity import androidx.compose.ui.test.hasScrollToNodeAction @@ -45,7 +45,7 @@ class TopicScreenTest { @Before fun setup() { composeTestRule.activity.apply { - topicLoading = getString(R.string.feature_topic_loading) + topicLoading = getString(R.string.feature_topic_api_loading) } } diff --git a/feature/topic/src/main/AndroidManifest.xml b/feature/topic/api/src/main/AndroidManifest.xml similarity index 100% rename from feature/topic/src/main/AndroidManifest.xml rename to feature/topic/api/src/main/AndroidManifest.xml diff --git a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicDetailPlaceholder.kt similarity index 95% rename from feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt rename to feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicDetailPlaceholder.kt index 627fb8fb3..2519fa78a 100644 --- a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicDetailPlaceholder.kt +++ b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicDetailPlaceholder.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.topic +package com.google.samples.apps.nowinandroid.feature.topic.api import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -50,12 +50,12 @@ fun TopicDetailPlaceholder(modifier: Modifier = Modifier) { ), ) { Icon( - painter = painterResource(id = R.drawable.feature_topic_ic_topic_placeholder), + painter = painterResource(id = R.drawable.feature_topic_api_ic_topic_placeholder), contentDescription = null, tint = MaterialTheme.colorScheme.primary, ) Text( - text = stringResource(id = R.string.feature_topic_select_an_interest), + text = stringResource(id = R.string.feature_topic_api_select_an_interest), style = MaterialTheme.typography.titleLarge, ) } diff --git a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicScreen.kt similarity index 98% rename from feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt rename to feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicScreen.kt index 8ef0d786d..4f2d490c9 100644 --- a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt +++ b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicScreen.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.topic +package com.google.samples.apps.nowinandroid.feature.topic.api import androidx.annotation.VisibleForTesting import androidx.compose.foundation.gestures.Orientation @@ -68,7 +68,7 @@ import com.google.samples.apps.nowinandroid.core.ui.TrackScreenViewEvent import com.google.samples.apps.nowinandroid.core.ui.TrackScrollJank import com.google.samples.apps.nowinandroid.core.ui.UserNewsResourcePreviewParameterProvider import com.google.samples.apps.nowinandroid.core.ui.userNewsResourceCardItems -import com.google.samples.apps.nowinandroid.feature.topic.R.string +import com.google.samples.apps.nowinandroid.feature.topic.api.R.string @Composable fun TopicScreen( @@ -124,7 +124,7 @@ internal fun TopicScreen( TopicUiState.Loading -> item { NiaLoadingWheel( modifier = modifier, - contentDesc = stringResource(id = string.feature_topic_loading), + contentDesc = stringResource(id = string.feature_topic_api_loading), ) } diff --git a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicViewModel.kt similarity index 98% rename from feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt rename to feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicViewModel.kt index 8865da463..4a8b107a6 100644 --- a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt +++ b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicViewModel.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.topic +package com.google.samples.apps.nowinandroid.feature.topic.api import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope diff --git a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/navigation/TopicNavigation.kt similarity index 88% rename from feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt rename to feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/navigation/TopicNavigation.kt index 69059c81d..315389908 100644 --- a/feature/topic/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt +++ b/feature/topic/api/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/navigation/TopicNavigation.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.topic.navigation +package com.google.samples.apps.nowinandroid.feature.topic.api.navigation import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.NavController @@ -22,8 +22,8 @@ import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptionsBuilder import androidx.navigation.compose.composable import androidx.navigation.toRoute -import com.google.samples.apps.nowinandroid.feature.topic.TopicScreen -import com.google.samples.apps.nowinandroid.feature.topic.TopicViewModel +import com.google.samples.apps.nowinandroid.feature.topic.api.TopicScreen +import com.google.samples.apps.nowinandroid.feature.topic.api.TopicViewModel import kotlinx.serialization.Serializable @Serializable data class TopicRoute(val id: String) diff --git a/feature/topic/src/main/res/drawable/feature_topic_ic_topic_placeholder.xml b/feature/topic/api/src/main/res/drawable/feature_topic_api_ic_topic_placeholder.xml similarity index 75% rename from feature/topic/src/main/res/drawable/feature_topic_ic_topic_placeholder.xml rename to feature/topic/api/src/main/res/drawable/feature_topic_api_ic_topic_placeholder.xml index 0518401da..49975a008 100644 --- a/feature/topic/src/main/res/drawable/feature_topic_ic_topic_placeholder.xml +++ b/feature/topic/api/src/main/res/drawable/feature_topic_api_ic_topic_placeholder.xml @@ -1,19 +1,19 @@ + ~ Copyright 2024 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ https://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> - + \ No newline at end of file diff --git a/feature/topic/src/main/res/values/strings.xml b/feature/topic/api/src/main/res/values/strings.xml similarity index 82% rename from feature/topic/src/main/res/values/strings.xml rename to feature/topic/api/src/main/res/values/strings.xml index fe4a6dc29..25f8a7126 100644 --- a/feature/topic/src/main/res/values/strings.xml +++ b/feature/topic/api/src/main/res/values/strings.xml @@ -15,6 +15,6 @@ limitations under the License. --> - Loading topic - Select an Interest + Loading topic + Select an Interest diff --git a/feature/topic/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt b/feature/topic/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicViewModelTest.kt similarity index 99% rename from feature/topic/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt rename to feature/topic/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicViewModelTest.kt index 58242110d..152e582d6 100644 --- a/feature/topic/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt +++ b/feature/topic/api/src/test/kotlin/com/google/samples/apps/nowinandroid/feature/topic/api/TopicViewModelTest.kt @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.google.samples.apps.nowinandroid.feature.topic +package com.google.samples.apps.nowinandroid.feature.topic.api import com.google.samples.apps.nowinandroid.core.data.repository.CompositeUserNewsResourceRepository import com.google.samples.apps.nowinandroid.core.model.data.FollowableTopic diff --git a/feature/topic/impl/.gitignore b/feature/topic/impl/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/topic/impl/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/topic/impl/build.gradle.kts b/feature/topic/impl/build.gradle.kts new file mode 100644 index 000000000..528ec4e4a --- /dev/null +++ b/feature/topic/impl/build.gradle.kts @@ -0,0 +1,25 @@ +/* +* Copyright 2022 The Android Open Source Project +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* https://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +plugins { + alias(libs.plugins.nowinandroid.android.feature) + alias(libs.plugins.nowinandroid.android.library.compose) + alias(libs.plugins.nowinandroid.android.library.jacoco) +} + +android { + namespace = "com.google.samples.apps.nowinandroid.feature.topic.impl" +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0a6132d7d..1fa507a84 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ androidTools = "31.13.1" androidxActivity = "1.9.3" androidxAppCompat = "1.7.0" androidxBrowser = "1.8.0" -androidxComposeBom = "2025.08.01" +androidxComposeBom = "2025.09.01" androidxComposeFoundation = "1.8.0-alpha07" androidxComposeMaterial3Adaptive = "1.1.0-rc01" androidxComposeRuntimeTracing = "1.7.6" @@ -18,6 +18,7 @@ androidxEspresso = "3.6.1" androidxHiltNavigationCompose = "1.2.0" androidxLifecycle = "2.8.7" androidxLintGradle = "1.0.0-alpha03" +androidxLifecycleViewModelNavigation3 = "2.10.0-alpha05" androidxMacroBenchmark = "1.4.1" androidxMetrics = "1.0.0-beta01" androidxNavigation = "2.8.5" diff --git a/settings.gradle.kts b/settings.gradle.kts index 2b8c6e45c..1d19c11c8 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -65,12 +65,17 @@ include(":core:screenshot-testing") include(":core:testing") include(":core:ui") -include(":feature:foryou") -include(":feature:interests") -include(":feature:bookmarks") -include(":feature:topic") -include(":feature:search") -include(":feature:settings") +include(":feature:foryou:api") +include(":feature:foryou:impl") +include(":feature:interests:api") +include(":feature:interests:impl") +include(":feature:bookmarks:api") +include(":feature:bookmarks:impl") +include(":feature:topic:api") +include(":feature:topic:impl") +include(":feature:search:api") +include(":feature:search:impl") +include(":feature:settings:api") include(":lint") include(":sync:work") include(":sync:sync-test")