Skip to content

Conversation

@therajanmaurya
Copy link
Member

@therajanmaurya therajanmaurya commented Nov 22, 2025

Issue Fix

Fixes #{Issue Number}
Jira Task: Task_Number

Screenshots

Description

  • Apply the AndroidStyle.xml style template to your code in Android Studio.

  • Run the unit tests with ./gradlew check to make sure you didn't break anything

  • If you have multiple commits please combine them into one commit by squashing them.

Summary by CodeRabbit

Bug Fixes

  • Removed interactive date picker functionality from interbank transfer details screen; the transfer date field is now displayed as read-only text.

Chores

  • Updated Android application manifest with expanded permissions and metadata configurations.
  • Corrected platform-specific path formatting in shared build resources configuration.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Nov 22, 2025

Walkthrough

The pull request consolidates changes across multiple project components: updates Android manifest permissions and resources, corrects a CocoaPods resource path from Windows to POSIX format, and simplifies the interbank transfer date input by removing interactive date picker functionality from the TransferDetailsScreen, converting it to a static display.

Changes

Cohort / File(s) Summary
Android Manifest Configuration
cmp-android/prodRelease-badging.txt
Updated version from 2025.10.5-beta.0.16 to 2025.10.5-beta.0.1; expanded manifest with numerous uses-permission entries (INTERNET, CAMERA, storage, sensors, Google/finsky, ADS); added application metadata including labels for multiple locales, icons, and feature declarations.
CocoaPods Configuration
cmp-shared/cmp_shared.podspec
Changed spec.resources path from Windows-style backslash (build\compose\cocoapods\compose-resources) to POSIX-style forward-slash (build/compose/cocoapods/compose-resources).
Interbank Transfer Date Picker Removal
feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/InterbankTransferFlowScreen.kt, feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/screens/TransferDetailsScreen.kt
Removed date picker integration: deleted DatePicker-related imports and state management; removed initialDate and onDateChanged parameters from TransferDetailsScreen signature; converted date field from interactive picker to static text display; updated all call sites and previews accordingly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • TransferDetailsScreen API signature change: Verify all call sites throughout the codebase have been updated to match the narrowed parameter list (removed initialDate and onDateChanged). Pay special attention to any test code or other screens invoking this composable.
  • Date state management relocation: Confirm that transfer date is indeed being managed elsewhere in the state hierarchy and that removing this parameter doesn't create data flow gaps or orphaned state.
  • Android manifest permissions: The expanded permissions list should be validated against actual app functionality to ensure no unnecessary permissions are declared.

Poem

🐰 Permissions sprouted, paths grew straight,
Date picker danced away its fate,
Now static dates in simple view,
Transfer flows with cleaner brew! 🌿✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title check ❓ Inconclusive The title 'Fix: ios build' is vague and does not clearly convey what specific iOS build issue was fixed or which components were modified. Provide a more specific title that describes the actual iOS build fix, such as 'Fix iOS build by updating Podspec resource path to use POSIX-style paths' or similar descriptive language.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-ios-build

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.

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/screens/TransferDetailsScreen.kt (3)

101-105: Add date validation to continue button logic.

The continue button validation checks amount and description but doesn't validate the date field. Looking at line 536 in the preview, an empty date string is possible, which could lead to invalid transfers.

Apply this diff to add date validation:

                    enabled = amount.isNotEmpty() &&
                        amount.toDoubleOrNull()?.let {
                            it <= (fromAccount?.balance ?: 0.0)
                        } ?: false &&
-                        description.isNotEmpty(),
+                        description.isNotEmpty() &&
+                        date.isNotEmpty(),

69-82: Missing date picker implementation in TransferDetailsScreen UI.

The function signature correctly accepts a formatted date string (no modification callback), and the ViewModel handles date updates via InterbankTransferAction.UpdateDate(Long). However, the UI displays a calendar icon at lines 208-234 that suggests the date is editable, yet there's no click handler, date picker dialog, or callback to actually modify the date. This creates a non-functional, misleading UX.

Either remove the calendar icon if the date is read-only, or implement a date picker dialog that invokes onDateChanged (which would need to be added to the function signature).


207-237: Calendar icon creates misleading affordance—users will expect interactivity that doesn't exist.

The review comment is accurate. The recent iOS build fix (commit 8d398a8) removed all date picker functionality but left the calendar icon intact. The icon's contentDescription explicitly states "edit," strongly suggesting users can modify the date, but:

  • The .clickable() modifier was removed
  • No date picker dialog or state remains
  • No onDateChanged callback exists
  • The date parameter is now read-only

This creates a false user affordance. Users seeing the calendar icon with "edit" text will expect to interact with it and be confused when nothing happens.

Recommended actions:

  1. Remove the calendar icon if the date must remain system-generated and read-only:
-                            Icon(
-                                imageVector = Icons.Default.CalendarMonth,
-                                contentDescription = stringResource(Res.string.feature_send_interbank_edit),
-                                tint = KptTheme.colorScheme.primary,
-                            )
  1. Or restore date picker functionality in a follow-up PR once the iOS build issue is resolved.
🧹 Nitpick comments (1)
cmp-shared/cmp_shared.podspec (1)

53-53: Resource path fix is correct; optional robustness improvement

Switching to a POSIX-style path for spec.resources matches the other paths in this podspec and should resolve iOS/CocoaPods lookups on macOS. If you ever need this to be portable or slightly more robust, you could build the path via File.join('build', 'compose', 'cocoapods', 'compose-resources'), but that’s strictly optional given the current macOS-only usage.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ee2f78b and 8d398a8.

📒 Files selected for processing (4)
  • cmp-android/prodRelease-badging.txt (1 hunks)
  • cmp-shared/cmp_shared.podspec (1 hunks)
  • feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/InterbankTransferFlowScreen.kt (0 hunks)
  • feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/screens/TransferDetailsScreen.kt (2 hunks)
💤 Files with no reviewable changes (1)
  • feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/InterbankTransferFlowScreen.kt
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: PR Checks / Static Analysis Check
🔇 Additional comments (2)
feature/send-interbank/src/commonMain/kotlin/org/mifospay/feature/send/interbank/screens/TransferDetailsScreen.kt (2)

67-67: LGTM: Opt-in annotation updated correctly.

The removal of @OptIn(ExperimentalTime::class) is appropriate since date picker functionality has been removed.


69-270: Clarify the intent: Is this a temporary workaround or permanent design change?

The PR title mentions "Fix: ios build," but the description doesn't explain how removing the date picker functionality relates to the iOS build issue. Please clarify:

  1. Does the date picker cause iOS build failures? If so, what is the specific error?
  2. Is this removal a temporary workaround until the underlying issue is fixed?
  3. Or is this a permanent design change where the date is system-generated?
  4. If temporary, should a follow-up issue be created to restore date picker functionality?

Understanding this context will help ensure the right solution is implemented.

@therajanmaurya therajanmaurya merged commit 5a84840 into development Nov 23, 2025
13 of 22 checks passed
@therajanmaurya therajanmaurya deleted the fix-ios-build branch November 23, 2025 07:12
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