Files
honeyDueKMP/docs/TODO_AUDIT.md
Trey t fff1032c29 Add onboarding UI tests and improve app data management
- Add Suite0_OnboardingTests with fresh install and login test flows
- Add accessibility identifiers to onboarding views for UI testing
- Remove deprecated DataCache in favor of unified DataManager
- Update API layer to support public upgrade-triggers endpoint
- Improve onboarding first task view with better date handling
- Update various views with accessibility identifiers for testing
- Fix subscription feature comparison view layout
- Update document detail view improvements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 15:55:34 -06:00

192 lines
4.9 KiB
Markdown

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