Skip to content

refactor: move all provider modules under providers/ directory#128

Merged
kirich1409 merged 2 commits intomainfrom
feat/reorganize-providers-into-single-folder
Mar 23, 2026
Merged

refactor: move all provider modules under providers/ directory#128
kirich1409 merged 2 commits intomainfrom
feat/reorganize-providers-into-single-folder

Conversation

@kirich1409
Copy link
Contributor

Summary

  • Moves datastore-provider, firebase-provider, javaprefs-provider, nsuserdefaults-provider, and sharedpreferences-provider under a single providers/ directory
  • Gradle module paths (:datastore-provider etc.) are preserved via projectDir overrides in settings.gradle.kts — no other build files changed

Test plan

  • Verify ./gradlew build succeeds
  • Verify ./gradlew spotlessCheck passes
  • Verify all module references resolve correctly (:datastore-provider, :firebase-provider, etc.)

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings March 22, 2026 06:23
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.kts to keep module coordinates (e.g., :firebase-provider) while pointing them to providers/* 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.

@kirich1409 kirich1409 closed this Mar 22, 2026
@kirich1409 kirich1409 reopened this Mar 22, 2026
@kirich1409 kirich1409 force-pushed the feat/reorganize-providers-into-single-folder branch from cc24e3b to 0a34f9e Compare March 23, 2026 12:37
kirich1409 and others added 2 commits March 23, 2026 15:48
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>
@kirich1409 kirich1409 force-pushed the feat/reorganize-providers-into-single-folder branch from 0a34f9e to 6ede720 Compare March 23, 2026 12:49
@kirich1409 kirich1409 merged commit 7e8f356 into main Mar 23, 2026
7 of 9 checks passed
@kirich1409 kirich1409 deleted the feat/reorganize-providers-into-single-folder branch March 23, 2026 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants