Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task/sdk 4425/support corev7.2.2 #294

Merged
merged 7 commits into from
Mar 3, 2025

Conversation

Anush-Shand
Copy link
Contributor

@Anush-Shand Anush-Shand commented Feb 18, 2025

https://wizrocket.atlassian.net/browse/SDK-4425

Android 15
Encryption Upgrade

Summary by CodeRabbit

  • New Features

    • Added advanced user event tracking and logging, including custom event and user profile methods.
    • Enhanced push notification handling for more dynamic campaign triggers.
  • Refactor

    • Streamlined plugin initialization and migrated from legacy event APIs to user-centric counterparts.
  • Chores & Documentation

    • Upgraded platform dependencies and build configurations for improved Android, iOS, and Flutter compatibility.
    • Updated integration guidelines to support new security standards and platform requirements.

Enjoy the enhanced functionality and improved performance in version 3.2.0!

- Adds support for core android v7.2.2
- Updates changelog and versions
- Upgrades AGP to 8.6.0 as recommended for Android 15
- Fixes gradle deprecation warnings
Copy link

coderabbitai bot commented Feb 18, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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.

Walkthrough

This update advances the CleverTap SDK to version 3.2.0 across multiple platforms. The changes include version bumps in documentation and configuration files, updates to Android build settings (including Gradle and SDK versions), and a shift in application architecture (e.g. using Application instead of FlutterApplication). The plugin now implements new user-level event log APIs while deprecating older device-level ones. Additionally, the native Android code registration and push notification handling have been modernized, and the Flutter example has been restructured to incorporate these updates.

Changes

File(s) Change Summary
CHANGELOG.md, README.md, pubspec.yaml, ios/clevertap_plugin.podspec, lib/clevertap_plugin.dart Version bump to 3.2.0; update of dependency versions; update of libVersion from 30000 to 30200; deprecation of legacy event logging methods with new user-level API additions.
android/build.gradle, example/android/gradle-wrapper/gradle-wrapper.properties, example/android/gradle.properties, example/android/settings.gradle, doc/Integrate-Android.md Android project configuration updates: increased compileSdk version, updated Gradle and Android plugin versions, enabled new build features, and revised integration instructions to use Application rather than FlutterApplication.
android/src/main/java/com/clevertap/clevertap_plugin/CleverTapApplication.java,
android/src/main/java/com/clevertap/clevertap_plugin/CleverTapPlugin.java,
example/android/app/src/main/AndroidManifest.xml,
example/android/app/src/main/java/.../EmbeddingV1Activity.java
Native plugin registration and application lifecycle changes: changed superclass from FlutterApplication to Application, removal of the legacy registerWith method, and removal of deprecated activity for EmbeddingV1.
android/src/main/java/com/clevertap/clevertap_plugin/DartToNativePlatformCommunicator.kt,
android/src/main/java/com/clevertap/clevertap_plugin/Utils.java
Introduction of new user event log API methods (e.g. getUserEventLog, getUserEventLogCount, etc.) and corresponding utility methods; deprecation of older event detail mapping and event tracking methods.
example/lib/main.dart,
example/pubspec.yaml
Flutter example revamp: added push notification handlers (pushAmpPayloadReceived, pushClickedPayloadReceived, etc.), new event logging and user profile methods, UI improvements, and dependency changes (Git-based workmanager and removal of open_file).

Sequence Diagram(s)

sequenceDiagram
    participant App
    participant FlutterPlugin
    participant NativeComm
    participant CleverTapAPI

    App->>FlutterPlugin: Call getUserEventLog("eventName")
    FlutterPlugin->>NativeComm: Method channel call
    NativeComm->>CleverTapAPI: Retrieve event log data
    CleverTapAPI-->>NativeComm: Return event data
    NativeComm-->>FlutterPlugin: Deliver result via channel
    FlutterPlugin-->>App: Return event log data
Loading
sequenceDiagram
    participant User
    participant FlutterUI
    participant CleverTapPlugin
    participant NotificationHandler

    User->>FlutterUI: Receives push notification
    FlutterUI->>CleverTapPlugin: Call pushClickedPayloadReceived(payload)
    CleverTapPlugin->>NotificationHandler: Process notification payload
    NotificationHandler-->>CleverTapPlugin: Notification processed
    CleverTapPlugin-->>FlutterUI: Update UI/Status
Loading

Possibly related PRs

Suggested reviewers

  • kushCT
  • CTLalit

Poem

I’m a little rabbit, hopping along the code,
Upgrading our SDK with a light, bouncy mode.
New features and logs, all shiny and new,
With cleaner flows and a refreshed view.
I nibble on bugs, let the old fade away,
Celebrating updates in a whimsical display!
🐰✨ Hop on board, let’s code all day!


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@Anush-Shand
Copy link
Contributor Author

@coderabbitai review

Copy link

coderabbitai bot commented Feb 18, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Anush-Shand Anush-Shand requested a review from CTLalit February 18, 2025 12:55
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (10)
example/lib/main.dart (1)

559-716: Main UI structure.
This large block organizes numerous example actions with expansion tiles. While it’s quite extensive, it follows a clear pattern. For production code, consider factoring out sections into separate widgets or pages for maintainability.

example/android/settings.gradle (1)

23-23: Activate Kotlin Plugin Declaration

Enabling the Kotlin plugin with
    id "org.jetbrains.kotlin.android" version "2.0.20" apply false
is correct for projects that leverage Kotlin. For consistency and readability, you might consider using the parenthesized syntax (e.g., id("org.jetbrains.kotlin.android")) throughout the file.

example/pubspec.yaml (1)

27-31: Workmanager Dependency Upgrade via Git

Replacing the version constraint for workmanager with a Git-based dependency:

  • This change—declaring the dependency via a Git repository (URL, path, and ref: main)—ensures you’re tracking the latest changes which may include important fixes or improvements.
  • Just verify that using the main branch does not introduce instability into the project.
CHANGELOG.md (7)

3-3: Consistent Header Format for New Version Entry
The version header “Version 3.2.0 (xx February 2025)” is currently styled as plain text. For better consistency and readability, please consider converting it to an atx heading. For example:

-Version 3.2.0 *(xx February 2025)*
+## Version 3.2.0 *(xx February 2025)*
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

3-3: Heading style
Expected: atx; Actual: setext

(MD003, heading-style)


8-8: Convert Emphasized 'What’s new' to a Heading
Using bold text (“What's new”) here may reduce clarity in the document outline. Consider converting it into an atx heading. For example:

-**What's new**
+## What's new
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

8-8: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


12-12: Fix Spacing Around Code Snippet
There is a missing space between the inline code snippet and the following text in this bullet. This affects readability. For example, change:

-Uses `AndroidKeyStore`for securely backing up encryption key on API levels 23+.
+Uses `AndroidKeyStore` for securely backing up encryption key on API levels 23+.

28-35: Unordered List Styling in Nested Items
The nested list under the “[Android and iOS Platform]” section is using dashes (“-”) instead of asterisks, which is inconsistent with the expected markdown style. Please update these list markers to asterisks. For example:

-  - Adds support for triggering InApps based on first-time event filtering in multiple triggers. Now you can create campaign triggers that combine recurring and first-time events. For example: Trigger a campaign when "Charged" occurs (every time) OR "App Launched" occurs (first time only).
+  * Adds support for triggering InApps based on first-time event filtering in multiple triggers. Now you can create campaign triggers that combine recurring and first-time events. For example: Trigger a campaign when "Charged" occurs (every time) OR "App Launched" occurs (first time only).

And similarly for the nested API list items:

-    - `getUserEventLog(<eventName>)`: Get details about a specific event
+    * `getUserEventLog(<eventName>)`: Get details about a specific event
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

28-28: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


29-29: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


30-30: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


31-31: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


32-32: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


33-33: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


34-34: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


36-45: Consistent List Marker in API Changes Block
In the “API Changes” block, the deprecation list is also using dashes. For consistency with markdownlint guidelines, please change these to asterisks. For instance:

-  - **API Changes**
+  * **API Changes**

And update the nested items accordingly. This small adjustment will improve the overall consistency of the changelog formatting.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

36-36: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


37-37: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


38-38: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


39-39: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


40-40: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


41-41: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


42-42: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


43-43: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


44-44: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


16-16: Consistent Header Format for Previous Version Entry
The header for “Version 3.1.0 (xx February 2025)” should also follow the atx heading style. Consider updating it as follows:

-Version 3.1.0 *(xx February 2025)*
+## Version 3.1.0 *(xx February 2025)*
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

16-16: Heading style
Expected: atx; Actual: setext

(MD003, heading-style)


18-18: Standardize 'What’s new' Section Heading
Similarly to version 3.2.0, the “What's new” text in the Version 3.1.0 block should be promoted to a proper heading (e.g., "## What's new") to maintain a clear document structure.

-**What's new**
+## What's new
🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

18-18: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e9010f7 and 155a667.

📒 Files selected for processing (18)
  • CHANGELOG.md (1 hunks)
  • README.md (1 hunks)
  • android/build.gradle (4 hunks)
  • android/src/main/java/com/clevertap/clevertap_plugin/CleverTapApplication.java (1 hunks)
  • android/src/main/java/com/clevertap/clevertap_plugin/CleverTapPlugin.java (3 hunks)
  • android/src/main/java/com/clevertap/clevertap_plugin/DartToNativePlatformCommunicator.kt (10 hunks)
  • android/src/main/java/com/clevertap/clevertap_plugin/Utils.java (3 hunks)
  • doc/Integrate-Android.md (1 hunks)
  • example/android/app/src/main/AndroidManifest.xml (0 hunks)
  • example/android/app/src/main/java/com/example/clevertap_plugin_example/EmbeddingV1Activity.java (0 hunks)
  • example/android/gradle.properties (1 hunks)
  • example/android/gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • example/android/settings.gradle (1 hunks)
  • example/lib/main.dart (14 hunks)
  • example/pubspec.yaml (1 hunks)
  • ios/clevertap_plugin.podspec (1 hunks)
  • lib/clevertap_plugin.dart (5 hunks)
  • pubspec.yaml (1 hunks)
💤 Files with no reviewable changes (2)
  • example/android/app/src/main/AndroidManifest.xml
  • example/android/app/src/main/java/com/example/clevertap_plugin_example/EmbeddingV1Activity.java
✅ Files skipped from review due to trivial changes (3)
  • pubspec.yaml
  • ios/clevertap_plugin.podspec
  • example/android/gradle/wrapper/gradle-wrapper.properties
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md

3-3: Heading style
Expected: atx; Actual: setext

(MD003, heading-style)


8-8: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


16-16: Heading style
Expected: atx; Actual: setext

(MD003, heading-style)


18-18: Emphasis used instead of a heading
null

(MD036, no-emphasis-as-heading)


28-28: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


29-29: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


30-30: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


31-31: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


32-32: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


33-33: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


34-34: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


36-36: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


37-37: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


38-38: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


39-39: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


40-40: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


41-41: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


42-42: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


43-43: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)


44-44: Unordered list style
Expected: asterisk; Actual: dash

(MD004, ul-style)

🔇 Additional comments (45)
android/src/main/java/com/clevertap/clevertap_plugin/CleverTapPlugin.java (4)

84-84: Looks good.
Calling setupPlugin from within onAttachedToEngine correctly implements the Flutter plugin architecture.


99-99: Method signature update is appropriate.
Removing the Registrar parameter aligns with the modern plugin registration approach.


101-105: Channel setup logic confirmed.
Initializing method channels with the updated signatures is valid. No issues found.


120-123: Method channel creation updated.
The new MethodChannel constructor invocation without a Registrar parameter is consistent with Flutter v2+ plugins.

example/lib/main.dart (18)

4-4: Dependency usage note.
The import for dart:math is clear and is used for generating random values in user logins. No issues.


241-242: Toast usage check.
Using showToast(filePath) here is fine. Ensure no sensitive data is exposed inadvertently in a production build.


428-435: Push AMP payload handling.
Properly decodes and logs the AMP payload, then creates a notification. Looks correct. Confirm that potential null or malformed data is handled gracefully upstream.


437-441: Push-click callback.
Deeplink handling appears straightforward. No concerns identified.


443-446: Push permission response logging.
Simple logging is acceptable. Confirm that subsequent flows handle acceptance or rejection properly.


449-457: Encapsulated widget: _buildExpansionTile.
Good approach to maintain code clarity by extracting the expansion tile to a helper function.


459-471: Encapsulated widget: _buildListTile.
Keeping each list tile in its own helper function is a clean design choice for better readability.


473-506: Dialog for single input.
Implementation is neat and straightforward. Fields and error handling for empty inputs are managed.


508-554: Dialog for multiple inputs.
Similar structure to single input. Good approach reusing the pattern.


919-922: Custom event method.
Recording events with the CleverTapPlugin is straightforward. No issues.


988-994: Custom user profile creation.
Allows for dynamic attribute setting using a map. Correct usage of profileSet.


1299-1305: Retrieving event first time.
Uses \getUserEventLog and checks firstTime. Implementation looks good.


1312-1317: Retrieving event last time.
Similarly uses \getUserEventLog to fetch lastTime. No concerns.


1325-1332: Retrieving event log count.
Invokes getUserEventLogCount and handles the result. No issues.


1339-1357: Fetching the entire event log.
Properly retrieves event logs with a then/catchError pattern.


1418-1429: Random user login.
Utilizing Random for distinct Identity is valid for testing.


1492-1499: Obtaining app launch count.
No concerns. The error handling pattern is consistent.


1520-1527: User last visit retrieval.
Handles returned timestamp with a toast. Looks correct.

android/src/main/java/com/clevertap/clevertap_plugin/CleverTapApplication.java (1)

11-13: Switch from FlutterApplication to Application.
This is valid if the plugin initialization is now fully handled in CleverTapPlugin, and you are not relying on Flutter-specific context in the Application class. Ensure no side-effects in code that previously expected FlutterApplication.

android/src/main/java/com/clevertap/clevertap_plugin/Utils.java (4)

12-12: Import added for new user-level event logging.

The addition of UserEventLog import supports the new user-level event tracking functionality.


83-94: Method deprecated in favor of user-level event tracking.

The eventDetailToMap method is correctly marked as deprecated, with a corresponding replacement method eventLogToMap available.


96-109: New method added for user-level event tracking.

The eventLogToMap method is well-implemented with comprehensive event data mapping including device ID.


111-119: New method added for handling user event log history.

The historyEventLogToMap method provides a clean implementation for mapping event history data.

lib/clevertap_plugin.dart (3)

76-77: Library version updated to 30200.

Version number format follows X0X0X pattern (3.2.0 → 30200).


688-693: New user-level event tracking methods added.

Comprehensive set of new methods added for user-level event tracking:

  • getUserEventLog
  • getUserEventLogCount
  • getUserEventLogHistory
  • getUserAppLaunchCount
  • getUserLastVisitTs

The implementation is consistent and includes proper error handling.

Also applies to: 695-707, 709-716, 726-731, 733-737, 739-744, 746-750, 752-756


918-923: Methods deprecated with clear migration paths.

The deprecated methods include clear guidance to use the new user-level event tracking methods:

  • sessionGetTotalVisitsgetUserAppLaunchCount
  • sessionGetPreviousVisitTimegetUserLastVisitTs

Also applies to: 931-936

android/src/main/java/com/clevertap/clevertap_plugin/DartToNativePlatformCommunicator.kt (3)

68-68: New constant added for event name key.

The KEY_EVENT_NAME constant improves code maintainability by centralizing the event name key.


1217-1256: New user-level event tracking methods added.

Well-implemented set of methods for user-level event tracking with proper null checks and error handling:

  • getUserEventLog
  • getUserEventLogCount
  • getUserEventLogHistory
  • getUserAppLaunchCount
  • getUserLastVisitTs

1258-1297: Methods deprecated with proper annotations.

The deprecated methods are properly annotated with @Deprecated and include deprecation messages.

example/android/gradle.properties (1)

1-1: JVM arguments updated to remove deprecated setting.

Removed -XX:MaxPermSize=512m as it's no longer needed in modern Java versions. The remaining memory and encoding settings are appropriate.

example/android/settings.gradle (1)

21-22: Android Application Plugin Version Update

The update to use id("com.android.application").version("8.6.1").apply(false) ensures that your Android build configuration aligns with the latest Gradle Plugin requirements. This change appears well integrated with the rest of the build settings.

android/build.gradle (5)

2-3: Project Version Update

Changing the project version from '3.0.0' to '3.2.0' is consistent with the release notes and version bump described in your PR. Ensure that this version is consistently referenced across all modules.


11-13: Gradle Plugin Classpath Upgrade

Updating the Gradle tools dependency with
    classpath("com.android.tools.build:gradle:8.6.1")
is a required change for supporting Android 15 and the related encryption updates. Make sure to run a full build to confirm there are no compatibility issues.


38-41: Enable BuildConfig via Build Features

The addition of the buildFeatures { buildConfig = true } block improves your configuration by allowing for generated build configuration fields. This can facilitate feature flagging or conditional compilation.


46-47: Compile SDK Level Increment

Raising compileSdk from 34 to 35 properly reflects support for Android 15. Double-check that all dependencies are compatible with this SDK level.


62-66: CleverTap Android SDK Dependency Upgrade

Updating the CleverTap Android SDK dependency to api 'com.clevertap.android:clevertap-android-sdk:7.2.2' is an important change for improved encryption and feature support. Validate that any API changes in the SDK have been addressed in your integration code.

README.md (1)

22-25: Documentation Version Bump

Updating the clevertap_plugin dependency version in the README to 3.2.0 ensures that developers are guided to use the latest SDK release. This update is consistent with the other version changes in the project.

example/pubspec.yaml (2)

19-26: Dependency Cleanup: Removal of open_file

The removal of the open_file dependency streamlines the dependency list. Ensure that any functionality previously provided by open_file is either no longer required or has been replaced.


39-41: Local Plugin Dependency Reference Check

The example specifies clevertap_plugin as a local dependency (with path: ../). Confirm that this local project’s version aligns with the upgraded version (3.2.0) as communicated in the release notes.

doc/Integrate-Android.md (1)

55-62: Update Application Inheritance in MyApplication

Changing the application class from extending FlutterApplication to extending Application is a significant architectural update that aligns with current Android best practices. The addition of ActivityLifecycleCallback.register(this) before super.onCreate() should be verified to ensure that any Flutter-specific initialization is handled appropriately elsewhere if needed.

CHANGELOG.md (1)

5-7: Clear Emphasis for Important Note
The note block is displayed correctly with blockquote formatting. Just ensure that the content remains clearly separated from the headings. No changes required here, but keep an eye on consistency with similar sections.

- Addresses comments by coderabbit
- Comments out workmanager
- targetSDKVersion = 35
Copy link
Contributor

@CTLalit CTLalit left a comment

Choose a reason for hiding this comment

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

Added some comments.

@Anush-Shand
Copy link
Contributor Author

@nishant-clevertap we will also be adding changes for 7.2.2 for android

Can you check the versions of the flutter-sdk on iOS side

@Anush-Shand Anush-Shand merged commit 7ab631e into develop Mar 3, 2025
1 check passed
@Anush-Shand Anush-Shand deleted the task/SDK-4425/support_corev7.2.2 branch March 3, 2025 11:30
@coderabbitai coderabbitai bot mentioned this pull request Mar 3, 2025
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