refactor: move all provider modules under providers/ directory#128
Merged
kirich1409 merged 2 commits intomainfrom Mar 23, 2026
Merged
refactor: move all provider modules under providers/ directory#128kirich1409 merged 2 commits intomainfrom
kirich1409 merged 2 commits intomainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR consolidates the various *-provider modules under a new top-level providers/ directory while preserving their Gradle module paths via projectDir overrides in settings.gradle.kts.
Changes:
- Updated
settings.gradle.ktsto keep module coordinates (e.g.,:firebase-provider) while pointing them toproviders/*directories. - Added/relocated provider implementations and associated build/API/proguard files under
providers/. - Added/relocated provider test suites (Android/JVM/iOS) under the new module locations.
Reviewed changes
Copilot reviewed 1 out of 33 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| settings.gradle.kts | Preserves module paths by overriding projectDir to providers/*. |
| providers/sharedpreferences-provider/src/test/kotlin/dev/androidbroadcast/featured/sharedpreferences/SharedPreferencesProviderConfigTest.kt | SharedPreferences local provider tests (Robolectric). |
| providers/sharedpreferences-provider/src/main/kotlin/dev/androidbroadcast/featured/sharedpreferences/ValueSaversBuiltIn.kt | Built-in SharedPreferences value serializers. |
| providers/sharedpreferences-provider/src/main/kotlin/dev/androidbroadcast/featured/sharedpreferences/ValueSavers.kt | Registry for type-to-saver mapping. |
| providers/sharedpreferences-provider/src/main/kotlin/dev/androidbroadcast/featured/sharedpreferences/ValueSaver.kt | Saver interface for SharedPreferences persistence. |
| providers/sharedpreferences-provider/src/main/kotlin/dev/androidbroadcast/featured/sharedpreferences/SharedPreferencesProviderConfig.kt | SharedPreferences-backed LocalConfigValueProvider implementation. |
| providers/sharedpreferences-provider/proguard-rules.pro | Module ProGuard rules scaffold. |
| providers/sharedpreferences-provider/consumer-rules.pro | Consumer ProGuard rules for the module. |
| providers/sharedpreferences-provider/build.gradle.kts | Android library build + publishing + coverage config for the module. |
| providers/sharedpreferences-provider/api/sharedpreferences-provider.api | Binary-compatibility API surface snapshot. |
| providers/nsuserdefaults-provider/src/iosTest/kotlin/dev/androidbroadcast/featured/nsuserdefaults/NSUserDefaultsConfigValueProviderTest.kt | iOS tests for NSUserDefaults-backed local provider. |
| providers/nsuserdefaults-provider/src/iosMain/kotlin/dev/androidbroadcast/featured/nsuserdefaults/NSUserDefaultsConfigValueProvider.kt | NSUserDefaults-backed LocalConfigValueProvider implementation. |
| providers/nsuserdefaults-provider/build.gradle.kts | KMP build + publishing config for the iOS provider module. |
| providers/javaprefs-provider/src/test/kotlin/dev/androidbroadcast/featured/javaprefs/JavaPreferencesConfigValueProviderTest.kt | JVM tests for Preferences-backed local provider. |
| providers/javaprefs-provider/src/main/kotlin/dev/androidbroadcast/featured/javaprefs/JavaPreferencesConfigValueProvider.kt | Java Preferences-backed LocalConfigValueProvider implementation. |
| providers/javaprefs-provider/build.gradle.kts | JVM build + publishing config for the module. |
| providers/javaprefs-provider/api/javaprefs-provider.api | Binary-compatibility API surface snapshot. |
| providers/firebase-provider/src/test/kotlin/dev/androidbroadcast/featured/firebase/FirebaseConfigValueProviderTest.kt | Unit tests for Firebase Remote Config provider fetch behavior. |
| providers/firebase-provider/src/main/kotlin/dev/androidbroadcast/featured/firebase/FirebaseConfigValueProvider.kt | Firebase Remote Config-backed RemoteConfigValueProvider. |
| providers/firebase-provider/src/main/kotlin/dev/androidbroadcast/featured/firebase/FetchException.kt | Exception type for fetch failures. |
| providers/firebase-provider/src/main/kotlin/dev/androidbroadcast/featured/firebase/Converters.kt | Converter registry for Firebase typed extraction. |
| providers/firebase-provider/src/main/kotlin/dev/androidbroadcast/featured/firebase/Converter.kt | Converter interface + built-in numeric converters. |
| providers/firebase-provider/proguard-rules.pro | Module ProGuard rules scaffold. |
| providers/firebase-provider/consumer-rules.pro | Consumer ProGuard rules for Firebase provider. |
| providers/firebase-provider/build.gradle.kts | Android library build + publishing + coverage config for Firebase provider. |
| providers/firebase-provider/api/firebase-provider.api | Binary-compatibility API surface snapshot. |
| providers/firebase-provider/.gitignore | Module-local ignore for build outputs. |
| providers/datastore-provider/src/commonTest/kotlin/dev/androidbroadcast/featured/datastore/DataStoreEnumTest.kt | Common tests for DataStore provider converter support. |
| providers/datastore-provider/src/commonMain/kotlin/dev/androidbroadcast/featured/datastore/DataStoreConfigValueProvider.kt | DataStore-backed LocalConfigValueProvider implementation. |
| providers/datastore-provider/build.gradle.kts | KMP + Android build + publishing + coverage config for DataStore provider. |
| providers/datastore-provider/api/jvm/datastore-provider.api | JVM API surface snapshot. |
| providers/datastore-provider/api/android/datastore-provider.api | Android API surface snapshot. |
| providers/datastore-provider/README.md | Module usage documentation. |
cc24e3b to
0a34f9e
Compare
Groups datastore-provider, firebase-provider, javaprefs-provider, nsuserdefaults-provider, and sharedpreferences-provider under a single providers/ folder. Gradle module paths (:datastore-provider etc.) are preserved via projectDir overrides in settings.gradle.kts, so no other build files need changing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…in.random.Random in commonTest System.currentTimeMillis() is JVM-only and fails to compile on iOS targets. Replace with kotlin.random.Random.nextLong() which is available in the Kotlin stdlib for all KMP targets. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0a34f9e to
6ede720
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
datastore-provider,firebase-provider,javaprefs-provider,nsuserdefaults-provider, andsharedpreferences-providerunder a singleproviders/directory:datastore-provideretc.) are preserved viaprojectDiroverrides insettings.gradle.kts— no other build files changedTest plan
./gradlew buildsucceeds./gradlew spotlessCheckpasses:datastore-provider,:firebase-provider, etc.)🤖 Generated with Claude Code