From 89dd91c3110bf590fc621278a2c486ce3ff7e8db Mon Sep 17 00:00:00 2001 From: Teodor Grigor Date: Mon, 4 Mar 2024 14:43:40 +0200 Subject: [PATCH] Update Module Data for Publishing with teogor/winds --- app/build.gradle.kts | 14 +- .../teogor/ceres/feature/home/HomeScreen.kt | 2 +- app/src/main/res/values/strings.xml | 3 +- backup/build.gradle.kts | 21 +- backup/core/build.gradle.kts | 14 +- backup/ui/build.gradle.kts | 10 +- bom/build.gradle.kts | 23 +- build.gradle.kts | 202 +-- core/build.gradle.kts | 21 +- core/common/build.gradle.kts | 10 +- core/{analytics => core-analytics}/.gitignore | 0 .../api/analytics.api | 0 core/core-analytics/api/core-analytics.api | 97 + .../build.gradle.kts | 10 +- .../consumer-rules.pro | 0 .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../ceres/core/analytics/AnalyticsEvent.kt | 0 .../ceres/core/analytics/AnalyticsHelper.kt | 0 .../ceres/core/analytics/AnalyticsProvider.kt | 0 .../core/analytics/DefaultAnalyticsHelper.kt | 0 .../analytics/ExperimentalAnalyticsApi.kt | 0 .../core/analytics/StubAnalyticsHelper.kt | 0 .../core/analytics/composables/UiEvents.kt | 0 core/foundation/build.gradle.kts | 10 +- core/network/build.gradle.kts | 16 +- core/notifications/build.gradle.kts | 10 +- core/register/api/register.api | 17 - core/register/build.gradle.kts | 25 +- .../ceres/core/register/SupportedDialects.kt | 263 --- core/runtime/build.gradle.kts | 14 +- core/startup/build.gradle.kts | 10 +- data/build.gradle.kts | 21 +- data/{compose => data-compose}/.gitignore | 0 .../{compose => data-compose}/api/compose.api | 0 .../api/data-compose.api} | 0 .../build.gradle.kts | 14 +- .../data-compose}/consumer-rules.pro | 0 .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../teogor/ceres/data/compose/DatastoreExt.kt | 12 + data/database/build.gradle.kts | 10 +- data/datastore/build.gradle.kts | 14 +- docs/assets/winds/ceres-backup.json | 37 + docs/assets/winds/ceres-bom.json | 1554 +++++++++++++++++ docs/assets/winds/ceres-core.json | 307 ++++ docs/assets/winds/ceres-data.json | 48 + docs/assets/winds/ceres-firebase.json | 48 + docs/assets/winds/ceres-framework.json | 37 + docs/assets/winds/ceres-monetisation.json | 48 + docs/assets/winds/ceres-navigation.json | 71 + docs/assets/winds/ceres-screen.json | 48 + docs/assets/winds/ceres-ui.json | 81 + docs/backup/index.md | 96 + docs/bom/bom-mapping.md | 46 + docs/bom/implementation.md | 300 ++++ docs/bom/index.md | 89 + docs/core/index.md | 132 ++ docs/data/index.md | 102 ++ docs/firebase/index.md | 102 ++ docs/framework/index.md | 96 + docs/index.md | 97 +- docs/monetisation/index.md | 102 ++ docs/navigation/index.md | 114 ++ docs/releases/backup.md | 73 + docs/releases/core.md | 91 + docs/releases/data.md | 76 + docs/releases/firebase.md | 76 + docs/releases/framework.md | 73 + docs/releases/monetisation.md | 76 + docs/releases/navigation.md | 82 + docs/releases/screen.md | 76 + docs/releases/ui.md | 85 + docs/screen/index.md | 102 ++ docs/ui/index.md | 120 ++ firebase/build.gradle.kts | 21 +- firebase/crashlytics/build.gradle.kts | 12 +- .../.gitignore | 0 .../api/analytics.api | 0 .../api/firebase-analytics.api | 55 + .../build.gradle.kts | 14 +- .../firebase-analytics}/consumer-rules.pro | 0 .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../analytics/AnalyticsManagerInitializer.kt | 0 .../firebase/analytics/AnalyticsModule.kt | 0 .../analytics/FirebaseAnalyticsHelper.kt | 0 firebase/remote-config/build.gradle.kts | 10 +- framework/build.gradle.kts | 21 +- framework/{core => framework-core}/.gitignore | 0 .../{core => framework-core}/api/core.api | 0 .../framework-core/api/framework-core.api | 297 ++++ .../{core => framework-core}/build.gradle.kts | 43 +- .../{ui => framework-core}/consumer-rules.pro | 0 .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../teogor/ceres/framework/core/Activity.kt | 6 +- .../ceres/framework/core/Application.kt | 0 .../ceres/framework/core/app/BaseActions.kt | 0 .../ceres/framework/core/app/CeresApp.kt | 0 .../ceres/framework/core/app/CeresAppState.kt | 0 .../teogor/ceres/framework/core/menu/Menu.kt | 0 .../ceres/framework/core/menu/MenuCompose.kt | 0 .../ceres/framework/core/menu/MenuUtils.kt | 0 .../ceres/framework/core/model/MenuConfig.kt | 0 .../framework/core/model/NavGraphOptions.kt | 0 .../framework/core/model/ThemeBuilder.kt | 0 .../ceres/framework/core/screen/ScreenInfo.kt | 0 framework/{ui => framework-ui}/.gitignore | 0 .../api/framework-ui.api} | 0 .../framework-ui/api/ui.api | 0 .../{ui => framework-ui}/build.gradle.kts | 10 +- .../framework-ui}/consumer-rules.pro | 0 .../{ui => framework-ui}/proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 4 +- gradle/libs.versions.toml | 318 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- monetisation/admob/api/admob.api | 10 +- monetisation/admob/build.gradle.kts | 25 +- .../admob/formats/nativead/NativeAd.kt | 4 +- ...tive.xml => monetisation_admob_native.xml} | 4 +- .../admob/src/main/res/values/strings.xml | 19 - monetisation/ads/build.gradle.kts | 10 +- monetisation/build.gradle.kts | 21 +- monetisation/messaging/build.gradle.kts | 18 +- navigation/build.gradle.kts | 21 +- navigation/common/build.gradle.kts | 10 +- navigation/core/build.gradle.kts | 17 +- navigation/events/build.gradle.kts | 18 +- navigation/screen/build.gradle.kts | 10 +- navigation/ui/build.gradle.kts | 10 +- plugin/library-convention/build.gradle.kts | 28 +- .../AndroidApplicationConventionPlugin.kt | 6 + .../kotlin/AndroidFeatureConventionPlugin.kt | 36 - .../kotlin/AndroidLibraryConventionPlugin.kt | 21 +- .../src/main/kotlin/BuildDocsPlugin.kt | 42 - .../teogor/ceres/AndroidInstrumentedTests.kt | 2 +- .../main/kotlin/dev/teogor/ceres/Badging.kt | 144 ++ .../main/kotlin/dev/teogor/ceres/Jacoco.kt | 8 +- .../teogor/ceres/utils/DependencyHandler.kt | 2 +- screen/build.gradle.kts | 21 +- screen/builder/build.gradle.kts | 12 +- screen/{core => screen-core}/.gitignore | 0 screen/{core => screen-core}/api/core.api | 0 screen/screen-core/api/screen-core.api | 30 + screen/{core => screen-core}/build.gradle.kts | 20 +- .../screen-core}/consumer-rules.pro | 0 .../{core => screen-core}/proguard-rules.pro | 0 .../screen-core}/src/main/AndroidManifest.xml | 0 .../teogor/ceres/screen/core/Predicates.kt | 0 .../teogor/ceres/screen/core/ScrollState.kt | 0 .../screen/core/layout/ColumnLayoutBase.kt | 0 .../core/layout/FullScreenLayoutBase.kt | 0 .../core/layout/LayoutWithBottomHeader.kt | 0 .../core/layout/LazyColumnLayoutBase.kt | 0 .../screen/core/layout/LazyGridLayoutBase.kt | 0 .../screen/core/scope/ScreenColumnScope.kt | 0 .../screen/core/scope/ScreenGridScope.kt | 0 .../screen/core/scope/ScreenListScope.kt | 0 screen/{ui => screen-ui}/.gitignore | 0 screen/screen-ui/api/screen-ui.api | 803 +++++++++ screen/{ui => screen-ui}/api/ui.api | 0 screen/{ui => screen-ui}/build.gradle.kts | 33 +- screen/screen-ui/consumer-rules.pro | 0 screen/{ui => screen-ui}/proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../ceres/screen/ui/about/AboutComponents.kt | 0 .../ceres/screen/ui/about/AboutNavigation.kt | 0 .../about/libraries/AboutLibrariesScreen.kt | 0 .../ui/about/libraries/LibrariesComponents.kt | 0 .../ui/about/libraries/util/Extensions.kt | 0 .../teogor/ceres/screen/ui/api/ScreenUiApi.kt | 0 .../screen/ui/components/HeaderSurface.kt | 0 .../ui/lookandfeel/LookAndFeelComponents.kt | 0 .../ui/lookandfeel/LookAndFeelNavigation.kt | 0 .../ui/onboarding/OnboardingNavigation.kt | 0 .../screen/ui/onboarding/OnboardingRoute.kt | 0 .../ui/onboarding/OnboardingScreenData.kt | 0 .../ui/onboarding/model/OnboardingScreen.kt | 0 .../ui/onboarding/screens/AdChoicesScreen.kt | 0 .../ui/onboarding/screens/IntroScreen.kt | 0 .../ui/onboarding/screens/LegalScreen.kt | 4 +- .../ui/onboarding/screens/PermissionScreen.kt | 0 .../screen/ui/privacy/PrivacyNavigation.kt | 0 .../ceres/screen/ui/privacy/PrivacyScreen.kt | 0 .../teogor/ceres/screen/ui/res/ResourceIds.kt | 0 .../teogor/ceres/screen/ui/res/ResourceKey.kt | 0 .../ceres/screen/ui/res/ResourceType.kt | 0 .../teogor/ceres/screen/ui/res/Resources.kt | 0 .../screen/ui/settings/SettingsComponents.kt | 0 .../screen/ui/settings/SettingsNavigation.kt | 0 .../ui/userprefs/UserPrefsNaviagtion.kt | 0 .../screen/ui/userprefs/UserPrefsScreen.kt | 0 .../teogor/ceres/screen/ui/utils/Invokers.kt | 0 .../src/main/res/values-ar/strings.xml | 0 .../src/main/res/values-de/strings.xml | 0 .../src/main/res/values-es/strings.xml | 0 .../src/main/res/values-hi/strings.xml | 0 .../src/main/res/values-ja/strings.xml | 0 .../src/main/res/values-ko/strings.xml | 0 .../src/main/res/values-nl/strings.xml | 0 .../src/main/res/values-ro/strings.xml | 0 .../src/main/res/values-zh/strings.xml | 0 .../src/main/res/values/strings.xml | 0 settings.gradle.kts | 18 +- ui/build.gradle.kts | 20 +- ui/compose/build.gradle.kts | 10 +- ui/designsystem/build.gradle.kts | 18 +- .../teogor/ceres/ui/designsystem/Checkbox.kt | 4 +- .../ceres/ui/designsystem/ElementView.kt | 4 +- .../dev/teogor/ceres/ui/designsystem/Item.kt | 4 +- .../teogor/ceres/ui/designsystem/Surface.kt | 10 +- .../teogor/ceres/ui/designsystem/Switch.kt | 4 +- ui/icons/build.gradle.kts | 10 +- ui/spectrum/build.gradle.kts | 10 +- ui/theme/build.gradle.kts | 12 +- .../teogor/ceres/ui/theme/MaterialTheme.kt | 49 +- ui/theme/src/main/res/values-night/themes.xml | 4 +- ui/theme/src/main/res/values/colors.xml | 2 +- ui/theme/src/main/res/values/themes.xml | 10 +- ui/{foundation => ui-foundation}/.gitignore | 0 .../api/foundation.api | 0 ui/ui-foundation/api/ui-foundation.api | 171 ++ .../build.gradle.kts | 14 +- ui/ui-foundation/consumer-rules.pro | 0 .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 0 .../ceres/ui/foundation/ModifierExtensions.kt | 0 .../ceres/ui/foundation/SingleClickHandler.kt | 0 .../ceres/ui/foundation/TouchFeedback.kt | 0 .../ui/foundation/config/FeedbackConfig.kt | 0 .../ceres/ui/foundation/graphics/Icon.kt | 0 .../foundation/lib/common/emptyComposable.kt | 0 .../lib/resources/ResourceProvider.kt | 0 .../lib/resources/Strings.android.kt | 0 .../ui/foundation/lib/resources/Symbols.kt | 0 .../foundation/lib/resources/model/Strings.kt | 0 .../lib/tools/JankStatsExtensions.kt | 0 .../lib/tools/di/JankStatsModule.kt | 0 239 files changed, 6812 insertions(+), 1132 deletions(-) rename core/{analytics => core-analytics}/.gitignore (100%) rename core/{analytics => core-analytics}/api/analytics.api (100%) create mode 100644 core/core-analytics/api/core-analytics.api rename core/{analytics => core-analytics}/build.gradle.kts (90%) rename core/{analytics => core-analytics}/consumer-rules.pro (100%) rename core/{analytics => core-analytics}/proguard-rules.pro (100%) rename core/{analytics => core-analytics}/src/main/AndroidManifest.xml (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsEvent.kt (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsHelper.kt (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsProvider.kt (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/DefaultAnalyticsHelper.kt (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/ExperimentalAnalyticsApi.kt (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/StubAnalyticsHelper.kt (100%) rename core/{analytics => core-analytics}/src/main/kotlin/dev/teogor/ceres/core/analytics/composables/UiEvents.kt (100%) rename data/{compose => data-compose}/.gitignore (100%) rename data/{compose => data-compose}/api/compose.api (100%) rename data/{compose/consumer-rules.pro => data-compose/api/data-compose.api} (100%) rename data/{compose => data-compose}/build.gradle.kts (83%) rename {firebase/analytics => data/data-compose}/consumer-rules.pro (100%) rename data/{compose => data-compose}/proguard-rules.pro (100%) rename data/{compose => data-compose}/src/main/AndroidManifest.xml (100%) rename data/{compose => data-compose}/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt (67%) create mode 100644 docs/assets/winds/ceres-backup.json create mode 100644 docs/assets/winds/ceres-bom.json create mode 100644 docs/assets/winds/ceres-core.json create mode 100644 docs/assets/winds/ceres-data.json create mode 100644 docs/assets/winds/ceres-firebase.json create mode 100644 docs/assets/winds/ceres-framework.json create mode 100644 docs/assets/winds/ceres-monetisation.json create mode 100644 docs/assets/winds/ceres-navigation.json create mode 100644 docs/assets/winds/ceres-screen.json create mode 100644 docs/assets/winds/ceres-ui.json create mode 100644 docs/backup/index.md create mode 100644 docs/bom/bom-mapping.md create mode 100644 docs/bom/implementation.md create mode 100644 docs/bom/index.md create mode 100644 docs/core/index.md create mode 100644 docs/data/index.md create mode 100644 docs/firebase/index.md create mode 100644 docs/framework/index.md create mode 100644 docs/monetisation/index.md create mode 100644 docs/navigation/index.md create mode 100644 docs/releases/backup.md create mode 100644 docs/releases/core.md create mode 100644 docs/releases/data.md create mode 100644 docs/releases/firebase.md create mode 100644 docs/releases/framework.md create mode 100644 docs/releases/monetisation.md create mode 100644 docs/releases/navigation.md create mode 100644 docs/releases/screen.md create mode 100644 docs/releases/ui.md create mode 100644 docs/screen/index.md create mode 100644 docs/ui/index.md rename firebase/{analytics => firebase-analytics}/.gitignore (100%) rename firebase/{analytics => firebase-analytics}/api/analytics.api (100%) create mode 100644 firebase/firebase-analytics/api/firebase-analytics.api rename firebase/{analytics => firebase-analytics}/build.gradle.kts (85%) rename {framework/core => firebase/firebase-analytics}/consumer-rules.pro (100%) rename firebase/{analytics => firebase-analytics}/proguard-rules.pro (100%) rename firebase/{analytics => firebase-analytics}/src/main/AndroidManifest.xml (100%) rename firebase/{analytics => firebase-analytics}/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializer.kt (100%) rename firebase/{analytics => firebase-analytics}/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsModule.kt (100%) rename firebase/{analytics => firebase-analytics}/src/main/kotlin/dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelper.kt (100%) rename framework/{core => framework-core}/.gitignore (100%) rename framework/{core => framework-core}/api/core.api (100%) create mode 100644 framework/framework-core/api/framework-core.api rename framework/{core => framework-core}/build.gradle.kts (69%) rename framework/{ui => framework-core}/consumer-rules.pro (100%) rename framework/{core => framework-core}/proguard-rules.pro (100%) rename framework/{core => framework-core}/src/main/AndroidManifest.xml (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt (98%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/Application.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/app/BaseActions.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresApp.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresAppState.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/menu/Menu.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuCompose.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuUtils.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/model/MenuConfig.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/model/NavGraphOptions.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/model/ThemeBuilder.kt (100%) rename framework/{core => framework-core}/src/main/kotlin/dev/teogor/ceres/framework/core/screen/ScreenInfo.kt (100%) rename framework/{ui => framework-ui}/.gitignore (100%) rename framework/{ui/api/ui.api => framework-ui/api/framework-ui.api} (100%) rename screen/core/consumer-rules.pro => framework/framework-ui/api/ui.api (100%) rename framework/{ui => framework-ui}/build.gradle.kts (90%) rename {screen/ui => framework/framework-ui}/consumer-rules.pro (100%) rename framework/{ui => framework-ui}/proguard-rules.pro (100%) rename {screen/ui => framework/framework-ui}/src/main/AndroidManifest.xml (88%) rename monetisation/admob/src/main/res/layout/{admob_native.xml => monetisation_admob_native.xml} (92%) delete mode 100644 monetisation/admob/src/main/res/values/strings.xml delete mode 100644 plugin/library-convention/src/main/kotlin/BuildDocsPlugin.kt create mode 100644 plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Badging.kt rename screen/{core => screen-core}/.gitignore (100%) rename screen/{core => screen-core}/api/core.api (100%) create mode 100644 screen/screen-core/api/screen-core.api rename screen/{core => screen-core}/build.gradle.kts (79%) rename {ui/foundation => screen/screen-core}/consumer-rules.pro (100%) rename screen/{core => screen-core}/proguard-rules.pro (100%) rename {framework/ui => screen/screen-core}/src/main/AndroidManifest.xml (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/Predicates.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/ScrollState.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/layout/ColumnLayoutBase.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/layout/FullScreenLayoutBase.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LayoutWithBottomHeader.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyColumnLayoutBase.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyGridLayoutBase.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenColumnScope.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenGridScope.kt (100%) rename screen/{core => screen-core}/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenListScope.kt (100%) rename screen/{ui => screen-ui}/.gitignore (100%) create mode 100644 screen/screen-ui/api/screen-ui.api rename screen/{ui => screen-ui}/api/ui.api (100%) rename screen/{ui => screen-ui}/build.gradle.kts (71%) create mode 100644 screen/screen-ui/consumer-rules.pro rename screen/{ui => screen-ui}/proguard-rules.pro (100%) rename screen/{core => screen-ui}/src/main/AndroidManifest.xml (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutComponents.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutNavigation.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/AboutLibrariesScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/LibrariesComponents.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/util/Extensions.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/api/ScreenUiApi.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/components/HeaderSurface.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelComponents.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelNavigation.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingNavigation.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingRoute.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/AdChoicesScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/IntroScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt (99%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/PermissionScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyNavigation.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceIds.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceKey.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceType.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/res/Resources.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsComponents.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsNavigation.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsNaviagtion.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsScreen.kt (100%) rename screen/{ui => screen-ui}/src/main/kotlin/dev/teogor/ceres/screen/ui/utils/Invokers.kt (100%) rename screen/{ui => screen-ui}/src/main/res/values-ar/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-de/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-es/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-hi/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-ja/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-ko/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-nl/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-ro/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values-zh/strings.xml (100%) rename screen/{ui => screen-ui}/src/main/res/values/strings.xml (100%) rename ui/{foundation => ui-foundation}/.gitignore (100%) rename ui/{foundation => ui-foundation}/api/foundation.api (100%) create mode 100644 ui/ui-foundation/api/ui-foundation.api rename ui/{foundation => ui-foundation}/build.gradle.kts (87%) create mode 100644 ui/ui-foundation/consumer-rules.pro rename ui/{foundation => ui-foundation}/proguard-rules.pro (100%) rename ui/{foundation => ui-foundation}/src/main/AndroidManifest.xml (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/ModifierExtensions.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/SingleClickHandler.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/TouchFeedback.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/config/FeedbackConfig.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/graphics/Icon.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/common/emptyComposable.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Strings.android.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Symbols.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/model/Strings.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/JankStatsExtensions.kt (100%) rename ui/{foundation => ui-foundation}/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule.kt (100%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 31e9fb7d..690e8e64 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -127,22 +127,22 @@ android { dependencies { // application configuration - implementation(project(":framework:core")) + implementation(projects.framework.frameworkCore) // screen builder - implementation(project(":screen:builder")) - implementation(project(":screen:core")) + implementation(projects.screen.builder) + implementation(projects.screen.screenCore) // default screens // TODO split into locale and ui - implementation(project(":screen:ui")) + implementation(projects.screen.screenUi) // theme config - implementation(project(":ui:theme")) + implementation(projects.ui.theme) // monetisation - implementation(project(":monetisation:admob")) - implementation(project(":monetisation:messaging")) + implementation(projects.monetisation.admob) + implementation(projects.monetisation.messaging) implementation(libs.kotlinx.serialization.json) implementation(libs.kotlinx.serialization.protobuf) diff --git a/app/src/main/kotlin/dev/teogor/ceres/feature/home/HomeScreen.kt b/app/src/main/kotlin/dev/teogor/ceres/feature/home/HomeScreen.kt index ed2174a4..6b600633 100644 --- a/app/src/main/kotlin/dev/teogor/ceres/feature/home/HomeScreen.kt +++ b/app/src/main/kotlin/dev/teogor/ceres/feature/home/HomeScreen.kt @@ -172,7 +172,7 @@ private fun HomeScreen( }, ) - repeat(10) { + repeat(1) { NativeAd() repeat(5) { Box( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7b3e011c..77014ef4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -15,5 +15,6 @@ limitations under the License. --> - Ceres + Ceres + ca-app-pub-3940256099942544~3347511713 diff --git a/backup/build.gradle.kts b/backup/build.gradle.kts index 2305074f..ada12426 100644 --- a/backup/build.gradle.kts +++ b/backup/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Backup" - name = "backup" - - version = createVersion(1, 0, 0) { - alphaRelease(1) + moduleMetadata { + artifactDescriptor { + name = "Backup" + version = createVersion(1, 0, 0) { + alphaRelease(1) + } } } + + publishingOptions { + publish = false + } } diff --git a/backup/core/build.gradle.kts b/backup/core/build.gradle.kts index 19a4c9ab..fec3c52c 100644 --- a/backup/core/build.gradle.kts +++ b/backup/core/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -28,8 +29,8 @@ android { } dependencies { - api(project(":data:database")) - api(project(":data:datastore")) + api(projects.data.database) + api(projects.data.datastore) implementation(libs.kotlinx.datetime) implementation(libs.kotlinx.serialization.json) @@ -38,8 +39,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Core" - name = "core" + moduleMetadata { + artifactDescriptor { + name = "Core" + } } } diff --git a/backup/ui/build.gradle.kts b/backup/ui/build.gradle.kts index 67657b17..7e4a3ec8 100644 --- a/backup/ui/build.gradle.kts +++ b/backup/ui/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,8 +31,9 @@ android { } winds { - mavenPublish { - displayName = "UI" - name = "ui" + moduleMetadata { + artifactDescriptor { + name = "UI" + } } } diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts index 81b876f3..540f76d2 100644 --- a/bom/build.gradle.kts +++ b/bom/build.gradle.kts @@ -13,23 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.api.ArtifactIdFormat +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "BoM" - name = "bom" - - artifactIdElements = 1 + moduleMetadata { + isBom = true - version = createVersion(1, 0, 0) { - alphaRelease(4) + artifactDescriptor { + name = "BoM" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } + artifactIdFormat = ArtifactIdFormat.NAME_ONLY } - - defineBoM() } } diff --git a/build.gradle.kts b/build.gradle.kts index 5bcc985a..15aa3b49 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,15 +1,16 @@ import com.diffplug.spotless.LineEnding import com.vanniktech.maven.publish.SonatypeHost -import dev.teogor.winds.api.MavenPublish +import dev.teogor.winds.api.ArtifactIdFormat +import dev.teogor.winds.api.License +import dev.teogor.winds.api.NameFormat +import dev.teogor.winds.api.Person +import dev.teogor.winds.api.Scm +import dev.teogor.winds.api.TicketSystem import dev.teogor.winds.api.Winds -import dev.teogor.winds.api.getValue import dev.teogor.winds.api.model.DependencyType -import dev.teogor.winds.api.model.Developer -import dev.teogor.winds.api.model.LicenseType -import dev.teogor.winds.api.provider.Scm -import dev.teogor.winds.common.utils.hasWindsPlugin -import dev.teogor.winds.gradle.WindsPlugin -import dev.teogor.winds.gradle.utils.attachTo +import dev.teogor.winds.ktx.person +import dev.teogor.winds.ktx.scm +import dev.teogor.winds.ktx.ticketSystem import org.jetbrains.dokka.gradle.DokkaMultiModuleTask import org.jetbrains.dokka.gradle.DokkaPlugin @@ -22,8 +23,8 @@ buildscript { // Lists all plugins used throughout the project without applying them. plugins { - alias(libs.plugins.kotlin.jvm) apply false - alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.jetbrains.kotlin.jvm) apply false + alias(libs.plugins.jetbrains.kotlin.serialization) apply false alias(libs.plugins.android.application) apply false @@ -35,127 +36,87 @@ plugins { alias(libs.plugins.ksp) apply false alias(libs.plugins.querent) apply false - alias(libs.plugins.winds) apply true + alias(libs.plugins.teogor.winds) apply true alias(libs.plugins.about.libraries) apply false alias(libs.plugins.vanniktech.maven) apply true - alias(libs.plugins.dokka) apply true + alias(libs.plugins.jetbrains.dokka) apply true alias(libs.plugins.spotless) apply true - alias(libs.plugins.api.validator) apply true + alias(libs.plugins.jetbrains.binary.compatibility.validator) apply true + + alias(libs.plugins.ben.manes.versions) apply true + alias(libs.plugins.littlerobots.version.catalog.update) apply true } winds { - buildFeatures { - mavenPublish = true - + windsFeatures { + mavenPublishing = true docsGenerator = true + workflowSynthesizer = true } - mavenPublish { - displayName = "Ceres" - name = "ceres" - - canBePublished = false - - description = - "\uD83E\uDE90 Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications." - - groupId = "dev.teogor.ceres" - url = "https://source.teogor.dev/ceres" - artifactIdElements = 2 - - inceptionYear = 2022 + moduleMetadata { + name = "Ceres" + description = """ + |Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + """.trimMargin() - sourceControlManagement( - Scm.Git( - owner = "teogor", - repo = "ceres", - ), - ) + yearCreated = 2022 - addLicense(LicenseType.APACHE_2_0) + websiteUrl = "https://source.teogor.dev/ceres/" + apiDocsUrl = "https://source.teogor.dev/ceres/html/" - addDeveloper(TeogorDeveloper()) - } + artifactDescriptor { + group = "dev.teogor.ceres" + name = "ceres" + nameFormat = NameFormat.FULL + artifactIdFormat = ArtifactIdFormat.MODULE_NAME_ONLY + } - docsGenerator { - name = "Ceres" - identifier = "ceres" + // Providing SCM (Source Control Management) + scm { + owner = "teogor" + repository = "ceres" + } - excludeModules { - listOf( - ":app", - ) + // Providing Ticket System + ticketSystem { + owner = "teogor" + repository = "ceres" } - dependencyGatheringType = DependencyType.LOCAL + // Providing Licenses + licensedUnder(License.Apache2()) + + // Providing Persons + person { + id = "teogor" + name = "Teodor Grigor" + email = "open-source@teogor.dev" + url = "https://teogor.dev" + roles = listOf("Code Owner", "Developer", "Designer", "Maintainer") + timezone = "UTC+2" + organization = "Teogor" + organizationUrl = "https://github.com/teogor" + } } -} -whenWindsPluginConfigured { winds -> - val mavenPublish: MavenPublish by winds - mavenPublish.version?.let { - version = it.toString() + publishingOptions { + publish = false + enablePublicationSigning = true + optInForVanniktechPlugin = true + cascadePublish = true + sonatypeHost = SonatypeHost.S01 } - if (mavenPublish.canBePublished) { - mavenPublishing { - publishToMavenCentral(SonatypeHost.S01) - signAllPublications() - @Suppress("UnstableApiUsage") - pom { - coordinates( - groupId = mavenPublish.groupId!!, - artifactId = mavenPublish.artifactId!!, - version = mavenPublish.version!!.toString(), - ) - mavenPublish attachTo this - } - } + documentationBuilder { + htmlPath = "html/" + markdownNewlineSeparator = " " + dependencyGatheringType = DependencyType.NONE } } -/** - * Executes the provided action when the Winds plugin is configured for any descendant project. - * - * @param action the action to execute for each project with the Winds plugin configured - * - * **How to Use:** - * - * ```kotlin - * project.onWindsPluginConfigured { winds -> - * // Execute the action for each project with the Winds plugin configured - * winds.doSomethingUseful() - * } - * ``` - */ -fun Project.whenWindsPluginConfigured(action: Project.(Winds) -> Unit) { - subprojects.toList() - .filter { hasWindsPlugin() } - .forEach { project -> - project.afterEvaluate { - project.plugins.withType { - project.afterEvaluate { - val winds: Winds by project.extensions - project.action(winds) - } - } - } - } -} - -data class TeogorDeveloper( - override val id: String = "teogor", - override val name: String = "Teodor Grigor", - override val email: String = "open-source@teogor.dev", - override val url: String = "https://teogor.dev", - override val roles: List = listOf("Code Owner", "Developer", "Designer", "Maintainer"), - override val timezone: String = "UTC+2", - override val organization: String = "Teogor", - override val organizationUrl: String = "https://github.com/teogor", -) : Developer - val ktlintVersion = "0.50.0" val excludedProjects = listOf( @@ -245,13 +206,13 @@ subprojects { if (!excludedProjects.contains(project.name)) { afterEvaluate { val winds: Winds by extensions - val mavenPublish: MavenPublish by winds + val moduleMetadata = winds.moduleMetadata apply() tasks.withType().configureEach { failOnWarning.set(false) suppressInheritedMembers.set(true) - moduleName.set(mavenPublish.name) - moduleVersion.set(mavenPublish.version.toString()) + moduleName.set(moduleMetadata.name) + moduleVersion.set(moduleMetadata.artifactDescriptor?.version.toString()) val paths = project.path.split(":") val pathRef = paths.joinToString(separator = "/") outputDirectory.set(rootProject.projectDir.resolve("build/reference/${pathRef}")) @@ -261,13 +222,18 @@ subprojects { } tasks.dokkaHtmlMultiModule { - dependsOn(":backup:dokkaHtmlMultiModule") - dependsOn(":core:dokkaHtmlMultiModule") - dependsOn(":data:dokkaHtmlMultiModule") - dependsOn(":firebase:dokkaHtmlMultiModule") - dependsOn(":framework:dokkaHtmlMultiModule") - dependsOn(":monetisation:dokkaHtmlMultiModule") - dependsOn(":navigation:dokkaHtmlMultiModule") - dependsOn(":screen:dokkaHtmlMultiModule") - dependsOn(":ui:dokkaHtmlMultiModule") + childProjects.values.forEach { + dependsOn(":${it.name}:dokkaHtmlMultiModule") + } +} + +versionCatalogUpdate { + keep { + // keep versions without any library or plugin reference + keepUnusedVersions = true + // keep all libraries that aren't used in the project + keepUnusedLibraries = true + // keep all plugins that aren't used in the project + keepUnusedPlugins = true + } } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 85473aaa..b5f6bf0b 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Core" - name = "core" - - version = createVersion(1, 0, 0) { - alphaRelease(4) + moduleMetadata { + artifactDescriptor { + name = "Core" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } } } + + publishingOptions { + publish = false + } } diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index f2e1997d..85872440 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -35,8 +36,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Common" - name = "common" + moduleMetadata { + artifactDescriptor { + name = "Common" + } } } diff --git a/core/analytics/.gitignore b/core/core-analytics/.gitignore similarity index 100% rename from core/analytics/.gitignore rename to core/core-analytics/.gitignore diff --git a/core/analytics/api/analytics.api b/core/core-analytics/api/analytics.api similarity index 100% rename from core/analytics/api/analytics.api rename to core/core-analytics/api/analytics.api diff --git a/core/core-analytics/api/core-analytics.api b/core/core-analytics/api/core-analytics.api new file mode 100644 index 00000000..5397a906 --- /dev/null +++ b/core/core-analytics/api/core-analytics.api @@ -0,0 +1,97 @@ +public abstract class dev/teogor/ceres/core/analytics/AnalyticsEvent { + public static final field $stable I + public abstract fun getParams ()Ljava/util/List; + public abstract fun getType ()Ldev/teogor/ceres/core/analytics/Types; +} + +public final class dev/teogor/ceres/core/analytics/AnalyticsEvent$ScreenView : dev/teogor/ceres/core/analytics/AnalyticsEvent { + public static final field $stable I + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Ldev/teogor/ceres/core/analytics/AnalyticsEvent$ScreenView; + public static synthetic fun copy$default (Ldev/teogor/ceres/core/analytics/AnalyticsEvent$ScreenView;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ldev/teogor/ceres/core/analytics/AnalyticsEvent$ScreenView; + public fun equals (Ljava/lang/Object;)Z + public fun getParams ()Ljava/util/List; + public final fun getScreenClass ()Ljava/lang/String; + public final fun getScreenName ()Ljava/lang/String; + public fun getType ()Ldev/teogor/ceres/core/analytics/Types; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/core/analytics/AnalyticsEventKt { + public static final fun toLowercaseString (Ldev/teogor/ceres/core/analytics/ParamKeys;)Ljava/lang/String; + public static final fun toLowercaseString (Ldev/teogor/ceres/core/analytics/Types;)Ljava/lang/String; +} + +public abstract interface class dev/teogor/ceres/core/analytics/AnalyticsHelper { + public abstract fun logEvent (Ldev/teogor/ceres/core/analytics/AnalyticsEvent;)V +} + +public final class dev/teogor/ceres/core/analytics/AnalyticsHelperKt { + public static final fun getAnalyticsProvider ()Ldev/teogor/ceres/core/analytics/AnalyticsProvider; + public static final fun getLocalAnalyticsHelper ()Landroidx/compose/runtime/ProvidableCompositionLocal; +} + +public class dev/teogor/ceres/core/analytics/AnalyticsProvider { + public static final field $stable I + public fun ()V + public final fun addAnalyticsHelper (Ldev/teogor/ceres/core/analytics/AnalyticsHelper;)Ldev/teogor/ceres/core/analytics/AnalyticsHelper; + public final fun getAnalyticsHelper (Ljava/lang/Class;)Ldev/teogor/ceres/core/analytics/AnalyticsHelper; + public final fun getAnalyticsHelpers ()Ljava/util/List; +} + +public final class dev/teogor/ceres/core/analytics/AnalyticsProviderKt { + public static final fun get (Ldev/teogor/ceres/core/analytics/AnalyticsProvider;Lkotlin/reflect/KClass;)Ldev/teogor/ceres/core/analytics/AnalyticsHelper; + public static final fun plusAssign (Ldev/teogor/ceres/core/analytics/AnalyticsProvider;Ldev/teogor/ceres/core/analytics/AnalyticsHelper;)V +} + +public final class dev/teogor/ceres/core/analytics/DefaultAnalyticsHelper : dev/teogor/ceres/core/analytics/AnalyticsHelper { + public static final field $stable I + public fun ()V + public fun logEvent (Ldev/teogor/ceres/core/analytics/AnalyticsEvent;)V +} + +public abstract interface annotation class dev/teogor/ceres/core/analytics/ExperimentalAnalyticsApi : java/lang/annotation/Annotation { +} + +public final class dev/teogor/ceres/core/analytics/Param { + public static final field $stable I + public fun (Ldev/teogor/ceres/core/analytics/ParamKeys;Ljava/lang/String;)V + public final fun component1 ()Ldev/teogor/ceres/core/analytics/ParamKeys; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ldev/teogor/ceres/core/analytics/ParamKeys;Ljava/lang/String;)Ldev/teogor/ceres/core/analytics/Param; + public static synthetic fun copy$default (Ldev/teogor/ceres/core/analytics/Param;Ldev/teogor/ceres/core/analytics/ParamKeys;Ljava/lang/String;ILjava/lang/Object;)Ldev/teogor/ceres/core/analytics/Param; + public fun equals (Ljava/lang/Object;)Z + public final fun getKey ()Ldev/teogor/ceres/core/analytics/ParamKeys; + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/core/analytics/ParamKeys : java/lang/Enum { + public static final field SCREEN_CLASS Ldev/teogor/ceres/core/analytics/ParamKeys; + public static final field SCREEN_NAME Ldev/teogor/ceres/core/analytics/ParamKeys; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/teogor/ceres/core/analytics/ParamKeys; + public static fun values ()[Ldev/teogor/ceres/core/analytics/ParamKeys; +} + +public final class dev/teogor/ceres/core/analytics/StubAnalyticsHelper : dev/teogor/ceres/core/analytics/AnalyticsHelper { + public static final field $stable I + public fun ()V + public fun logEvent (Ldev/teogor/ceres/core/analytics/AnalyticsEvent;)V +} + +public final class dev/teogor/ceres/core/analytics/Types : java/lang/Enum { + public static final field SCREEN_VIEW Ldev/teogor/ceres/core/analytics/Types; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/teogor/ceres/core/analytics/Types; + public static fun values ()[Ldev/teogor/ceres/core/analytics/Types; +} + +public final class dev/teogor/ceres/core/analytics/composables/UiEventsKt { + public static final fun TrackScreenViewEvent (Ljava/lang/String;Ljava/lang/String;Ldev/teogor/ceres/core/analytics/AnalyticsHelper;Landroidx/compose/runtime/Composer;II)V +} + diff --git a/core/analytics/build.gradle.kts b/core/core-analytics/build.gradle.kts similarity index 90% rename from core/analytics/build.gradle.kts rename to core/core-analytics/build.gradle.kts index d963ceaa..d3f79fa0 100644 --- a/core/analytics/build.gradle.kts +++ b/core/core-analytics/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -34,8 +35,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Analytics" - name = "analytics" + moduleMetadata { + artifactDescriptor { + name = "Analytics" + } } } diff --git a/core/analytics/consumer-rules.pro b/core/core-analytics/consumer-rules.pro similarity index 100% rename from core/analytics/consumer-rules.pro rename to core/core-analytics/consumer-rules.pro diff --git a/core/analytics/proguard-rules.pro b/core/core-analytics/proguard-rules.pro similarity index 100% rename from core/analytics/proguard-rules.pro rename to core/core-analytics/proguard-rules.pro diff --git a/core/analytics/src/main/AndroidManifest.xml b/core/core-analytics/src/main/AndroidManifest.xml similarity index 100% rename from core/analytics/src/main/AndroidManifest.xml rename to core/core-analytics/src/main/AndroidManifest.xml diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsEvent.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsEvent.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsEvent.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsEvent.kt diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsHelper.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsHelper.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsHelper.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsHelper.kt diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsProvider.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsProvider.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsProvider.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/AnalyticsProvider.kt diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/DefaultAnalyticsHelper.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/DefaultAnalyticsHelper.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/DefaultAnalyticsHelper.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/DefaultAnalyticsHelper.kt diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/ExperimentalAnalyticsApi.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/ExperimentalAnalyticsApi.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/ExperimentalAnalyticsApi.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/ExperimentalAnalyticsApi.kt diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/StubAnalyticsHelper.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/StubAnalyticsHelper.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/StubAnalyticsHelper.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/StubAnalyticsHelper.kt diff --git a/core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/composables/UiEvents.kt b/core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/composables/UiEvents.kt similarity index 100% rename from core/analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/composables/UiEvents.kt rename to core/core-analytics/src/main/kotlin/dev/teogor/ceres/core/analytics/composables/UiEvents.kt diff --git a/core/foundation/build.gradle.kts b/core/foundation/build.gradle.kts index db7f38e6..0b38b567 100644 --- a/core/foundation/build.gradle.kts +++ b/core/foundation/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -34,8 +35,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Foundation" - name = "foundation" + moduleMetadata { + artifactDescriptor { + name = "Foundation" + } } } diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index 6da89569..6c281f99 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -18,7 +18,7 @@ plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,18 +29,14 @@ android { } dependencies { - implementation(project(":core:foundation")) + implementation(projects.core.foundation) implementation(libs.kotlinx.coroutines.android) } winds { - mavenPublish { - displayName = "Network" - name = "network" - - // todo overrides to 0 - // version = copyVersion { - // setIsDeprecated() - // } + moduleMetadata { + artifactDescriptor { + name = "Network" + } } } diff --git a/core/notifications/build.gradle.kts b/core/notifications/build.gradle.kts index bcda1455..8f8abae3 100644 --- a/core/notifications/build.gradle.kts +++ b/core/notifications/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,8 +31,9 @@ android { } winds { - mavenPublish { - displayName = "Notifications" - name = "notifications" + moduleMetadata { + artifactDescriptor { + name = "Notifications" + } } } diff --git a/core/register/api/register.api b/core/register/api/register.api index dbb82704..411598b4 100644 --- a/core/register/api/register.api +++ b/core/register/api/register.api @@ -97,23 +97,6 @@ public final class dev/teogor/ceres/core/register/SupportedDialects$DefaultImpls public static synthetic fun getExonyms$default (Ldev/teogor/ceres/core/register/SupportedDialects;Ljava/util/Locale;ILjava/lang/Object;)Ljava/util/Map; } -public final class dev/teogor/ceres/core/register/SupportedDialects2 : dev/teogor/ceres/core/register/SupportedDialects { - public static final field $stable I - public fun ()V - public fun getCountryCodesForLanguage (Ljava/lang/String;)Ljava/util/List; - public fun getCountryNamesForLanguage (Ljava/lang/String;)Ljava/util/List; - public fun getCurrentLocale ()Ljava/util/Locale; - public fun getDefaultLocale ()Ljava/util/Locale; - public fun getDefaultLocaleLanguage ()Ljava/lang/String; - public fun getEndonyms ()Ljava/util/Map; - public fun getExonyms (Ljava/lang/String;)Ljava/util/Map; - public fun getExonyms (Ljava/util/Locale;)Ljava/util/Map; - public fun getSupportedDialects ()Ljava/util/List; - public fun getSupportedLanguages ()Ljava/util/List; - public fun hasMultipleCountriesForLanguage (Ljava/lang/String;)Z - public fun isLanguageSelected (Ljava/lang/String;)Z -} - public final class dev/teogor/ceres/core/register/SupportedDialectsKt { public static final fun getLocalSupportedDialects ()Ldev/teogor/ceres/core/register/ProvidableRegistryLocal; } diff --git a/core/register/build.gradle.kts b/core/register/build.gradle.kts index b4e28b65..4f04f2cb 100644 --- a/core/register/build.gradle.kts +++ b/core/register/build.gradle.kts @@ -13,27 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import org.gradle.kotlin.dsl.libs -/* - * Copyright 2023 teogor (Teodor Grigor) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -50,8 +34,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Register" - name = "register" + moduleMetadata { + artifactDescriptor { + name = "Register" + } } } diff --git a/core/register/src/main/kotlin/dev/teogor/ceres/core/register/SupportedDialects.kt b/core/register/src/main/kotlin/dev/teogor/ceres/core/register/SupportedDialects.kt index e9ec440c..c01e6fed 100644 --- a/core/register/src/main/kotlin/dev/teogor/ceres/core/register/SupportedDialects.kt +++ b/core/register/src/main/kotlin/dev/teogor/ceres/core/register/SupportedDialects.kt @@ -18,269 +18,6 @@ package dev.teogor.ceres.core.register import java.util.Locale -class SupportedDialects2 : SupportedDialects { - - private val supportedLanguages = listOf( - "ar", "de", "en", "es", - "hi", "ja", "ko", "nl", - "ro", "zh", - ) - - @Deprecated("supportedLocales") - private val tags: List = listOf( - "ar", - "de-DE", - "en-GB", - "en-US", - "es", - "hi", - "ja", - "ko-KR", - "nl-NL", - "ro-RO", - "zh-CN", - ) - - private val endonyms: Map = mapOf( - "ar" to "العربية", - "de-DE" to "Deutsch (Deutschland)", - "en-GB" to "English (United Kingdom)", - "en-US" to "English (United States)", - "es" to "español", - "hi" to "हिन्दी", - "ja" to "日本語", - "ko-KR" to "한국어 (대한민국)", - "nl-NL" to "Nederlands (Nederland)", - "ro-RO" to "română (România)", - "zh-CN" to "中文 (中国)", - ) - - private val exonyms: Map> = mapOf( - "ar" to mapOf( - "ar" to "العربية", - "de-DE" to "الألمانية (ألمانيا)", - "en-GB" to "الإنجليزية (المملكة المتحدة)", - "en-US" to "الإنجليزية (الولايات المتحدة)", - "es" to "الإسبانية", - "hi" to "الهندية", - "ja" to "اليابانية", - "ko-KR" to "الكورية (كوريا الجنوبية)", - "nl-NL" to "الهولندية (هولندا)", - "ro-RO" to "الرومانية (رومانيا)", - "zh-CN" to "الصينية (الصين)", - ), - "de-DE" to mapOf( - "ar" to "Arabisch", - "de-DE" to "Deutsch (Deutschland)", - "en-GB" to "Englisch (Vereinigtes Königreich)", - "en-US" to "Englisch (Vereinigte Staaten)", - "es" to "Spanisch", - "hi" to "Hindi", - "ja" to "Japanisch", - "ko-KR" to "Koreanisch (Südkorea)", - "nl-NL" to "Niederländisch (Niederlande)", - "ro-RO" to "Rumänisch (Rumänien)", - "zh-CN" to "Chinesisch (China)", - ), - "en-GB" to mapOf( - "ar" to "Arabic", - "de-DE" to "German (Germany)", - "en-GB" to "English (United Kingdom)", - "en-US" to "English (United States)", - "es" to "Spanish", - "hi" to "Hindi", - "ja" to "Japanese", - "ko-KR" to "Korean (South Korea)", - "nl-NL" to "Dutch (Netherlands)", - "ro-RO" to "Romanian (Romania)", - "zh-CN" to "Chinese (China)", - ), - "en-US" to mapOf( - "ar" to "Arabic", - "de-DE" to "German (Germany)", - "en-GB" to "English (United Kingdom)", - "en-US" to "English (United States)", - "es" to "Spanish", - "hi" to "Hindi", - "ja" to "Japanese", - "ko-KR" to "Korean (South Korea)", - "nl-NL" to "Dutch (Netherlands)", - "ro-RO" to "Romanian (Romania)", - "zh-CN" to "Chinese (China)", - ), - "es" to mapOf( - "ar" to "árabe", - "de-DE" to "alemán (Alemania)", - "en-GB" to "inglés (Reino Unido)", - "en-US" to "inglés (Estados Unidos)", - "es" to "español", - "hi" to "hindi", - "ja" to "japonés", - "ko-KR" to "coreano (Corea del Sur)", - "nl-NL" to "neerlandés (Países Bajos)", - "ro-RO" to "rumano (Rumanía)", - "zh-CN" to "chino (China)", - ), - "hi" to mapOf( - "ar" to "अरबी", - "de-DE" to "जर्मन (जर्मनी)", - "en-GB" to "अंग्रेज़ी (यूनाइटेड किंगडम)", - "en-US" to "अंग्रेज़ी (संयुक्त राज्य)", - "es" to "स्पेनी", - "hi" to "हिन्दी", - "ja" to "जापानी", - "ko-KR" to "कोरियाई (दक्षिण कोरिया)", - "nl-NL" to "डच (नीदरलैंड)", - "ro-RO" to "रोमानियाई (रोमानिया)", - "zh-CN" to "चीनी (चीन)", - ), - "ja" to mapOf( - "ar" to "アラビア語", - "de-DE" to "ドイツ語 (ドイツ)", - "en-GB" to "英語 (イギリス)", - "en-US" to "英語 (アメリカ合衆国)", - "es" to "スペイン語", - "hi" to "ヒンディー語", - "ja" to "日本語", - "ko-KR" to "韓国語 (韓国)", - "nl-NL" to "オランダ語 (オランダ)", - "ro-RO" to "ルーマニア語 (ルーマニア)", - "zh-CN" to "中国語 (中国)", - ), - "ko-KR" to mapOf( - "ar" to "아랍어", - "de-DE" to "독일어 (독일)", - "en-GB" to "영어 (영국)", - "en-US" to "영어 (미국)", - "es" to "스페인어", - "hi" to "힌디어", - "ja" to "일본어", - "ko-KR" to "한국어 (대한민국)", - "nl-NL" to "네덜란드어 (네덜란드)", - "ro-RO" to "루마니아어 (루마니아)", - "zh-CN" to "중국어 (중국)", - ), - "nl-NL" to mapOf( - "ar" to "Arabisch", - "de-DE" to "Duits (Duitsland)", - "en-GB" to "Engels (Verenigd Koninkrijk)", - "en-US" to "Engels (Verenigde Staten)", - "es" to "Spaans", - "hi" to "Hindi", - "ja" to "Japans", - "ko-KR" to "Koreaans (Zuid-Korea)", - "nl-NL" to "Nederlands (Nederland)", - "ro-RO" to "Roemeens (Roemenië)", - "zh-CN" to "Chinees (China)", - ), - "ro-RO" to mapOf( - "ar" to "arabă", - "de-DE" to "germană (Germania)", - "en-GB" to "engleză (Regatul Unit)", - "en-US" to "engleză (Statele Unite ale Americii)", - "es" to "spaniolă", - "hi" to "hindi", - "ja" to "japoneză", - "ko-KR" to "coreeană (Coreea de Sud)", - "nl-NL" to "neerlandeză (Țările de Jos)", - "ro-RO" to "română (România)", - "zh-CN" to "chineză (China)", - ), - "zh-CN" to mapOf( - "ar" to "阿拉伯语", - "de-DE" to "德语 (德国)", - "en-GB" to "英语 (英国)", - "en-US" to "英语 (美国)", - "es" to "西班牙语", - "hi" to "印地语", - "ja" to "日语", - "ko-KR" to "韩语 (韩国)", - "nl-NL" to "荷兰语 (荷兰)", - "ro-RO" to "罗马尼亚语 (罗马尼亚)", - "zh-CN" to "中文 (中国)", - ), - ) - - private fun errorTagNotFound(errorMessage: String): Nothing = throw NoSuchElementException( - """ - |The specified language tag ("$errorMessage") was not located in your supported locales. - |Ensure it's included within the 'supportedLanguages' property in your Gradle setup. - | - |```kt - |buildOptions { - | buildFeatures { - | addSupportedLanguages { - | listOf( - | // add it here - | "$errorMessage", - | ) - | } - | } - |} - |``` - """.trimMargin(), - ) - - override fun getDefaultLocaleLanguage(): String = "en-US" - - override fun getDefaultLocale(): Locale = Locale.forLanguageTag("en-US") - - /** - * Retrieves a map of supported languages and their corresponding names by their language code. - * The returned map contains language codes as keys and their respective language names as values. - * - * @return A [Map] where keys represent the language codes and values indicate the corresponding - * language names. - */ - override fun getSupportedLanguages() = supportedLanguages - - /** - * @returns List of language tags supported by your project. - */ - override fun getSupportedDialects(): List = tags - - /** - * @returns Map of language tags and their written endoynms. - * (Endonyms are the preferred name of a language as written in that language.) - */ - override fun getEndonyms(): Map = endonyms - - /** - * @param languageTag a Unicode-formatted language tag in [String] form such as "en-US". - * @returns Map of language tags and their written exoynms according to the resolved languageTag. - * (Exonyms are the name of a language written in another language.) - */ - override fun getExonyms(languageTag: String): Map = - exonyms[languageTag] ?: exonyms[getDefaultLocaleLanguage()] ?: errorTagNotFound(languageTag) - - /** - * @param locale a Java [Locale] object. - * @returns Map of language tags and their written exoynms according to the resolved locale. - * (Exonyms are the name of a language written in another language.) - */ - override fun getExonyms(locale: Locale): Map = - exonyms[locale.toLanguageTag()] ?: exonyms[getDefaultLocaleLanguage()] ?: errorTagNotFound( - locale.toLanguageTag(), - ) - - override fun getCountryCodesForLanguage(languageCode: String): List = tags.filter { - it.startsWith(languageCode) - } - - override fun getCountryNamesForLanguage(languageCode: String): List = - getCountryCodesForLanguage(languageCode).mapNotNull { endonyms[it] } - - override fun hasMultipleCountriesForLanguage(languageCode: String): Boolean = - getCountryCodesForLanguage(languageCode).size > 1 - - override fun getCurrentLocale(): Locale = Locale.getDefault() - - override fun isLanguageSelected(languageCode: String): Boolean { - val currentLocale = Locale.getDefault().toLanguageTag() - return languageCode == currentLocale || currentLocale.startsWith(languageCode) - } -} - interface SupportedDialects { /** diff --git a/core/runtime/build.gradle.kts b/core/runtime/build.gradle.kts index ee4205d8..139d4709 100644 --- a/core/runtime/build.gradle.kts +++ b/core/runtime/build.gradle.kts @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -27,13 +28,14 @@ android { } dependencies { - api(project(":core:startup")) - api(project(":core:foundation")) + api(projects.core.startup) + api(projects.core.foundation) } winds { - mavenPublish { - displayName = "Runtime" - name = "runtime" + moduleMetadata { + artifactDescriptor { + name = "Runtime" + } } } diff --git a/core/startup/build.gradle.kts b/core/startup/build.gradle.kts index 3e1d0ede..02bfd8bf 100644 --- a/core/startup/build.gradle.kts +++ b/core/startup/build.gradle.kts @@ -13,10 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -32,8 +33,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Startup" - name = "startup" + moduleMetadata { + artifactDescriptor { + name = "Start Up" + } } } diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 357cda7c..343e5d35 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Data" - name = "data" - - version = createVersion(1, 0, 0) { - alphaRelease(2) + moduleMetadata { + artifactDescriptor { + name = "Data" + version = createVersion(1, 0, 0) { + alphaRelease(2) + } } } + + publishingOptions { + publish = false + } } diff --git a/data/compose/.gitignore b/data/data-compose/.gitignore similarity index 100% rename from data/compose/.gitignore rename to data/data-compose/.gitignore diff --git a/data/compose/api/compose.api b/data/data-compose/api/compose.api similarity index 100% rename from data/compose/api/compose.api rename to data/data-compose/api/compose.api diff --git a/data/compose/consumer-rules.pro b/data/data-compose/api/data-compose.api similarity index 100% rename from data/compose/consumer-rules.pro rename to data/data-compose/api/data-compose.api diff --git a/data/compose/build.gradle.kts b/data/data-compose/build.gradle.kts similarity index 83% rename from data/compose/build.gradle.kts rename to data/data-compose/build.gradle.kts index 01019851..cbfbd9a3 100644 --- a/data/compose/build.gradle.kts +++ b/data/data-compose/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -28,15 +29,16 @@ android { } dependencies { - api(project(":data:database")) - api(project(":data:datastore")) + implementation(projects.data.database) + implementation(projects.data.datastore) implementation(libs.androidx.compose.foundation) } winds { - mavenPublish { - displayName = "Compose" - name = "compose" + moduleMetadata { + artifactDescriptor { + name = "Compose" + } } } diff --git a/firebase/analytics/consumer-rules.pro b/data/data-compose/consumer-rules.pro similarity index 100% rename from firebase/analytics/consumer-rules.pro rename to data/data-compose/consumer-rules.pro diff --git a/data/compose/proguard-rules.pro b/data/data-compose/proguard-rules.pro similarity index 100% rename from data/compose/proguard-rules.pro rename to data/data-compose/proguard-rules.pro diff --git a/data/compose/src/main/AndroidManifest.xml b/data/data-compose/src/main/AndroidManifest.xml similarity index 100% rename from data/compose/src/main/AndroidManifest.xml rename to data/data-compose/src/main/AndroidManifest.xml diff --git a/data/compose/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt b/data/data-compose/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt similarity index 67% rename from data/compose/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt rename to data/data-compose/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt index d76e9a04..2f8850e8 100644 --- a/data/compose/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt +++ b/data/data-compose/src/main/kotlin/dev/teogor/ceres/data/compose/DatastoreExt.kt @@ -22,6 +22,18 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import kotlinx.coroutines.flow.Flow +/** + * Remembers the value of a preference flow and updates it whenever the flow emits a new value. + * + * This function is useful for composing UIs that need to react to changes in preferences. It + * ensures that the UI state remains consistent with the latest preference value. + * + * TODO Migrate to package .datastore for enhanced data storage capabilities. + * + * @param preferenceFlow The flow of preference values to observe. + * @param initialValue The initial value to use before the flow emits a value. + * @return The current value of the preference flow. + */ @Composable inline fun rememberPreference( preferenceFlow: Flow, diff --git a/data/database/build.gradle.kts b/data/database/build.gradle.kts index 12b3dd0a..f54562c7 100644 --- a/data/database/build.gradle.kts +++ b/data/database/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("dev.teogor.ceres.android.room") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,8 +30,9 @@ android { } winds { - mavenPublish { - displayName = "Database" - name = "database" + moduleMetadata { + artifactDescriptor { + name = "Database" + } } } diff --git a/data/datastore/build.gradle.kts b/data/datastore/build.gradle.kts index ca28d260..b41a5fe9 100644 --- a/data/datastore/build.gradle.kts +++ b/data/datastore/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) alias(libs.plugins.protobuf) } @@ -50,8 +51,8 @@ protobuf { } dependencies { - api(project(":core:startup")) - api(project(":core:foundation")) + api(projects.core.startup) + api(projects.core.foundation) api(libs.androidx.dataStore.preferences) api(libs.androidx.dataStore.core) @@ -63,8 +64,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Datastore" - name = "datastore" + moduleMetadata { + artifactDescriptor { + name = "Datastore" + } } } diff --git a/docs/assets/winds/ceres-backup.json b/docs/assets/winds/ceres-backup.json new file mode 100644 index 00000000..4c4eef09 --- /dev/null +++ b/docs/assets/winds/ceres-backup.json @@ -0,0 +1,37 @@ +[ + { + "module": "dev.teogor.ceres:ceres-backup", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132, + "dependencies": [ + { + "module": "dev.teogor.ceres:backup-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:backup-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-bom.json b/docs/assets/winds/ceres-bom.json new file mode 100644 index 00000000..104b4a44 --- /dev/null +++ b/docs/assets/winds/ceres-bom.json @@ -0,0 +1,1554 @@ +[ + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:backup-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:backup-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-register", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:data-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:data-database", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:data-datastore", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:firebase-crashlytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:firebase-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:firebase-remote-config", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:framework-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:framework-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:monetisation-admob", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:monetisation-ads", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:monetisation-messaging", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-events", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "isDeprecated": true, + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-screen", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:screen-builder", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:screen-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:screen-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-design-system", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-icons", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-spectrum", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-theme", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + } + ] + }, + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787, + "dependencies": [ + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 5 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:backup-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:backup-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-register", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:data-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:data-database", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:data-datastore", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:firebase-crashlytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:firebase-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:firebase-remote-config", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:framework-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:framework-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:monetisation-admob", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:monetisation-ads", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:monetisation-messaging", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-events", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "isDeprecated": true, + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-screen", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:navigation-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:screen-builder", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:screen-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:screen-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-design-system", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-icons", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-spectrum", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-theme", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + }, + { + "module": "dev.teogor.ceres:ui-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1713201177 + } + ] + }, + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957, + "dependencies": [ + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 5 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:backup-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:backup-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:data-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:data-database", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:data-datastore", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:firebase-crashlytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:firebase-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:firebase-remote-config", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:framework-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:framework-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:monetisation-admob", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:monetisation-ads", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:monetisation-messaging", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:navigation-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:navigation-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:navigation-events", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "isDeprecated": true, + "versionQualifier": 3 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:navigation-screen", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:navigation-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:screen-builder", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:screen-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:screen-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:ui-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:ui-design-system", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:ui-icons", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:ui-spectrum", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:ui-theme", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:ui-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + } + ] + }, + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132, + "dependencies": [ + { + "module": "dev.teogor.ceres:bom", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 5 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:backup-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:backup-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:data-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:data-database", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:data-datastore", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:firebase-crashlytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:firebase-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:firebase-remote-config", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:framework-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:framework-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:monetisation-admob", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:monetisation-messaging", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:navigation-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:navigation-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:navigation-events", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "isDeprecated": true, + "versionQualifier": 3 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:navigation-screen", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:navigation-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:screen-builder", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:screen-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:screen-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:ui-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:ui-design-system", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:ui-icons", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:ui-spectrum", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:ui-theme", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:ui-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + } + ] + } +] diff --git a/docs/assets/winds/ceres-core.json b/docs/assets/winds/ceres-core.json new file mode 100644 index 00000000..1caf3af9 --- /dev/null +++ b/docs/assets/winds/ceres-core.json @@ -0,0 +1,307 @@ +[ + { + "module": "dev.teogor.ceres:ceres-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:core-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-register", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + } + ] + }, + { + "module": "dev.teogor.ceres:ceres-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787, + "dependencies": [ + { + "module": "dev.teogor.ceres:core-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787 + }, + { + "module": "dev.teogor.ceres:core-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1696597787 + } + ] + }, + { + "module": "dev.teogor.ceres:ceres-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957, + "dependencies": [ + { + "module": "dev.teogor.ceres:core-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1696261957 + } + ] + }, + { + "module": "dev.teogor.ceres:ceres-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132, + "dependencies": [ + { + "module": "dev.teogor.ceres:core-network", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-notifications", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-runtime", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + }, + { + "module": "dev.teogor.ceres:core-start-up", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 1 + }, + "date": 1695925132 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-data.json b/docs/assets/winds/ceres-data.json new file mode 100644 index 00000000..fec06ce6 --- /dev/null +++ b/docs/assets/winds/ceres-data.json @@ -0,0 +1,48 @@ +[ + { + "module": "dev.teogor.ceres:ceres-data", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:data-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:data-database", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:data-datastore", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 2 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-firebase.json b/docs/assets/winds/ceres-firebase.json new file mode 100644 index 00000000..7ee9b950 --- /dev/null +++ b/docs/assets/winds/ceres-firebase.json @@ -0,0 +1,48 @@ +[ + { + "module": "dev.teogor.ceres:ceres-firebase", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:firebase-crashlytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:firebase-analytics", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:firebase-remote-config", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-framework.json b/docs/assets/winds/ceres-framework.json new file mode 100644 index 00000000..1a721366 --- /dev/null +++ b/docs/assets/winds/ceres-framework.json @@ -0,0 +1,37 @@ +[ + { + "module": "dev.teogor.ceres:ceres-framework", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:framework-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:framework-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-monetisation.json b/docs/assets/winds/ceres-monetisation.json new file mode 100644 index 00000000..7d1870c6 --- /dev/null +++ b/docs/assets/winds/ceres-monetisation.json @@ -0,0 +1,48 @@ +[ + { + "module": "dev.teogor.ceres:ceres-monetisation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:monetisation-admob", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:monetisation-ads", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:monetisation-messaging", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-navigation.json b/docs/assets/winds/ceres-navigation.json new file mode 100644 index 00000000..7185438a --- /dev/null +++ b/docs/assets/winds/ceres-navigation.json @@ -0,0 +1,71 @@ +[ + { + "module": "dev.teogor.ceres:ceres-navigation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:navigation-common", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:navigation-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:navigation-events", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "isDeprecated": true, + "versionQualifier": 3 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:navigation-screen", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:navigation-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 3 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-screen.json b/docs/assets/winds/ceres-screen.json new file mode 100644 index 00000000..80c5ca85 --- /dev/null +++ b/docs/assets/winds/ceres-screen.json @@ -0,0 +1,48 @@ +[ + { + "module": "dev.teogor.ceres:ceres-screen", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:screen-builder", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:screen-core", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:screen-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/assets/winds/ceres-ui.json b/docs/assets/winds/ceres-ui.json new file mode 100644 index 00000000..d2e275c3 --- /dev/null +++ b/docs/assets/winds/ceres-ui.json @@ -0,0 +1,81 @@ +[ + { + "module": "dev.teogor.ceres:ceres-ui", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300, + "dependencies": [ + { + "module": "dev.teogor.ceres:ui-compose", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:ui-design-system", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:ui-icons", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:ui-spectrum", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:ui-theme", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + }, + { + "module": "dev.teogor.ceres:ui-foundation", + "version": { + "major": 1, + "minor": 0, + "patch": 0, + "flag": "Alpha", + "versionQualifier": 4 + }, + "date": 1700741300 + } + ] + } +] \ No newline at end of file diff --git a/docs/backup/index.md b/docs/backup/index.md new file mode 100644 index 00000000..2b55bec8 --- /dev/null +++ b/docs/backup/index.md @@ -0,0 +1,96 @@ +# Backup + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Backup + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Backup dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-backup-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-backup-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Backup Dependencies Manually + +To use Backup in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresBackup = "1.0.0-alpha01" + + implementation "dev.teogor.ceres:backup-core:$teogorCeresBackup" + implementation "dev.teogor.ceres:backup-ui:$teogorCeresBackup" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresBackup = "1.0.0-alpha01" + + implementation("dev.teogor.ceres:backup-core:$teogorCeresBackup") + implementation("dev.teogor.ceres:backup-ui:$teogorCeresBackup") + } + ``` + +### Managing Backup Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Backup dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-backup = "1.0.0-alpha01" + + [libraries] + teogor-ceres-backup-core = { group = "dev.teogor.ceres", name = "backup-core", version.ref = "teogor-ceres-backup" } + teogor-ceres-backup-ui = { group = "dev.teogor.ceres", name = "backup-ui", version.ref = "teogor-ceres-backup" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-backup = "1.0.0-alpha01" + + [libraries] + teogor-ceres-backup-core = { module = "dev.teogor.ceres:backup-core", version.ref = "teogor-ceres-backup" } + teogor-ceres-backup-ui = { module = "dev.teogor.ceres:backup-ui", version.ref = "teogor-ceres-backup" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.backup.core + implementation libs.teogor.ceres.backup.ui + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.backup.core) + implementation(libs.teogor.ceres.backup.ui) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/bom/bom-mapping.md b/docs/bom/bom-mapping.md new file mode 100644 index 00000000..f5e1b242 --- /dev/null +++ b/docs/bom/bom-mapping.md @@ -0,0 +1,46 @@ +# BOM to library version mapping + +[//]: # (REGION-BOM-TO-LIBRARY-VERSION-MAPPING) + +**BOM version 1.0.0-4** + +| Library group | BOM Versions | +|:------------------------------------------|:---------------:| +| dev.teogor.ceres:backup-core | 1.0.0-alpha01 | +| dev.teogor.ceres:backup-ui | 1.0.0-alpha01 | +| dev.teogor.ceres:core-analytics | 1.0.0-alpha04 | +| dev.teogor.ceres:core-common | 1.0.0-alpha04 | +| dev.teogor.ceres:core-foundation | 1.0.0-alpha04 | +| dev.teogor.ceres:core-network | 1.0.0-alpha04 | +| dev.teogor.ceres:core-notifications | 1.0.0-alpha04 | +| dev.teogor.ceres:core-register | 1.0.0-alpha04 | +| dev.teogor.ceres:core-runtime | 1.0.0-alpha04 | +| dev.teogor.ceres:core-start-up | 1.0.0-alpha04 | +| dev.teogor.ceres:data-compose | 1.0.0-alpha02 | +| dev.teogor.ceres:data-database | 1.0.0-alpha02 | +| dev.teogor.ceres:data-datastore | 1.0.0-alpha02 | +| dev.teogor.ceres:firebase-analytics | 1.0.0-alpha04 | +| dev.teogor.ceres:firebase-crashlytics | 1.0.0-alpha04 | +| dev.teogor.ceres:firebase-remote-config | 1.0.0-alpha04 | +| dev.teogor.ceres:framework-core | 1.0.0-alpha04 | +| dev.teogor.ceres:framework-ui | 1.0.0-alpha04 | +| dev.teogor.ceres:monetisation-admob | 1.0.0-alpha04 | +| dev.teogor.ceres:monetisation-ads | 1.0.0-alpha04 | +| dev.teogor.ceres:monetisation-messaging | 1.0.0-alpha04 | +| dev.teogor.ceres:navigation-common | 1.0.0-alpha03 | +| dev.teogor.ceres:navigation-core | 1.0.0-alpha03 | +| dev.teogor.ceres:navigation-events | 1.0.0-alpha03 | +| dev.teogor.ceres:navigation-screen | 1.0.0-alpha03 | +| dev.teogor.ceres:navigation-ui | 1.0.0-alpha03 | +| dev.teogor.ceres:screen-builder | 1.0.0-alpha04 | +| dev.teogor.ceres:screen-core | 1.0.0-alpha04 | +| dev.teogor.ceres:screen-ui | 1.0.0-alpha04 | +| dev.teogor.ceres:ui-compose | 1.0.0-alpha04 | +| dev.teogor.ceres:ui-design-system | 1.0.0-alpha04 | +| dev.teogor.ceres:ui-foundation | 1.0.0-alpha04 | +| dev.teogor.ceres:ui-icons | 1.0.0-alpha04 | +| dev.teogor.ceres:ui-spectrum | 1.0.0-alpha04 | +| dev.teogor.ceres:ui-theme | 1.0.0-alpha04 | + +[//]: # (REGION-BOM-TO-LIBRARY-VERSION-MAPPING) + diff --git a/docs/bom/implementation.md b/docs/bom/implementation.md new file mode 100644 index 00000000..45183dfc --- /dev/null +++ b/docs/bom/implementation.md @@ -0,0 +1,300 @@ +# BoM + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with BoM + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding BoM dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-bom-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-bom-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding BoM Dependencies Manually + +To use BoM in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresBom = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:bom:$teogorCeresBom" + implementation "dev.teogor.ceres:backup-core:$teogorCeresBom" + implementation "dev.teogor.ceres:backup-ui:$teogorCeresBom" + implementation "dev.teogor.ceres:core-common:$teogorCeresBom" + implementation "dev.teogor.ceres:core-analytics:$teogorCeresBom" + implementation "dev.teogor.ceres:core-foundation:$teogorCeresBom" + implementation "dev.teogor.ceres:core-network:$teogorCeresBom" + implementation "dev.teogor.ceres:core-notifications:$teogorCeresBom" + implementation "dev.teogor.ceres:core-register:$teogorCeresBom" + implementation "dev.teogor.ceres:core-runtime:$teogorCeresBom" + implementation "dev.teogor.ceres:core-start-up:$teogorCeresBom" + implementation "dev.teogor.ceres:data-compose:$teogorCeresBom" + implementation "dev.teogor.ceres:data-database:$teogorCeresBom" + implementation "dev.teogor.ceres:data-datastore:$teogorCeresBom" + implementation "dev.teogor.ceres:firebase-crashlytics:$teogorCeresBom" + implementation "dev.teogor.ceres:firebase-analytics:$teogorCeresBom" + implementation "dev.teogor.ceres:firebase-remote-config:$teogorCeresBom" + implementation "dev.teogor.ceres:framework-core:$teogorCeresBom" + implementation "dev.teogor.ceres:framework-ui:$teogorCeresBom" + implementation "dev.teogor.ceres:monetisation-admob:$teogorCeresBom" + implementation "dev.teogor.ceres:monetisation-ads:$teogorCeresBom" + implementation "dev.teogor.ceres:monetisation-messaging:$teogorCeresBom" + implementation "dev.teogor.ceres:navigation-common:$teogorCeresBom" + implementation "dev.teogor.ceres:navigation-core:$teogorCeresBom" + implementation "dev.teogor.ceres:navigation-events:$teogorCeresBom" + implementation "dev.teogor.ceres:navigation-screen:$teogorCeresBom" + implementation "dev.teogor.ceres:navigation-ui:$teogorCeresBom" + implementation "dev.teogor.ceres:screen-builder:$teogorCeresBom" + implementation "dev.teogor.ceres:screen-core:$teogorCeresBom" + implementation "dev.teogor.ceres:screen-ui:$teogorCeresBom" + implementation "dev.teogor.ceres:ui-compose:$teogorCeresBom" + implementation "dev.teogor.ceres:ui-design-system:$teogorCeresBom" + implementation "dev.teogor.ceres:ui-icons:$teogorCeresBom" + implementation "dev.teogor.ceres:ui-spectrum:$teogorCeresBom" + implementation "dev.teogor.ceres:ui-theme:$teogorCeresBom" + implementation "dev.teogor.ceres:ui-foundation:$teogorCeresBom" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresBom = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:bom:$teogorCeresBom") + implementation("dev.teogor.ceres:backup-core:$teogorCeresBom") + implementation("dev.teogor.ceres:backup-ui:$teogorCeresBom") + implementation("dev.teogor.ceres:core-common:$teogorCeresBom") + implementation("dev.teogor.ceres:core-analytics:$teogorCeresBom") + implementation("dev.teogor.ceres:core-foundation:$teogorCeresBom") + implementation("dev.teogor.ceres:core-network:$teogorCeresBom") + implementation("dev.teogor.ceres:core-notifications:$teogorCeresBom") + implementation("dev.teogor.ceres:core-register:$teogorCeresBom") + implementation("dev.teogor.ceres:core-runtime:$teogorCeresBom") + implementation("dev.teogor.ceres:core-start-up:$teogorCeresBom") + implementation("dev.teogor.ceres:data-compose:$teogorCeresBom") + implementation("dev.teogor.ceres:data-database:$teogorCeresBom") + implementation("dev.teogor.ceres:data-datastore:$teogorCeresBom") + implementation("dev.teogor.ceres:firebase-crashlytics:$teogorCeresBom") + implementation("dev.teogor.ceres:firebase-analytics:$teogorCeresBom") + implementation("dev.teogor.ceres:firebase-remote-config:$teogorCeresBom") + implementation("dev.teogor.ceres:framework-core:$teogorCeresBom") + implementation("dev.teogor.ceres:framework-ui:$teogorCeresBom") + implementation("dev.teogor.ceres:monetisation-admob:$teogorCeresBom") + implementation("dev.teogor.ceres:monetisation-ads:$teogorCeresBom") + implementation("dev.teogor.ceres:monetisation-messaging:$teogorCeresBom") + implementation("dev.teogor.ceres:navigation-common:$teogorCeresBom") + implementation("dev.teogor.ceres:navigation-core:$teogorCeresBom") + implementation("dev.teogor.ceres:navigation-events:$teogorCeresBom") + implementation("dev.teogor.ceres:navigation-screen:$teogorCeresBom") + implementation("dev.teogor.ceres:navigation-ui:$teogorCeresBom") + implementation("dev.teogor.ceres:screen-builder:$teogorCeresBom") + implementation("dev.teogor.ceres:screen-core:$teogorCeresBom") + implementation("dev.teogor.ceres:screen-ui:$teogorCeresBom") + implementation("dev.teogor.ceres:ui-compose:$teogorCeresBom") + implementation("dev.teogor.ceres:ui-design-system:$teogorCeresBom") + implementation("dev.teogor.ceres:ui-icons:$teogorCeresBom") + implementation("dev.teogor.ceres:ui-spectrum:$teogorCeresBom") + implementation("dev.teogor.ceres:ui-theme:$teogorCeresBom") + implementation("dev.teogor.ceres:ui-foundation:$teogorCeresBom") + } + ``` + +### Managing BoM Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of BoM dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-bom = "1.0.0-alpha04" + + [libraries] + teogor-ceres-bom = { group = "dev.teogor.ceres", name = "bom", version.ref = "teogor-ceres-bom" } + teogor-ceres-backup-core = { group = "dev.teogor.ceres", name = "backup-core" } + teogor-ceres-backup-ui = { group = "dev.teogor.ceres", name = "backup-ui" } + teogor-ceres-core-common = { group = "dev.teogor.ceres", name = "core-common" } + teogor-ceres-core-analytics = { group = "dev.teogor.ceres", name = "core-analytics" } + teogor-ceres-core-foundation = { group = "dev.teogor.ceres", name = "core-foundation" } + teogor-ceres-core-network = { group = "dev.teogor.ceres", name = "core-network" } + teogor-ceres-core-notifications = { group = "dev.teogor.ceres", name = "core-notifications" } + teogor-ceres-core-register = { group = "dev.teogor.ceres", name = "core-register" } + teogor-ceres-core-runtime = { group = "dev.teogor.ceres", name = "core-runtime" } + teogor-ceres-core-start-up = { group = "dev.teogor.ceres", name = "core-start-up" } + teogor-ceres-data-compose = { group = "dev.teogor.ceres", name = "data-compose" } + teogor-ceres-data-database = { group = "dev.teogor.ceres", name = "data-database" } + teogor-ceres-data-datastore = { group = "dev.teogor.ceres", name = "data-datastore" } + teogor-ceres-firebase-crashlytics = { group = "dev.teogor.ceres", name = "firebase-crashlytics" } + teogor-ceres-firebase-analytics = { group = "dev.teogor.ceres", name = "firebase-analytics" } + teogor-ceres-firebase-remote-config = { group = "dev.teogor.ceres", name = "firebase-remote-config" } + teogor-ceres-framework-core = { group = "dev.teogor.ceres", name = "framework-core" } + teogor-ceres-framework-ui = { group = "dev.teogor.ceres", name = "framework-ui" } + teogor-ceres-monetisation-admob = { group = "dev.teogor.ceres", name = "monetisation-admob" } + teogor-ceres-monetisation-ads = { group = "dev.teogor.ceres", name = "monetisation-ads" } + teogor-ceres-monetisation-messaging = { group = "dev.teogor.ceres", name = "monetisation-messaging" } + teogor-ceres-navigation-common = { group = "dev.teogor.ceres", name = "navigation-common" } + teogor-ceres-navigation-core = { group = "dev.teogor.ceres", name = "navigation-core" } + teogor-ceres-navigation-events = { group = "dev.teogor.ceres", name = "navigation-events" } + teogor-ceres-navigation-screen = { group = "dev.teogor.ceres", name = "navigation-screen" } + teogor-ceres-navigation-ui = { group = "dev.teogor.ceres", name = "navigation-ui" } + teogor-ceres-screen-builder = { group = "dev.teogor.ceres", name = "screen-builder" } + teogor-ceres-screen-core = { group = "dev.teogor.ceres", name = "screen-core" } + teogor-ceres-screen-ui = { group = "dev.teogor.ceres", name = "screen-ui" } + teogor-ceres-ui-compose = { group = "dev.teogor.ceres", name = "ui-compose" } + teogor-ceres-ui-design-system = { group = "dev.teogor.ceres", name = "ui-design-system" } + teogor-ceres-ui-icons = { group = "dev.teogor.ceres", name = "ui-icons" } + teogor-ceres-ui-spectrum = { group = "dev.teogor.ceres", name = "ui-spectrum" } + teogor-ceres-ui-theme = { group = "dev.teogor.ceres", name = "ui-theme" } + teogor-ceres-ui-foundation = { group = "dev.teogor.ceres", name = "ui-foundation" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-bom = "1.0.0-alpha04" + + [libraries] + teogor-ceres-bom = { module = "dev.teogor.ceres:bom", version.ref = "teogor-ceres-bom" } + teogor-ceres-backup-core = { module = "dev.teogor.ceres:backup-core" } + teogor-ceres-backup-ui = { module = "dev.teogor.ceres:backup-ui" } + teogor-ceres-core-common = { module = "dev.teogor.ceres:core-common" } + teogor-ceres-core-analytics = { module = "dev.teogor.ceres:core-analytics" } + teogor-ceres-core-foundation = { module = "dev.teogor.ceres:core-foundation" } + teogor-ceres-core-network = { module = "dev.teogor.ceres:core-network" } + teogor-ceres-core-notifications = { module = "dev.teogor.ceres:core-notifications" } + teogor-ceres-core-register = { module = "dev.teogor.ceres:core-register" } + teogor-ceres-core-runtime = { module = "dev.teogor.ceres:core-runtime" } + teogor-ceres-core-start-up = { module = "dev.teogor.ceres:core-start-up" } + teogor-ceres-data-compose = { module = "dev.teogor.ceres:data-compose" } + teogor-ceres-data-database = { module = "dev.teogor.ceres:data-database" } + teogor-ceres-data-datastore = { module = "dev.teogor.ceres:data-datastore" } + teogor-ceres-firebase-crashlytics = { module = "dev.teogor.ceres:firebase-crashlytics" } + teogor-ceres-firebase-analytics = { module = "dev.teogor.ceres:firebase-analytics" } + teogor-ceres-firebase-remote-config = { module = "dev.teogor.ceres:firebase-remote-config" } + teogor-ceres-framework-core = { module = "dev.teogor.ceres:framework-core" } + teogor-ceres-framework-ui = { module = "dev.teogor.ceres:framework-ui" } + teogor-ceres-monetisation-admob = { module = "dev.teogor.ceres:monetisation-admob" } + teogor-ceres-monetisation-ads = { module = "dev.teogor.ceres:monetisation-ads" } + teogor-ceres-monetisation-messaging = { module = "dev.teogor.ceres:monetisation-messaging" } + teogor-ceres-navigation-common = { module = "dev.teogor.ceres:navigation-common" } + teogor-ceres-navigation-core = { module = "dev.teogor.ceres:navigation-core" } + teogor-ceres-navigation-events = { module = "dev.teogor.ceres:navigation-events" } + teogor-ceres-navigation-screen = { module = "dev.teogor.ceres:navigation-screen" } + teogor-ceres-navigation-ui = { module = "dev.teogor.ceres:navigation-ui" } + teogor-ceres-screen-builder = { module = "dev.teogor.ceres:screen-builder" } + teogor-ceres-screen-core = { module = "dev.teogor.ceres:screen-core" } + teogor-ceres-screen-ui = { module = "dev.teogor.ceres:screen-ui" } + teogor-ceres-ui-compose = { module = "dev.teogor.ceres:ui-compose" } + teogor-ceres-ui-design-system = { module = "dev.teogor.ceres:ui-design-system" } + teogor-ceres-ui-icons = { module = "dev.teogor.ceres:ui-icons" } + teogor-ceres-ui-spectrum = { module = "dev.teogor.ceres:ui-spectrum" } + teogor-ceres-ui-theme = { module = "dev.teogor.ceres:ui-theme" } + teogor-ceres-ui-foundation = { module = "dev.teogor.ceres:ui-foundation" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation platform(libs.teogor.ceres.bom) + implementation libs.teogor.ceres.backup.core + implementation libs.teogor.ceres.backup.ui + implementation libs.teogor.ceres.core.common + implementation libs.teogor.ceres.core.analytics + implementation libs.teogor.ceres.core.foundation + implementation libs.teogor.ceres.core.network + implementation libs.teogor.ceres.core.notifications + implementation libs.teogor.ceres.core.register + implementation libs.teogor.ceres.core.runtime + implementation libs.teogor.ceres.core.start.up + implementation libs.teogor.ceres.data.compose + implementation libs.teogor.ceres.data.database + implementation libs.teogor.ceres.data.datastore + implementation libs.teogor.ceres.firebase.crashlytics + implementation libs.teogor.ceres.firebase.analytics + implementation libs.teogor.ceres.firebase.remote.config + implementation libs.teogor.ceres.framework.core + implementation libs.teogor.ceres.framework.ui + implementation libs.teogor.ceres.monetisation.admob + implementation libs.teogor.ceres.monetisation.ads + implementation libs.teogor.ceres.monetisation.messaging + implementation libs.teogor.ceres.navigation.common + implementation libs.teogor.ceres.navigation.core + implementation libs.teogor.ceres.navigation.events + implementation libs.teogor.ceres.navigation.screen + implementation libs.teogor.ceres.navigation.ui + implementation libs.teogor.ceres.screen.builder + implementation libs.teogor.ceres.screen.core + implementation libs.teogor.ceres.screen.ui + implementation libs.teogor.ceres.ui.compose + implementation libs.teogor.ceres.ui.design.system + implementation libs.teogor.ceres.ui.icons + implementation libs.teogor.ceres.ui.spectrum + implementation libs.teogor.ceres.ui.theme + implementation libs.teogor.ceres.ui.foundation + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(platform(libs.teogor.ceres.bom)) + implementation(libs.teogor.ceres.backup.core) + implementation(libs.teogor.ceres.backup.ui) + implementation(libs.teogor.ceres.core.common) + implementation(libs.teogor.ceres.core.analytics) + implementation(libs.teogor.ceres.core.foundation) + implementation(libs.teogor.ceres.core.network) + implementation(libs.teogor.ceres.core.notifications) + implementation(libs.teogor.ceres.core.register) + implementation(libs.teogor.ceres.core.runtime) + implementation(libs.teogor.ceres.core.start.up) + implementation(libs.teogor.ceres.data.compose) + implementation(libs.teogor.ceres.data.database) + implementation(libs.teogor.ceres.data.datastore) + implementation(libs.teogor.ceres.firebase.crashlytics) + implementation(libs.teogor.ceres.firebase.analytics) + implementation(libs.teogor.ceres.firebase.remote.config) + implementation(libs.teogor.ceres.framework.core) + implementation(libs.teogor.ceres.framework.ui) + implementation(libs.teogor.ceres.monetisation.admob) + implementation(libs.teogor.ceres.monetisation.ads) + implementation(libs.teogor.ceres.monetisation.messaging) + implementation(libs.teogor.ceres.navigation.common) + implementation(libs.teogor.ceres.navigation.core) + implementation(libs.teogor.ceres.navigation.events) + implementation(libs.teogor.ceres.navigation.screen) + implementation(libs.teogor.ceres.navigation.ui) + implementation(libs.teogor.ceres.screen.builder) + implementation(libs.teogor.ceres.screen.core) + implementation(libs.teogor.ceres.screen.ui) + implementation(libs.teogor.ceres.ui.compose) + implementation(libs.teogor.ceres.ui.design.system) + implementation(libs.teogor.ceres.ui.icons) + implementation(libs.teogor.ceres.ui.spectrum) + implementation(libs.teogor.ceres.ui.theme) + implementation(libs.teogor.ceres.ui.foundation) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/bom/index.md b/docs/bom/index.md new file mode 100644 index 00000000..786a8809 --- /dev/null +++ b/docs/bom/index.md @@ -0,0 +1,89 @@ +# Using the Bill of Materials + +The BoM Bill of Materials (BOM) lets you manage all of your BoM library versions by +specifying only the BOM’s version. The BOM itself has links to the stable versions of the different +BoM libraries, in such a way that they work well together. When using the BOM in your app, you +don't need to add any version to the BoM library dependencies themselves. When you update the +BOM version, all the libraries that you're using are automatically updated to their new versions. + +To find out which BoM library versions are mapped to a specific BOM version, check out +the [BOM to library version mapping](bom-mapping.md). + +[//]: # (REGION-DIFFERENT-LIBRARY-VERSION-USAGE) + +### How do I use a different library version than what's designated in the BOM? + +In the `build.gradle` dependencies section, keep the import of the BOM platform. On the library +dependency import, specify the desired version. For example, here's how to declare dependencies if +you want to use a different version of Compose, no matter what version is designated +in the BOM: + +```groovy +dependencies { + // Import the BoM BOM + implementation platform('dev.teogor.ceres:bom:1.0.0-alpha04') + + // Import Compose library + implementation 'dev.teogor.ceres:ui-compose:1.0.0-alpha04' + + // Import other BoM libraries without version numbers + // .. + implementation 'dev.teogor.ceres:monetisation-messaging' +} +``` + +[//]: # (REGION-DIFFERENT-LIBRARY-VERSION-USAGE) + +### Does the BOM automatically add all the BoM libraries to my app? + +No. To actually add and use BoM libraries in your app, you must declare each library as a +separate dependency line in your module (app-level) Gradle file (usually `app/build.gradle`). + +Using the BOM ensures that the versions of any BoM libraries in your app are compatible, but the +BOM doesn't actually add those BoM libraries to your app. + +### Why is the BOM the recommended way to manage BoM library versions? + +Going forward, BoM libraries will be versioned independently, which means version numbers will +start to be incremented at their own pace. The latest stable releases of each library are tested and +guaranteed to work nicely together. However, finding the latest stable versions of each library can +be difficult, and the BOM helps you to automatically use these latest versions. + +### Am I forced to use the BOM? + +No. You can still choose to add each dependency version manually. However, we recommend using the +BOM as it will make it easier to use all of the latest stable versions at the same time. + +[//]: # (REGION-BOM-WITH-VERSION-CATALOG) + +### Does the BOM work with version catalogs? + +Yes. You can include the BOM itself in the version catalog, and omit the other BoM library versions: + +```toml +[libraries] +teogor-ceres-bom = { group = "dev.teogor.ceres", name = "bom", version.ref = "teogor-ceres-bom" } +teogor-ceres-monetisation-messaging = { group = "dev.teogor.ceres", name = "monetisation-messaging" } +``` + +Don’t forget to import the BOM in your module’s `build.gradle`: + +```groovy +dependencies { + val teogorCeresBom = platform(libs.teogor.ceres.bom) + implementation(teogorCeresBom) + androidTestImplementation(teogorCeresBom) + + // import BoM dependencies as usual +} +``` + +[//]: # (REGION-BOM-WITH-VERSION-CATALOG) + +[//]: # (REGION-REPORT-ISSUE-FEEDBACK) + +### How do I report an issue or offer feedback on the BOM? + +You can file issues on our [issue tracker 🔗](https://github.com/teogor/ceres/issues). + +[//]: # (REGION-REPORT-ISSUE-FEEDBACK) diff --git a/docs/core/index.md b/docs/core/index.md new file mode 100644 index 00000000..11bfdb31 --- /dev/null +++ b/docs/core/index.md @@ -0,0 +1,132 @@ +# Core + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Core + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Core dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-core-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-core-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Core Dependencies Manually + +To use Core in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresCore = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:core-common:$teogorCeresCore" + implementation "dev.teogor.ceres:core-analytics:$teogorCeresCore" + implementation "dev.teogor.ceres:core-foundation:$teogorCeresCore" + implementation "dev.teogor.ceres:core-network:$teogorCeresCore" + implementation "dev.teogor.ceres:core-notifications:$teogorCeresCore" + implementation "dev.teogor.ceres:core-register:$teogorCeresCore" + implementation "dev.teogor.ceres:core-runtime:$teogorCeresCore" + implementation "dev.teogor.ceres:core-start-up:$teogorCeresCore" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresCore = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:core-common:$teogorCeresCore") + implementation("dev.teogor.ceres:core-analytics:$teogorCeresCore") + implementation("dev.teogor.ceres:core-foundation:$teogorCeresCore") + implementation("dev.teogor.ceres:core-network:$teogorCeresCore") + implementation("dev.teogor.ceres:core-notifications:$teogorCeresCore") + implementation("dev.teogor.ceres:core-register:$teogorCeresCore") + implementation("dev.teogor.ceres:core-runtime:$teogorCeresCore") + implementation("dev.teogor.ceres:core-start-up:$teogorCeresCore") + } + ``` + +### Managing Core Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Core dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-core = "1.0.0-alpha04" + + [libraries] + teogor-ceres-core-common = { group = "dev.teogor.ceres", name = "core-common", version.ref = "teogor-ceres-core" } + teogor-ceres-core-analytics = { group = "dev.teogor.ceres", name = "core-analytics", version.ref = "teogor-ceres-core" } + teogor-ceres-core-foundation = { group = "dev.teogor.ceres", name = "core-foundation", version.ref = "teogor-ceres-core" } + teogor-ceres-core-network = { group = "dev.teogor.ceres", name = "core-network", version.ref = "teogor-ceres-core" } + teogor-ceres-core-notifications = { group = "dev.teogor.ceres", name = "core-notifications", version.ref = "teogor-ceres-core" } + teogor-ceres-core-register = { group = "dev.teogor.ceres", name = "core-register", version.ref = "teogor-ceres-core" } + teogor-ceres-core-runtime = { group = "dev.teogor.ceres", name = "core-runtime", version.ref = "teogor-ceres-core" } + teogor-ceres-core-start-up = { group = "dev.teogor.ceres", name = "core-start-up", version.ref = "teogor-ceres-core" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-core = "1.0.0-alpha04" + + [libraries] + teogor-ceres-core-common = { module = "dev.teogor.ceres:core-common", version.ref = "teogor-ceres-core" } + teogor-ceres-core-analytics = { module = "dev.teogor.ceres:core-analytics", version.ref = "teogor-ceres-core" } + teogor-ceres-core-foundation = { module = "dev.teogor.ceres:core-foundation", version.ref = "teogor-ceres-core" } + teogor-ceres-core-network = { module = "dev.teogor.ceres:core-network", version.ref = "teogor-ceres-core" } + teogor-ceres-core-notifications = { module = "dev.teogor.ceres:core-notifications", version.ref = "teogor-ceres-core" } + teogor-ceres-core-register = { module = "dev.teogor.ceres:core-register", version.ref = "teogor-ceres-core" } + teogor-ceres-core-runtime = { module = "dev.teogor.ceres:core-runtime", version.ref = "teogor-ceres-core" } + teogor-ceres-core-start-up = { module = "dev.teogor.ceres:core-start-up", version.ref = "teogor-ceres-core" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.core.common + implementation libs.teogor.ceres.core.analytics + implementation libs.teogor.ceres.core.foundation + implementation libs.teogor.ceres.core.network + implementation libs.teogor.ceres.core.notifications + implementation libs.teogor.ceres.core.register + implementation libs.teogor.ceres.core.runtime + implementation libs.teogor.ceres.core.start.up + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.core.common) + implementation(libs.teogor.ceres.core.analytics) + implementation(libs.teogor.ceres.core.foundation) + implementation(libs.teogor.ceres.core.network) + implementation(libs.teogor.ceres.core.notifications) + implementation(libs.teogor.ceres.core.register) + implementation(libs.teogor.ceres.core.runtime) + implementation(libs.teogor.ceres.core.start.up) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/data/index.md b/docs/data/index.md new file mode 100644 index 00000000..f144fa00 --- /dev/null +++ b/docs/data/index.md @@ -0,0 +1,102 @@ +# Data + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Data + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Data dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-data-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-data-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Data Dependencies Manually + +To use Data in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresData = "1.0.0-alpha02" + + implementation "dev.teogor.ceres:data-compose:$teogorCeresData" + implementation "dev.teogor.ceres:data-database:$teogorCeresData" + implementation "dev.teogor.ceres:data-datastore:$teogorCeresData" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresData = "1.0.0-alpha02" + + implementation("dev.teogor.ceres:data-compose:$teogorCeresData") + implementation("dev.teogor.ceres:data-database:$teogorCeresData") + implementation("dev.teogor.ceres:data-datastore:$teogorCeresData") + } + ``` + +### Managing Data Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Data dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-data = "1.0.0-alpha02" + + [libraries] + teogor-ceres-data-compose = { group = "dev.teogor.ceres", name = "data-compose", version.ref = "teogor-ceres-data" } + teogor-ceres-data-database = { group = "dev.teogor.ceres", name = "data-database", version.ref = "teogor-ceres-data" } + teogor-ceres-data-datastore = { group = "dev.teogor.ceres", name = "data-datastore", version.ref = "teogor-ceres-data" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-data = "1.0.0-alpha02" + + [libraries] + teogor-ceres-data-compose = { module = "dev.teogor.ceres:data-compose", version.ref = "teogor-ceres-data" } + teogor-ceres-data-database = { module = "dev.teogor.ceres:data-database", version.ref = "teogor-ceres-data" } + teogor-ceres-data-datastore = { module = "dev.teogor.ceres:data-datastore", version.ref = "teogor-ceres-data" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.data.compose + implementation libs.teogor.ceres.data.database + implementation libs.teogor.ceres.data.datastore + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.data.compose) + implementation(libs.teogor.ceres.data.database) + implementation(libs.teogor.ceres.data.datastore) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/firebase/index.md b/docs/firebase/index.md new file mode 100644 index 00000000..f53e0b63 --- /dev/null +++ b/docs/firebase/index.md @@ -0,0 +1,102 @@ +# Firebase + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Firebase + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Firebase dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-firebase-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-firebase-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Firebase Dependencies Manually + +To use Firebase in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresFirebase = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:firebase-crashlytics:$teogorCeresFirebase" + implementation "dev.teogor.ceres:firebase-analytics:$teogorCeresFirebase" + implementation "dev.teogor.ceres:firebase-remote-config:$teogorCeresFirebase" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresFirebase = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:firebase-crashlytics:$teogorCeresFirebase") + implementation("dev.teogor.ceres:firebase-analytics:$teogorCeresFirebase") + implementation("dev.teogor.ceres:firebase-remote-config:$teogorCeresFirebase") + } + ``` + +### Managing Firebase Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Firebase dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-firebase = "1.0.0-alpha04" + + [libraries] + teogor-ceres-firebase-crashlytics = { group = "dev.teogor.ceres", name = "firebase-crashlytics", version.ref = "teogor-ceres-firebase" } + teogor-ceres-firebase-analytics = { group = "dev.teogor.ceres", name = "firebase-analytics", version.ref = "teogor-ceres-firebase" } + teogor-ceres-firebase-remote-config = { group = "dev.teogor.ceres", name = "firebase-remote-config", version.ref = "teogor-ceres-firebase" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-firebase = "1.0.0-alpha04" + + [libraries] + teogor-ceres-firebase-crashlytics = { module = "dev.teogor.ceres:firebase-crashlytics", version.ref = "teogor-ceres-firebase" } + teogor-ceres-firebase-analytics = { module = "dev.teogor.ceres:firebase-analytics", version.ref = "teogor-ceres-firebase" } + teogor-ceres-firebase-remote-config = { module = "dev.teogor.ceres:firebase-remote-config", version.ref = "teogor-ceres-firebase" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.firebase.crashlytics + implementation libs.teogor.ceres.firebase.analytics + implementation libs.teogor.ceres.firebase.remote.config + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.firebase.crashlytics) + implementation(libs.teogor.ceres.firebase.analytics) + implementation(libs.teogor.ceres.firebase.remote.config) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/framework/index.md b/docs/framework/index.md new file mode 100644 index 00000000..084b3aa6 --- /dev/null +++ b/docs/framework/index.md @@ -0,0 +1,96 @@ +# Framework + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Framework + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Framework dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-framework-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-framework-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Framework Dependencies Manually + +To use Framework in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresFramework = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:framework-core:$teogorCeresFramework" + implementation "dev.teogor.ceres:framework-ui:$teogorCeresFramework" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresFramework = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:framework-core:$teogorCeresFramework") + implementation("dev.teogor.ceres:framework-ui:$teogorCeresFramework") + } + ``` + +### Managing Framework Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Framework dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-framework = "1.0.0-alpha04" + + [libraries] + teogor-ceres-framework-core = { group = "dev.teogor.ceres", name = "framework-core", version.ref = "teogor-ceres-framework" } + teogor-ceres-framework-ui = { group = "dev.teogor.ceres", name = "framework-ui", version.ref = "teogor-ceres-framework" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-framework = "1.0.0-alpha04" + + [libraries] + teogor-ceres-framework-core = { module = "dev.teogor.ceres:framework-core", version.ref = "teogor-ceres-framework" } + teogor-ceres-framework-ui = { module = "dev.teogor.ceres:framework-ui", version.ref = "teogor-ceres-framework" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.framework.core + implementation libs.teogor.ceres.framework.ui + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.framework.core) + implementation(libs.teogor.ceres.framework.ui) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/index.md b/docs/index.md index df7bdff8..ea3bedbc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,66 +1,75 @@ -# Ceres Documentation +# Ceres -Welcome to the Ceres documentation! This documentation provides detailed information on various -modules, Bill of Materials (BoM) versions, and usage guidelines for the Ceres Android library. +Learn more: **[User Guide](user-guide.md)** and **[Code Samples](code-samples.md)** -## Table of Contents +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. -1. [Modules](#modules) -2. [Bill of Materials (BoM)](#bill-of-materials) -3. [Version Catalog](#version-catalog) +[//]: # (REGION-API-REFERENCE) ---- +API Reference +[`dev.teogor.ceres:*`](html/) -## Modules +[//]: # (REGION-API-REFERENCE) -Ceres is organized into multiple modules, each serving a specific purpose. These modules can be -included selectively in your Android project to streamline development. Here are the available -modules: +[//]: # (REGION-GROUP-OVERVIEW) -- [Backup](reference.md): The Backup module provides essential utilities for data backup - and recovery. -- [Core](reference.md): The core module provides essential utilities and foundation for - Ceres. -- [Data](reference.md): The data module offers data-related functionality for Ceres. -- [Firebase](reference.md): Integrate Firebase services seamlessly with Ceres. -- [Framework](reference.md): Get access to framework-level components and features. -- [Monetisation](reference.md): Monetize your Android app using the Monetisation - module. -- [Navigation](reference.md): Efficiently handle app navigation with the Navigation - module. -- [Screen](reference.md): Simplify screen management and UI with the Screen module. -- [UI](reference.md): Enhance your app's user interface using the UI module. +**Ceres** is formed by combining 9 Maven Group Ids within dev.teogor.ceres. Each Group encompasses a targeted subset of functionality, with individual sets of release notes. -Each module documentation provides in-depth information on its features and how to integrate it into -your project. +This table provides an overview of the groups and their corresponding links to individual sets of release notes. ---- +| Group | Description | +|:------------------------------------------------|:---------------| +| [ceres.backup](./backup/index.md) | not provided | +| [ceres.core](./core/index.md) | not provided | +| [ceres.data](./data/index.md) | not provided | +| [ceres.firebase](./firebase/index.md) | not provided | +| [ceres.framework](./framework/index.md) | not provided | +| [ceres.monetisation](./monetisation/index.md) | not provided | +| [ceres.navigation](./navigation/index.md) | not provided | +| [ceres.screen](./screen/index.md) | not provided | +| [ceres.ui](./ui/index.md) | not provided | -## Bill of Materials +[//]: # (REGION-GROUP-OVERVIEW) -The Bill of Materials (BoM) simplifies library version management by providing a centralized -mechanism to manage versions across Ceres modules. Learn how to use the BoM in your project by -referring to the [BoM documentation](releases.md). +[//]: # (REGION-GROUP-VERSION-OVERVIEW) -- [BoM Versions](releases.md): Explore the available BoM versions and their release dates. +## Version ---- +Refer to the table below for an overview of the current versions associated with each group. -## Version Catalog +| Maven Group ID | Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:------------------------------------------------|:---------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| [ceres.backup](./backup/index.md) | September 28, 2023 | - | - | - | 1.0.0-alpha01 | +| [ceres.core](./core/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha04 | +| [ceres.data](./data/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha02 | +| [ceres.firebase](./firebase/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha04 | +| [ceres.framework](./framework/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha04 | +| [ceres.monetisation](./monetisation/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha04 | +| [ceres.navigation](./navigation/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha03 | +| [ceres.screen](./screen/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha04 | +| [ceres.ui](./ui/index.md) | November 23, 2023 | - | - | - | 1.0.0-alpha04 | -The Ceres Version Catalog provides implementation details of Ceres libraries and BoM versions in -TOML format. It helps you manage library versions effortlessly. Refer to -the [Version Catalog](ceres-version-catalog.md) to understand how to declare dependencies using the -latest versions and access implementation details. +[//]: # (REGION-GROUP-VERSION-OVERVIEW) ---- +[//]: # (REGION-REPORT-ISSUE-FEEDBACK) -We hope this documentation helps you make the most of the Ceres Android library. If you have any -questions or need further assistance, feel free to reach out to us. Happy coding! +## Feedback -**Getting Started** +Your feedback helps make Ceres better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. -To get started with Xenoglot, refer to the comprehensive documentation available at +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-REPORT-ISSUE-FEEDBACK) + +## BOMs + +To stay updated with the latest BOM releases, explore the [Ceres BOM Mapping Page](./bom/bom-mapping.md). + +## Getting Started + +To get started with Ceres, refer to the comprehensive documentation available at [source.teogor.dev/ceres](https://source.teogor.dev/ceres). The documentation provides detailed explanations, examples, and best practices for using the library effectively. diff --git a/docs/monetisation/index.md b/docs/monetisation/index.md new file mode 100644 index 00000000..55a25fbe --- /dev/null +++ b/docs/monetisation/index.md @@ -0,0 +1,102 @@ +# Monetisation + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Monetisation + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Monetisation dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-monetisation-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-monetisation-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Monetisation Dependencies Manually + +To use Monetisation in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresMonetisation = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:monetisation-admob:$teogorCeresMonetisation" + implementation "dev.teogor.ceres:monetisation-ads:$teogorCeresMonetisation" + implementation "dev.teogor.ceres:monetisation-messaging:$teogorCeresMonetisation" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresMonetisation = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:monetisation-admob:$teogorCeresMonetisation") + implementation("dev.teogor.ceres:monetisation-ads:$teogorCeresMonetisation") + implementation("dev.teogor.ceres:monetisation-messaging:$teogorCeresMonetisation") + } + ``` + +### Managing Monetisation Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Monetisation dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-monetisation = "1.0.0-alpha04" + + [libraries] + teogor-ceres-monetisation-admob = { group = "dev.teogor.ceres", name = "monetisation-admob", version.ref = "teogor-ceres-monetisation" } + teogor-ceres-monetisation-ads = { group = "dev.teogor.ceres", name = "monetisation-ads", version.ref = "teogor-ceres-monetisation" } + teogor-ceres-monetisation-messaging = { group = "dev.teogor.ceres", name = "monetisation-messaging", version.ref = "teogor-ceres-monetisation" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-monetisation = "1.0.0-alpha04" + + [libraries] + teogor-ceres-monetisation-admob = { module = "dev.teogor.ceres:monetisation-admob", version.ref = "teogor-ceres-monetisation" } + teogor-ceres-monetisation-ads = { module = "dev.teogor.ceres:monetisation-ads", version.ref = "teogor-ceres-monetisation" } + teogor-ceres-monetisation-messaging = { module = "dev.teogor.ceres:monetisation-messaging", version.ref = "teogor-ceres-monetisation" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.monetisation.admob + implementation libs.teogor.ceres.monetisation.ads + implementation libs.teogor.ceres.monetisation.messaging + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.monetisation.admob) + implementation(libs.teogor.ceres.monetisation.ads) + implementation(libs.teogor.ceres.monetisation.messaging) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/navigation/index.md b/docs/navigation/index.md new file mode 100644 index 00000000..43943ced --- /dev/null +++ b/docs/navigation/index.md @@ -0,0 +1,114 @@ +# Navigation + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Navigation + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Navigation dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-navigation-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-navigation-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Navigation Dependencies Manually + +To use Navigation in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresNavigation = "1.0.0-alpha03" + + implementation "dev.teogor.ceres:navigation-common:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-core:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-events:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-screen:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-ui:$teogorCeresNavigation" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresNavigation = "1.0.0-alpha03" + + implementation("dev.teogor.ceres:navigation-common:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-core:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-events:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-screen:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-ui:$teogorCeresNavigation") + } + ``` + +### Managing Navigation Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Navigation dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-navigation = "1.0.0-alpha03" + + [libraries] + teogor-ceres-navigation-common = { group = "dev.teogor.ceres", name = "navigation-common", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-core = { group = "dev.teogor.ceres", name = "navigation-core", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-events = { group = "dev.teogor.ceres", name = "navigation-events", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-screen = { group = "dev.teogor.ceres", name = "navigation-screen", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-ui = { group = "dev.teogor.ceres", name = "navigation-ui", version.ref = "teogor-ceres-navigation" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-navigation = "1.0.0-alpha03" + + [libraries] + teogor-ceres-navigation-common = { module = "dev.teogor.ceres:navigation-common", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-core = { module = "dev.teogor.ceres:navigation-core", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-events = { module = "dev.teogor.ceres:navigation-events", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-screen = { module = "dev.teogor.ceres:navigation-screen", version.ref = "teogor-ceres-navigation" } + teogor-ceres-navigation-ui = { module = "dev.teogor.ceres:navigation-ui", version.ref = "teogor-ceres-navigation" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.navigation.common + implementation libs.teogor.ceres.navigation.core + implementation libs.teogor.ceres.navigation.events + implementation libs.teogor.ceres.navigation.screen + implementation libs.teogor.ceres.navigation.ui + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.navigation.common) + implementation(libs.teogor.ceres.navigation.core) + implementation(libs.teogor.ceres.navigation.events) + implementation(libs.teogor.ceres.navigation.screen) + implementation(libs.teogor.ceres.navigation.ui) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/releases/backup.md b/docs/releases/backup.md new file mode 100644 index 00000000..fe683623 --- /dev/null +++ b/docs/releases/backup.md @@ -0,0 +1,73 @@ +# Ceres Backup + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:backup-*`](../html/backup) +[`dev.teogor.ceres:backup-core`](../html/backup/core) +[`dev.teogor.ceres:backup-ui`](../html/backup/ui) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:---------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| September 28, 2023 | - | - | - | 1.0.0-alpha01 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Backup in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresBackup = "1.0.0-alpha01" + + implementation "dev.teogor.ceres:backup-core:$teogorCeresBackup" + implementation "dev.teogor.ceres:backup-ui:$teogorCeresBackup" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresBackup = "1.0.0-alpha01" + + implementation("dev.teogor.ceres:backup-core:$teogorCeresBackup") + implementation("dev.teogor.ceres:backup-ui:$teogorCeresBackup") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Backup documentation](../backup/index.md#getting-started-with-backup). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Backup better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/core.md b/docs/releases/core.md new file mode 100644 index 00000000..0e1329b4 --- /dev/null +++ b/docs/releases/core.md @@ -0,0 +1,91 @@ +# Ceres Core + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:core-*`](../html/core) +[`dev.teogor.ceres:core-common`](../html/core/common) +[`dev.teogor.ceres:core-analytics`](../html/core/core-analytics) +[`dev.teogor.ceres:core-foundation`](../html/core/foundation) +[`dev.teogor.ceres:core-network`](../html/core/network) +[`dev.teogor.ceres:core-notifications`](../html/core/notifications) +[`dev.teogor.ceres:core-register`](../html/core/register) +[`dev.teogor.ceres:core-runtime`](../html/core/runtime) +[`dev.teogor.ceres:core-start-up`](../html/core/startup) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha04 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Core in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresCore = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:core-common:$teogorCeresCore" + implementation "dev.teogor.ceres:core-analytics:$teogorCeresCore" + implementation "dev.teogor.ceres:core-foundation:$teogorCeresCore" + implementation "dev.teogor.ceres:core-network:$teogorCeresCore" + implementation "dev.teogor.ceres:core-notifications:$teogorCeresCore" + implementation "dev.teogor.ceres:core-register:$teogorCeresCore" + implementation "dev.teogor.ceres:core-runtime:$teogorCeresCore" + implementation "dev.teogor.ceres:core-start-up:$teogorCeresCore" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresCore = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:core-common:$teogorCeresCore") + implementation("dev.teogor.ceres:core-analytics:$teogorCeresCore") + implementation("dev.teogor.ceres:core-foundation:$teogorCeresCore") + implementation("dev.teogor.ceres:core-network:$teogorCeresCore") + implementation("dev.teogor.ceres:core-notifications:$teogorCeresCore") + implementation("dev.teogor.ceres:core-register:$teogorCeresCore") + implementation("dev.teogor.ceres:core-runtime:$teogorCeresCore") + implementation("dev.teogor.ceres:core-start-up:$teogorCeresCore") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Core documentation](../core/index.md#getting-started-with-core). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Core better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/data.md b/docs/releases/data.md new file mode 100644 index 00000000..d2299908 --- /dev/null +++ b/docs/releases/data.md @@ -0,0 +1,76 @@ +# Ceres Data + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:data-*`](../html/data) +[`dev.teogor.ceres:data-compose`](../html/data/data-compose) +[`dev.teogor.ceres:data-database`](../html/data/database) +[`dev.teogor.ceres:data-datastore`](../html/data/datastore) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha02 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Data in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresData = "1.0.0-alpha02" + + implementation "dev.teogor.ceres:data-compose:$teogorCeresData" + implementation "dev.teogor.ceres:data-database:$teogorCeresData" + implementation "dev.teogor.ceres:data-datastore:$teogorCeresData" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresData = "1.0.0-alpha02" + + implementation("dev.teogor.ceres:data-compose:$teogorCeresData") + implementation("dev.teogor.ceres:data-database:$teogorCeresData") + implementation("dev.teogor.ceres:data-datastore:$teogorCeresData") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Data documentation](../data/index.md#getting-started-with-data). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Data better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/firebase.md b/docs/releases/firebase.md new file mode 100644 index 00000000..b7439ffe --- /dev/null +++ b/docs/releases/firebase.md @@ -0,0 +1,76 @@ +# Ceres Firebase + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:firebase-*`](../html/firebase) +[`dev.teogor.ceres:firebase-crashlytics`](../html/firebase/crashlytics) +[`dev.teogor.ceres:firebase-analytics`](../html/firebase/firebase-analytics) +[`dev.teogor.ceres:firebase-remote-config`](../html/firebase/remote-config) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha04 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Firebase in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresFirebase = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:firebase-crashlytics:$teogorCeresFirebase" + implementation "dev.teogor.ceres:firebase-analytics:$teogorCeresFirebase" + implementation "dev.teogor.ceres:firebase-remote-config:$teogorCeresFirebase" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresFirebase = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:firebase-crashlytics:$teogorCeresFirebase") + implementation("dev.teogor.ceres:firebase-analytics:$teogorCeresFirebase") + implementation("dev.teogor.ceres:firebase-remote-config:$teogorCeresFirebase") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Firebase documentation](../firebase/index.md#getting-started-with-firebase). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Firebase better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/framework.md b/docs/releases/framework.md new file mode 100644 index 00000000..432ea874 --- /dev/null +++ b/docs/releases/framework.md @@ -0,0 +1,73 @@ +# Ceres Framework + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:framework-*`](../html/framework) +[`dev.teogor.ceres:framework-core`](../html/framework/framework-core) +[`dev.teogor.ceres:framework-ui`](../html/framework/framework-ui) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha04 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Framework in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresFramework = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:framework-core:$teogorCeresFramework" + implementation "dev.teogor.ceres:framework-ui:$teogorCeresFramework" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresFramework = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:framework-core:$teogorCeresFramework") + implementation("dev.teogor.ceres:framework-ui:$teogorCeresFramework") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Framework documentation](../framework/index.md#getting-started-with-framework). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Framework better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/monetisation.md b/docs/releases/monetisation.md new file mode 100644 index 00000000..570d3b0f --- /dev/null +++ b/docs/releases/monetisation.md @@ -0,0 +1,76 @@ +# Ceres Monetisation + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:monetisation-*`](../html/monetisation) +[`dev.teogor.ceres:monetisation-admob`](../html/monetisation/admob) +[`dev.teogor.ceres:monetisation-ads`](../html/monetisation/ads) +[`dev.teogor.ceres:monetisation-messaging`](../html/monetisation/messaging) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha04 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Monetisation in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresMonetisation = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:monetisation-admob:$teogorCeresMonetisation" + implementation "dev.teogor.ceres:monetisation-ads:$teogorCeresMonetisation" + implementation "dev.teogor.ceres:monetisation-messaging:$teogorCeresMonetisation" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresMonetisation = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:monetisation-admob:$teogorCeresMonetisation") + implementation("dev.teogor.ceres:monetisation-ads:$teogorCeresMonetisation") + implementation("dev.teogor.ceres:monetisation-messaging:$teogorCeresMonetisation") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Monetisation documentation](../monetisation/index.md#getting-started-with-monetisation). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Monetisation better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/navigation.md b/docs/releases/navigation.md new file mode 100644 index 00000000..81ddeaa6 --- /dev/null +++ b/docs/releases/navigation.md @@ -0,0 +1,82 @@ +# Ceres Navigation + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:navigation-*`](../html/navigation) +[`dev.teogor.ceres:navigation-common`](../html/navigation/common) +[`dev.teogor.ceres:navigation-core`](../html/navigation/core) +[`dev.teogor.ceres:navigation-events`](../html/navigation/events) +[`dev.teogor.ceres:navigation-screen`](../html/navigation/screen) +[`dev.teogor.ceres:navigation-ui`](../html/navigation/ui) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha03 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Navigation in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresNavigation = "1.0.0-alpha03" + + implementation "dev.teogor.ceres:navigation-common:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-core:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-events:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-screen:$teogorCeresNavigation" + implementation "dev.teogor.ceres:navigation-ui:$teogorCeresNavigation" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresNavigation = "1.0.0-alpha03" + + implementation("dev.teogor.ceres:navigation-common:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-core:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-events:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-screen:$teogorCeresNavigation") + implementation("dev.teogor.ceres:navigation-ui:$teogorCeresNavigation") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Navigation documentation](../navigation/index.md#getting-started-with-navigation). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Navigation better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/screen.md b/docs/releases/screen.md new file mode 100644 index 00000000..c6618fa2 --- /dev/null +++ b/docs/releases/screen.md @@ -0,0 +1,76 @@ +# Ceres Screen + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:screen-*`](../html/screen) +[`dev.teogor.ceres:screen-builder`](../html/screen/builder) +[`dev.teogor.ceres:screen-core`](../html/screen/screen-core) +[`dev.teogor.ceres:screen-ui`](../html/screen/screen-ui) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha04 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use Screen in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresScreen = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:screen-builder:$teogorCeresScreen" + implementation "dev.teogor.ceres:screen-core:$teogorCeresScreen" + implementation "dev.teogor.ceres:screen-ui:$teogorCeresScreen" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresScreen = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:screen-builder:$teogorCeresScreen") + implementation("dev.teogor.ceres:screen-core:$teogorCeresScreen") + implementation("dev.teogor.ceres:screen-ui:$teogorCeresScreen") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [Screen documentation](../screen/index.md#getting-started-with-screen). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make Screen better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/releases/ui.md b/docs/releases/ui.md new file mode 100644 index 00000000..8504a00f --- /dev/null +++ b/docs/releases/ui.md @@ -0,0 +1,85 @@ +# Ceres UI + +Learn more: **[User Guide](../user-guide.md)** and **[Code Samples](../code-samples.md)** + +Ceres is a comprehensive Android development framework designed to streamline your app development process. Powered by the latest technologies like Jetpack Compose, Hilt, Coroutines, and Flow, Ceres empowers developers to build modern and efficient Android applications. + +[//]: # (REGION-API-REFERENCE) + +API Reference +[`dev.teogor.ceres:ui-*`](../html/ui) +[`dev.teogor.ceres:ui-compose`](../html/ui/compose) +[`dev.teogor.ceres:ui-design-system`](../html/ui/designsystem) +[`dev.teogor.ceres:ui-icons`](../html/ui/icons) +[`dev.teogor.ceres:ui-spectrum`](../html/ui/spectrum) +[`dev.teogor.ceres:ui-theme`](../html/ui/theme) +[`dev.teogor.ceres:ui-foundation`](../html/ui/ui-foundation) + +[//]: # (REGION-API-REFERENCE) + +[//]: # (REGION-RELEASE-TABLE) + +| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | +|:--------------------|:----------------:|:-------------------:|:--------------:|:---------------:| +| November 23, 2023 | - | - | - | 1.0.0-alpha04 | + +[//]: # (REGION-RELEASE-TABLE) + +[//]: # (REGION-DEPENDENCIES) + +## Declaring dependencies + +To use UI in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresUi = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:ui-compose:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-design-system:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-icons:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-spectrum:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-theme:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-foundation:$teogorCeresUi" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresUi = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:ui-compose:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-design-system:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-icons:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-spectrum:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-theme:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-foundation:$teogorCeresUi") + } + ``` + +For comprehensive instructions on adding these dependencies, refer to the [UI documentation](../ui/index.md#getting-started-with-ui). + +[//]: # (REGION-DEPENDENCIES) + +[//]: # (REGION-FEEDBACK) + +## Feedback + +Your feedback helps make UI better. Let us know if you discover new issues or have +ideas for improving this library. Please take a look at the [existing issues on GitHub](https://github.com/teogor/ceres/issues) +for this library before you create a new one. + +[Create a new issue](https://github.com/teogor/ceres/issues/new){ .md-button } + +[//]: # (REGION-FEEDBACK) + +[//]: # (REGION-VERSION-CHANGELOG) + + + +[//]: # (REGION-VERSION-CHANGELOG) + diff --git a/docs/screen/index.md b/docs/screen/index.md new file mode 100644 index 00000000..163742b6 --- /dev/null +++ b/docs/screen/index.md @@ -0,0 +1,102 @@ +# Screen + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with Screen + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding Screen dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-screen-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-screen-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding Screen Dependencies Manually + +To use Screen in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresScreen = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:screen-builder:$teogorCeresScreen" + implementation "dev.teogor.ceres:screen-core:$teogorCeresScreen" + implementation "dev.teogor.ceres:screen-ui:$teogorCeresScreen" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresScreen = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:screen-builder:$teogorCeresScreen") + implementation("dev.teogor.ceres:screen-core:$teogorCeresScreen") + implementation("dev.teogor.ceres:screen-ui:$teogorCeresScreen") + } + ``` + +### Managing Screen Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of Screen dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-screen = "1.0.0-alpha04" + + [libraries] + teogor-ceres-screen-builder = { group = "dev.teogor.ceres", name = "screen-builder", version.ref = "teogor-ceres-screen" } + teogor-ceres-screen-core = { group = "dev.teogor.ceres", name = "screen-core", version.ref = "teogor-ceres-screen" } + teogor-ceres-screen-ui = { group = "dev.teogor.ceres", name = "screen-ui", version.ref = "teogor-ceres-screen" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-screen = "1.0.0-alpha04" + + [libraries] + teogor-ceres-screen-builder = { module = "dev.teogor.ceres:screen-builder", version.ref = "teogor-ceres-screen" } + teogor-ceres-screen-core = { module = "dev.teogor.ceres:screen-core", version.ref = "teogor-ceres-screen" } + teogor-ceres-screen-ui = { module = "dev.teogor.ceres:screen-ui", version.ref = "teogor-ceres-screen" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.screen.builder + implementation libs.teogor.ceres.screen.core + implementation libs.teogor.ceres.screen.ui + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.screen.builder) + implementation(libs.teogor.ceres.screen.core) + implementation(libs.teogor.ceres.screen.ui) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/docs/ui/index.md b/docs/ui/index.md new file mode 100644 index 00000000..ae2eb2c4 --- /dev/null +++ b/docs/ui/index.md @@ -0,0 +1,120 @@ +# UI + +[//]: # (REGION-DEPENDENCIES) + +## Getting Started with UI + +**Adding Dependencies:** + +* **Manual Setup:** This section guides you through adding UI dependencies directly to your project's `build.gradle` files. ([Link to Manual Dependency Setup Section](#adding-ui-dependencies-manually)) +* **Version Catalog (Recommended):** For a more streamlined approach, consider integrating a version catalog. This allows for centralized version management and easier updates. ([Link to Version Catalog Section](#managing-ui-versions-with-version-catalog-recommended)) + +**Note:** If you prefer manual dependency setup, follow the instructions in the "Manual Setup" section. Otherwise, jump to the "Version Catalog" section for centralized management. + +For information on using the KAPT plugin, see the [KAPT documentation](https://kotlinlang.org/docs/kapt.html). +For information on using the KSP plugin, see the [KSP quick-start documentation](https://kotlinlang.org/docs/ksp-quickstart.html). +For more information about dependencies, see [Add Build Dependencies](https://developer.android.com/studio/build/dependencies). + +### Adding UI Dependencies Manually + +To use UI in your app, add the following dependencies to your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + def teogorCeresUi = "1.0.0-alpha04" + + implementation "dev.teogor.ceres:ui-compose:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-design-system:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-icons:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-spectrum:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-theme:$teogorCeresUi" + implementation "dev.teogor.ceres:ui-foundation:$teogorCeresUi" + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + val teogorCeresUi = "1.0.0-alpha04" + + implementation("dev.teogor.ceres:ui-compose:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-design-system:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-icons:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-spectrum:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-theme:$teogorCeresUi") + implementation("dev.teogor.ceres:ui-foundation:$teogorCeresUi") + } + ``` + +### Managing UI Versions with Version Catalog (Recommended) + +This section guides you through utilizing a version catalog for centralized management of UI dependencies in your project. This approach simplifies updates and ensures consistency. + +First, define the dependencies in the `libs.versions.toml` file: + +- **Group-Name Based:** This approach is used for declaring libraries referenced by group and artifact name. +- **Module Based:** This approach is used for declaring libraries referenced by their module. + +=== "Group-Name Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-ui = "1.0.0-alpha04" + + [libraries] + teogor-ceres-ui-compose = { group = "dev.teogor.ceres", name = "ui-compose", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-design-system = { group = "dev.teogor.ceres", name = "ui-design-system", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-icons = { group = "dev.teogor.ceres", name = "ui-icons", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-spectrum = { group = "dev.teogor.ceres", name = "ui-spectrum", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-theme = { group = "dev.teogor.ceres", name = "ui-theme", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-foundation = { group = "dev.teogor.ceres", name = "ui-foundation", version.ref = "teogor-ceres-ui" } + ``` + +=== "Module Based" + + ```toml title="gradle/libs.versions.toml" + [versions] + teogor-ceres-ui = "1.0.0-alpha04" + + [libraries] + teogor-ceres-ui-compose = { module = "dev.teogor.ceres:ui-compose", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-design-system = { module = "dev.teogor.ceres:ui-design-system", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-icons = { module = "dev.teogor.ceres:ui-icons", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-spectrum = { module = "dev.teogor.ceres:ui-spectrum", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-theme = { module = "dev.teogor.ceres:ui-theme", version.ref = "teogor-ceres-ui" } + teogor-ceres-ui-foundation = { module = "dev.teogor.ceres:ui-foundation", version.ref = "teogor-ceres-ui" } + ``` + +Then, add these dependencies in your app's `build.gradle` file: + +=== "Groovy" + + ```groovy title="build.gradle" + dependencies { + implementation libs.teogor.ceres.ui.compose + implementation libs.teogor.ceres.ui.design.system + implementation libs.teogor.ceres.ui.icons + implementation libs.teogor.ceres.ui.spectrum + implementation libs.teogor.ceres.ui.theme + implementation libs.teogor.ceres.ui.foundation + } + ``` + +=== "Kotlin" + + ```kotlin title="build.gradle.kts" + dependencies { + implementation(libs.teogor.ceres.ui.compose) + implementation(libs.teogor.ceres.ui.design.system) + implementation(libs.teogor.ceres.ui.icons) + implementation(libs.teogor.ceres.ui.spectrum) + implementation(libs.teogor.ceres.ui.theme) + implementation(libs.teogor.ceres.ui.foundation) + } + ``` + +[//]: # (REGION-DEPENDENCIES) + diff --git a/firebase/build.gradle.kts b/firebase/build.gradle.kts index 32779502..3a6f63fc 100644 --- a/firebase/build.gradle.kts +++ b/firebase/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Firebase" - name = "firebase" - - version = createVersion(1, 0, 0) { - alphaRelease(4) + moduleMetadata { + artifactDescriptor { + name = "Firebase" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } } } + + publishingOptions { + publish = false + } } diff --git a/firebase/crashlytics/build.gradle.kts b/firebase/crashlytics/build.gradle.kts index aed3f2d9..f5f96dce 100644 --- a/firebase/crashlytics/build.gradle.kts +++ b/firebase/crashlytics/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,7 +30,7 @@ android { } dependencies { - implementation(project(":core:foundation")) + implementation(projects.core.foundation) implementation(libs.firebase.crashlytics) implementation(platform(libs.firebase.bom)) @@ -39,8 +40,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Crashlytics" - name = "crashlytics" + moduleMetadata { + artifactDescriptor { + name = "Crashlytics" + } } } diff --git a/firebase/analytics/.gitignore b/firebase/firebase-analytics/.gitignore similarity index 100% rename from firebase/analytics/.gitignore rename to firebase/firebase-analytics/.gitignore diff --git a/firebase/analytics/api/analytics.api b/firebase/firebase-analytics/api/analytics.api similarity index 100% rename from firebase/analytics/api/analytics.api rename to firebase/firebase-analytics/api/analytics.api diff --git a/firebase/firebase-analytics/api/firebase-analytics.api b/firebase/firebase-analytics/api/firebase-analytics.api new file mode 100644 index 00000000..9e6b7d79 --- /dev/null +++ b/firebase/firebase-analytics/api/firebase-analytics.api @@ -0,0 +1,55 @@ +public final class dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializer : androidx/startup/Initializer { + public static final field $stable I + public fun ()V + public synthetic fun create (Landroid/content/Context;)Ljava/lang/Object; + public fun create (Landroid/content/Context;)V + public fun dependencies ()Ljava/util/List; +} + +public final class dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializerKt { + public static final fun text ()V +} + +public abstract class dev/teogor/ceres/firebase/analytics/AnalyticsModule { + public static final field $stable I + public static final field Companion Ldev/teogor/ceres/firebase/analytics/AnalyticsModule$Companion; + public fun ()V +} + +public final class dev/teogor/ceres/firebase/analytics/AnalyticsModule$Companion { + public final fun provideFirebaseAnalytics ()Lcom/google/firebase/analytics/FirebaseAnalytics; +} + +public final class dev/teogor/ceres/firebase/analytics/AnalyticsModule_Companion_ProvideFirebaseAnalyticsFactory : dagger/internal/Factory { + public fun ()V + public static fun create ()Ldev/teogor/ceres/firebase/analytics/AnalyticsModule_Companion_ProvideFirebaseAnalyticsFactory; + public fun get ()Lcom/google/firebase/analytics/FirebaseAnalytics; + public synthetic fun get ()Ljava/lang/Object; + public static fun provideFirebaseAnalytics ()Lcom/google/firebase/analytics/FirebaseAnalytics; +} + +public final class dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelper : dev/teogor/ceres/core/analytics/AnalyticsHelper { + public static final field $stable I + public fun (Lcom/google/firebase/analytics/FirebaseAnalytics;)V + public fun logEvent (Ldev/teogor/ceres/core/analytics/AnalyticsEvent;)V +} + +public final class dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelperKt { + public static final fun logEvent (Lcom/google/firebase/analytics/FirebaseAnalytics;Ldev/teogor/ceres/core/analytics/Types;Lkotlin/jvm/functions/Function1;)V +} + +public final class dev/teogor/ceres/firebase/analytics/ParametersBuilder { + public static final field $stable I + public fun ()V + public final fun build ()Landroid/os/Bundle; + public final fun param (Ljava/lang/String;D)V + public final fun param (Ljava/lang/String;J)V + public final fun param (Ljava/lang/String;Landroid/os/Bundle;)V + public final fun param (Ljava/lang/String;Ljava/lang/String;)V + public final fun param (Ljava/lang/String;[Landroid/os/Bundle;)V +} + +public class hilt_aggregated_deps/_dev_teogor_ceres_firebase_analytics_AnalyticsModule { + public fun ()V +} + diff --git a/firebase/analytics/build.gradle.kts b/firebase/firebase-analytics/build.gradle.kts similarity index 85% rename from firebase/analytics/build.gradle.kts rename to firebase/firebase-analytics/build.gradle.kts index 63a894ac..6dbaec03 100644 --- a/firebase/analytics/build.gradle.kts +++ b/firebase/firebase-analytics/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,8 +30,8 @@ android { } dependencies { - api(project(mapOf("path" to ":core:analytics"))) - api(project(mapOf("path" to ":data:datastore"))) + implementation(projects.core.coreAnalytics) + implementation(projects.data.datastore) implementation(platform(libs.firebase.bom)) implementation(libs.firebase.analytics) @@ -40,8 +41,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Analytics" - name = "analytics" + moduleMetadata { + artifactDescriptor { + name = "Analytics" + } } } diff --git a/framework/core/consumer-rules.pro b/firebase/firebase-analytics/consumer-rules.pro similarity index 100% rename from framework/core/consumer-rules.pro rename to firebase/firebase-analytics/consumer-rules.pro diff --git a/firebase/analytics/proguard-rules.pro b/firebase/firebase-analytics/proguard-rules.pro similarity index 100% rename from firebase/analytics/proguard-rules.pro rename to firebase/firebase-analytics/proguard-rules.pro diff --git a/firebase/analytics/src/main/AndroidManifest.xml b/firebase/firebase-analytics/src/main/AndroidManifest.xml similarity index 100% rename from firebase/analytics/src/main/AndroidManifest.xml rename to firebase/firebase-analytics/src/main/AndroidManifest.xml diff --git a/firebase/analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializer.kt b/firebase/firebase-analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializer.kt similarity index 100% rename from firebase/analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializer.kt rename to firebase/firebase-analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsManagerInitializer.kt diff --git a/firebase/analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsModule.kt b/firebase/firebase-analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsModule.kt similarity index 100% rename from firebase/analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsModule.kt rename to firebase/firebase-analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/AnalyticsModule.kt diff --git a/firebase/analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelper.kt b/firebase/firebase-analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelper.kt similarity index 100% rename from firebase/analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelper.kt rename to firebase/firebase-analytics/src/main/kotlin/dev/teogor/ceres/firebase/analytics/FirebaseAnalyticsHelper.kt diff --git a/firebase/remote-config/build.gradle.kts b/firebase/remote-config/build.gradle.kts index cd6a1045..a2ae3917 100644 --- a/firebase/remote-config/build.gradle.kts +++ b/firebase/remote-config/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,8 +30,9 @@ android { } winds { - mavenPublish { - displayName = "Remote-Config" - name = "remoteconfig" + moduleMetadata { + artifactDescriptor { + name = "Remote Config" + } } } diff --git a/framework/build.gradle.kts b/framework/build.gradle.kts index 6f8b0865..4ad53307 100644 --- a/framework/build.gradle.kts +++ b/framework/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Framework" - name = "framework" - - version = createVersion(1, 0, 0) { - alphaRelease(4) + moduleMetadata { + artifactDescriptor { + name = "Framework" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } } } + + publishingOptions { + publish = false + } } diff --git a/framework/core/.gitignore b/framework/framework-core/.gitignore similarity index 100% rename from framework/core/.gitignore rename to framework/framework-core/.gitignore diff --git a/framework/core/api/core.api b/framework/framework-core/api/core.api similarity index 100% rename from framework/core/api/core.api rename to framework/framework-core/api/core.api diff --git a/framework/framework-core/api/framework-core.api b/framework/framework-core/api/framework-core.api new file mode 100644 index 00000000..21c1ae62 --- /dev/null +++ b/framework/framework-core/api/framework-core.api @@ -0,0 +1,297 @@ +public class dev/teogor/ceres/framework/core/Activity : androidx/appcompat/app/AppCompatActivity { + public static final field $stable I + public field crashlyticsHelper Ldev/teogor/ceres/firebase/crashlytics/CrashlyticsHelper; + public field lazyStats Ldagger/Lazy; + public field networkMonitor Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility; + public fun ()V + public fun BuildNavGraph (Ldev/teogor/ceres/framework/core/model/NavGraphOptions;Landroidx/compose/runtime/Composer;I)V + public fun buildMenu (Ldev/teogor/ceres/framework/core/model/MenuConfig;Landroidx/compose/runtime/Composer;I)Ldev/teogor/ceres/framework/core/model/MenuConfig; + public fun compositionProviders (Landroidx/compose/runtime/Composer;I)Ljava/util/List; + public final fun getCrashlyticsHelper ()Ldev/teogor/ceres/firebase/crashlytics/CrashlyticsHelper; + public final fun getLazyStats ()Ldagger/Lazy; + public fun getNavigationItems ()Ljava/util/List; + public final fun getNetworkMonitor ()Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility; + public fun handleUriVariants (Landroid/net/Uri;)Ldev/teogor/ceres/navigation/core/ScreenRoute; + public final fun navigateTo (Ldev/teogor/ceres/navigation/core/ScreenRoute;)V + protected fun onCreate (Landroid/os/Bundle;)V + protected fun onNewIntent (Landroid/content/Intent;)V + protected fun onPause ()V + protected fun onResume ()V + public final fun setCrashlyticsHelper (Ldev/teogor/ceres/firebase/crashlytics/CrashlyticsHelper;)V + public fun setKeepOnScreenCondition ()Z + public final fun setLazyStats (Ldagger/Lazy;)V + public final fun setNetworkMonitor (Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility;)V + public final fun showMenu (Z)V +} + +public final class dev/teogor/ceres/framework/core/Activity_MembersInjector : dagger/MembersInjector { + public fun (Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;)V + public static fun create (Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;)Ldagger/MembersInjector; + public static fun injectCrashlyticsHelper (Ldev/teogor/ceres/framework/core/Activity;Ldev/teogor/ceres/firebase/crashlytics/CrashlyticsHelper;)V + public static fun injectLazyStats (Ldev/teogor/ceres/framework/core/Activity;Ldagger/Lazy;)V + public fun injectMembers (Ldev/teogor/ceres/framework/core/Activity;)V + public synthetic fun injectMembers (Ljava/lang/Object;)V + public static fun injectNetworkMonitor (Ldev/teogor/ceres/framework/core/Activity;Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility;)V +} + +public class dev/teogor/ceres/framework/core/Application : android/app/Application { + public static final field $stable I + public fun ()V + public fun getThemeBuilder ()Ldev/teogor/ceres/framework/core/model/ThemeBuilder; + public fun onCreate ()V +} + +public final class dev/teogor/ceres/framework/core/ComposableSingletons$ActivityKt { + public static final field INSTANCE Ldev/teogor/ceres/framework/core/ComposableSingletons$ActivityKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$framework_core_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/framework/core/app/BaseActions { + public static final field $stable I + public synthetic fun (Ldev/teogor/ceres/framework/core/app/CeresAppState;FILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ldev/teogor/ceres/framework/core/app/CeresAppState;FLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ldev/teogor/ceres/framework/core/app/CeresAppState; + public final fun component2-D9Ej5fM ()F + public final fun copy-3ABfNKs (Ldev/teogor/ceres/framework/core/app/CeresAppState;F)Ldev/teogor/ceres/framework/core/app/BaseActions; + public static synthetic fun copy-3ABfNKs$default (Ldev/teogor/ceres/framework/core/app/BaseActions;Ldev/teogor/ceres/framework/core/app/CeresAppState;FILjava/lang/Object;)Ldev/teogor/ceres/framework/core/app/BaseActions; + public fun equals (Ljava/lang/Object;)Z + public final fun getAppState ()Ldev/teogor/ceres/framework/core/app/CeresAppState; + public final fun getBottomSpace-D9Ej5fM ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/framework/core/app/BaseActionsKt { + public static final fun navigateTo (Ldev/teogor/ceres/framework/core/app/BaseActions;Ldev/teogor/ceres/navigation/core/ScreenRoute;Landroidx/navigation/NavOptions;)V + public static synthetic fun navigateTo$default (Ldev/teogor/ceres/framework/core/app/BaseActions;Ldev/teogor/ceres/navigation/core/ScreenRoute;Landroidx/navigation/NavOptions;ILjava/lang/Object;)V + public static final fun setScreenInfo (Ldev/teogor/ceres/framework/core/app/BaseActions;Lkotlin/jvm/functions/Function1;)V +} + +public final class dev/teogor/ceres/framework/core/app/CeresAppKt { + public static final fun CeresApp (Landroidx/compose/material3/windowsizeclass/WindowSizeClass;Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility;Ljava/util/List;Ldev/teogor/ceres/framework/core/app/CeresAppState;Ldev/teogor/ceres/framework/core/app/BaseActions;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function6;Landroidx/compose/runtime/Composer;II)V + public static final fun calculateInnerPadding-DH4mp8Y (Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/ui/unit/LayoutDirection;FFFFLandroidx/compose/runtime/Composer;II)Landroidx/compose/foundation/layout/PaddingValues; +} + +public final class dev/teogor/ceres/framework/core/app/CeresAppState { + public static final field $stable I + public fun (Landroidx/navigation/NavHostController;Lkotlinx/coroutines/CoroutineScope;Landroidx/compose/material3/windowsizeclass/WindowSizeClass;Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility;Ljava/util/List;)V + public final fun getCoroutineScope ()Lkotlinx/coroutines/CoroutineScope; + public final fun getCurrentDestination (Landroidx/compose/runtime/Composer;I)Landroidx/navigation/NavDestination; + public final fun getFloatingButtonView ()Ldev/teogor/ceres/framework/core/screen/FloatingButtonView; + public final fun getNavController ()Landroidx/navigation/NavHostController; + public final fun getNavigationItems ()Ljava/util/List; + public final fun getScreenInfo ()Ldev/teogor/ceres/framework/core/screen/ScreenInfo; + public final fun getShouldShowBottomBar ()Z + public final fun getShouldShowNavBar ()Z + public final fun getShouldShowNavRail ()Z + public final fun getSnackbarView ()Ldev/teogor/ceres/framework/core/screen/SnackbarView; + public final fun getToolbarTokens ()Ldev/teogor/ceres/framework/core/screen/ToolbarTokens; + public final fun getWindowSizeClass ()Landroidx/compose/material3/windowsizeclass/WindowSizeClass; + public final fun isNavigationBarVisible ()Z + public final fun isOffline ()Lkotlinx/coroutines/flow/StateFlow; + public final fun isStatusBarVisible ()Z + public final fun navigateToNavigationItem (Ldev/teogor/ceres/navigation/core/models/NavigationItem;)V + public final fun setFloatingButtonView (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;)V + public final fun setNavigationBarVisible (Z)V + public final fun setShouldShowNavBar (Z)V + public final fun setSnackbarView (Ldev/teogor/ceres/framework/core/screen/SnackbarView;)V + public final fun setStatusBarVisible (Z)V + public final fun setToolbarTokens (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;)V +} + +public final class dev/teogor/ceres/framework/core/app/CeresAppStateKt { + public static final fun rememberCeresAppState (Landroidx/compose/material3/windowsizeclass/WindowSizeClass;Ldev/teogor/ceres/core/foundation/NetworkMonitorUtility;Lkotlinx/coroutines/CoroutineScope;Landroidx/navigation/NavHostController;Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Ljava/util/List;Landroidx/compose/runtime/Composer;II)Ldev/teogor/ceres/framework/core/app/CeresAppState; +} + +public final class dev/teogor/ceres/framework/core/app/ComposableSingletons$CeresAppKt { + public static final field INSTANCE Ldev/teogor/ceres/framework/core/app/ComposableSingletons$CeresAppKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$framework_core_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/framework/core/menu/ComposableSingletons$MenuKt { + public static final field INSTANCE Ldev/teogor/ceres/framework/core/menu/ComposableSingletons$MenuKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$framework_core_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/framework/core/menu/ComposableSingletons$MenuUtilsKt { + public static final field INSTANCE Ldev/teogor/ceres/framework/core/menu/ComposableSingletons$MenuUtilsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$framework_core_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/framework/core/menu/CustomMenuItem : dev/teogor/ceres/framework/core/menu/MenuItem { + public static final field $stable I + public fun (Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;)V + public synthetic fun (Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getClickable ()Lkotlin/jvm/functions/Function0; + public final fun getContent ()Lkotlin/jvm/functions/Function2; +} + +public final class dev/teogor/ceres/framework/core/menu/Menu { + public static final field $stable I + public fun ()V +} + +public final class dev/teogor/ceres/framework/core/menu/MenuComposeKt { + public static final fun MenuTitle (Ljava/lang/String;ZLkotlin/jvm/functions/Function0;Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/runtime/Composer;II)V +} + +public final class dev/teogor/ceres/framework/core/menu/MenuDivider : dev/teogor/ceres/framework/core/menu/MenuItem { + public static final field $stable I + public fun ()V +} + +public final class dev/teogor/ceres/framework/core/menu/MenuFooter : dev/teogor/ceres/framework/core/menu/MenuItem { + public static final field $stable I + public fun (Ljava/lang/String;Landroidx/compose/ui/Modifier;)V + public synthetic fun (Ljava/lang/String;Landroidx/compose/ui/Modifier;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getLicenseHolder ()Ljava/lang/String; + public final fun getModifier ()Landroidx/compose/ui/Modifier; +} + +public class dev/teogor/ceres/framework/core/menu/MenuItem { + public static final field $stable I + public fun ()V +} + +public final class dev/teogor/ceres/framework/core/menu/MenuItemContent : dev/teogor/ceres/framework/core/menu/MenuItem { + public static final field $stable I + public fun (Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V + public synthetic fun (Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getClickable ()Lkotlin/jvm/functions/Function0; + public final fun getContent ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getIcon ()Landroidx/compose/ui/graphics/vector/ImageVector; +} + +public final class dev/teogor/ceres/framework/core/menu/MenuKt { + public static final fun menu (Landroidx/compose/foundation/lazy/LazyListScope;Lkotlin/jvm/functions/Function1;)V + public static final fun menuContent (Ldev/teogor/ceres/framework/core/menu/Menu;Lkotlin/jvm/functions/Function1;)V + public static final fun menuDivider (Ljava/util/List;)V + public static final fun menuFooter (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/Modifier;)V + public static synthetic fun menuFooter$default (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/Modifier;ILjava/lang/Object;)V + public static final fun menuItem (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V + public static final fun menuItem (Ljava/util/List;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;)V + public static synthetic fun menuItem$default (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V + public static synthetic fun menuItem$default (Ljava/util/List;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V + public static final fun menuTop (Ldev/teogor/ceres/framework/core/menu/Menu;Lkotlin/jvm/functions/Function1;)V +} + +public final class dev/teogor/ceres/framework/core/menu/MenuUtilsKt { + public static final fun menuUserData (Ljava/util/List;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V + public static synthetic fun menuUserData$default (Ljava/util/List;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V + public static final fun menuUserId (Ljava/util/List;Landroidx/compose/ui/Modifier;)V + public static synthetic fun menuUserId$default (Ljava/util/List;Landroidx/compose/ui/Modifier;ILjava/lang/Object;)V +} + +public final class dev/teogor/ceres/framework/core/model/MenuConfig { + public static final field $stable I + public fun ()V + public final fun getHeaderContent ()Lkotlin/jvm/functions/Function3; + public final fun getMenuContent ()Lkotlin/jvm/functions/Function1; + public final fun setHeaderContent (Lkotlin/jvm/functions/Function3;)V + public final fun setMenuContent (Lkotlin/jvm/functions/Function1;)V +} + +public final class dev/teogor/ceres/framework/core/model/NavGraphOptions { + public static final field $stable I + public fun (Landroidx/compose/material3/windowsizeclass/WindowSizeClass;Ldev/teogor/ceres/framework/core/app/CeresAppState;Ldev/teogor/ceres/framework/core/app/BaseActions;Landroidx/compose/foundation/layout/PaddingValues;)V + public final fun component1 ()Landroidx/compose/material3/windowsizeclass/WindowSizeClass; + public final fun component2 ()Ldev/teogor/ceres/framework/core/app/CeresAppState; + public final fun component3 ()Ldev/teogor/ceres/framework/core/app/BaseActions; + public final fun component4 ()Landroidx/compose/foundation/layout/PaddingValues; + public final fun copy (Landroidx/compose/material3/windowsizeclass/WindowSizeClass;Ldev/teogor/ceres/framework/core/app/CeresAppState;Ldev/teogor/ceres/framework/core/app/BaseActions;Landroidx/compose/foundation/layout/PaddingValues;)Ldev/teogor/ceres/framework/core/model/NavGraphOptions; + public static synthetic fun copy$default (Ldev/teogor/ceres/framework/core/model/NavGraphOptions;Landroidx/compose/material3/windowsizeclass/WindowSizeClass;Ldev/teogor/ceres/framework/core/app/CeresAppState;Ldev/teogor/ceres/framework/core/app/BaseActions;Landroidx/compose/foundation/layout/PaddingValues;ILjava/lang/Object;)Ldev/teogor/ceres/framework/core/model/NavGraphOptions; + public fun equals (Ljava/lang/Object;)Z + public final fun getBaseActions ()Ldev/teogor/ceres/framework/core/app/BaseActions; + public final fun getCeresAppState ()Ldev/teogor/ceres/framework/core/app/CeresAppState; + public final fun getPadding ()Landroidx/compose/foundation/layout/PaddingValues; + public final fun getWindowSizeClass ()Landroidx/compose/material3/windowsizeclass/WindowSizeClass; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/framework/core/model/ThemeBuilder { + public static final field $stable I + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Ldev/teogor/ceres/framework/core/model/ThemeBuilder; + public static synthetic fun copy$default (Ldev/teogor/ceres/framework/core/model/ThemeBuilder;Ljava/lang/String;ILjava/lang/Object;)Ldev/teogor/ceres/framework/core/model/ThemeBuilder; + public fun equals (Ljava/lang/Object;)Z + public final fun getThemeSeed ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/framework/core/screen/FloatingButtonView { + public static final field $stable I + public fun ()V +} + +public final class dev/teogor/ceres/framework/core/screen/ScreenInfo { + public static final field $stable I + public fun (ZZZLdev/teogor/ceres/framework/core/screen/FloatingButtonView;Ldev/teogor/ceres/framework/core/screen/SnackbarView;Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;)V + public synthetic fun (ZZZLdev/teogor/ceres/framework/core/screen/FloatingButtonView;Ldev/teogor/ceres/framework/core/screen/SnackbarView;Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (ZZZLdev/teogor/ceres/framework/core/screen/FloatingButtonView;Ldev/teogor/ceres/framework/core/screen/SnackbarView;Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;)Ldev/teogor/ceres/framework/core/screen/ScreenInfo; + public static synthetic fun copy$default (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;ZZZLdev/teogor/ceres/framework/core/screen/FloatingButtonView;Ldev/teogor/ceres/framework/core/screen/SnackbarView;Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;ILjava/lang/Object;)Ldev/teogor/ceres/framework/core/screen/ScreenInfo; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/framework/core/screen/ScreenInfoKt { + public static final fun action (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;Lkotlin/jvm/functions/Function0;)V + public static final fun action (Ldev/teogor/ceres/framework/core/screen/SnackbarView;Lkotlin/jvm/functions/Function0;)V + public static final fun cleanFullScreen (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function0;)V + public static final fun content (Ldev/teogor/ceres/framework/core/screen/SnackbarView;Lkotlin/jvm/functions/Function0;)V + public static final fun contentDescription (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;Lkotlin/jvm/functions/Function0;)V + public static final fun destination (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;Lkotlin/jvm/functions/Function0;)V + public static final fun floatingButton (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function1;)V + public static final fun fullScreen (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function0;)V + public static final fun icon (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;Lkotlin/jvm/functions/Function0;)V + public static final fun icon (Ldev/teogor/ceres/framework/core/screen/SnackbarView;Lkotlin/jvm/functions/Function0;)V + public static final fun isNavigationBarVisible (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function0;)V + public static final fun isStatusBarVisible (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function0;)V + public static final fun isVisible (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;Lkotlin/jvm/functions/Function0;)V + public static final fun isVisible (Ldev/teogor/ceres/framework/core/screen/SnackbarView;Lkotlin/jvm/functions/Function0;)V + public static final fun isVisible (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function0;)V + public static final fun rememberScreenInfo (ZZZLdev/teogor/ceres/framework/core/screen/FloatingButtonView;Ldev/teogor/ceres/framework/core/screen/SnackbarView;Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Landroidx/compose/runtime/Composer;II)Ldev/teogor/ceres/framework/core/screen/ScreenInfo; + public static final fun rememberSnackbarVisibility (JLandroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/MutableState; + public static final fun showBackButton (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function0;)V + public static final fun showDropDownMenu (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function0;)V + public static final fun showEditButton (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function0;)V + public static final fun showNavBar (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function0;)V + public static final fun showSettingsButton (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function0;)V + public static final fun snackbar (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function1;)V + public static final fun statusBarOnly (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function0;)V + public static final fun tint (Ldev/teogor/ceres/framework/core/screen/FloatingButtonView;Lkotlin/jvm/functions/Function0;)V + public static final fun tint (Ldev/teogor/ceres/framework/core/screen/SnackbarView;Lkotlin/jvm/functions/Function0;)V + public static final fun toolbarButton (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Lkotlin/jvm/functions/Function0;)Ldev/teogor/ceres/ui/designsystem/ButtonData; + public static final fun toolbarButtons (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function1;)V + public static final fun toolbarDropDownItem (Ljava/util/List;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Ldev/teogor/ceres/ui/designsystem/DropDownItem; + public static final fun toolbarDropDownItems (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function1;)V + public static final fun toolbarRotatableButton (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;FLkotlin/jvm/functions/Function0;)Ldev/teogor/ceres/ui/designsystem/ButtonData; + public static final fun toolbarTitle (Ldev/teogor/ceres/framework/core/screen/ToolbarTokens;Lkotlin/jvm/functions/Function0;)V + public static final fun toolbarTokens (Ldev/teogor/ceres/framework/core/screen/ScreenInfo;Lkotlin/jvm/functions/Function1;)V + public static final fun toolbarTokens (Ljava/lang/String;ZZZZZLjava/util/List;Ljava/util/List;)Ldev/teogor/ceres/framework/core/screen/ToolbarTokens; + public static synthetic fun toolbarTokens$default (Ljava/lang/String;ZZZZZLjava/util/List;Ljava/util/List;ILjava/lang/Object;)Ldev/teogor/ceres/framework/core/screen/ToolbarTokens; + public static final fun toolbarTwoStatesButton (Ljava/util/List;Ljava/lang/String;Landroidx/compose/ui/graphics/vector/ImageVector;Landroidx/compose/ui/graphics/vector/ImageVector;ZLkotlin/jvm/functions/Function0;)Ldev/teogor/ceres/ui/designsystem/ButtonData; +} + +public final class dev/teogor/ceres/framework/core/screen/SnackbarView { + public static final field $stable I + public fun ()V +} + +public final class dev/teogor/ceres/framework/core/screen/ToolbarTokens { + public static final field $stable I + public fun ()V +} + diff --git a/framework/core/build.gradle.kts b/framework/framework-core/build.gradle.kts similarity index 69% rename from framework/core/build.gradle.kts rename to framework/framework-core/build.gradle.kts index 6c8d8cbb..3cf74de0 100644 --- a/framework/core/build.gradle.kts +++ b/framework/framework-core/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,26 +31,19 @@ android { } dependencies { - api(project(":core:common")) - api(project(":core:foundation")) - api(project(":core:runtime")) - api(project(":core:register")) - - api(project(":data:compose")) - // required for theme config only - api(project(":data:datastore")) - - api(project(":navigation:core")) - - api(project(":ui:designsystem")) - api(project(":ui:foundation")) - api(project(":ui:theme")) - api(project(":ui:compose")) - - api(project(":firebase:analytics")) - api(project(":firebase:crashlytics")) - - api(project(":monetisation:ads")) + api(projects.core.common) + api(projects.core.foundation) + api(projects.core.runtime) + api(projects.core.register) + api(projects.data.dataCompose) + api(projects.data.datastore) + api(projects.navigation.core) + api(projects.firebase.firebaseAnalytics) + api(projects.firebase.crashlytics) + api(projects.monetisation.ads) + api(projects.ui.designsystem) + api(projects.ui.theme) + api(projects.ui.compose) implementation(libs.androidx.activity.compose) implementation(libs.androidx.lifecycle.runtimeCompose) @@ -63,8 +57,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Core" - name = "core" + moduleMetadata { + artifactDescriptor { + name = "Core" + } } } diff --git a/framework/ui/consumer-rules.pro b/framework/framework-core/consumer-rules.pro similarity index 100% rename from framework/ui/consumer-rules.pro rename to framework/framework-core/consumer-rules.pro diff --git a/framework/core/proguard-rules.pro b/framework/framework-core/proguard-rules.pro similarity index 100% rename from framework/core/proguard-rules.pro rename to framework/framework-core/proguard-rules.pro diff --git a/framework/core/src/main/AndroidManifest.xml b/framework/framework-core/src/main/AndroidManifest.xml similarity index 100% rename from framework/core/src/main/AndroidManifest.xml rename to framework/framework-core/src/main/AndroidManifest.xml diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt similarity index 98% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt index 648986ea..a50eb865 100644 --- a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt +++ b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/Activity.kt @@ -264,13 +264,13 @@ open class Activity : AppCompatActivity() { open fun setKeepOnScreenCondition(): Boolean = false - override fun onNewIntent(intent: Intent?) { + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) handleIntent(intent) } - private fun handleIntent(intent: Intent?) { - intent?.data?.let { + private fun handleIntent(intent: Intent) { + intent.data?.let { navigationParameters.uri = it } } diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/Application.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/Application.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/Application.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/Application.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/app/BaseActions.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/app/BaseActions.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/app/BaseActions.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/app/BaseActions.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresApp.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresApp.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresApp.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresApp.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresAppState.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresAppState.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresAppState.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/app/CeresAppState.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/Menu.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/Menu.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/Menu.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/Menu.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuCompose.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuCompose.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuCompose.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuCompose.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuUtils.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuUtils.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuUtils.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/menu/MenuUtils.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/model/MenuConfig.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/model/MenuConfig.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/model/MenuConfig.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/model/MenuConfig.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/model/NavGraphOptions.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/model/NavGraphOptions.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/model/NavGraphOptions.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/model/NavGraphOptions.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/model/ThemeBuilder.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/model/ThemeBuilder.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/model/ThemeBuilder.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/model/ThemeBuilder.kt diff --git a/framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/screen/ScreenInfo.kt b/framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/screen/ScreenInfo.kt similarity index 100% rename from framework/core/src/main/kotlin/dev/teogor/ceres/framework/core/screen/ScreenInfo.kt rename to framework/framework-core/src/main/kotlin/dev/teogor/ceres/framework/core/screen/ScreenInfo.kt diff --git a/framework/ui/.gitignore b/framework/framework-ui/.gitignore similarity index 100% rename from framework/ui/.gitignore rename to framework/framework-ui/.gitignore diff --git a/framework/ui/api/ui.api b/framework/framework-ui/api/framework-ui.api similarity index 100% rename from framework/ui/api/ui.api rename to framework/framework-ui/api/framework-ui.api diff --git a/screen/core/consumer-rules.pro b/framework/framework-ui/api/ui.api similarity index 100% rename from screen/core/consumer-rules.pro rename to framework/framework-ui/api/ui.api diff --git a/framework/ui/build.gradle.kts b/framework/framework-ui/build.gradle.kts similarity index 90% rename from framework/ui/build.gradle.kts rename to framework/framework-ui/build.gradle.kts index 8b155a65..373536b3 100644 --- a/framework/ui/build.gradle.kts +++ b/framework/framework-ui/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,8 +31,9 @@ android { } winds { - mavenPublish { - displayName = "UI" - name = "ui" + moduleMetadata { + artifactDescriptor { + name = "UI" + } } } diff --git a/screen/ui/consumer-rules.pro b/framework/framework-ui/consumer-rules.pro similarity index 100% rename from screen/ui/consumer-rules.pro rename to framework/framework-ui/consumer-rules.pro diff --git a/framework/ui/proguard-rules.pro b/framework/framework-ui/proguard-rules.pro similarity index 100% rename from framework/ui/proguard-rules.pro rename to framework/framework-ui/proguard-rules.pro diff --git a/screen/ui/src/main/AndroidManifest.xml b/framework/framework-ui/src/main/AndroidManifest.xml similarity index 88% rename from screen/ui/src/main/AndroidManifest.xml rename to framework/framework-ui/src/main/AndroidManifest.xml index 1964aefa..ba113ba6 100644 --- a/screen/ui/src/main/AndroidManifest.xml +++ b/framework/framework-ui/src/main/AndroidManifest.xml @@ -14,6 +14,4 @@ See the License for the specific language governing permissions and limitations under the License. --> - - - \ No newline at end of file + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 80945022..c91e0719 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,226 +1,232 @@ [versions] -aboutLibraries = "10.8.3" -accompanist = "0.34.0" -androidDesugarJdkLibs = "2.0.4" +aboutLibraries = "11.1.3" +accompanist = "0.35.0-alpha" +android-desugar-jdk-libs = "2.0.4" android-gradle-plugin = "8.3.2" -androidxActivity = "1.8.2" -androidxAnnotation = "1.7.1" -androidxAppCompat = "1.6.1" +androidTools = "31.3.2" +androidxActivity = "1.9.0-rc01" +androidxAnnotation = "1.8.0-beta01" +androidxAppCompat = "1.7.0-alpha03" androidxBrowser = "1.8.0" androidxComposeBom = "2024.04.00" androidxComposeCompiler = "1.5.11" -androidxComposeMaterial3 = "1.2.1" +androidxComposeMaterial3 = "1.3.0-alpha04" androidxComposeRuntimeTracing = "1.0.0-beta01" androidxConstraint = "1.1.0-alpha13" -androidxCore = "1.12.0" -androidxCoreSplashscreen = "1.0.1" -androidxDataStore = "1.0.0" +androidxCore = "1.13.0-rc01" +androidxCoreSplashscreen = "1.1.0-rc01" +androidxDataStore = "1.1.0-rc01" androidxEspresso = "3.5.1" androidxHiltNavigationCompose = "1.2.0" -androidxLifecycle = "2.7.0" +androidxLifecycle = "2.8.0-alpha04" androidxMacroBenchmark = "1.2.3" androidxMetrics = "1.0.0-beta01" -androidxNavigation = "2.7.7" -androidxProfileinstaller = "1.3.1" +androidxNavigation = "2.8.0-alpha06" +androidxProfileinstaller = "1.4.0-alpha01" androidxStartup = "1.1.1" androidxTestCore = "1.5.0" androidxTestExt = "1.1.5" androidxTestRules = "1.5.0" androidxTestRunner = "1.5.3" -androidxTracing = "1.2.0" +androidxTracing = "1.3.0-alpha02" androidxUiAutomator = "2.3.0" -androidxWindowManager = "1.2.0" +androidxWindowManager = "1.3.0-beta01" androidxWork = "2.9.0" -apiValidator = "0.14.0" -buildConfig = "3.1.0" +apiValidator = "0.15.0-Beta.2" +ben-manes-versions = "0.51.0" +buildConfig = "5.3.5" coil = "2.6.0" colorMath = "3.2.0" -dokka = "1.9.10" +dokka = "1.9.20" espressoCore = "3.5.1" +farimarwat-admobnative = "1.2" firebaseBom = "32.8.1" firebaseCrashlyticsPlugin = "2.9.9" firebasePerfPlugin = "1.4.2" gmsPlugin = "4.4.1" -googleMaterial = "1.11.0" -gradlePublish = "1.1.0" +google-android-ump = "2.2.0" +google-play-services-ads = "23.0.0" +googleMaterial = "1.12.0-rc01" +gradlePublish = "1.2.1" gson = "2.10.1" hilt = "2.51.1" hiltExt = "1.2.0" jacoco = "0.8.7" jdom2 = "2.0.6.1" jsoup = "1.16.1" -junit = "4.13.2" +junit = "5.10.2" junit4 = "4.13.2" kotlin = "1.9.23" -kotlin-poet = "1.14.2" +kotlin-poet = "1.15.3" kotlin-xml-builder = "1.9.1" kotlinx-serialization-core = "1.6.3" -kotlinxCollections = "0.3.6" -kotlinxCoroutines = "1.8.0" -kotlinxDatetime = "0.5.0" +kotlinxCollections = "0.3.7" +kotlinxCoroutines = "1.8.1-Beta" +kotlinxDatetime = "0.6.0-RC.2" kotlinxSerializationJson = "1.6.3" ksp = "1.9.23-1.0.20" -landscapist = "2.3.1" +landscapist = "2.3.3" lifecycleRuntimeKtx = "2.7.0" lint = "31.3.2" +littlerobots-version-catalog-update = "0.8.4" okhttp = "4.12.0" -protobuf = "3.25.2" +protobuf = "4.26.1" protobufPlugin = "0.9.4" -querent = "1.0.0-alpha02" retrofit = "2.9.0" retrofitKotlinxSerializationJson = "1.0.0" room = "2.6.1" spotless = "6.25.0" startup = "1.2.0-alpha02" -turbine = "1.0.0" -vanniktechMavenPlugin = "0.27.0" -winds = "1.0.0-alpha04" -xenoglot-bom = "1.0.0-alpha01" teogor-gleam = "1.0.0-alpha01" -google-android-ump = "2.2.0" +teogor-querent = "1.0.0-alpha02" +teogor-winds = "1.0.0-beta04" +teogor-xenoglot = "1.0.0-alpha01" +truth = "1.4.2" +turbine = "1.0.0" +vanniktech-maven-plugin = "0.28.0" [libraries] -about-libraries-core = { group = "com.mikepenz", name = "aboutlibraries-core", version.ref = "aboutLibraries" } -accompanist-testharness = { group = "com.google.accompanist", name = "accompanist-testharness", version.ref = "accompanist" } -accompanist-permissions = { group = "com.google.accompanist", name = "accompanist-permissions", version.ref = "accompanist" } -android-desugar-jdk-libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" } -androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" } -androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat" } -androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidxAnnotation" } -androidx-benchmark-macro = { group = "androidx.benchmark", name = "benchmark-macro-junit4", version.ref = "androidxMacroBenchmark" } -androidx-browser = { group = "androidx.browser", name = "browser", version.ref = "androidxBrowser" } -androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" } -androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout" } -androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" } -androidx-compose-material = { group = "androidx.compose.material", name = "material" } -androidx-compose-material-iconsExtended = { group = "androidx.compose.material", name = "material-icons-extended" } -androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "androidxComposeMaterial3" } -androidx-compose-material3-windowSizeClass = { group = "androidx.compose.material3", name = "material3-window-size-class", version.ref = "androidxComposeMaterial3" } -androidx-compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata" } -androidx-compose-runtime-tracing = { group = "androidx.compose.runtime", name = "runtime-tracing", version.ref = "androidxComposeRuntimeTracing" } -androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" } -androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" } -androidx-compose-ui-testManifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } -androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } -androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } -androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util" } -androidx-compose-ui-viewbinding = { group = "androidx.compose.ui", name = "ui-viewbinding" } -androidx-constraintlayout-compose = { group = "androidx.constraintlayout", name = "constraintlayout-compose", version.ref = "androidxConstraint" } -androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } -androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidxCoreSplashscreen" } -androidx-dataStore-core = { group = "androidx.datastore", name = "datastore", version.ref = "androidxDataStore" } -androidx-dataStore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "androidxDataStore" } -androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" } -androidx-lifecycle-common = { group = "androidx.lifecycle", name = "lifecycle-common", version.ref = "androidxLifecycle" } -androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } -androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "androidxLifecycle" } -androidx-lifecycle-runtimeCompose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycle" } -androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } -androidx-lifecycle-viewModelCompose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } -androidx-metrics = { group = "androidx.metrics", name = "metrics-performance", version.ref = "androidxMetrics" } -androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "androidxNavigation" } -androidx-navigation-testing = { group = "androidx.navigation", name = "navigation-testing", version.ref = "androidxNavigation" } -androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "androidxProfileinstaller" } -androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidxTestCore" } -androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" } -androidx-test-ext = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxTestExt" } -androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTestRules" } -androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidxTestRunner" } -androidx-test-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "androidxUiAutomator" } -androidx-tracing-ktx = { group = "androidx.tracing", name = "tracing-ktx", version.ref = "androidxTracing" } +about-libraries-core = { module = "com.mikepenz:aboutlibraries-core", version.ref = "aboutLibraries" } +accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } +accompanist-testharness = { module = "com.google.accompanist:accompanist-testharness", version.ref = "accompanist" } +ajalt-colormath = { module = "com.github.ajalt.colormath:colormath", version.ref = "colorMath" } +android-desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "android-desugar-jdk-libs" } +android-tools-common = { module = "com.android.tools:common", version.ref = "androidTools" } +androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" } +androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "androidxAnnotation" } +androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidxAppCompat" } +androidx-benchmark-macro = { module = "androidx.benchmark:benchmark-macro-junit4", version.ref = "androidxMacroBenchmark" } +androidx-browser = { module = "androidx.browser:browser", version.ref = "androidxBrowser" } +androidx-compose-bom = { module = "androidx.compose:compose-bom", version.ref = "androidxComposeBom" } +androidx-compose-foundation = { module = "androidx.compose.foundation:foundation" } +androidx-compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" } +androidx-compose-material = { module = "androidx.compose.material:material" } +androidx-compose-material-iconsExtended = { module = "androidx.compose.material:material-icons-extended" } +androidx-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "androidxComposeMaterial3" } +androidx-compose-material3-windowSizeClass = { module = "androidx.compose.material3:material3-window-size-class", version.ref = "androidxComposeMaterial3" } +androidx-compose-runtime = { module = "androidx.compose.runtime:runtime" } +androidx-compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } +androidx-compose-runtime-tracing = { module = "androidx.compose.runtime:runtime-tracing", version.ref = "androidxComposeRuntimeTracing" } +androidx-compose-ui-test = { module = "androidx.compose.ui:ui-test-junit4" } +androidx-compose-ui-testManifest = { module = "androidx.compose.ui:ui-test-manifest" } +androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } +androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } +androidx-compose-ui-util = { module = "androidx.compose.ui:ui-util" } +androidx-compose-ui-viewbinding = { module = "androidx.compose.ui:ui-viewbinding" } +androidx-constraintlayout-compose = { module = "androidx.constraintlayout:constraintlayout-compose", version.ref = "androidxConstraint" } +androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" } +androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "androidxCoreSplashscreen" } +androidx-dataStore-core = { module = "androidx.datastore:datastore", version.ref = "androidxDataStore" } +androidx-dataStore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "androidxDataStore" } +androidx-hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" } +androidx-lifecycle-common = { module = "androidx.lifecycle:lifecycle-common", version.ref = "androidxLifecycle" } +androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-process = { module = "androidx.lifecycle:lifecycle-process", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtimeCompose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewModelCompose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } +androidx-metrics = { module = "androidx.metrics:metrics-performance", version.ref = "androidxMetrics" } +androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "androidxNavigation" } +androidx-navigation-testing = { module = "androidx.navigation:navigation-testing", version.ref = "androidxNavigation" } +androidx-profileinstaller = { module = "androidx.profileinstaller:profileinstaller", version.ref = "androidxProfileinstaller" } +androidx-test-core = { module = "androidx.test:core", version.ref = "androidxTestCore" } +androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidxEspresso" } +androidx-test-ext = { module = "androidx.test.ext:junit-ktx", version.ref = "androidxTestExt" } +androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidxTestRules" } +androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidxTestRunner" } +androidx-test-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androidxUiAutomator" } +androidx-tracing-ktx = { module = "androidx.tracing:tracing-ktx", version.ref = "androidxTracing" } androidx-window-manager = { module = "androidx.window:window", version.ref = "androidxWindowManager" } -androidx-work-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidxWork" } -androidx-work-testing = { group = "androidx.work", name = "work-testing", version.ref = "androidxWork" } -ajalt-colormath = { group = "com.github.ajalt.colormath", name = "colormath", version.ref = "colorMath" } -coil-kt-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" } -coil-kt-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" } -coil-kt = { group = "io.coil-kt", name = "coil", version.ref = "coil" } -compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" } -core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } -espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } -firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" } -firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" } -firebase-cloud-messaging = { group = "com.google.firebase", name = "firebase-messaging" } -firebase-crashlytics-gradle = { group = "com.google.firebase", name = "firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsPlugin" } -firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" } -firebase-performance-gradle = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" } -firebase-performance = { group = "com.google.firebase", name = "firebase-perf" } -google-material = { group = "com.google.android.material", name = "material", version.ref = "googleMaterial" } +androidx-work-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "androidxWork" } +androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "androidxWork" } +coil-kt = { module = "io.coil-kt:coil", version.ref = "coil" } +coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil" } +coil-kt-svg = { module = "io.coil-kt:coil-svg", version.ref = "coil" } +farimarwat-admobnative-compose = { module = "io.github.farimarwat:admobnative-compose", version.ref = "farimarwat-admobnative" } +firebase-analytics = { module = "com.google.firebase:firebase-analytics" } +firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" } +firebase-cloud-messaging = { module = "com.google.firebase:firebase-messaging" } +firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" } +firebase-crashlytics-gradle = { module = "com.google.firebase:firebase-crashlytics-gradle", version.ref = "firebaseCrashlyticsPlugin" } +firebase-performance = { module = "com.google.firebase:firebase-perf" } +firebase-performance-gradle = { module = "com.google.firebase:perf-plugin", version.ref = "firebasePerfPlugin" } google-android-ump = { module = "com.google.android.ump:user-messaging-platform", version.ref = "google-android-ump" } -gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } -hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" } -hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } -hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" } -hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "hiltExt" } -hilt-ext-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "hiltExt" } -jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" } -junit4 = { group = "junit", name = "junit", version.ref = "junit4" } -junit = { group = "junit", name = "junit", version.ref = "junit" } -kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } -kotlinx-collections = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxCollections" } -kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } -kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } -kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" } -kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } -kotlinx-serialization-protobuf = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-protobuf", version.ref = "kotlinxSerializationJson" } -landscapist-glide = { group = "com.github.skydoves", name = "landscapist-glide", version.ref = "landscapist" } -landscapist-coil = { group = "com.github.skydoves", name = "landscapist-coil", version.ref = "landscapist" } -landscapist-fresco = { group = "com.github.skydoves", name = "landscapist-fresco", version.ref = "landscapist" } -landscapist-placeholder = { group = "com.github.skydoves", name = "landscapist-placeholder", version.ref = "landscapist" } -lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } -lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "lint" } -okhttp-logging = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp" } -protobuf-kotlin-lite = { group = "com.google.protobuf", name = "protobuf-kotlin-lite", version.ref = "protobuf" } -protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } -retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } -retrofit-kotlin-serialization = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerializationJson" } -room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } -room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } -room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } -startup-runtime = { group = "androidx.startup", name = "startup-runtime", version.ref = "startup" } -turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" } -ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } -ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } -ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } -ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } -ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } -ui = { group = "androidx.compose.ui", name = "ui" } -kotlin-poet = { group = "com.squareup", name = "kotlinpoet", version.ref = "kotlin-poet" } +google-material = { module = "com.google.android.material:material", version.ref = "googleMaterial" } +google-play-services-ads = { module = "com.google.android.gms:play-services-ads", version.ref = "google-play-services-ads" } +# Dependencies of the included build-logic +gradle-plugin-android = { module = "com.android.tools.build:gradle", version.ref = "android-gradle-plugin" } +gradle-plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +gradle-plugin-ksp = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } +hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } +hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } +hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } +hilt-ext-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "hiltExt" } +hilt-ext-work = { module = "androidx.hilt:hilt-work", version.ref = "hiltExt" } +jdom2 = { module = "org.jdom:jdom2", version.ref = "jdom2" } +jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } +junit = { module = "junit:junit", version.ref = "junit" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } +junit4 = { module = "junit:junit", version.ref = "junit4" } +kotlin-poet = { module = "com.squareup:kotlinpoet", version.ref = "kotlin-poet" } +kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } kotlin-xml-builder = { module = "org.redundent:kotlin-xml-builder", version.ref = "kotlin-xml-builder" } +kotlinx-collections = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollections" } +kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } +kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization-core" } -jdom2 = { module = "org.jdom:jdom2", version.ref = "jdom2" } -xenoglot-bom = { group = "dev.teogor.xenoglot", name = "bom", version.ref = "xenoglot-bom" } -xenoglot-android = { group = "dev.teogor.xenoglot", name = "android" } - -# Dependencies of the included build-logic -gradle-plugin-android = { group = "com.android.tools.build", name = "gradle", version.ref = "android-gradle-plugin" } -gradle-plugin-kotlin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } -gradle-plugin-ksp = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } +kotlinx-serialization-protobuf = { module = "org.jetbrains.kotlinx:kotlinx-serialization-protobuf", version.ref = "kotlinxSerializationJson" } +landscapist-coil = { module = "com.github.skydoves:landscapist-coil", version.ref = "landscapist" } +landscapist-fresco = { module = "com.github.skydoves:landscapist-fresco", version.ref = "landscapist" } +landscapist-glide = { module = "com.github.skydoves:landscapist-glide", version.ref = "landscapist" } +landscapist-placeholder = { module = "com.github.skydoves:landscapist-placeholder", version.ref = "landscapist" } +lint-api = { module = "com.android.tools.lint:lint-api", version.ref = "lint" } +okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" } +protobuf-kotlin-lite = { module = "com.google.protobuf:protobuf-kotlin-lite", version.ref = "protobuf" } +protobuf-protoc = "com.google.protobuf:protoc:21.0-rc-1" +retrofit-core = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } +retrofit-kotlin-serialization = { module = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter", version.ref = "retrofitKotlinxSerializationJson" } +room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" } +room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" } +room-runtime = { module = "androidx.room:room-runtime", version.ref = "room" } +startup-runtime = { module = "androidx.startup:startup-runtime", version.ref = "startup" } +truth = { module = "com.google.truth:truth", version.ref = "truth" } +turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" } +ui = { module = "androidx.compose.ui:ui" } +ui-graphics = { module = "androidx.compose.ui:ui-graphics" } +ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } +ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } +ui-tooling = { module = "androidx.compose.ui:ui-tooling" } +ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } +vanniktech-maven-api = { module = "com.vanniktech.maven.publish.base:com.vanniktech.maven.publish.base.gradle.plugin", version.ref = "vanniktech-maven-plugin" } +xenoglot-android = { module = "dev.teogor.xenoglot:android" } +xenoglot-bom = { module = "dev.teogor.xenoglot:bom", version.ref = "teogor-xenoglot" } [plugins] about-libraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutLibraries" } android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" } android-library = { id = "com.android.library", version.ref = "android-gradle-plugin" } android-test = { id = "com.android.test", version.ref = "android-gradle-plugin" } -api-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "apiValidator" } +ben-manes-versions = { id = "com.github.ben-manes.versions", version.ref = "ben-manes-versions" } build-config = { id = "com.github.gmazzo.buildconfig", version.ref = "buildConfig" } -dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" } firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" } gms = { id = "com.google.gms.google-services", version.ref = "gmsPlugin" } gradle-publish = { id = "com.gradle.plugin-publish", version.ref = "gradlePublish" } hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } -kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +jetbrains-binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "apiValidator" } +jetbrains-dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } +jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +littlerobots-version-catalog-update = { id = "nl.littlerobots.version-catalog-update", version.ref = "littlerobots-version-catalog-update" } protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } # TODO: Temporary workaround until next release # Use version 1.0.0-alpha03-SNAPSHOT-8f9a736 for the querent module -querent = { id = "dev.teogor.querent", version = "1.0.0-alpha03-SNAPSHOT-8f9a736" } +querent = "dev.teogor.querent:1.0.0-alpha03-SNAPSHOT-8f9a736" spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } -vanniktech-maven = { id = "com.vanniktech.maven.publish", version.ref = "vanniktechMavenPlugin" } -winds = { id = "dev.teogor.winds", version.ref = "winds" } - -[bundles] - +teogor-winds = { id = "dev.teogor.winds", version.ref = "teogor-winds" } +vanniktech-maven = { id = "com.vanniktech.maven.publish", version.ref = "vanniktech-maven-plugin" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d8dd229..69317583 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sun Sep 03 17:17:31 EEST 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/monetisation/admob/api/admob.api b/monetisation/admob/api/admob.api index 053d3371..146b4004 100644 --- a/monetisation/admob/api/admob.api +++ b/monetisation/admob/api/admob.api @@ -63,14 +63,14 @@ public abstract interface annotation class dev/teogor/ceres/monetisation/admob/a public abstract interface annotation class dev/teogor/ceres/monetisation/admob/annotations/AdUI : java/lang/annotation/Annotation { } -public final class dev/teogor/ceres/monetisation/admob/databinding/AdmobNativeBinding : androidx/viewbinding/ViewBinding { +public final class dev/teogor/ceres/monetisation/admob/databinding/MonetisationAdmobNativeBinding : androidx/viewbinding/ViewBinding { public final field composeView Landroidx/compose/ui/platform/ComposeView; public final field parentNative Lcom/google/android/gms/ads/nativead/NativeAdView; - public static fun bind (Landroid/view/View;)Ldev/teogor/ceres/monetisation/admob/databinding/AdmobNativeBinding; + public static fun bind (Landroid/view/View;)Ldev/teogor/ceres/monetisation/admob/databinding/MonetisationAdmobNativeBinding; public synthetic fun getRoot ()Landroid/view/View; public fun getRoot ()Lcom/google/android/gms/ads/nativead/NativeAdView; - public static fun inflate (Landroid/view/LayoutInflater;)Ldev/teogor/ceres/monetisation/admob/databinding/AdmobNativeBinding; - public static fun inflate (Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Z)Ldev/teogor/ceres/monetisation/admob/databinding/AdmobNativeBinding; + public static fun inflate (Landroid/view/LayoutInflater;)Ldev/teogor/ceres/monetisation/admob/databinding/MonetisationAdmobNativeBinding; + public static fun inflate (Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Z)Ldev/teogor/ceres/monetisation/admob/databinding/MonetisationAdmobNativeBinding; } public abstract class dev/teogor/ceres/monetisation/admob/formats/Ad : dev/teogor/ceres/monetisation/admob/formats/AdId, dev/teogor/ceres/monetisation/admob/Logger { @@ -458,7 +458,7 @@ public final class dev/teogor/ceres/monetisation/admob/formats/nativead/MediaCon public fun getVideoController ()Lcom/google/android/gms/ads/VideoController; public fun hasVideoContent ()Z public fun setMainImage (Landroid/graphics/drawable/Drawable;)V - public synthetic fun zza ()Lcom/google/android/gms/internal/ads/zzbfq; + public synthetic fun zza ()Lcom/google/android/gms/internal/ads/zzbkg; public fun zza ()Ljava/lang/Void; public fun zzb ()Z } diff --git a/monetisation/admob/build.gradle.kts b/monetisation/admob/build.gradle.kts index fb58a494..ef326c31 100644 --- a/monetisation/admob/build.gradle.kts +++ b/monetisation/admob/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -32,17 +33,18 @@ android { } dependencies { - api("com.google.android.gms:play-services-ads:22.4.0") + api(libs.google.play.services.ads) - implementation("io.github.farimarwat:admobnative-compose:1.2") + implementation(libs.farimarwat.admobnative.compose) implementation(libs.androidx.lifecycle.process) - api(project(":monetisation:ads")) - implementation(project(":core:register")) - implementation(project(":core:runtime")) - implementation(project(":core:foundation")) - implementation(project(":ui:designsystem")) + api(projects.monetisation.ads) + implementation(projects.core.register) + implementation(projects.core.runtime) + implementation(projects.core.foundation) + implementation(projects.ui.designsystem) + implementation(projects.ui.theme) implementation(libs.androidx.compose.foundation) implementation(libs.androidx.compose.runtime) @@ -51,8 +53,9 @@ dependencies { } winds { - mavenPublish { - displayName = "AdMob" - name = "admob" + moduleMetadata { + artifactDescriptor { + name = "AdMob" + } } } diff --git a/monetisation/admob/src/main/kotlin/dev/teogor/ceres/monetisation/admob/formats/nativead/NativeAd.kt b/monetisation/admob/src/main/kotlin/dev/teogor/ceres/monetisation/admob/formats/nativead/NativeAd.kt index 8ca25403..ed076bd0 100644 --- a/monetisation/admob/src/main/kotlin/dev/teogor/ceres/monetisation/admob/formats/nativead/NativeAd.kt +++ b/monetisation/admob/src/main/kotlin/dev/teogor/ceres/monetisation/admob/formats/nativead/NativeAd.kt @@ -26,7 +26,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.viewinterop.AndroidViewBinding import com.google.android.gms.ads.nativead.NativeAdView -import dev.teogor.ceres.monetisation.admob.databinding.AdmobNativeBinding +import dev.teogor.ceres.monetisation.admob.databinding.MonetisationAdmobNativeBinding import dev.teogor.ceres.monetisation.admob.formats.AdEvent import dev.teogor.ceres.monetisation.admob.models.AdChoicesPlacement @@ -67,7 +67,7 @@ fun NativeAd( val backgroundModifier = onRetrieveBackground(config.adChoicesPlacement) AndroidViewBinding( - factory = AdmobNativeBinding::inflate, + factory = MonetisationAdmobNativeBinding::inflate, modifier = modifier.then(backgroundModifier), ) { if (adView == null) { diff --git a/monetisation/admob/src/main/res/layout/admob_native.xml b/monetisation/admob/src/main/res/layout/monetisation_admob_native.xml similarity index 92% rename from monetisation/admob/src/main/res/layout/admob_native.xml rename to monetisation/admob/src/main/res/layout/monetisation_admob_native.xml index a6232ea2..020545a4 100644 --- a/monetisation/admob/src/main/res/layout/admob_native.xml +++ b/monetisation/admob/src/main/res/layout/monetisation_admob_native.xml @@ -20,11 +20,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - tools:ignore="Overdraw"> + tools:ignore="Overdraw,ResourceName"> - \ No newline at end of file + diff --git a/monetisation/admob/src/main/res/values/strings.xml b/monetisation/admob/src/main/res/values/strings.xml deleted file mode 100644 index ce138aea..00000000 --- a/monetisation/admob/src/main/res/values/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - ca-app-pub-3940256099942544~3347511713 - diff --git a/monetisation/ads/build.gradle.kts b/monetisation/ads/build.gradle.kts index 2f4c8c98..b1323ccc 100644 --- a/monetisation/ads/build.gradle.kts +++ b/monetisation/ads/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -36,8 +37,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Ads" - name = "ads" + moduleMetadata { + artifactDescriptor { + name = "ADs" + } } } diff --git a/monetisation/build.gradle.kts b/monetisation/build.gradle.kts index ed5c5ec8..1ff23741 100644 --- a/monetisation/build.gradle.kts +++ b/monetisation/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Monetisation" - name = "monetisation" - - version = createVersion(1, 0, 0) { - alphaRelease(4) + moduleMetadata { + artifactDescriptor { + name = "Monetisation" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } } } + + publishingOptions { + publish = false + } } diff --git a/monetisation/messaging/build.gradle.kts b/monetisation/messaging/build.gradle.kts index 8143dbf2..f4d3271e 100644 --- a/monetisation/messaging/build.gradle.kts +++ b/monetisation/messaging/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -31,18 +32,19 @@ android { dependencies { api(libs.google.android.ump) - api(project(":core:register")) - api(project(":core:runtime")) - api(project(":core:startup")) - api(project(":monetisation:admob")) + api(projects.core.register) + api(projects.core.runtime) + api(projects.core.startup) + api(projects.monetisation.admob) implementation(libs.androidx.compose.runtime) implementation(libs.startup.runtime) } winds { - mavenPublish { - displayName = "Messaging" - name = "messaging" + moduleMetadata { + artifactDescriptor { + name = "Messaging" + } } } diff --git a/navigation/build.gradle.kts b/navigation/build.gradle.kts index 64a28ee0..73437d63 100644 --- a/navigation/build.gradle.kts +++ b/navigation/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Navigation" - name = "navigation" - - version = createVersion(1, 0, 0) { - alphaRelease(3) + moduleMetadata { + artifactDescriptor { + name = "Navigation" + version = createVersion(1, 0, 0) { + alphaRelease(3) + } } } + + publishingOptions { + publish = false + } } diff --git a/navigation/common/build.gradle.kts b/navigation/common/build.gradle.kts index 0b45a498..826e714b 100644 --- a/navigation/common/build.gradle.kts +++ b/navigation/common/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,8 +31,9 @@ android { } winds { - mavenPublish { - displayName = "Common" - name = "common" + moduleMetadata { + artifactDescriptor { + name = "Common" + } } } diff --git a/navigation/core/build.gradle.kts b/navigation/core/build.gradle.kts index 12c3f9df..ca1383b8 100644 --- a/navigation/core/build.gradle.kts +++ b/navigation/core/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -28,7 +29,9 @@ android { } dependencies { - api(project(":ui:foundation")) + api(projects.ui.uiFoundation) + // ** navigation-handler + api(projects.ui.designsystem) // Compose api(libs.androidx.compose.foundation) @@ -37,14 +40,12 @@ dependencies { // Navigation api(libs.androidx.hilt.navigation.compose) api(libs.androidx.navigation.compose) - - // ** navigation-handler - api(project(":ui:designsystem")) } winds { - mavenPublish { - displayName = "Core" - name = "core" + moduleMetadata { + artifactDescriptor { + name = "Core" + } } } diff --git a/navigation/events/build.gradle.kts b/navigation/events/build.gradle.kts index c965eda9..d05bc43b 100644 --- a/navigation/events/build.gradle.kts +++ b/navigation/events/build.gradle.kts @@ -14,14 +14,14 @@ * limitations under the License. */ -import dev.teogor.winds.gradle.utils.copyVersion +import dev.teogor.winds.ktx.copyVersion // todo refactor and place inside somewhere and make use of local composition plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -31,16 +31,14 @@ android { } } -dependencies { -} - winds { - mavenPublish { - displayName = "Events" - name = "events" + moduleMetadata { + artifactDescriptor { + name = "Events" - version = copyVersion { - setIsDeprecated() + version = copyVersion { + setIsDeprecated() + } } } } diff --git a/navigation/screen/build.gradle.kts b/navigation/screen/build.gradle.kts index 5c66604c..f7a21f1d 100644 --- a/navigation/screen/build.gradle.kts +++ b/navigation/screen/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,8 +31,9 @@ android { } winds { - mavenPublish { - displayName = "Screen" - name = "screen" + moduleMetadata { + artifactDescriptor { + name = "Screen" + } } } diff --git a/navigation/ui/build.gradle.kts b/navigation/ui/build.gradle.kts index ad464b9e..a568d8f0 100644 --- a/navigation/ui/build.gradle.kts +++ b/navigation/ui/build.gradle.kts @@ -13,13 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("dev.teogor.ceres.android.hilt") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -30,8 +31,9 @@ android { } winds { - mavenPublish { - displayName = "UI" - name = "ui" + moduleMetadata { + artifactDescriptor { + name = "UI" + } } } diff --git a/plugin/library-convention/build.gradle.kts b/plugin/library-convention/build.gradle.kts index 9350b87f..d0ed4bd8 100644 --- a/plugin/library-convention/build.gradle.kts +++ b/plugin/library-convention/build.gradle.kts @@ -27,25 +27,33 @@ plugins { group = "dev.teogor.ceres.plugin" version = "1.0.0-alpha04" +// Configure the build-logic plugins to target JDK 17 +// This matches the JDK used to build the project, and is not related to what is running on device. java { - // Up to Java 11 APIs are available through desugaring - // https://developer.android.com/studio/write/java11-minimal-support-table - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } - tasks.withType().configureEach { kotlinOptions { - jvmTarget = JavaVersion.VERSION_11.toString() + jvmTarget = JavaVersion.VERSION_17.toString() } } dependencies { + compileOnly(libs.android.tools.common) compileOnly(libs.gradle.plugin.android) compileOnly(libs.gradle.plugin.kotlin) compileOnly(libs.gradle.plugin.ksp) compileOnly(libs.firebase.crashlytics.gradle) compileOnly(libs.firebase.performance.gradle) + implementation(libs.truth) +} + +tasks { + validatePlugins { + enableStricterValidation = true + failOnWarning = true + } } gradlePlugin { @@ -163,14 +171,6 @@ gradlePlugin { tags.set(listOf("android", "flavors", "android-library", "android-development")) } - register("buildDocs") { - id = "dev.teogor.ceres.docs" - implementationClass = "BuildDocsPlugin" - displayName = "Documentation Builder Plugin" - description = "Builds project documentation and reports for your project." - tags.set(listOf("documentation", "report", "build-logic")) - } - register("kotlinLibrary") { id = "dev.teogor.ceres.kotlin.library" implementationClass = "KotlinLibraryConventionPlugin" diff --git a/plugin/library-convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt b/plugin/library-convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt index eede0ecd..034be05a 100644 --- a/plugin/library-convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt +++ b/plugin/library-convention/src/main/kotlin/AndroidApplicationConventionPlugin.kt @@ -16,6 +16,8 @@ import com.android.build.api.dsl.ApplicationExtension import com.android.build.api.variant.ApplicationAndroidComponentsExtension +import com.android.build.gradle.BaseExtension +import dev.teogor.ceres.configureBadgingTasks import dev.teogor.ceres.configureGradleManagedDevices import dev.teogor.ceres.configureKotlinAndroid import dev.teogor.ceres.configurePrintApksTask @@ -23,6 +25,7 @@ import dev.teogor.ceres.utils.getIntProperty import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.getByType class AndroidApplicationConventionPlugin : Plugin { override fun apply(target: Project) { @@ -38,10 +41,13 @@ class AndroidApplicationConventionPlugin : Plugin { key = "ceres.buildfeatures.sdk.target", defaultValue = 34, ) + @Suppress("UnstableApiUsage") + testOptions.animationsDisabled = true configureGradleManagedDevices(this) } extensions.configure { configurePrintApksTask(this) + configureBadgingTasks(extensions.getByType(), this) } } } diff --git a/plugin/library-convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt b/plugin/library-convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt index a01352a7..557d230c 100644 --- a/plugin/library-convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt +++ b/plugin/library-convention/src/main/kotlin/AndroidFeatureConventionPlugin.kt @@ -18,10 +18,7 @@ import com.android.build.gradle.LibraryExtension import dev.teogor.ceres.configureGradleManagedDevices import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.dependencies -import org.gradle.kotlin.dsl.getByType class AndroidFeatureConventionPlugin : Plugin { override fun apply(target: Project) { @@ -37,39 +34,6 @@ class AndroidFeatureConventionPlugin : Plugin { } configureGradleManagedDevices(this) } - - val libs = extensions.getByType().named("libs") - - dependencies { - // add("implementation", project(":ceres:firebase:analytics")) - // add("implementation", project(":ceres:core:backup")) - // add("implementation", project(":ceres:core:common")) - // add("implementation", project(":ceres:firebase:crashlytics")) - // add("implementation", project(":ceres:core:data")) - // add("implementation", project(":ceres:core:designsystem")) - // add("implementation", project(":ceres:core:datastore")) - // add("implementation", project(":ceres:core:database")) - // add("implementation", project(":ceres:core:domain")) - // add("implementation", project(":ceres:core:framework")) - // add("implementation", project(":ceres:core:material")) - // add("implementation", project(":ceres:core:model")) - // add("implementation", project(":ceres:core:navigation")) - // add("implementation", project(":ceres:core:ui")) - // - // add("testImplementation", kotlin("test")) - // add("testImplementation", project(":ceres:core:testing")) - // add("androidTestImplementation", kotlin("test")) - // add("androidTestImplementation", project(":ceres:core:testing")) - // - // add("implementation", libs.findLibrary("coil.kt").get()) - // add("implementation", libs.findLibrary("coil.kt.compose").get()) - // - // add("implementation", libs.findLibrary("androidx.hilt.navigation.compose").get()) - // add("implementation", libs.findLibrary("androidx.lifecycle.runtimeCompose").get()) - // add("implementation", libs.findLibrary("androidx.lifecycle.viewModelCompose").get()) - // - // add("implementation", libs.findLibrary("kotlinx.coroutines.android").get()) - } } } } diff --git a/plugin/library-convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt b/plugin/library-convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt index b1af0301..a712ae77 100644 --- a/plugin/library-convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt +++ b/plugin/library-convention/src/main/kotlin/AndroidLibraryConventionPlugin.kt @@ -36,32 +36,27 @@ class AndroidLibraryConventionPlugin : Plugin { with(pluginManager) { apply("com.android.library") apply("org.jetbrains.kotlin.android") + apply("dev.teogor.ceres.android.lint") } extensions.configure { configureKotlinAndroid(this) - // TODO remove ??? deprecated defaultConfig.targetSdk = 34 - configureFlavors(this@configure) + testOptions.animationsDisabled = true + configureFlavors(this) configureGradleManagedDevices(this) + // The resource prefix is derived from the module name, + // so resources inside ":core:module1" must be prefixed with "core_module1_" + resourcePrefix = path.split("""\W""".toRegex()).drop(1).distinct().joinToString(separator = "_").lowercase() + "_" } extensions.configure { configurePrintApksTask(this) disableUnnecessaryAndroidTests(target) } - configurations.configureEach { - resolutionStrategy { - val junit4 = libs.findLibrary("junit4") - if (junit4.isPresent) { - force(libs.findLibrary("junit4").get()) - // Temporary workaround for https://issuetracker.google.com/174733673 - force("org.objenesis:objenesis:2.6") - } - } - } dependencies { - add("androidTestImplementation", kotlin("test")) add("testImplementation", kotlin("test")) + + add("implementation", libs.findLibrary("androidx.tracing.ktx").get()) } } } diff --git a/plugin/library-convention/src/main/kotlin/BuildDocsPlugin.kt b/plugin/library-convention/src/main/kotlin/BuildDocsPlugin.kt deleted file mode 100644 index d61768ed..00000000 --- a/plugin/library-convention/src/main/kotlin/BuildDocsPlugin.kt +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2023 teogor (Teodor Grigor) - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -import org.gradle.api.Plugin -import org.gradle.api.Project - -class BuildDocsPlugin : Plugin { - override fun apply(project: Project) { - val modulesByComponent = mutableMapOf>() - val modulesCeres = project.allprojects.filter { - it.path.count { char -> char == ':' } == 2 - } - modulesCeres.forEach { module -> - val pathComponents = module.path.split(":") - if (pathComponents.size >= 2) { - val component = pathComponents[1] - val componentModules = modulesByComponent.getOrDefault(component, mutableListOf()) - componentModules.add(module) - modulesByComponent[component] = componentModules - } - } - project.tasks.create("generateCeresDocs") { - doLast { - modulesByComponent.forEach { (component, _) -> - dependsOn(":$component:generateCeresDocs") - } - } - } - } -} diff --git a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/AndroidInstrumentedTests.kt b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/AndroidInstrumentedTests.kt index 43b5dc29..01e2d99d 100644 --- a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/AndroidInstrumentedTests.kt +++ b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/AndroidInstrumentedTests.kt @@ -30,6 +30,6 @@ import org.gradle.api.Project internal fun LibraryAndroidComponentsExtension.disableUnnecessaryAndroidTests( project: Project, ) = beforeVariants { - it.enableAndroidTest = it.enableAndroidTest && + it.androidTest.enable = it.androidTest.enable && project.projectDir.resolve("src/androidTest").exists() } diff --git a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Badging.kt b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Badging.kt new file mode 100644 index 00000000..a7c53fb2 --- /dev/null +++ b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Badging.kt @@ -0,0 +1,144 @@ +package dev.teogor.ceres + +import com.android.build.api.artifact.SingleArtifact +import com.android.build.api.variant.ApplicationAndroidComponentsExtension +import com.android.build.gradle.BaseExtension +import com.android.SdkConstants +import com.google.common.truth.Truth.assertWithMessage +import org.gradle.api.DefaultTask +import org.gradle.api.Project +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.CacheableTask +import org.gradle.api.tasks.Copy +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.OutputDirectory +import org.gradle.api.tasks.OutputFile +import org.gradle.api.tasks.PathSensitive +import org.gradle.api.tasks.PathSensitivity +import org.gradle.api.tasks.TaskAction +import org.gradle.configurationcache.extensions.capitalized +import org.gradle.kotlin.dsl.register +import org.gradle.language.base.plugins.LifecycleBasePlugin +import org.gradle.process.ExecOperations +import java.io.File +import javax.inject.Inject + +@CacheableTask +abstract class GenerateBadgingTask : DefaultTask() { + + @get:OutputFile + abstract val badging: RegularFileProperty + + @get:PathSensitive(PathSensitivity.NONE) + @get:InputFile + abstract val apk: RegularFileProperty + + @get:PathSensitive(PathSensitivity.NONE) + @get:InputFile + abstract val aapt2Executable: RegularFileProperty + + @get:Inject + abstract val execOperations: ExecOperations + + @TaskAction + fun taskAction() { + execOperations.exec { + commandLine( + aapt2Executable.get().asFile.absolutePath, + "dump", + "badging", + apk.get().asFile.absolutePath, + ) + standardOutput = badging.asFile.get().outputStream() + } + } +} + +@CacheableTask +abstract class CheckBadgingTask : DefaultTask() { + + // In order for the task to be up-to-date when the inputs have not changed, + // the task must declare an output, even if it's not used. Tasks with no + // output are always run regardless of whether the inputs changed + @get:OutputDirectory + abstract val output: DirectoryProperty + + @get:PathSensitive(PathSensitivity.NONE) + @get:InputFile + abstract val goldenBadging: RegularFileProperty + + @get:PathSensitive(PathSensitivity.NONE) + @get:InputFile + abstract val generatedBadging: RegularFileProperty + + @get:Input + abstract val updateBadgingTaskName: Property + + override fun getGroup(): String = LifecycleBasePlugin.VERIFICATION_GROUP + + @TaskAction + fun taskAction() { + assertWithMessage( + "Generated badging is different from golden badging! " + + "If this change is intended, run ./gradlew ${updateBadgingTaskName.get()}", + ) + .that(generatedBadging.get().asFile.readText()) + .isEqualTo(goldenBadging.get().asFile.readText()) + } +} + +fun Project.configureBadgingTasks( + baseExtension: BaseExtension, + componentsExtension: ApplicationAndroidComponentsExtension, +) { + // Registers a callback to be called, when a new variant is configured + componentsExtension.onVariants { variant -> + // Registers a new task to verify the app bundle. + val capitalizedVariantName = variant.name.capitalized() + val generateBadgingTaskName = "generate${capitalizedVariantName}Badging" + val generateBadging = + tasks.register(generateBadgingTaskName) { + apk.set( + variant.artifacts.get(SingleArtifact.APK_FROM_BUNDLE), + ) + aapt2Executable.set( + File( + baseExtension.sdkDirectory, + "${SdkConstants.FD_BUILD_TOOLS}/" + + "${baseExtension.buildToolsVersion}/" + + SdkConstants.FN_AAPT2, + ), + ) + + badging.set( + project.layout.buildDirectory.file( + "outputs/apk_from_bundle/${variant.name}/${variant.name}-badging.txt", + ), + ) + } + + val updateBadgingTaskName = "update${capitalizedVariantName}Badging" + tasks.register(updateBadgingTaskName) { + from(generateBadging.get().badging) + into(project.layout.projectDirectory) + } + + val checkBadgingTaskName = "check${capitalizedVariantName}Badging" + tasks.register(checkBadgingTaskName) { + goldenBadging.set( + project.layout.projectDirectory.file("${variant.name}-badging.txt"), + ) + generatedBadging.set( + generateBadging.get().badging, + ) + this.updateBadgingTaskName.set(updateBadgingTaskName) + + output.set( + project.layout.buildDirectory.dir("intermediates/$checkBadgingTaskName"), + ) + } + } +} diff --git a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Jacoco.kt b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Jacoco.kt index 94a94edf..92517e02 100644 --- a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Jacoco.kt +++ b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/Jacoco.kt @@ -17,17 +17,15 @@ package dev.teogor.ceres import com.android.build.api.variant.AndroidComponentsExtension -import java.util.Locale import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.api.tasks.testing.Test import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.withType import org.gradle.testing.jacoco.plugins.JacocoPluginExtension import org.gradle.testing.jacoco.plugins.JacocoTaskExtension import org.gradle.testing.jacoco.tasks.JacocoReport +import java.util.Locale private val coverageExclusions = listOf( // Android @@ -67,13 +65,13 @@ internal fun Project.configureJacoco( } classDirectories.setFrom( - fileTree("$buildDir/tmp/kotlin-classes/${variant.name}") { + fileTree("${layout.buildDirectory}/tmp/kotlin-classes/${variant.name}") { exclude(coverageExclusions) }, ) sourceDirectories.setFrom(files("$projectDir/src/main/java", "$projectDir/src/main/kotlin")) - executionData.setFrom(file("$buildDir/jacoco/$testTaskName.exec")) + executionData.setFrom(file("${layout.buildDirectory}/jacoco/$testTaskName.exec")) } jacocoTestReport.dependsOn(reportTask) diff --git a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/utils/DependencyHandler.kt b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/utils/DependencyHandler.kt index a8482027..2aa00f9b 100644 --- a/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/utils/DependencyHandler.kt +++ b/plugin/library-convention/src/main/kotlin/dev/teogor/ceres/utils/DependencyHandler.kt @@ -1,12 +1,12 @@ package dev.teogor.ceres.utils import dev.teogor.ceres.models.LibrarySpec -import java.util.Optional import org.gradle.api.artifacts.MinimalExternalModuleDependency import org.gradle.api.artifacts.VersionCatalog import org.gradle.api.logging.Logger import org.gradle.api.provider.Provider import org.gradle.kotlin.dsl.DependencyHandlerScope +import java.util.Optional fun VersionCatalog.findLibrary( librarySpec: LibrarySpec, diff --git a/screen/build.gradle.kts b/screen/build.gradle.kts index ab8e7647..480d17fb 100644 --- a/screen/build.gradle.kts +++ b/screen/build.gradle.kts @@ -13,19 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion + +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "Screen" - name = "screen" - - version = createVersion(1, 0, 0) { - alphaRelease(4) + moduleMetadata { + artifactDescriptor { + name = "Screen" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } } } + + publishingOptions { + publish = false + } } diff --git a/screen/builder/build.gradle.kts b/screen/builder/build.gradle.kts index b37f08ea..c9508f25 100644 --- a/screen/builder/build.gradle.kts +++ b/screen/builder/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -28,12 +29,13 @@ android { } dependencies { - api(project(":screen:core")) + api(projects.screen.screenCore) } winds { - mavenPublish { - displayName = "Builder" - name = "builder" + moduleMetadata { + artifactDescriptor { + name = "Builder" + } } } diff --git a/screen/core/.gitignore b/screen/screen-core/.gitignore similarity index 100% rename from screen/core/.gitignore rename to screen/screen-core/.gitignore diff --git a/screen/core/api/core.api b/screen/screen-core/api/core.api similarity index 100% rename from screen/core/api/core.api rename to screen/screen-core/api/core.api diff --git a/screen/screen-core/api/screen-core.api b/screen/screen-core/api/screen-core.api new file mode 100644 index 00000000..1d55df29 --- /dev/null +++ b/screen/screen-core/api/screen-core.api @@ -0,0 +1,30 @@ +public final class dev/teogor/ceres/screen/core/PredicatesKt { + public static final fun condition (Landroidx/compose/foundation/layout/ColumnScope;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V + public static final fun condition (Landroidx/compose/foundation/lazy/LazyListScope;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V + public static final fun condition (Landroidx/compose/foundation/lazy/grid/LazyGridScope;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;)V +} + +public final class dev/teogor/ceres/screen/core/ScrollStateKt { + public static final fun attachScrollState (Landroidx/compose/foundation/gestures/ScrollableState;ILandroidx/compose/runtime/Composer;II)Landroidx/compose/foundation/gestures/ScrollableState; +} + +public final class dev/teogor/ceres/screen/core/layout/ColumnLayoutBaseKt { + public static final fun ColumnLayoutBase (Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;ZZLjava/lang/String;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V +} + +public final class dev/teogor/ceres/screen/core/layout/FullScreenLayoutBaseKt { + public static final fun FullScreenLayoutBase-sW7UJKQ (Ljava/lang/String;JZLkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V +} + +public final class dev/teogor/ceres/screen/core/layout/LayoutWithBottomHeaderKt { + public static final fun LayoutWithBottomHeader-bbrV0mI (Lkotlin/jvm/functions/Function3;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/Alignment$Horizontal;JFZZLjava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V +} + +public final class dev/teogor/ceres/screen/core/layout/LazyColumnLayoutBaseKt { + public static final fun LazyColumnLayoutBase (Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/layout/Arrangement$HorizontalOrVertical;ZZLjava/lang/String;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V +} + +public final class dev/teogor/ceres/screen/core/layout/LazyGridLayoutBaseKt { + public static final fun LazyGridLayoutBase (Landroidx/compose/foundation/lazy/grid/GridCells;ZZLjava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/foundation/layout/Arrangement$Horizontal;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;II)V +} + diff --git a/screen/core/build.gradle.kts b/screen/screen-core/build.gradle.kts similarity index 79% rename from screen/core/build.gradle.kts rename to screen/screen-core/build.gradle.kts index a436fcfb..0899cfc8 100644 --- a/screen/core/build.gradle.kts +++ b/screen/screen-core/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -28,18 +29,19 @@ android { } dependencies { - api(project(":core:analytics")) - api(project(":navigation:core")) - api(project(":ui:designsystem")) - api(project(":ui:theme")) - api(project(":ui:compose")) + api(projects.core.coreAnalytics) + api(projects.navigation.core) + api(projects.ui.designsystem) + api(projects.ui.theme) + api(projects.ui.compose) api(libs.androidx.compose.foundation) } winds { - mavenPublish { - displayName = "Core" - name = "core" + moduleMetadata { + artifactDescriptor { + name = "Core" + } } } diff --git a/ui/foundation/consumer-rules.pro b/screen/screen-core/consumer-rules.pro similarity index 100% rename from ui/foundation/consumer-rules.pro rename to screen/screen-core/consumer-rules.pro diff --git a/screen/core/proguard-rules.pro b/screen/screen-core/proguard-rules.pro similarity index 100% rename from screen/core/proguard-rules.pro rename to screen/screen-core/proguard-rules.pro diff --git a/framework/ui/src/main/AndroidManifest.xml b/screen/screen-core/src/main/AndroidManifest.xml similarity index 100% rename from framework/ui/src/main/AndroidManifest.xml rename to screen/screen-core/src/main/AndroidManifest.xml diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/Predicates.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/Predicates.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/Predicates.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/Predicates.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/ScrollState.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/ScrollState.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/ScrollState.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/ScrollState.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/ColumnLayoutBase.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/ColumnLayoutBase.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/ColumnLayoutBase.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/ColumnLayoutBase.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/FullScreenLayoutBase.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/FullScreenLayoutBase.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/FullScreenLayoutBase.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/FullScreenLayoutBase.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LayoutWithBottomHeader.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LayoutWithBottomHeader.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LayoutWithBottomHeader.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LayoutWithBottomHeader.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyColumnLayoutBase.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyColumnLayoutBase.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyColumnLayoutBase.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyColumnLayoutBase.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyGridLayoutBase.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyGridLayoutBase.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyGridLayoutBase.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/layout/LazyGridLayoutBase.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenColumnScope.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenColumnScope.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenColumnScope.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenColumnScope.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenGridScope.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenGridScope.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenGridScope.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenGridScope.kt diff --git a/screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenListScope.kt b/screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenListScope.kt similarity index 100% rename from screen/core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenListScope.kt rename to screen/screen-core/src/main/kotlin/dev/teogor/ceres/screen/core/scope/ScreenListScope.kt diff --git a/screen/ui/.gitignore b/screen/screen-ui/.gitignore similarity index 100% rename from screen/ui/.gitignore rename to screen/screen-ui/.gitignore diff --git a/screen/screen-ui/api/screen-ui.api b/screen/screen-ui/api/screen-ui.api new file mode 100644 index 00000000..4ddd992c --- /dev/null +++ b/screen/screen-ui/api/screen-ui.api @@ -0,0 +1,803 @@ +public final class dev/teogor/ceres/screen/ui/about/AboutComponentsKt { + public static final fun aboutApkSignature (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;)V + public static synthetic fun aboutApkSignature$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;ILjava/lang/Object;)V + public static final fun aboutAppVersion (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;)V + public static synthetic fun aboutAppVersion$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;ILjava/lang/Object;)V + public static final fun aboutBuildDate (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/time/LocalDateTime;)V + public static synthetic fun aboutBuildDate$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/time/LocalDateTime;ILjava/lang/Object;)V + public static final fun aboutBuildHash (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;)V + public static synthetic fun aboutBuildHash$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;ILjava/lang/Object;)V + public static final fun aboutCeresFramework (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;)V + public static synthetic fun aboutCeresFramework$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;ILjava/lang/Object;)V + public static final fun aboutHeaderAboutUs (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun aboutHeaderLicenses (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun aboutHeaderSecurityPatch (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun aboutHeaderVersion (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun aboutMadeIn (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;)V + public static final fun aboutOpenAppInfo (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun aboutOpenSourceLicenses (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun getApkSignature ()Ljava/lang/String; + public static final fun itemIf (Landroidx/compose/foundation/lazy/LazyListScope;ZLkotlin/jvm/functions/Function3;)V +} + +public final class dev/teogor/ceres/screen/ui/about/AboutLibrariesScreenRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/about/AboutLibrariesScreenRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/about/AboutNavigationKt { + public static final field aboutLibrariesNavigationRoute Ljava/lang/String; + public static final field aboutNavigationRoute Ljava/lang/String; + public static final fun aboutGraphNav (Landroidx/navigation/NavGraphBuilder;Ldev/teogor/ceres/framework/core/app/BaseActions;Lkotlin/jvm/functions/Function1;)V + public static final fun aboutLibrariesScreenNav (Landroidx/navigation/NavGraphBuilder;Ldev/teogor/ceres/framework/core/app/BaseActions;)V + public static final fun aboutLibrariesScreenNav (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function2;)V + public static final fun aboutScreenNav (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function2;)V +} + +public final class dev/teogor/ceres/screen/ui/about/AboutScreenRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/about/AboutScreenRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/about/ComposableSingletons$AboutComponentsKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/about/ComposableSingletons$AboutComponentsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function3; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function3; + public static field lambda-8 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-6$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-8$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/about/libraries/AboutLibrariesScreenKt { + public static final fun AboutLibrariesScreen (Landroidx/compose/runtime/Composer;I)V +} + +public final class dev/teogor/ceres/screen/ui/about/libraries/ComposableSingletons$LibrariesComponentsKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/about/libraries/ComposableSingletons$LibrariesComponentsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function2; +} + +public final class dev/teogor/ceres/screen/ui/about/libraries/LibrariesComponentsKt { + public static final fun HtmlText-FNF3uiM (Ljava/lang/String;Landroidx/compose/ui/Modifier;JLandroidx/compose/runtime/Composer;II)V + public static final fun Libraries-XFD2ZOI (Lkotlinx/collections/immutable/ImmutableList;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;ZZZLdev/teogor/ceres/screen/ui/about/libraries/LibraryColors;Ldev/teogor/ceres/screen/ui/about/libraries/LibraryPadding;Landroidx/compose/foundation/layout/PaddingValues;FLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V + public static final fun LibrariesContainer-XFD2ZOI (Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function1;ZZZLdev/teogor/ceres/screen/ui/about/libraries/LibraryColors;Ldev/teogor/ceres/screen/ui/about/libraries/LibraryPadding;Landroidx/compose/foundation/layout/PaddingValues;FLkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;III)V + public static final fun LicenseDialog-1e0rrpw (Lcom/mikepenz/aboutlibraries/entity/Library;Ldev/teogor/ceres/screen/ui/about/libraries/LibraryColors;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;II)V +} + +public abstract interface class dev/teogor/ceres/screen/ui/about/libraries/LibraryColors { + public abstract fun getBackgroundColor-0d7_KjU ()J + public abstract fun getBadgeBackgroundColor-0d7_KjU ()J + public abstract fun getBadgeContentColor-0d7_KjU ()J + public abstract fun getContentColor-0d7_KjU ()J +} + +public final class dev/teogor/ceres/screen/ui/about/libraries/LibraryDefaults { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/about/libraries/LibraryDefaults; + public final fun getContentPadding ()Landroidx/compose/foundation/layout/PaddingValues; + public final fun libraryColors-ro_MJ88 (JJJJLandroidx/compose/runtime/Composer;II)Ldev/teogor/ceres/screen/ui/about/libraries/LibraryColors; + public final fun libraryPadding (Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/foundation/layout/PaddingValues;Landroidx/compose/runtime/Composer;II)Ldev/teogor/ceres/screen/ui/about/libraries/LibraryPadding; +} + +public abstract interface class dev/teogor/ceres/screen/ui/about/libraries/LibraryPadding { + public abstract fun getBadgeContentPadding ()Landroidx/compose/foundation/layout/PaddingValues; + public abstract fun getBadgePadding ()Landroidx/compose/foundation/layout/PaddingValues; + public abstract fun getNamePadding ()Landroidx/compose/foundation/layout/PaddingValues; + public abstract fun getVersionPadding ()Landroidx/compose/foundation/layout/PaddingValues; +} + +public final class dev/teogor/ceres/screen/ui/about/libraries/util/ExtensionsKt { + public static final fun getAuthor (Lcom/mikepenz/aboutlibraries/entity/Library;)Ljava/lang/String; + public static final fun getHtmlReadyLicenseContent (Lcom/mikepenz/aboutlibraries/entity/License;)Ljava/lang/String; + public static final fun getStable (Lcom/mikepenz/aboutlibraries/entity/Library;)Lcom/mikepenz/aboutlibraries/entity/Library; + public static final fun getStable (Ljava/util/List;)Lkotlinx/collections/immutable/ImmutableList; + public static final fun getStrippedLicenseContent (Lcom/mikepenz/aboutlibraries/entity/License;)Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/about/libraries/util/StableLibrary { + public static final synthetic fun box-impl (Lcom/mikepenz/aboutlibraries/entity/Library;)Ldev/teogor/ceres/screen/ui/about/libraries/util/StableLibrary; + public static fun constructor-impl (Lcom/mikepenz/aboutlibraries/entity/Library;)Lcom/mikepenz/aboutlibraries/entity/Library; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Lcom/mikepenz/aboutlibraries/entity/Library;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Lcom/mikepenz/aboutlibraries/entity/Library;Lcom/mikepenz/aboutlibraries/entity/Library;)Z + public final fun getLibrary ()Lcom/mikepenz/aboutlibraries/entity/Library; + public fun hashCode ()I + public static fun hashCode-impl (Lcom/mikepenz/aboutlibraries/entity/Library;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Lcom/mikepenz/aboutlibraries/entity/Library;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Lcom/mikepenz/aboutlibraries/entity/Library; +} + +public abstract interface annotation class dev/teogor/ceres/screen/ui/api/ExperimentalOnboardingScreenApi : java/lang/annotation/Annotation { +} + +public final class dev/teogor/ceres/screen/ui/components/HeaderSurfaceKt { + public static final fun HeaderSurface (Ljava/lang/String;Ldev/teogor/ceres/ui/foundation/graphics/Icon;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V + public static final fun HeaderSurfaceBase (Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;II)V + public static final fun HeaderSurfaceSwitch (Ljava/lang/String;ZLkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V +} + +public final class dev/teogor/ceres/screen/ui/lookandfeel/ComposableSingletons$LookAndFeelComponentsKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/lookandfeel/ComposableSingletons$LookAndFeelComponentsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-10 Lkotlin/jvm/functions/Function3; + public static field lambda-11 Lkotlin/jvm/functions/Function3; + public static field lambda-12 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function2; + public static field lambda-3 Lkotlin/jvm/functions/Function2; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function3; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function2; + public static field lambda-8 Lkotlin/jvm/functions/Function3; + public static field lambda-9 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-10$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-11$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-12$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-4$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-6$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-8$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-9$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelComponentsKt { + public static final fun LanguagePickerDialog (Landroidx/compose/runtime/MutableState;Landroidx/compose/runtime/Composer;I)V + public static final fun lookAndFeelAppTheme (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelColorTheme (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelDynamicTheming (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelHeaderAppearance (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelHeaderFeedback (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelJustBlack (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelLanguage (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelSoundFeedback (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun lookAndFeelVibrationFeedback (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun rememberDialogVisibility (Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/MutableState; +} + +public final class dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelNavigationKt { + public static final field lookAndFeelNavigationRoute Ljava/lang/String; + public static final fun lookAndFeelScreenNav (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function2;)V +} + +public final class dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelScreenRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelScreenRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/AdChoicesRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/AdChoicesRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/IntroRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/IntroRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/LegalRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/LegalRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/OnboardingNavigationKt { + public static final fun onboardingNavPath (Landroidx/navigation/NavGraphBuilder;Ldev/teogor/ceres/framework/core/app/BaseActions;Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData;Ldev/teogor/ceres/navigation/core/ScreenRoute;Ljava/util/List;)V + public static synthetic fun onboardingNavPath$default (Landroidx/navigation/NavGraphBuilder;Ldev/teogor/ceres/framework/core/app/BaseActions;Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData;Ldev/teogor/ceres/navigation/core/ScreenRoute;Ljava/util/List;ILjava/lang/Object;)V +} + +public final class dev/teogor/ceres/screen/ui/onboarding/OnboardingRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/OnboardingRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData { + public static final field $stable I + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun areAllPermissionsGranted ()Z + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData; + public static synthetic fun copy$default (Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData; + public fun equals (Ljava/lang/Object;)Z + public final fun getAppName ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getGetStartedButton ()Ljava/lang/String; + public final fun getPermissionCategories ()Ljava/util/List; + public final fun getPrivacyPolicyLink ()Ljava/lang/String; + public final fun getSupportEmail ()Ljava/lang/String; + public final fun getTermsOfServiceLink ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/Permission { + public static final field $stable I + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Z + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Ldev/teogor/ceres/screen/ui/onboarding/Permission; + public static synthetic fun copy$default (Ldev/teogor/ceres/screen/ui/onboarding/Permission;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;ILjava/lang/Object;)Ldev/teogor/ceres/screen/ui/onboarding/Permission; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getManifestPermission ()Ljava/lang/String; + public final fun getPermissionRequired ()Z + public final fun getRationaleContent ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public final fun isGranted ()Z + public final fun setGranted (Z)V + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/PermissionCategory { + public static final field $stable I + public fun ()V + public fun (Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;)Ldev/teogor/ceres/screen/ui/onboarding/PermissionCategory; + public static synthetic fun copy$default (Ldev/teogor/ceres/screen/ui/onboarding/PermissionCategory;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Ldev/teogor/ceres/screen/ui/onboarding/PermissionCategory; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getPermissions ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/PermissionRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/PermissionRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen : java/lang/Enum { + public static final field AD_CHOICES Ldev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen; + public static final field INTRO Ldev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen; + public static final field LEGAL Ldev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen; + public static final field PERMISSION Ldev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen; + public static fun values ()[Ldev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/AdChoicesScreenKt { + public static final fun AdChoicesScreen (Landroidx/compose/foundation/layout/BoxScope;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/ComposableSingletons$AdChoicesScreenKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/screens/ComposableSingletons$AdChoicesScreenKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/ComposableSingletons$LegalScreenKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/screens/ComposableSingletons$LegalScreenKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-10 Lkotlin/jvm/functions/Function3; + public static field lambda-11 Lkotlin/jvm/functions/Function3; + public static field lambda-12 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public static field lambda-5 Lkotlin/jvm/functions/Function3; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function3; + public static field lambda-8 Lkotlin/jvm/functions/Function3; + public static field lambda-9 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-10$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-11$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-12$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-5$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-6$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-8$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-9$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/ComposableSingletons$PermissionScreenKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/screens/ComposableSingletons$PermissionScreenKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public static field lambda-5 Lkotlin/jvm/functions/Function3; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function3; + public static field lambda-8 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-5$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-6$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-8$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/IntroScreenKt { + public static final fun IntroScreen (Landroidx/compose/foundation/layout/BoxScope;Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreenKt { + public static final fun LegalScreen (Landroidx/compose/foundation/layout/BoxScope;Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V + public static final fun divider (Landroidx/compose/foundation/lazy/LazyListScope;Landroidx/compose/ui/Modifier;)V + public static synthetic fun divider$default (Landroidx/compose/foundation/lazy/LazyListScope;Landroidx/compose/ui/Modifier;ILjava/lang/Object;)V + public static final fun header (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;Landroidx/compose/ui/Modifier;)V + public static synthetic fun header$default (Landroidx/compose/foundation/lazy/LazyListScope;Ljava/lang/String;Landroidx/compose/ui/Modifier;ILjava/lang/Object;)V + public static final fun legalTitle (Landroidx/compose/foundation/lazy/LazyListScope;)V +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/PermissionScreenKt { + public static final fun PermissionScreen (Landroidx/compose/foundation/layout/BoxScope;Ldev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;Landroidx/compose/runtime/Composer;I)V + public static final fun hasPermissions (Landroid/content/Context;Ljava/lang/String;)Z + public static final fun permission (Landroidx/compose/foundation/lazy/LazyListScope;Ldev/teogor/ceres/screen/ui/onboarding/Permission;Lkotlin/jvm/functions/Function0;)V +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/PrivacyPolicy : dev/teogor/ceres/ui/designsystem/ClickableElement { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/screens/PrivacyPolicy; +} + +public final class dev/teogor/ceres/screen/ui/onboarding/screens/TermsOfService : dev/teogor/ceres/ui/designsystem/ClickableElement { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/onboarding/screens/TermsOfService; +} + +public final class dev/teogor/ceres/screen/ui/privacy/ComposableSingletons$PrivacyScreenKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/privacy/ComposableSingletons$PrivacyScreenKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-10 Lkotlin/jvm/functions/Function3; + public static field lambda-11 Lkotlin/jvm/functions/Function2; + public static field lambda-12 Lkotlin/jvm/functions/Function3; + public static field lambda-13 Lkotlin/jvm/functions/Function3; + public static field lambda-14 Lkotlin/jvm/functions/Function3; + public static field lambda-15 Lkotlin/jvm/functions/Function3; + public static field lambda-16 Lkotlin/jvm/functions/Function3; + public static field lambda-17 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function2; + public static field lambda-5 Lkotlin/jvm/functions/Function2; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public static field lambda-7 Lkotlin/jvm/functions/Function3; + public static field lambda-8 Lkotlin/jvm/functions/Function3; + public static field lambda-9 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-10$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-11$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-12$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-13$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-14$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-15$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-16$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-17$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-5$screen_ui_release ()Lkotlin/jvm/functions/Function2; + public final fun getLambda-6$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-7$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-8$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-9$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/privacy/PrivacyNavigationKt { + public static final fun privacyOptionsNavPath (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function2;)V +} + +public final class dev/teogor/ceres/screen/ui/privacy/PrivacyOptionsRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/privacy/PrivacyOptionsRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/privacy/PrivacyScreenKt { + public static final fun legalAgreementsHeader (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun policyAppLicensePolicy (Landroidx/compose/foundation/lazy/LazyListScope;I)V + public static final fun policyCopyrightPolicy (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun policyRefundPolicy (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun privacyOptionsHeader (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun privacyPolicyOption (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun privacyResetOnboarding (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun privacyUserId (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun resetAdsConsentOption (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun termsOfServiceOption (Landroidx/compose/foundation/lazy/LazyListScope;)V +} + +public final class dev/teogor/ceres/screen/ui/res/ResourceIdsKt { + public static final fun getAboutId ()I + public static final fun getAboutUsId ()I + public static final fun getAndId ()I + public static final fun getApkSignatureId ()I + public static final fun getAppInfoId ()I + public static final fun getAppLicenseId ()I + public static final fun getAppThemeId ()I + public static final fun getAppVersionId ()I + public static final fun getBackupAndRestoreId ()I + public static final fun getBuildDateId ()I + public static final fun getBuildHashId ()I + public static final fun getBuiltWithCeresId ()I + public static final fun getBusinessId ()I + public static final fun getCancelId ()I + public static final fun getCeresFrameworkVersionId ()I + public static final fun getCompanyId ()I + public static final fun getCopyrightAllRightsReservedId ()I + public static final fun getCopyrightPolicyId ()I + public static final fun getCorporationId ()I + public static final fun getDataAndPrivacyId ()I + public static final fun getDesignAndColorOptionsId ()I + public static final fun getDeveloperId ()I + public static final fun getEnterpriseId ()I + public static final fun getFeedbackId ()I + public static final fun getFullBackupOfYourAppId ()I + public static final fun getHelpAndFeedbackId ()I + public static final fun getIdId ()I + public static final fun getJustBlackId ()I + public static final fun getLanguageId ()I + public static final fun getLegalAgreementsHeaderId ()I + public static final fun getLicenseDetailsForOpenSourceSoftwareId ()I + public static final fun getLicensedUnderId ()I + public static final fun getLicensesArrayId ()I + public static final fun getLicensesId ()I + public static final fun getLookAndFeelAppColorThemeId ()I + public static final fun getLookAndFeelAppColorThemeSubtitleId ()I + public static final fun getLookAndFeelAppThemeId ()I + public static final fun getLookAndFeelAppThemeSubtitleId ()I + public static final fun getLookAndFeelDynamicThemingId ()I + public static final fun getLookAndFeelDynamicThemingSubtitleId ()I + public static final fun getLookAndFeelHeaderAppearanceId ()I + public static final fun getLookAndFeelId ()I + public static final fun getLookAndFeelJustBlackId ()I + public static final fun getLookAndFeelJustBlackSubtitleId ()I + public static final fun getLookAndFeelSoundFeedbackId ()I + public static final fun getLookAndFeelSoundFeedbackSubtitleId ()I + public static final fun getLookAndFeelVibrationFeedbackId ()I + public static final fun getLookAndFeelVibrationFeedbackSubtitleId ()I + public static final fun getMadeInId ()I + public static final fun getManageYourDataAndPrivacyPreferencesId ()I + public static final fun getOpenSourceLicensesId ()I + public static final fun getOrganizationId ()I + public static final fun getPrivacyOptionsId ()I + public static final fun getPrivacyPolicyId ()I + public static final fun getRefundPolicyId ()I + public static final fun getResetAdsConsentDialogTextId ()I + public static final fun getResetAdsConsentDialogTitleId ()I + public static final fun getResetAdsConsentId ()I + public static final fun getResetAdsConsentSubtitleId ()I + public static final fun getResetId ()I + public static final fun getResetOnboardingDialogCancelButtonId ()I + public static final fun getResetOnboardingDialogDeleteUserStoredContentId ()I + public static final fun getResetOnboardingDialogRestartButtonId ()I + public static final fun getResetOnboardingDialogTextId ()I + public static final fun getResetOnboardingDialogTitleId ()I + public static final fun getResetOnboardingId ()I + public static final fun getResetOnboardingSubtitleId ()I + public static final fun getRestartId ()I + public static final fun getReviewOurCopyrightPolicyId ()I + public static final fun getReviewOurPrivacyPolicyId ()I + public static final fun getReviewOurRefundPolicyId ()I + public static final fun getReviewOurTermsOfServiceId ()I + public static final fun getSecurityPatchId ()I + public static final fun getSettingsId ()I + public static final fun getShowLessId ()I + public static final fun getShowMoreId ()I + public static final fun getSystemId ()I + public static final fun getTermsOfServiceId ()I + public static final fun getThisActionCannotBeUndoneId ()I + public static final fun getUiId ()I + public static final fun getUserIdId ()I + public static final fun getUserIdSubtitleId ()I + public static final fun getVersionInfoId ()I +} + +public final class dev/teogor/ceres/screen/ui/res/ResourceKey : java/lang/Enum { + public static final field ABOUT Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field ABOUT_US Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field AND Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field APK_SIGNATURE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field APP_INFO Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field APP_LICENSE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field APP_THEME Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field APP_VERSION Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field BACKUP_AND_RESTORE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field BUILD_DATE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field BUILD_HASH Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field BUILT_WITH_CERES Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field BUSINESS Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field CANCEL Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field CERES_FRAMEWORK_VERSION Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field COMPANY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field COPYRIGHT_ALL_RIGHTS_RESERVED Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field COPYRIGHT_POLICY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field CORPORATION Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field DATA_AND_PRIVACY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field DESIGN_AND_COLOR_OPTIONS Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field DEVELOPER Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field ENTERPRISE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field FEEDBACK Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field FULL_BACKUP_OF_YOUR_APP Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field HELP_AND_FEEDBACK Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field ID Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field JUST_BLACK Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LANGUAGE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LEGAL_AGREEMENTS_HEADER Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LICENSED_UNDER Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LICENSES Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LICENSES_ARRAY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LICENSE_DETAILS_FOR_OPEN_SOURCE_SOFTWARE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_APP_COLOR_THEME Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_APP_COLOR_THEME_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_APP_THEME Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_APP_THEME_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_DYNAMIC_THEMING Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_DYNAMIC_THEMING_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_HEADER_APPEARANCE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_JUST_BLACK Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_JUST_BLACK_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_SOUND_FEEDBACK Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_SOUND_FEEDBACK_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_VIBRATION_FEEDBACK Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field LOOK_AND_FEEL_VIBRATION_FEEDBACK_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field MADE_IN Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field MANAGE_YOUR_DATA_AND_PRIVACY_PREFERENCES Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field OPEN_SOURCE_LICENSES Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field ORGANIZATION Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field PRIVACY_OPTIONS Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field PRIVACY_POLICY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field REFUND_POLICY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ADS_CONSENT Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ADS_CONSENT_DIALOG_TEXT Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ADS_CONSENT_DIALOG_TITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ADS_CONSENT_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING_DIALOG_CANCEL_BUTTON Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING_DIALOG_DELETE_USER_STORED_CONTENT Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING_DIALOG_RESTART_BUTTON Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING_DIALOG_TEXT Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING_DIALOG_TITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESET_ONBOARDING_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field RESTART Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field REVIEW_OUR_COPYRIGHT_POLICY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field REVIEW_OUR_PRIVACY_POLICY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field REVIEW_OUR_REFUND_POLICY Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field REVIEW_OUR_TERMS_OF_SERVICE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field SECURITY_PATCH Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field SETTINGS Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field SHOW_LESS Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field SHOW_MORE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field SYSTEM Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field TERMS_OF_SERVICE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field THIS_ACTION_CANNOT_BE_UNDONE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field UI Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field USER_ID Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field USER_ID_SUBTITLE Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static final field VERSION_INFO Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getId ()I + public final fun getType ()Ldev/teogor/ceres/screen/ui/res/ResourceType; + public static fun valueOf (Ljava/lang/String;)Ldev/teogor/ceres/screen/ui/res/ResourceKey; + public static fun values ()[Ldev/teogor/ceres/screen/ui/res/ResourceKey; +} + +public final class dev/teogor/ceres/screen/ui/res/ResourceKeyKt { + public static final fun getValue (Ldev/teogor/ceres/screen/ui/res/ResourceKey;Ljava/lang/Object;Lkotlin/reflect/KProperty;)I +} + +public final class dev/teogor/ceres/screen/ui/res/ResourceType : java/lang/Enum { + public static final field Array Ldev/teogor/ceres/screen/ui/res/ResourceType; + public static final field Plurals Ldev/teogor/ceres/screen/ui/res/ResourceType; + public static final field String Ldev/teogor/ceres/screen/ui/res/ResourceType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Ldev/teogor/ceres/screen/ui/res/ResourceType; + public static fun values ()[Ldev/teogor/ceres/screen/ui/res/ResourceType; +} + +public final class dev/teogor/ceres/screen/ui/res/Resources { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/res/Resources; + public final fun CopyrightAllRightsReserved (ILjava/lang/String;Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun LicensedUnder (Ljava/lang/String;Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getAbout (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getAboutUs (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getAnd (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getApkSignature (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getAppInfo (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getAppLicense (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getAppTheme (Landroidx/compose/runtime/Composer;I)[Ljava/lang/String; + public final fun getAppVersion (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getBackupAndRestore (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getBuildDate (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getBuildHash (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getBuiltWithCeres (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getBusiness (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getCancel (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getCeresFrameworkVersion (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getCompany (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getCopyrightPolicy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getCorporation (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getDataAndPrivacy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getDesignAndColorOptions (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getDeveloper (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getEnterprise (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getFeedback (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getFullBackupOfYourApp (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getHelpAndFeedback (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getId (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getJustBlack (Landroidx/compose/runtime/Composer;I)[Ljava/lang/String; + public final fun getLanguage (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLegalAgreementsHeader (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLicenseDetailsForOpenSourceSoftware (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLicenses (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLicensesArray (Landroidx/compose/runtime/Composer;I)[Ljava/lang/String; + public final fun getLookAndFeel (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelAppColorTheme (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelAppColorThemeSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelAppTheme (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelAppThemeSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelDynamicTheming (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelDynamicThemingSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelHeaderAppearance (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelJustBlack (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelJustBlackSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelSoundFeedback (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelSoundFeedbackSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelVibrationFeedback (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getLookAndFeelVibrationFeedbackSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getMadeIn (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getManageYourDataAndPrivacyPreferences (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getOpenSourceLicenses (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getOrganization (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getPrivacyOptions (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getPrivacyPolicy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getRefundPolicy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getReset (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetAdsConsent (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetAdsConsentDialogText (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetAdsConsentDialogTitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetAdsConsentSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboarding (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboardingDialogCancelButton (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboardingDialogDeleteUserStoredContent (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboardingDialogRestartButton (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboardingDialogText (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboardingDialogTitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getResetOnboardingSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getRestart (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getReviewOurCopyrightPolicy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getReviewOurPrivacyPolicy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getReviewOurRefundPolicy (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getReviewOurTermsOfService (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getSecurityPatch (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getSettings (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getShowLess (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getShowMore (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getSystem (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getTermsOfService (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getThisActionCannotBeUndone (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getUi (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getUserId (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getUserIdSubtitle (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; + public final fun getVersionInfo (Landroidx/compose/runtime/Composer;I)Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/settings/ComposableSingletons$SettingsComponentsKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/settings/ComposableSingletons$SettingsComponentsKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public static field lambda-2 Lkotlin/jvm/functions/Function3; + public static field lambda-3 Lkotlin/jvm/functions/Function3; + public static field lambda-4 Lkotlin/jvm/functions/Function3; + public static field lambda-5 Lkotlin/jvm/functions/Function3; + public static field lambda-6 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-2$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-3$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-4$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-5$screen_ui_release ()Lkotlin/jvm/functions/Function3; + public final fun getLambda-6$screen_ui_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/screen/ui/settings/SettingsComponentsKt { + public static final fun settingsBackup (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun settingsHeaderDataPrivacy (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun settingsHeaderSystem (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun settingsHeaderUI (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun settingsLookAndFeel (Landroidx/compose/foundation/lazy/LazyListScope;)V + public static final fun settingsPrivacyOptions (Landroidx/compose/foundation/lazy/LazyListScope;)V +} + +public final class dev/teogor/ceres/screen/ui/settings/SettingsNavigationKt { + public static final field settingsNavigationRoute Ljava/lang/String; + public static final fun settingsGraphNav (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function1;)V + public static final fun settingsScreenNav (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function2;)V +} + +public final class dev/teogor/ceres/screen/ui/settings/SettingsScreenRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/settings/SettingsScreenRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/userprefs/ComposableSingletons$UserPrefsScreenKt { + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/userprefs/ComposableSingletons$UserPrefsScreenKt; + public static field lambda-1 Lkotlin/jvm/functions/Function2; + public fun ()V + public final fun getLambda-1$screen_ui_release ()Lkotlin/jvm/functions/Function2; +} + +public final class dev/teogor/ceres/screen/ui/userprefs/UserPreferencesScreenRoute : dev/teogor/ceres/navigation/core/ScreenRoute { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/screen/ui/userprefs/UserPreferencesScreenRoute; + public fun getRoute ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/screen/ui/userprefs/UserPrefsNaviagtionKt { + public static final field userPreferencesNavigationRoute Ljava/lang/String; + public static final fun userPreferencesScreenNav (Landroidx/navigation/NavGraphBuilder;Ldev/teogor/ceres/framework/core/app/BaseActions;)V + public static final fun userPreferencesScreenNav (Landroidx/navigation/NavGraphBuilder;Lkotlin/jvm/functions/Function2;)V +} + +public final class dev/teogor/ceres/screen/ui/userprefs/UserPrefsScreenKt { + public static final fun UserPrefScreen (Ljava/lang/String;Lkotlin/jvm/functions/Function1;Landroidx/compose/runtime/Composer;I)V +} + +public final class dev/teogor/ceres/screen/ui/utils/InvokersKt { + public static final fun resetConsentHandler (Landroidx/compose/runtime/Composer;I)Lkotlin/jvm/functions/Function0; + public static final fun resetOnboardingHandler (Landroidx/compose/runtime/Composer;I)Lkotlin/jvm/functions/Function0; +} + diff --git a/screen/ui/api/ui.api b/screen/screen-ui/api/ui.api similarity index 100% rename from screen/ui/api/ui.api rename to screen/screen-ui/api/ui.api diff --git a/screen/ui/build.gradle.kts b/screen/screen-ui/build.gradle.kts similarity index 71% rename from screen/ui/build.gradle.kts rename to screen/screen-ui/build.gradle.kts index 3315d8da..e0b5dab1 100644 --- a/screen/ui/build.gradle.kts +++ b/screen/screen-ui/build.gradle.kts @@ -19,7 +19,7 @@ plugins { id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") alias(libs.plugins.querent) - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } querent { @@ -34,17 +34,25 @@ android { defaultConfig { consumerProguardFiles("consumer-proguard-rules.pro") } + + // This block configures code analysis (linting) for your project. + lint { + // Temporarily disables the "ResourceName" lint check + // TODO based on ceres.lint plugin + disable.add("ResourceName") + } } dependencies { - api(project(":core:register")) - api(project(":core:runtime")) - api(project(":framework:core")) - api(project(":ui:designsystem")) - api(project(":ui:theme")) - api(project(":ui:compose")) - api(project(":screen:builder")) - api(project(":navigation:events")) + api(projects.core.register) + api(projects.core.runtime) + api(projects.framework.frameworkCore) + api(projects.ui.designsystem) + api(projects.ui.compose) + api(projects.ui.icons) + api(projects.ui.theme) + api(projects.screen.builder) + api(projects.navigation.events) // Xenoglot BoM api(platform(libs.xenoglot.bom)) @@ -63,8 +71,9 @@ dependencies { } winds { - mavenPublish { - displayName = "UI" - name = "ui" + moduleMetadata { + artifactDescriptor { + name = "UI" + } } } diff --git a/screen/screen-ui/consumer-rules.pro b/screen/screen-ui/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/screen/ui/proguard-rules.pro b/screen/screen-ui/proguard-rules.pro similarity index 100% rename from screen/ui/proguard-rules.pro rename to screen/screen-ui/proguard-rules.pro diff --git a/screen/core/src/main/AndroidManifest.xml b/screen/screen-ui/src/main/AndroidManifest.xml similarity index 100% rename from screen/core/src/main/AndroidManifest.xml rename to screen/screen-ui/src/main/AndroidManifest.xml diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutComponents.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutComponents.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutComponents.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutComponents.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutNavigation.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutNavigation.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutNavigation.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/AboutNavigation.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/AboutLibrariesScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/AboutLibrariesScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/AboutLibrariesScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/AboutLibrariesScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/LibrariesComponents.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/LibrariesComponents.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/LibrariesComponents.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/LibrariesComponents.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/util/Extensions.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/util/Extensions.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/util/Extensions.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/about/libraries/util/Extensions.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/api/ScreenUiApi.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/api/ScreenUiApi.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/api/ScreenUiApi.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/api/ScreenUiApi.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/components/HeaderSurface.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/components/HeaderSurface.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/components/HeaderSurface.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/components/HeaderSurface.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelComponents.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelComponents.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelComponents.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelComponents.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelNavigation.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelNavigation.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelNavigation.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/lookandfeel/LookAndFeelNavigation.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingNavigation.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingNavigation.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingNavigation.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingNavigation.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingRoute.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingRoute.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingRoute.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingRoute.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/OnboardingScreenData.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/model/OnboardingScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/AdChoicesScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/AdChoicesScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/AdChoicesScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/AdChoicesScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/IntroScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/IntroScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/IntroScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/IntroScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt similarity index 99% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt index 46c839fb..0efb6ece 100644 --- a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt +++ b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/LegalScreen.kt @@ -27,7 +27,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -332,7 +332,7 @@ private fun StyledInfoSection( .clickable( onClick = { }, - indication = rememberRipple( + indication = ripple( color = colorScheme.primary, ), interactionSource = remember { MutableInteractionSource() }, diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/PermissionScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/PermissionScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/PermissionScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/onboarding/screens/PermissionScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyNavigation.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyNavigation.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyNavigation.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyNavigation.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/privacy/PrivacyScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceIds.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceIds.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceIds.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceIds.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceKey.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceKey.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceKey.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceKey.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceType.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceType.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceType.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/ResourceType.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/Resources.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/Resources.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/Resources.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/res/Resources.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsComponents.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsComponents.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsComponents.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsComponents.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsNavigation.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsNavigation.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsNavigation.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/settings/SettingsNavigation.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsNaviagtion.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsNaviagtion.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsNaviagtion.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsNaviagtion.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsScreen.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsScreen.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsScreen.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/userprefs/UserPrefsScreen.kt diff --git a/screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/utils/Invokers.kt b/screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/utils/Invokers.kt similarity index 100% rename from screen/ui/src/main/kotlin/dev/teogor/ceres/screen/ui/utils/Invokers.kt rename to screen/screen-ui/src/main/kotlin/dev/teogor/ceres/screen/ui/utils/Invokers.kt diff --git a/screen/ui/src/main/res/values-ar/strings.xml b/screen/screen-ui/src/main/res/values-ar/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-ar/strings.xml rename to screen/screen-ui/src/main/res/values-ar/strings.xml diff --git a/screen/ui/src/main/res/values-de/strings.xml b/screen/screen-ui/src/main/res/values-de/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-de/strings.xml rename to screen/screen-ui/src/main/res/values-de/strings.xml diff --git a/screen/ui/src/main/res/values-es/strings.xml b/screen/screen-ui/src/main/res/values-es/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-es/strings.xml rename to screen/screen-ui/src/main/res/values-es/strings.xml diff --git a/screen/ui/src/main/res/values-hi/strings.xml b/screen/screen-ui/src/main/res/values-hi/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-hi/strings.xml rename to screen/screen-ui/src/main/res/values-hi/strings.xml diff --git a/screen/ui/src/main/res/values-ja/strings.xml b/screen/screen-ui/src/main/res/values-ja/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-ja/strings.xml rename to screen/screen-ui/src/main/res/values-ja/strings.xml diff --git a/screen/ui/src/main/res/values-ko/strings.xml b/screen/screen-ui/src/main/res/values-ko/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-ko/strings.xml rename to screen/screen-ui/src/main/res/values-ko/strings.xml diff --git a/screen/ui/src/main/res/values-nl/strings.xml b/screen/screen-ui/src/main/res/values-nl/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-nl/strings.xml rename to screen/screen-ui/src/main/res/values-nl/strings.xml diff --git a/screen/ui/src/main/res/values-ro/strings.xml b/screen/screen-ui/src/main/res/values-ro/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-ro/strings.xml rename to screen/screen-ui/src/main/res/values-ro/strings.xml diff --git a/screen/ui/src/main/res/values-zh/strings.xml b/screen/screen-ui/src/main/res/values-zh/strings.xml similarity index 100% rename from screen/ui/src/main/res/values-zh/strings.xml rename to screen/screen-ui/src/main/res/values-zh/strings.xml diff --git a/screen/ui/src/main/res/values/strings.xml b/screen/screen-ui/src/main/res/values/strings.xml similarity index 100% rename from screen/ui/src/main/res/values/strings.xml rename to screen/screen-ui/src/main/res/values/strings.xml diff --git a/settings.gradle.kts b/settings.gradle.kts index ac53e881..a7cfd769 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -33,6 +33,8 @@ dependencyResolutionManagement { rootProject.name = "Ceres" +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + // App include(":app") @@ -44,7 +46,7 @@ include(":backup:core") include(":backup:ui") // Core -include(":core:analytics") +include(":core:core-analytics") include(":core:common") include(":core:foundation") include(":core:network") @@ -54,18 +56,18 @@ include(":core:runtime") include(":core:startup") // Data -include(":data:compose") +include(":data:data-compose") include(":data:database") include(":data:datastore") // Firebase -include(":firebase:analytics") +include(":firebase:firebase-analytics") include(":firebase:crashlytics") include(":firebase:remote-config") // Framework -include(":framework:core") -include(":framework:ui") +include(":framework:framework-core") +include(":framework:framework-ui") // Monetisation include(":monetisation:admob") @@ -81,13 +83,13 @@ include(":navigation:ui") // Screen include(":screen:builder") -include(":screen:core") -include(":screen:ui") +include(":screen:screen-core") +include(":screen:screen-ui") // UI include(":ui:compose") include(":ui:designsystem") -include(":ui:foundation") +include(":ui:ui-foundation") include(":ui:icons") include(":ui:spectrum") include(":ui:theme") diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index e51a30fd..ceebfbce 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -14,19 +14,23 @@ * limitations under the License. */ -import dev.teogor.winds.api.model.createVersion +import dev.teogor.winds.ktx.createVersion plugins { - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } winds { - mavenPublish { - displayName = "UI" - name = "ui" - - version = createVersion(1, 0, 0) { - alphaRelease(4) + moduleMetadata { + artifactDescriptor { + name = "UI" + version = createVersion(1, 0, 0) { + alphaRelease(4) + } } } + + publishingOptions { + publish = false + } } diff --git a/ui/compose/build.gradle.kts b/ui/compose/build.gradle.kts index 4a50076e..258f90cc 100644 --- a/ui/compose/build.gradle.kts +++ b/ui/compose/build.gradle.kts @@ -13,11 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -35,8 +36,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Compose" - name = "compose" + moduleMetadata { + artifactDescriptor { + name = "Compose" + } } } diff --git a/ui/designsystem/build.gradle.kts b/ui/designsystem/build.gradle.kts index 0454f1b5..058635a2 100644 --- a/ui/designsystem/build.gradle.kts +++ b/ui/designsystem/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,10 +30,10 @@ android { } dependencies { - api(project(":ui:foundation")) - api(project(":ui:icons")) - api(project(":ui:spectrum")) - api(project(":ui:theme")) + implementation(projects.ui.uiFoundation) + implementation(projects.ui.icons) + implementation(projects.ui.spectrum) + implementation(projects.ui.theme) api(libs.google.material) @@ -46,8 +47,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Design-System" - name = "design.system" + moduleMetadata { + artifactDescriptor { + name = "Design System" + } } } diff --git a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Checkbox.kt b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Checkbox.kt index 4fdd16d4..0393525f 100644 --- a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Checkbox.kt +++ b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Checkbox.kt @@ -33,8 +33,8 @@ import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.selection.triStateToggleable import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.minimumInteractiveComponentSize +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable import androidx.compose.runtime.State @@ -171,7 +171,7 @@ fun TriStateCheckbox( enabled = enabled, role = Role.Checkbox, interactionSource = interactionSource, - indication = rememberRipple( + indication = ripple( bounded = false, radius = CheckboxTokens.StateLayerSize / 2, ), diff --git a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/ElementView.kt b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/ElementView.kt index 2d49c1a4..96d76b61 100644 --- a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/ElementView.kt +++ b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/ElementView.kt @@ -23,7 +23,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -72,7 +72,7 @@ fun ElementView( onClick() } }, - indication = rememberRipple( + indication = ripple( color = colorScheme.primary, ), interactionSource = remember { MutableInteractionSource() }, diff --git a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Item.kt b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Item.kt index 5fd96dc5..67375608 100644 --- a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Item.kt +++ b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Item.kt @@ -26,8 +26,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.Text +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -79,7 +79,7 @@ fun Item( // conditionally apply clickable with ripple effect onClick = { }, - indication = rememberRipple( + indication = ripple( color = ripple, ), interactionSource = remember { MutableInteractionSource() }, diff --git a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Surface.kt b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Surface.kt index 65b6680a..82a2fa99 100644 --- a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Surface.kt +++ b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Surface.kt @@ -28,8 +28,8 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.selection.selectable import androidx.compose.foundation.selection.toggleable -import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.minimumInteractiveComponentSize +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.NonRestartableComposable @@ -246,7 +246,7 @@ fun Surface( ) .clickable( interactionSource = interactionSource, - indication = rememberRipple(), + indication = ripple(), enabled = enabled, onClick = onClick, ), @@ -356,7 +356,7 @@ fun Surface( .selectable( selected = selected, interactionSource = interactionSource, - indication = rememberRipple(), + indication = ripple(), enabled = enabled, onClick = onClick, ), @@ -466,7 +466,7 @@ fun Surface( .toggleable( value = checked, interactionSource = interactionSource, - indication = rememberRipple(), + indication = ripple(), enabled = enabled, onValueChange = onCheckedChange, ), @@ -512,7 +512,7 @@ fun Surface( ) .clickable( interactionSource = interactionSource, - indication = rememberRipple(), + indication = ripple(), enabled = enabled, onClick = onClick, ) diff --git a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Switch.kt b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Switch.kt index 7e72d0ee..681e6f6e 100644 --- a/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Switch.kt +++ b/ui/designsystem/src/main/kotlin/dev/teogor/ceres/ui/designsystem/Switch.kt @@ -32,11 +32,11 @@ import androidx.compose.foundation.layout.requiredSize import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.selection.toggleable -import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Switch import androidx.compose.material3.minimumInteractiveComponentSize +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.DisposableEffect @@ -211,7 +211,7 @@ private fun BoxScope.SwitchImpl( .offset { IntOffset(thumbOffset.roundToInt(), 0) } .indication( interactionSource = interactionSource, - indication = rememberRipple(bounded = false, SwitchTokens.StateLayerSize / 2), + indication = ripple(bounded = false, SwitchTokens.StateLayerSize / 2), ) .requiredSize(thumbSizeDp) .background(resolvedThumbColor, thumbShape), diff --git a/ui/icons/build.gradle.kts b/ui/icons/build.gradle.kts index 9433740d..d5c27387 100644 --- a/ui/icons/build.gradle.kts +++ b/ui/icons/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -34,8 +35,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Icons" - name = "icons" + moduleMetadata { + artifactDescriptor { + name = "Icons" + } } } diff --git a/ui/spectrum/build.gradle.kts b/ui/spectrum/build.gradle.kts index 893ee3a5..de016b21 100644 --- a/ui/spectrum/build.gradle.kts +++ b/ui/spectrum/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -35,8 +36,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Spectrum" - name = "spectrum" + moduleMetadata { + artifactDescriptor { + name = "Spectrum" + } } } diff --git a/ui/theme/build.gradle.kts b/ui/theme/build.gradle.kts index 0c7f67bb..cb0ea556 100644 --- a/ui/theme/build.gradle.kts +++ b/ui/theme/build.gradle.kts @@ -13,12 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.feature") id("dev.teogor.ceres.android.library.compose") id("dev.teogor.ceres.android.library.jacoco") id("kotlinx-serialization") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -29,7 +30,7 @@ android { } dependencies { - api(project(":ui:spectrum")) + api(projects.ui.spectrum) // needed for theme manager implementation(libs.androidx.core.splashscreen) @@ -40,8 +41,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Theme" - name = "theme" + moduleMetadata { + artifactDescriptor { + name = "Theme" + } } } diff --git a/ui/theme/src/main/kotlin/dev/teogor/ceres/ui/theme/MaterialTheme.kt b/ui/theme/src/main/kotlin/dev/teogor/ceres/ui/theme/MaterialTheme.kt index 645e9622..9789bdac 100644 --- a/ui/theme/src/main/kotlin/dev/teogor/ceres/ui/theme/MaterialTheme.kt +++ b/ui/theme/src/main/kotlin/dev/teogor/ceres/ui/theme/MaterialTheme.kt @@ -16,26 +16,20 @@ package dev.teogor.ceres.ui.theme -import androidx.compose.foundation.LocalIndication import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.text.selection.LocalTextSelectionColors import androidx.compose.foundation.text.selection.TextSelectionColors -import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.material.ripple.RippleAlpha -import androidx.compose.material.ripple.RippleTheme -import androidx.compose.material.ripple.rememberRipple +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.LocalRippleConfiguration import androidx.compose.material3.ProvideTextStyle +import androidx.compose.material3.RippleConfiguration import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.Immutable import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.remember import dev.teogor.ceres.ui.theme.tokens.StateTokens -// TODO: Create a sample dev.teogor.ceres.core.designsystem.alpha.samples.MaterialThemeSample -// TODO(b/197880751) Update to link M3 Material Theming page (i.e. a Material -// Theming M3 equivalent). /** * Material Theming refers to the customization of your Material Design app to better reflect your * product’s brand. @@ -56,6 +50,7 @@ import dev.teogor.ceres.ui.theme.tokens.StateTokens * @param typography A set of text styles to be used as this hierarchy's typography system * @param shapes A set of corner shapes to be used as this hierarchy's shape system */ +@OptIn(ExperimentalMaterial3Api::class) @Composable fun MaterialTheme( darkTheme: Boolean = isSystemInDarkTheme(), @@ -75,12 +70,10 @@ fun MaterialTheme( val rememberDarkTheme = remember(darkTheme) { darkTheme } - val rippleIndication = rememberRipple() val selectionColors = rememberTextSelectionColors(rememberedColorScheme) CompositionLocalProvider( LocalColorScheme provides rememberedColorScheme, - LocalIndication provides rippleIndication, - LocalRippleTheme provides MaterialRippleTheme, + LocalRippleConfiguration provides MaterialRippleConfiguration, LocalShapes provides shapes, LocalTextSelectionColors provides selectionColors, LocalTypography provides typography, @@ -90,6 +83,21 @@ fun MaterialTheme( } } +@OptIn(ExperimentalMaterial3Api::class) +private val MaterialRippleConfiguration: RippleConfiguration + @Composable + get() = RippleConfiguration( + color = LocalContentColor.current, + rippleAlpha = DefaultRippleAlpha, + ) + +private val DefaultRippleAlpha = RippleAlpha( + pressedAlpha = StateTokens.PressedStateLayerOpacity, + focusedAlpha = StateTokens.FocusStateLayerOpacity, + draggedAlpha = StateTokens.DraggedStateLayerOpacity, + hoveredAlpha = StateTokens.HoverStateLayerOpacity, +) + /** * Contains functions to access the current theme values provided at the call site's position in * the hierarchy. @@ -130,24 +138,7 @@ object MaterialTheme { get() = LocalShapes.current } -@Immutable -private object MaterialRippleTheme : RippleTheme { - @Composable - override fun defaultColor() = LocalContentColor.current - - @Composable - override fun rippleAlpha() = DefaultRippleAlpha -} - -private val DefaultRippleAlpha = RippleAlpha( - pressedAlpha = StateTokens.PressedStateLayerOpacity, - focusedAlpha = StateTokens.FocusStateLayerOpacity, - draggedAlpha = StateTokens.DraggedStateLayerOpacity, - hoveredAlpha = StateTokens.HoverStateLayerOpacity, -) - @Composable -/*@VisibleForTesting*/ internal fun rememberTextSelectionColors(colorScheme: ColorScheme): TextSelectionColors { val primaryColor = colorScheme.primary return remember(primaryColor) { diff --git a/ui/theme/src/main/res/values-night/themes.xml b/ui/theme/src/main/res/values-night/themes.xml index 9e81d97d..27770a0e 100644 --- a/ui/theme/src/main/res/values-night/themes.xml +++ b/ui/theme/src/main/res/values-night/themes.xml @@ -16,8 +16,8 @@ --> - diff --git a/ui/theme/src/main/res/values/colors.xml b/ui/theme/src/main/res/values/colors.xml index 40f39b86..df3511ad 100644 --- a/ui/theme/src/main/res/values/colors.xml +++ b/ui/theme/src/main/res/values/colors.xml @@ -16,5 +16,5 @@ --> - #4D000000 + #4D000000 diff --git a/ui/theme/src/main/res/values/themes.xml b/ui/theme/src/main/res/values/themes.xml index 3ebf3790..f2115281 100644 --- a/ui/theme/src/main/res/values/themes.xml +++ b/ui/theme/src/main/res/values/themes.xml @@ -18,16 +18,16 @@ - diff --git a/ui/foundation/.gitignore b/ui/ui-foundation/.gitignore similarity index 100% rename from ui/foundation/.gitignore rename to ui/ui-foundation/.gitignore diff --git a/ui/foundation/api/foundation.api b/ui/ui-foundation/api/foundation.api similarity index 100% rename from ui/foundation/api/foundation.api rename to ui/ui-foundation/api/foundation.api diff --git a/ui/ui-foundation/api/ui-foundation.api b/ui/ui-foundation/api/ui-foundation.api new file mode 100644 index 00000000..9665002c --- /dev/null +++ b/ui/ui-foundation/api/ui-foundation.api @@ -0,0 +1,171 @@ +public final class dev/teogor/ceres/ui/foundation/ModifierExtensionsKt { + public static final fun applyIf (Landroidx/compose/ui/Modifier;ZLkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier; + public static final fun clickable-GK2WfCU (Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;ILkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier; + public static synthetic fun clickable-GK2WfCU$default (Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;Landroidx/compose/foundation/Indication;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;ILkotlin/jvm/functions/Function0;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; + public static final fun clickable-oSLSa3U (Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;ILkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier; + public static synthetic fun clickable-oSLSa3U$default (Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;ILkotlin/jvm/functions/Function0;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; + public static final fun rippleClickable-bi-UJ9A (Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Color;Lkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier; + public static synthetic fun rippleClickable-bi-UJ9A$default (Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/Color;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; + public static final fun sideClickable (Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;)Landroidx/compose/ui/Modifier; +} + +public final class dev/teogor/ceres/ui/foundation/SingleClickHandlerKt { + public static final fun clickableSingle-oSLSa3U (Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;ILkotlin/jvm/functions/Function0;)Landroidx/compose/ui/Modifier; + public static synthetic fun clickableSingle-oSLSa3U$default (Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;ILkotlin/jvm/functions/Function0;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; +} + +public final class dev/teogor/ceres/ui/foundation/TouchFeedbackKt { + public static final fun applyTouchFeedback (Landroid/content/Context;I)V + public static synthetic fun applyTouchFeedback$default (Landroid/content/Context;IILjava/lang/Object;)V + public static final fun withTouchFeedback (Lkotlin/jvm/functions/Function0;Landroid/content/Context;I)Lkotlin/jvm/functions/Function0; + public static synthetic fun withTouchFeedback$default (Lkotlin/jvm/functions/Function0;Landroid/content/Context;IILjava/lang/Object;)Lkotlin/jvm/functions/Function0; +} + +public final class dev/teogor/ceres/ui/foundation/config/FeedbackConfig { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/ui/foundation/config/FeedbackConfig; + public final fun getDisableAudioFeedback ()Z + public final fun getDisableVibrationFeedback ()Z + public final fun getVibrationFeedbackIntensity ()J + public final fun setDisableAudioFeedback (Z)V + public final fun setDisableVibrationFeedback (Z)V + public final fun setVibrationFeedbackIntensity (J)V +} + +public abstract class dev/teogor/ceres/ui/foundation/graphics/Icon { + public static final field $stable I +} + +public final class dev/teogor/ceres/ui/foundation/graphics/Icon$DrawableResourceIcon : dev/teogor/ceres/ui/foundation/graphics/Icon { + public static final field $stable I + public final fun component1 ()I + public final fun copy (I)Ldev/teogor/ceres/ui/foundation/graphics/Icon$DrawableResourceIcon; + public static synthetic fun copy$default (Ldev/teogor/ceres/ui/foundation/graphics/Icon$DrawableResourceIcon;IILjava/lang/Object;)Ldev/teogor/ceres/ui/foundation/graphics/Icon$DrawableResourceIcon; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()I + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/ui/foundation/graphics/Icon$ImageVectorIcon : dev/teogor/ceres/ui/foundation/graphics/Icon { + public static final field $stable I + public final fun component1 ()Landroidx/compose/ui/graphics/vector/ImageVector; + public final fun copy (Landroidx/compose/ui/graphics/vector/ImageVector;)Ldev/teogor/ceres/ui/foundation/graphics/Icon$ImageVectorIcon; + public static synthetic fun copy$default (Ldev/teogor/ceres/ui/foundation/graphics/Icon$ImageVectorIcon;Landroidx/compose/ui/graphics/vector/ImageVector;ILjava/lang/Object;)Ldev/teogor/ceres/ui/foundation/graphics/Icon$ImageVectorIcon; + public fun equals (Ljava/lang/Object;)Z + public final fun getImageVector ()Landroidx/compose/ui/graphics/vector/ImageVector; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class dev/teogor/ceres/ui/foundation/graphics/IconKt { + public static final fun asDrawableResourceIcon (I)Ldev/teogor/ceres/ui/foundation/graphics/Icon$DrawableResourceIcon; + public static final fun asImageVectorIcon (Landroidx/compose/ui/graphics/vector/ImageVector;)Ldev/teogor/ceres/ui/foundation/graphics/Icon$ImageVectorIcon; +} + +public final class dev/teogor/ceres/ui/foundation/lib/common/ComposableSingletons$EmptyComposableKt { + public static final field INSTANCE Ldev/teogor/ceres/ui/foundation/lib/common/ComposableSingletons$EmptyComposableKt; + public static field lambda-1 Lkotlin/jvm/functions/Function3; + public fun ()V + public final fun getLambda-1$ui_foundation_release ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/ui/foundation/lib/common/EmptyComposableKt { + public static final fun getEmptyComposable ()Lkotlin/jvm/functions/Function3; +} + +public final class dev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider; + public final fun getStatusBarHeight (Landroidx/compose/runtime/Composer;I)F +} + +public final class dev/teogor/ceres/ui/foundation/lib/resources/ResourceProviderKt { + public static final fun getIdentifier (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I +} + +public final class dev/teogor/ceres/ui/foundation/lib/resources/Strings_androidKt { + public static final fun getString-ejom7pM (ILandroidx/compose/runtime/Composer;I)Ljava/lang/String; +} + +public final class dev/teogor/ceres/ui/foundation/lib/resources/Symbols { + public static final field $stable I + public static final field BULLET Ljava/lang/String; + public static final field COPYRIGHT Ljava/lang/String; + public static final field DEGREE Ljava/lang/String; + public static final field ELLIPSIS Ljava/lang/String; + public static final field EM_DASH Ljava/lang/String; + public static final field EN_DASH Ljava/lang/String; + public static final field INSTANCE Ldev/teogor/ceres/ui/foundation/lib/resources/Symbols; + public static final field MICRO Ljava/lang/String; + public static final field PLUS_MINUS Ljava/lang/String; + public static final field REGISTERED_TRADEMARK Ljava/lang/String; + public static final field TRADEMARK Ljava/lang/String; +} + +public final class dev/teogor/ceres/ui/foundation/lib/resources/model/Strings { + public static final field Companion Ldev/teogor/ceres/ui/foundation/lib/resources/model/Strings$Companion; + public static final synthetic fun box-impl (I)Ldev/teogor/ceres/ui/foundation/lib/resources/model/Strings; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (ILjava/lang/Object;)Z + public static final fun equals-impl0 (II)Z + public fun hashCode ()I + public static fun hashCode-impl (I)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (I)Ljava/lang/String; + public final synthetic fun unbox-impl ()I +} + +public final class dev/teogor/ceres/ui/foundation/lib/resources/model/Strings$Companion { + public final fun getCloseDrawer-AfB059Q ()I + public final fun getCloseSheet-AfB059Q ()I + public final fun getDefaultErrorMessage-AfB059Q ()I + public final fun getExposedDropdownMenu-AfB059Q ()I + public final fun getNavigationMenu-AfB059Q ()I + public final fun getSliderRangeEnd-AfB059Q ()I + public final fun getSliderRangeStart-AfB059Q ()I +} + +public final class dev/teogor/ceres/ui/foundation/lib/tools/JankStatsExtensionsKt { + public static final fun TrackDisposableJank ([Ljava/lang/Object;Lkotlin/jvm/functions/Function2;Landroidx/compose/runtime/Composer;I)V + public static final fun TrackJank ([Ljava/lang/Object;Lkotlin/jvm/functions/Function3;Landroidx/compose/runtime/Composer;I)V + public static final fun TrackScrollJank (Landroidx/compose/foundation/gestures/ScrollableState;Ljava/lang/String;Landroidx/compose/runtime/Composer;I)V + public static final fun rememberMetricsStateHolder (Landroidx/compose/runtime/Composer;I)Landroidx/metrics/performance/PerformanceMetricsState$Holder; +} + +public final class dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule { + public static final field $stable I + public static final field INSTANCE Ldev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule; + public final fun providesJankStats (Landroid/view/Window;Landroidx/metrics/performance/JankStats$OnFrameListener;)Landroidx/metrics/performance/JankStats; + public final fun providesOnFrameListener ()Landroidx/metrics/performance/JankStats$OnFrameListener; + public final fun providesWindow (Landroid/app/Activity;)Landroid/view/Window; +} + +public final class dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule_ProvidesJankStatsFactory : dagger/internal/Factory { + public fun (Ljavax/inject/Provider;Ljavax/inject/Provider;)V + public static fun create (Ljavax/inject/Provider;Ljavax/inject/Provider;)Ldev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule_ProvidesJankStatsFactory; + public fun get ()Landroidx/metrics/performance/JankStats; + public synthetic fun get ()Ljava/lang/Object; + public static fun providesJankStats (Landroid/view/Window;Landroidx/metrics/performance/JankStats$OnFrameListener;)Landroidx/metrics/performance/JankStats; +} + +public final class dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule_ProvidesOnFrameListenerFactory : dagger/internal/Factory { + public fun ()V + public static fun create ()Ldev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule_ProvidesOnFrameListenerFactory; + public fun get ()Landroidx/metrics/performance/JankStats$OnFrameListener; + public synthetic fun get ()Ljava/lang/Object; + public static fun providesOnFrameListener ()Landroidx/metrics/performance/JankStats$OnFrameListener; +} + +public final class dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule_ProvidesWindowFactory : dagger/internal/Factory { + public fun (Ljavax/inject/Provider;)V + public static fun create (Ljavax/inject/Provider;)Ldev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule_ProvidesWindowFactory; + public fun get ()Landroid/view/Window; + public synthetic fun get ()Ljava/lang/Object; + public static fun providesWindow (Landroid/app/Activity;)Landroid/view/Window; +} + +public class hilt_aggregated_deps/_dev_teogor_ceres_ui_foundation_lib_tools_di_JankStatsModule { + public fun ()V +} + diff --git a/ui/foundation/build.gradle.kts b/ui/ui-foundation/build.gradle.kts similarity index 87% rename from ui/foundation/build.gradle.kts rename to ui/ui-foundation/build.gradle.kts index b90e26d7..b7d85f58 100644 --- a/ui/foundation/build.gradle.kts +++ b/ui/ui-foundation/build.gradle.kts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + plugins { id("dev.teogor.ceres.android.library") id("dev.teogor.ceres.android.library.compose") @@ -20,7 +21,7 @@ plugins { id("kotlinx-serialization") // required by *.lib.tools id("dev.teogor.ceres.android.hilt") - alias(libs.plugins.winds) + alias(libs.plugins.teogor.winds) } android { @@ -31,8 +32,8 @@ android { } dependencies { - api(project(":core:startup")) - api(project(":core:foundation")) + implementation(projects.core.startup) + implementation(projects.core.foundation) api(libs.androidx.compose.foundation) api(libs.androidx.compose.material) @@ -52,8 +53,9 @@ dependencies { } winds { - mavenPublish { - displayName = "Foundation" - name = "foundation" + moduleMetadata { + artifactDescriptor { + name = "Foundation" + } } } diff --git a/ui/ui-foundation/consumer-rules.pro b/ui/ui-foundation/consumer-rules.pro new file mode 100644 index 00000000..e69de29b diff --git a/ui/foundation/proguard-rules.pro b/ui/ui-foundation/proguard-rules.pro similarity index 100% rename from ui/foundation/proguard-rules.pro rename to ui/ui-foundation/proguard-rules.pro diff --git a/ui/foundation/src/main/AndroidManifest.xml b/ui/ui-foundation/src/main/AndroidManifest.xml similarity index 100% rename from ui/foundation/src/main/AndroidManifest.xml rename to ui/ui-foundation/src/main/AndroidManifest.xml diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/ModifierExtensions.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/ModifierExtensions.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/ModifierExtensions.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/ModifierExtensions.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/SingleClickHandler.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/SingleClickHandler.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/SingleClickHandler.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/SingleClickHandler.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/TouchFeedback.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/TouchFeedback.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/TouchFeedback.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/TouchFeedback.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/config/FeedbackConfig.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/config/FeedbackConfig.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/config/FeedbackConfig.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/config/FeedbackConfig.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/graphics/Icon.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/graphics/Icon.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/graphics/Icon.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/graphics/Icon.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/common/emptyComposable.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/common/emptyComposable.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/common/emptyComposable.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/common/emptyComposable.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/ResourceProvider.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Strings.android.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Strings.android.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Strings.android.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Strings.android.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Symbols.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Symbols.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Symbols.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/Symbols.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/model/Strings.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/model/Strings.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/model/Strings.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/resources/model/Strings.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/JankStatsExtensions.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/JankStatsExtensions.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/JankStatsExtensions.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/JankStatsExtensions.kt diff --git a/ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule.kt b/ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule.kt similarity index 100% rename from ui/foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule.kt rename to ui/ui-foundation/src/main/kotlin/dev/teogor/ceres/ui/foundation/lib/tools/di/JankStatsModule.kt