- 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>
192 lines
4.9 KiB
Markdown
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.
|