From 3bd81154b51a5da3db4f1d25e647e3f76ed99dc4 Mon Sep 17 00:00:00 2001 From: madroid Date: Wed, 24 Aug 2022 23:22:11 +0800 Subject: [PATCH 1/4] Move 'core-' module to core subfolder --- app-nia-catalog/build.gradle.kts | 4 +-- app/build.gradle.kts | 14 +++++----- .../kotlin/AndroidFeatureConventionPlugin.kt | 16 ++++++------ {core-common => core/common}/.gitignore | 0 {core-common => core/common}/build.gradle.kts | 2 +- .../common}/src/main/AndroidManifest.xml | 0 .../core/network/NiaDispatchers.kt | 0 .../core/network/di/DispatchersModule.kt | 0 .../apps/nowinandroid/core/result/Result.kt | 0 .../ic_nia_notification.xml | 0 .../res/drawable-hdpi/ic_nia_notification.png | Bin .../res/drawable-mdpi/ic_nia_notification.png | Bin .../drawable-xhdpi/ic_nia_notification.png | Bin .../drawable-xxhdpi/ic_nia_notification.png | Bin .../nowinandroid/core/result/ResultKtTest.kt | 0 {core-data-test => core/data-test}/.gitignore | 0 .../data-test}/build.gradle.kts | 4 +-- .../data-test}/src/main/AndroidManifest.xml | 0 .../core/data/test/TestDataModule.kt | 0 {core-data => core/data}/.gitignore | 0 {core-data => core/data}/build.gradle.kts | 14 +++++----- .../data}/src/main/AndroidManifest.xml | 0 .../nowinandroid/core/data/SyncUtilities.kt | 0 .../nowinandroid/core/data/di/DataModule.kt | 0 .../nowinandroid/core/data/model/Author.kt | 0 .../nowinandroid/core/data/model/Episode.kt | 0 .../core/data/model/NewsResource.kt | 0 .../nowinandroid/core/data/model/Topic.kt | 0 .../core/data/repository/AuthorsRepository.kt | 0 .../core/data/repository/NewsRepository.kt | 0 .../OfflineFirstAuthorsRepository.kt | 0 .../repository/OfflineFirstNewsRepository.kt | 0 .../OfflineFirstTopicsRepository.kt | 0 .../OfflineFirstUserDataRepository.kt | 0 .../core/data/repository/TopicsRepository.kt | 0 .../data/repository/UserDataRepository.kt | 0 .../repository/fake/FakeAuthorsRepository.kt | 0 .../repository/fake/FakeNewsRepository.kt | 0 .../repository/fake/FakeTopicsRepository.kt | 0 .../repository/fake/FakeUserDataRepository.kt | 0 .../core/data/model/NetworkEntityKtTest.kt | 0 .../data/repository/FakeNewsRepositoryTest.kt | 0 .../OfflineFirstAuthorsRepositoryTest.kt | 0 .../OfflineFirstNewsRepositoryTest.kt | 0 .../OfflineFirstTopicsRepositoryTest.kt | 0 .../OfflineFirstUserDataRepositoryTest.kt | 0 .../core/data/repository/TestSynchronizer.kt | 0 .../core/data/testdoubles/TestAuthorDao.kt | 0 .../core/data/testdoubles/TestEpisodeDao.kt | 0 .../data/testdoubles/TestNewsResourceDao.kt | 0 .../testdoubles/TestNiaNetworkDataSource.kt | 0 .../core/data/testdoubles/TestTopicDao.kt | 0 .../database/model/PopulatedEpisodeKtTest.kt | 0 .../model/PopulatedNewsResourceKtTest.kt | 0 .../util/NewsResourceTypeConverterTest.kt | 0 {core-database => core/database}/.gitignore | 0 .../database}/build.gradle.kts | 4 +-- .../1.json | 0 .../10.json | 0 .../2.json | 0 .../3.json | 0 .../4.json | 0 .../5.json | 0 .../6.json | 0 .../7.json | 0 .../8.json | 0 .../9.json | 0 .../core/database/dao/NewsResourceDaoTest.kt | 0 .../database}/src/main/AndroidManifest.xml | 0 .../nowinandroid/core/database/DaosModule.kt | 0 .../core/database/DatabaseMigrations.kt | 0 .../core/database/DatabaseModule.kt | 0 .../nowinandroid/core/database/NiaDatabase.kt | 0 .../core/database/dao/AuthorDao.kt | 0 .../core/database/dao/EpisodeDao.kt | 0 .../core/database/dao/NewsResourceDao.kt | 0 .../core/database/dao/TopicDao.kt | 0 .../core/database/dao/UpsertHelper.kt | 0 .../core/database/model/AuthorEntity.kt | 0 .../database/model/EpisodeAuthorCrossRef.kt | 0 .../core/database/model/EpisodeEntity.kt | 0 .../model/NewsResourceAuthorCrossRef.kt | 0 .../core/database/model/NewsResourceEntity.kt | 0 .../model/NewsResourceTopicCrossRef.kt | 0 .../core/database/model/PopulatedEpisode.kt | 0 .../database/model/PopulatedNewsResource.kt | 0 .../core/database/model/TopicEntity.kt | 0 .../core/database/util/Converters.kt | 0 .../datastore-test}/.gitignore | 0 .../datastore-test}/build.gradle.kts | 4 +-- .../src/main/AndroidManifest.xml | 0 .../datastore/test/TestDataStoreModule.kt | 0 {core-datastore => core/datastore}/.gitignore | 0 .../datastore}/build.gradle.kts | 6 ++--- .../datastore}/consumer-proguard-rules.pro | 0 .../datastore}/src/main/AndroidManifest.xml | 0 .../core/datastore/ChangeListVersions.kt | 0 .../core/datastore/IntToStringIdsMigration.kt | 0 .../datastore/NiaPreferencesDataSource.kt | 0 .../datastore/UserPreferencesSerializer.kt | 0 .../core/datastore/di/DataStoreModule.kt | 0 .../nowinandroid/data/user_preferences.proto | 0 .../datastore/IntToStringIdsMigrationTest.kt | 0 .../UserPreferencesSerializerTest.kt | 0 .../designsystem}/.gitignore | 0 .../designsystem}/build.gradle.kts | 2 +- .../core/designsystem/ThemeTest.kt | 0 .../src/main/AndroidManifest.xml | 0 .../core/designsystem/component/Background.kt | 0 .../core/designsystem/component/Button.kt | 0 .../core/designsystem/component/Chip.kt | 0 .../designsystem/component/DropdownMenu.kt | 0 .../designsystem/component/LoadingWheel.kt | 0 .../core/designsystem/component/Navigation.kt | 0 .../core/designsystem/component/Tabs.kt | 0 .../core/designsystem/component/Tag.kt | 0 .../designsystem/component/ToggleButton.kt | 0 .../core/designsystem/component/TopAppBar.kt | 0 .../core/designsystem/component/ViewToggle.kt | 0 .../core/designsystem/icon/NiaIcons.kt | 0 .../core/designsystem/theme/Background.kt | 0 .../core/designsystem/theme/Color.kt | 0 .../core/designsystem/theme/Gradient.kt | 0 .../core/designsystem/theme/Theme.kt | 0 .../core/designsystem/theme/Type.kt | 0 .../src/main/res/drawable/ic_bookmark.xml | 0 .../main/res/drawable/ic_bookmark_border.xml | 0 .../src/main/res/drawable/ic_bookmarks.xml | 0 .../main/res/drawable/ic_bookmarks_border.xml | 0 .../src/main/res/drawable/ic_menu_book.xml | 0 .../main/res/drawable/ic_menu_book_border.xml | 0 .../res/drawable/ic_placeholder_default.xml | 0 .../src/main/res/drawable/ic_upcoming.xml | 0 .../main/res/drawable/ic_upcoming_border.xml | 0 .../src/main/res/values/strings.xml | 0 {core-model => core/model}/.gitignore | 0 {core-model => core/model}/build.gradle.kts | 0 .../nowinandroid/core/model/data/Author.kt | 0 .../nowinandroid/core/model/data/Episode.kt | 0 .../core/model/data/FollowableAuthor.kt | 0 .../core/model/data/FollowableTopic.kt | 0 .../core/model/data/NewsResource.kt | 0 .../core/model/data/NewsResourceType.kt | 0 .../core/model/data/SaveableNewsResource.kt | 0 .../nowinandroid/core/model/data/Topic.kt | 0 .../nowinandroid/core/model/data/UserData.kt | 0 .../navigation}/.gitignore | 0 .../navigation}/build.gradle.kts | 0 .../navigation}/src/main/AndroidManifest.xml | 0 .../navigation/NiaNavigationDestination.kt | 0 {core-network => core/network}/.gitignore | 0 .../network}/build.gradle.kts | 6 ++--- .../core/network/di/NetworkModule.kt | 0 .../core/network/di/NetworkModule.kt | 0 .../network}/src/main/AndroidManifest.xml | 0 .../core/network/NiaNetworkDataSource.kt | 0 .../core/network/fake/FakeDataSource.kt | 0 .../network/fake/FakeNiaNetworkDataSource.kt | 0 .../core/network/model/NetworkAuthor.kt | 0 .../core/network/model/NetworkChangeList.kt | 0 .../core/network/model/NetworkEpisode.kt | 0 .../core/network/model/NetworkNewsResource.kt | 0 .../core/network/model/NetworkTopic.kt | 0 .../network/model/util/InstantSerializer.kt | 0 .../model/util/NewsResourceTypeSerializer.kt | 0 .../network/retrofit/RetrofitNiaNetwork.kt | 0 .../core/network/di/NetworkModule.kt | 0 .../fake/FakeNiaNetworkDataSourceTest.kt | 0 .../util/NewsResourceTypeSerializerTest.kt | 0 {core-testing => core/testing}/.gitignore | 0 .../testing}/build.gradle.kts | 6 ++--- .../testing}/src/main/AndroidManifest.xml | 0 .../core/testing/NiaTestRunner.kt | 0 .../core/testing/di/TestDispatcherModule.kt | 0 .../core/testing/di/TestDispatchersModule.kt | 0 .../repository/TestAuthorsRepository.kt | 0 .../testing/repository/TestNewsRepository.kt | 0 .../repository/TestTopicsRepository.kt | 0 .../repository/TestUserDataRepository.kt | 0 .../core/testing/util/MainDispatcherRule.kt | 0 {core-ui => core/ui}/.gitignore | 0 {core-ui => core/ui}/build.gradle.kts | 4 +-- .../ui}/src/main/AndroidManifest.xml | 0 .../core/ui/JankStatsExtensions.kt | 0 .../apps/nowinandroid/core/ui/NewsFeed.kt | 0 .../nowinandroid/core/ui/NewsResourceCard.kt | 0 .../core/ui/NewsResourceCardList.kt | 0 .../core/ui/TimeZoneBroadcastReceiver.kt | 0 .../ui}/src/main/res/values/strings.xml | 0 settings.gradle.kts | 24 +++++++++--------- sync/build.gradle.kts | 12 ++++----- 191 files changed, 61 insertions(+), 61 deletions(-) rename {core-common => core/common}/.gitignore (100%) rename {core-common => core/common}/build.gradle.kts (94%) rename {core-common => core/common}/src/main/AndroidManifest.xml (100%) rename {core-common => core/common}/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaDispatchers.kt (100%) rename {core-common => core/common}/src/main/java/com/google/samples/apps/nowinandroid/core/network/di/DispatchersModule.kt (100%) rename {core-common => core/common}/src/main/java/com/google/samples/apps/nowinandroid/core/result/Result.kt (100%) rename {core-common => core/common}/src/main/res/drawable-anydpi-v24/ic_nia_notification.xml (100%) rename {core-common => core/common}/src/main/res/drawable-hdpi/ic_nia_notification.png (100%) rename {core-common => core/common}/src/main/res/drawable-mdpi/ic_nia_notification.png (100%) rename {core-common => core/common}/src/main/res/drawable-xhdpi/ic_nia_notification.png (100%) rename {core-common => core/common}/src/main/res/drawable-xxhdpi/ic_nia_notification.png (100%) rename {core-common => core/common}/src/test/java/com/google/samples/apps/nowinandroid/core/result/ResultKtTest.kt (100%) rename {core-data-test => core/data-test}/.gitignore (100%) rename {core-data-test => core/data-test}/build.gradle.kts (92%) rename {core-data-test => core/data-test}/src/main/AndroidManifest.xml (100%) rename {core-data-test => core/data-test}/src/main/java/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt (100%) rename {core-data => core/data}/.gitignore (100%) rename {core-data => core/data}/build.gradle.kts (76%) rename {core-data => core/data}/src/main/AndroidManifest.xml (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/SyncUtilities.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Author.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Episode.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/NewsResource.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Topic.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/AuthorsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/NewsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/TopicsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeAuthorsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeNewsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeTopicsRepository.kt (100%) rename {core-data => core/data}/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/model/NetworkEntityKtTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/FakeNewsRepositoryTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepositoryTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepositoryTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepositoryTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/TestSynchronizer.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestAuthorDao.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestEpisodeDao.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNewsResourceDao.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNiaNetworkDataSource.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestTopicDao.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisodeKtTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResourceKtTest.kt (100%) rename {core-data => core/data}/src/test/java/com/google/samples/apps/nowinandroid/core/database/util/NewsResourceTypeConverterTest.kt (100%) rename {core-database => core/database}/.gitignore (100%) rename {core-database => core/database}/build.gradle.kts (94%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/1.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/10.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/2.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/3.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/4.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/5.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/6.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/7.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/8.json (100%) rename {core-database => core/database}/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/9.json (100%) rename {core-database => core/database}/src/androidTest/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDaoTest.kt (100%) rename {core-database => core/database}/src/main/AndroidManifest.xml (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/DaosModule.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseMigrations.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/NiaDatabase.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/AuthorDao.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/EpisodeDao.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDao.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/TopicDao.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/AuthorEntity.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeAuthorCrossRef.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeEntity.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceAuthorCrossRef.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceEntity.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceTopicCrossRef.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisode.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResource.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/TopicEntity.kt (100%) rename {core-database => core/database}/src/main/java/com/google/samples/apps/nowinandroid/core/database/util/Converters.kt (100%) rename {core-datastore-test => core/datastore-test}/.gitignore (100%) rename {core-datastore-test => core/datastore-test}/build.gradle.kts (91%) rename {core-datastore-test => core/datastore-test}/src/main/AndroidManifest.xml (100%) rename {core-datastore-test => core/datastore-test}/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/test/TestDataStoreModule.kt (100%) rename {core-datastore => core/datastore}/.gitignore (100%) rename {core-datastore => core/datastore}/build.gradle.kts (93%) rename {core-datastore => core/datastore}/consumer-proguard-rules.pro (100%) rename {core-datastore => core/datastore}/src/main/AndroidManifest.xml (100%) rename {core-datastore => core/datastore}/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/ChangeListVersions.kt (100%) rename {core-datastore => core/datastore}/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigration.kt (100%) rename {core-datastore => core/datastore}/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt (100%) rename {core-datastore => core/datastore}/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializer.kt (100%) rename {core-datastore => core/datastore}/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/di/DataStoreModule.kt (100%) rename {core-datastore => core/datastore}/src/main/proto/com/google/samples/apps/nowinandroid/data/user_preferences.proto (100%) rename {core-datastore => core/datastore}/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigrationTest.kt (100%) rename {core-datastore => core/datastore}/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializerTest.kt (100%) rename {core-designsystem => core/designsystem}/.gitignore (100%) rename {core-designsystem => core/designsystem}/build.gradle.kts (96%) rename {core-designsystem => core/designsystem}/src/androidTest/java/com/google/samples/apps/nowinandroid/core/designsystem/ThemeTest.kt (100%) rename {core-designsystem => core/designsystem}/src/main/AndroidManifest.xml (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Chip.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/DropdownMenu.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Navigation.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tabs.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tag.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ToggleButton.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Color.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt (100%) rename {core-designsystem => core/designsystem}/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Type.kt (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_bookmark.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_bookmark_border.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_bookmarks.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_bookmarks_border.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_menu_book.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_menu_book_border.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_placeholder_default.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_upcoming.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/drawable/ic_upcoming_border.xml (100%) rename {core-designsystem => core/designsystem}/src/main/res/values/strings.xml (100%) rename {core-model => core/model}/.gitignore (100%) rename {core-model => core/model}/build.gradle.kts (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Author.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Episode.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableAuthor.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableTopic.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResource.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResourceType.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/SaveableNewsResource.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Topic.kt (100%) rename {core-model => core/model}/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/UserData.kt (100%) rename {core-navigation => core/navigation}/.gitignore (100%) rename {core-navigation => core/navigation}/build.gradle.kts (100%) rename {core-navigation => core/navigation}/src/main/AndroidManifest.xml (100%) rename {core-navigation => core/navigation}/src/main/java/com/google/samples/apps/nowinandroid/core/navigation/NiaNavigationDestination.kt (100%) rename {core-network => core/network}/.gitignore (100%) rename {core-network => core/network}/build.gradle.kts (90%) rename {core-network => core/network}/src/benchmark/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt (100%) rename {core-network => core/network}/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt (100%) rename {core-network => core/network}/src/main/AndroidManifest.xml (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaNetworkDataSource.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeDataSource.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSource.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkAuthor.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkChangeList.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkEpisode.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkNewsResource.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkTopic.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/InstantSerializer.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializer.kt (100%) rename {core-network => core/network}/src/main/java/com/google/samples/apps/nowinandroid/core/network/retrofit/RetrofitNiaNetwork.kt (100%) rename {core-network => core/network}/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt (100%) rename {core-network => core/network}/src/test/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSourceTest.kt (100%) rename {core-network => core/network}/src/test/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializerTest.kt (100%) rename {core-testing => core/testing}/.gitignore (100%) rename {core-testing => core/testing}/build.gradle.kts (89%) rename {core-testing => core/testing}/src/main/AndroidManifest.xml (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/NiaTestRunner.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatcherModule.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatchersModule.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestAuthorsRepository.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestNewsRepository.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestTopicsRepository.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt (100%) rename {core-testing => core/testing}/src/main/java/com/google/samples/apps/nowinandroid/core/testing/util/MainDispatcherRule.kt (100%) rename {core-ui => core/ui}/.gitignore (100%) rename {core-ui => core/ui}/build.gradle.kts (95%) rename {core-ui => core/ui}/src/main/AndroidManifest.xml (100%) rename {core-ui => core/ui}/src/main/java/com/google/samples/apps/nowinandroid/core/ui/JankStatsExtensions.kt (100%) rename {core-ui => core/ui}/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt (100%) rename {core-ui => core/ui}/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt (100%) rename {core-ui => core/ui}/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardList.kt (100%) rename {core-ui => core/ui}/src/main/java/com/google/samples/apps/nowinandroid/core/ui/TimeZoneBroadcastReceiver.kt (100%) rename {core-ui => core/ui}/src/main/res/values/strings.xml (100%) diff --git a/app-nia-catalog/build.gradle.kts b/app-nia-catalog/build.gradle.kts index 26eb06969..88b105542 100644 --- a/app-nia-catalog/build.gradle.kts +++ b/app-nia-catalog/build.gradle.kts @@ -36,8 +36,8 @@ android { } dependencies { - implementation(project(":core-ui")) - implementation(project(":core-designsystem")) + implementation(project(":core:ui")) + implementation(project(":core:designsystem")) implementation(libs.androidx.activity.compose) implementation(libs.accompanist.flowlayout) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0ce7872b3..393353e78 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -99,16 +99,16 @@ dependencies { implementation(project(":feature-bookmarks")) implementation(project(":feature-topic")) - implementation(project(":core-ui")) - implementation(project(":core-designsystem")) - implementation(project(":core-navigation")) + implementation(project(":core:ui")) + implementation(project(":core:designsystem")) + implementation(project(":core:navigation")) implementation(project(":sync")) - androidTestImplementation(project(":core-testing")) - androidTestImplementation(project(":core-datastore-test")) - androidTestImplementation(project(":core-data-test")) - androidTestImplementation(project(":core-network")) + androidTestImplementation(project(":core:testing")) + androidTestImplementation(project(":core:datastore-test")) + androidTestImplementation(project(":core:data-test")) + androidTestImplementation(project(":core:network")) androidTestImplementation(libs.androidx.navigation.testing) debugImplementation(libs.androidx.compose.ui.testManifest) diff --git a/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt b/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt index 3cbb1d23f..934a38af1 100644 --- a/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt +++ b/build-logic/convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt @@ -40,15 +40,15 @@ class AndroidFeatureConventionPlugin : Plugin { val libs = extensions.getByType().named("libs") dependencies { - add("implementation", project(":core-model")) - add("implementation", project(":core-ui")) - add("implementation", project(":core-designsystem")) - add("implementation", project(":core-data")) - add("implementation", project(":core-common")) - add("implementation", project(":core-navigation")) + add("implementation", project(":core:model")) + add("implementation", project(":core:ui")) + add("implementation", project(":core:designsystem")) + add("implementation", project(":core:data")) + add("implementation", project(":core:common")) + add("implementation", project(":core:navigation")) - add("testImplementation", project(":core-testing")) - add("androidTestImplementation", project(":core-testing")) + add("testImplementation", project(":core:testing")) + add("androidTestImplementation", project(":core:testing")) add("implementation", libs.findLibrary("coil.kt").get()) add("implementation", libs.findLibrary("coil.kt.compose").get()) diff --git a/core-common/.gitignore b/core/common/.gitignore similarity index 100% rename from core-common/.gitignore rename to core/common/.gitignore diff --git a/core-common/build.gradle.kts b/core/common/build.gradle.kts similarity index 94% rename from core-common/build.gradle.kts rename to core/common/build.gradle.kts index a04464ef0..0957177c2 100644 --- a/core-common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -25,5 +25,5 @@ dependencies { implementation(libs.hilt.android) kapt(libs.hilt.compiler) - testImplementation(project(":core-testing")) + testImplementation(project(":core:testing")) } \ No newline at end of file diff --git a/core-common/src/main/AndroidManifest.xml b/core/common/src/main/AndroidManifest.xml similarity index 100% rename from core-common/src/main/AndroidManifest.xml rename to core/common/src/main/AndroidManifest.xml diff --git a/core-common/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaDispatchers.kt b/core/common/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaDispatchers.kt similarity index 100% rename from core-common/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaDispatchers.kt rename to core/common/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaDispatchers.kt diff --git a/core-common/src/main/java/com/google/samples/apps/nowinandroid/core/network/di/DispatchersModule.kt b/core/common/src/main/java/com/google/samples/apps/nowinandroid/core/network/di/DispatchersModule.kt similarity index 100% rename from core-common/src/main/java/com/google/samples/apps/nowinandroid/core/network/di/DispatchersModule.kt rename to core/common/src/main/java/com/google/samples/apps/nowinandroid/core/network/di/DispatchersModule.kt diff --git a/core-common/src/main/java/com/google/samples/apps/nowinandroid/core/result/Result.kt b/core/common/src/main/java/com/google/samples/apps/nowinandroid/core/result/Result.kt similarity index 100% rename from core-common/src/main/java/com/google/samples/apps/nowinandroid/core/result/Result.kt rename to core/common/src/main/java/com/google/samples/apps/nowinandroid/core/result/Result.kt diff --git a/core-common/src/main/res/drawable-anydpi-v24/ic_nia_notification.xml b/core/common/src/main/res/drawable-anydpi-v24/ic_nia_notification.xml similarity index 100% rename from core-common/src/main/res/drawable-anydpi-v24/ic_nia_notification.xml rename to core/common/src/main/res/drawable-anydpi-v24/ic_nia_notification.xml diff --git a/core-common/src/main/res/drawable-hdpi/ic_nia_notification.png b/core/common/src/main/res/drawable-hdpi/ic_nia_notification.png similarity index 100% rename from core-common/src/main/res/drawable-hdpi/ic_nia_notification.png rename to core/common/src/main/res/drawable-hdpi/ic_nia_notification.png diff --git a/core-common/src/main/res/drawable-mdpi/ic_nia_notification.png b/core/common/src/main/res/drawable-mdpi/ic_nia_notification.png similarity index 100% rename from core-common/src/main/res/drawable-mdpi/ic_nia_notification.png rename to core/common/src/main/res/drawable-mdpi/ic_nia_notification.png diff --git a/core-common/src/main/res/drawable-xhdpi/ic_nia_notification.png b/core/common/src/main/res/drawable-xhdpi/ic_nia_notification.png similarity index 100% rename from core-common/src/main/res/drawable-xhdpi/ic_nia_notification.png rename to core/common/src/main/res/drawable-xhdpi/ic_nia_notification.png diff --git a/core-common/src/main/res/drawable-xxhdpi/ic_nia_notification.png b/core/common/src/main/res/drawable-xxhdpi/ic_nia_notification.png similarity index 100% rename from core-common/src/main/res/drawable-xxhdpi/ic_nia_notification.png rename to core/common/src/main/res/drawable-xxhdpi/ic_nia_notification.png diff --git a/core-common/src/test/java/com/google/samples/apps/nowinandroid/core/result/ResultKtTest.kt b/core/common/src/test/java/com/google/samples/apps/nowinandroid/core/result/ResultKtTest.kt similarity index 100% rename from core-common/src/test/java/com/google/samples/apps/nowinandroid/core/result/ResultKtTest.kt rename to core/common/src/test/java/com/google/samples/apps/nowinandroid/core/result/ResultKtTest.kt diff --git a/core-data-test/.gitignore b/core/data-test/.gitignore similarity index 100% rename from core-data-test/.gitignore rename to core/data-test/.gitignore diff --git a/core-data-test/build.gradle.kts b/core/data-test/build.gradle.kts similarity index 92% rename from core-data-test/build.gradle.kts rename to core/data-test/build.gradle.kts index df4796506..a55fc05bd 100644 --- a/core-data-test/build.gradle.kts +++ b/core/data-test/build.gradle.kts @@ -21,8 +21,8 @@ plugins { } dependencies { - api(project(":core-data")) - implementation(project(":core-testing")) + api(project(":core:data")) + implementation(project(":core:testing")) implementation(libs.hilt.android) kapt(libs.hilt.compiler) diff --git a/core-data-test/src/main/AndroidManifest.xml b/core/data-test/src/main/AndroidManifest.xml similarity index 100% rename from core-data-test/src/main/AndroidManifest.xml rename to core/data-test/src/main/AndroidManifest.xml diff --git a/core-data-test/src/main/java/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt b/core/data-test/src/main/java/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt similarity index 100% rename from core-data-test/src/main/java/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt rename to core/data-test/src/main/java/com/google/samples/apps/nowinandroid/core/data/test/TestDataModule.kt diff --git a/core-data/.gitignore b/core/data/.gitignore similarity index 100% rename from core-data/.gitignore rename to core/data/.gitignore diff --git a/core-data/build.gradle.kts b/core/data/build.gradle.kts similarity index 76% rename from core-data/build.gradle.kts rename to core/data/build.gradle.kts index 66fa5bcb4..b1fa8ef04 100644 --- a/core-data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -23,14 +23,14 @@ plugins { } dependencies { - implementation(project(":core-common")) - implementation(project(":core-model")) - implementation(project(":core-database")) - implementation(project(":core-datastore")) - implementation(project(":core-network")) + implementation(project(":core:common")) + implementation(project(":core:model")) + implementation(project(":core:database")) + implementation(project(":core:datastore")) + implementation(project(":core:network")) - testImplementation(project(":core-testing")) - testImplementation(project(":core-datastore-test")) + testImplementation(project(":core:testing")) + testImplementation(project(":core:datastore-test")) implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.coroutines.android) diff --git a/core-data/src/main/AndroidManifest.xml b/core/data/src/main/AndroidManifest.xml similarity index 100% rename from core-data/src/main/AndroidManifest.xml rename to core/data/src/main/AndroidManifest.xml diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/SyncUtilities.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/SyncUtilities.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/SyncUtilities.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/SyncUtilities.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/di/DataModule.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Author.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Author.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Author.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Author.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Episode.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Episode.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Episode.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Episode.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/NewsResource.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/NewsResource.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/NewsResource.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/NewsResource.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Topic.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Topic.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Topic.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/model/Topic.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/AuthorsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/AuthorsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/AuthorsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/AuthorsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/NewsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/NewsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/NewsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/NewsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/TopicsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/TopicsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/TopicsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/TopicsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/UserDataRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeAuthorsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeAuthorsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeAuthorsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeAuthorsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeNewsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeNewsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeNewsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeNewsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeTopicsRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeTopicsRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeTopicsRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeTopicsRepository.kt diff --git a/core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt b/core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt similarity index 100% rename from core-data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt rename to core/data/src/main/java/com/google/samples/apps/nowinandroid/core/data/repository/fake/FakeUserDataRepository.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/model/NetworkEntityKtTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/model/NetworkEntityKtTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/model/NetworkEntityKtTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/model/NetworkEntityKtTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/FakeNewsRepositoryTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/FakeNewsRepositoryTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/FakeNewsRepositoryTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/FakeNewsRepositoryTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepositoryTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepositoryTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepositoryTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstAuthorsRepositoryTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepositoryTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepositoryTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepositoryTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstNewsRepositoryTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepositoryTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepositoryTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepositoryTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstTopicsRepositoryTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/OfflineFirstUserDataRepositoryTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/TestSynchronizer.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/TestSynchronizer.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/TestSynchronizer.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/repository/TestSynchronizer.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestAuthorDao.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestAuthorDao.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestAuthorDao.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestAuthorDao.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestEpisodeDao.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestEpisodeDao.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestEpisodeDao.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestEpisodeDao.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNewsResourceDao.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNewsResourceDao.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNewsResourceDao.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNewsResourceDao.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNiaNetworkDataSource.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNiaNetworkDataSource.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNiaNetworkDataSource.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestNiaNetworkDataSource.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestTopicDao.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestTopicDao.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestTopicDao.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/data/testdoubles/TestTopicDao.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisodeKtTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisodeKtTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisodeKtTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisodeKtTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResourceKtTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResourceKtTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResourceKtTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResourceKtTest.kt diff --git a/core-data/src/test/java/com/google/samples/apps/nowinandroid/core/database/util/NewsResourceTypeConverterTest.kt b/core/data/src/test/java/com/google/samples/apps/nowinandroid/core/database/util/NewsResourceTypeConverterTest.kt similarity index 100% rename from core-data/src/test/java/com/google/samples/apps/nowinandroid/core/database/util/NewsResourceTypeConverterTest.kt rename to core/data/src/test/java/com/google/samples/apps/nowinandroid/core/database/util/NewsResourceTypeConverterTest.kt diff --git a/core-database/.gitignore b/core/database/.gitignore similarity index 100% rename from core-database/.gitignore rename to core/database/.gitignore diff --git a/core-database/build.gradle.kts b/core/database/build.gradle.kts similarity index 94% rename from core-database/build.gradle.kts rename to core/database/build.gradle.kts index a890f4395..0554bee55 100644 --- a/core-database/build.gradle.kts +++ b/core/database/build.gradle.kts @@ -38,7 +38,7 @@ android { } dependencies { - implementation(project(":core-model")) + implementation(project(":core:model")) implementation(libs.room.runtime) implementation(libs.room.ktx) @@ -50,5 +50,5 @@ dependencies { implementation(libs.hilt.android) kapt(libs.hilt.compiler) - androidTestImplementation(project(":core-testing")) + androidTestImplementation(project(":core:testing")) } \ No newline at end of file diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/1.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/1.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/1.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/1.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/10.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/10.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/10.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/10.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/2.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/2.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/2.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/2.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/3.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/3.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/3.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/3.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/4.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/4.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/4.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/4.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/5.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/5.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/5.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/5.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/6.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/6.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/6.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/6.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/7.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/7.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/7.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/7.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/8.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/8.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/8.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/8.json diff --git a/core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/9.json b/core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/9.json similarity index 100% rename from core-database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/9.json rename to core/database/schemas/com.google.samples.apps.nowinandroid.core.database.NiaDatabase/9.json diff --git a/core-database/src/androidTest/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDaoTest.kt b/core/database/src/androidTest/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDaoTest.kt similarity index 100% rename from core-database/src/androidTest/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDaoTest.kt rename to core/database/src/androidTest/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDaoTest.kt diff --git a/core-database/src/main/AndroidManifest.xml b/core/database/src/main/AndroidManifest.xml similarity index 100% rename from core-database/src/main/AndroidManifest.xml rename to core/database/src/main/AndroidManifest.xml diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DaosModule.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DaosModule.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DaosModule.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DaosModule.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseMigrations.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseMigrations.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseMigrations.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseMigrations.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/DatabaseModule.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/NiaDatabase.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/NiaDatabase.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/NiaDatabase.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/NiaDatabase.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/AuthorDao.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/AuthorDao.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/AuthorDao.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/AuthorDao.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/EpisodeDao.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/EpisodeDao.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/EpisodeDao.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/EpisodeDao.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDao.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDao.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDao.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/NewsResourceDao.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/TopicDao.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/TopicDao.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/TopicDao.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/TopicDao.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/AuthorEntity.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/AuthorEntity.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/AuthorEntity.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/AuthorEntity.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeAuthorCrossRef.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeAuthorCrossRef.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeAuthorCrossRef.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeAuthorCrossRef.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeEntity.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeEntity.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeEntity.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/EpisodeEntity.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceAuthorCrossRef.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceAuthorCrossRef.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceAuthorCrossRef.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceAuthorCrossRef.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceEntity.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceEntity.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceEntity.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceEntity.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceTopicCrossRef.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceTopicCrossRef.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceTopicCrossRef.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/NewsResourceTopicCrossRef.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisode.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisode.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisode.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedEpisode.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResource.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResource.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResource.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/PopulatedNewsResource.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/TopicEntity.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/TopicEntity.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/TopicEntity.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/model/TopicEntity.kt diff --git a/core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/util/Converters.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/util/Converters.kt similarity index 100% rename from core-database/src/main/java/com/google/samples/apps/nowinandroid/core/database/util/Converters.kt rename to core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/util/Converters.kt diff --git a/core-datastore-test/.gitignore b/core/datastore-test/.gitignore similarity index 100% rename from core-datastore-test/.gitignore rename to core/datastore-test/.gitignore diff --git a/core-datastore-test/build.gradle.kts b/core/datastore-test/build.gradle.kts similarity index 91% rename from core-datastore-test/build.gradle.kts rename to core/datastore-test/build.gradle.kts index 068586022..f16d5c617 100644 --- a/core-datastore-test/build.gradle.kts +++ b/core/datastore-test/build.gradle.kts @@ -21,8 +21,8 @@ plugins { } dependencies { - api(project(":core-datastore")) - implementation(project(":core-testing")) + api(project(":core:datastore")) + implementation(project(":core:testing")) api(libs.androidx.dataStore.core) diff --git a/core-datastore-test/src/main/AndroidManifest.xml b/core/datastore-test/src/main/AndroidManifest.xml similarity index 100% rename from core-datastore-test/src/main/AndroidManifest.xml rename to core/datastore-test/src/main/AndroidManifest.xml diff --git a/core-datastore-test/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/test/TestDataStoreModule.kt b/core/datastore-test/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/test/TestDataStoreModule.kt similarity index 100% rename from core-datastore-test/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/test/TestDataStoreModule.kt rename to core/datastore-test/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/test/TestDataStoreModule.kt diff --git a/core-datastore/.gitignore b/core/datastore/.gitignore similarity index 100% rename from core-datastore/.gitignore rename to core/datastore/.gitignore diff --git a/core-datastore/build.gradle.kts b/core/datastore/build.gradle.kts similarity index 93% rename from core-datastore/build.gradle.kts rename to core/datastore/build.gradle.kts index a554a6de2..623f52549 100644 --- a/core-datastore/build.gradle.kts +++ b/core/datastore/build.gradle.kts @@ -56,10 +56,10 @@ protobuf { } dependencies { - implementation(project(":core-common")) - implementation(project(":core-model")) + implementation(project(":core:common")) + implementation(project(":core:model")) - testImplementation(project(":core-testing")) + testImplementation(project(":core:testing")) implementation(libs.kotlinx.coroutines.android) diff --git a/core-datastore/consumer-proguard-rules.pro b/core/datastore/consumer-proguard-rules.pro similarity index 100% rename from core-datastore/consumer-proguard-rules.pro rename to core/datastore/consumer-proguard-rules.pro diff --git a/core-datastore/src/main/AndroidManifest.xml b/core/datastore/src/main/AndroidManifest.xml similarity index 100% rename from core-datastore/src/main/AndroidManifest.xml rename to core/datastore/src/main/AndroidManifest.xml diff --git a/core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/ChangeListVersions.kt b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/ChangeListVersions.kt similarity index 100% rename from core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/ChangeListVersions.kt rename to core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/ChangeListVersions.kt diff --git a/core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigration.kt b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigration.kt similarity index 100% rename from core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigration.kt rename to core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigration.kt diff --git a/core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt similarity index 100% rename from core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt rename to core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/NiaPreferencesDataSource.kt diff --git a/core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializer.kt b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializer.kt similarity index 100% rename from core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializer.kt rename to core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializer.kt diff --git a/core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/di/DataStoreModule.kt b/core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/di/DataStoreModule.kt similarity index 100% rename from core-datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/di/DataStoreModule.kt rename to core/datastore/src/main/java/com/google/samples/apps/nowinandroid/core/datastore/di/DataStoreModule.kt diff --git a/core-datastore/src/main/proto/com/google/samples/apps/nowinandroid/data/user_preferences.proto b/core/datastore/src/main/proto/com/google/samples/apps/nowinandroid/data/user_preferences.proto similarity index 100% rename from core-datastore/src/main/proto/com/google/samples/apps/nowinandroid/data/user_preferences.proto rename to core/datastore/src/main/proto/com/google/samples/apps/nowinandroid/data/user_preferences.proto diff --git a/core-datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigrationTest.kt b/core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigrationTest.kt similarity index 100% rename from core-datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigrationTest.kt rename to core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/IntToStringIdsMigrationTest.kt diff --git a/core-datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializerTest.kt b/core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializerTest.kt similarity index 100% rename from core-datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializerTest.kt rename to core/datastore/src/test/java/com/google/samples/apps/nowinandroid/core/datastore/UserPreferencesSerializerTest.kt diff --git a/core-designsystem/.gitignore b/core/designsystem/.gitignore similarity index 100% rename from core-designsystem/.gitignore rename to core/designsystem/.gitignore diff --git a/core-designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts similarity index 96% rename from core-designsystem/build.gradle.kts rename to core/designsystem/build.gradle.kts index 053081bbf..23a1914c8 100644 --- a/core-designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -40,7 +40,7 @@ dependencies { api(libs.androidx.compose.ui.util) api(libs.androidx.compose.runtime) lintPublish(project(":lint")) - androidTestImplementation(project(":core-testing")) + androidTestImplementation(project(":core:testing")) // TODO : Remove these dependency once we upgrade to Android Studio Dolphin b/228889042 // These dependencies are currently necessary to render Compose previews diff --git a/core-designsystem/src/androidTest/java/com/google/samples/apps/nowinandroid/core/designsystem/ThemeTest.kt b/core/designsystem/src/androidTest/java/com/google/samples/apps/nowinandroid/core/designsystem/ThemeTest.kt similarity index 100% rename from core-designsystem/src/androidTest/java/com/google/samples/apps/nowinandroid/core/designsystem/ThemeTest.kt rename to core/designsystem/src/androidTest/java/com/google/samples/apps/nowinandroid/core/designsystem/ThemeTest.kt diff --git a/core-designsystem/src/main/AndroidManifest.xml b/core/designsystem/src/main/AndroidManifest.xml similarity index 100% rename from core-designsystem/src/main/AndroidManifest.xml rename to core/designsystem/src/main/AndroidManifest.xml diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Background.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Button.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Chip.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Chip.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Chip.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Chip.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/DropdownMenu.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/DropdownMenu.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/DropdownMenu.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/DropdownMenu.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/LoadingWheel.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Navigation.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Navigation.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Navigation.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Navigation.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tabs.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tabs.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tabs.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tabs.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tag.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tag.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tag.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/Tag.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ToggleButton.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ToggleButton.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ToggleButton.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ToggleButton.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/TopAppBar.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/component/ViewToggle.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/icon/NiaIcons.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Background.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Color.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Color.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Color.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Color.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Gradient.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Theme.kt diff --git a/core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Type.kt b/core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Type.kt similarity index 100% rename from core-designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Type.kt rename to core/designsystem/src/main/java/com/google/samples/apps/nowinandroid/core/designsystem/theme/Type.kt diff --git a/core-designsystem/src/main/res/drawable/ic_bookmark.xml b/core/designsystem/src/main/res/drawable/ic_bookmark.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_bookmark.xml rename to core/designsystem/src/main/res/drawable/ic_bookmark.xml diff --git a/core-designsystem/src/main/res/drawable/ic_bookmark_border.xml b/core/designsystem/src/main/res/drawable/ic_bookmark_border.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_bookmark_border.xml rename to core/designsystem/src/main/res/drawable/ic_bookmark_border.xml diff --git a/core-designsystem/src/main/res/drawable/ic_bookmarks.xml b/core/designsystem/src/main/res/drawable/ic_bookmarks.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_bookmarks.xml rename to core/designsystem/src/main/res/drawable/ic_bookmarks.xml diff --git a/core-designsystem/src/main/res/drawable/ic_bookmarks_border.xml b/core/designsystem/src/main/res/drawable/ic_bookmarks_border.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_bookmarks_border.xml rename to core/designsystem/src/main/res/drawable/ic_bookmarks_border.xml diff --git a/core-designsystem/src/main/res/drawable/ic_menu_book.xml b/core/designsystem/src/main/res/drawable/ic_menu_book.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_menu_book.xml rename to core/designsystem/src/main/res/drawable/ic_menu_book.xml diff --git a/core-designsystem/src/main/res/drawable/ic_menu_book_border.xml b/core/designsystem/src/main/res/drawable/ic_menu_book_border.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_menu_book_border.xml rename to core/designsystem/src/main/res/drawable/ic_menu_book_border.xml diff --git a/core-designsystem/src/main/res/drawable/ic_placeholder_default.xml b/core/designsystem/src/main/res/drawable/ic_placeholder_default.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_placeholder_default.xml rename to core/designsystem/src/main/res/drawable/ic_placeholder_default.xml diff --git a/core-designsystem/src/main/res/drawable/ic_upcoming.xml b/core/designsystem/src/main/res/drawable/ic_upcoming.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_upcoming.xml rename to core/designsystem/src/main/res/drawable/ic_upcoming.xml diff --git a/core-designsystem/src/main/res/drawable/ic_upcoming_border.xml b/core/designsystem/src/main/res/drawable/ic_upcoming_border.xml similarity index 100% rename from core-designsystem/src/main/res/drawable/ic_upcoming_border.xml rename to core/designsystem/src/main/res/drawable/ic_upcoming_border.xml diff --git a/core-designsystem/src/main/res/values/strings.xml b/core/designsystem/src/main/res/values/strings.xml similarity index 100% rename from core-designsystem/src/main/res/values/strings.xml rename to core/designsystem/src/main/res/values/strings.xml diff --git a/core-model/.gitignore b/core/model/.gitignore similarity index 100% rename from core-model/.gitignore rename to core/model/.gitignore diff --git a/core-model/build.gradle.kts b/core/model/build.gradle.kts similarity index 100% rename from core-model/build.gradle.kts rename to core/model/build.gradle.kts diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Author.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Author.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Author.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Author.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Episode.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Episode.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Episode.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Episode.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableAuthor.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableAuthor.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableAuthor.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableAuthor.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableTopic.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableTopic.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableTopic.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/FollowableTopic.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResource.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResource.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResource.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResource.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResourceType.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResourceType.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResourceType.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/NewsResourceType.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/SaveableNewsResource.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/SaveableNewsResource.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/SaveableNewsResource.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/SaveableNewsResource.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Topic.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Topic.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Topic.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/Topic.kt diff --git a/core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/UserData.kt b/core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/UserData.kt similarity index 100% rename from core-model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/UserData.kt rename to core/model/src/main/java/com/google/samples/apps/nowinandroid/core/model/data/UserData.kt diff --git a/core-navigation/.gitignore b/core/navigation/.gitignore similarity index 100% rename from core-navigation/.gitignore rename to core/navigation/.gitignore diff --git a/core-navigation/build.gradle.kts b/core/navigation/build.gradle.kts similarity index 100% rename from core-navigation/build.gradle.kts rename to core/navigation/build.gradle.kts diff --git a/core-navigation/src/main/AndroidManifest.xml b/core/navigation/src/main/AndroidManifest.xml similarity index 100% rename from core-navigation/src/main/AndroidManifest.xml rename to core/navigation/src/main/AndroidManifest.xml diff --git a/core-navigation/src/main/java/com/google/samples/apps/nowinandroid/core/navigation/NiaNavigationDestination.kt b/core/navigation/src/main/java/com/google/samples/apps/nowinandroid/core/navigation/NiaNavigationDestination.kt similarity index 100% rename from core-navigation/src/main/java/com/google/samples/apps/nowinandroid/core/navigation/NiaNavigationDestination.kt rename to core/navigation/src/main/java/com/google/samples/apps/nowinandroid/core/navigation/NiaNavigationDestination.kt diff --git a/core-network/.gitignore b/core/network/.gitignore similarity index 100% rename from core-network/.gitignore rename to core/network/.gitignore diff --git a/core-network/build.gradle.kts b/core/network/build.gradle.kts similarity index 90% rename from core-network/build.gradle.kts rename to core/network/build.gradle.kts index b629a16e0..3c2303185 100644 --- a/core-network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -28,10 +28,10 @@ secrets { } dependencies { - implementation(project(":core-common")) - implementation(project(":core-model")) + implementation(project(":core:common")) + implementation(project(":core:model")) - testImplementation(project(":core-testing")) + testImplementation(project(":core:testing")) implementation(libs.kotlinx.coroutines.android) implementation(libs.kotlinx.serialization.json) diff --git a/core-network/src/benchmark/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt b/core/network/src/benchmark/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt similarity index 100% rename from core-network/src/benchmark/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt rename to core/network/src/benchmark/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt diff --git a/core-network/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt b/core/network/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt similarity index 100% rename from core-network/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt rename to core/network/src/demo/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt diff --git a/core-network/src/main/AndroidManifest.xml b/core/network/src/main/AndroidManifest.xml similarity index 100% rename from core-network/src/main/AndroidManifest.xml rename to core/network/src/main/AndroidManifest.xml diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaNetworkDataSource.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaNetworkDataSource.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaNetworkDataSource.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/NiaNetworkDataSource.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeDataSource.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeDataSource.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeDataSource.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeDataSource.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSource.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSource.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSource.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSource.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkAuthor.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkAuthor.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkAuthor.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkAuthor.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkChangeList.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkChangeList.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkChangeList.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkChangeList.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkEpisode.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkEpisode.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkEpisode.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkEpisode.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkNewsResource.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkNewsResource.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkNewsResource.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkNewsResource.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkTopic.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkTopic.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkTopic.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/NetworkTopic.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/InstantSerializer.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/InstantSerializer.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/InstantSerializer.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/InstantSerializer.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializer.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializer.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializer.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializer.kt diff --git a/core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/retrofit/RetrofitNiaNetwork.kt b/core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/retrofit/RetrofitNiaNetwork.kt similarity index 100% rename from core-network/src/main/java/com/google/samples/apps/nowinandroid/core/network/retrofit/RetrofitNiaNetwork.kt rename to core/network/src/main/java/com/google/samples/apps/nowinandroid/core/network/retrofit/RetrofitNiaNetwork.kt diff --git a/core-network/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt b/core/network/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt similarity index 100% rename from core-network/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt rename to core/network/src/prod/java/com/google/samples/apps/nowinandroid/core/network/di/NetworkModule.kt diff --git a/core-network/src/test/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSourceTest.kt b/core/network/src/test/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSourceTest.kt similarity index 100% rename from core-network/src/test/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSourceTest.kt rename to core/network/src/test/java/com/google/samples/apps/nowinandroid/core/network/fake/FakeNiaNetworkDataSourceTest.kt diff --git a/core-network/src/test/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializerTest.kt b/core/network/src/test/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializerTest.kt similarity index 100% rename from core-network/src/test/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializerTest.kt rename to core/network/src/test/java/com/google/samples/apps/nowinandroid/core/network/model/util/NewsResourceTypeSerializerTest.kt diff --git a/core-testing/.gitignore b/core/testing/.gitignore similarity index 100% rename from core-testing/.gitignore rename to core/testing/.gitignore diff --git a/core-testing/build.gradle.kts b/core/testing/build.gradle.kts similarity index 89% rename from core-testing/build.gradle.kts rename to core/testing/build.gradle.kts index 471700ccc..e71d82ef8 100644 --- a/core-testing/build.gradle.kts +++ b/core/testing/build.gradle.kts @@ -20,9 +20,9 @@ plugins { } dependencies { - implementation(project(":core-common")) - implementation(project(":core-data")) - implementation(project(":core-model")) + implementation(project(":core:common")) + implementation(project(":core:data")) + implementation(project(":core:model")) implementation(libs.hilt.android) kapt(libs.hilt.compiler) diff --git a/core-testing/src/main/AndroidManifest.xml b/core/testing/src/main/AndroidManifest.xml similarity index 100% rename from core-testing/src/main/AndroidManifest.xml rename to core/testing/src/main/AndroidManifest.xml diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/NiaTestRunner.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/NiaTestRunner.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/NiaTestRunner.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/NiaTestRunner.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatcherModule.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatcherModule.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatcherModule.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatcherModule.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatchersModule.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatchersModule.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatchersModule.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/di/TestDispatchersModule.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestAuthorsRepository.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestAuthorsRepository.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestAuthorsRepository.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestAuthorsRepository.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestNewsRepository.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestNewsRepository.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestNewsRepository.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestNewsRepository.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestTopicsRepository.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestTopicsRepository.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestTopicsRepository.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestTopicsRepository.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/repository/TestUserDataRepository.kt diff --git a/core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/util/MainDispatcherRule.kt b/core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/util/MainDispatcherRule.kt similarity index 100% rename from core-testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/util/MainDispatcherRule.kt rename to core/testing/src/main/java/com/google/samples/apps/nowinandroid/core/testing/util/MainDispatcherRule.kt diff --git a/core-ui/.gitignore b/core/ui/.gitignore similarity index 100% rename from core-ui/.gitignore rename to core/ui/.gitignore diff --git a/core-ui/build.gradle.kts b/core/ui/build.gradle.kts similarity index 95% rename from core-ui/build.gradle.kts rename to core/ui/build.gradle.kts index 597440d85..47dd778ca 100644 --- a/core-ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -21,8 +21,8 @@ plugins { } dependencies { - implementation(project(":core-designsystem")) - implementation(project(":core-model")) + implementation(project(":core:designsystem")) + implementation(project(":core:model")) implementation(libs.androidx.core.ktx) implementation(libs.coil.kt) diff --git a/core-ui/src/main/AndroidManifest.xml b/core/ui/src/main/AndroidManifest.xml similarity index 100% rename from core-ui/src/main/AndroidManifest.xml rename to core/ui/src/main/AndroidManifest.xml diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/JankStatsExtensions.kt b/core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/JankStatsExtensions.kt similarity index 100% rename from core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/JankStatsExtensions.kt rename to core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/JankStatsExtensions.kt diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt b/core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt similarity index 100% rename from core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt rename to core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsFeed.kt diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt similarity index 100% rename from core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt rename to core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardList.kt b/core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardList.kt similarity index 100% rename from core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardList.kt rename to core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCardList.kt diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/TimeZoneBroadcastReceiver.kt b/core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/TimeZoneBroadcastReceiver.kt similarity index 100% rename from core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/TimeZoneBroadcastReceiver.kt rename to core/ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/TimeZoneBroadcastReceiver.kt diff --git a/core-ui/src/main/res/values/strings.xml b/core/ui/src/main/res/values/strings.xml similarity index 100% rename from core-ui/src/main/res/values/strings.xml rename to core/ui/src/main/res/values/strings.xml diff --git a/settings.gradle.kts b/settings.gradle.kts index 3393b4879..30eccde47 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -43,18 +43,18 @@ rootProject.name = "nowinandroid" include(":app") include(":app-nia-catalog") include(":benchmark") -include(":core-common") -include(":core-data") -include(":core-data-test") -include(":core-database") -include(":core-datastore") -include(":core-datastore-test") -include(":core-designsystem") -include(":core-model") -include(":core-navigation") -include(":core-network") -include(":core-ui") -include(":core-testing") +include(":core:common") +include(":core:data") +include(":core:data-test") +include(":core:database") +include(":core:datastore") +include(":core:datastore-test") +include(":core:designsystem") +include(":core:model") +include(":core:navigation") +include(":core:network") +include(":core:ui") +include(":core:testing") include(":feature-author") include(":feature-foryou") include(":feature-interests") diff --git a/sync/build.gradle.kts b/sync/build.gradle.kts index 02cae2c55..8e24d955e 100644 --- a/sync/build.gradle.kts +++ b/sync/build.gradle.kts @@ -28,10 +28,10 @@ android { } dependencies { - implementation(project(":core-common")) - implementation(project(":core-model")) - implementation(project(":core-data")) - implementation(project(":core-datastore")) + implementation(project(":core:common")) + implementation(project(":core:model")) + implementation(project(":core:data")) + implementation(project(":core:datastore")) implementation(libs.kotlinx.coroutines.android) @@ -40,8 +40,8 @@ dependencies { implementation(libs.androidx.work.ktx) implementation(libs.hilt.ext.work) - testImplementation(project(":core-testing")) - androidTestImplementation(project(":core-testing")) + testImplementation(project(":core:testing")) + androidTestImplementation(project(":core:testing")) implementation(libs.hilt.android) kapt(libs.hilt.compiler) From c35699280ef8d7c8d96f3a37feaf6066a1ab9416 Mon Sep 17 00:00:00 2001 From: madroid Date: Wed, 24 Aug 2022 23:29:56 +0800 Subject: [PATCH 2/4] Move 'feature-' module to feature subfolder --- app/build.gradle.kts | 10 +++++----- {feature-author => feature/author}/.gitignore | 0 {feature-author => feature/author}/build.gradle.kts | 0 .../nowinandroid/feature/author/AuthorScreenTest.kt | 0 .../author}/src/main/AndroidManifest.xml | 0 .../apps/nowinandroid/feature/author/AuthorScreen.kt | 0 .../nowinandroid/feature/author/AuthorViewModel.kt | 0 .../feature/author/navigation/AuthorNavigation.kt | 0 .../author}/src/main/res/values/strings.xml | 0 .../nowinandroid/feature/author/AuthorViewModelTest.kt | 0 {feature-bookmarks => feature/bookmarks}/.gitignore | 0 .../bookmarks}/build.gradle.kts | 0 .../feature/bookmarks/BookmarksScreenTest.kt | 0 .../bookmarks}/src/main/AndroidManifest.xml | 0 .../nowinandroid/feature/bookmarks/BookmarksScreen.kt | 0 .../feature/bookmarks/BookmarksViewModel.kt | 0 .../bookmarks/navigation/BookmarksNavigation.kt | 0 .../bookmarks}/src/main/res/values/strings.xml | 0 .../feature/bookmarks/BookmarksViewModelTest.kt | 0 {feature-foryou => feature/foryou}/.gitignore | 0 {feature-foryou => feature/foryou}/build.gradle.kts | 0 .../nowinandroid/feature/foryou/ForYouScreenTest.kt | 0 .../foryou}/src/main/AndroidManifest.xml | 0 .../nowinandroid/feature/foryou/AuthorsCarousel.kt | 0 .../feature/foryou/FollowedInterestsUiState.kt | 0 .../feature/foryou/ForYouInterestsSelectionUiState.kt | 0 .../apps/nowinandroid/feature/foryou/ForYouScreen.kt | 0 .../nowinandroid/feature/foryou/ForYouViewModel.kt | 0 .../feature/foryou/navigation/ForYouNavigation.kt | 0 .../src/main/res/drawable/ic_icon_placeholder.xml | 0 .../foryou}/src/main/res/values/strings.xml | 0 .../nowinandroid/feature/foryou/ForYouViewModelTest.kt | 0 {feature-interests => feature/interests}/.gitignore | 0 .../interests}/build.gradle.kts | 0 .../apps/nowinandroid/interests/InterestsScreenTest.kt | 0 .../interests}/src/main/AndroidManifest.xml | 0 .../nowinandroid/feature/interests/InterestsItem.kt | 0 .../nowinandroid/feature/interests/InterestsScreen.kt | 0 .../feature/interests/InterestsViewModel.kt | 0 .../apps/nowinandroid/feature/interests/TabContent.kt | 0 .../interests/navigation/InterestsNavigation.kt | 0 .../interests}/src/main/res/values/strings.xml | 0 .../nowinandroid/interests/InterestsViewModelTest.kt | 0 {feature-topic => feature/topic}/.gitignore | 0 {feature-topic => feature/topic}/build.gradle.kts | 0 .../apps/nowinandroid/feature/topic/TopicScreenTest.kt | 0 .../topic}/src/main/AndroidManifest.xml | 0 .../apps/nowinandroid/feature/topic/TopicScreen.kt | 0 .../apps/nowinandroid/feature/topic/TopicViewModel.kt | 0 .../feature/topic/navigation/TopicNavigation.kt | 0 .../topic}/src/main/res/values/strings.xml | 0 .../nowinandroid/feature/topic/TopicViewModelTest.kt | 0 settings.gradle.kts | 10 +++++----- 53 files changed, 10 insertions(+), 10 deletions(-) rename {feature-author => feature/author}/.gitignore (100%) rename {feature-author => feature/author}/build.gradle.kts (100%) rename {feature-author => feature/author}/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreenTest.kt (100%) rename {feature-author => feature/author}/src/main/AndroidManifest.xml (100%) rename {feature-author => feature/author}/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt (100%) rename {feature-author => feature/author}/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModel.kt (100%) rename {feature-author => feature/author}/src/main/java/com/google/samples/apps/nowinandroid/feature/author/navigation/AuthorNavigation.kt (100%) rename {feature-author => feature/author}/src/main/res/values/strings.xml (100%) rename {feature-author => feature/author}/src/test/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModelTest.kt (100%) rename {feature-bookmarks => feature/bookmarks}/.gitignore (100%) rename {feature-bookmarks => feature/bookmarks}/build.gradle.kts (100%) rename {feature-bookmarks => feature/bookmarks}/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt (100%) rename {feature-bookmarks => feature/bookmarks}/src/main/AndroidManifest.xml (100%) rename {feature-bookmarks => feature/bookmarks}/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt (100%) rename {feature-bookmarks => feature/bookmarks}/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt (100%) rename {feature-bookmarks => feature/bookmarks}/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt (100%) rename {feature-bookmarks => feature/bookmarks}/src/main/res/values/strings.xml (100%) rename {feature-bookmarks => feature/bookmarks}/src/test/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt (100%) rename {feature-foryou => feature/foryou}/.gitignore (100%) rename {feature-foryou => feature/foryou}/build.gradle.kts (100%) rename {feature-foryou => feature/foryou}/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt (100%) rename {feature-foryou => feature/foryou}/src/main/AndroidManifest.xml (100%) rename {feature-foryou => feature/foryou}/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt (100%) rename {feature-foryou => feature/foryou}/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/FollowedInterestsUiState.kt (100%) rename {feature-foryou => feature/foryou}/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt (100%) rename {feature-foryou => feature/foryou}/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt (100%) rename {feature-foryou => feature/foryou}/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt (100%) rename {feature-foryou => feature/foryou}/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt (100%) rename {feature-foryou => feature/foryou}/src/main/res/drawable/ic_icon_placeholder.xml (100%) rename {feature-foryou => feature/foryou}/src/main/res/values/strings.xml (100%) rename {feature-foryou => feature/foryou}/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt (100%) rename {feature-interests => feature/interests}/.gitignore (100%) rename {feature-interests => feature/interests}/build.gradle.kts (100%) rename {feature-interests => feature/interests}/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt (100%) rename {feature-interests => feature/interests}/src/main/AndroidManifest.xml (100%) rename {feature-interests => feature/interests}/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt (100%) rename {feature-interests => feature/interests}/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt (100%) rename {feature-interests => feature/interests}/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt (100%) rename {feature-interests => feature/interests}/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt (100%) rename {feature-interests => feature/interests}/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt (100%) rename {feature-interests => feature/interests}/src/main/res/values/strings.xml (100%) rename {feature-interests => feature/interests}/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt (100%) rename {feature-topic => feature/topic}/.gitignore (100%) rename {feature-topic => feature/topic}/build.gradle.kts (100%) rename {feature-topic => feature/topic}/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt (100%) rename {feature-topic => feature/topic}/src/main/AndroidManifest.xml (100%) rename {feature-topic => feature/topic}/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt (100%) rename {feature-topic => feature/topic}/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt (100%) rename {feature-topic => feature/topic}/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt (100%) rename {feature-topic => feature/topic}/src/main/res/values/strings.xml (100%) rename {feature-topic => feature/topic}/src/test/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 393353e78..3a3afce25 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -93,11 +93,11 @@ android { } dependencies { - implementation(project(":feature-author")) - implementation(project(":feature-interests")) - implementation(project(":feature-foryou")) - implementation(project(":feature-bookmarks")) - implementation(project(":feature-topic")) + implementation(project(":feature:author")) + implementation(project(":feature:interests")) + implementation(project(":feature:foryou")) + implementation(project(":feature:bookmarks")) + implementation(project(":feature:topic")) implementation(project(":core:ui")) implementation(project(":core:designsystem")) diff --git a/feature-author/.gitignore b/feature/author/.gitignore similarity index 100% rename from feature-author/.gitignore rename to feature/author/.gitignore diff --git a/feature-author/build.gradle.kts b/feature/author/build.gradle.kts similarity index 100% rename from feature-author/build.gradle.kts rename to feature/author/build.gradle.kts diff --git a/feature-author/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreenTest.kt b/feature/author/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreenTest.kt similarity index 100% rename from feature-author/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreenTest.kt rename to feature/author/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreenTest.kt diff --git a/feature-author/src/main/AndroidManifest.xml b/feature/author/src/main/AndroidManifest.xml similarity index 100% rename from feature-author/src/main/AndroidManifest.xml rename to feature/author/src/main/AndroidManifest.xml diff --git a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt b/feature/author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt similarity index 100% rename from feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt rename to feature/author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorScreen.kt diff --git a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModel.kt b/feature/author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModel.kt similarity index 100% rename from feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModel.kt rename to feature/author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModel.kt diff --git a/feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/navigation/AuthorNavigation.kt b/feature/author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/navigation/AuthorNavigation.kt similarity index 100% rename from feature-author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/navigation/AuthorNavigation.kt rename to feature/author/src/main/java/com/google/samples/apps/nowinandroid/feature/author/navigation/AuthorNavigation.kt diff --git a/feature-author/src/main/res/values/strings.xml b/feature/author/src/main/res/values/strings.xml similarity index 100% rename from feature-author/src/main/res/values/strings.xml rename to feature/author/src/main/res/values/strings.xml diff --git a/feature-author/src/test/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModelTest.kt b/feature/author/src/test/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModelTest.kt similarity index 100% rename from feature-author/src/test/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModelTest.kt rename to feature/author/src/test/java/com/google/samples/apps/nowinandroid/feature/author/AuthorViewModelTest.kt diff --git a/feature-bookmarks/.gitignore b/feature/bookmarks/.gitignore similarity index 100% rename from feature-bookmarks/.gitignore rename to feature/bookmarks/.gitignore diff --git a/feature-bookmarks/build.gradle.kts b/feature/bookmarks/build.gradle.kts similarity index 100% rename from feature-bookmarks/build.gradle.kts rename to feature/bookmarks/build.gradle.kts diff --git a/feature-bookmarks/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt b/feature/bookmarks/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt similarity index 100% rename from feature-bookmarks/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt rename to feature/bookmarks/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreenTest.kt diff --git a/feature-bookmarks/src/main/AndroidManifest.xml b/feature/bookmarks/src/main/AndroidManifest.xml similarity index 100% rename from feature-bookmarks/src/main/AndroidManifest.xml rename to feature/bookmarks/src/main/AndroidManifest.xml diff --git a/feature-bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt b/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt similarity index 100% rename from feature-bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt rename to feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksScreen.kt diff --git a/feature-bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt b/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt similarity index 100% rename from feature-bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt rename to feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModel.kt diff --git a/feature-bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt b/feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt similarity index 100% rename from feature-bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt rename to feature/bookmarks/src/main/java/com/google/samples/apps/nowinandroid/feature/bookmarks/navigation/BookmarksNavigation.kt diff --git a/feature-bookmarks/src/main/res/values/strings.xml b/feature/bookmarks/src/main/res/values/strings.xml similarity index 100% rename from feature-bookmarks/src/main/res/values/strings.xml rename to feature/bookmarks/src/main/res/values/strings.xml diff --git a/feature-bookmarks/src/test/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt b/feature/bookmarks/src/test/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt similarity index 100% rename from feature-bookmarks/src/test/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt rename to feature/bookmarks/src/test/java/com/google/samples/apps/nowinandroid/feature/bookmarks/BookmarksViewModelTest.kt diff --git a/feature-foryou/.gitignore b/feature/foryou/.gitignore similarity index 100% rename from feature-foryou/.gitignore rename to feature/foryou/.gitignore diff --git a/feature-foryou/build.gradle.kts b/feature/foryou/build.gradle.kts similarity index 100% rename from feature-foryou/build.gradle.kts rename to feature/foryou/build.gradle.kts diff --git a/feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt b/feature/foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt similarity index 100% rename from feature-foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt rename to feature/foryou/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreenTest.kt diff --git a/feature-foryou/src/main/AndroidManifest.xml b/feature/foryou/src/main/AndroidManifest.xml similarity index 100% rename from feature-foryou/src/main/AndroidManifest.xml rename to feature/foryou/src/main/AndroidManifest.xml diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt similarity index 100% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt rename to feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/AuthorsCarousel.kt diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/FollowedInterestsUiState.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/FollowedInterestsUiState.kt similarity index 100% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/FollowedInterestsUiState.kt rename to feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/FollowedInterestsUiState.kt diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt similarity index 100% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt rename to feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouInterestsSelectionUiState.kt diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt similarity index 100% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt rename to feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouScreen.kt diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt similarity index 100% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt rename to feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModel.kt diff --git a/feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt b/feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt similarity index 100% rename from feature-foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt rename to feature/foryou/src/main/java/com/google/samples/apps/nowinandroid/feature/foryou/navigation/ForYouNavigation.kt diff --git a/feature-foryou/src/main/res/drawable/ic_icon_placeholder.xml b/feature/foryou/src/main/res/drawable/ic_icon_placeholder.xml similarity index 100% rename from feature-foryou/src/main/res/drawable/ic_icon_placeholder.xml rename to feature/foryou/src/main/res/drawable/ic_icon_placeholder.xml diff --git a/feature-foryou/src/main/res/values/strings.xml b/feature/foryou/src/main/res/values/strings.xml similarity index 100% rename from feature-foryou/src/main/res/values/strings.xml rename to feature/foryou/src/main/res/values/strings.xml diff --git a/feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt b/feature/foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt similarity index 100% rename from feature-foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt rename to feature/foryou/src/test/java/com/google/samples/apps/nowinandroid/feature/foryou/ForYouViewModelTest.kt diff --git a/feature-interests/.gitignore b/feature/interests/.gitignore similarity index 100% rename from feature-interests/.gitignore rename to feature/interests/.gitignore diff --git a/feature-interests/build.gradle.kts b/feature/interests/build.gradle.kts similarity index 100% rename from feature-interests/build.gradle.kts rename to feature/interests/build.gradle.kts diff --git a/feature-interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt b/feature/interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt similarity index 100% rename from feature-interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt rename to feature/interests/src/androidTest/java/com/google/samples/apps/nowinandroid/interests/InterestsScreenTest.kt diff --git a/feature-interests/src/main/AndroidManifest.xml b/feature/interests/src/main/AndroidManifest.xml similarity index 100% rename from feature-interests/src/main/AndroidManifest.xml rename to feature/interests/src/main/AndroidManifest.xml diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt similarity index 100% rename from feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt rename to feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsItem.kt diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt similarity index 100% rename from feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt rename to feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsScreen.kt diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt similarity index 100% rename from feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt rename to feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/InterestsViewModel.kt diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt similarity index 100% rename from feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt rename to feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/TabContent.kt diff --git a/feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt b/feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt similarity index 100% rename from feature-interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt rename to feature/interests/src/main/java/com/google/samples/apps/nowinandroid/feature/interests/navigation/InterestsNavigation.kt diff --git a/feature-interests/src/main/res/values/strings.xml b/feature/interests/src/main/res/values/strings.xml similarity index 100% rename from feature-interests/src/main/res/values/strings.xml rename to feature/interests/src/main/res/values/strings.xml diff --git a/feature-interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt b/feature/interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt similarity index 100% rename from feature-interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt rename to feature/interests/src/test/java/com/google/samples/apps/nowinandroid/interests/InterestsViewModelTest.kt diff --git a/feature-topic/.gitignore b/feature/topic/.gitignore similarity index 100% rename from feature-topic/.gitignore rename to feature/topic/.gitignore diff --git a/feature-topic/build.gradle.kts b/feature/topic/build.gradle.kts similarity index 100% rename from feature-topic/build.gradle.kts rename to feature/topic/build.gradle.kts diff --git a/feature-topic/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt b/feature/topic/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt similarity index 100% rename from feature-topic/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt rename to feature/topic/src/androidTest/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreenTest.kt diff --git a/feature-topic/src/main/AndroidManifest.xml b/feature/topic/src/main/AndroidManifest.xml similarity index 100% rename from feature-topic/src/main/AndroidManifest.xml rename to feature/topic/src/main/AndroidManifest.xml diff --git a/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt b/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt similarity index 100% rename from feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt rename to feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicScreen.kt diff --git a/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt b/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt similarity index 100% rename from feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt rename to feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModel.kt diff --git a/feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt b/feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt similarity index 100% rename from feature-topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt rename to feature/topic/src/main/java/com/google/samples/apps/nowinandroid/feature/topic/navigation/TopicNavigation.kt diff --git a/feature-topic/src/main/res/values/strings.xml b/feature/topic/src/main/res/values/strings.xml similarity index 100% rename from feature-topic/src/main/res/values/strings.xml rename to feature/topic/src/main/res/values/strings.xml diff --git a/feature-topic/src/test/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt b/feature/topic/src/test/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt similarity index 100% rename from feature-topic/src/test/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt rename to feature/topic/src/test/java/com/google/samples/apps/nowinandroid/feature/topic/TopicViewModelTest.kt diff --git a/settings.gradle.kts b/settings.gradle.kts index 30eccde47..69a374739 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -55,10 +55,10 @@ include(":core:navigation") include(":core:network") include(":core:ui") include(":core:testing") -include(":feature-author") -include(":feature-foryou") -include(":feature-interests") -include(":feature-bookmarks") -include(":feature-topic") +include(":feature:author") +include(":feature:foryou") +include(":feature:interests") +include(":feature:bookmarks") +include(":feature:topic") include(":lint") include(":sync") From 164abc452f5c9d4c05334038992babdcb9d629ef Mon Sep 17 00:00:00 2001 From: madroid Date: Thu, 25 Aug 2022 21:25:29 +0800 Subject: [PATCH 3/4] Update ModularizationLearningJourney.md docs, rename 'core-' to 'core:' & 'feature-' to 'feature:' --- docs/ModularizationLearningJourney.md | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/ModularizationLearningJourney.md b/docs/ModularizationLearningJourney.md index 01e9b8750..b4933162c 100644 --- a/docs/ModularizationLearningJourney.md +++ b/docs/ModularizationLearningJourney.md @@ -78,7 +78,7 @@ how you can organize your project. In general, you should strive for low couplin * **High cohesion** - A module should comprise a collection of code that acts as a system. It should have clearly defined responsibilities and stay within boundaries of certain domain knowledge. For example, - the [`core-network` module](https://github.com/android/nowinandroid/tree/main/core-network) in Now + the [`core:network` module](https://github.com/android/nowinandroid/tree/main/core/network) in Now in Android is responsible for making network requests, handling responses from a remote data source, and supplying data to other modules. @@ -98,14 +98,14 @@ The Now in Android app contains the following types of modules: through `NiaTopLevelNavigation`. The `app` module depends on all `feature` modules and required `core` modules. -* `feature-` modules - feature specific modules which are scoped to handle a single responsibility +* `feature:` modules - feature specific modules which are scoped to handle a single responsibility in the app. These modules can be reused by any app, including test or other flavoured apps, when needed, while still keeping it separated and isolated. If a class is needed only by one `feature` module, it should remain within that module. If not, it should be extracted into an appropriate `core` module. A `feature` module should have no dependencies on other feature modules. They only depend on the `core` modules that they require. -* `core-` modules - common library modules containing auxiliary code and specific dependencies that +* `core:` modules - common library modules containing auxiliary code and specific dependencies that need to be shared between other modules in the app. These modules can depend on other core modules, but they shouldn’t depend on feature nor app modules. @@ -136,15 +136,15 @@ Using the above modularization strategy, the Now in Android app has the followin - feature-1,
- feature-2
+ feature:1,
+ feature:2
... Functionality associated with a specific feature or user journey. Typically contains UI components and ViewModels which read data from other modules.
Examples include:
    -
  • feature-author displays information about an author on the AuthorScreen.
  • -
  • feature-foryou which displays the user's news feed, and onboarding during first run, on the For You screen.
  • +
  • feature:author displays information about an author on the AuthorScreen.
  • +
  • feature:foryou which displays the user's news feed, and onboarding during first run, on the For You screen.
AuthorScreen
@@ -152,7 +152,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-data + core:data Fetching app data from multiple sources, shared by different features. @@ -161,7 +161,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-ui + core:ui UI components, composables and resources, such as icons, used by different features. @@ -170,7 +170,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-common + core:common Common classes shared between modules. @@ -179,7 +179,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-network + core:network Making network requests and handling responses from a remote data source. @@ -187,7 +187,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-testing + core:testing Testing dependencies, repositories and util classes. @@ -196,7 +196,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-datastore + core:datastore Storing persistent data using DataStore. @@ -205,7 +205,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-database + core:database Local database storage using Room. @@ -215,7 +215,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-model + core:model Model classes used throughout the app. @@ -225,7 +225,7 @@ Using the above modularization strategy, the Now in Android app has the followin - core-navigation + core:navigation Navigation dependencies and shared navigation classes. From e7b5badfc6af9092a765ba32d5cec7f37d0ada7e Mon Sep 17 00:00:00 2001 From: madroid Date: Tue, 30 Aug 2022 01:11:08 +0800 Subject: [PATCH 4/4] Update modularization graph png The .drawio.png file can be edited with draw.io --- docs/ModularizationLearningJourney.md | 2 +- docs/images/modularization-graph.drawio.png | Bin 0 -> 97387 bytes docs/images/modularization-graph.png | Bin 35712 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/images/modularization-graph.drawio.png delete mode 100644 docs/images/modularization-graph.png diff --git a/docs/ModularizationLearningJourney.md b/docs/ModularizationLearningJourney.md index b4933162c..56461ce73 100644 --- a/docs/ModularizationLearningJourney.md +++ b/docs/ModularizationLearningJourney.md @@ -85,7 +85,7 @@ how you can organize your project. In general, you should strive for low couplin ## Types of modules in Now in Android -![Diagram showing types of modules and their dependencies in Now in Android](images/modularization-graph.png "Diagram showing types of modules and their dependencies in Now in Android") +![Diagram showing types of modules and their dependencies in Now in Android](images/modularization-graph.drawio.png "Diagram showing types of modules and their dependencies in Now in Android") **Top tip**: A module graph (shown above) can be useful during modularization planning for visualizing dependencies between modules. diff --git a/docs/images/modularization-graph.drawio.png b/docs/images/modularization-graph.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5bc375be84a5860a2a1891652ba11bf0fdfe5a GIT binary patch literal 97387 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