Skip to content

Conversation

@Jignesh-dimagi
Copy link
Contributor

Product Description

This has all drawables from dv/connect_initial to master

Technical Summary

https://dimagi.atlassian.net/browse/CCCT-1086

Feature Flag

This is review

Safety Assurance

Labels and Review

  • Do we need to enhance the manual QA test coverage ? If yes, the "QA Note" label is set correctly
  • Does the PR introduce any major changes worth communicating ? If yes, the "Release Note" label is set and a "Release Note" is specified in PR description.
  • Risk label is set correctly
  • The set of people pinged as reviewers is appropriate for the level of risk of the change

@coderabbitai
Copy link

coderabbitai bot commented May 5, 2025

📝 Walkthrough

Walkthrough

This change introduces a large set of new drawable resources, including vector icons and shape drawables, primarily to support new UI elements and visual states for ConnectID and Connect features. The update adds icons for messaging, delivery, payments, job statuses, and various UI controls, as well as several shape drawables for backgrounds and rounded corners. Multiple new color resources are defined for messaging backgrounds and text. The attrs.xml file is expanded with new styleable attributes for custom views such as PhoneInputView and RoundedButton, enabling extensive UI customization. The strings.xml file is significantly reorganized and expanded, adding numerous string resources for ConnectID-related flows, messaging, delivery, payments, and user authentication, while removing some obsolete entries. Styles and themes are updated, with some old styles removed and new ones added or modified. Dimension resources are also extended with a new text margin value.

Sequence Diagram(s)

Skipped: The changes are resource additions and reorganizations, with no new feature logic or control flow introduced.

Possibly related PRs

  • dimagi/commcare-android#2938: Adds the same backup.xml vector drawable resource file, indicating a direct overlap in drawable resource changes.
  • dimagi/commcare-android#2897: Focuses on converting square buttons to rounded buttons, related through the addition of rounded button drawable resources and style updates in this PR.

Suggested labels

product/invisible, skip-integration-tests

Suggested reviewers

  • OrangeAndGreen
  • shubham1g5

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
🪧 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.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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 generate sequence diagram to generate a sequence diagram of the changes in 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.

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: 69

♻️ Duplicate comments (1)
app/res/drawable/shape_connect_delivery_rejected.xml (1)

1-5: Duplicate: consider defining intrinsic size for badge shapes.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 5667bce and 0534bfe.

⛔ Files ignored due to path filters (116)
  • app/res/drawable-hdpi/cloud_backup.png is excluded by !**/*.png
  • app/res/drawable-hdpi/ic_connect_delivery.png is excluded by !**/*.png
  • app/res/drawable-hdpi/ic_connect_download_green.png is excluded by !**/*.png
  • app/res/drawable-hdpi/ic_connect_expired.png is excluded by !**/*.png
  • app/res/drawable-hdpi/ic_connect_learning.png is excluded by !**/*.png
  • app/res/drawable-hdpi/ic_connect_new_opportunity.png is excluded by !**/*.png
  • app/res/drawable-hdpi/ic_marker.png is excluded by !**/*.png
  • app/res/drawable-hdpi/mobile_support.png is excluded by !**/*.png
  • app/res/drawable-hdpi/monetary_support.png is excluded by !**/*.png
  • app/res/drawable-ldpi/arrow_right.png is excluded by !**/*.png
  • app/res/drawable-ldpi/book.png is excluded by !**/*.png
  • app/res/drawable-ldpi/calendar_heart.png is excluded by !**/*.png
  • app/res/drawable-ldpi/checklist.png is excluded by !**/*.png
  • app/res/drawable-ldpi/cloud_backup.png is excluded by !**/*.png
  • app/res/drawable-ldpi/ic_connect_delivery.png is excluded by !**/*.png
  • app/res/drawable-ldpi/ic_connect_download_green.png is excluded by !**/*.png
  • app/res/drawable-ldpi/ic_connect_expired.png is excluded by !**/*.png
  • app/res/drawable-ldpi/ic_connect_learning.png is excluded by !**/*.png
  • app/res/drawable-ldpi/ic_connect_new_opportunity.png is excluded by !**/*.png
  • app/res/drawable-ldpi/mobile_support.png is excluded by !**/*.png
  • app/res/drawable-ldpi/monetary_support.png is excluded by !**/*.png
  • app/res/drawable-ldpi/money.png is excluded by !**/*.png
  • app/res/drawable-ldpi/money2.png is excluded by !**/*.png
  • app/res/drawable-ldpi/report_approved.png is excluded by !**/*.png
  • app/res/drawable-ldpi/time.png is excluded by !**/*.png
  • app/res/drawable-ldpi/watch.png is excluded by !**/*.png
  • app/res/drawable-mdpi/arrow_right.png is excluded by !**/*.png
  • app/res/drawable-mdpi/book.png is excluded by !**/*.png
  • app/res/drawable-mdpi/calendar_heart.png is excluded by !**/*.png
  • app/res/drawable-mdpi/checklist.png is excluded by !**/*.png
  • app/res/drawable-mdpi/cloud_backup.png is excluded by !**/*.png
  • app/res/drawable-mdpi/connect_arrow_down.png is excluded by !**/*.png
  • app/res/drawable-mdpi/connect_edittext_cancel.png is excluded by !**/*.png
  • app/res/drawable-mdpi/connect_ic_inventory.png is excluded by !**/*.png
  • app/res/drawable-mdpi/ic_connect_delivery.png is excluded by !**/*.png
  • app/res/drawable-mdpi/ic_connect_download_green.png is excluded by !**/*.png
  • app/res/drawable-mdpi/ic_connect_expired.png is excluded by !**/*.png
  • app/res/drawable-mdpi/ic_connect_learning.png is excluded by !**/*.png
  • app/res/drawable-mdpi/ic_connect_new_opportunity.png is excluded by !**/*.png
  • app/res/drawable-mdpi/ic_marker.png is excluded by !**/*.png
  • app/res/drawable-mdpi/mobile_support.png is excluded by !**/*.png
  • app/res/drawable-mdpi/monetary_support.png is excluded by !**/*.png
  • app/res/drawable-mdpi/money.png is excluded by !**/*.png
  • app/res/drawable-mdpi/money2.png is excluded by !**/*.png
  • app/res/drawable-mdpi/report_approved.png is excluded by !**/*.png
  • app/res/drawable-mdpi/time.png is excluded by !**/*.png
  • app/res/drawable-mdpi/watch.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/arrow_right.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/book.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/calendar_heart.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/checklist.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/cloud_backup.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/connect_arrow_down.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/connect_edittext_cancel.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/connect_ic_inventory.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/ic_connect_delivery.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/ic_connect_download_green.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/ic_connect_expired.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/ic_connect_learning.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/ic_connect_new_opportunity.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/ic_marker.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/mobile_support.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/monetary_support.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/money.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/money2.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/report_approved.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/time.png is excluded by !**/*.png
  • app/res/drawable-xhdpi/watch.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/arrow_right.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/book.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/calendar_heart.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/checklist.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/cloud_backup.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/connect_arrow_down.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/connect_edittext_cancel.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/connect_ic_inventory.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/ic_connect_delivery.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/ic_connect_download_green.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/ic_connect_expired.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/ic_connect_learning.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/ic_connect_new_opportunity.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/ic_marker.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/mobile_support.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/monetary_support.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/money.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/money2.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/report_approved.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/time.png is excluded by !**/*.png
  • app/res/drawable-xxhdpi/watch.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/arrow_right.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/book.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/calendar_heart.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/checklist.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/cloud_backup.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/connect_arrow_down.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/connect_edittext_cancel.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/connect_ic_inventory.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/ic_connect_delivery.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/ic_connect_download_green.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/ic_connect_expired.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/ic_connect_learning.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/ic_connect_new_opportunity.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/mobile_support.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/monetary_support.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/money.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/money2.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/report_approved.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/time.png is excluded by !**/*.png
  • app/res/drawable-xxxhdpi/watch.png is excluded by !**/*.png
  • app/res/drawable/cert_1.png is excluded by !**/*.png
  • app/res/drawable/flower.png is excluded by !**/*.png
  • app/res/drawable/ic_connect_delivery_progress.png is excluded by !**/*.png
  • app/res/drawable/ic_connect_message_send.png is excluded by !**/*.png
  • app/res/drawable/ic_dimagi_logo.png is excluded by !**/*.png
  • app/res/drawable/local_library.png is excluded by !**/*.png
  • app/res/drawable/logo_white.png is excluded by !**/*.png
📒 Files selected for processing (50)
  • app/res/drawable/backup.xml (1 hunks)
  • app/res/drawable/connect_rounded_corner_grey.xml (1 hunks)
  • app/res/drawable/connect_rounded_corner_light_green.xml (1 hunks)
  • app/res/drawable/connect_rounded_corner_orange_yellow.xml (1 hunks)
  • app/res/drawable/connect_rounded_corner_teslish_blue.xml (1 hunks)
  • app/res/drawable/home_saved.xml (1 hunks)
  • app/res/drawable/ic_connect_arrow_forward.xml (1 hunks)
  • app/res/drawable/ic_connect_arrow_forward_24px.xml (1 hunks)
  • app/res/drawable/ic_connect_check_circle.xml (1 hunks)
  • app/res/drawable/ic_connect_close.xml (1 hunks)
  • app/res/drawable/ic_connect_delivery_approved.xml (1 hunks)
  • app/res/drawable/ic_connect_delivery_check_circle.xml (1 hunks)
  • app/res/drawable/ic_connect_delivery_pending.xml (1 hunks)
  • app/res/drawable/ic_connect_delivery_rejected.xml (1 hunks)
  • app/res/drawable/ic_connect_directory_sync.xml (1 hunks)
  • app/res/drawable/ic_connect_message_editext_bg_24_border.xml (1 hunks)
  • app/res/drawable/ic_connect_message_large.xml (1 hunks)
  • app/res/drawable/ic_connect_message_read.xml (1 hunks)
  • app/res/drawable/ic_connect_message_receiver_bg.xml (1 hunks)
  • app/res/drawable/ic_connect_message_receiver_edge.xml (1 hunks)
  • app/res/drawable/ic_connect_message_sender_bg.xml (1 hunks)
  • app/res/drawable/ic_connect_message_sender_edge.xml (1 hunks)
  • app/res/drawable/ic_connect_message_unread.xml (1 hunks)
  • app/res/drawable/ic_connect_messaging_base.xml (1 hunks)
  • app/res/drawable/ic_connect_messaging_unread.xml (1 hunks)
  • app/res/drawable/ic_connect_pager_indicator.xml (1 hunks)
  • app/res/drawable/ic_connect_payment_earned.xml (1 hunks)
  • app/res/drawable/ic_connect_payment_recevied_check.xml (1 hunks)
  • app/res/drawable/ic_connect_payment_revert.xml (1 hunks)
  • app/res/drawable/ic_connect_payment_status_not_transferred.xml (1 hunks)
  • app/res/drawable/ic_connect_payment_status_transferred.xml (1 hunks)
  • app/res/drawable/ic_connect_payment_transferred.xml (1 hunks)
  • app/res/drawable/ic_connect_thumb_up.xml (1 hunks)
  • app/res/drawable/ic_connect_yellow_dot.xml (1 hunks)
  • app/res/drawable/ic_contact_support_30.xml (1 hunks)
  • app/res/drawable/install_start.xml (1 hunks)
  • app/res/drawable/login_edit_text.xml (1 hunks)
  • app/res/drawable/progress_ring.xml (1 hunks)
  • app/res/drawable/rounded_top_corners.xml (1 hunks)
  • app/res/drawable/shape_border_10px_blue.xml (1 hunks)
  • app/res/drawable/shape_connect_delivery_approved.xml (1 hunks)
  • app/res/drawable/shape_connect_delivery_pending.xml (1 hunks)
  • app/res/drawable/shape_connect_delivery_rejected.xml (1 hunks)
  • app/res/values/attrs.xml (2 hunks)
  • app/res/values/colors.xml (2 hunks)
  • app/res/values/dimens.xml (1 hunks)
  • app/res/values/mydialog.xml (0 hunks)
  • app/res/values/strings.xml (18 hunks)
  • app/res/values/styles.xml (1 hunks)
  • app/res/values/themes.xml (1 hunks)
💤 Files with no reviewable changes (1)
  • app/res/values/mydialog.xml
⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: Lint Code Base
🔇 Additional comments (42)
app/res/drawable/install_start.xml (1)

1-1: Add XML declaration for consistency
Including <?xml version="1.0" encoding="utf-8"?> ensures that this drawable matches the formatting and encoding declarations of other vector XML resources, reducing the risk of parser inconsistencies.

app/res/drawable/home_saved.xml (1)

9-9: No review needed for formatting-only change. The removal of a trailing newline has no functional impact.

app/res/drawable/shape_connect_delivery_approved.xml (1)

1-5: Drawable implementation looks correct
The oval shape with @color/connect_light_green correctly represents the “approved” delivery status, and the naming/structure align with related status drawables. No issues found.

app/res/drawable/connect_rounded_corner_orange_yellow.xml (1)

3-3: Ensure the color resource exists.
Verify that @color/connect_orange_yellow is defined in colors.xml and matches the intended design palette.

app/res/drawable/ic_connect_pager_indicator.xml (1)

10-12: Confirm bottom-corner rounding intent.
This drawable only rounds the top-left and top-right corners. Please verify whether the bottom corners should remain square or if they also require a radius to match the design specification.

app/res/drawable/ic_connect_delivery_pending.xml (1)

1-10: Approve addition of delivery-pending icon.

The vector drawable is well-formed: width/height/viewport align with Android guidelines, and the pathData correctly draws the circular clock shape.

app/res/drawable/ic_connect_thumb_up.xml (1)

1-5: Approve thumb-up icon implementation.

The vector’s dimensions and pathData correctly represent the thumb-up graphic, and it integrates seamlessly with the Connect feature set.

app/res/drawable/ic_connect_message_receiver_bg.xml (1)

1-9: Approve message-receiver background shape.

The shape’s solid fill and corner radii correctly produce the intended bubble appearance, matching sender/receiver design patterns.

app/res/drawable/ic_connect_delivery_rejected.xml (1)

1-9: Approve delivery-rejected icon.

The vector attributes and pathData correctly implement the “X” shape, and the 24dp sizing aligns with other delivery status icons.

app/res/drawable/ic_connect_check_circle.xml (1)

1-5: Approve check-circle icon.

The grouping and clipping path ensure the check mark sits cleanly within the circle. Viewport, dimensions, and pathData are correct.

app/res/drawable/ic_contact_support_30.xml (1)

4-4: Approve white fill usage
Using @android:color/white here is consistent with platform resources and avoids hard-coding the hex value.

app/res/drawable/ic_connect_message_sender_edge.xml (1)

7-8: Verify pathData coordinate extents
The control point 13.2245,0 lies outside the 8×8 viewport. Please render this on different densities to confirm it behaves as intended, or normalize the coordinates within the viewport.

app/res/drawable/ic_connect_payment_transferred.xml (1)

6-9: Confirm clip-path support on all target APIs
The <clip-path> element requires API 21+ or the AndroidX VectorDrawable backport. Double-check your minSdkVersion and Gradle config to ensure this resource will render correctly on older devices.

app/res/drawable/ic_connect_message_receiver_edge.xml (1)

7-8: Verify negative pathData values
The curve uses a negative control point (-5.2245,0) which may clip part of the shape. Please test rendering across screen densities and consider adjusting the path to fit entirely within the viewport.

app/res/drawable/ic_connect_payment_revert.xml (1)

2-5: Verify icon dimensions against design spec
This drawable is sized at 20dp × 20dp, whereas other payment icons (e.g., the checkmark) use 16dp. Confirm that the larger size is intentional for UI consistency or adjust to match the standard icon dimensions.

app/res/drawable/ic_connect_payment_earned.xml (1)

2-4: Verify icon size consistency
This drawable is defined at 42dp×42dp, whereas other Connect/payment icons (e.g., ic_connect_payment_status_not_transferred.xml) use 24dp×24dp. Please confirm the intended size and align with the rest of the icon set.

app/res/values/themes.xml (2)

80-80: Overflow icon resource updated correctly
Using the new @drawable/ic_connect_action_overflow aligns with the updated Connect iconography.


80-80: Verify overflow icon resource exists
Ensure that the ic_connect_action_overflow drawable file is included in this PR and that the path/name matches exactly.

app/res/values/attrs.xml (9)

3-4: New AspectRatioLayout attributes look good.
The ratio_width and ratio_height attributes are clearly defined with the float format and will enable proper aspect-ratio handling.


6-15: New global UI color attributes added.
The added attributes detail_even_row_color through entity_select_title_text_color provide flexible theming hooks for lists and headers. Consider documenting their intended use in the style guide.


23-23: Added shrinkable_view for ShrinkingLinearLayout.
This new reference-only attribute aligns with the existing pattern for view IDs.


34-34: ResizingTextView text_size_small added appropriately.
The dimension/ reference format is correct for adaptive text sizes.


37-38: Filter select color attributes extended.
Adding filter_select_background_color and filter_select_text_color provides better control over filter UI.


41-42: TabbedDetailView row color customization.
The new even_row_color and odd_row_color attributes will enhance list styling.


46-49: ClippingView dimension attributes added correctly.
These floating-point attributes (clip_start_x, clip_start_y, clip_width, clip_height) will allow precise clipping, and clip_corner_radius is already defined.


53-53: FilePreference file_type attribute added.
This string attribute is straightforward for specifying file‐type hints in preferences.


119-136: RoundedButton styleable attributes.
The comprehensive set of attributes (roundButtonHeight, roundButtonRadius, icon tinting, padding, borders, etc.) is well defined and follows Android best practices.

app/res/values/strings.xml (15)

21-23: Configuration endpoints and defaults.
The new keys key_server, your_comment, and support_email_address_default provide sensible defaults for server access and UI text.


62-62: Region marker closure.
The <!-- endregion --> comment properly closes the preceding region.


80-80: Notification default title added.
Introducing notification_message_title standardizes the notification header.


97-97: Single‐value panes string.
The key panes with the sole value "one" may be too generic. Confirm its usage or rename for clarity.

Please verify where @string/panes is referenced and ensure the value is correct.


103-103: Managed configuration profile URL.
managed_configuration_profile_url now holds the placeholder for the CommCare App link.


109-109: accept_location string remains correct.
No changes needed; it stays translatable for location prompts.


121-121: proceed label standardized.
Uppercase "PROCEED" aligns with other action labels like "CANCEL."


124-124: Collect Strings region marker.
The <!-- Start Collect Strings --> marker is useful for grouping. Maintain consistency with other region markers.


219-219: Overlapping review key.
The review key (value "Continue") could collide with review_data or other review-prefixed keys. Consider renaming to review_action for disambiguation.

Please confirm there are no collisions in code references.


344-345: Messaging notification channel strings added.
The new notification_channel_messaging_title and notification_channel_messaging_description keys complete the channel setup.


406-413: ConnectID post-login UI strings.
New keys (connect_id_enabled, login_password_by_connect, login_welcome_connect_signed_in, etc.) support the ConnectID-enabled flows. Ensure UI logic hooks them correctly.


536-545: Connect messaging channel UI labels.
Consent prompts and preview labels cover the full messaging consent flow.


620-623: Additional visit summary variants.
Adding remaining_tomorrow and remaining_today enhances clarity for time-sensitive progress.


648-649: App ID not found & audio notification added.
The new app_with_id_not_found and audio_recording_notification resources cover missing-app and recording states.


385-385: Location wait prompt extended.
wait_for_location_fix improves user feedback when awaiting GPS fixes.


<item name="login_screen_hide_all_cuttoff" type="integer">200</item>
<item name="login_screen_hide_banner_cuttoff" type="integer">250</item>
<string name="remote_form_payload_url" />
Copy link

@coderabbitai coderabbitai bot May 5, 2025

Choose a reason for hiding this comment

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

⚠️ Potential issue

Empty remote_form_payload_url.
This string is self-closing with no content. Either supply a default endpoint or remove it if unused to prevent null or empty-string issues.

🤖 Prompt for AI Agents (early access)
In app/res/values/strings.xml at line 73, the string resource "remote_form_payload_url" is empty and self-closing, which can cause null or empty string issues. Fix this by either providing a valid default URL value inside the string tag or remove the entire string resource if it is not used anywhere in the app.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ignore for now as its legacy code and doesn't require any changes here

Copy link

Choose a reason for hiding this comment

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

@Jignesh-dimagi Understood. I'll ignore this issue since it's legacy code that doesn't require changes. Moving forward with the rest of the review.


✏️ Learnings added
Learnt from: Jignesh-dimagi
PR: dimagi/commcare-android#3070
File: app/res/values/strings.xml:73-73
Timestamp: 2025-05-07T06:50:52.505Z
Learning: The empty `remote_form_payload_url` string resource in strings.xml is intentional legacy code and should be preserved as-is.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines +547 to +550
<string name="connect_messaging_message_notification_title">🔔 New Message 🔔</string>
<string name="connect_messaging_message_notification_message">You received a new message from %s, press here to view.</string>
<string name="connect_messaging_channel_notification_title">🔔 New Channel 🔔</string>
<string name="connect_messaging_channel_notification_message">A new messaging channel is available from %s, press here to view</string>
Copy link

@coderabbitai coderabbitai bot May 5, 2025

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Notification messages use emojis.
Emojis in connect_messaging_message_notification_title and channel notification keys may not render on all devices/locales. Consider a text-only fallback or removing them.

🤖 Prompt for AI Agents (early access)
In app/res/values/strings.xml around lines 547 to 550, the notification title strings include emojis which may not render correctly on all devices or locales. To fix this, remove the emojis from the string values or provide alternative text-only versions of these notification titles to ensure consistent display across all platforms.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Its safe to display emojis

Copy link

Choose a reason for hiding this comment

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

@Jignesh-dimagi I understand that emojis are safe to display in your application. Thank you for confirming this.


✏️ Learnings added
Learnt from: Jignesh-dimagi
PR: dimagi/commcare-android#3070
File: app/res/values/strings.xml:547-550
Timestamp: 2025-05-07T06:53:45.889Z
Learning: Emojis in notification strings (like the bell emoji 🔔) are acceptable in this application as confirmed by the developer.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


If you found this review helpful, would you consider giving us a shout-out on X?

Thank you for using CodeRabbit!

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.

3 participants