clevertap-android-sdk icon indicating copy to clipboard operation
clevertap-android-sdk copied to clipboard

SDK-5288 (Clevertap startup)(WIP)

Open CTLalit opened this issue 2 months ago • 2 comments

[!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 CoreState to orchestrate via a new CoreContract (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 NetworkManager and ContentFetchManager to use CoreContract; simplifies response classes and eliminates decorator chain.
    • QueueHeaderBuilder now pulls inAppFCManager/pushProviders via injected refs.
  • Lifecycle, push, and deep links:
    • Moves lifecycle and intent handling into CleverTapAPI; routes notification/deeplink processing to features (CoreState).
    • PushProviders initialization streamlined; background worker wiring adjusted.
  • In-app, Inbox, Display Units:
    • Preview/test handling and event queuing moved from AnalyticsManager into CoreState/feature modules.
    • DisplayUnit events now accept JSONObject data instead of unit ID.
  • Public API changes:
    • BaseAnalyticsManager: replaces pushDisplayUnit*ForID(...) with pushDisplayUnit*(JSONObject); pushNotificationClickedEvent(...) returns boolean.
    • Kotlin BaseLocationManager interface and new LocationManager impl.
  • Cleanup & tests:
    • Broad deletions/rewires across responses and samples (removes SyncListener usage).
    • Extensive test updates to new architecture and APIs.

Written by Cursor Bugbot for commit dd186e0747fb3eb1d9411ece78bd704fe2701f14. This will update automatically on new commits. Configure here.

CTLalit avatar Oct 27 '25 10:10 CTLalit

:white_check_mark: Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low 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.

francispereira avatar Oct 27 '25 10:10 francispereira

[!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.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot] avatar Oct 27 '25 10:10 coderabbitai[bot]