SDK-5288 (Clevertap startup)(WIP)
[!NOTE] Massive architecture refactor introducing feature-based CoreState, rewiring networking and responses via CoreContract, migrating lifecycle/push/deeplink/inbox/in-app flows into features, and simplifying public APIs (display unit, notification click) with broad deletions of legacy managers/callbacks.
- Core architecture:
- Introduces feature-based modules (
CoreFeature,AnalyticsFeature,InAppFeature,InboxFeature,DisplayUnitFeature,NetworkFeature,VariablesFeature,FeatureFlagFeature,ProductConfigFeature,PushFeature,ProfileFeature,GeofenceFeature).- Rewrites
CoreStateto orchestrate via a newCoreContract(centralizing network response routing, headers, and cross-feature calls).- Removes legacy managers/callback layers (e.g.,
ActivityLifeCycleManager,ControllerManager,BaseCallbackManager), consolidating flows in features.- Networking:
- Refactors
NetworkManagerandContentFetchManagerto useCoreContract; simplifies response classes and eliminates decorator chain.QueueHeaderBuildernow pullsinAppFCManager/pushProvidersvia injected refs.- Lifecycle, push, and deep links:
- Moves lifecycle and intent handling into
CleverTapAPI; routes notification/deeplink processing to features (CoreState).PushProvidersinitialization streamlined; background worker wiring adjusted.- In-app, Inbox, Display Units:
- Preview/test handling and event queuing moved from
AnalyticsManagerintoCoreState/feature modules.DisplayUnitevents now acceptJSONObjectdata instead of unit ID.- Public API changes:
BaseAnalyticsManager: replacespushDisplayUnit*ForID(...)withpushDisplayUnit*(JSONObject);pushNotificationClickedEvent(...)returnsboolean.- Kotlin
BaseLocationManagerinterface and newLocationManagerimpl.- Cleanup & tests:
- Broad deletions/rewires across responses and samples (removes
SyncListenerusage).- Extensive test updates to new architecture and APIs.
Written by Cursor Bugbot for commit dd186e0747fb3eb1d9411ece78bd704fe2701f14. This will update automatically on new commits. Configure here.
:white_check_mark: Snyk checks have passed. No issues have been found so far.
| Status | Scanner | Total (0) | ||||
|---|---|---|---|---|---|---|
| :white_check_mark: | Licenses | 0 | 0 | 0 | 0 | 0 issues |
| :white_check_mark: | Code Security | 0 | 0 | 0 | 0 | 0 issues |
| :white_check_mark: | Open Source Security | 0 | 0 | 0 | 0 | 0 issues |
:computer: Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.
[!IMPORTANT]
Review skipped
Auto reviews are disabled on base/target branches other than the default branch.
🗂️ Base branches to auto review (1)
- \b(master|main|develop)(_\w*)?
Please check the settings in the CodeRabbit UI or the
.coderabbit.yamlfile in this repository. To trigger a single review, invoke the@coderabbitai reviewcommand.You can disable this status message by setting the
reviews.review_statustofalsein the CodeRabbit configuration file.
[!NOTE]
Other AI code review bot(s) detected
CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.
✨ Finishing touches
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests
- [ ] Post copyable unit tests in a comment
- [ ] Commit unit tests in branch
task/clevertap-startup
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.