From eb822e7cae886123525b8a47912462682ef7a026 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Tue, 27 Dec 2022 12:19:40 +0300 Subject: [PATCH 01/11] Update project --- .gitignore | 258 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) diff --git a/.gitignore b/.gitignore index 8ee3af8e3..db94edc58 100644 --- a/.gitignore +++ b/.gitignore @@ -449,3 +449,261 @@ /.idea/gradle.xml /releaseNotes.txt /.idea/deploymentTargetDropDown.xml +/buildSrc/build/classes/kotlin/main/plugins/AndroidApplicationConventionPlugin.class +/buildSrc/build/classes/kotlin/main/plugins/AndroidComposeApplicationConventionPlugin.class +/buildSrc/build/classes/kotlin/main/plugins/AndroidComposeLibraryConventionPlugin.class +/buildSrc/build/classes/kotlin/main/plugins/AndroidHiltConventionPlugin$apply$1$2.class +/buildSrc/build/classes/kotlin/main/plugins/AndroidHiltConventionPlugin.class +/buildSrc/build/classes/kotlin/main/plugins/AndroidLibraryConventionPlugin.class +/.idea/androidTestResultsUserPreferences.xml +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/AppProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/AppProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/BenchmarkProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/BenchmarkProjectDependency.java +/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/classes/org/gradle/accessors/dm/BuildLogicProjectDependency.class +/buildSrc/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/classes/org/gradle/accessors/dm/BuildLogicProjectDependency.class +/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/sources/org/gradle/accessors/dm/BuildLogicProjectDependency.java +/buildSrc/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/sources/org/gradle/accessors/dm/BuildLogicProjectDependency.java +/.gradle/7.6/checksums/checksums.lock +/buildSrc/.gradle/7.6/checksums/checksums.lock +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_AdsProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_AdsProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_AnalyticsProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_AnalyticsProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_CommonProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_CommonProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_DomainProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_DomainProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_EntitiesProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_EntitiesProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_NavigationProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_NavigationProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_NetworkProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_NetworkProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Core_UiProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Core_UiProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/CoreProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/CoreProjectDependency.java +/.gradle/7.6/dependencies-accessors/dependencies-accessors.lock +/buildSrc/.gradle/7.6/dependencies-accessors/dependencies-accessors.lock +/buildSrc/build/classes/kotlin/main/ktx/DependencyHandlerScopeKt.class +/.gradle/7.6/dependencies-accessors/executionHistory.bin +/.gradle/7.6/executionHistory/executionHistory.bin +/buildSrc/.gradle/7.6/dependencies-accessors/executionHistory.bin +/buildSrc/.gradle/7.6/executionHistory/executionHistory.bin +/.gradle/7.6/executionHistory/executionHistory.lock +/buildSrc/.gradle/7.6/executionHistory/executionHistory.lock +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Feature_DetailsProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Feature_DetailsProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Feature_FeedProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Feature_FeedProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/Feature_SettingsProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/Feature_SettingsProjectDependency.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/FeatureProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/FeatureProjectDependency.java +/.gradle/7.6/fileHashes/fileHashes.bin +/buildSrc/.gradle/7.6/fileHashes/fileHashes.bin +/.gradle/7.6/fileHashes/fileHashes.lock +/buildSrc/.gradle/7.6/fileHashes/fileHashes.lock +/.gradle/7.6/dependencies-accessors/gc.properties +/.gradle/7.6/gc.properties +/buildSrc/.gradle/7.6/dependencies-accessors/gc.properties +/buildSrc/.gradle/7.6/gc.properties +/.gradle/7.6/fileChanges/last-build.bin +/buildSrc/.gradle/7.6/fileChanges/last-build.bin +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistAppcompatLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistAppcompatLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistInsetsLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistInsetsLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistNavigationLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistNavigationLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistPlaceholderLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AccompanistPlaceholderLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxActivityLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxActivityLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxAppcompatLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxAppcompatLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxBenchmarkLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxBenchmarkLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxBenchmarkMacroLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxBenchmarkMacroLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeFoundationLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeFoundationLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeUiLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeUiLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeUiTestLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeUiTestLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxComposeVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxConstraintlayoutLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxConstraintlayoutLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxCoreLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxCoreLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxCoreVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxCoreVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxDatastoreLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxDatastoreLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxDatastorePreferencesLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxDatastorePreferencesLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxEspressoLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxEspressoLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxEspressoVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxEspressoVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltNavigationLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltNavigationLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltNavigationVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltNavigationVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxHiltVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLifecycleLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLifecycleLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLifecycleRuntimeLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLifecycleRuntimeLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLifecycleViewmodelLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxLifecycleViewmodelLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxNavigationLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxNavigationLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxNavigationPluginAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxNavigationPluginAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxPagingLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxPagingLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxPluginAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxPluginAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxProfileLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxProfileLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxProfileVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxProfileVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxRoomLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxRoomLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxStartupLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxStartupLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestExtJunitLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestExtJunitLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestExtLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestExtLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxTestVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$AndroidxVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$BundleAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$ChuckerLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$ChuckerLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$ChuckerLibraryLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$ChuckerLibraryLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$ChuckerLibraryNoLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$ChuckerLibraryNoLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$CoilLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$CoilLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$CompileVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$CompileVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebaseCrashlyticsVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebaseCrashlyticsVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebaseLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebaseLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebasePluginAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebasePluginAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebaseVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$FirebaseVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$GooglePluginAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$GooglePluginAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$GoogleVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$GoogleVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$GradleLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$GradleLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$HiltLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$HiltLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinBundleAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinBundleAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinCompilerVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinCompilerVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinCoroutinesLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinCoroutinesLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinPluginAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$KotlinVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeThemeLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeThemeLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeThemeVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeThemeVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialComposeVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MaterialVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MinVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$MinVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$OkhttpLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$OkhttpLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$OkhttpLoggingLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$OkhttpLoggingLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayServicesLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayServicesLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayServicesVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayServicesVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PlayVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$PluginAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitConverterLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitConverterLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitConverterVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitConverterVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitLibraryAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitLibraryAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$RetrofitVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$TargetVersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$TargetVersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs$VersionAccessors.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs.class +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/classes/org/gradle/accessors/dm/LibrariesForLibs.class +/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/sources/org/gradle/accessors/dm/LibrariesForLibs.java +/buildSrc/.gradle/7.6/dependencies-accessors/bde7650bac1c0e6111e7f2c3ea66da3ee1a9afd8/sources/org/gradle/accessors/dm/LibrariesForLibs.java +/.gradle/7.6/checksums/md5-checksums.bin +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/MoviesProjectDependency.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/MoviesProjectDependency.java +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureAndroidCompose$$inlined$apply$lambda$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureAndroidCompose$$inlined$apply$lambda$2.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureAndroidCompose$$inlined$getByType$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureAndroidCompose$1$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureKotlinAndroid$$inlined$apply$lambda$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureKotlinAndroid$$inlined$apply$lambda$2.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureKotlinAndroid$$inlined$getByType$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureKotlinAndroid$1$2.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$configureLintCheck$$inlined$apply$lambda$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$libs$$inlined$getByType$1.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt$sam$org_gradle_api_Action$0.class +/buildSrc/build/classes/kotlin/main/ktx/ProjectKt.class +/build/dependencyUpdates/report.json +/build/dependencyUpdates/report.txt +/build/dependencyUpdates/report.xml +/.gradle/7.6/fileHashes/resourceHashesCache.bin +/buildSrc/.gradle/7.6/fileHashes/resourceHashesCache.bin +/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/classes/org/gradle/accessors/dm/RootProjectAccessor.class +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/classes/org/gradle/accessors/dm/RootProjectAccessor.class +/buildSrc/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/classes/org/gradle/accessors/dm/RootProjectAccessor.class +/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/sources/org/gradle/accessors/dm/RootProjectAccessor.java +/.gradle/7.6/dependencies-accessors/fa1b6e155e6fbbc3aec5f32fa00c2db4e61a0ffe/sources/org/gradle/accessors/dm/RootProjectAccessor.java +/buildSrc/.gradle/7.6/dependencies-accessors/eaf6e422b407037b3630f94e47d7baced32e5a49/sources/org/gradle/accessors/dm/RootProjectAccessor.java +/.gradle/7.6/checksums/sha1-checksums.bin +/buildSrc/.gradle/7.6/checksums/sha1-checksums.bin From 4e133ed7077f7b1b539c5494a9e16e613de0fee5 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Sun, 22 Jan 2023 18:15:37 +0400 Subject: [PATCH 02/11] Update project --- gradle/libs.versions.toml | 42 +++++++++++++++++++-------------------- readme.md | 12 +++++------ 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0dfd612df..63e149a74 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,32 +9,32 @@ compile-sdk = "33" # @keep target-sdk = "33" # @pin -gradle = "7.3.1" +gradle = "7.4.0" # @pin update when updating compose compiler -kotlin = "1.7.21" +kotlin = "1.8.0" kotlin-coroutines = "1.6.4" kotlin-serialization = "1.4.1" # @pin update when updating kotlin -kotlin-compiler-extension = "1.4.0-alpha02" +kotlin-compiler-extension = "1.4.0" detekt = "1.22.0" -spotless = "6.12.0" -google-services = "4.3.14" +spotless = "6.13.0" +google-services = "4.3.15" play-services-ads = "21.4.0" play-services-base = "18.1.0" firebase-analytics = "21.2.0" -firebase-appdistribution = "3.1.1" -firebase-config = "21.2.0" +firebase-appdistribution = "3.2.0" +firebase-config = "21.2.1" firebase-crashlytics-plugin = "2.9.2" -firebase-crashlytics = "18.3.2" +firebase-crashlytics = "18.3.3" play-core = "1.8.1" accompanist = "0.28.0" -material = "1.6.0" +material = "1.7.0" material-compose-theme-adapter = "1.2.1" hilt = "2.44.2" androidx-compose-foundation = "1.3.1" androidx-compose-runtime = "1.3.1" androidx-compose-ui = "1.3.1" -androidx-compose-compiler = "1.3.2" +androidx-compose-compiler = "1.4.0" androidx-compose-material3 = "1.0.1" androidx-appcompat = "1.6.0-rc01" androidx-activity = "1.6.1" @@ -47,13 +47,13 @@ androidx-navigation = "2.5.3" androidx-paging = "1.0.0-alpha17" androidx-datastore = "1.0.0" androidx-startup = "1.1.1" -androidx-room = "2.4.3" +androidx-room = "2.5.0" androidx-test = "1.5.0" -androidx-test-ext = "1.1.4" +androidx-test-ext = "1.1.5" androidx-test-uiautomator = "2.2.0" -androidx-espresso-core = "3.5.0" +androidx-espresso-core = "3.5.1" androidx-benchmark = "1.1.1" -androidx-profile-installer = "1.3.0-alpha02" +androidx-profile-installer = "1.3.0-alpha03" coil = "2.2.2" okhttp = "4.10.0" retrofit = "2.9.0" @@ -139,7 +139,7 @@ kotlin-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version. [bundles] kotlin-coroutines = [ "kotlin-coroutines-android", - "kotlin-coroutines-core" + "kotlin-coroutines-core", ] accompanist = [ "accompanist-appcompat-theme", @@ -149,11 +149,11 @@ accompanist = [ "accompanist-navigation-animation", "accompanist-placeholder", "accompanist-placeholder-material", - "accompanist-systemuicontroller" + "accompanist-systemuicontroller", ] appcompat = [ "androidx-appcompat", - "androidx-appcompat-resources" + "androidx-appcompat-resources", ] compose = [ "androidx-compose-compiler", @@ -163,20 +163,20 @@ compose = [ "androidx-compose-runtime", "androidx-compose-ui", "androidx-compose-ui-tooling", - "androidx-compose-ui-viewbinding" + "androidx-compose-ui-viewbinding", ] datastore = [ "androidx-datastore-core", "androidx-datastore-preferences", - "androidx-datastore-preferences-core" + "androidx-datastore-preferences-core", ] lifecycle = [ "androidx-lifecycle-runtime-compose", - "androidx-lifecycle-viewmodel-compose" + "androidx-lifecycle-viewmodel-compose", ] material = [ "material", - "material-compose-theme-adapter" + "material-compose-theme-adapter", ] [plugins] diff --git a/readme.md b/readme.md index f50e9169a..0fe1d9e24 100644 --- a/readme.md +++ b/readme.md @@ -41,7 +41,7 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] [Clean Architecture](https://d.android.com/topic/architecture) - [x] [TMDB API](https://developers.themoviedb.org/3/getting-started) - [x] KTS Gradle Files -- [x] Gradle Plugin 7.3.1 +- [x] Gradle Plugin 7.4.0 - [x] Gradle Version Catalog - [x] MinSDK 21 - [x] TargetSDK 33 @@ -50,7 +50,7 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] Dark Theme - [x] Dynamic Colors - [x] [Themed App Icon](https://d.android.com/develop/ui/views/launch/icon_design_adaptive) -- [x] 100% Kotlin 1.7.21 +- [x] 100% Kotlin 1.8.0 - [x] 100% Jetpack Compose 1.3.1, No XML - [x] [Accompanist](https://github.com/google/accompanist) 0.28.0 - [x] [Compose PreviewParameterProvider](https://d.android.com/jetpack/compose/tooling#previewparameter) @@ -72,9 +72,9 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] [Chucker](https://github.com/ChuckerTeam/chucker) 3.5.2 - [x] [Coil](https://github.com/coil-kt/coil) 2.2.2 - [x] [Timber](https://github.com/JakeWharton/timber) 5.0.1 -- [x] [Firebase Crashlytics](https://firebase.google.com/products/crashlytics) 18.3.2 -- [x] [Firebase App Distribution](https://firebase.google.com/products/app-distribution) 3.1.1 -- [x] [Firebase Remote Config](https://firebase.google.com/products/remote-config) 21.2.0 +- [x] [Firebase Crashlytics](https://firebase.google.com/products/crashlytics) 18.3.3 +- [x] [Firebase App Distribution](https://firebase.google.com/products/app-distribution) 3.2.0 +- [x] [Firebase Remote Config](https://firebase.google.com/products/remote-config) 21.2.1 - [x] [Google Analytics for Firebase](https://firebase.google.com/products/analytics) 21.2.0 - [x] [In-App Reviews](https://d.android.com/guide/playcore/in-app-review) - [x] [App Shortcuts](https://d.android.com/develop/ui/views/launch/shortcuts) @@ -83,7 +83,7 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] Github Releases - [x] [Lint](https://d.android.com/studio/write/lint) - [x] [Detekt](https://github.com/detekt/detekt) 1.22.0 -- [x] [Spotless](https://github.com/diffplug/spotless) 6.12.0 +- [x] [Spotless](https://github.com/diffplug/spotless) 6.13.0 - [x] Distribute App via Telegram Bot - [x] Non-Transitive R classes - [x] [SplashScreen API](https://d.android.com/develop/ui/views/launch/splash-screen) From 37b09a623889c0f977412830279af31485b85bd6 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Mon, 6 Feb 2023 20:01:31 +0300 Subject: [PATCH 03/11] Update project --- .../movies/details/ktx/ScreenStateKtx.kt | 14 +++++++------- .../movies/details/ui/DetailsScreenContent.kt | 6 +----- .../movies/settings/ui/SettingsThemeDialog.kt | 2 +- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt index e28e5b475..c3e11afc0 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt @@ -1,6 +1,7 @@ package org.michaelbel.movies.details.ktx -import android.content.Context +import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource import org.michaelbel.movies.details.R import org.michaelbel.movies.entities.MovieDetailsData import org.michaelbel.movies.entities.lce.ScreenState @@ -8,10 +9,9 @@ import org.michaelbel.movies.entities.lce.ScreenState internal val ScreenState.Content<*>.movie: MovieDetailsData get() = data as MovieDetailsData -internal fun ScreenState.toolbarTitle(context: Context): String { - return when (this) { - is ScreenState.Loading -> context.getString(R.string.details_title) +internal val ScreenState.toolbarTitle: String + @Composable get() = when (this) { + is ScreenState.Loading -> stringResource(R.string.details_title) is ScreenState.Content<*> -> movie.title - is ScreenState.Failure -> context.getString(R.string.details_title) - } -} \ No newline at end of file + is ScreenState.Failure -> stringResource(R.string.details_title) + } \ No newline at end of file diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt index e43b9101d..e4dbfbb4c 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt @@ -1,6 +1,5 @@ package org.michaelbel.movies.details.ui -import android.content.Context import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding @@ -10,7 +9,6 @@ import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalContext import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import java.net.UnknownHostException @@ -48,8 +46,6 @@ internal fun DetailsScreenContent( networkStatus: NetworkStatus, onRetry: () -> Unit ) { - val context: Context = LocalContext.current - if (networkStatus == NetworkStatus.Available && detailsState.isFailure && detailsState.throwable is UnknownHostException) { onRetry() } @@ -61,7 +57,7 @@ internal fun DetailsScreenContent( modifier = Modifier .statusBarsPadding(), onNavigationIconClick = onBackClick, - movieTitle = detailsState.toolbarTitle(context) + movieTitle = detailsState.toolbarTitle ) }, containerColor = MaterialTheme.colorScheme.primaryContainer diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt index 9aba482f6..e676b1b0e 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt +++ b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt @@ -114,7 +114,7 @@ private fun SettingThemeDialogContent( ) ) - androidx.compose.material3.Text( + Text( text = stringResource(theme.themeTextRes), modifier = Modifier .padding( From ebfbfb960c3e35213cbafa738dfd6f5e8bb74455 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Mon, 6 Feb 2023 20:27:47 +0300 Subject: [PATCH 04/11] Update project --- .../movies/details/ui/DetailsContent.kt | 18 +--- .../movies/details/ui/DetailsToolbar.kt | 9 +- .../preview/MoviePreviewParameterProvider.kt | 20 +++++ .../preview/TitlePreviewParameterProvider.kt | 10 +++ .../michaelbel/movies/feed/ui/FeedContent.kt | 86 +++++++++---------- .../michaelbel/movies/feed/ui/FeedMovieBox.kt | 17 +--- .../preview/MoviePreviewParameterProvider.kt | 19 ++++ .../ui/SettingsNetworkRequestDelayBox.kt | 12 +-- .../preview/SliderPreviewParameterProvider.kt | 11 +++ 9 files changed, 106 insertions(+), 96 deletions(-) create mode 100644 feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt create mode 100644 feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt create mode 100644 feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt create mode 100644 feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt index f6de3f035..5b6a0c433 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt @@ -22,7 +22,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension @@ -32,6 +31,7 @@ import com.google.accompanist.placeholder.PlaceholderHighlight import com.google.accompanist.placeholder.material.fade import com.google.accompanist.placeholder.placeholder import org.michaelbel.movies.details.R +import org.michaelbel.movies.details.ui.preview.MoviePreviewParameterProvider import org.michaelbel.movies.entities.MovieDetailsData import org.michaelbel.movies.ui.ktx.isErrorOrEmpty import org.michaelbel.movies.ui.preview.DevicePreviews @@ -191,22 +191,6 @@ internal fun DetailsContent( } } -private class MoviePreviewParameterProvider: PreviewParameterProvider { - override val values: Sequence = sequenceOf( - MovieDetailsData( - id = 438148, - overview = """Миллион лет миньоны искали самого великого и ужасного предводителя, - пока не встретили ЕГО. Знакомьтесь - Грю. Пусть он еще очень молод, но у него - в планах по-настоящему гадкие дела, которые заставят планету содрогнуться.""", - posterPath = "/19GXuePqcZSPD5JgT9MeVdeu9Tc.jpg", - backdropPath = "https://image.tmdb.org/t/p/w500//nmGWzTLMXy9x7mKd8NKPLmHtWGa.jpg", - releaseDate = "2022-06-29", - title = "Миньоны: Грювитация", - voteAverage = 7.6F - ) - ) -} - @Composable @DevicePreviews private fun DetailsContentPreview( diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt index a6f81f6d4..29f394a60 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt @@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import org.michaelbel.movies.details.ui.preview.TitlePreviewParameterProvider import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme @@ -51,13 +51,6 @@ internal fun DetailsToolbar( ) } -private class TitlePreviewParameterProvider: PreviewParameterProvider { - override val values: Sequence = sequenceOf( - "How to Train Your Dragon", - "Three Billboards Outside Ebbing, Missouri" - ) -} - @Composable @DevicePreviews private fun DetailsToolbarPreview( diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt new file mode 100644 index 000000000..2a360f62d --- /dev/null +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt @@ -0,0 +1,20 @@ +package org.michaelbel.movies.details.ui.preview + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import org.michaelbel.movies.entities.MovieDetailsData + +internal class MoviePreviewParameterProvider: PreviewParameterProvider { + override val values: Sequence = sequenceOf( + MovieDetailsData( + id = 438148, + overview = """Миллион лет миньоны искали самого великого и ужасного предводителя, + пока не встретили ЕГО. Знакомьтесь - Грю. Пусть он еще очень молод, но у него + в планах по-настоящему гадкие дела, которые заставят планету содрогнуться.""", + posterPath = "/19GXuePqcZSPD5JgT9MeVdeu9Tc.jpg", + backdropPath = "https://image.tmdb.org/t/p/w500//nmGWzTLMXy9x7mKd8NKPLmHtWGa.jpg", + releaseDate = "2022-06-29", + title = "Миньоны: Грювитация", + voteAverage = 7.6F + ) + ) +} \ No newline at end of file diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt new file mode 100644 index 000000000..910212862 --- /dev/null +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt @@ -0,0 +1,10 @@ +package org.michaelbel.movies.details.ui.preview + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider + +internal class TitlePreviewParameterProvider: PreviewParameterProvider { + override val values: Sequence = sequenceOf( + "How to Train Your Dragon", + "Three Billboards Outside Ebbing, Missouri" + ) +} \ No newline at end of file diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt index 48353e9ac..058874a36 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt +++ b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt @@ -2,7 +2,6 @@ package org.michaelbel.movies.feed.ui import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -28,53 +27,50 @@ internal fun FeedContent( pagingItems: LazyPagingItems, onMovieClick: (Int) -> Unit ) { - Column( - modifier = modifier + LazyColumn( + modifier = modifier, + state = listState, + contentPadding = paddingValues ) { - LazyColumn( - state = listState, - contentPadding = paddingValues - ) { - items(pagingItems) { movieItem -> - movieItem?.let { movie -> - FeedMovieBox( - modifier = Modifier - .fillMaxWidth() - .padding( - start = 16.dp, - top = 4.dp, - end = 16.dp, - bottom = 4.dp - ) - .clip(MaterialTheme.shapes.small) - .background(MaterialTheme.colorScheme.inversePrimary) - .clickable { - onMovieClick(movie.id) - }, - movie = movie - ) - } + items(pagingItems) { movieItem -> + movieItem?.let { movie -> + FeedMovieBox( + modifier = Modifier + .fillMaxWidth() + .padding( + start = 16.dp, + top = 4.dp, + end = 16.dp, + bottom = 4.dp + ) + .clip(MaterialTheme.shapes.small) + .background(MaterialTheme.colorScheme.inversePrimary) + .clickable { + onMovieClick(movie.id) + }, + movie = movie + ) } - pagingItems.apply { - when { - isPagingLoading -> { - item { - FeedLoadingBox( - modifier = Modifier - .fillMaxWidth() - .height(80.dp) - ) - } + } + pagingItems.apply { + when { + isPagingLoading -> { + item { + FeedLoadingBox( + modifier = Modifier + .fillMaxWidth() + .height(80.dp) + ) } - isPagingFailure -> { - item { - FeedErrorBox( - modifier = Modifier - .fillMaxWidth() - .height(80.dp) - .clickable { retry() } - ) - } + } + isPagingFailure -> { + item { + FeedErrorBox( + modifier = Modifier + .fillMaxWidth() + .height(80.dp) + .clickable { retry() } + ) } } } diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt index d0f2e42e9..02d07e349 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt +++ b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt @@ -20,7 +20,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension @@ -28,6 +27,7 @@ import coil.compose.AsyncImage import coil.request.ImageRequest import org.michaelbel.movies.entities.MovieData import org.michaelbel.movies.feed.R +import org.michaelbel.movies.feed.ui.preview.MoviePreviewParameterProvider import org.michaelbel.movies.ui.ktx.isErrorOrEmpty import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme @@ -104,21 +104,6 @@ internal fun FeedMovieBox( } } -private class MoviePreviewParameterProvider: PreviewParameterProvider { - override val values: Sequence = sequenceOf( - MovieData( - id = 438148, - overview = "", - posterPath = "/19GXuePqcZSPD5JgT9MeVdeu9Tc.jpg", - backdropPath = "https://image.tmdb.org/t/p/w500//nmGWzTLMXy9x7mKd8NKPLmHtWGa.jpg", - releaseDate = "2022-06-29", - title = "Миньоны: Грювитация", - voteAverage = 7.6F, - genreIds = listOf(16, 12, 35, 14) - ) - ) -} - @Composable @DevicePreviews private fun MovieBoxPreview( diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt new file mode 100644 index 000000000..b7147c1be --- /dev/null +++ b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt @@ -0,0 +1,19 @@ +package org.michaelbel.movies.feed.ui.preview + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import org.michaelbel.movies.entities.MovieData + +internal class MoviePreviewParameterProvider: PreviewParameterProvider { + override val values: Sequence = sequenceOf( + MovieData( + id = 438148, + overview = "", + posterPath = "/19GXuePqcZSPD5JgT9MeVdeu9Tc.jpg", + backdropPath = "https://image.tmdb.org/t/p/w500//nmGWzTLMXy9x7mKd8NKPLmHtWGa.jpg", + releaseDate = "2022-06-29", + title = "Миньоны: Грювитация", + voteAverage = 7.6F, + genreIds = listOf(16, 12, 35, 14) + ) + ) +} \ No newline at end of file diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt index 3324565d4..2867de073 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt +++ b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt @@ -14,14 +14,14 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter -import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import kotlin.math.roundToInt import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings.ui.preview.SliderPreviewParameterProvider import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme +import kotlin.math.roundToInt @Composable fun SettingsNetworkRequestDelayBox( @@ -90,14 +90,6 @@ fun SettingsNetworkRequestDelayBox( } } -private class SliderPreviewParameterProvider: PreviewParameterProvider { - override val values: Sequence = sequenceOf( - 0, - 5000, - 10000 - ) -} - @Composable @DevicePreviews private fun SettingsNetworkRequestDelayBoxPreview( diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt new file mode 100644 index 000000000..8221cf9a0 --- /dev/null +++ b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt @@ -0,0 +1,11 @@ +package org.michaelbel.movies.settings.ui.preview + +import androidx.compose.ui.tooling.preview.PreviewParameterProvider + +internal class SliderPreviewParameterProvider: PreviewParameterProvider { + override val values: Sequence = sequenceOf( + 0, + 5000, + 10000 + ) +} \ No newline at end of file From 8d1b3f03a1cf379abaeb8f300ebb0654711f58e6 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Mon, 6 Feb 2023 20:54:47 +0300 Subject: [PATCH 05/11] Update project --- app/build.gradle.kts | 9 +++++---- feature/{details => details-impl}/.gitignore | 0 feature/{details => details-impl}/build.gradle.kts | 2 +- .../src/main/AndroidManifest.xml | 0 .../org/michaelbel/movies/details/DetailsViewModel.kt | 0 .../org/michaelbel/movies/details/ktx/ScreenStateKtx.kt | 2 +- .../movies/details/navigation/DetailsNavigation.kt | 0 .../org/michaelbel/movies/details/ui/DetailsAdvert.kt | 0 .../org/michaelbel/movies/details/ui/DetailsContent.kt | 2 +- .../org/michaelbel/movies/details/ui/DetailsFailure.kt | 2 +- .../org/michaelbel/movies/details/ui/DetailsLoading.kt | 0 .../michaelbel/movies/details/ui/DetailsScreenContent.kt | 0 .../org/michaelbel/movies/details/ui/DetailsToolbar.kt | 0 .../details/ui/preview/MoviePreviewParameterProvider.kt | 0 .../details/ui/preview/TitlePreviewParameterProvider.kt | 0 .../src/main/res/values-ru/strings.xml | 0 .../src/main/res/values/strings.xml | 0 feature/{feed => feed-impl}/.gitignore | 0 feature/{feed => feed-impl}/build.gradle.kts | 2 +- feature/{feed => feed-impl}/src/main/AndroidManifest.xml | 0 .../kotlin/org/michaelbel/movies/feed/FeedViewModel.kt | 0 .../org/michaelbel/movies/feed/MoviesPagingSource.kt | 0 .../org/michaelbel/movies/feed/ktx/LazyPagingItemsKtx.kt | 0 .../michaelbel/movies/feed/navigation/FeedNavigation.kt | 0 .../kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt | 0 .../kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt | 2 +- .../kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt | 2 +- .../kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt | 0 .../org/michaelbel/movies/feed/ui/FeedLoadingBox.kt | 0 .../kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt | 2 +- .../org/michaelbel/movies/feed/ui/FeedScreenContent.kt | 2 +- .../kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt | 2 +- .../feed/ui/preview/MoviePreviewParameterProvider.kt | 0 .../src/main/res/values-ru/strings.xml | 0 .../{feed => feed-impl}/src/main/res/values/strings.xml | 0 feature/{settings => settings-impl}/.gitignore | 0 feature/{settings => settings-impl}/build.gradle.kts | 2 +- .../src/main/AndroidManifest.xml | 0 .../org/michaelbel/movies/settings/SettingsViewModel.kt | 0 .../org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt | 2 +- .../org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt | 2 +- .../movies/settings/navigation/SettingsNavigation.kt | 0 .../movies/settings/ui/SettingsDynamicColorsBox.kt | 2 +- .../michaelbel/movies/settings/ui/SettingsLanguageBox.kt | 2 +- .../movies/settings/ui/SettingsLanguageDialog.kt | 2 +- .../movies/settings/ui/SettingsNetworkRequestDelayBox.kt | 2 +- .../movies/settings/ui/SettingsPostNotificationsBox.kt | 2 +- .../michaelbel/movies/settings/ui/SettingsReviewBox.kt | 2 +- .../org/michaelbel/movies/settings/ui/SettingsRtlBox.kt | 2 +- .../movies/settings/ui/SettingsScreenContent.kt | 4 ++-- .../michaelbel/movies/settings/ui/SettingsThemeBox.kt | 2 +- .../michaelbel/movies/settings/ui/SettingsThemeDialog.kt | 2 +- .../org/michaelbel/movies/settings/ui/SettingsToolbar.kt | 2 +- .../michaelbel/movies/settings/ui/SettingsVersionBox.kt | 2 +- .../ui/preview/SliderPreviewParameterProvider.kt | 0 .../src/main/res/values-ru/strings.xml | 0 .../src/main/res/values/strings.xml | 0 settings.gradle.kts | 6 +++--- 58 files changed, 34 insertions(+), 33 deletions(-) rename feature/{details => details-impl}/.gitignore (100%) rename feature/{details => details-impl}/build.gradle.kts (96%) rename feature/{details => details-impl}/src/main/AndroidManifest.xml (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt (93%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsAdvert.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt (99%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt (98%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt (100%) rename feature/{details => details-impl}/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt (100%) rename feature/{details => details-impl}/src/main/res/values-ru/strings.xml (100%) rename feature/{details => details-impl}/src/main/res/values/strings.xml (100%) rename feature/{feed => feed-impl}/.gitignore (100%) rename feature/{feed => feed-impl}/build.gradle.kts (96%) rename feature/{feed => feed-impl}/src/main/AndroidManifest.xml (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/MoviesPagingSource.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ktx/LazyPagingItemsKtx.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt (97%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt (98%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoadingBox.kt (100%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt (99%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt (99%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt (98%) rename feature/{feed => feed-impl}/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt (100%) rename feature/{feed => feed-impl}/src/main/res/values-ru/strings.xml (100%) rename feature/{feed => feed-impl}/src/main/res/values/strings.xml (100%) rename feature/{settings => settings-impl}/.gitignore (100%) rename feature/{settings => settings-impl}/build.gradle.kts (96%) rename feature/{settings => settings-impl}/src/main/AndroidManifest.xml (100%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt (100%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt (87%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt (88%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt (100%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt (99%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt (97%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt (99%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt (99%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt (97%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt (98%) rename feature/{settings => settings-impl}/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt (100%) rename feature/{settings => settings-impl}/src/main/res/values-ru/strings.xml (100%) rename feature/{settings => settings-impl}/src/main/res/values/strings.xml (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4520950e8..2dd511b80 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,7 +1,8 @@ + import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties -import java.io.FileInputStream import org.apache.commons.io.output.ByteArrayOutputStream import org.jetbrains.kotlin.konan.properties.Properties +import java.io.FileInputStream plugins { id("movies-android-application") @@ -159,9 +160,9 @@ dependencies { implementation(project(":core:common")) implementation(project(":core:domain")) implementation(project(":core:navigation")) - implementation(project(":feature:details")) - implementation(project(":feature:feed")) - implementation(project(":feature:settings")) + implementation(project(":feature:details-impl")) + implementation(project(":feature:feed-impl")) + implementation(project(":feature:settings-impl")) implementation(libs.androidx.profile.installer) diff --git a/feature/details/.gitignore b/feature/details-impl/.gitignore similarity index 100% rename from feature/details/.gitignore rename to feature/details-impl/.gitignore diff --git a/feature/details/build.gradle.kts b/feature/details-impl/build.gradle.kts similarity index 96% rename from feature/details/build.gradle.kts rename to feature/details-impl/build.gradle.kts index c4e73f7a6..cdc89af6b 100644 --- a/feature/details/build.gradle.kts +++ b/feature/details-impl/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "org.michaelbel.movies.details" + namespace = "org.michaelbel.movies.details_impl" defaultConfig { minSdk = libs.versions.min.sdk.get().toInt() diff --git a/feature/details/src/main/AndroidManifest.xml b/feature/details-impl/src/main/AndroidManifest.xml similarity index 100% rename from feature/details/src/main/AndroidManifest.xml rename to feature/details-impl/src/main/AndroidManifest.xml diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt similarity index 93% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt index c3e11afc0..63e4068e8 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ktx/ScreenStateKtx.kt @@ -2,7 +2,7 @@ package org.michaelbel.movies.details.ktx import androidx.compose.runtime.Composable import androidx.compose.ui.res.stringResource -import org.michaelbel.movies.details.R +import org.michaelbel.movies.details_impl.R import org.michaelbel.movies.entities.MovieDetailsData import org.michaelbel.movies.entities.lce.ScreenState diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsAdvert.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsAdvert.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsAdvert.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsAdvert.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt similarity index 99% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt index 5b6a0c433..836602487 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt @@ -30,7 +30,7 @@ import coil.request.ImageRequest import com.google.accompanist.placeholder.PlaceholderHighlight import com.google.accompanist.placeholder.material.fade import com.google.accompanist.placeholder.placeholder -import org.michaelbel.movies.details.R +import org.michaelbel.movies.details_impl.R import org.michaelbel.movies.details.ui.preview.MoviePreviewParameterProvider import org.michaelbel.movies.entities.MovieDetailsData import org.michaelbel.movies.ui.ktx.isErrorOrEmpty diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt similarity index 98% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt index 0ecaab37f..c63948237 100644 --- a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsFailure.kt @@ -12,7 +12,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.details.R +import org.michaelbel.movies.details_impl.R import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsToolbar.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/preview/MoviePreviewParameterProvider.kt diff --git a/feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt similarity index 100% rename from feature/details/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt rename to feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/preview/TitlePreviewParameterProvider.kt diff --git a/feature/details/src/main/res/values-ru/strings.xml b/feature/details-impl/src/main/res/values-ru/strings.xml similarity index 100% rename from feature/details/src/main/res/values-ru/strings.xml rename to feature/details-impl/src/main/res/values-ru/strings.xml diff --git a/feature/details/src/main/res/values/strings.xml b/feature/details-impl/src/main/res/values/strings.xml similarity index 100% rename from feature/details/src/main/res/values/strings.xml rename to feature/details-impl/src/main/res/values/strings.xml diff --git a/feature/feed/.gitignore b/feature/feed-impl/.gitignore similarity index 100% rename from feature/feed/.gitignore rename to feature/feed-impl/.gitignore diff --git a/feature/feed/build.gradle.kts b/feature/feed-impl/build.gradle.kts similarity index 96% rename from feature/feed/build.gradle.kts rename to feature/feed-impl/build.gradle.kts index 02de79966..b5ffe3562 100644 --- a/feature/feed/build.gradle.kts +++ b/feature/feed-impl/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "org.michaelbel.movies.feed" + namespace = "org.michaelbel.movies.feed_impl" defaultConfig { minSdk = libs.versions.min.sdk.get().toInt() diff --git a/feature/feed/src/main/AndroidManifest.xml b/feature/feed-impl/src/main/AndroidManifest.xml similarity index 100% rename from feature/feed/src/main/AndroidManifest.xml rename to feature/feed-impl/src/main/AndroidManifest.xml diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/MoviesPagingSource.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/MoviesPagingSource.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/MoviesPagingSource.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/MoviesPagingSource.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ktx/LazyPagingItemsKtx.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ktx/LazyPagingItemsKtx.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ktx/LazyPagingItemsKtx.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ktx/LazyPagingItemsKtx.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedContent.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt similarity index 97% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt index c382fdbb1..e4c78376e 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedErrorBox.kt @@ -12,7 +12,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp -import org.michaelbel.movies.feed.R +import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt similarity index 98% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt index c16c36172..6d36ac4e0 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedFailure.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.feed.R +import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoadingBox.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoadingBox.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoadingBox.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoadingBox.kt diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt similarity index 99% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt index 02d07e349..cd24c75bc 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedMovieBox.kt @@ -26,7 +26,7 @@ import androidx.constraintlayout.compose.Dimension import coil.compose.AsyncImage import coil.request.ImageRequest import org.michaelbel.movies.entities.MovieData -import org.michaelbel.movies.feed.R +import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.feed.ui.preview.MoviePreviewParameterProvider import org.michaelbel.movies.ui.ktx.isErrorOrEmpty import org.michaelbel.movies.ui.preview.DevicePreviews diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt similarity index 99% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt index 074c59891..ff75f3836 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt @@ -34,7 +34,7 @@ import kotlinx.coroutines.launch import org.michaelbel.movies.domain.exceptions.ApiKeyNotNullException import org.michaelbel.movies.entities.MovieData import org.michaelbel.movies.feed.FeedViewModel -import org.michaelbel.movies.feed.R +import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.feed.ktx.isFailure import org.michaelbel.movies.feed.ktx.isLoading import org.michaelbel.movies.feed.ktx.throwable diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt similarity index 98% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt index 546983e00..10d88d5f6 100644 --- a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedToolbar.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter -import org.michaelbel.movies.feed.R +import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.BooleanPreviewParameterProvider import org.michaelbel.movies.ui.preview.DevicePreviews diff --git a/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt similarity index 100% rename from feature/feed/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt rename to feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/preview/MoviePreviewParameterProvider.kt diff --git a/feature/feed/src/main/res/values-ru/strings.xml b/feature/feed-impl/src/main/res/values-ru/strings.xml similarity index 100% rename from feature/feed/src/main/res/values-ru/strings.xml rename to feature/feed-impl/src/main/res/values-ru/strings.xml diff --git a/feature/feed/src/main/res/values/strings.xml b/feature/feed-impl/src/main/res/values/strings.xml similarity index 100% rename from feature/feed/src/main/res/values/strings.xml rename to feature/feed-impl/src/main/res/values/strings.xml diff --git a/feature/settings/.gitignore b/feature/settings-impl/.gitignore similarity index 100% rename from feature/settings/.gitignore rename to feature/settings-impl/.gitignore diff --git a/feature/settings/build.gradle.kts b/feature/settings-impl/build.gradle.kts similarity index 96% rename from feature/settings/build.gradle.kts rename to feature/settings-impl/build.gradle.kts index f1d6efe30..aed119946 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings-impl/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } android { - namespace = "org.michaelbel.movies.settings" + namespace = "org.michaelbel.movies.settings_impl" defaultConfig { minSdk = libs.versions.min.sdk.get().toInt() diff --git a/feature/settings/src/main/AndroidManifest.xml b/feature/settings-impl/src/main/AndroidManifest.xml similarity index 100% rename from feature/settings/src/main/AndroidManifest.xml rename to feature/settings-impl/src/main/AndroidManifest.xml diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt similarity index 100% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt similarity index 87% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt index c6ff2275d..aa89ec494 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ktx/AppLanguageKtx.kt @@ -1,6 +1,6 @@ package org.michaelbel.movies.settings.ktx -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.language.model.AppLanguage internal val AppLanguage.languageTextRes: Int diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt similarity index 88% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt index 7c3951882..dfc8ca9d0 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ktx/SystemThemeKtx.kt @@ -1,6 +1,6 @@ package org.michaelbel.movies.settings.ktx -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.theme.model.AppTheme internal val AppTheme.themeTextRes: Int diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt similarity index 100% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt index e4b3194b0..07b063710 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsDynamicColorsBox.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.preview.BooleanPreviewParameterProvider import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt index ea8872fa2..1296bbdf8 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageBox.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.settings.ktx.languageTextRes import org.michaelbel.movies.ui.language.model.AppLanguage import org.michaelbel.movies.ui.language.preview.LanguagesPreviewParameterProvider diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt similarity index 99% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt index 65f1e6834..96928df2f 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsLanguageDialog.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.settings.ktx.languageTextRes import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.language.model.AppLanguage diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt index 2867de073..2f608bd59 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsNetworkRequestDelayBox.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.settings.ui.preview.SliderPreviewParameterProvider import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt index cad293599..ad8a48e30 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsPostNotificationsBox.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.preview.BooleanPreviewParameterProvider import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt similarity index 97% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt index fdbd59868..8442fdfbb 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsReviewBox.kt @@ -12,7 +12,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt index b4113118c..84ba625be 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsRtlBox.kt @@ -14,7 +14,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.preview.BooleanPreviewParameterProvider import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt similarity index 99% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt index 26ec69e25..6a76d6a24 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt @@ -44,8 +44,8 @@ import kotlinx.coroutines.launch import org.michaelbel.movies.common.ktx.denied import org.michaelbel.movies.common.review.rememberReviewManager import org.michaelbel.movies.common.review.rememberReviewTask -import org.michaelbel.movies.settings.BuildConfig -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.BuildConfig +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.settings.SettingsViewModel import org.michaelbel.movies.ui.language.model.AppLanguage import org.michaelbel.movies.ui.theme.model.AppTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt index 361f561b7..55e96470a 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeBox.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.settings.ktx.themeTextRes import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt similarity index 99% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt index e676b1b0e..7d29a3502 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsThemeDialog.kt @@ -22,7 +22,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import androidx.compose.ui.window.DialogProperties -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.settings.ktx.themeTextRes import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.DevicePreviews diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt similarity index 97% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt index 9b6c8a3ac..e45c1e024 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsToolbar.kt @@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt similarity index 98% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt index 8356f8595..204e0050a 100644 --- a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsVersionBox.kt @@ -17,7 +17,7 @@ import androidx.compose.ui.unit.dp import androidx.constraintlayout.compose.ChainStyle import androidx.constraintlayout.compose.ConstraintLayout import androidx.constraintlayout.compose.Dimension -import org.michaelbel.movies.settings.R +import org.michaelbel.movies.settings_impl.R import org.michaelbel.movies.ui.icon.MoviesIcons import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme diff --git a/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt similarity index 100% rename from feature/settings/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt rename to feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/preview/SliderPreviewParameterProvider.kt diff --git a/feature/settings/src/main/res/values-ru/strings.xml b/feature/settings-impl/src/main/res/values-ru/strings.xml similarity index 100% rename from feature/settings/src/main/res/values-ru/strings.xml rename to feature/settings-impl/src/main/res/values-ru/strings.xml diff --git a/feature/settings/src/main/res/values/strings.xml b/feature/settings-impl/src/main/res/values/strings.xml similarity index 100% rename from feature/settings/src/main/res/values/strings.xml rename to feature/settings-impl/src/main/res/values/strings.xml diff --git a/settings.gradle.kts b/settings.gradle.kts index f39f3c53b..fe057e6b1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -30,7 +30,7 @@ include( ":core:network", ":core:ui", - ":feature:details", - ":feature:feed", - ":feature:settings" + ":feature:details-impl", + ":feature:feed-impl", + ":feature:settings-impl" ) \ No newline at end of file From 99baeec1b4cf947ccb21f70e003f112b3cc20e96 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Tue, 7 Feb 2023 09:09:36 +0300 Subject: [PATCH 06/11] Update project --- app/build.gradle.kts | 6 +-- .../michaelbel/movies/MainActivityContent.kt | 12 +++--- feature/details-impl/build.gradle.kts | 2 +- .../movies/details/DetailsViewModel.kt | 4 +- .../movies/details/ui/DetailsScreenContent.kt | 4 +- feature/details/.gitignore | 1 + feature/details/build.gradle.kts | 41 +++++++++++++++++++ feature/details/src/main/AndroidManifest.xml | 2 + .../movies/details}/DetailsNavigation.kt | 2 +- feature/feed-impl/build.gradle.kts | 2 +- .../michaelbel/movies/feed/FeedViewModel.kt | 4 +- .../movies/feed/ui/FeedScreenContent.kt | 6 +-- feature/feed/.gitignore | 1 + feature/feed/build.gradle.kts | 41 +++++++++++++++++++ feature/feed/src/main/AndroidManifest.xml | 2 + .../michaelbel/movies/feed}/FeedNavigation.kt | 2 +- feature/settings-impl/build.gradle.kts | 4 +- .../movies/settings/SettingsViewModel.kt | 4 +- .../settings/ui/SettingsScreenContent.kt | 4 +- feature/settings/.gitignore | 1 + feature/settings/build.gradle.kts | 41 +++++++++++++++++++ feature/settings/src/main/AndroidManifest.xml | 2 + .../movies/settings}/SettingsNavigation.kt | 2 +- settings.gradle.kts | 3 ++ 24 files changed, 164 insertions(+), 29 deletions(-) create mode 100644 feature/details/.gitignore create mode 100644 feature/details/build.gradle.kts create mode 100644 feature/details/src/main/AndroidManifest.xml rename feature/{details-impl/src/main/kotlin/org/michaelbel/movies/details/navigation => details/src/main/kotlin/org/michaelbel/movies/details}/DetailsNavigation.kt (96%) create mode 100644 feature/feed/.gitignore create mode 100644 feature/feed/build.gradle.kts create mode 100644 feature/feed/src/main/AndroidManifest.xml rename feature/{feed-impl/src/main/kotlin/org/michaelbel/movies/feed/navigation => feed/src/main/kotlin/org/michaelbel/movies/feed}/FeedNavigation.kt (93%) create mode 100644 feature/settings/.gitignore create mode 100644 feature/settings/build.gradle.kts create mode 100644 feature/settings/src/main/AndroidManifest.xml rename feature/{settings-impl/src/main/kotlin/org/michaelbel/movies/settings/navigation => settings/src/main/kotlin/org/michaelbel/movies/settings}/SettingsNavigation.kt (94%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2dd511b80..c53f5cea3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -160,9 +160,9 @@ dependencies { implementation(project(":core:common")) implementation(project(":core:domain")) implementation(project(":core:navigation")) - implementation(project(":feature:details-impl")) - implementation(project(":feature:feed-impl")) - implementation(project(":feature:settings-impl")) + implementation(project(":feature:details")) + implementation(project(":feature:feed")) + implementation(project(":feature:settings")) implementation(libs.androidx.profile.installer) diff --git a/app/src/main/kotlin/org/michaelbel/movies/MainActivityContent.kt b/app/src/main/kotlin/org/michaelbel/movies/MainActivityContent.kt index bd5290975..958475ce6 100644 --- a/app/src/main/kotlin/org/michaelbel/movies/MainActivityContent.kt +++ b/app/src/main/kotlin/org/michaelbel/movies/MainActivityContent.kt @@ -4,12 +4,12 @@ import androidx.compose.runtime.Composable import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.rememberNavController -import org.michaelbel.movies.details.navigation.DetailsDestination -import org.michaelbel.movies.details.navigation.detailsGraph -import org.michaelbel.movies.feed.navigation.FeedDestination -import org.michaelbel.movies.feed.navigation.feedGraph -import org.michaelbel.movies.settings.navigation.SettingsDestination -import org.michaelbel.movies.settings.navigation.settingsGraph +import org.michaelbel.movies.details.DetailsDestination +import org.michaelbel.movies.details.detailsGraph +import org.michaelbel.movies.feed.FeedDestination +import org.michaelbel.movies.feed.feedGraph +import org.michaelbel.movies.settings.SettingsDestination +import org.michaelbel.movies.settings.settingsGraph @Composable internal fun MainActivityContent( diff --git a/feature/details-impl/build.gradle.kts b/feature/details-impl/build.gradle.kts index cdc89af6b..c1563391f 100644 --- a/feature/details-impl/build.gradle.kts +++ b/feature/details-impl/build.gradle.kts @@ -46,9 +46,9 @@ android { } dependencies { + api(project(":core:navigation")) implementation(project(":core:ads")) implementation(project(":core:common")) - implementation(project(":core:navigation")) implementation(project(":core:network")) implementation(project(":core:domain")) } \ No newline at end of file diff --git a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt index b655b4cfd..b9972c24a 100644 --- a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/DetailsViewModel.kt @@ -2,7 +2,6 @@ package org.michaelbel.movies.details import androidx.lifecycle.SavedStateHandle import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -15,9 +14,10 @@ import org.michaelbel.movies.domain.usecase.MovieDetailsCase import org.michaelbel.movies.entities.lce.ScreenState import org.michaelbel.movies.network.connectivity.NetworkManager import org.michaelbel.movies.network.connectivity.NetworkStatus +import javax.inject.Inject @HiltViewModel -internal class DetailsViewModel @Inject constructor( +class DetailsViewModel @Inject constructor( savedStateHandle: SavedStateHandle, private val movieDetails: MovieDetailsCase, networkManager: NetworkManager diff --git a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt index e4dbfbb4c..29e126260 100644 --- a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsScreenContent.kt @@ -11,7 +11,6 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle -import java.net.UnknownHostException import org.michaelbel.movies.details.DetailsViewModel import org.michaelbel.movies.details.ktx.movie import org.michaelbel.movies.details.ktx.toolbarTitle @@ -19,9 +18,10 @@ import org.michaelbel.movies.entities.lce.ScreenState import org.michaelbel.movies.entities.lce.ktx.isFailure import org.michaelbel.movies.entities.lce.ktx.throwable import org.michaelbel.movies.network.connectivity.NetworkStatus +import java.net.UnknownHostException @Composable -internal fun DetailsRoute( +fun DetailsRoute( onBackClick: () -> Unit, modifier: Modifier = Modifier, viewModel: DetailsViewModel = hiltViewModel() diff --git a/feature/details/.gitignore b/feature/details/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/details/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/details/build.gradle.kts b/feature/details/build.gradle.kts new file mode 100644 index 000000000..19a5e0aca --- /dev/null +++ b/feature/details/build.gradle.kts @@ -0,0 +1,41 @@ +plugins { + id("movies-android-library") + id("movies-android-library-compose") +} + +android { + namespace = "org.michaelbel.movies.details" + + defaultConfig { + minSdk = libs.versions.min.sdk.get().toInt() + compileSdk = libs.versions.compile.sdk.get().toInt() + } + + buildTypes { + create("benchmark") { + signingConfig = signingConfigs.getByName("debug") + matchingFallbacks += listOf("release") + initWith(getByName("release")) + } + } + + buildFeatures { + compose = true + } + + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.kotlin.compiler.extension.get() + } + + lint { + quiet = true + abortOnError = false + ignoreWarnings = true + checkDependencies = true + lintConfig = file("${project.rootDir}/config/codestyle/lint.xml") + } +} + +dependencies { + implementation(project(":feature:details-impl")) +} \ No newline at end of file diff --git a/feature/details/src/main/AndroidManifest.xml b/feature/details/src/main/AndroidManifest.xml new file mode 100644 index 000000000..1d26c87a1 --- /dev/null +++ b/feature/details/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt b/feature/details/src/main/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt similarity index 96% rename from feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt rename to feature/details/src/main/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt index 367f18ac7..ab1a80e68 100644 --- a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/navigation/DetailsNavigation.kt +++ b/feature/details/src/main/kotlin/org/michaelbel/movies/details/DetailsNavigation.kt @@ -1,4 +1,4 @@ -package org.michaelbel.movies.details.navigation +package org.michaelbel.movies.details import androidx.navigation.NamedNavArgument import androidx.navigation.NavDeepLink diff --git a/feature/feed-impl/build.gradle.kts b/feature/feed-impl/build.gradle.kts index b5ffe3562..2a33c4ae8 100644 --- a/feature/feed-impl/build.gradle.kts +++ b/feature/feed-impl/build.gradle.kts @@ -45,8 +45,8 @@ android { } dependencies { + api(project(":core:navigation")) implementation(project(":core:common")) - implementation(project(":core:navigation")) implementation(project(":core:network")) implementation(project(":core:domain")) implementation(libs.androidx.paging.compose) diff --git a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt index 111e61d3f..130c4888d 100644 --- a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/FeedViewModel.kt @@ -5,7 +5,6 @@ import androidx.paging.PagingConfig import androidx.paging.PagingData import androidx.paging.cachedIn import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -16,9 +15,10 @@ import org.michaelbel.movies.domain.interactor.SettingsInteractor import org.michaelbel.movies.entities.MovieData import org.michaelbel.movies.network.connectivity.NetworkManager import org.michaelbel.movies.network.connectivity.NetworkStatus +import javax.inject.Inject @HiltViewModel -internal class FeedViewModel @Inject constructor( +class FeedViewModel @Inject constructor( private val movieInteractor: MovieInteractor, settingsInteractor: SettingsInteractor, networkManager: NetworkManager diff --git a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt index ff75f3836..f3eb29b71 100644 --- a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedScreenContent.kt @@ -28,21 +28,21 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems -import java.net.UnknownHostException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch import org.michaelbel.movies.domain.exceptions.ApiKeyNotNullException import org.michaelbel.movies.entities.MovieData import org.michaelbel.movies.feed.FeedViewModel -import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.feed.ktx.isFailure import org.michaelbel.movies.feed.ktx.isLoading import org.michaelbel.movies.feed.ktx.throwable +import org.michaelbel.movies.feed_impl.R import org.michaelbel.movies.network.connectivity.NetworkStatus import org.michaelbel.movies.ui.theme.ktx.clickableWithoutRipple +import java.net.UnknownHostException @Composable -internal fun FeedRoute( +fun FeedRoute( onNavigateToSettings: () -> Unit, onNavigateToDetails: (Int) -> Unit, modifier: Modifier = Modifier, diff --git a/feature/feed/.gitignore b/feature/feed/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/feed/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/feed/build.gradle.kts b/feature/feed/build.gradle.kts new file mode 100644 index 000000000..45dc161b6 --- /dev/null +++ b/feature/feed/build.gradle.kts @@ -0,0 +1,41 @@ +plugins { + id("movies-android-library") + id("movies-android-library-compose") +} + +android { + namespace = "org.michaelbel.movies.feed" + + defaultConfig { + minSdk = libs.versions.min.sdk.get().toInt() + compileSdk = libs.versions.compile.sdk.get().toInt() + } + + buildTypes { + create("benchmark") { + signingConfig = signingConfigs.getByName("debug") + matchingFallbacks += listOf("release") + initWith(getByName("release")) + } + } + + buildFeatures { + compose = true + } + + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.kotlin.compiler.extension.get() + } + + lint { + quiet = true + abortOnError = false + ignoreWarnings = true + checkDependencies = true + lintConfig = file("${project.rootDir}/config/codestyle/lint.xml") + } +} + +dependencies { + implementation(project(":feature:feed-impl")) +} \ No newline at end of file diff --git a/feature/feed/src/main/AndroidManifest.xml b/feature/feed/src/main/AndroidManifest.xml new file mode 100644 index 000000000..1d26c87a1 --- /dev/null +++ b/feature/feed/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt similarity index 93% rename from feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt rename to feature/feed/src/main/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt index fa2847fae..2cc1a8325 100644 --- a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/navigation/FeedNavigation.kt +++ b/feature/feed/src/main/kotlin/org/michaelbel/movies/feed/FeedNavigation.kt @@ -1,4 +1,4 @@ -package org.michaelbel.movies.feed.navigation +package org.michaelbel.movies.feed import androidx.navigation.NavGraphBuilder import androidx.navigation.compose.composable diff --git a/feature/settings-impl/build.gradle.kts b/feature/settings-impl/build.gradle.kts index aed119946..ba50e383e 100644 --- a/feature/settings-impl/build.gradle.kts +++ b/feature/settings-impl/build.gradle.kts @@ -47,10 +47,10 @@ android { } dependencies { + api(project(":core:navigation")) + api(project(":core:common")) implementation(project(":core:ads")) - implementation(project(":core:common")) implementation(project(":core:domain")) - implementation(project(":core:navigation")) implementation(project(":core:ui")) testImplementation(libs.junit) diff --git a/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt index 7c5f8bfcf..f32f3d8ea 100644 --- a/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/SettingsViewModel.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.unit.LayoutDirection import androidx.lifecycle.DefaultLifecycleObserver import androidx.lifecycle.LifecycleOwner import dagger.hilt.android.lifecycle.HiltViewModel -import javax.inject.Inject import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow @@ -19,9 +18,10 @@ import org.michaelbel.movies.domain.usecase.SelectThemeCase import org.michaelbel.movies.ui.language.model.AppLanguage import org.michaelbel.movies.ui.theme.model.AppTheme import org.michaelbel.movies.ui.version.AppVersionData +import javax.inject.Inject @HiltViewModel -internal class SettingsViewModel @Inject constructor( +class SettingsViewModel @Inject constructor( private val settingsInteractor: SettingsInteractor, private val selectLanguageCase: SelectLanguageCase, private val selectThemeCase: SelectThemeCase diff --git a/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt index 6a76d6a24..ba5247d83 100644 --- a/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt +++ b/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/ui/SettingsScreenContent.kt @@ -44,16 +44,16 @@ import kotlinx.coroutines.launch import org.michaelbel.movies.common.ktx.denied import org.michaelbel.movies.common.review.rememberReviewManager import org.michaelbel.movies.common.review.rememberReviewTask +import org.michaelbel.movies.settings.SettingsViewModel import org.michaelbel.movies.settings_impl.BuildConfig import org.michaelbel.movies.settings_impl.R -import org.michaelbel.movies.settings.SettingsViewModel import org.michaelbel.movies.ui.language.model.AppLanguage import org.michaelbel.movies.ui.theme.model.AppTheme import org.michaelbel.movies.ui.version.AppVersionData import org.michaelbel.movies.ui.R as UiR @Composable -internal fun SettingsRoute( +fun SettingsRoute( onBackClick: () -> Unit, modifier: Modifier = Modifier, viewModel: SettingsViewModel = hiltViewModel() diff --git a/feature/settings/.gitignore b/feature/settings/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/feature/settings/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts new file mode 100644 index 000000000..25d9c7214 --- /dev/null +++ b/feature/settings/build.gradle.kts @@ -0,0 +1,41 @@ +plugins { + id("movies-android-library") + id("movies-android-library-compose") +} + +android { + namespace = "org.michaelbel.movies.settings" + + defaultConfig { + minSdk = libs.versions.min.sdk.get().toInt() + compileSdk = libs.versions.compile.sdk.get().toInt() + } + + buildTypes { + create("benchmark") { + signingConfig = signingConfigs.getByName("debug") + matchingFallbacks += listOf("release") + initWith(getByName("release")) + } + } + + buildFeatures { + compose = true + } + + composeOptions { + kotlinCompilerExtensionVersion = libs.versions.kotlin.compiler.extension.get() + } + + lint { + quiet = true + abortOnError = false + ignoreWarnings = true + checkDependencies = true + lintConfig = file("${project.rootDir}/config/codestyle/lint.xml") + } +} + +dependencies { + implementation(project(":feature:settings-impl")) +} \ No newline at end of file diff --git a/feature/settings/src/main/AndroidManifest.xml b/feature/settings/src/main/AndroidManifest.xml new file mode 100644 index 000000000..1d26c87a1 --- /dev/null +++ b/feature/settings/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt similarity index 94% rename from feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt rename to feature/settings/src/main/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt index 54bb0ac8a..72985a72d 100644 --- a/feature/settings-impl/src/main/kotlin/org/michaelbel/movies/settings/navigation/SettingsNavigation.kt +++ b/feature/settings/src/main/kotlin/org/michaelbel/movies/settings/SettingsNavigation.kt @@ -1,4 +1,4 @@ -package org.michaelbel.movies.settings.navigation +package org.michaelbel.movies.settings import androidx.navigation.NavDeepLink import androidx.navigation.NavGraphBuilder diff --git a/settings.gradle.kts b/settings.gradle.kts index fe057e6b1..cf954688e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -30,7 +30,10 @@ include( ":core:network", ":core:ui", + ":feature:details", ":feature:details-impl", + ":feature:feed", ":feature:feed-impl", + ":feature:settings", ":feature:settings-impl" ) \ No newline at end of file From f25462cd2c9914d29fe8967b60b8a628da16166a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Feb 2023 11:09:49 +0300 Subject: [PATCH 07/11] Bump com.github.ben-manes.versions from 0.44.0 to 0.45.0 (#107) Bumps com.github.ben-manes.versions from 0.44.0 to 0.45.0. --- updated-dependencies: - dependency-name: com.github.ben-manes.versions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 419af6f1d..9de5d5a97 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ plugins { alias(libs.plugins.spotless) alias(libs.plugins.detekt) - id("com.github.ben-manes.versions") version "0.44.0" + id("com.github.ben-manes.versions") version "0.45.0" id("nl.littlerobots.version-catalog-update") version "0.7.0" id("com.palantir.git-version") version "0.15.0" } From 364c8a965cdc9d8d229b44beccedb61f077b6ef8 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Tue, 7 Feb 2023 11:21:07 +0300 Subject: [PATCH 08/11] Update project --- gradle/libs.versions.toml | 5 ++--- readme.md | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 63e149a74..38e9bb415 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,5 @@ # Compose to Kotlin Compatibility Map: # https://d.android.com/jetpack/androidx/releases/compose-kotlin - [versions] # @keep min-sdk = "21" @@ -17,9 +16,9 @@ kotlin-serialization = "1.4.1" # @pin update when updating kotlin kotlin-compiler-extension = "1.4.0" detekt = "1.22.0" -spotless = "6.13.0" +spotless = "6.14.1" google-services = "4.3.15" -play-services-ads = "21.4.0" +play-services-ads = "21.5.0" play-services-base = "18.1.0" firebase-analytics = "21.2.0" firebase-appdistribution = "3.2.0" diff --git a/readme.md b/readme.md index 0fe1d9e24..04577817b 100644 --- a/readme.md +++ b/readme.md @@ -83,7 +83,7 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] Github Releases - [x] [Lint](https://d.android.com/studio/write/lint) - [x] [Detekt](https://github.com/detekt/detekt) 1.22.0 -- [x] [Spotless](https://github.com/diffplug/spotless) 6.13.0 +- [x] [Spotless](https://github.com/diffplug/spotless) 6.14.1 - [x] Distribute App via Telegram Bot - [x] Non-Transitive R classes - [x] [SplashScreen API](https://d.android.com/develop/ui/views/launch/splash-screen) From c8c3ef5c23bbd772f0174cf4ef40bfec8fa451cf Mon Sep 17 00:00:00 2001 From: michaelbel Date: Tue, 7 Feb 2023 11:29:07 +0300 Subject: [PATCH 09/11] Update project --- gradle/libs.versions.toml | 2 +- readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 38e9bb415..00378a0b5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ compile-sdk = "33" # @keep target-sdk = "33" # @pin -gradle = "7.4.0" +gradle = "7.4.1" # @pin update when updating compose compiler kotlin = "1.8.0" kotlin-coroutines = "1.6.4" diff --git a/readme.md b/readme.md index 04577817b..8eb92f072 100644 --- a/readme.md +++ b/readme.md @@ -41,7 +41,7 @@ TMDB_API_KEY=your_own_tmdb_api_key - [x] [Clean Architecture](https://d.android.com/topic/architecture) - [x] [TMDB API](https://developers.themoviedb.org/3/getting-started) - [x] KTS Gradle Files -- [x] Gradle Plugin 7.4.0 +- [x] Gradle Plugin 7.4.1 - [x] Gradle Version Catalog - [x] MinSDK 21 - [x] TargetSDK 33 From 2b7e82f90e571a1de829292bfa2b749c28021c15 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Tue, 7 Feb 2023 12:34:12 +0300 Subject: [PATCH 10/11] Update project --- .../movies/entities/MovieDetailsData.kt | 28 +++++++++++++------ .../entities/ktx/MovieDetailsDataKtx.kt | 6 ++++ .../ui/ktx/AsyncImagePainterStateKtx.kt | 2 +- .../movies/details/ui/DetailsContent.kt | 15 +++++----- .../movies/details/ui/DetailsLoading.kt | 4 +-- 5 files changed, 37 insertions(+), 18 deletions(-) create mode 100644 core/entities/src/main/kotlin/org/michaelbel/movies/entities/ktx/MovieDetailsDataKtx.kt diff --git a/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieDetailsData.kt b/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieDetailsData.kt index dc19b688f..18d7f9f01 100644 --- a/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieDetailsData.kt +++ b/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieDetailsData.kt @@ -1,11 +1,23 @@ package org.michaelbel.movies.entities data class MovieDetailsData( - val id: Int = 0, - val overview: String = "", - val posterPath: String = "", - val backdropPath: String = "", - val releaseDate: String = "", - val title: String = "", - val voteAverage: Float = 0F -) \ No newline at end of file + val id: Int, + val overview: String, + val posterPath: String, + val backdropPath: String, + val releaseDate: String, + val title: String, + val voteAverage: Float +) { + companion object { + val Empty: MovieDetailsData = MovieDetailsData( + id = 0, + overview = "", + posterPath = "", + backdropPath = "", + releaseDate = "", + title = "", + voteAverage = 0F + ) + } +} \ No newline at end of file diff --git a/core/entities/src/main/kotlin/org/michaelbel/movies/entities/ktx/MovieDetailsDataKtx.kt b/core/entities/src/main/kotlin/org/michaelbel/movies/entities/ktx/MovieDetailsDataKtx.kt new file mode 100644 index 000000000..03793f5ef --- /dev/null +++ b/core/entities/src/main/kotlin/org/michaelbel/movies/entities/ktx/MovieDetailsDataKtx.kt @@ -0,0 +1,6 @@ +package org.michaelbel.movies.entities.ktx + +import org.michaelbel.movies.entities.MovieDetailsData + +val MovieDetailsData.isNotEmpty: Boolean + get() = this != MovieDetailsData.Empty \ No newline at end of file diff --git a/core/ui/src/main/kotlin/org/michaelbel/movies/ui/ktx/AsyncImagePainterStateKtx.kt b/core/ui/src/main/kotlin/org/michaelbel/movies/ui/ktx/AsyncImagePainterStateKtx.kt index e907986a1..29bf572ac 100644 --- a/core/ui/src/main/kotlin/org/michaelbel/movies/ui/ktx/AsyncImagePainterStateKtx.kt +++ b/core/ui/src/main/kotlin/org/michaelbel/movies/ui/ktx/AsyncImagePainterStateKtx.kt @@ -3,4 +3,4 @@ package org.michaelbel.movies.ui.ktx import coil.compose.AsyncImagePainter val AsyncImagePainter.State.isErrorOrEmpty: Boolean - get() = this is AsyncImagePainter.State.Error || this is AsyncImagePainter.State.Empty + get() = this is AsyncImagePainter.State.Error || this is AsyncImagePainter.State.Empty \ No newline at end of file diff --git a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt index 836602487..1683377ff 100644 --- a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsContent.kt @@ -30,9 +30,10 @@ import coil.request.ImageRequest import com.google.accompanist.placeholder.PlaceholderHighlight import com.google.accompanist.placeholder.material.fade import com.google.accompanist.placeholder.placeholder -import org.michaelbel.movies.details_impl.R import org.michaelbel.movies.details.ui.preview.MoviePreviewParameterProvider +import org.michaelbel.movies.details_impl.R import org.michaelbel.movies.entities.MovieDetailsData +import org.michaelbel.movies.entities.ktx.isNotEmpty import org.michaelbel.movies.ui.ktx.isErrorOrEmpty import org.michaelbel.movies.ui.preview.DevicePreviews import org.michaelbel.movies.ui.theme.MoviesTheme @@ -41,7 +42,7 @@ import org.michaelbel.movies.ui.theme.MoviesTheme internal fun DetailsContent( movie: MovieDetailsData, modifier: Modifier = Modifier, - placeHolder: Boolean = false + placeholder: Boolean = false ) { val context: Context = LocalContext.current val scrollState: ScrollState = rememberScrollState() @@ -53,7 +54,7 @@ internal fun DetailsContent( ) { val (image, noImageText, title, overview) = createRefs() - val imageRequest: ImageRequest? = if (placeHolder) { + val imageRequest: ImageRequest? = if (placeholder) { null } else { ImageRequest.Builder(context) @@ -62,7 +63,7 @@ internal fun DetailsContent( .build() } - val imageModifier: Modifier = if (placeHolder) { + val imageModifier: Modifier = if (placeholder) { Modifier .constrainAs(image) { width = Dimension.fillToConstraints @@ -94,7 +95,7 @@ internal fun DetailsContent( contentDescription = null, modifier = imageModifier, onState = { state -> - isNoImageVisible = state.isErrorOrEmpty + isNoImageVisible = movie.isNotEmpty && state.isErrorOrEmpty }, contentScale = ContentScale.Crop ) @@ -119,7 +120,7 @@ internal fun DetailsContent( ) } - val titleModifier: Modifier = if (placeHolder) { + val titleModifier: Modifier = if (placeholder) { Modifier .constrainAs(title) { width = Dimension.fillToConstraints @@ -154,7 +155,7 @@ internal fun DetailsContent( style = MaterialTheme.typography.titleLarge ) - val overviewModifier: Modifier = if (placeHolder) { + val overviewModifier: Modifier = if (placeholder) { Modifier .constrainAs(overview) { width = Dimension.fillToConstraints diff --git a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt index d5326736a..fd0245bf2 100644 --- a/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt +++ b/feature/details-impl/src/main/kotlin/org/michaelbel/movies/details/ui/DetailsLoading.kt @@ -15,8 +15,8 @@ internal fun DetailsLoading( ) { DetailsContent( modifier = modifier, - movie = MovieDetailsData(), - placeHolder = true + movie = MovieDetailsData.Empty, + placeholder = true ) } From 832247169c680800a99a37ccb230d81b125fe967 Mon Sep 17 00:00:00 2001 From: michaelbel Date: Tue, 7 Feb 2023 12:37:31 +0300 Subject: [PATCH 11/11] Update project --- .../michaelbel/movies/entities/MovieData.kt | 27 +++++++++++++------ .../michaelbel/movies/feed/ui/FeedLoading.kt | 8 +++--- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieData.kt b/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieData.kt index a33435946..e1996c036 100644 --- a/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieData.kt +++ b/core/entities/src/main/kotlin/org/michaelbel/movies/entities/MovieData.kt @@ -1,17 +1,28 @@ package org.michaelbel.movies.entities data class MovieData( - val id: Int = 0, - val overview: String = "", - val posterPath: String = "", - val backdropPath: String = "", - val releaseDate: String = "", - val title: String = "", - val voteAverage: Float = 0F, - val genreIds: List = listOf() + val id: Int, + val overview: String, + val posterPath: String, + val backdropPath: String, + val releaseDate: String, + val title: String, + val voteAverage: Float, + val genreIds: List ) { companion object { const val NOW_PLAYING = "now_playing" const val DEFAULT_PAGE_SIZE = 10 + + val Empty: MovieData = MovieData( + id = 0, + overview = "", + posterPath = "", + backdropPath = "", + releaseDate = "", + title = "", + voteAverage = 0F, + genreIds = listOf() + ) } } \ No newline at end of file diff --git a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt index 6a7b89af6..f73ef16da 100644 --- a/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt +++ b/feature/feed-impl/src/main/kotlin/org/michaelbel/movies/feed/ui/FeedLoading.kt @@ -31,10 +31,8 @@ internal fun FeedLoading( modifier = Modifier .fillMaxWidth() .padding( - start = 16.dp, - top = 4.dp, - end = 16.dp, - bottom = 4.dp + horizontal = 16.dp, + vertical = 4.dp ) .placeholder( visible = true, @@ -42,7 +40,7 @@ internal fun FeedLoading( shape = MaterialTheme.shapes.small, highlight = PlaceholderHighlight.fade() ), - movie = MovieData() + movie = MovieData.Empty ) } }