# TODO Audit - Incomplete Functionality This document tracks all incomplete functionality, TODOs, and missing features across the iOS and Android/Kotlin codebases. **Last Updated:** December 3, 2024 --- ## iOS (SwiftUI) ### 1. Push Notification Navigation **File:** `iosApp/iosApp/PushNotifications/PushNotificationManager.swift` Three TODO items related to deep-linking from push notifications: ```swift // TODO: Navigate to specific residence // TODO: Navigate to specific task // TODO: Navigate to specific contractor ``` **Status:** Push notifications are received but tapping them doesn't navigate to the relevant screen. **Priority:** Medium - Improves user experience when responding to notifications. --- ### 2. File/Document Download **File:** `iosApp/iosApp/Documents/DocumentDetailView.swift` ```swift // TODO: Implement file download functionality ``` **Status:** Document viewing is partially implemented, but users cannot download/save documents to their device. **Priority:** Medium - Documents can be viewed but not saved locally. --- ### 3. Subscription Upgrade Flow **File:** `iosApp/iosApp/Subscription/FeatureComparisonView.swift` ```swift // TODO: Implement upgrade functionality ``` **Status:** Feature comparison UI exists but the actual upgrade/purchase flow is not connected. **Priority:** High - Required for monetization. --- ### 4. Widget App Groups **File:** `iosApp/TaskWidgetExample.swift` ```swift // TODO: Implement App Groups or shared container for widget data access. ``` **Status:** Widget shell exists but cannot access shared app data. Widgets always show empty state. **Priority:** Low - Widgets are a nice-to-have feature. --- ## Android/Kotlin (Compose Multiplatform) ### 1. Document Download **File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentDetailScreen.kt` ```kotlin // TODO: Download functionality ``` **Status:** Same as iOS - documents can be viewed but not downloaded. **Priority:** Medium --- ### 2. Subscription Navigation from Residences **File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidencesScreen.kt` ```kotlin // TODO: Navigate to subscription/upgrade screen ``` **Status:** When user hits residence limit, there's no navigation to the upgrade screen. **Priority:** High - Blocks user from upgrading when hitting limits. --- ### 3. Subscription Navigation from Residence Detail **File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt` ```kotlin // TODO: Navigate to subscription screen ``` **Status:** Same issue - hitting task limit doesn't navigate to upgrade. **Priority:** High --- ### 4. Profile Update Disabled **File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ProfileScreen.kt` ```kotlin // Update profile button is disabled/not implemented ``` **Status:** Profile editing UI exists but the save/update functionality may be incomplete. **Priority:** Medium - Users expect to be able to edit their profile. --- ### 5. Contractor Favorite Toggle **File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt` ```kotlin // Contractor favorite toggle not fully implemented ``` **Status:** Favorite toggle button exists on contractor cards but may not persist correctly. **Priority:** Low --- ### 6. Platform-Specific Image Pickers **Files:** - `composeApp/src/jvmMain/kotlin/ImagePicker.jvm.kt` - `composeApp/src/wasmJsMain/kotlin/ImagePicker.wasmJs.kt` - `composeApp/src/jsMain/kotlin/ImagePicker.js.kt` ```kotlin // TODO: Implement for Desktop // TODO: Implement for WASM // TODO: Implement for JS ``` **Status:** Image picker only works on mobile (Android/iOS). Desktop and web targets show placeholder implementations. **Priority:** Low - Mobile is primary target. --- ## Summary by Priority ### High Priority 1. Subscription navigation from ResidencesScreen (Android) 2. Subscription navigation from ResidenceDetailScreen (Android) 3. Subscription upgrade flow (iOS) ### Medium Priority 4. Push notification navigation (iOS) 5. Document download (iOS & Android) 6. Profile update functionality (Android) ### Low Priority 7. Contractor favorite toggle (Android) 8. Widget App Groups (iOS) 9. Platform-specific image pickers (Desktop/Web) --- ## Recommendations 1. **Subscription Flow (High):** Both platforms need proper navigation to upgrade screens when users hit feature limits. This is critical for monetization. 2. **Push Notification Deep Links (Medium):** iOS push notification taps should navigate to the relevant residence/task/contractor detail screen. 3. **Document Download (Medium):** Implement share sheet / file saving for both platforms. 4. **Profile Update (Medium):** Verify the profile update API call is connected and working. 5. **Low Priority Items:** Widget, desktop/web image pickers, and contractor favorites can be addressed in future iterations.