Open
Conversation
Added code style guideline requiring mutable state (var) in classes to be private, with dedicated methods or read-only getters for external access. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…erPropertiesManager, OfferingsCallbackManager Extracted three classes from ApphudInternal into dedicated components: - AnalyticsTracker: SDK timing/benchmarks with injectable timeProvider - UserPropertiesManager: property batching, debounce, flush logic - OfferingsCallbackManager: callback lifecycle and notification state Applied encapsulation: all mutable state is private with read-only getters or dedicated methods. AnalyticsTracker.sdkLaunchedAt replaced with sdkLaunchTimeMs() method. RegistrationProvider now depends on AnalyticsTracker directly instead of a lambda. ServiceLocator wires all new dependencies. Tests use constructor injection and fake timeProvider for deterministic behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use named arguments in all notifyLoadingCompleted call sites to prevent silent parameter mismatch after fromCache removal - Add @volatile to customProductsFetchedBlock for thread safety - Replace toJSON()!! with safe ?: return@forEach in UserPropertiesManager - Remove unused productDetails param from isErrorOccurred/hasDataLoadFailed - Wrap setUserProperty, incrementUserProperty, productsFetchCallback in Apphud.kt with runCatching for uninitialized SDK safety - Remove trailing semicolon from RegistrationProvider package declaration - Fix _firstCustomerLoadedTime force-unwrap with local val snapshot - Rewrite UserPropertiesManagerTest to use CompletableDeferred instead of reflection for _isUpdatingProperties Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
No description provided.