diff --git a/CLAUDE.md b/CLAUDE.md index 4361869..371a2ba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,12 +10,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -MyCrib (Casera) is a Kotlin Multiplatform Mobile (KMM) property management application with shared business logic and platform-specific UI implementations. The backend is a Go REST API with PostgreSQL (located in the sibling `myCribAPI-go` directory). +HoneyDue (honeyDue) is a Kotlin Multiplatform Mobile (KMM) property management application with shared business logic and platform-specific UI implementations. The backend is a Go REST API with PostgreSQL (located in the sibling `honeyDueAPI-go` directory). **Tech Stack:** - **Shared (Kotlin)**: Compose Multiplatform for Android, networking layer, ViewModels, models - **iOS**: SwiftUI with Kotlin shared layer integration via SKIE -- **Backend**: Go REST API with PostgreSQL (separate directory at `../myCribAPI-go`) +- **Backend**: Go REST API with PostgreSQL (separate directory at `../honeyDueAPI-go`) ## Build Commands @@ -56,7 +56,7 @@ open iosApp/iosApp.xcodeproj ## Architecture -### Shared Kotlin Layer (`composeApp/src/commonMain/kotlin/com/example/casera/`) +### Shared Kotlin Layer (`composeApp/src/commonMain/kotlin/com/example/honeydue/`) **Core Components:** @@ -319,7 +319,7 @@ FormHeader( OrganicFormHeader( icon: "person.fill", title: "Create Account", - subtitle: "Join Casera today" + subtitle: "Join honeyDue today" ) // Form section with icon header @@ -880,7 +880,7 @@ The app uses a comprehensive theming system with 11 themes matching iOS: fun App() { val currentTheme by remember { derivedStateOf { ThemeManager.currentTheme } } - MyCribTheme(themeColors = currentTheme) { + HoneyDueTheme(themeColors = currentTheme) { // App content } } @@ -1199,14 +1199,14 @@ fun ThemePickerDialog( ## Environment Configuration -**API Environment Toggle** (`composeApp/src/commonMain/kotlin/com/example/casera/network/ApiConfig.kt`): +**API Environment Toggle** (`composeApp/src/commonMain/kotlin/com/example/honeydue/network/ApiConfig.kt`): ```kotlin val CURRENT_ENV = Environment.DEV // or Environment.LOCAL ``` - `Environment.LOCAL`: Points to `http://10.0.2.2:8000/api` (Android emulator) or `http://127.0.0.1:8000/api` (iOS simulator) -- `Environment.DEV`: Points to `https://mycrib.treytartt.com/api` +- `Environment.DEV`: Points to `https://honeyDue.treytartt.com/api` **Change this to switch between local Go backend and production server.** @@ -1297,7 +1297,7 @@ Currently tests are minimal. When adding tests: ### Committing Changes -When committing changes that span both iOS and Android, commit them together in the KMM repository. If backend changes are needed, commit separately in the `myCribAPI-go` repository. +When committing changes that span both iOS and Android, commit them together in the KMM repository. If backend changes are needed, commit separately in the `honeyDueAPI-go` repository. ### DataManager Initialization @@ -1344,10 +1344,10 @@ Without `forceRefresh`, APILayer returns cached data. ## Project Structure Summary ``` -MyCribKMM/ +HoneyDueKMM/ ├── composeApp/ │ └── src/ -│ ├── commonMain/kotlin/com/example/casera/ +│ ├── commonMain/kotlin/com/example/honeydue/ │ │ ├── data/ # DataManager, PersistenceManager │ │ ├── models/ # Shared data models (kotlinx.serialization) │ │ ├── network/ # APILayer, *Api clients, ApiConfig @@ -1382,5 +1382,5 @@ MyCribKMM/ ## Related Repositories -- **Backend API**: `../myCribAPI-go` - Go REST API with PostgreSQL -- **Documentation**: `../myCribAPI-go/docs` - Server configuration and API docs +- **Backend API**: `../honeyDueAPI-go` - Go REST API with PostgreSQL +- **Documentation**: `../honeyDueAPI-go/docs` - Server configuration and API docs diff --git a/ENVIRONMENT_SETUP.md b/ENVIRONMENT_SETUP.md index 4b011c3..7b9d441 100644 --- a/ENVIRONMENT_SETUP.md +++ b/ENVIRONMENT_SETUP.md @@ -1,13 +1,13 @@ # Environment Configuration Guide -This guide explains how to easily switch between local development and the dev server when developing the MyCrib iOS and Android apps. +This guide explains how to easily switch between local development and the dev server when developing the HoneyDue iOS and Android apps. ## Quick Start **To switch environments, change ONE line in `ApiConfig.kt`:** ```kotlin -// File: composeApp/src/commonMain/kotlin/com/mycrib/shared/network/ApiConfig.kt +// File: composeApp/src/commonMain/kotlin/com/honeydue/shared/network/ApiConfig.kt object ApiConfig { // ⚠️ CHANGE THIS LINE ⚠️ @@ -45,7 +45,7 @@ val CURRENT_ENV = Environment.LOCAL - Testing with real data **Connects to:** -- **Both platforms**: `https://mycrib.treytartt.com/api` +- **Both platforms**: `https://honeyDue.treytartt.com/api` **Setup:** ```kotlin @@ -62,7 +62,7 @@ val CURRENT_ENV = Environment.DEV 1. **Start your local API:** ```bash - cd myCribAPI + cd honeyDueAPI ./dev.sh ``` @@ -96,8 +96,8 @@ val CURRENT_ENV = Environment.DEV 3. **Verify in logs:** ``` 🌐 API Client initialized - 📍 Environment: Dev Server (mycrib.treytartt.com) - 🔗 Base URL: https://mycrib.treytartt.com/api + 📍 Environment: Dev Server (honeyDue.treytartt.com) + 🔗 Base URL: https://honeyDue.treytartt.com/api ``` ## Platform-Specific Localhost Addresses @@ -139,20 +139,20 @@ If you need to test on a physical device with local API: 4. **Update Django's `ALLOWED_HOSTS`:** ```python - # myCribAPI/myCrib/settings.py + # honeyDueAPI/honeyDue/settings.py ALLOWED_HOSTS = ['localhost', '127.0.0.1', '192.168.1.xxx'] ``` ## File Structure ``` -MyCribKMM/composeApp/src/ -├── commonMain/kotlin/com/mycrib/shared/network/ +HoneyDueKMM/composeApp/src/ +├── commonMain/kotlin/com/honeydue/shared/network/ │ ├── ApiConfig.kt # ⭐ TOGGLE ENVIRONMENT HERE │ └── ApiClient.kt # Uses ApiConfig -├── androidMain/kotlin/com/mycrib/shared/network/ +├── androidMain/kotlin/com/honeydue/shared/network/ │ └── ApiClient.android.kt # Android localhost: 10.0.2.2 -└── iosMain/kotlin/com/mycrib/shared/network/ +└── iosMain/kotlin/com/honeydue/shared/network/ └── ApiClient.ios.kt # iOS localhost: 127.0.0.1 ``` @@ -182,7 +182,7 @@ MyCribKMM/composeApp/src/ **Problem:** HTTPS connection issues **Solutions:** -1. Verify server is accessible: `curl https://mycrib.treytartt.com/api` +1. Verify server is accessible: `curl https://honeyDue.treytartt.com/api` 2. Check that SSL certificate is valid 3. Make sure you're using `https://` not `http://` @@ -216,10 +216,10 @@ MyCribKMM/composeApp/src/ | Action | Command/File | |--------|--------------| | Toggle environment | Edit `ApiConfig.kt` → `CURRENT_ENV` | -| Start local API | `cd myCribAPI && ./dev.sh` | +| Start local API | `cd honeyDueAPI && ./dev.sh` | | Android localhost | `10.0.2.2:8000` | | iOS localhost | `127.0.0.1:8000` | -| Dev server | `https://mycrib.treytartt.com` | +| Dev server | `https://honeyDue.treytartt.com` | | View current env | Check app logs for `🌐` emoji | ## Example Workflow @@ -230,7 +230,7 @@ MyCribKMM/composeApp/src/ val CURRENT_ENV = Environment.LOCAL // ✅ Use local API ``` ```bash -cd myCribAPI +cd honeyDueAPI ./dev.sh # Start local server # Work on features... ``` diff --git a/ERROR_HANDLING.md b/ERROR_HANDLING.md index 7f371a4..2c96f2b 100644 --- a/ERROR_HANDLING.md +++ b/ERROR_HANDLING.md @@ -32,8 +32,8 @@ See full documentation for examples of each approach. ## Files Reference **Android:** -- `composeApp/src/commonMain/kotlin/com/example/mycrib/ui/components/ErrorDialog.kt` -- `composeApp/src/commonMain/kotlin/com/example/mycrib/ui/components/ApiResultHandler.kt` +- `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/ErrorDialog.kt` +- `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/ApiResultHandler.kt` **iOS:** - `iosApp/iosApp/Helpers/ErrorAlertModifier.swift` diff --git a/QUICK_START.md b/QUICK_START.md index b226b46..59aada9 100644 --- a/QUICK_START.md +++ b/QUICK_START.md @@ -1,8 +1,8 @@ -# MyCrib KMM - Quick Start +# HoneyDue KMM - Quick Start ## 🚀 Switch API Environment -**File:** `composeApp/src/commonMain/kotlin/com/mycrib/shared/network/ApiConfig.kt` +**File:** `composeApp/src/commonMain/kotlin/com/honeydue/shared/network/ApiConfig.kt` ```kotlin object ApiConfig { @@ -12,7 +12,7 @@ object ApiConfig { ### Options: - **`Environment.LOCAL`** → Your local API (localhost) -- **`Environment.DEV`** → Dev server (https://mycrib.treytartt.com) +- **`Environment.DEV`** → Dev server (https://honeyDue.treytartt.com) ### After Changing: 1. **Android**: Sync Gradle and run @@ -31,13 +31,13 @@ object ApiConfig { ### Android ```bash -cd MyCribKMM +cd HoneyDueKMM ./gradlew :composeApp:installDebug ``` ### iOS ```bash -cd MyCribKMM/iosApp +cd HoneyDueKMM/iosApp open iosApp.xcodeproj # Run in Xcode ``` @@ -47,7 +47,7 @@ open iosApp.xcodeproj ## 🔧 Start Local API ```bash -cd myCribAPI +cd honeyDueAPI ./dev.sh # Auto-reload on code changes ``` @@ -57,7 +57,7 @@ cd myCribAPI - **Environment Setup**: `ENVIRONMENT_SETUP.md` - **Workspace Overview**: `../WORKSPACE_OVERVIEW.md` -- **API Deployment**: `../myCribAPI/DOKKU_SETUP_GUIDE.md` +- **API Deployment**: `../honeyDueAPI/DOKKU_SETUP_GUIDE.md` --- diff --git a/TASK_CACHING.md b/TASK_CACHING.md index b5db45d..968df87 100644 --- a/TASK_CACHING.md +++ b/TASK_CACHING.md @@ -33,7 +33,7 @@ UI Updates Automatically ### Android - **Location**: SharedPreferences -- **File**: `mycrib_cache` +- **File**: `honeydue_cache` - **Key**: `cached_tasks` - **Format**: JSON string @@ -44,7 +44,7 @@ UI Updates Automatically ### JVM/Desktop - **Location**: Java Preferences -- **Node**: `com.mycrib.cache` +- **Node**: `com.honeydue.cache` - **Key**: `cached_tasks` - **Format**: JSON string diff --git a/TODO-string-localization.md b/TODO-string-localization.md index b97d710..d478a90 100644 --- a/TODO-string-localization.md +++ b/TODO-string-localization.md @@ -13,7 +13,7 @@ This file tracks the remaining work to migrate hardcoded strings to Compose Reso ### Priority 1: Dialogs with Many Strings #### AddContractorDialog.kt (~25 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddContractorDialog.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/AddContractorDialog.kt` Strings to migrate: - Dialog title: "Add Contractor" @@ -22,7 +22,7 @@ Strings to migrate: - Buttons: "Create", "Cancel" #### CompleteTaskDialog.kt (~22 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/CompleteTaskDialog.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/CompleteTaskDialog.kt` Strings to migrate: - Dialog title: "Complete Task" @@ -34,29 +34,29 @@ Strings to migrate: ### Priority 2: Import/Share Dialogs (~14 strings) #### ContractorImportDialog.kt (~7 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ContractorImportDialog.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/ContractorImportDialog.kt` #### ResidenceImportDialog.kt (~7 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ResidenceImportDialog.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/ResidenceImportDialog.kt` ### Priority 3: Task Components (~14 strings) #### TaskActionButtons.kt (~7 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskActionButtons.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/task/TaskActionButtons.kt` #### TaskCard.kt (~7 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskCard.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/task/TaskCard.kt` ### Priority 4: Other Dialogs (~10 strings) #### JoinResidenceDialog.kt (~7 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/JoinResidenceDialog.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/JoinResidenceDialog.kt` #### ManageUsersDialog.kt (~2 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ManageUsersDialog.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/ManageUsersDialog.kt` #### TaskTemplatesBrowserSheet.kt (~3 strings) -Location: `composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskTemplatesBrowserSheet.kt` +Location: `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/components/TaskTemplatesBrowserSheet.kt` ### Priority 5: Smaller Components (~15 strings total) @@ -83,7 +83,7 @@ Files with 1-3 hardcoded strings each: ### 1. Add import to the file: ```kotlin -import casera.composeapp.generated.resources.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource ``` diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 0b88b0d..79900b1 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -113,11 +113,11 @@ kotlin { } android { - namespace = "com.example.casera" + namespace = "com.tt.honeyDue" compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { - applicationId = "com.example.casera" + applicationId = "com.tt.honeyDue" minSdk = libs.versions.android.minSdk.get().toInt() targetSdk = libs.versions.android.targetSdk.get().toInt() versionCode = 1 @@ -152,11 +152,11 @@ dependencies { compose.desktop { application { - mainClass = "com.example.casera.MainKt" + mainClass = "com.tt.honeyDue.MainKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) - packageName = "com.example.casera" + packageName = "com.tt.honeyDue" packageVersion = "1.0.0" } } diff --git a/composeApp/google-services.json b/composeApp/google-services.json index 3402a3d..39a0174 100644 --- a/composeApp/google-services.json +++ b/composeApp/google-services.json @@ -9,7 +9,7 @@ "client_info": { "mobilesdk_app_id": "1:YOUR_PROJECT_NUMBER:android:YOUR_APP_ID", "android_client_info": { - "package_name": "com.example.casera" + "package_name": "com.tt.honeyDue" } }, "oauth_client": [], diff --git a/composeApp/src/androidMain/AndroidManifest.xml b/composeApp/src/androidMain/AndroidManifest.xml index 5eac1e9..d128980 100644 --- a/composeApp/src/androidMain/AndroidManifest.xml +++ b/composeApp/src/androidMain/AndroidManifest.xml @@ -36,11 +36,11 @@ - + @@ -50,10 +50,10 @@ - + - + @@ -93,11 +93,11 @@ android:name=".NotificationActionReceiver" android:exported="false"> - - - - - + + + + + @@ -106,13 +106,13 @@ android:name=".widget.WidgetTaskActionReceiver" android:exported="false"> - + @@ -120,12 +120,12 @@ + android:resource="@xml/honeydue_small_widget_info" /> @@ -133,12 +133,12 @@ + android:resource="@xml/honeydue_medium_widget_info" /> @@ -146,7 +146,7 @@ + android:resource="@xml/honeydue_large_widget_info" /> diff --git a/composeApp/src/androidMain/kotlin/com/casera/android/ui/components/TaskSummaryCard.kt b/composeApp/src/androidMain/kotlin/com/casera/android/ui/components/TaskSummaryCard.kt index af2358d..8c22613 100644 --- a/composeApp/src/androidMain/kotlin/com/casera/android/ui/components/TaskSummaryCard.kt +++ b/composeApp/src/androidMain/kotlin/com/casera/android/ui/components/TaskSummaryCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -10,8 +10,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.example.casera.models.TaskSummary -import com.example.casera.models.TaskColumnCategory +import com.tt.honeyDue.models.TaskSummary +import com.tt.honeyDue.models.TaskColumnCategory /** * Displays a task summary with dynamic categories from the backend. diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/MainActivity.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/MainActivity.kt similarity index 87% rename from composeApp/src/androidMain/kotlin/com/example/casera/MainActivity.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/MainActivity.kt index fceee4a..48a37df 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/MainActivity.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/MainActivity.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import android.content.Intent import android.net.Uri @@ -22,22 +22,22 @@ import coil3.memory.MemoryCache import coil3.request.crossfade import coil3.util.DebugLogger import okio.FileSystem -import com.example.casera.storage.TokenManager -import com.example.casera.storage.TokenStorage -import com.example.casera.storage.TaskCacheManager -import com.example.casera.storage.TaskCacheStorage -import com.example.casera.storage.ThemeStorage -import com.example.casera.storage.ThemeStorageManager -import com.example.casera.ui.theme.ThemeManager -import com.example.casera.fcm.FCMManager -import com.example.casera.platform.BillingManager -import com.example.casera.network.APILayer -import com.example.casera.sharing.ContractorSharingManager -import com.example.casera.data.DataManager -import com.example.casera.data.PersistenceManager -import com.example.casera.models.CaseraPackageType -import com.example.casera.models.detectCaseraPackageType -import com.example.casera.analytics.PostHogAnalytics +import com.tt.honeyDue.storage.TokenManager +import com.tt.honeyDue.storage.TokenStorage +import com.tt.honeyDue.storage.TaskCacheManager +import com.tt.honeyDue.storage.TaskCacheStorage +import com.tt.honeyDue.storage.ThemeStorage +import com.tt.honeyDue.storage.ThemeStorageManager +import com.tt.honeyDue.ui.theme.ThemeManager +import com.tt.honeyDue.fcm.FCMManager +import com.tt.honeyDue.platform.BillingManager +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.sharing.ContractorSharingManager +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.data.PersistenceManager +import com.tt.honeyDue.models.honeyDuePackageType +import com.tt.honeyDue.models.detecthoneyDuePackageType +import com.tt.honeyDue.analytics.PostHogAnalytics import kotlinx.coroutines.launch class MainActivity : ComponentActivity(), SingletonImageLoader.Factory { @@ -158,12 +158,12 @@ class MainActivity : ComponentActivity(), SingletonImageLoader.Factory { try { val authToken = TokenStorage.getToken() if (authToken != null) { - val notificationApi = com.example.casera.network.NotificationApi() + val notificationApi = com.tt.honeyDue.network.NotificationApi() val deviceId = android.provider.Settings.Secure.getString( contentResolver, android.provider.Settings.Secure.ANDROID_ID ) - val request = com.example.casera.models.DeviceRegistrationRequest( + val request = com.tt.honeyDue.models.DeviceRegistrationRequest( deviceId = deviceId, registrationId = fcmToken, platform = "android", @@ -171,14 +171,14 @@ class MainActivity : ComponentActivity(), SingletonImageLoader.Factory { ) when (val result = notificationApi.registerDevice(authToken, request)) { - is com.example.casera.network.ApiResult.Success -> { + is com.tt.honeyDue.network.ApiResult.Success -> { Log.d("MainActivity", "Device registered successfully: ${result.data}") } - is com.example.casera.network.ApiResult.Error -> { + is com.tt.honeyDue.network.ApiResult.Error -> { Log.e("MainActivity", "Failed to register device: ${result.message}") } - is com.example.casera.network.ApiResult.Loading, - is com.example.casera.network.ApiResult.Idle -> { + is com.tt.honeyDue.network.ApiResult.Loading, + is com.tt.honeyDue.network.ApiResult.Idle -> { // These states shouldn't occur for direct API calls } } @@ -248,7 +248,7 @@ class MainActivity : ComponentActivity(), SingletonImageLoader.Factory { private fun handleDeepLink(intent: Intent?) { val data: Uri? = intent?.data val isResetLink = data != null && - data.scheme == "casera" && + data.scheme == "honeydue" && data.host == "reset-password" if (isResetLink) { // Extract token from query parameter @@ -263,8 +263,8 @@ class MainActivity : ComponentActivity(), SingletonImageLoader.Factory { private fun handleFileImport(intent: Intent?) { if (intent?.action == Intent.ACTION_VIEW) { val uri = intent.data - if (uri != null && ContractorSharingManager.isCaseraFile(applicationContext, uri)) { - Log.d("MainActivity", "Casera file received: $uri") + if (uri != null && ContractorSharingManager.ishoneyDueFile(applicationContext, uri)) { + Log.d("MainActivity", "honeyDue file received: $uri") // Read file content to detect package type try { @@ -273,11 +273,11 @@ class MainActivity : ComponentActivity(), SingletonImageLoader.Factory { val jsonString = inputStream.bufferedReader().use { it.readText() } inputStream.close() - val packageType = detectCaseraPackageType(jsonString) + val packageType = detecthoneyDuePackageType(jsonString) Log.d("MainActivity", "Detected package type: $packageType") when (packageType) { - CaseraPackageType.RESIDENCE -> { + honeyDuePackageType.RESIDENCE -> { Log.d("MainActivity", "Routing to residence import") pendingResidenceImportUri = uri } diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/MyFirebaseMessagingService.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/MyFirebaseMessagingService.kt similarity index 90% rename from composeApp/src/androidMain/kotlin/com/example/casera/MyFirebaseMessagingService.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/MyFirebaseMessagingService.kt index b8ccd09..b4945ad 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/MyFirebaseMessagingService.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/MyFirebaseMessagingService.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import android.app.NotificationChannel import android.app.NotificationManager @@ -8,7 +8,7 @@ import android.content.Intent import android.os.Build import android.util.Log import androidx.core.app.NotificationCompat -import com.example.casera.data.DataManager +import com.tt.honeyDue.data.DataManager import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessage import kotlinx.coroutines.CoroutineScope @@ -31,14 +31,14 @@ class MyFirebaseMessagingService : FirebaseMessagingService() { // Note: In a real app, you might want to use WorkManager for reliable delivery CoroutineScope(Dispatchers.IO).launch { try { - val authToken = com.example.casera.storage.TokenStorage.getToken() + val authToken = com.tt.honeyDue.storage.TokenStorage.getToken() if (authToken != null) { - val notificationApi = com.example.casera.network.NotificationApi() + val notificationApi = com.tt.honeyDue.network.NotificationApi() val deviceId = android.provider.Settings.Secure.getString( applicationContext.contentResolver, android.provider.Settings.Secure.ANDROID_ID ) - val request = com.example.casera.models.DeviceRegistrationRequest( + val request = com.tt.honeyDue.models.DeviceRegistrationRequest( deviceId = deviceId, registrationId = token, platform = "android", @@ -46,14 +46,14 @@ class MyFirebaseMessagingService : FirebaseMessagingService() { ) when (val result = notificationApi.registerDevice(authToken, request)) { - is com.example.casera.network.ApiResult.Success -> { + is com.tt.honeyDue.network.ApiResult.Success -> { Log.d(TAG, "Device registered successfully with new token") } - is com.example.casera.network.ApiResult.Error -> { + is com.tt.honeyDue.network.ApiResult.Error -> { Log.e(TAG, "Failed to register device with new token: ${result.message}") } - is com.example.casera.network.ApiResult.Loading, - is com.example.casera.network.ApiResult.Idle -> { + is com.tt.honeyDue.network.ApiResult.Loading, + is com.tt.honeyDue.network.ApiResult.Idle -> { // These states shouldn't occur for direct API calls } } @@ -73,7 +73,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() { message.notification?.let { notification -> Log.d(TAG, "Notification: ${notification.title} - ${notification.body}") sendNotification( - notification.title ?: "MyCrib", + notification.title ?: "honeyDue", notification.body ?: "", message.data ) @@ -85,7 +85,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() { // If there's no notification payload, create one from data if (message.notification == null) { - val title = message.data["title"] ?: "MyCrib" + val title = message.data["title"] ?: "honeyDue" val body = message.data["body"] ?: "" sendNotification(title, body, message.data) } @@ -143,7 +143,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val channel = NotificationChannel( channelId, - "Casera Notifications", + "honeyDue Notifications", NotificationManager.IMPORTANCE_HIGH ).apply { description = "Notifications for tasks, residences, and warranties" @@ -210,7 +210,7 @@ class MyFirebaseMessagingService : FirebaseMessagingService() { companion object { private const val TAG = "FCMService" private const val NOTIFICATION_ID = 0 - private const val PREFS_NAME = "mycrib_prefs" + private const val PREFS_NAME = "honeydue_prefs" private const val KEY_FCM_TOKEN = "fcm_token" fun getStoredToken(context: Context): String? { diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/NotificationActionReceiver.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/NotificationActionReceiver.kt similarity index 88% rename from composeApp/src/androidMain/kotlin/com/example/casera/NotificationActionReceiver.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/NotificationActionReceiver.kt index bf20abf..18f721a 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/NotificationActionReceiver.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/NotificationActionReceiver.kt @@ -1,15 +1,15 @@ -package com.example.casera +package com.tt.honeyDue import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.util.Log import androidx.core.app.NotificationManagerCompat -import com.example.casera.data.DataManager -import com.example.casera.models.TaskCompletionCreateRequest -import com.example.casera.network.APILayer -import com.example.casera.network.ApiResult -import com.example.casera.storage.TokenStorage +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.TaskCompletionCreateRequest +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.storage.TokenStorage import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -157,11 +157,11 @@ class NotificationActionReceiver : BroadcastReceiver() { private const val TAG = "NotificationAction" // Action constants - const val ACTION_VIEW_TASK = "com.example.casera.ACTION_VIEW_TASK" - const val ACTION_COMPLETE_TASK = "com.example.casera.ACTION_COMPLETE_TASK" - const val ACTION_MARK_IN_PROGRESS = "com.example.casera.ACTION_MARK_IN_PROGRESS" - const val ACTION_CANCEL_TASK = "com.example.casera.ACTION_CANCEL_TASK" - const val ACTION_UNCANCEL_TASK = "com.example.casera.ACTION_UNCANCEL_TASK" + const val ACTION_VIEW_TASK = "com.tt.honeyDue.ACTION_VIEW_TASK" + const val ACTION_COMPLETE_TASK = "com.tt.honeyDue.ACTION_COMPLETE_TASK" + const val ACTION_MARK_IN_PROGRESS = "com.tt.honeyDue.ACTION_MARK_IN_PROGRESS" + const val ACTION_CANCEL_TASK = "com.tt.honeyDue.ACTION_CANCEL_TASK" + const val ACTION_UNCANCEL_TASK = "com.tt.honeyDue.ACTION_UNCANCEL_TASK" // Extra constants const val EXTRA_TASK_ID = "task_id" diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/Platform.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/Platform.android.kt similarity index 87% rename from composeApp/src/androidMain/kotlin/com/example/casera/Platform.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/Platform.android.kt index a3f5d91..b1f8c49 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/Platform.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/Platform.android.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import android.os.Build diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/analytics/PostHogAnalytics.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.android.kt similarity index 98% rename from composeApp/src/androidMain/kotlin/com/example/casera/analytics/PostHogAnalytics.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.android.kt index 600b65e..873bdeb 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/analytics/PostHogAnalytics.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.analytics +package com.tt.honeyDue.analytics import android.app.Application import com.posthog.PostHog diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/auth/GoogleSignInManager.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/auth/GoogleSignInManager.kt similarity index 97% rename from composeApp/src/androidMain/kotlin/com/example/casera/auth/GoogleSignInManager.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/auth/GoogleSignInManager.kt index 6a67f6d..ff8030f 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/auth/GoogleSignInManager.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/auth/GoogleSignInManager.kt @@ -1,4 +1,4 @@ -package com.example.casera.auth +package com.tt.honeyDue.auth import android.content.Context import androidx.credentials.CredentialManager @@ -6,7 +6,7 @@ import androidx.credentials.CustomCredential import androidx.credentials.GetCredentialRequest import androidx.credentials.GetCredentialResponse import androidx.credentials.exceptions.GetCredentialException -import com.example.casera.network.ApiConfig +import com.tt.honeyDue.network.ApiConfig import com.google.android.libraries.identity.googleid.GetGoogleIdOption import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/data/PersistenceManager.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/data/PersistenceManager.android.kt similarity index 91% rename from composeApp/src/androidMain/kotlin/com/example/casera/data/PersistenceManager.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/data/PersistenceManager.android.kt index 209c12b..bd212a5 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/data/PersistenceManager.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/data/PersistenceManager.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.data +package com.tt.honeyDue.data import android.content.Context import android.content.SharedPreferences @@ -29,7 +29,7 @@ actual class PersistenceManager(context: Context) { } companion object { - private const val PREFS_NAME = "casera_data_manager" + private const val PREFS_NAME = "honeydue_data_manager" @Volatile private var instance: PersistenceManager? = null diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/fcm/FCMManager.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/fcm/FCMManager.kt similarity index 98% rename from composeApp/src/androidMain/kotlin/com/example/casera/fcm/FCMManager.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/fcm/FCMManager.kt index ebac8c6..40f5f8b 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/fcm/FCMManager.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/fcm/FCMManager.kt @@ -1,4 +1,4 @@ -package com.example.casera.fcm +package com.tt.honeyDue.fcm import android.Manifest import android.app.Activity diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/network/ApiClient.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/network/ApiClient.android.kt similarity index 90% rename from composeApp/src/androidMain/kotlin/com/example/casera/network/ApiClient.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/network/ApiClient.android.kt index 0a09254..424d718 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/network/ApiClient.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/network/ApiClient.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network import io.ktor.client.* import io.ktor.client.engine.okhttp.* @@ -34,7 +34,7 @@ actual fun createHttpClient(): HttpClient { logger = Logger.DEFAULT // Only log full request/response bodies in debug builds to avoid // leaking auth tokens and PII in production logcat. - level = if (com.example.casera.BuildConfig.DEBUG) LogLevel.ALL else LogLevel.INFO + level = if (com.tt.honeyDue.BuildConfig.DEBUG) LogLevel.ALL else LogLevel.INFO } install(DefaultRequest) { diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/BillingManager.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/BillingManager.kt similarity index 98% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/BillingManager.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/BillingManager.kt index b7db13a..06818be 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/BillingManager.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/BillingManager.kt @@ -1,12 +1,12 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.app.Activity import android.content.Context import android.util.Log import com.android.billingclient.api.* -import com.example.casera.network.APILayer -import com.example.casera.network.ApiResult -import com.example.casera.utils.SubscriptionProducts +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.utils.SubscriptionProducts import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.SupervisorJob diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ContractorImportHandler.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.android.kt similarity index 73% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ContractorImportHandler.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.android.kt index 74a2698..cad1c8b 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ContractorImportHandler.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.android.kt @@ -1,9 +1,9 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.net.Uri import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor -import com.example.casera.ui.components.ContractorImportHandler as ContractorImportHandlerImpl +import com.tt.honeyDue.models.Contractor +import com.tt.honeyDue.ui.components.ContractorImportHandler as ContractorImportHandlerImpl @Composable actual fun ContractorImportHandler( diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ContractorSharing.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.android.kt similarity index 71% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ContractorSharing.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.android.kt index d5c4881..9694a21 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ContractorSharing.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.android.kt @@ -1,12 +1,12 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.content.Intent import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext -import com.example.casera.models.Contractor -import com.example.casera.sharing.ContractorSharingManager -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents +import com.tt.honeyDue.models.Contractor +import com.tt.honeyDue.sharing.ContractorSharingManager +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents @Composable actual fun rememberShareContractor(): (Contractor) -> Unit { diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/HapticFeedback.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.android.kt similarity index 99% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/HapticFeedback.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.android.kt index 2f70c76..18a97a0 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/HapticFeedback.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.content.Context import android.os.Build diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ImageBitmap.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.android.kt similarity index 93% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ImageBitmap.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.android.kt index c987cd1..950bbe6 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ImageBitmap.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.graphics.BitmapFactory import androidx.compose.runtime.Composable diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ImageLoader.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImageLoader.android.kt similarity index 96% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ImageLoader.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImageLoader.android.kt index 1881a97..29f5799 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ImageLoader.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImageLoader.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.content.Context import coil3.ImageLoader diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ImagePicker.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImagePicker.android.kt similarity index 99% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ImagePicker.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImagePicker.android.kt index 8a9ca94..f5143af 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ImagePicker.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ImagePicker.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.content.Context import android.net.Uri diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.android.kt similarity index 94% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.android.kt index 080223f..f77c242 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.android.kt @@ -1,9 +1,9 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.app.Activity import androidx.compose.runtime.* import androidx.compose.ui.platform.LocalContext -import com.example.casera.ui.subscription.UpgradeScreen +import com.tt.honeyDue.ui.subscription.UpgradeScreen import kotlinx.coroutines.launch @Composable diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ResidenceImportHandler.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.android.kt similarity index 72% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ResidenceImportHandler.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.android.kt index f54c704..d7fb226 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ResidenceImportHandler.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.android.kt @@ -1,9 +1,9 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.net.Uri import androidx.compose.runtime.Composable -import com.example.casera.models.JoinResidenceResponse -import com.example.casera.ui.components.ResidenceImportHandler as ResidenceImportHandlerImpl +import com.tt.honeyDue.models.JoinResidenceResponse +import com.tt.honeyDue.ui.components.ResidenceImportHandler as ResidenceImportHandlerImpl @Composable actual fun ResidenceImportHandler( diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ResidenceSharing.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.android.kt similarity index 86% rename from composeApp/src/androidMain/kotlin/com/example/casera/platform/ResidenceSharing.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.android.kt index 4820ce9..dc4e5e7 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/platform/ResidenceSharing.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import android.content.Intent import androidx.compose.runtime.Composable @@ -8,10 +8,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext -import com.example.casera.models.Residence -import com.example.casera.sharing.ResidenceSharingManager -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.sharing.ResidenceSharingManager +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents import kotlinx.coroutines.launch @Composable diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/sharing/ContractorSharingManager.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/sharing/ContractorSharingManager.kt similarity index 78% rename from composeApp/src/androidMain/kotlin/com/example/casera/sharing/ContractorSharingManager.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/sharing/ContractorSharingManager.kt index cf59d87..2c773f1 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/sharing/ContractorSharingManager.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/sharing/ContractorSharingManager.kt @@ -1,26 +1,26 @@ -package com.example.casera.sharing +package com.tt.honeyDue.sharing import android.content.Context import android.content.Intent import android.net.Uri import androidx.core.content.FileProvider -import com.example.casera.data.DataManager -import com.example.casera.models.CaseraShareCodec -import com.example.casera.models.Contractor -import com.example.casera.network.APILayer -import com.example.casera.network.ApiResult +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.honeyDueShareCodec +import com.tt.honeyDue.models.Contractor +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.network.ApiResult import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.io.File /** - * Manages contractor export and import via .casera files on Android. + * Manages contractor export and import via .honeydue files on Android. */ object ContractorSharingManager { /** * Creates a share Intent for a contractor. - * The contractor data is written to a temporary .casera file and shared via FileProvider. + * The contractor data is written to a temporary .honeydue file and shared via FileProvider. * * @param context Android context * @param contractor The contractor to share @@ -29,8 +29,8 @@ object ContractorSharingManager { fun createShareIntent(context: Context, contractor: Contractor): Intent? { return try { val currentUsername = DataManager.currentUser.value?.username ?: "Unknown" - val jsonString = CaseraShareCodec.encodeContractorPackage(contractor, currentUsername) - val fileName = CaseraShareCodec.safeShareFileName(contractor.name) + val jsonString = honeyDueShareCodec.encodeContractorPackage(contractor, currentUsername) + val fileName = honeyDueShareCodec.safeShareFileName(contractor.name) // Create shared directory val shareDir = File(context.cacheDir, "shared") @@ -61,7 +61,7 @@ object ContractorSharingManager { * Imports a contractor from a content URI. * * @param context Android context - * @param uri The content URI of the .casera file + * @param uri The content URI of the .honeydue file * @return ApiResult with the created Contractor on success, or error on failure */ suspend fun importContractor(context: Context, uri: Uri): ApiResult { @@ -79,7 +79,7 @@ object ContractorSharingManager { val jsonString = inputStream.bufferedReader().use { it.readText() } inputStream.close() - val createRequest = CaseraShareCodec.createContractorImportRequestOrNull( + val createRequest = honeyDueShareCodec.createContractorImportRequestOrNull( jsonContent = jsonString, availableSpecialties = DataManager.contractorSpecialties.value ) ?: return@withContext ApiResult.Error("Invalid contractor share package") @@ -94,12 +94,12 @@ object ContractorSharingManager { } /** - * Checks if the given URI appears to be a .casera file. + * Checks if the given URI appears to be a .honeydue file. */ - fun isCaseraFile(context: Context, uri: Uri): Boolean { + fun ishoneyDueFile(context: Context, uri: Uri): Boolean { // Check file extension from URI path val path = uri.path ?: uri.toString() - if (path.endsWith(".casera", ignoreCase = true)) { + if (path.endsWith(".honeydue", ignoreCase = true)) { return true } @@ -110,7 +110,7 @@ object ContractorSharingManager { val nameIndex = cursor.getColumnIndex(android.provider.OpenableColumns.DISPLAY_NAME) if (nameIndex >= 0) { val name = cursor.getString(nameIndex) - if (name?.endsWith(".casera", ignoreCase = true) == true) { + if (name?.endsWith(".honeydue", ignoreCase = true) == true) { return true } } diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/sharing/ResidenceSharingManager.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/sharing/ResidenceSharingManager.kt similarity index 82% rename from composeApp/src/androidMain/kotlin/com/example/casera/sharing/ResidenceSharingManager.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/sharing/ResidenceSharingManager.kt index 4faf6d5..9d4a535 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/sharing/ResidenceSharingManager.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/sharing/ResidenceSharingManager.kt @@ -1,21 +1,21 @@ -package com.example.casera.sharing +package com.tt.honeyDue.sharing import android.content.Context import android.content.Intent import android.net.Uri import androidx.core.content.FileProvider -import com.example.casera.data.DataManager -import com.example.casera.models.CaseraShareCodec -import com.example.casera.models.JoinResidenceResponse -import com.example.casera.models.Residence -import com.example.casera.network.APILayer -import com.example.casera.network.ApiResult +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.honeyDueShareCodec +import com.tt.honeyDue.models.JoinResidenceResponse +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.network.ApiResult import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.io.File /** - * Manages residence share package creation and import via .casera files on Android. + * Manages residence share package creation and import via .honeydue files on Android. * Unlike contractors (which are exported client-side), residence sharing uses * server-generated share codes. */ @@ -38,8 +38,8 @@ object ResidenceSharingManager { when (result) { is ApiResult.Success -> { val sharedResidence = result.data - val jsonString = CaseraShareCodec.encodeSharedResidence(sharedResidence) - val fileName = CaseraShareCodec.safeShareFileName(residence.name) + val jsonString = honeyDueShareCodec.encodeSharedResidence(sharedResidence) + val fileName = honeyDueShareCodec.safeShareFileName(residence.name) // Create shared directory val shareDir = File(context.cacheDir, "shared") @@ -77,7 +77,7 @@ object ResidenceSharingManager { * Imports (joins) a residence from a content URI containing a share code. * * @param context Android context - * @param uri The content URI of the .casera file + * @param uri The content URI of the .honeydue file * @return ApiResult with the JoinResidenceResponse on success, or error on failure */ suspend fun importResidence(context: Context, uri: Uri): ApiResult { @@ -95,7 +95,7 @@ object ResidenceSharingManager { val jsonString = inputStream.bufferedReader().use { it.readText() } inputStream.close() - val shareCode = CaseraShareCodec.extractResidenceShareCodeOrNull(jsonString) + val shareCode = honeyDueShareCodec.extractResidenceShareCodeOrNull(jsonString) ?: return@withContext ApiResult.Error("Invalid residence share package") // Call API with share code diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TaskCacheManager.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.android.kt similarity index 94% rename from composeApp/src/androidMain/kotlin/com/example/casera/storage/TaskCacheManager.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.android.kt index f396e13..5867927 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TaskCacheManager.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import android.content.Context import android.content.SharedPreferences @@ -47,7 +47,7 @@ actual class TaskCacheManager(private val context: Context) { } companion object { - private const val PREFS_NAME = "mycrib_cache" + private const val PREFS_NAME = "honeydue_cache" private const val KEY_TASKS = "cached_tasks" private const val KEY_DIRTY_FLAG = "tasks_dirty" diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TaskCacheStorage.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.android.kt similarity index 81% rename from composeApp/src/androidMain/kotlin/com/example/casera/storage/TaskCacheStorage.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.android.kt index 4e98e13..3825e5c 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TaskCacheStorage.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage internal actual fun getPlatformTaskCacheManager(): TaskCacheManager? { // Android requires context, so must use initialize() method diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/storage/ThemeStorageManager.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/ThemeStorageManager.android.kt similarity index 91% rename from composeApp/src/androidMain/kotlin/com/example/casera/storage/ThemeStorageManager.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/ThemeStorageManager.android.kt index f2d9bcb..c84c078 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/storage/ThemeStorageManager.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/ThemeStorageManager.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import android.content.Context import android.content.SharedPreferences @@ -22,7 +22,7 @@ actual class ThemeStorageManager(context: Context) { } companion object { - private const val PREFS_NAME = "mycrib_theme_prefs" + private const val PREFS_NAME = "honeydue_theme_prefs" private const val KEY_THEME_ID = "theme_id" @Volatile diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TokenManager.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TokenManager.android.kt similarity index 94% rename from composeApp/src/androidMain/kotlin/com/example/casera/storage/TokenManager.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TokenManager.android.kt index 2f1b42a..9cdbbf9 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TokenManager.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TokenManager.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import android.content.Context import android.content.SharedPreferences @@ -31,8 +31,8 @@ actual class TokenManager(private val context: Context) { companion object { private const val TAG = "TokenManager" - private const val ENCRYPTED_PREFS_NAME = "mycrib_secure_prefs" - private const val FALLBACK_PREFS_NAME = "mycrib_prefs" + private const val ENCRYPTED_PREFS_NAME = "honeydue_secure_prefs" + private const val FALLBACK_PREFS_NAME = "honeydue_prefs" private const val KEY_TOKEN = "auth_token" @Volatile diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TokenStorage.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TokenStorage.android.kt similarity index 80% rename from composeApp/src/androidMain/kotlin/com/example/casera/storage/TokenStorage.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TokenStorage.android.kt index 34b4098..0b16d31 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/storage/TokenStorage.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/storage/TokenStorage.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage internal actual fun getPlatformTokenManager(): TokenManager? { // Android requires context, so must use initialize() method diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/ui/components/ContractorImportHandler.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/ContractorImportHandler.android.kt similarity index 95% rename from composeApp/src/androidMain/kotlin/com/example/casera/ui/components/ContractorImportHandler.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/ContractorImportHandler.android.kt index a5c6e75..df9a6a2 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/ui/components/ContractorImportHandler.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/ContractorImportHandler.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import android.net.Uri import androidx.compose.runtime.Composable @@ -9,10 +9,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext -import com.example.casera.models.Contractor -import com.example.casera.models.SharedContractor -import com.example.casera.network.ApiResult -import com.example.casera.sharing.ContractorSharingManager +import com.tt.honeyDue.models.Contractor +import com.tt.honeyDue.models.SharedContractor +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.sharing.ContractorSharingManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -33,7 +33,7 @@ sealed class ImportState { * Android-specific composable that handles the contractor import flow. * Shows confirmation dialog, performs import, and displays result. * - * @param pendingImportUri The URI of the .casera file to import (or null if none) + * @param pendingImportUri The URI of the .honeydue file to import (or null if none) * @param onClearImport Called when import flow is complete and URI should be cleared * @param onImportSuccess Called when import succeeds, with the imported contractor */ @@ -57,7 +57,7 @@ fun ContractorImportHandler( } } - // Parse the .casera file when a new URI is received + // Parse the .honeydue file when a new URI is received LaunchedEffect(pendingImportUri) { if (pendingImportUri != null && importState is ImportState.Idle) { pendingUri = pendingImportUri diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/ui/components/ResidenceImportHandler.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/ResidenceImportHandler.android.kt similarity index 95% rename from composeApp/src/androidMain/kotlin/com/example/casera/ui/components/ResidenceImportHandler.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/ResidenceImportHandler.android.kt index 8345339..e90db2d 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/ui/components/ResidenceImportHandler.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/ResidenceImportHandler.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import android.net.Uri import androidx.compose.runtime.Composable @@ -9,10 +9,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.platform.LocalContext -import com.example.casera.models.JoinResidenceResponse -import com.example.casera.models.SharedResidence -import com.example.casera.network.ApiResult -import com.example.casera.sharing.ResidenceSharingManager +import com.tt.honeyDue.models.JoinResidenceResponse +import com.tt.honeyDue.models.SharedResidence +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.sharing.ResidenceSharingManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -33,7 +33,7 @@ sealed class ResidenceImportState { * Android-specific composable that handles the residence import flow. * Shows confirmation dialog, performs import, and displays result. * - * @param pendingImportUri The URI of the .casera file to import (or null if none) + * @param pendingImportUri The URI of the .honeydue file to import (or null if none) * @param onClearImport Called when import flow is complete and URI should be cleared * @param onImportSuccess Called when import succeeds, with the join response */ @@ -57,7 +57,7 @@ fun ResidenceImportHandler( } } - // Parse the .casera file when a new URI is received + // Parse the .honeydue file when a new URI is received LaunchedEffect(pendingImportUri) { if (pendingImportUri != null && importState is ResidenceImportState.Idle) { pendingUri = pendingImportUri diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.android.kt similarity index 95% rename from composeApp/src/androidMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.android.kt index cfbf77b..33c995d 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.android.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.Image @@ -13,8 +13,8 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.example.casera.auth.GoogleSignInManager -import com.example.casera.auth.GoogleSignInResult +import com.tt.honeyDue.auth.GoogleSignInManager +import com.tt.honeyDue.auth.GoogleSignInResult import kotlinx.coroutines.launch @Composable diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/ui/subscription/UpgradeFeatureScreenAndroid.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeFeatureScreenAndroid.kt similarity index 98% rename from composeApp/src/androidMain/kotlin/com/example/casera/ui/subscription/UpgradeFeatureScreenAndroid.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeFeatureScreenAndroid.kt index 2a9df08..9d44dee 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/ui/subscription/UpgradeFeatureScreenAndroid.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeFeatureScreenAndroid.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.subscription +package com.tt.honeyDue.ui.subscription import android.app.Activity import androidx.compose.foundation.BorderStroke @@ -17,9 +17,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.android.billingclient.api.ProductDetails -import com.example.casera.data.DataManager -import com.example.casera.platform.BillingManager -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.platform.BillingManager +import com.tt.honeyDue.ui.theme.AppSpacing import kotlinx.coroutines.launch /** @@ -344,7 +344,7 @@ private fun SubscriptionProductCardAndroid( onSelect: () -> Unit ) { val isAnnual = productDetails.productId.contains("annual") - val productName = if (isAnnual) "MyCrib Pro Annual" else "MyCrib Pro Monthly" + val productName = if (isAnnual) "honeyDue Pro Annual" else "honeyDue Pro Monthly" val billingPeriod = if (isAnnual) "Billed annually" else "Billed monthly" Card( diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/util/ImageCompressor.android.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/util/ImageCompressor.android.kt similarity index 95% rename from composeApp/src/androidMain/kotlin/com/example/casera/util/ImageCompressor.android.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/util/ImageCompressor.android.kt index 2251406..9780991 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/util/ImageCompressor.android.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/util/ImageCompressor.android.kt @@ -1,8 +1,8 @@ -package com.example.casera.util +package com.tt.honeyDue.util import android.graphics.Bitmap import android.graphics.BitmapFactory -import com.example.casera.platform.ImageData +import com.tt.honeyDue.platform.ImageData import java.io.ByteArrayOutputStream /** diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraLargeWidget.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraLargeWidget.kt similarity index 97% rename from composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraLargeWidget.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraLargeWidget.kt index c8397dd..8975748 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraLargeWidget.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraLargeWidget.kt @@ -1,4 +1,4 @@ -package com.example.casera.widget +package com.tt.honeyDue.widget import android.content.Context import android.content.Intent @@ -50,7 +50,7 @@ import kotlinx.serialization.json.Json * Large widget showing task list with stats and interactive actions (Pro only) * Size: 4x4 */ -class CaseraLargeWidget : GlanceAppWidget() { +class HoneyDueLargeWidget : GlanceAppWidget() { override val stateDefinition: GlanceStateDefinition<*> = PreferencesGlanceStateDefinition @@ -97,7 +97,7 @@ class CaseraLargeWidget : GlanceAppWidget() { verticalAlignment = Alignment.CenterVertically ) { Text( - text = "Casera", + text = "honeyDue", style = TextStyle( color = ColorProvider(Color(0xFF07A0C3)), fontSize = 20.sp, @@ -346,7 +346,7 @@ class CompleteTaskAction : ActionCallback { val taskId = parameters[ActionParameters.Key("task_id")] ?: return // Send broadcast to app to complete the task - val intent = Intent("com.example.casera.COMPLETE_TASK").apply { + val intent = Intent("com.tt.honeyDue.COMPLETE_TASK").apply { putExtra("task_id", taskId) setPackage(context.packageName) } @@ -354,7 +354,7 @@ class CompleteTaskAction : ActionCallback { // Update widget after action withContext(Dispatchers.Main) { - CaseraLargeWidget().update(context, glanceId) + HoneyDueLargeWidget().update(context, glanceId) } } } @@ -362,6 +362,6 @@ class CompleteTaskAction : ActionCallback { /** * Receiver for the large widget */ -class CaseraLargeWidgetReceiver : GlanceAppWidgetReceiver() { - override val glanceAppWidget: GlanceAppWidget = CaseraLargeWidget() +class HoneyDueLargeWidgetReceiver : GlanceAppWidgetReceiver() { + override val glanceAppWidget: GlanceAppWidget = HoneyDueLargeWidget() } diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraMediumWidget.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraMediumWidget.kt similarity index 97% rename from composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraMediumWidget.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraMediumWidget.kt index 21c43ad..ab01a58 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraMediumWidget.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraMediumWidget.kt @@ -1,4 +1,4 @@ -package com.example.casera.widget +package com.tt.honeyDue.widget import android.content.Context import android.content.Intent @@ -46,7 +46,7 @@ import kotlinx.serialization.json.Json * Medium widget showing a list of upcoming tasks * Size: 4x2 */ -class CaseraMediumWidget : GlanceAppWidget() { +class HoneyDueMediumWidget : GlanceAppWidget() { override val stateDefinition: GlanceStateDefinition<*> = PreferencesGlanceStateDefinition @@ -90,7 +90,7 @@ class CaseraMediumWidget : GlanceAppWidget() { verticalAlignment = Alignment.CenterVertically ) { Text( - text = "Casera", + text = "honeyDue", style = TextStyle( color = ColorProvider(Color(0xFF07A0C3)), fontSize = 18.sp, @@ -247,6 +247,6 @@ class OpenTaskAction : ActionCallback { /** * Receiver for the medium widget */ -class CaseraMediumWidgetReceiver : GlanceAppWidgetReceiver() { - override val glanceAppWidget: GlanceAppWidget = CaseraMediumWidget() +class HoneyDueMediumWidgetReceiver : GlanceAppWidgetReceiver() { + override val glanceAppWidget: GlanceAppWidget = HoneyDueMediumWidget() } diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraSmallWidget.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraSmallWidget.kt similarity index 95% rename from composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraSmallWidget.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraSmallWidget.kt index 815813b..0e17ce3 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/widget/CaseraSmallWidget.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/CaseraSmallWidget.kt @@ -1,4 +1,4 @@ -package com.example.casera.widget +package com.tt.honeyDue.widget import android.content.Context import android.content.Intent @@ -39,13 +39,13 @@ import androidx.glance.text.TextStyle import androidx.glance.unit.ColorProvider import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.intPreferencesKey -import com.example.casera.R +import com.tt.honeyDue.R /** * Small widget showing task count summary * Size: 2x1 or 2x2 */ -class CaseraSmallWidget : GlanceAppWidget() { +class HoneyDueSmallWidget : GlanceAppWidget() { override val stateDefinition: GlanceStateDefinition<*> = PreferencesGlanceStateDefinition @@ -78,7 +78,7 @@ class CaseraSmallWidget : GlanceAppWidget() { ) { // App name/logo Text( - text = "Casera", + text = "honeyDue", style = TextStyle( color = ColorProvider(Color(0xFF07A0C3)), fontSize = 16.sp, @@ -166,6 +166,6 @@ class OpenAppAction : ActionCallback { /** * Receiver for the small widget */ -class CaseraSmallWidgetReceiver : GlanceAppWidgetReceiver() { - override val glanceAppWidget: GlanceAppWidget = CaseraSmallWidget() +class HoneyDueSmallWidgetReceiver : GlanceAppWidgetReceiver() { + override val glanceAppWidget: GlanceAppWidget = HoneyDueSmallWidget() } diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetDataRepository.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetDataRepository.kt similarity index 99% rename from composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetDataRepository.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetDataRepository.kt index 8ef92fb..ee091f3 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetDataRepository.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetDataRepository.kt @@ -1,4 +1,4 @@ -package com.example.casera.widget +package com.tt.honeyDue.widget import android.content.Context import androidx.datastore.core.DataStore diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetTaskActionReceiver.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetTaskActionReceiver.kt similarity index 83% rename from composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetTaskActionReceiver.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetTaskActionReceiver.kt index 09ef6ec..6207fb6 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetTaskActionReceiver.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetTaskActionReceiver.kt @@ -1,11 +1,11 @@ -package com.example.casera.widget +package com.tt.honeyDue.widget import android.content.BroadcastReceiver import android.content.Context import android.content.Intent -import com.example.casera.data.DataManager -import com.example.casera.models.TaskCompletionCreateRequest -import com.example.casera.network.APILayer +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.TaskCompletionCreateRequest +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -17,7 +17,7 @@ class WidgetTaskActionReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { when (intent.action) { - "com.example.casera.COMPLETE_TASK" -> { + "com.tt.honeyDue.COMPLETE_TASK" -> { val taskId = intent.getIntExtra("task_id", -1) if (taskId != -1) { completeTask(context, taskId) @@ -45,7 +45,7 @@ class WidgetTaskActionReceiver : BroadcastReceiver() { val result = APILayer.createTaskCompletion(request) // Update widgets after completion - if (result is com.example.casera.network.ApiResult.Success) { + if (result is com.tt.honeyDue.network.ApiResult.Success) { WidgetUpdateManager.updateAllWidgets(context) } } catch (e: Exception) { diff --git a/composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetUpdateManager.kt b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetUpdateManager.kt similarity index 88% rename from composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetUpdateManager.kt rename to composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetUpdateManager.kt index b5e5d43..81b6162 100644 --- a/composeApp/src/androidMain/kotlin/com/example/casera/widget/WidgetUpdateManager.kt +++ b/composeApp/src/androidMain/kotlin/com/tt/honeyDue/widget/WidgetUpdateManager.kt @@ -1,4 +1,4 @@ -package com.example.casera.widget +package com.tt.honeyDue.widget import android.content.Context import androidx.datastore.preferences.core.intPreferencesKey @@ -22,7 +22,7 @@ object WidgetUpdateManager { private val json = Json { ignoreUnknownKeys = true } /** - * Update all Casera widgets with new data + * Update all honeyDue widgets with new data */ fun updateAllWidgets(context: Context) { CoroutineScope(Dispatchers.IO).launch { @@ -49,7 +49,7 @@ object WidgetUpdateManager { val glanceManager = GlanceAppWidgetManager(context) // Update small widgets - val smallWidgetIds = glanceManager.getGlanceIds(CaseraSmallWidget::class.java) + val smallWidgetIds = glanceManager.getGlanceIds(HoneyDueSmallWidget::class.java) smallWidgetIds.forEach { id -> updateAppWidgetState(context, PreferencesGlanceStateDefinition, id) { prefs -> prefs.toMutablePreferences().apply { @@ -58,11 +58,11 @@ object WidgetUpdateManager { this[intPreferencesKey("in_progress_count")] = summary.inProgressCount } } - CaseraSmallWidget().update(context, id) + HoneyDueSmallWidget().update(context, id) } // Update medium widgets - val mediumWidgetIds = glanceManager.getGlanceIds(CaseraMediumWidget::class.java) + val mediumWidgetIds = glanceManager.getGlanceIds(HoneyDueMediumWidget::class.java) mediumWidgetIds.forEach { id -> updateAppWidgetState(context, PreferencesGlanceStateDefinition, id) { prefs -> prefs.toMutablePreferences().apply { @@ -72,11 +72,11 @@ object WidgetUpdateManager { this[stringPreferencesKey("tasks_json")] = json.encodeToString(summary.tasks) } } - CaseraMediumWidget().update(context, id) + HoneyDueMediumWidget().update(context, id) } // Update large widgets - val largeWidgetIds = glanceManager.getGlanceIds(CaseraLargeWidget::class.java) + val largeWidgetIds = glanceManager.getGlanceIds(HoneyDueLargeWidget::class.java) largeWidgetIds.forEach { id -> updateAppWidgetState(context, PreferencesGlanceStateDefinition, id) { prefs -> prefs.toMutablePreferences().apply { @@ -89,7 +89,7 @@ object WidgetUpdateManager { this[longPreferencesKey("last_updated")] = summary.lastUpdated } } - CaseraLargeWidget().update(context, id) + HoneyDueLargeWidget().update(context, id) } } diff --git a/composeApp/src/androidMain/res/layout/widget_large_preview.xml b/composeApp/src/androidMain/res/layout/widget_large_preview.xml index 74cc44b..efe32cd 100644 --- a/composeApp/src/androidMain/res/layout/widget_large_preview.xml +++ b/composeApp/src/androidMain/res/layout/widget_large_preview.xml @@ -15,7 +15,7 @@ diff --git a/composeApp/src/androidMain/res/layout/widget_medium_preview.xml b/composeApp/src/androidMain/res/layout/widget_medium_preview.xml index 89ebb6e..6834a8a 100644 --- a/composeApp/src/androidMain/res/layout/widget_medium_preview.xml +++ b/composeApp/src/androidMain/res/layout/widget_medium_preview.xml @@ -15,7 +15,7 @@ diff --git a/composeApp/src/androidMain/res/layout/widget_small_preview.xml b/composeApp/src/androidMain/res/layout/widget_small_preview.xml index 61d7fa4..0a826e3 100644 --- a/composeApp/src/androidMain/res/layout/widget_small_preview.xml +++ b/composeApp/src/androidMain/res/layout/widget_small_preview.xml @@ -10,7 +10,7 @@ diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png index a571e60..0fbd4e9 100644 Binary files a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png and b/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png differ diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png index 61da551..0fbd4e9 100644 Binary files a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png and b/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png index c41dd28..5e02b79 100644 Binary files a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png and b/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png differ diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png index db5080a..5e02b79 100644 Binary files a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png and b/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png index 6dba46d..d13771f 100644 Binary files a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png and b/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png index da31a87..d13771f 100644 Binary files a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png and b/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png index 15ac681..e8c5192 100644 Binary files a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png and b/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png index b216f2d..e8c5192 100644 Binary files a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png and b/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png b/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png index f25a419..fb54805 100644 Binary files a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png and b/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png b/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png index e96783c..fb54805 100644 Binary files a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png and b/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/composeApp/src/androidMain/res/values/strings.xml b/composeApp/src/androidMain/res/values/strings.xml index ddbc699..62c7b9c 100644 --- a/composeApp/src/androidMain/res/values/strings.xml +++ b/composeApp/src/androidMain/res/values/strings.xml @@ -1,14 +1,14 @@ - Casera - casera_notifications + honeyDue + honeydue_notifications - Casera Summary + honeyDue Summary Quick task count summary showing overdue, due soon, and active tasks - Casera Tasks + honeyDue Tasks List of upcoming tasks with quick access to task details - Casera Dashboard + honeyDue Dashboard Full task dashboard with stats and interactive actions (Pro feature) \ No newline at end of file diff --git a/composeApp/src/androidMain/res/xml/casera_large_widget_info.xml b/composeApp/src/androidMain/res/xml/honeydue_large_widget_info.xml similarity index 100% rename from composeApp/src/androidMain/res/xml/casera_large_widget_info.xml rename to composeApp/src/androidMain/res/xml/honeydue_large_widget_info.xml diff --git a/composeApp/src/androidMain/res/xml/casera_medium_widget_info.xml b/composeApp/src/androidMain/res/xml/honeydue_medium_widget_info.xml similarity index 100% rename from composeApp/src/androidMain/res/xml/casera_medium_widget_info.xml rename to composeApp/src/androidMain/res/xml/honeydue_medium_widget_info.xml diff --git a/composeApp/src/androidMain/res/xml/casera_small_widget_info.xml b/composeApp/src/androidMain/res/xml/honeydue_small_widget_info.xml similarity index 100% rename from composeApp/src/androidMain/res/xml/casera_small_widget_info.xml rename to composeApp/src/androidMain/res/xml/honeydue_small_widget_info.xml diff --git a/composeApp/src/commonMain/composeResources/values-de/strings.xml b/composeApp/src/commonMain/composeResources/values-de/strings.xml index 97c67c8..fb86628 100644 --- a/composeApp/src/commonMain/composeResources/values-de/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-de/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Verwalten Sie Ihre Immobilien einfach - Casera + honeyDue Verwalten Sie Ihre Immobilien einfach Benutzername oder E-Mail Passwort diff --git a/composeApp/src/commonMain/composeResources/values-es/strings.xml b/composeApp/src/commonMain/composeResources/values-es/strings.xml index 101c556..688c75b 100644 --- a/composeApp/src/commonMain/composeResources/values-es/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-es/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Administra tus propiedades con facilidad - Casera + honeyDue Administra tus propiedades con facilidad Usuario o Correo Contrasena diff --git a/composeApp/src/commonMain/composeResources/values-fr/strings.xml b/composeApp/src/commonMain/composeResources/values-fr/strings.xml index 16c998a..83b9ad5 100644 --- a/composeApp/src/commonMain/composeResources/values-fr/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-fr/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Gerez vos proprietes facilement - Casera + honeyDue Gerez vos proprietes facilement Nom d\'utilisateur ou Email Mot de passe diff --git a/composeApp/src/commonMain/composeResources/values-it/strings.xml b/composeApp/src/commonMain/composeResources/values-it/strings.xml index 82f9226..14e9f6f 100644 --- a/composeApp/src/commonMain/composeResources/values-it/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-it/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Gestisci le tue proprietà con facilità - Casera + honeyDue Gestisci le tue proprietà con facilità Nome utente o Email Password diff --git a/composeApp/src/commonMain/composeResources/values-ja/strings.xml b/composeApp/src/commonMain/composeResources/values-ja/strings.xml index ddf9d93..b55bbf3 100644 --- a/composeApp/src/commonMain/composeResources/values-ja/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-ja/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue 物件管理を簡単に - Casera + honeyDue 物件管理を簡単に ユーザー名またはメールアドレス パスワード diff --git a/composeApp/src/commonMain/composeResources/values-ko/strings.xml b/composeApp/src/commonMain/composeResources/values-ko/strings.xml index 3dd97b2..1475a61 100644 --- a/composeApp/src/commonMain/composeResources/values-ko/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-ko/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue 부동산을 쉽게 관리하세요 - Casera + honeyDue 부동산을 쉽게 관리하세요 사용자 이름 또는 이메일 비밀번호 diff --git a/composeApp/src/commonMain/composeResources/values-nl/strings.xml b/composeApp/src/commonMain/composeResources/values-nl/strings.xml index 24089db..1e1a95c 100644 --- a/composeApp/src/commonMain/composeResources/values-nl/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-nl/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Beheer uw eigendommen met gemak - Casera + honeyDue Beheer uw eigendommen met gemak Gebruikersnaam of E-mail Wachtwoord diff --git a/composeApp/src/commonMain/composeResources/values-pt/strings.xml b/composeApp/src/commonMain/composeResources/values-pt/strings.xml index 63d7899..24f1076 100644 --- a/composeApp/src/commonMain/composeResources/values-pt/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-pt/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Gerencie suas propriedades com facilidade - Casera + honeyDue Gerencie suas propriedades com facilidade Usuario ou Email Senha diff --git a/composeApp/src/commonMain/composeResources/values-zh/strings.xml b/composeApp/src/commonMain/composeResources/values-zh/strings.xml index 6880e18..83a9d95 100644 --- a/composeApp/src/commonMain/composeResources/values-zh/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-zh/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue 轻松管理您的房产 - Casera + honeyDue 轻松管理您的房产 用户名或邮箱 密码 diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml index 92a57eb..2f1aefa 100644 --- a/composeApp/src/commonMain/composeResources/values/strings.xml +++ b/composeApp/src/commonMain/composeResources/values/strings.xml @@ -1,11 +1,11 @@ - Casera + honeyDue Manage your properties with ease - Casera + honeyDue Manage your properties with ease Username or Email Password @@ -282,7 +282,7 @@ Invite Others Easy Share Send Invite Link - Send a .casera file via Messages, Email, or share. They just tap to join. + Send a .honeydue file via Messages, Email, or share. They just tap to join. Share Code No active code Generate Code @@ -553,7 +553,7 @@ Privacy Policy View our privacy policy Version %1$s - Casera + honeyDue Edit Profile @@ -690,7 +690,7 @@ You\'ve reached the task limit for your plan - Welcome to Casera + Welcome to honeyDue Your home maintenance companion Start Fresh Join Existing Home @@ -763,7 +763,7 @@ Go Pro Take your home management to the next level - CASERA PRO + HONEYDUE PRO 4.9 • 10K+ homeowners Unlimited Properties Track every home you own diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/App.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/App.kt similarity index 93% rename from composeApp/src/commonMain/kotlin/com/example/casera/App.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/App.kt index 505b253..a5b001c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/App.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/App.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.Image @@ -16,22 +16,22 @@ import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import com.example.casera.ui.screens.AddResidenceScreen -import com.example.casera.ui.screens.EditResidenceScreen -import com.example.casera.ui.screens.EditTaskScreen -import com.example.casera.ui.screens.ForgotPasswordScreen -import com.example.casera.ui.screens.HomeScreen -import com.example.casera.ui.screens.LoginScreen -import com.example.casera.ui.screens.RegisterScreen -import com.example.casera.ui.screens.ResetPasswordScreen -import com.example.casera.ui.screens.ResidenceDetailScreen -import com.example.casera.ui.screens.ResidencesScreen -import com.example.casera.ui.screens.TasksScreen -import com.example.casera.ui.screens.VerifyEmailScreen -import com.example.casera.ui.screens.VerifyResetCodeScreen -import com.example.casera.ui.screens.onboarding.OnboardingScreen -import com.example.casera.viewmodel.OnboardingViewModel -import com.example.casera.viewmodel.PasswordResetViewModel +import com.tt.honeyDue.ui.screens.AddResidenceScreen +import com.tt.honeyDue.ui.screens.EditResidenceScreen +import com.tt.honeyDue.ui.screens.EditTaskScreen +import com.tt.honeyDue.ui.screens.ForgotPasswordScreen +import com.tt.honeyDue.ui.screens.HomeScreen +import com.tt.honeyDue.ui.screens.LoginScreen +import com.tt.honeyDue.ui.screens.RegisterScreen +import com.tt.honeyDue.ui.screens.ResetPasswordScreen +import com.tt.honeyDue.ui.screens.ResidenceDetailScreen +import com.tt.honeyDue.ui.screens.ResidencesScreen +import com.tt.honeyDue.ui.screens.TasksScreen +import com.tt.honeyDue.ui.screens.VerifyEmailScreen +import com.tt.honeyDue.ui.screens.VerifyResetCodeScreen +import com.tt.honeyDue.ui.screens.onboarding.OnboardingScreen +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import com.tt.honeyDue.viewmodel.PasswordResetViewModel import androidx.lifecycle.viewmodel.compose.viewModel import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.ui.tooling.preview.Preview @@ -40,29 +40,29 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.composable import androidx.navigation.toRoute -import com.example.casera.ui.screens.MainScreen -import com.example.casera.ui.screens.ManageUsersScreen -import com.example.casera.ui.screens.NotificationPreferencesScreen -import com.example.casera.ui.screens.ProfileScreen -import com.example.casera.ui.theme.MyCribTheme -import com.example.casera.ui.theme.ThemeManager -import com.example.casera.navigation.* -import com.example.casera.repository.LookupsRepository -import com.example.casera.models.Residence -import com.example.casera.models.TaskCategory -import com.example.casera.models.TaskDetail -import com.example.casera.models.TaskFrequency -import com.example.casera.models.TaskPriority -import com.example.casera.network.ApiResult -import com.example.casera.network.AuthApi -import com.example.casera.data.DataManager -import com.example.casera.network.APILayer -import com.example.casera.platform.ContractorImportHandler -import com.example.casera.platform.PlatformUpgradeScreen -import com.example.casera.platform.ResidenceImportHandler +import com.tt.honeyDue.ui.screens.MainScreen +import com.tt.honeyDue.ui.screens.ManageUsersScreen +import com.tt.honeyDue.ui.screens.NotificationPreferencesScreen +import com.tt.honeyDue.ui.screens.ProfileScreen +import com.tt.honeyDue.ui.theme.HoneyDueTheme +import com.tt.honeyDue.ui.theme.ThemeManager +import com.tt.honeyDue.navigation.* +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.models.TaskCategory +import com.tt.honeyDue.models.TaskDetail +import com.tt.honeyDue.models.TaskFrequency +import com.tt.honeyDue.models.TaskPriority +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.AuthApi +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.platform.ContractorImportHandler +import com.tt.honeyDue.platform.PlatformUpgradeScreen +import com.tt.honeyDue.platform.ResidenceImportHandler -import casera.composeapp.generated.resources.Res -import casera.composeapp.generated.resources.compose_multiplatform +import honeydue.composeapp.generated.resources.Res +import honeydue.composeapp.generated.resources.compose_multiplatform @Composable @Preview @@ -119,7 +119,7 @@ fun App( val currentTheme by remember { derivedStateOf { ThemeManager.currentTheme } } - MyCribTheme(themeColors = currentTheme) { + HoneyDueTheme(themeColors = currentTheme) { // Handle contractor file imports (Android-specific, no-op on other platforms) ContractorImportHandler( pendingContractorImportUri = pendingContractorImportUri, @@ -145,7 +145,7 @@ fun App( CircularProgressIndicator() } } - return@MyCribTheme + return@HoneyDueTheme } val startDestination = when { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/Greeting.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/Greeting.kt similarity index 83% rename from composeApp/src/commonMain/kotlin/com/example/casera/Greeting.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/Greeting.kt index 6b8c16d..ac99247 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/Greeting.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/Greeting.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue class Greeting { private val platform = getPlatform() diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/MainActivity.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/MainActivity.kt similarity index 78% rename from composeApp/src/commonMain/kotlin/com/example/casera/MainActivity.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/MainActivity.kt index 177ef2a..209b21e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/MainActivity.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/MainActivity.kt @@ -1,4 +1,4 @@ -//package com.casera.android +//package com.honeydue.android // //import android.os.Bundle //import androidx.activity.ComponentActivity @@ -10,15 +10,15 @@ //import androidx.navigation.compose.NavHost //import androidx.navigation.compose.composable //import androidx.navigation.compose.rememberNavController -//import com.example.casera.ui.screens.* -//import com.example.casera.ui.theme.MyCribTheme +//import com.tt.honeyDue.ui.screens.* +//import com.tt.honeyDue.ui.theme.HoneyDueTheme // //class MainActivity : ComponentActivity() { // override fun onCreate(savedInstanceState: Bundle?) { // super.onCreate(savedInstanceState) // setContent { -// MyCribTheme { -// MyCribApp() +// HoneyDueTheme { +// HoneyDueApp() // } // } // } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/Platform.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/Platform.kt similarity index 74% rename from composeApp/src/commonMain/kotlin/com/example/casera/Platform.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/Platform.kt index 07db1f7..dee3369 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/Platform.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/Platform.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue interface Platform { val name: String diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/analytics/Analytics.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/analytics/Analytics.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/analytics/Analytics.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/analytics/Analytics.kt index 239aaa7..ed81506 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/analytics/Analytics.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/analytics/Analytics.kt @@ -1,4 +1,4 @@ -package com.example.casera.analytics +package com.tt.honeyDue.analytics /** * Common analytics interface for cross-platform event tracking. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/cache/SubscriptionCache.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/cache/SubscriptionCache.kt similarity index 89% rename from composeApp/src/commonMain/kotlin/com/example/casera/cache/SubscriptionCache.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/cache/SubscriptionCache.kt index 9cdec9c..1068e28 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/cache/SubscriptionCache.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/cache/SubscriptionCache.kt @@ -1,10 +1,10 @@ -package com.example.casera.cache +package com.tt.honeyDue.cache -import com.example.casera.data.DataManager -import com.example.casera.models.FeatureBenefit -import com.example.casera.models.Promotion -import com.example.casera.models.SubscriptionStatus -import com.example.casera.models.UpgradeTriggerData +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.FeatureBenefit +import com.tt.honeyDue.models.Promotion +import com.tt.honeyDue.models.SubscriptionStatus +import com.tt.honeyDue.models.UpgradeTriggerData /** * Thin facade over DataManager for subscription data. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/data/DataManager.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/data/DataManager.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/data/DataManager.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/data/DataManager.kt index 454926c..4b8fa5d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/data/DataManager.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/data/DataManager.kt @@ -1,8 +1,8 @@ -package com.example.casera.data +package com.tt.honeyDue.data -import com.example.casera.models.* -import com.example.casera.storage.TokenManager -import com.example.casera.storage.ThemeStorageManager +import com.tt.honeyDue.models.* +import com.tt.honeyDue.storage.TokenManager +import com.tt.honeyDue.storage.ThemeStorageManager import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/data/PersistenceManager.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/data/PersistenceManager.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/data/PersistenceManager.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/data/PersistenceManager.kt index 4d004d5..ebe202c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/data/PersistenceManager.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/data/PersistenceManager.kt @@ -1,4 +1,4 @@ -package com.example.casera.data +package com.tt.honeyDue.data /** * Platform-specific persistence manager for storing app data to disk. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/CaseraShareCodec.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/CaseraShareCodec.kt similarity index 89% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/CaseraShareCodec.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/CaseraShareCodec.kt index 2b1c9b3..61a6995 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/CaseraShareCodec.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/CaseraShareCodec.kt @@ -1,15 +1,15 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json /** - * Shared encoder/decoder for `.casera` payloads across Android and iOS. + * Shared encoder/decoder for `.honeydue` payloads across Android and iOS. * * This keeps package JSON shape in one place while each platform owns * native share-sheet presentation details. */ -object CaseraShareCodec { +object honeyDueShareCodec { private val json = Json { prettyPrint = true ignoreUnknownKeys = true @@ -58,13 +58,13 @@ object CaseraShareCodec { } /** - * Build a filesystem-safe package filename with `.casera` extension. + * Build a filesystem-safe package filename with `.honeydue` extension. */ fun safeShareFileName(displayName: String): String { val safeName = displayName .replace(" ", "_") .replace("/", "-") .take(50) - return "$safeName.casera" + return "$safeName.honeydue" } } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/Contractor.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Contractor.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/Contractor.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Contractor.kt index 69906b9..2faf3cf 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/Contractor.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Contractor.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/CustomTask.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/CustomTask.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/CustomTask.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/CustomTask.kt index 4c7f190..8d58e57 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/CustomTask.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/CustomTask.kt @@ -1,6 +1,6 @@ -package com.example.casera.models +package com.tt.honeyDue.models -import com.example.casera.data.DataManager +import com.tt.honeyDue.data.DataManager import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/Document.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Document.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/Document.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Document.kt index b3c8931..bcb0081 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/Document.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Document.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/ErrorResponse.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/ErrorResponse.kt similarity index 93% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/ErrorResponse.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/ErrorResponse.kt index a924ef8..a1b83c1 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/ErrorResponse.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/ErrorResponse.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/Lookups.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Lookups.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/Lookups.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Lookups.kt index 4d5d4f7..57a1f1b 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/Lookups.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Lookups.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/Notification.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Notification.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/Notification.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Notification.kt index 7cf4373..0b825f3 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/Notification.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Notification.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/Residence.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Residence.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/Residence.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Residence.kt index 02b0777..51eb19d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/Residence.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Residence.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/SharedContractor.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/SharedContractor.kt similarity index 87% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/SharedContractor.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/SharedContractor.kt index 6097fc9..ade8269 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/SharedContractor.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/SharedContractor.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlin.time.Clock import kotlin.time.ExperimentalTime @@ -9,15 +9,15 @@ import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.jsonPrimitive /** - * Package type identifiers for .casera files + * Package type identifiers for .honeydue files */ -object CaseraPackageType { +object honeyDuePackageType { const val CONTRACTOR = "contractor" const val RESIDENCE = "residence" } /** - * Data model for .casera file format used to share contractors between users. + * Data model for .honeydue file format used to share contractors between users. * Contains only the data needed to recreate a contractor, without server-specific IDs. */ @Serializable @@ -26,7 +26,7 @@ data class SharedContractor( val version: Int = 1, /** Package type discriminator */ - val type: String = CaseraPackageType.CONTRACTOR, + val type: String = honeyDuePackageType.CONTRACTOR, val name: String, val company: String? = null, @@ -61,7 +61,7 @@ data class SharedContractor( ) /** - * Data model for .casera file format used to share residences between users. + * Data model for .honeydue file format used to share residences between users. * Contains the share code needed to join the residence. */ @Serializable @@ -70,7 +70,7 @@ data class SharedResidence( val version: Int = 1, /** Package type discriminator */ - val type: String = CaseraPackageType.RESIDENCE, + val type: String = honeyDuePackageType.RESIDENCE, /** The share code for joining the residence */ @SerialName("share_code") @@ -98,14 +98,14 @@ data class SharedResidence( ) /** - * Detect the type of a .casera package from its JSON content. + * Detect the type of a .honeydue package from its JSON content. * Returns null if the type cannot be determined. */ -fun detectCaseraPackageType(jsonContent: String): String? { +fun detecthoneyDuePackageType(jsonContent: String): String? { return try { val json = Json { ignoreUnknownKeys = true } val jsonObject = json.decodeFromString(jsonContent) - jsonObject["type"]?.jsonPrimitive?.content ?: CaseraPackageType.CONTRACTOR // Default for backward compatibility + jsonObject["type"]?.jsonPrimitive?.content ?: honeyDuePackageType.CONTRACTOR // Default for backward compatibility } catch (e: Exception) { null } @@ -118,7 +118,7 @@ fun detectCaseraPackageType(jsonContent: String): String? { fun Contractor.toSharedContractor(exportedBy: String? = null): SharedContractor { return SharedContractor( version = 1, - type = CaseraPackageType.CONTRACTOR, + type = honeyDuePackageType.CONTRACTOR, name = name, company = company, phone = phone, diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/Subscription.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Subscription.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/Subscription.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Subscription.kt index 4a8bc40..f27e72d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/Subscription.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/Subscription.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/TaskCompletion.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/TaskCompletion.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/TaskCompletion.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/TaskCompletion.kt index 2827cf0..11dc59a 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/TaskCompletion.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/TaskCompletion.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/TaskTemplate.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/TaskTemplate.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/TaskTemplate.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/TaskTemplate.kt index 763036d..4508b5e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/TaskTemplate.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/TaskTemplate.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/models/User.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/User.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/models/User.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/User.kt index 759f91c..17d64f3 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/models/User.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/models/User.kt @@ -1,4 +1,4 @@ -package com.example.casera.models +package com.tt.honeyDue.models import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/navigation/Routes.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/navigation/Routes.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/navigation/Routes.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/navigation/Routes.kt index 1d29cc0..668e366 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/navigation/Routes.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/navigation/Routes.kt @@ -1,4 +1,4 @@ -package com.example.casera.navigation +package com.tt.honeyDue.navigation import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/APILayer.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/APILayer.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/APILayer.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/APILayer.kt index 45b558c..35efaab 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/APILayer.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/APILayer.kt @@ -1,8 +1,8 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.data.DataManager -import com.example.casera.models.* -import com.example.casera.network.* +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.* import kotlinx.coroutines.sync.Mutex /** diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/ApiClient.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiClient.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/ApiClient.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiClient.kt index 27b1d21..fbed3d7 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/ApiClient.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiClient.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network import io.ktor.client.* import io.ktor.client.plugins.contentnegotiation.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/ApiConfig.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiConfig.kt similarity index 90% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/ApiConfig.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiConfig.kt index c190066..d8a3a77 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/ApiConfig.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiConfig.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network /** * API Environment Configuration @@ -22,7 +22,7 @@ object ApiConfig { fun getBaseUrl(): String { return when (CURRENT_ENV) { Environment.LOCAL -> "http://${getLocalhostAddress()}:8000/api" - Environment.DEV -> "https://casera.treytartt.com/api" + Environment.DEV -> "https://honeyDue.treytartt.com/api" } } @@ -32,7 +32,7 @@ object ApiConfig { fun getMediaBaseUrl(): String { return when (CURRENT_ENV) { Environment.LOCAL -> "http://${getLocalhostAddress()}:8000" - Environment.DEV -> "https://casera.treytartt.com" + Environment.DEV -> "https://honeyDue.treytartt.com" } } @@ -42,7 +42,7 @@ object ApiConfig { fun getEnvironmentName(): String { return when (CURRENT_ENV) { Environment.LOCAL -> "Local (${getLocalhostAddress()}:8000)" - Environment.DEV -> "Dev Server (casera.treytartt.com)" + Environment.DEV -> "Dev Server (honeyDue.treytartt.com)" } } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/ApiResult.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiResult.kt similarity index 88% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/ApiResult.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiResult.kt index 972b3f8..b657680 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/ApiResult.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ApiResult.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network sealed class ApiResult { data class Success(val data: T) : ApiResult() diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/AuthApi.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/AuthApi.kt index f8af231..4614d4a 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/AuthApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/AuthApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/ContractorApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ContractorApi.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/ContractorApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ContractorApi.kt index 1875722..df41af4 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/ContractorApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ContractorApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/DocumentApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/DocumentApi.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/DocumentApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/DocumentApi.kt index 9ec5095..d67afcb 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/DocumentApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/DocumentApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/ErrorParser.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ErrorParser.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/ErrorParser.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ErrorParser.kt index 95587ca..68ef9b5 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/ErrorParser.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ErrorParser.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.ErrorResponse +import com.tt.honeyDue.models.ErrorResponse import io.ktor.client.call.body import io.ktor.client.statement.HttpResponse import kotlinx.serialization.json.Json diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/LookupsApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/LookupsApi.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/LookupsApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/LookupsApi.kt index 5039583..9a22877 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/LookupsApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/LookupsApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/NotificationApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/NotificationApi.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/NotificationApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/NotificationApi.kt index f2dc862..9925c5e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/NotificationApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/NotificationApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/ResidenceApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ResidenceApi.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/ResidenceApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ResidenceApi.kt index 5bb2bb3..d0261e4 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/ResidenceApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/ResidenceApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/SubscriptionApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/SubscriptionApi.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/SubscriptionApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/SubscriptionApi.kt index 79fce5f..1c230c6 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/SubscriptionApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/SubscriptionApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/TaskApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskApi.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/TaskApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskApi.kt index 92e9832..93a5a6e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/TaskApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/TaskCompletionApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskCompletionApi.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/TaskCompletionApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskCompletionApi.kt index 58bc395..a6a972f 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/TaskCompletionApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskCompletionApi.kt @@ -1,6 +1,6 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.* +import com.tt.honeyDue.models.* import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/network/TaskTemplateApi.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskTemplateApi.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/network/TaskTemplateApi.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskTemplateApi.kt index 38209c2..1d4daf5 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/network/TaskTemplateApi.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/network/TaskTemplateApi.kt @@ -1,7 +1,7 @@ -package com.example.casera.network +package com.tt.honeyDue.network -import com.example.casera.models.TaskTemplate -import com.example.casera.models.TaskTemplatesGroupedResponse +import com.tt.honeyDue.models.TaskTemplate +import com.tt.honeyDue.models.TaskTemplatesGroupedResponse import io.ktor.client.* import io.ktor.client.call.* import io.ktor.client.request.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ContractorImportHandler.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.kt similarity index 88% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/ContractorImportHandler.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.kt index e4dbd21..69fa10e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ContractorImportHandler.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor /** * Platform-specific composable that handles contractor import flow. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ContractorSharing.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.kt similarity index 72% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/ContractorSharing.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.kt index 9b80d92..d19d998 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ContractorSharing.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.kt @@ -1,11 +1,11 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor /** * Returns a function that can be called to share a contractor. - * The returned function will open the native share sheet with a .casera file. + * The returned function will open the native share sheet with a .honeydue file. */ @Composable expect fun rememberShareContractor(): (Contractor) -> Unit diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/HapticFeedback.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/HapticFeedback.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.kt index 291423d..56e43a3 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/HapticFeedback.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ImageBitmap.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.kt similarity index 88% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/ImageBitmap.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.kt index 21f61c4..35d718d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ImageBitmap.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.ImageBitmap diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ImagePicker.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ImagePicker.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/ImagePicker.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ImagePicker.kt index 4f4c41b..7928b88 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ImagePicker.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ImagePicker.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.kt similarity index 92% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.kt index 3cce837..34c5b62 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ResidenceImportHandler.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.kt similarity index 87% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/ResidenceImportHandler.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.kt index f2e7eaa..4049488 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ResidenceImportHandler.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.JoinResidenceResponse +import com.tt.honeyDue.models.JoinResidenceResponse /** * Platform-specific composable that handles residence import flow. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ResidenceSharing.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.kt similarity index 80% rename from composeApp/src/commonMain/kotlin/com/example/casera/platform/ResidenceSharing.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.kt index c60c978..90e7b61 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/platform/ResidenceSharing.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Residence +import com.tt.honeyDue.models.Residence /** * State holder for residence sharing operation. @@ -15,7 +15,7 @@ data class ResidenceSharingState( * Returns a pair of state and a function to share a residence. * The function will: * 1. Call the backend to generate a share code - * 2. Create a .casera file with the share package + * 2. Create a .honeydue file with the share package * 3. Open the native share sheet * * @return Pair of (state, shareFunction) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/repository/LookupsRepository.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/repository/LookupsRepository.kt similarity index 89% rename from composeApp/src/commonMain/kotlin/com/example/casera/repository/LookupsRepository.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/repository/LookupsRepository.kt index 65cfb10..aa5745e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/repository/LookupsRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/repository/LookupsRepository.kt @@ -1,9 +1,9 @@ -package com.example.casera.repository +package com.tt.honeyDue.repository -import com.example.casera.data.DataManager -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.StateFlow diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TaskCacheManager.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/storage/TaskCacheManager.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.kt index 6047db6..b7f494e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TaskCacheManager.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage /** * Platform-specific task cache manager interface for persistent storage. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TaskCacheStorage.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/storage/TaskCacheStorage.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.kt index 4da859b..633b9ba 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TaskCacheStorage.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.kt @@ -1,6 +1,6 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage -import com.example.casera.models.CustomTask +import com.tt.honeyDue.models.CustomTask import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import kotlinx.serialization.decodeFromString diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/storage/ThemeStorage.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/ThemeStorage.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/storage/ThemeStorage.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/ThemeStorage.kt index 5ebd994..26c7e55 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/storage/ThemeStorage.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/ThemeStorage.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage /** * Cross-platform theme storage for persisting theme selection. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TokenManager.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TokenManager.kt similarity index 89% rename from composeApp/src/commonMain/kotlin/com/example/casera/storage/TokenManager.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TokenManager.kt index 09e917a..13491fa 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TokenManager.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TokenManager.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage /** * Platform-specific token manager interface for persistent storage. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TokenStorage.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TokenStorage.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/storage/TokenStorage.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TokenStorage.kt index b77c2e1..c229845 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/storage/TokenStorage.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/storage/TokenStorage.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage /** * Token storage that provides a unified interface for accessing platform-specific diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddContractorDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddContractorDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddContractorDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddContractorDialog.kt index 075bde6..204ca80 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddContractorDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddContractorDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -13,16 +13,16 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import casera.composeapp.generated.resources.* -import com.example.casera.viewmodel.ContractorViewModel -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.models.ContractorCreateRequest -import com.example.casera.models.ContractorUpdateRequest -import com.example.casera.models.Residence -import com.example.casera.network.ApiResult -import com.example.casera.repository.LookupsRepository -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.viewmodel.ContractorViewModel +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.models.ContractorCreateRequest +import com.tt.honeyDue.models.ContractorUpdateRequest +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddNewTaskDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddNewTaskDialog.kt similarity index 78% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddNewTaskDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddNewTaskDialog.kt index 4a6327e..e384c41 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddNewTaskDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddNewTaskDialog.kt @@ -1,7 +1,7 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.runtime.Composable -import com.example.casera.models.TaskCreateRequest +import com.tt.honeyDue.models.TaskCreateRequest @Composable fun AddNewTaskDialog( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddNewTaskWithResidenceDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddNewTaskWithResidenceDialog.kt similarity index 77% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddNewTaskWithResidenceDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddNewTaskWithResidenceDialog.kt index 6d243a0..e0f26a6 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddNewTaskWithResidenceDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddNewTaskWithResidenceDialog.kt @@ -1,8 +1,8 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.runtime.Composable -import com.example.casera.models.MyResidencesResponse -import com.example.casera.models.TaskCreateRequest +import com.tt.honeyDue.models.MyResidencesResponse +import com.tt.honeyDue.models.TaskCreateRequest @Composable fun AddNewTaskWithResidenceDialog( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddTaskDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddTaskDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddTaskDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddTaskDialog.kt index bb51454..32b8368 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AddTaskDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AddTaskDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -14,17 +14,17 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp -import com.example.casera.data.DataManager -import com.example.casera.models.TaskTemplate -import com.example.casera.repository.LookupsRepository -import com.example.casera.models.MyResidencesResponse -import com.example.casera.models.TaskCategory -import com.example.casera.models.TaskCreateRequest -import com.example.casera.models.TaskFrequency -import com.example.casera.models.TaskPriority -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.TaskTemplate +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.models.MyResidencesResponse +import com.tt.honeyDue.models.TaskCategory +import com.tt.honeyDue.models.TaskCreateRequest +import com.tt.honeyDue.models.TaskFrequency +import com.tt.honeyDue.models.TaskPriority +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ApiResultHandler.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ApiResultHandler.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ApiResultHandler.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ApiResultHandler.kt index bfd31e1..962ee27 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ApiResultHandler.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ApiResultHandler.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize @@ -6,7 +6,7 @@ import androidx.compose.material3.CircularProgressIndicator import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import com.example.casera.network.ApiResult +import com.tt.honeyDue.network.ApiResult /** * Handles ApiResult states automatically with loading, error dialogs, and success content. @@ -127,7 +127,7 @@ fun ApiResult.HandleErrors( LaunchedEffect(this) { if (this@HandleErrors is ApiResult.Error) { - errorMessage = com.example.casera.util.ErrorMessageParser.parse((this@HandleErrors as ApiResult.Error).message) + errorMessage = com.tt.honeyDue.util.ErrorMessageParser.parse((this@HandleErrors as ApiResult.Error).message) showErrorDialog = true } } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AuthenticatedImage.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AuthenticatedImage.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AuthenticatedImage.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AuthenticatedImage.kt index 708f254..f047851 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/AuthenticatedImage.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/AuthenticatedImage.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -16,8 +16,8 @@ import coil3.compose.LocalPlatformContext import coil3.request.ImageRequest import coil3.network.NetworkHeaders import coil3.network.httpHeaders -import com.example.casera.network.ApiClient -import com.example.casera.storage.TokenStorage +import com.tt.honeyDue.network.ApiClient +import com.tt.honeyDue.storage.TokenStorage /** * A Compose component that loads images from authenticated API endpoints. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/CompleteTaskDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/CompleteTaskDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/CompleteTaskDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/CompleteTaskDialog.kt index 4090c43..4c8703d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/CompleteTaskDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/CompleteTaskDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.tween @@ -29,16 +29,16 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import casera.composeapp.generated.resources.* -import com.example.casera.viewmodel.ContractorViewModel -import com.example.casera.models.TaskCompletionCreateRequest -import com.example.casera.network.ApiResult -import com.example.casera.platform.ImageData -import com.example.casera.platform.rememberImagePicker -import com.example.casera.platform.rememberCameraPicker -import com.example.casera.platform.HapticFeedbackType -import com.example.casera.platform.rememberHapticFeedback -import com.example.casera.platform.rememberImageBitmap +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.viewmodel.ContractorViewModel +import com.tt.honeyDue.models.TaskCompletionCreateRequest +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.platform.ImageData +import com.tt.honeyDue.platform.rememberImagePicker +import com.tt.honeyDue.platform.rememberCameraPicker +import com.tt.honeyDue.platform.HapticFeedbackType +import com.tt.honeyDue.platform.rememberHapticFeedback +import com.tt.honeyDue.platform.rememberImageBitmap import kotlinx.datetime.* import org.jetbrains.compose.resources.stringResource diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ContractorImportDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ContractorImportDialog.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ContractorImportDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ContractorImportDialog.kt index 8883824..f5e71df 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ContractorImportDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ContractorImportDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -26,12 +26,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import casera.composeapp.generated.resources.* -import com.example.casera.models.SharedContractor +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.models.SharedContractor import org.jetbrains.compose.resources.stringResource /** - * Dialog shown when a user attempts to import a contractor from a .casera file. + * Dialog shown when a user attempts to import a contractor from a .honeydue file. * Shows contractor details and asks for confirmation. */ @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ErrorDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ErrorDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ErrorDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ErrorDialog.kt index d21766e..5cced02 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ErrorDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ErrorDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/JoinResidenceDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/JoinResidenceDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/JoinResidenceDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/JoinResidenceDialog.kt index a6895ea..93b2a1f 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/JoinResidenceDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/JoinResidenceDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -9,8 +9,8 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.launch @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ManageUsersDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ManageUsersDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ManageUsersDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ManageUsersDialog.kt index 7720745..48f7bfb 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ManageUsersDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ManageUsersDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn @@ -20,10 +20,10 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.example.casera.models.ResidenceUser -import com.example.casera.models.ResidenceShareCode -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.models.ResidenceUser +import com.tt.honeyDue.models.ResidenceShareCode +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.launch @Composable @@ -132,7 +132,7 @@ fun ManageUsersDialog( } Text( - text = "Send a .casera file via Messages, Email, or share. They just tap to join.", + text = "Send a .honeydue file via Messages, Email, or share. They just tap to join.", style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.onSurfaceVariant, modifier = Modifier.padding(top = 8.dp) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/PhotoViewerScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/PhotoViewerScreen.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/PhotoViewerScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/PhotoViewerScreen.kt index cda7877..15eb292 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/PhotoViewerScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/PhotoViewerScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.animation.core.animateFloatAsState import androidx.compose.foundation.ExperimentalFoundationApi @@ -26,7 +26,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import coil3.compose.AsyncImage -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.AppSpacing /** * Full-screen photo viewer with swipeable gallery. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ResidenceImportDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ResidenceImportDialog.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ResidenceImportDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ResidenceImportDialog.kt index c84c0b9..9a6fd41 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/ResidenceImportDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/ResidenceImportDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -23,12 +23,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import casera.composeapp.generated.resources.* -import com.example.casera.models.SharedResidence +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.models.SharedResidence import org.jetbrains.compose.resources.stringResource /** - * Dialog shown when a user attempts to join a residence from a .casera file. + * Dialog shown when a user attempts to join a residence from a .honeydue file. * Shows residence details and asks for confirmation. */ @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskSuggestionDropdown.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/TaskSuggestionDropdown.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskSuggestionDropdown.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/TaskSuggestionDropdown.kt index 2c47936..6b75395 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskSuggestionDropdown.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/TaskSuggestionDropdown.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically @@ -18,7 +18,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.example.casera.models.TaskTemplate +import com.tt.honeyDue.models.TaskTemplate /** * Dropdown showing filtered task suggestions based on user input. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskTemplatesBrowserSheet.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/TaskTemplatesBrowserSheet.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskTemplatesBrowserSheet.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/TaskTemplatesBrowserSheet.kt index a489a92..af4b507 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/TaskTemplatesBrowserSheet.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/TaskTemplatesBrowserSheet.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components +package com.tt.honeyDue.ui.components import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -13,10 +13,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import casera.composeapp.generated.resources.* -import com.example.casera.data.DataManager -import com.example.casera.models.TaskTemplate -import com.example.casera.models.TaskTemplateCategoryGroup +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.TaskTemplate +import com.tt.honeyDue.models.TaskTemplateCategoryGroup import org.jetbrains.compose.resources.stringResource /** diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/AuthHeader.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/AuthHeader.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/AuthHeader.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/AuthHeader.kt index dceed21..5c53d6c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/AuthHeader.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/AuthHeader.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.foundation.layout.* import androidx.compose.material3.* @@ -53,7 +53,7 @@ fun AuthHeaderPreview() { Surface { AuthHeader( icon = Icons.Default.Home, - title = "myCrib", + title = "honeyDue", subtitle = "Manage your properties with ease", modifier = Modifier.padding(32.dp) ) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.kt similarity index 88% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.kt index 9e8733d..bd9f719 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.runtime.Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/RequirementItem.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/RequirementItem.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/RequirementItem.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/RequirementItem.kt index 132f801..930ba0c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/auth/RequirementItem.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/auth/RequirementItem.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/CompactCard.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/CompactCard.kt similarity index 91% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/CompactCard.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/CompactCard.kt index 59cae7e..506b241 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/CompactCard.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/CompactCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.common +package com.tt.honeyDue.ui.components.common import androidx.compose.foundation.layout.* import androidx.compose.material3.Card @@ -9,9 +9,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing -import com.example.casera.ui.theme.backgroundSecondary +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.backgroundSecondary /** * CompactCard - Smaller card with reduced padding diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/ErrorCard.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/ErrorCard.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/ErrorCard.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/ErrorCard.kt index 86c6590..fb51a18 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/ErrorCard.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/ErrorCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.common +package com.tt.honeyDue.ui.components.common import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/InfoCard.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/InfoCard.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/InfoCard.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/InfoCard.kt index fc8fd30..4beb304 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/InfoCard.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/InfoCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.common +package com.tt.honeyDue.ui.components.common import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StandardCard.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StandardCard.kt similarity index 91% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StandardCard.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StandardCard.kt index 7963ad7..6d0b7dc 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StandardCard.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StandardCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.common +package com.tt.honeyDue.ui.components.common import androidx.compose.foundation.layout.* import androidx.compose.material3.Card @@ -9,9 +9,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing -import com.example.casera.ui.theme.backgroundSecondary +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.backgroundSecondary /** * StandardCard - Consistent card component matching iOS design diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StandardEmptyState.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StandardEmptyState.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StandardEmptyState.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StandardEmptyState.kt index 15123c4..764256d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StandardEmptyState.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StandardEmptyState.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.common +package com.tt.honeyDue.ui.components.common import androidx.compose.foundation.layout.* import androidx.compose.material3.* @@ -8,7 +8,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.AppSpacing /** * StandardEmptyState - Consistent empty state component diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StatItem.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StatItem.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StatItem.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StatItem.kt index 7869166..86d7149 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/common/StatItem.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/common/StatItem.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.common +package com.tt.honeyDue.ui.components.common import androidx.compose.foundation.layout.* import androidx.compose.material3.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/dialogs/ThemePickerDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/dialogs/ThemePickerDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/dialogs/ThemePickerDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/dialogs/ThemePickerDialog.kt index b7181e8..dbdcddd 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/dialogs/ThemePickerDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/dialogs/ThemePickerDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.dialogs +package com.tt.honeyDue.ui.components.dialogs import androidx.compose.foundation.background import androidx.compose.foundation.border @@ -20,9 +20,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog -import com.example.casera.ui.theme.* -import com.example.casera.platform.HapticFeedbackType -import com.example.casera.platform.rememberHapticFeedback +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.platform.HapticFeedbackType +import com.tt.honeyDue.platform.rememberHapticFeedback /** * ThemePickerDialog - Shows all available themes in a grid diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentCard.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentCard.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentCard.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentCard.kt index 13012b4..949a3b2 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentCard.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.documents +package com.tt.honeyDue.ui.components.documents import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -14,9 +14,9 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import com.example.casera.models.Document -import com.example.casera.models.DocumentCategory -import com.example.casera.models.DocumentType +import com.tt.honeyDue.models.Document +import com.tt.honeyDue.models.DocumentCategory +import com.tt.honeyDue.models.DocumentType @Composable fun DocumentCard(document: Document, isWarrantyCard: Boolean = false, onClick: () -> Unit) { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentStates.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentStates.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentStates.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentStates.kt index 1ef65fd..080d834 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentStates.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentStates.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.documents +package com.tt.honeyDue.ui.components.documents import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentsTabContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentsTabContent.kt similarity index 93% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentsTabContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentsTabContent.kt index 98cab07..9a3dfd4 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/documents/DocumentsTabContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/documents/DocumentsTabContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.documents +package com.tt.honeyDue.ui.components.documents import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn @@ -13,10 +13,10 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp -import com.example.casera.models.Document -import com.example.casera.network.ApiResult -import com.example.casera.ui.subscription.UpgradeFeatureScreen -import com.example.casera.utils.SubscriptionHelper +import com.tt.honeyDue.models.Document +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.subscription.UpgradeFeatureScreen +import com.tt.honeyDue.utils.SubscriptionHelper @OptIn(ExperimentalMaterial3Api::class) @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/forms/FormSection.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/forms/FormSection.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/forms/FormSection.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/forms/FormSection.kt index a522705..2e89a2e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/forms/FormSection.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/forms/FormSection.kt @@ -1,11 +1,11 @@ -package com.example.casera.ui.components.forms +package com.tt.honeyDue.ui.components.forms import androidx.compose.foundation.layout.* import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.AppSpacing /** * FormSection - Groups related form fields with optional header/footer diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/forms/FormTextField.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/forms/FormTextField.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/forms/FormTextField.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/forms/FormTextField.kt index ac74347..75c7d0f 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/forms/FormTextField.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/forms/FormTextField.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.forms +package com.tt.honeyDue.ui.components.forms import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions @@ -9,7 +9,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.AppSpacing /** * FormTextField - Standardized text field for forms diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/DetailRow.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/DetailRow.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/DetailRow.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/DetailRow.kt index 6ac589a..235e1fd 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/DetailRow.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/DetailRow.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.residence +package com.tt.honeyDue.ui.components.residence import androidx.compose.foundation.layout.* import androidx.compose.material3.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/PropertyDetailItem.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/PropertyDetailItem.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/PropertyDetailItem.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/PropertyDetailItem.kt index 0ba3462..1a4124e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/PropertyDetailItem.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/PropertyDetailItem.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.residence +package com.tt.honeyDue.ui.components.residence import androidx.compose.foundation.layout.* import androidx.compose.material3.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/TaskStatChip.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/TaskStatChip.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/TaskStatChip.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/TaskStatChip.kt index 55077ff..fe31b02 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/residence/TaskStatChip.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/residence/TaskStatChip.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.residence +package com.tt.honeyDue.ui.components.residence import androidx.compose.foundation.layout.* import androidx.compose.material3.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/CompletionHistorySheet.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/CompletionHistorySheet.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/CompletionHistorySheet.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/CompletionHistorySheet.kt index 8b32cd3..4aa3aa8 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/CompletionHistorySheet.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/CompletionHistorySheet.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn @@ -12,11 +12,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.example.casera.models.TaskCompletionResponse -import com.example.casera.models.TaskCompletion -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.util.DateUtils +import com.tt.honeyDue.models.TaskCompletionResponse +import com.tt.honeyDue.models.TaskCompletion +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.util.DateUtils import kotlinx.coroutines.launch /** diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/PhotoViewerDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/PhotoViewerDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/PhotoViewerDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/PhotoViewerDialog.kt index ad01dbd..b556f43 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/PhotoViewerDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/PhotoViewerDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -23,9 +23,9 @@ import coil3.compose.AsyncImage import coil3.compose.AsyncImagePainter import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImageContent -import com.example.casera.models.TaskCompletionImage -import com.example.casera.network.ApiClient -import com.example.casera.ui.components.AuthenticatedImage +import com.tt.honeyDue.models.TaskCompletionImage +import com.tt.honeyDue.network.ApiClient +import com.tt.honeyDue.ui.components.AuthenticatedImage @Composable fun PhotoViewerDialog( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/SimpleTaskListItem.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/SimpleTaskListItem.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/SimpleTaskListItem.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/SimpleTaskListItem.kt index 088c79a..241b2fc 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/SimpleTaskListItem.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/SimpleTaskListItem.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape @@ -7,7 +7,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.example.casera.util.DateUtils +import com.tt.honeyDue.util.DateUtils import org.jetbrains.compose.ui.tooling.preview.Preview @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskActionButtons.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskActionButtons.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskActionButtons.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskActionButtons.kt index 5b837ce..8bdb060 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskActionButtons.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskActionButtons.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -8,8 +8,8 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import casera.composeapp.generated.resources.* -import com.example.casera.viewmodel.TaskViewModel +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.viewmodel.TaskViewModel import org.jetbrains.compose.resources.stringResource // MARK: - Edit Task Button diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskCard.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskCard.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskCard.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskCard.kt index 8709c66..3e6bb04 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskCard.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskCard.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -14,13 +14,13 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import casera.composeapp.generated.resources.* -import com.example.casera.models.TaskDetail -import com.example.casera.models.TaskCategory -import com.example.casera.models.TaskPriority -import com.example.casera.models.TaskFrequency -import com.example.casera.models.TaskCompletion -import com.example.casera.util.DateUtils +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.models.TaskDetail +import com.tt.honeyDue.models.TaskCategory +import com.tt.honeyDue.models.TaskPriority +import com.tt.honeyDue.models.TaskFrequency +import com.tt.honeyDue.models.TaskCompletion +import com.tt.honeyDue.util.DateUtils import org.jetbrains.compose.resources.stringResource import org.jetbrains.compose.ui.tooling.preview.Preview diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskKanbanView.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskKanbanView.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskKanbanView.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskKanbanView.kt index 5bbf2b8..6521712 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskKanbanView.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskKanbanView.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background @@ -19,8 +19,8 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp -import com.example.casera.models.TaskColumn -import com.example.casera.models.TaskDetail +import com.tt.honeyDue.models.TaskColumn +import com.tt.honeyDue.models.TaskDetail @OptIn(ExperimentalFoundationApi::class) @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskPill.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskPill.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskPill.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskPill.kt index 6d02dee..14586d4 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/components/task/TaskPill.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/components/task/TaskPill.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.task +package com.tt.honeyDue.ui.components.task import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Row diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AddDocumentScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AddDocumentScreen.kt similarity index 83% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AddDocumentScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AddDocumentScreen.kt index c4132a6..521241c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AddDocumentScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AddDocumentScreen.kt @@ -1,9 +1,9 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.runtime.Composable import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.viewmodel.DocumentViewModel -import com.example.casera.viewmodel.ResidenceViewModel +import com.tt.honeyDue.viewmodel.DocumentViewModel +import com.tt.honeyDue.viewmodel.ResidenceViewModel @Composable fun AddDocumentScreen( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AddResidenceScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AddResidenceScreen.kt similarity index 83% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AddResidenceScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AddResidenceScreen.kt index 67717df..27d5e70 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AddResidenceScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AddResidenceScreen.kt @@ -1,8 +1,8 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.runtime.Composable import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.viewmodel.ResidenceViewModel +import com.tt.honeyDue.viewmodel.ResidenceViewModel @Composable fun AddResidenceScreen( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AllTasksScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AllTasksScreen.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AllTasksScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AllTasksScreen.kt index 9565523..b3d99e7 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/AllTasksScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/AllTasksScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -12,18 +12,18 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.AddNewTaskWithResidenceDialog -import com.example.casera.ui.components.ApiResultHandler -import com.example.casera.ui.components.CompleteTaskDialog -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.task.TaskCard -import com.example.casera.ui.components.task.DynamicTaskKanbanView -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.viewmodel.TaskCompletionViewModel -import com.example.casera.viewmodel.TaskViewModel -import com.example.casera.models.TaskDetail -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* +import com.tt.honeyDue.ui.components.AddNewTaskWithResidenceDialog +import com.tt.honeyDue.ui.components.ApiResultHandler +import com.tt.honeyDue.ui.components.CompleteTaskDialog +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.task.TaskCard +import com.tt.honeyDue.ui.components.task.DynamicTaskKanbanView +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.viewmodel.TaskCompletionViewModel +import com.tt.honeyDue.viewmodel.TaskViewModel +import com.tt.honeyDue.models.TaskDetail +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -295,7 +295,7 @@ fun AllTasksScreen( }, isLoading = createTaskState is ApiResult.Loading, errorMessage = if (createTaskState is ApiResult.Error) { - com.example.casera.util.ErrorMessageParser.parse((createTaskState as ApiResult.Error).message) + com.tt.honeyDue.util.ErrorMessageParser.parse((createTaskState as ApiResult.Error).message) } else null ) } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/CompleteTaskScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/CompleteTaskScreen.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/CompleteTaskScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/CompleteTaskScreen.kt index 0014f33..ff9516b 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/CompleteTaskScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/CompleteTaskScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.tween @@ -24,13 +24,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import casera.composeapp.generated.resources.* -import com.example.casera.models.TaskCompletionCreateRequest -import com.example.casera.models.ContractorSummary -import com.example.casera.network.ApiResult -import com.example.casera.platform.* -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.ContractorViewModel +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.models.TaskCompletionCreateRequest +import com.tt.honeyDue.models.ContractorSummary +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.platform.* +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.ContractorViewModel import org.jetbrains.compose.resources.stringResource private const val MAX_IMAGES = 5 diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ContractorDetailScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ContractorDetailScreen.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ContractorDetailScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ContractorDetailScreen.kt index 8c9997a..aa89fe6 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ContractorDetailScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ContractorDetailScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -17,18 +17,18 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.data.DataManager -import com.example.casera.ui.components.AddContractorDialog -import com.example.casera.ui.components.ApiResultHandler -import com.example.casera.ui.components.HandleErrors -import com.example.casera.util.DateUtils -import com.example.casera.viewmodel.ContractorViewModel -import com.example.casera.network.ApiResult -import com.example.casera.platform.rememberShareContractor -import com.example.casera.utils.SubscriptionHelper -import com.example.casera.ui.subscription.UpgradePromptDialog -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.components.AddContractorDialog +import com.tt.honeyDue.ui.components.ApiResultHandler +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.util.DateUtils +import com.tt.honeyDue.viewmodel.ContractorViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.platform.rememberShareContractor +import com.tt.honeyDue.utils.SubscriptionHelper +import com.tt.honeyDue.ui.subscription.UpgradePromptDialog +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ContractorsScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ContractorsScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ContractorsScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ContractorsScreen.kt index 1ee906b..76ad259 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ContractorsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ContractorsScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -15,19 +15,19 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.AddContractorDialog -import com.example.casera.ui.components.ApiResultHandler -import com.example.casera.ui.components.HandleErrors -import com.example.casera.viewmodel.ContractorViewModel -import com.example.casera.models.ContractorSummary -import com.example.casera.network.ApiResult -import com.example.casera.repository.LookupsRepository -import com.example.casera.ui.subscription.UpgradeFeatureScreen -import com.example.casera.utils.SubscriptionHelper -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.AddContractorDialog +import com.tt.honeyDue.ui.components.ApiResultHandler +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.viewmodel.ContractorViewModel +import com.tt.honeyDue.models.ContractorSummary +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.ui.subscription.UpgradeFeatureScreen +import com.tt.honeyDue.utils.SubscriptionHelper +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentDetailScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentDetailScreen.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentDetailScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentDetailScreen.kt index 872523c..f7dc950 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentDetailScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentDetailScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -16,17 +16,17 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.ApiResultHandler -import com.example.casera.ui.components.HandleErrors -import com.example.casera.viewmodel.DocumentViewModel -import com.example.casera.models.* -import com.example.casera.network.ApiResult +import com.tt.honeyDue.ui.components.ApiResultHandler +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.viewmodel.DocumentViewModel +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult import androidx.compose.foundation.Image import coil3.compose.AsyncImage import coil3.compose.rememberAsyncImagePainter import androidx.compose.ui.window.Dialog -import com.example.casera.ui.components.documents.ErrorState -import com.example.casera.ui.components.documents.formatFileSize +import com.tt.honeyDue.ui.components.documents.ErrorState +import com.tt.honeyDue.ui.components.documents.formatFileSize import androidx.compose.ui.window.DialogProperties import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid @@ -34,10 +34,10 @@ import androidx.compose.foundation.lazy.grid.items import coil3.compose.SubcomposeAsyncImage import coil3.compose.SubcomposeAsyncImageContent import coil3.compose.AsyncImagePainter -import com.example.casera.ui.components.AuthenticatedImage -import com.example.casera.util.DateUtils -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.AuthenticatedImage +import com.tt.honeyDue.util.DateUtils +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentFormScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentFormScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentFormScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentFormScreen.kt index 2a874f3..42046b2 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentFormScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentFormScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.border import androidx.compose.foundation.layout.* @@ -18,18 +18,18 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import coil3.compose.AsyncImage -import com.example.casera.ui.components.AuthenticatedImage -import com.example.casera.viewmodel.DocumentViewModel -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.platform.ImageData -import com.example.casera.platform.rememberImagePicker -import com.example.casera.platform.rememberCameraPicker -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.AuthenticatedImage +import com.tt.honeyDue.viewmodel.DocumentViewModel +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.platform.ImageData +import com.tt.honeyDue.platform.rememberImagePicker +import com.tt.honeyDue.platform.rememberCameraPicker +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -265,7 +265,7 @@ fun DocumentFormScreen( } is ApiResult.Error -> { Text( - stringResource(Res.string.documents_form_failed_to_load_residences, com.example.casera.util.ErrorMessageParser.parse((residencesState as ApiResult.Error).message)), + stringResource(Res.string.documents_form_failed_to_load_residences, com.tt.honeyDue.util.ErrorMessageParser.parse((residencesState as ApiResult.Error).message)), color = MaterialTheme.colorScheme.error ) } @@ -620,7 +620,7 @@ fun DocumentFormScreen( showBlob = false ) { Text( - com.example.casera.util.ErrorMessageParser.parse((operationState as ApiResult.Error).message), + com.tt.honeyDue.util.ErrorMessageParser.parse((operationState as ApiResult.Error).message), modifier = Modifier.padding(12.dp), color = MaterialTheme.colorScheme.error ) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentsScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentsScreen.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentsScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentsScreen.kt index 4c04ced..1a2fec8 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentsScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/DocumentsScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -11,15 +11,15 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.documents.DocumentsTabContent -import com.example.casera.ui.subscription.UpgradeFeatureScreen -import com.example.casera.utils.SubscriptionHelper -import com.example.casera.viewmodel.DocumentViewModel -import com.example.casera.models.* -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.documents.DocumentsTabContent +import com.tt.honeyDue.ui.subscription.UpgradeFeatureScreen +import com.tt.honeyDue.utils.SubscriptionHelper +import com.tt.honeyDue.viewmodel.DocumentViewModel +import com.tt.honeyDue.models.* +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource enum class DocumentTab { @@ -41,7 +41,7 @@ fun DocumentsScreen( // Check if screen should be blocked (limit=0) val isBlocked = SubscriptionHelper.isDocumentsBlocked() // Get current count for checking when adding - val currentCount = (documentsState as? com.example.casera.network.ApiResult.Success)?.data?.size ?: 0 + val currentCount = (documentsState as? com.tt.honeyDue.network.ApiResult.Success)?.data?.size ?: 0 var selectedCategory by remember { mutableStateOf(null) } var selectedDocType by remember { mutableStateOf(null) } @@ -58,7 +58,7 @@ fun DocumentsScreen( // Client-side filtering - no API calls on filter changes val filteredDocuments = remember(documentsState, selectedTab, selectedCategory, selectedDocType, showActiveOnly) { - val allDocuments = (documentsState as? com.example.casera.network.ApiResult.Success)?.data ?: emptyList() + val allDocuments = (documentsState as? com.tt.honeyDue.network.ApiResult.Success)?.data ?: emptyList() allDocuments.filter { document -> val matchesTab = if (selectedTab == DocumentTab.WARRANTIES) { document.documentType == "warranty" diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditDocumentScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditDocumentScreen.kt similarity index 85% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditDocumentScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditDocumentScreen.kt index 5f8bbac..560f134 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditDocumentScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditDocumentScreen.kt @@ -1,8 +1,8 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.runtime.Composable import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.viewmodel.DocumentViewModel +import com.tt.honeyDue.viewmodel.DocumentViewModel @Composable fun EditDocumentScreen( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditResidenceScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditResidenceScreen.kt similarity index 78% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditResidenceScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditResidenceScreen.kt index b248389..c7b1c90 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditResidenceScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditResidenceScreen.kt @@ -1,9 +1,9 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.runtime.Composable import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.models.Residence +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.models.Residence @Composable fun EditResidenceScreen( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditTaskScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditTaskScreen.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditTaskScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditTaskScreen.kt index 8691e8c..31c8b9c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/EditTaskScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/EditTaskScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -12,13 +12,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.repository.LookupsRepository -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -293,7 +293,7 @@ fun EditTaskScreen( // Error message if (updateTaskState is ApiResult.Error) { Text( - text = com.example.casera.util.ErrorMessageParser.parse((updateTaskState as ApiResult.Error).message), + text = com.tt.honeyDue.util.ErrorMessageParser.parse((updateTaskState as ApiResult.Error).message), color = MaterialTheme.colorScheme.error, style = MaterialTheme.typography.bodySmall ) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ForgotPasswordScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ForgotPasswordScreen.kt similarity index 91% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ForgotPasswordScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ForgotPasswordScreen.kt index dacacd7..651c1fb 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ForgotPasswordScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ForgotPasswordScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -11,13 +11,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.auth.AuthHeader -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.viewmodel.PasswordResetViewModel -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.auth.AuthHeader +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.viewmodel.PasswordResetViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -44,14 +44,14 @@ fun ForgotPasswordScreen( // Handle automatic navigation to next step LaunchedEffect(currentStep) { when (currentStep) { - com.example.casera.viewmodel.PasswordResetStep.VERIFY_CODE -> onNavigateToVerify() - com.example.casera.viewmodel.PasswordResetStep.RESET_PASSWORD -> onNavigateToReset() + com.tt.honeyDue.viewmodel.PasswordResetStep.VERIFY_CODE -> onNavigateToVerify() + com.tt.honeyDue.viewmodel.PasswordResetStep.RESET_PASSWORD -> onNavigateToReset() else -> {} } } val errorMessage = when (forgotPasswordState) { - is ApiResult.Error -> com.example.casera.util.ErrorMessageParser.parse((forgotPasswordState as ApiResult.Error).message) + is ApiResult.Error -> com.tt.honeyDue.util.ErrorMessageParser.parse((forgotPasswordState as ApiResult.Error).message) else -> "" } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/HomeScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/HomeScreen.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/HomeScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/HomeScreen.kt index 9f9fe41..545000e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/HomeScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/HomeScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -11,13 +11,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.viewmodel.TaskViewModel -import com.example.casera.network.ApiResult -import com.example.casera.data.DataManager -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.viewmodel.TaskViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.data.DataManager +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/LoginScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/LoginScreen.kt similarity index 91% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/LoginScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/LoginScreen.kt index 2f84880..97f9156 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/LoginScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/LoginScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -21,21 +21,21 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.auth.AuthHeader -import com.example.casera.ui.components.auth.GoogleSignInButton -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.viewmodel.AuthViewModel -import com.example.casera.network.ApiResult -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.auth.AuthHeader +import com.tt.honeyDue.ui.components.auth.GoogleSignInButton +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.viewmodel.AuthViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @Composable fun LoginScreen( - onLoginSuccess: (com.example.casera.models.User) -> Unit, + onLoginSuccess: (com.tt.honeyDue.models.User) -> Unit, onNavigateToRegister: () -> Unit, onNavigateToForgotPassword: () -> Unit = {}, viewModel: AuthViewModel = viewModel { AuthViewModel() } @@ -79,7 +79,7 @@ fun LoginScreen( onLoginSuccess(response.user) } is ApiResult.Error -> { - googleSignInError = com.example.casera.util.ErrorMessageParser.parse((googleSignInState as ApiResult.Error).message) + googleSignInError = com.tt.honeyDue.util.ErrorMessageParser.parse((googleSignInState as ApiResult.Error).message) viewModel.resetGoogleSignInState() } else -> {} @@ -87,7 +87,7 @@ fun LoginScreen( } val errorMessage = when { - loginState is ApiResult.Error -> com.example.casera.util.ErrorMessageParser.parse((loginState as ApiResult.Error).message) + loginState is ApiResult.Error -> com.tt.honeyDue.util.ErrorMessageParser.parse((loginState as ApiResult.Error).message) googleSignInError != null -> googleSignInError ?: "" else -> "" } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/MainScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/MainScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/MainScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/MainScreen.kt index cc3a360..328b078 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/MainScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/MainScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -11,14 +11,14 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import androidx.navigation.toRoute -import com.example.casera.navigation.* -import com.example.casera.repository.LookupsRepository -import com.example.casera.models.Residence -import com.example.casera.models.TaskDetail -import com.example.casera.platform.PlatformUpgradeScreen -import com.example.casera.storage.TokenStorage -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.navigation.* +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.models.TaskDetail +import com.tt.honeyDue.platform.PlatformUpgradeScreen +import com.tt.honeyDue.storage.TokenStorage +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import kotlinx.serialization.json.Json import org.jetbrains.compose.resources.stringResource @@ -28,7 +28,7 @@ fun MainScreen( onResidenceClick: (Int) -> Unit, onAddResidence: () -> Unit, onNavigateToEditResidence: (Residence) -> Unit, - onNavigateToEditTask: (com.example.casera.models.TaskDetail) -> Unit, + onNavigateToEditTask: (com.tt.honeyDue.models.TaskDetail) -> Unit, onAddTask: () -> Unit, navigateToTaskId: Int? = null, onClearNavigateToTask: () -> Unit = {} diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ManageUsersScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ManageUsersScreen.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ManageUsersScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ManageUsersScreen.kt index 6ef8ff4..c69559e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ManageUsersScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ManageUsersScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn @@ -15,12 +15,12 @@ import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import casera.composeapp.generated.resources.* -import com.example.casera.models.ResidenceUser -import com.example.casera.models.ResidenceShareCode -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.ui.theme.* +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.models.ResidenceUser +import com.tt.honeyDue.models.ResidenceShareCode +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.ui.theme.* import kotlinx.coroutines.launch import org.jetbrains.compose.resources.stringResource diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/NotificationPreferencesScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/NotificationPreferencesScreen.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/NotificationPreferencesScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/NotificationPreferencesScreen.kt index 215e28d..a3a3b3e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/NotificationPreferencesScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/NotificationPreferencesScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -13,13 +13,13 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import com.example.casera.util.DateUtils -import com.example.casera.viewmodel.NotificationPreferencesViewModel -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.util.DateUtils +import com.tt.honeyDue.viewmodel.NotificationPreferencesViewModel +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ProfileScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ProfileScreen.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ProfileScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ProfileScreen.kt index 1f8f353..b3fc686 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ProfileScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ProfileScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -16,23 +16,23 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.ui.components.dialogs.ThemePickerDialog -import com.example.casera.utils.SubscriptionHelper -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing -import com.example.casera.ui.theme.ThemeManager -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.AuthViewModel -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.data.DataManager -import com.example.casera.ui.subscription.UpgradePromptDialog +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.ui.components.dialogs.ThemePickerDialog +import com.tt.honeyDue.utils.SubscriptionHelper +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing +import com.tt.honeyDue.ui.theme.ThemeManager +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.AuthViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.subscription.UpgradePromptDialog import androidx.compose.runtime.getValue -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -101,7 +101,7 @@ fun ProfileScreen( errorMessage = "" } is ApiResult.Error -> { - errorMessage = com.example.casera.util.ErrorMessageParser.parse((updateState as ApiResult.Error).message) + errorMessage = com.tt.honeyDue.util.ErrorMessageParser.parse((updateState as ApiResult.Error).message) isLoading = false successMessage = "" } @@ -291,7 +291,7 @@ fun ProfileScreen( modifier = Modifier .fillMaxWidth() .clickable { - uriHandler.openUri("mailto:caseraSupport@treymail.com?subject=Casera%20Support%20Request") + uriHandler.openUri("mailto:honeydueSupport@treymail.com?subject=honeyDue%20Support%20Request") } .naturalShadow() ) { @@ -329,7 +329,7 @@ fun ProfileScreen( modifier = Modifier .fillMaxWidth() .clickable { - uriHandler.openUri("https://mycrib.treytartt.com/privacy") + uriHandler.openUri("https://honeyDue.treytartt.com/privacy") } .naturalShadow() ) { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/RegisterScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/RegisterScreen.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/RegisterScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/RegisterScreen.kt index e9b87e3..ec70365 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/RegisterScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/RegisterScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -14,15 +14,15 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.auth.AuthHeader -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.AuthViewModel -import com.example.casera.network.ApiResult -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.auth.AuthHeader +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.AuthViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResetPasswordScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResetPasswordScreen.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResetPasswordScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResetPasswordScreen.kt index 83ba150..8d1cd71 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResetPasswordScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResetPasswordScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -12,14 +12,14 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.auth.AuthHeader -import com.example.casera.ui.components.auth.RequirementItem -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.viewmodel.PasswordResetViewModel -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.auth.AuthHeader +import com.tt.honeyDue.ui.components.auth.RequirementItem +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.viewmodel.PasswordResetViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -45,13 +45,13 @@ fun ResetPasswordScreen( ) val errorMessage = when (resetPasswordState) { - is ApiResult.Error -> com.example.casera.util.ErrorMessageParser.parse((resetPasswordState as ApiResult.Error).message) + is ApiResult.Error -> com.tt.honeyDue.util.ErrorMessageParser.parse((resetPasswordState as ApiResult.Error).message) else -> "" } val isLoading = resetPasswordState is ApiResult.Loading - val isLoggingIn = currentStep == com.example.casera.viewmodel.PasswordResetStep.LOGGING_IN - val isSuccess = currentStep == com.example.casera.viewmodel.PasswordResetStep.SUCCESS + val isLoggingIn = currentStep == com.tt.honeyDue.viewmodel.PasswordResetStep.LOGGING_IN + val isSuccess = currentStep == com.tt.honeyDue.viewmodel.PasswordResetStep.SUCCESS // Password validation val hasLetter = newPassword.any { it.isLetter() } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidenceDetailScreen.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidenceDetailScreen.kt index ae3671d..a19af4b 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidenceDetailScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -14,32 +14,32 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.AddNewTaskDialog -import com.example.casera.ui.components.ApiResultHandler -import com.example.casera.ui.components.CompleteTaskDialog -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.ManageUsersDialog -import com.example.casera.ui.components.common.InfoCard -import com.example.casera.ui.components.residence.PropertyDetailItem -import com.example.casera.ui.components.residence.DetailRow -import com.example.casera.ui.components.task.TaskCard -import com.example.casera.ui.components.task.DynamicTaskKanbanView -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.viewmodel.TaskCompletionViewModel -import com.example.casera.viewmodel.TaskViewModel -import com.example.casera.models.Residence -import com.example.casera.models.TaskDetail -import com.example.casera.models.ContractorSummary -import com.example.casera.network.ApiResult -import com.example.casera.utils.SubscriptionHelper -import com.example.casera.ui.subscription.UpgradePromptDialog -import com.example.casera.data.DataManager -import com.example.casera.util.DateUtils -import com.example.casera.platform.rememberShareResidence -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.AddNewTaskDialog +import com.tt.honeyDue.ui.components.ApiResultHandler +import com.tt.honeyDue.ui.components.CompleteTaskDialog +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.ManageUsersDialog +import com.tt.honeyDue.ui.components.common.InfoCard +import com.tt.honeyDue.ui.components.residence.PropertyDetailItem +import com.tt.honeyDue.ui.components.residence.DetailRow +import com.tt.honeyDue.ui.components.task.TaskCard +import com.tt.honeyDue.ui.components.task.DynamicTaskKanbanView +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.viewmodel.TaskCompletionViewModel +import com.tt.honeyDue.viewmodel.TaskViewModel +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.models.TaskDetail +import com.tt.honeyDue.models.ContractorSummary +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.utils.SubscriptionHelper +import com.tt.honeyDue.ui.subscription.UpgradePromptDialog +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.util.DateUtils +import com.tt.honeyDue.platform.rememberShareResidence +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -858,7 +858,7 @@ fun ResidenceDetailScreen( showBlob = false ) { Text( - text = "Error loading tasks: ${com.example.casera.util.ErrorMessageParser.parse((tasksState as ApiResult.Error).message)}", + text = "Error loading tasks: ${com.tt.honeyDue.util.ErrorMessageParser.parse((tasksState as ApiResult.Error).message)}", color = MaterialTheme.colorScheme.error, modifier = Modifier.padding(OrganicSpacing.cozy) ) @@ -1000,7 +1000,7 @@ fun ResidenceDetailScreen( showBlob = false ) { Text( - text = "Error loading contractors: ${com.example.casera.util.ErrorMessageParser.parse((contractorsState as ApiResult.Error).message)}", + text = "Error loading contractors: ${com.tt.honeyDue.util.ErrorMessageParser.parse((contractorsState as ApiResult.Error).message)}", color = MaterialTheme.colorScheme.error, modifier = Modifier.padding(OrganicSpacing.cozy) ) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceFormScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidenceFormScreen.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceFormScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidenceFormScreen.kt index d4f712f..c4fc117 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceFormScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidenceFormScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -14,19 +14,19 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.repository.LookupsRepository -import com.example.casera.data.DataManager -import com.example.casera.models.Residence -import com.example.casera.models.ResidenceCreateRequest -import com.example.casera.models.ResidenceType -import com.example.casera.models.ResidenceUser -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.repository.LookupsRepository +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.models.ResidenceCreateRequest +import com.tt.honeyDue.models.ResidenceType +import com.tt.honeyDue.models.ResidenceUser +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import kotlinx.coroutines.launch import org.jetbrains.compose.resources.stringResource @@ -394,7 +394,7 @@ fun ResidenceFormScreen( // Error message if (operationState is ApiResult.Error) { Text( - text = com.example.casera.util.ErrorMessageParser.parse((operationState as ApiResult.Error).message), + text = com.tt.honeyDue.util.ErrorMessageParser.parse((operationState as ApiResult.Error).message), color = MaterialTheme.colorScheme.error, style = MaterialTheme.typography.bodySmall ) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidencesScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidencesScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidencesScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidencesScreen.kt index 5271e74..4514009 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidencesScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/ResidencesScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.animation.core.* import androidx.compose.foundation.background @@ -24,20 +24,20 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.ApiResultHandler -import com.example.casera.ui.components.JoinResidenceDialog -import com.example.casera.ui.components.common.StatItem -import com.example.casera.ui.components.residence.TaskStatChip -import com.example.casera.viewmodel.ResidenceViewModel -import com.example.casera.viewmodel.TaskViewModel -import com.example.casera.network.ApiResult -import com.example.casera.utils.SubscriptionHelper -import com.example.casera.ui.subscription.UpgradePromptDialog -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.data.DataManager -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.ApiResultHandler +import com.tt.honeyDue.ui.components.JoinResidenceDialog +import com.tt.honeyDue.ui.components.common.StatItem +import com.tt.honeyDue.ui.components.residence.TaskStatChip +import com.tt.honeyDue.viewmodel.ResidenceViewModel +import com.tt.honeyDue.viewmodel.TaskViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.utils.SubscriptionHelper +import com.tt.honeyDue.ui.subscription.UpgradePromptDialog +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/TasksScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/TasksScreen.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/TasksScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/TasksScreen.kt index b1581a8..14e1c56 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/TasksScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/TasksScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* @@ -11,19 +11,19 @@ import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.CompleteTaskDialog -import com.example.casera.ui.components.ErrorDialog -import com.example.casera.ui.components.task.TaskCard -import com.example.casera.ui.components.task.TaskPill -import com.example.casera.ui.utils.getIconFromName -import com.example.casera.ui.utils.hexToColor -import com.example.casera.viewmodel.TaskCompletionViewModel -import com.example.casera.viewmodel.TaskViewModel -import com.example.casera.network.ApiResult -import com.example.casera.analytics.PostHogAnalytics -import com.example.casera.analytics.AnalyticsEvents -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.CompleteTaskDialog +import com.tt.honeyDue.ui.components.ErrorDialog +import com.tt.honeyDue.ui.components.task.TaskCard +import com.tt.honeyDue.ui.components.task.TaskPill +import com.tt.honeyDue.ui.utils.getIconFromName +import com.tt.honeyDue.ui.utils.hexToColor +import com.tt.honeyDue.viewmodel.TaskCompletionViewModel +import com.tt.honeyDue.viewmodel.TaskViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.analytics.PostHogAnalytics +import com.tt.honeyDue.analytics.AnalyticsEvents +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -38,14 +38,14 @@ fun TasksScreen( val completionState by taskCompletionViewModel.createCompletionState.collectAsState() var expandedColumns by remember { mutableStateOf(setOf()) } var showCompleteDialog by remember { mutableStateOf(false) } - var selectedTask by remember { mutableStateOf(null) } + var selectedTask by remember { mutableStateOf(null) } var showErrorDialog by remember { mutableStateOf(false) } var errorMessage by remember { mutableStateOf("") } // Show error dialog when tasks fail to load LaunchedEffect(tasksState) { if (tasksState is ApiResult.Error) { - errorMessage = com.example.casera.util.ErrorMessageParser.parse((tasksState as ApiResult.Error).message) + errorMessage = com.tt.honeyDue.util.ErrorMessageParser.parse((tasksState as ApiResult.Error).message) showErrorDialog = true } } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/VerifyEmailScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/VerifyEmailScreen.kt similarity index 93% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/VerifyEmailScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/VerifyEmailScreen.kt index ac5d312..e3d0b45 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/VerifyEmailScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/VerifyEmailScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -15,13 +15,13 @@ import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.auth.AuthHeader -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.viewmodel.AuthViewModel -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.auth.AuthHeader +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.viewmodel.AuthViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -50,7 +50,7 @@ fun VerifyEmailScreen( onVerifySuccess() } is ApiResult.Error -> { - errorMessage = com.example.casera.util.ErrorMessageParser.parse((verifyState as ApiResult.Error).message) + errorMessage = com.tt.honeyDue.util.ErrorMessageParser.parse((verifyState as ApiResult.Error).message) isLoading = false } is ApiResult.Loading -> { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/VerifyResetCodeScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/VerifyResetCodeScreen.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/VerifyResetCodeScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/VerifyResetCodeScreen.kt index 3030094..1f0cbc8 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/VerifyResetCodeScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/VerifyResetCodeScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens +package com.tt.honeyDue.ui.screens import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardOptions @@ -12,13 +12,13 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.components.HandleErrors -import com.example.casera.ui.components.auth.AuthHeader -import com.example.casera.ui.components.common.ErrorCard -import com.example.casera.viewmodel.PasswordResetViewModel -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.components.HandleErrors +import com.tt.honeyDue.ui.components.auth.AuthHeader +import com.tt.honeyDue.ui.components.common.ErrorCard +import com.tt.honeyDue.viewmodel.PasswordResetViewModel +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @OptIn(ExperimentalMaterial3Api::class) @@ -41,13 +41,13 @@ fun VerifyResetCodeScreen( // Handle automatic navigation to next step LaunchedEffect(currentStep) { - if (currentStep == com.example.casera.viewmodel.PasswordResetStep.RESET_PASSWORD) { + if (currentStep == com.tt.honeyDue.viewmodel.PasswordResetStep.RESET_PASSWORD) { onNavigateToReset() } } val errorMessage = when (verifyCodeState) { - is ApiResult.Error -> com.example.casera.util.ErrorMessageParser.parse((verifyCodeState as ApiResult.Error).message) + is ApiResult.Error -> com.tt.honeyDue.util.ErrorMessageParser.parse((verifyCodeState as ApiResult.Error).message) else -> "" } diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingCreateAccountContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingCreateAccountContent.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingCreateAccountContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingCreateAccountContent.kt index 0e08a46..420166c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingCreateAccountContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingCreateAccountContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.expandVertically @@ -19,10 +19,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingViewModel -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingFirstTaskContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingFirstTaskContent.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingFirstTaskContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingFirstTaskContent.kt index 1e4ca9a..14cac0d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingFirstTaskContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingFirstTaskContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.animation.* import androidx.compose.foundation.background @@ -21,13 +21,13 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.data.DataManager -import com.example.casera.models.TaskCreateRequest -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingViewModel -import casera.composeapp.generated.resources.* -import com.example.casera.util.DateUtils +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.TaskCreateRequest +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.util.DateUtils import org.jetbrains.compose.resources.stringResource import kotlin.random.Random diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingJoinResidenceContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingJoinResidenceContent.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingJoinResidenceContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingJoinResidenceContent.kt index d4997bd..433a5fb 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingJoinResidenceContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingJoinResidenceContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape @@ -13,10 +13,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingViewModel -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingLocationContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingLocationContent.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingLocationContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingLocationContent.kt index a2a9427..b460fd0 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingLocationContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingLocationContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape @@ -14,9 +14,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingViewModel -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource /** diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingNameResidenceContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingNameResidenceContent.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingNameResidenceContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingNameResidenceContent.kt index b59e714..76fe087 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingNameResidenceContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingNameResidenceContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape @@ -12,9 +12,9 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingViewModel -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingScreen.kt index d1aec9e..3870327 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.animation.* import androidx.compose.foundation.background @@ -14,10 +14,10 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingStep -import com.example.casera.viewmodel.OnboardingViewModel -import com.example.casera.viewmodel.OnboardingIntent +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingStep +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import com.tt.honeyDue.viewmodel.OnboardingIntent @OptIn(ExperimentalAnimationApi::class) @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingSubscriptionContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingSubscriptionContent.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingSubscriptionContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingSubscriptionContent.kt index 30ec02a..f350c4b 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingSubscriptionContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingSubscriptionContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.animation.core.* import androidx.compose.foundation.background @@ -23,8 +23,8 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource enum class SubscriptionPlan { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingValuePropsContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingValuePropsContent.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingValuePropsContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingValuePropsContent.kt index d5235ab..6b7fdd3 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingValuePropsContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingValuePropsContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.animation.core.* import androidx.compose.foundation.ExperimentalFoundationApi @@ -21,8 +21,8 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.ui.theme.* -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.theme.* +import honeydue.composeapp.generated.resources.* import kotlinx.coroutines.delay import org.jetbrains.compose.resources.stringResource diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingVerifyEmailContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingVerifyEmailContent.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingVerifyEmailContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingVerifyEmailContent.kt index 2227bd0..08febc6 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingVerifyEmailContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingVerifyEmailContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape @@ -13,10 +13,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.network.ApiResult -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.OnboardingViewModel -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.OnboardingViewModel +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.stringResource @Composable diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingWelcomeContent.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingWelcomeContent.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingWelcomeContent.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingWelcomeContent.kt index 59145ce..236a20c 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/onboarding/OnboardingWelcomeContent.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/screens/onboarding/OnboardingWelcomeContent.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.screens.onboarding +package com.tt.honeyDue.ui.screens.onboarding import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* @@ -14,10 +14,10 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.example.casera.ui.theme.* -import com.example.casera.viewmodel.AuthViewModel -import com.example.casera.network.ApiResult -import casera.composeapp.generated.resources.* +import com.tt.honeyDue.ui.theme.* +import com.tt.honeyDue.viewmodel.AuthViewModel +import com.tt.honeyDue.network.ApiResult +import honeydue.composeapp.generated.resources.* import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/FeatureComparisonDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/FeatureComparisonDialog.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/FeatureComparisonDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/FeatureComparisonDialog.kt index bfbf9b5..e54edd7 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/FeatureComparisonDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/FeatureComparisonDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.subscription +package com.tt.honeyDue.ui.subscription import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -13,9 +13,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog -import com.example.casera.data.DataManager -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing @Composable fun FeatureComparisonDialog( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradeFeatureScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeFeatureScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradeFeatureScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeFeatureScreen.kt index ded2e2d..744b3b2 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradeFeatureScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeFeatureScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.subscription +package com.tt.honeyDue.ui.subscription import androidx.compose.foundation.layout.* import androidx.compose.foundation.rememberScrollState @@ -13,10 +13,10 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import com.example.casera.data.DataManager -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing -import com.example.casera.utils.SubscriptionProducts +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing +import com.tt.honeyDue.utils.SubscriptionProducts /** * Full inline paywall screen for upgrade prompts. @@ -254,7 +254,7 @@ private fun SubscriptionProductsSection( // Monthly Option SubscriptionProductCard( productId = SubscriptionProducts.MONTHLY, - name = "Casera Pro Monthly", + name = "honeyDue Pro Monthly", price = "$2.99/month", description = "Billed monthly", savingsBadge = null, @@ -266,7 +266,7 @@ private fun SubscriptionProductsSection( // Annual Option SubscriptionProductCard( productId = SubscriptionProducts.ANNUAL, - name = "Casera Pro Annual", + name = "honeyDue Pro Annual", price = "$27.99/year", description = "Billed annually", savingsBadge = "Save 22%", diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradePromptDialog.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradePromptDialog.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradePromptDialog.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradePromptDialog.kt index aebe446..d893d44 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradePromptDialog.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradePromptDialog.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.subscription +package com.tt.honeyDue.ui.subscription import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons @@ -11,9 +11,9 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog -import com.example.casera.data.DataManager -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing @Composable fun UpgradePromptDialog( diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradeScreen.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeScreen.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradeScreen.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeScreen.kt index b45bbc7..ed61e1f 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/subscription/UpgradeScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/subscription/UpgradeScreen.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.subscription +package com.tt.honeyDue.ui.subscription import androidx.compose.animation.animateColorAsState import androidx.compose.foundation.background @@ -22,11 +22,11 @@ import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import casera.composeapp.generated.resources.* -import com.example.casera.data.DataManager -import com.example.casera.ui.theme.AppRadius -import com.example.casera.ui.theme.AppSpacing -import com.example.casera.utils.SubscriptionProducts +import honeydue.composeapp.generated.resources.* +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.ui.theme.AppRadius +import com.tt.honeyDue.ui.theme.AppSpacing +import com.tt.honeyDue.utils.SubscriptionProducts import org.jetbrains.compose.resources.stringResource /** @@ -116,7 +116,7 @@ fun UpgradeScreen( ) Text( - text = "Unlock the full potential of Casera", + text = "Unlock the full potential of honeyDue", style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, textAlign = TextAlign.Center diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/OrganicDesign.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/OrganicDesign.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/OrganicDesign.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/OrganicDesign.kt index af73afb..56e4b1d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/OrganicDesign.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/OrganicDesign.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.animation.core.* import androidx.compose.foundation.Canvas diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Shape.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Shape.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Shape.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Shape.kt index afeef50..7c10af7 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Shape.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Shape.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Shapes diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Spacing.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Spacing.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Spacing.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Spacing.kt index 079e5d1..36285d1 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Spacing.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Spacing.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.ui.unit.dp diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Theme.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Theme.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Theme.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Theme.kt index dce902a..de1f5d9 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Theme.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Theme.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.* @@ -84,7 +84,7 @@ fun ThemeColors.toColorScheme(isDark: Boolean): ColorScheme { * Matches iOS multi-theme system */ @Composable -fun MyCribTheme( +fun HoneyDueTheme( darkTheme: Boolean = isSystemInDarkTheme(), themeColors: ThemeColors = AppThemes.Default, // Can be overridden with ThemeManager.currentTheme content: @Composable () -> Unit diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/ThemeColors.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/ThemeColors.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/ThemeColors.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/ThemeColors.kt index 4af2d16..f870d57 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/ThemeColors.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/ThemeColors.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.ui.graphics.Color diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/ThemeManager.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/ThemeManager.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/ThemeManager.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/ThemeManager.kt index fabc2b3..ccb7b99 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/ThemeManager.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/ThemeManager.kt @@ -1,9 +1,9 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue -import com.example.casera.storage.ThemeStorage +import com.tt.honeyDue.storage.ThemeStorage /** * ThemeManager - Singleton for managing app themes diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Type.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Type.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Type.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Type.kt index 014d175..4e7195d 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/theme/Type.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/theme/Type.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.theme +package com.tt.honeyDue.ui.theme import androidx.compose.material3.Typography import androidx.compose.ui.text.TextStyle diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/ui/utils/TaskDisplayUtils.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/utils/TaskDisplayUtils.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/ui/utils/TaskDisplayUtils.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/utils/TaskDisplayUtils.kt index ee47920..916799b 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/ui/utils/TaskDisplayUtils.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/ui/utils/TaskDisplayUtils.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.utils +package com.tt.honeyDue.ui.utils import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.* diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/util/DateUtils.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/DateUtils.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/util/DateUtils.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/DateUtils.kt index 75fe58e..ca1c998 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/util/DateUtils.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/DateUtils.kt @@ -1,4 +1,4 @@ -package com.example.casera.util +package com.tt.honeyDue.util import kotlin.time.Clock import kotlin.time.ExperimentalTime diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/util/ErrorMessageParser.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ErrorMessageParser.kt similarity index 99% rename from composeApp/src/commonMain/kotlin/com/example/casera/util/ErrorMessageParser.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ErrorMessageParser.kt index 7aea3fa..5c61505 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/util/ErrorMessageParser.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ErrorMessageParser.kt @@ -1,4 +1,4 @@ -package com.example.casera.util +package com.tt.honeyDue.util import kotlinx.serialization.json.Json import kotlinx.serialization.json.jsonObject diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/util/ImageCompressor.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ImageCompressor.kt similarity index 83% rename from composeApp/src/commonMain/kotlin/com/example/casera/util/ImageCompressor.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ImageCompressor.kt index adb5227..ffe79dd 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/util/ImageCompressor.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ImageCompressor.kt @@ -1,6 +1,6 @@ -package com.example.casera.util +package com.tt.honeyDue.util -import com.example.casera.platform.ImageData +import com.tt.honeyDue.platform.ImageData /** * Platform-specific image compression diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/util/ImageConfig.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ImageConfig.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/util/ImageConfig.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ImageConfig.kt index 74f3baf..1c38158 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/util/ImageConfig.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/ImageConfig.kt @@ -1,4 +1,4 @@ -package com.example.casera.util +package com.tt.honeyDue.util /** * Configuration for image uploads diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/util/TaskConstants.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/TaskConstants.kt similarity index 92% rename from composeApp/src/commonMain/kotlin/com/example/casera/util/TaskConstants.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/TaskConstants.kt index 6ecab62..7ddabdd 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/util/TaskConstants.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/util/TaskConstants.kt @@ -1,4 +1,4 @@ -package com.example.casera.util +package com.tt.honeyDue.util /** * Constants used throughout the task features. diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/utils/SubscriptionHelper.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/utils/SubscriptionHelper.kt similarity index 98% rename from composeApp/src/commonMain/kotlin/com/example/casera/utils/SubscriptionHelper.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/utils/SubscriptionHelper.kt index 6041955..129a765 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/utils/SubscriptionHelper.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/utils/SubscriptionHelper.kt @@ -1,6 +1,6 @@ -package com.example.casera.utils +package com.tt.honeyDue.utils -import com.example.casera.data.DataManager +import com.tt.honeyDue.data.DataManager /** * Canonical product IDs for in-app subscriptions. @@ -13,8 +13,8 @@ import com.example.casera.data.DataManager * instead of hardcoded strings to ensure consistency. */ object SubscriptionProducts { - const val MONTHLY = "com.example.casera.pro.monthly" - const val ANNUAL = "com.example.casera.pro.annual" + const val MONTHLY = "com.tt.honeyDue.pro.monthly" + const val ANNUAL = "com.tt.honeyDue.pro.annual" /** All product IDs as a list, useful for querying store product details. */ val all: List = listOf(MONTHLY, ANNUAL) diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/AuthViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/AuthViewModel.kt similarity index 89% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/AuthViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/AuthViewModel.kt index a74946c..0b576b7 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/AuthViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/AuthViewModel.kt @@ -1,27 +1,27 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.data.DataManager -import com.example.casera.models.AppleSignInRequest -import com.example.casera.models.AppleSignInResponse -import com.example.casera.models.GoogleSignInRequest -import com.example.casera.models.GoogleSignInResponse -import com.example.casera.models.AuthResponse -import com.example.casera.models.ForgotPasswordRequest -import com.example.casera.models.ForgotPasswordResponse -import com.example.casera.models.LoginRequest -import com.example.casera.models.RegisterRequest -import com.example.casera.models.ResetPasswordRequest -import com.example.casera.models.ResetPasswordResponse -import com.example.casera.models.Residence -import com.example.casera.models.User -import com.example.casera.models.VerifyEmailRequest -import com.example.casera.models.VerifyEmailResponse -import com.example.casera.models.VerifyResetCodeRequest -import com.example.casera.models.VerifyResetCodeResponse -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.AppleSignInRequest +import com.tt.honeyDue.models.AppleSignInResponse +import com.tt.honeyDue.models.GoogleSignInRequest +import com.tt.honeyDue.models.GoogleSignInResponse +import com.tt.honeyDue.models.AuthResponse +import com.tt.honeyDue.models.ForgotPasswordRequest +import com.tt.honeyDue.models.ForgotPasswordResponse +import com.tt.honeyDue.models.LoginRequest +import com.tt.honeyDue.models.RegisterRequest +import com.tt.honeyDue.models.ResetPasswordRequest +import com.tt.honeyDue.models.ResetPasswordResponse +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.models.User +import com.tt.honeyDue.models.VerifyEmailRequest +import com.tt.honeyDue.models.VerifyEmailResponse +import com.tt.honeyDue.models.VerifyResetCodeRequest +import com.tt.honeyDue.models.VerifyResetCodeResponse +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @@ -127,7 +127,7 @@ class AuthViewModel : ViewModel() { } val result = APILayer.updateProfile( token, - com.example.casera.models.UpdateProfileRequest( + com.tt.honeyDue.models.UpdateProfileRequest( firstName = firstName, lastName = lastName, email = email diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/ContractorViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/ContractorViewModel.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/ContractorViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/ContractorViewModel.kt index 2eb51ff..7b3b7c2 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/ContractorViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/ContractorViewModel.kt @@ -1,10 +1,10 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/DocumentViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/DocumentViewModel.kt similarity index 96% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/DocumentViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/DocumentViewModel.kt index 4d74c31..8776fe5 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/DocumentViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/DocumentViewModel.kt @@ -1,11 +1,11 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.util.ImageCompressor +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.util.ImageCompressor import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @@ -110,7 +110,7 @@ class DocumentViewModel : ViewModel() { startDate: String? = null, endDate: String? = null, // Images - images: List = emptyList() + images: List = emptyList() ) { viewModelScope.launch { _createState.value = ApiResult.Loading @@ -191,7 +191,7 @@ class DocumentViewModel : ViewModel() { startDate: String? = null, endDate: String? = null, // Images - images: List = emptyList() + images: List = emptyList() ) { viewModelScope.launch { _updateState.value = ApiResult.Loading @@ -305,7 +305,7 @@ class DocumentViewModel : ViewModel() { fun uploadDocumentImage( documentId: Int, - imageData: com.example.casera.platform.ImageData, + imageData: com.tt.honeyDue.platform.ImageData, caption: String? = null ) { viewModelScope.launch { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/LookupsViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/LookupsViewModel.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/LookupsViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/LookupsViewModel.kt index 3b05a85..fcaa66f 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/LookupsViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/LookupsViewModel.kt @@ -1,11 +1,11 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.data.DataManager -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/NotificationPreferencesViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/NotificationPreferencesViewModel.kt similarity index 92% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/NotificationPreferencesViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/NotificationPreferencesViewModel.kt index 78f7172..00dd4d1 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/NotificationPreferencesViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/NotificationPreferencesViewModel.kt @@ -1,11 +1,11 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.NotificationPreference -import com.example.casera.models.UpdateNotificationPreferencesRequest -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.models.NotificationPreference +import com.tt.honeyDue.models.UpdateNotificationPreferencesRequest +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/OnboardingViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/OnboardingViewModel.kt similarity index 95% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/OnboardingViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/OnboardingViewModel.kt index cf66d3e..28a8ebe 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/OnboardingViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/OnboardingViewModel.kt @@ -1,18 +1,18 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.data.DataManager -import com.example.casera.models.AuthResponse -import com.example.casera.models.LoginRequest -import com.example.casera.models.RegisterRequest -import com.example.casera.models.ResidenceCreateRequest -import com.example.casera.models.TaskCreateRequest -import com.example.casera.models.TaskTemplate -import com.example.casera.models.VerifyEmailRequest -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.repository.LookupsRepository +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.AuthResponse +import com.tt.honeyDue.models.LoginRequest +import com.tt.honeyDue.models.RegisterRequest +import com.tt.honeyDue.models.ResidenceCreateRequest +import com.tt.honeyDue.models.TaskCreateRequest +import com.tt.honeyDue.models.TaskTemplate +import com.tt.honeyDue.models.VerifyEmailRequest +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.repository.LookupsRepository import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/PasswordResetViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/PasswordResetViewModel.kt similarity index 97% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/PasswordResetViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/PasswordResetViewModel.kt index 9b21927..e0f8a7f 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/PasswordResetViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/PasswordResetViewModel.kt @@ -1,10 +1,10 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.* -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.models.* +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/ResidenceViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/ResidenceViewModel.kt similarity index 82% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/ResidenceViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/ResidenceViewModel.kt index 3a780aa..0991226 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/ResidenceViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/ResidenceViewModel.kt @@ -1,15 +1,15 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.Residence -import com.example.casera.models.ResidenceCreateRequest -import com.example.casera.models.TotalSummary -import com.example.casera.models.MyResidencesResponse -import com.example.casera.models.TaskColumnsResponse -import com.example.casera.models.ContractorSummary -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.models.ResidenceCreateRequest +import com.tt.honeyDue.models.TotalSummary +import com.tt.honeyDue.models.MyResidencesResponse +import com.tt.honeyDue.models.TaskColumnsResponse +import com.tt.honeyDue.models.ContractorSummary +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @@ -34,17 +34,17 @@ class ResidenceViewModel : ViewModel() { private val _myResidencesState = MutableStateFlow>(ApiResult.Idle) val myResidencesState: StateFlow> = _myResidencesState - private val _cancelTaskState = MutableStateFlow>(ApiResult.Idle) - val cancelTaskState: StateFlow> = _cancelTaskState + private val _cancelTaskState = MutableStateFlow>(ApiResult.Idle) + val cancelTaskState: StateFlow> = _cancelTaskState - private val _uncancelTaskState = MutableStateFlow>(ApiResult.Idle) - val uncancelTaskState: StateFlow> = _uncancelTaskState + private val _uncancelTaskState = MutableStateFlow>(ApiResult.Idle) + val uncancelTaskState: StateFlow> = _uncancelTaskState - private val _updateTaskState = MutableStateFlow>(ApiResult.Idle) - val updateTaskState: StateFlow> = _updateTaskState + private val _updateTaskState = MutableStateFlow>(ApiResult.Idle) + val updateTaskState: StateFlow> = _updateTaskState - private val _generateReportState = MutableStateFlow>(ApiResult.Idle) - val generateReportState: StateFlow> = _generateReportState + private val _generateReportState = MutableStateFlow>(ApiResult.Idle) + val generateReportState: StateFlow> = _generateReportState private val _deleteResidenceState = MutableStateFlow>(ApiResult.Idle) val deleteResidenceState: StateFlow> = _deleteResidenceState @@ -131,7 +131,7 @@ class ResidenceViewModel : ViewModel() { } } - fun updateTask(taskId: Int, request: com.example.casera.models.TaskCreateRequest) { + fun updateTask(taskId: Int, request: com.tt.honeyDue.models.TaskCreateRequest) { viewModelScope.launch { _updateTaskState.value = ApiResult.Loading _updateTaskState.value = APILayer.updateTask(taskId, request) @@ -172,8 +172,8 @@ class ResidenceViewModel : ViewModel() { _deleteResidenceState.value = ApiResult.Idle } - private val _joinResidenceState = MutableStateFlow>(ApiResult.Idle) - val joinResidenceState: StateFlow> = _joinResidenceState + private val _joinResidenceState = MutableStateFlow>(ApiResult.Idle) + val joinResidenceState: StateFlow> = _joinResidenceState fun joinWithCode(code: String) { viewModelScope.launch { diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/TaskCompletionViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/TaskCompletionViewModel.kt similarity index 86% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/TaskCompletionViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/TaskCompletionViewModel.kt index 3236aa9..d18a228 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/TaskCompletionViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/TaskCompletionViewModel.kt @@ -1,12 +1,12 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.TaskCompletionCreateRequest -import com.example.casera.models.TaskCompletionResponse -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer -import com.example.casera.util.ImageCompressor +import com.tt.honeyDue.models.TaskCompletionCreateRequest +import com.tt.honeyDue.models.TaskCompletionResponse +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.util.ImageCompressor import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch @@ -32,7 +32,7 @@ class TaskCompletionViewModel : ViewModel() { */ fun createTaskCompletionWithImages( request: TaskCompletionCreateRequest, - images: List = emptyList() + images: List = emptyList() ) { viewModelScope.launch { _createCompletionState.value = ApiResult.Loading diff --git a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/TaskViewModel.kt b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/TaskViewModel.kt similarity index 94% rename from composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/TaskViewModel.kt rename to composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/TaskViewModel.kt index 3af331d..03d2d9e 100644 --- a/composeApp/src/commonMain/kotlin/com/example/casera/viewmodel/TaskViewModel.kt +++ b/composeApp/src/commonMain/kotlin/com/tt/honeyDue/viewmodel/TaskViewModel.kt @@ -1,13 +1,13 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.casera.models.TaskColumnsResponse -import com.example.casera.models.CustomTask -import com.example.casera.models.TaskCreateRequest -import com.example.casera.models.TaskCompletionResponse -import com.example.casera.network.ApiResult -import com.example.casera.network.APILayer +import com.tt.honeyDue.models.TaskColumnsResponse +import com.tt.honeyDue.models.CustomTask +import com.tt.honeyDue.models.TaskCreateRequest +import com.tt.honeyDue.models.TaskCompletionResponse +import com.tt.honeyDue.network.ApiResult +import com.tt.honeyDue.network.APILayer import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch diff --git a/composeApp/src/commonTest/kotlin/com/example/casera/ComposeAppCommonTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/ComposeAppCommonTest.kt similarity index 85% rename from composeApp/src/commonTest/kotlin/com/example/casera/ComposeAppCommonTest.kt rename to composeApp/src/commonTest/kotlin/com/tt/honeyDue/ComposeAppCommonTest.kt index b9e8679..beb6d14 100644 --- a/composeApp/src/commonTest/kotlin/com/example/casera/ComposeAppCommonTest.kt +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/ComposeAppCommonTest.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import kotlin.test.Test import kotlin.test.assertEquals diff --git a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/AuthViewModelTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/AuthViewModelTest.kt similarity index 89% rename from composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/AuthViewModelTest.kt rename to composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/AuthViewModelTest.kt index 0a0b82a..14edc43 100644 --- a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/AuthViewModelTest.kt +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/AuthViewModelTest.kt @@ -1,7 +1,7 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel -import com.casera.android.viewmodel.AuthViewModel -import com.casera.shared.network.ApiResult +import com.honeydue.android.viewmodel.AuthViewModel +import com.honeydue.shared.network.ApiResult import kotlin.test.Test import kotlin.test.assertIs diff --git a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/ContractorViewModelTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/ContractorViewModelTest.kt similarity index 90% rename from composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/ContractorViewModelTest.kt rename to composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/ContractorViewModelTest.kt index 19c38aa..2cc4f93 100644 --- a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/ContractorViewModelTest.kt +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/ContractorViewModelTest.kt @@ -1,7 +1,7 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel -import com.casera.android.viewmodel.ContractorViewModel -import com.casera.shared.network.ApiResult +import com.honeydue.android.viewmodel.ContractorViewModel +import com.honeydue.shared.network.ApiResult import kotlin.test.Test import kotlin.test.assertIs diff --git a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/DocumentViewModelTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/DocumentViewModelTest.kt similarity index 90% rename from composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/DocumentViewModelTest.kt rename to composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/DocumentViewModelTest.kt index 6ecffbb..13b5d3b 100644 --- a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/DocumentViewModelTest.kt +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/DocumentViewModelTest.kt @@ -1,7 +1,7 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel -import com.casera.android.viewmodel.DocumentViewModel -import com.casera.shared.network.ApiResult +import com.honeydue.android.viewmodel.DocumentViewModel +import com.honeydue.shared.network.ApiResult import kotlin.test.Test import kotlin.test.assertIs diff --git a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/ResidenceViewModelTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/ResidenceViewModelTest.kt similarity index 91% rename from composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/ResidenceViewModelTest.kt rename to composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/ResidenceViewModelTest.kt index 2530ae7..4a7607e 100644 --- a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/ResidenceViewModelTest.kt +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/ResidenceViewModelTest.kt @@ -1,7 +1,7 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel -import com.casera.android.viewmodel.ResidenceViewModel -import com.casera.shared.network.ApiResult +import com.honeydue.android.viewmodel.ResidenceViewModel +import com.honeydue.shared.network.ApiResult import kotlin.test.Test import kotlin.test.assertIs diff --git a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/TaskViewModelTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/TaskViewModelTest.kt similarity index 84% rename from composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/TaskViewModelTest.kt rename to composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/TaskViewModelTest.kt index a2d2e09..0da66a4 100644 --- a/composeApp/src/commonTest/kotlin/com/example/casera/viewmodel/TaskViewModelTest.kt +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/viewmodel/TaskViewModelTest.kt @@ -1,7 +1,7 @@ -package com.example.casera.viewmodel +package com.tt.honeyDue.viewmodel -import com.casera.android.viewmodel.TaskViewModel -import com.casera.shared.network.ApiResult +import com.honeydue.android.viewmodel.TaskViewModel +import com.honeydue.shared.network.ApiResult import kotlin.test.Test import kotlin.test.assertIs diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/MainViewController.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/MainViewController.kt similarity index 57% rename from composeApp/src/iosMain/kotlin/com/example/casera/MainViewController.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/MainViewController.kt index 632eed1..a95c0ca 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/MainViewController.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/MainViewController.kt @@ -1,13 +1,13 @@ -package com.example.casera +package com.tt.honeyDue import androidx.compose.ui.window.ComposeUIViewController -import com.example.casera.storage.TokenManager -import com.example.casera.storage.TokenStorage -import com.example.casera.storage.TaskCacheManager -import com.example.casera.storage.TaskCacheStorage -import com.example.casera.storage.ThemeStorage -import com.example.casera.storage.ThemeStorageManager -import com.example.casera.ui.theme.ThemeManager +import com.tt.honeyDue.storage.TokenManager +import com.tt.honeyDue.storage.TokenStorage +import com.tt.honeyDue.storage.TaskCacheManager +import com.tt.honeyDue.storage.TaskCacheStorage +import com.tt.honeyDue.storage.ThemeStorage +import com.tt.honeyDue.storage.ThemeStorageManager +import com.tt.honeyDue.ui.theme.ThemeManager fun MainViewController() = ComposeUIViewController { // Initialize TokenStorage with iOS TokenManager diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/Platform.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/Platform.ios.kt similarity index 89% rename from composeApp/src/iosMain/kotlin/com/example/casera/Platform.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/Platform.ios.kt index fa992ec..3129ea0 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/Platform.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/Platform.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import platform.UIKit.UIDevice diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/analytics/PostHogAnalytics.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.ios.kt similarity index 96% rename from composeApp/src/iosMain/kotlin/com/example/casera/analytics/PostHogAnalytics.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.ios.kt index 56a4412..d65c3fe 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/analytics/PostHogAnalytics.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.analytics +package com.tt.honeyDue.analytics /** * iOS implementation of PostHog Analytics. diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/data/PersistenceManager.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/data/PersistenceManager.ios.kt similarity index 97% rename from composeApp/src/iosMain/kotlin/com/example/casera/data/PersistenceManager.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/data/PersistenceManager.ios.kt index b7659a8..861b1ae 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/data/PersistenceManager.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/data/PersistenceManager.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.data +package com.tt.honeyDue.data import platform.Foundation.NSUserDefaults diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/network/ApiClient.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/network/ApiClient.ios.kt similarity index 98% rename from composeApp/src/iosMain/kotlin/com/example/casera/network/ApiClient.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/network/ApiClient.ios.kt index 3b18564..20423b6 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/network/ApiClient.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/network/ApiClient.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network import io.ktor.client.* import io.ktor.client.engine.darwin.* diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ContractorImportHandler.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.ios.kt similarity index 84% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/ContractorImportHandler.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.ios.kt index 1b1a95e..f78576c 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ContractorImportHandler.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.ios.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor /** * iOS implementation is a no-op - import is handled in Swift layer via ContractorSharingManager.swift. diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ContractorSharing.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.ios.kt similarity index 83% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/ContractorSharing.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.ios.kt index 60b357a..38a1f13 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ContractorSharing.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.ios.kt @@ -1,10 +1,10 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.ui.interop.LocalUIViewController -import com.example.casera.data.DataManager -import com.example.casera.models.CaseraShareCodec -import com.example.casera.models.Contractor +import com.tt.honeyDue.data.DataManager +import com.tt.honeyDue.models.honeyDueShareCodec +import com.tt.honeyDue.models.Contractor import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.addressOf import kotlinx.cinterop.usePinned @@ -18,7 +18,7 @@ actual fun rememberShareContractor(): (Contractor) -> Unit { return share@{ contractor: Contractor -> val currentUsername = DataManager.currentUser.value?.username ?: "Unknown" - val jsonContent = CaseraShareCodec.encodeContractorPackage(contractor, currentUsername) + val jsonContent = honeyDueShareCodec.encodeContractorPackage(contractor, currentUsername) val fileUrl = writeShareFile(jsonContent, contractor.name) ?: return@share presentShareSheet(viewController, fileUrl) } @@ -26,7 +26,7 @@ actual fun rememberShareContractor(): (Contractor) -> Unit { @OptIn(ExperimentalForeignApi::class) private fun writeShareFile(jsonContent: String, displayName: String): NSURL? { - val fileName = CaseraShareCodec.safeShareFileName(displayName) + val fileName = honeyDueShareCodec.safeShareFileName(displayName) val filePath = NSTemporaryDirectory().plus(fileName) val bytes = jsonContent.encodeToByteArray() diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/HapticFeedback.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.ios.kt similarity index 94% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/HapticFeedback.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.ios.kt index 775757e..b5bf020 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/HapticFeedback.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ImageBitmap.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.ios.kt similarity index 93% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/ImageBitmap.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.ios.kt index 4fb0d5b..d6b7c8e 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ImageBitmap.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ImagePicker.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ImagePicker.ios.kt similarity index 99% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/ImagePicker.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ImagePicker.ios.kt index 20389c8..77ff4ee 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ImagePicker.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ImagePicker.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.ios.kt similarity index 85% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.ios.kt index 3b989d7..46914cc 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.ios.kt @@ -1,9 +1,9 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope -import com.example.casera.network.APILayer -import com.example.casera.ui.subscription.UpgradeScreen +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.ui.subscription.UpgradeScreen import kotlinx.coroutines.launch /** diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ResidenceImportHandler.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.ios.kt similarity index 83% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/ResidenceImportHandler.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.ios.kt index 6b3b123..12c251a 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ResidenceImportHandler.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.ios.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.JoinResidenceResponse +import com.tt.honeyDue.models.JoinResidenceResponse /** * iOS implementation is a no-op - import is handled in Swift layer via ResidenceSharingManager.swift. diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ResidenceSharing.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.ios.kt similarity index 89% rename from composeApp/src/iosMain/kotlin/com/example/casera/platform/ResidenceSharing.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.ios.kt index 8fa95ac..afd0bbf 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/platform/ResidenceSharing.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -7,10 +7,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.interop.LocalUIViewController -import com.example.casera.models.CaseraShareCodec -import com.example.casera.models.Residence -import com.example.casera.network.APILayer -import com.example.casera.network.ApiResult +import com.tt.honeyDue.models.honeyDueShareCodec +import com.tt.honeyDue.models.Residence +import com.tt.honeyDue.network.APILayer +import com.tt.honeyDue.network.ApiResult import kotlinx.coroutines.launch import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.addressOf @@ -31,7 +31,7 @@ actual fun rememberShareResidence(): Pair when (val result = APILayer.generateSharePackage(residence.id)) { is ApiResult.Success -> { - val jsonContent = CaseraShareCodec.encodeSharedResidence(result.data) + val jsonContent = honeyDueShareCodec.encodeSharedResidence(result.data) val fileUrl = writeShareFile(jsonContent, residence.name) if (fileUrl == null) { state = ResidenceSharingState(isLoading = false, error = "Failed to create share package") @@ -59,7 +59,7 @@ actual fun rememberShareResidence(): Pair @OptIn(ExperimentalForeignApi::class) private fun writeShareFile(jsonContent: String, displayName: String): NSURL? { - val fileName = CaseraShareCodec.safeShareFileName(displayName) + val fileName = honeyDueShareCodec.safeShareFileName(displayName) val filePath = NSTemporaryDirectory().plus(fileName) val bytes = jsonContent.encodeToByteArray() diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TaskCacheManager.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.ios.kt similarity index 98% rename from composeApp/src/iosMain/kotlin/com/example/casera/storage/TaskCacheManager.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.ios.kt index 6adda17..07ed825 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TaskCacheManager.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import platform.Foundation.NSUserDefaults import kotlin.concurrent.Volatile diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TaskCacheStorage.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.ios.kt similarity index 76% rename from composeApp/src/iosMain/kotlin/com/example/casera/storage/TaskCacheStorage.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.ios.kt index 38e279c..a151108 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TaskCacheStorage.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage internal actual fun getPlatformTaskCacheManager(): TaskCacheManager? { return TaskCacheManager.getInstance() diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/storage/ThemeStorageManager.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/ThemeStorageManager.ios.kt similarity index 95% rename from composeApp/src/iosMain/kotlin/com/example/casera/storage/ThemeStorageManager.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/ThemeStorageManager.ios.kt index 1e829ba..8c72025 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/storage/ThemeStorageManager.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/ThemeStorageManager.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import platform.Foundation.NSUserDefaults diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TokenManager.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TokenManager.ios.kt similarity index 98% rename from composeApp/src/iosMain/kotlin/com/example/casera/storage/TokenManager.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TokenManager.ios.kt index 6f271dc..f0711e7 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TokenManager.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TokenManager.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import kotlin.concurrent.Volatile diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TokenStorage.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TokenStorage.ios.kt similarity index 74% rename from composeApp/src/iosMain/kotlin/com/example/casera/storage/TokenStorage.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TokenStorage.ios.kt index a367534..0e4a5a9 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/storage/TokenStorage.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/storage/TokenStorage.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage internal actual fun getPlatformTokenManager(): TokenManager? { return TokenManager.getInstance() diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.ios.kt similarity index 89% rename from composeApp/src/iosMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.ios.kt index ba32013..931702a 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.ios.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.runtime.Composable diff --git a/composeApp/src/iosMain/kotlin/com/example/casera/util/ImageCompressor.ios.kt b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/util/ImageCompressor.ios.kt similarity index 96% rename from composeApp/src/iosMain/kotlin/com/example/casera/util/ImageCompressor.ios.kt rename to composeApp/src/iosMain/kotlin/com/tt/honeyDue/util/ImageCompressor.ios.kt index c9bf621..86c220e 100644 --- a/composeApp/src/iosMain/kotlin/com/example/casera/util/ImageCompressor.ios.kt +++ b/composeApp/src/iosMain/kotlin/com/tt/honeyDue/util/ImageCompressor.ios.kt @@ -1,6 +1,6 @@ -package com.example.casera.util +package com.tt.honeyDue.util -import com.example.casera.platform.ImageData +import com.tt.honeyDue.platform.ImageData import kotlinx.cinterop.* import platform.Foundation.* import platform.UIKit.* diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/Platform.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/Platform.js.kt index 1b005d4..1cf4046 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/Platform.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/Platform.js.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue class JsPlatform: Platform { override val name: String = "Web with Kotlin/JS" diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.js.kt index 5ba1698..03e564a 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.js.kt @@ -1,4 +1,4 @@ -package com.example.casera.analytics +package com.tt.honeyDue.analytics /** * JS/Web implementation of PostHog Analytics. diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/network/ApiClient.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/network/ApiClient.js.kt index 1e1504a..849b5e2 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/network/ApiClient.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/network/ApiClient.js.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network import io.ktor.client.* import io.ktor.client.engine.js.* diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorImportHandler.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorImportHandler.js.kt index e3c4ecb..24c27c1 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorImportHandler.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorImportHandler.js.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor @Composable actual fun ContractorImportHandler( diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorSharing.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorSharing.js.kt index fa22445..29b201b 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorSharing.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ContractorSharing.js.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor @Composable actual fun rememberShareContractor(): (Contractor) -> Unit { diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/HapticFeedback.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/HapticFeedback.js.kt index 60e1b05..236fa3e 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/HapticFeedback.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/HapticFeedback.js.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImageBitmap.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImageBitmap.js.kt index 4fb0d5b..d6b7c8e 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImageBitmap.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImageBitmap.js.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImagePicker.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImagePicker.js.kt index 443f98e..01c873c 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImagePicker.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ImagePicker.js.kt @@ -1,4 +1,4 @@ -package com.casera.platform +package com.honeydue.platform import androidx.compose.runtime.Composable diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.js.kt index d58c8b0..5d60ff0 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.js.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.ui.subscription.UpgradeScreen +import com.tt.honeyDue.ui.subscription.UpgradeScreen @Composable actual fun PlatformUpgradeScreen( diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.js.kt index d47f7eb..0bbe139 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.js.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.JoinResidenceResponse +import com.tt.honeyDue.models.JoinResidenceResponse /** * JS implementation is a no-op - file imports are not supported on web. diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceSharing.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceSharing.js.kt index bccc31f..f58d173 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceSharing.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/platform/ResidenceSharing.js.kt @@ -1,8 +1,8 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import com.example.casera.models.Residence +import com.tt.honeyDue.models.Residence /** * JS implementation is a no-op - sharing is not supported on web. diff --git a/composeApp/src/jsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.js.kt b/composeApp/src/jsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.js.kt index a46bf5e..d1f1910 100644 --- a/composeApp/src/jsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.js.kt +++ b/composeApp/src/jsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.js.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.runtime.Composable diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/Platform.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/Platform.jvm.kt similarity index 85% rename from composeApp/src/jvmMain/kotlin/com/example/casera/Platform.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/Platform.jvm.kt index 464d3d9..6c62028 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/Platform.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/Platform.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue class JVMPlatform: Platform { override val name: String = "Java ${System.getProperty("java.version")}" diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/analytics/PostHogAnalytics.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.jvm.kt similarity index 94% rename from composeApp/src/jvmMain/kotlin/com/example/casera/analytics/PostHogAnalytics.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.jvm.kt index 36b3144..dcc0924 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/analytics/PostHogAnalytics.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.analytics +package com.tt.honeyDue.analytics /** * JVM/Desktop implementation of PostHog Analytics. diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/data/PersistenceManager.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/data/PersistenceManager.jvm.kt similarity index 93% rename from composeApp/src/jvmMain/kotlin/com/example/casera/data/PersistenceManager.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/data/PersistenceManager.jvm.kt index 37e2306..5caedeb 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/data/PersistenceManager.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/data/PersistenceManager.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.data +package com.tt.honeyDue.data import java.io.File import java.util.Properties @@ -12,7 +12,7 @@ actual class PersistenceManager { init { val userHome = System.getProperty("user.home") - val appDir = File(userHome, ".casera") + val appDir = File(userHome, ".honeydue") if (!appDir.exists()) { appDir.mkdirs() } @@ -32,7 +32,7 @@ actual class PersistenceManager { private fun saveProperties() { try { - storageFile.outputStream().use { properties.store(it, "Casera Data Manager") } + storageFile.outputStream().use { properties.store(it, "honeyDue Data Manager") } } catch (e: Exception) { // Ignore save errors } diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/main.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/main.kt similarity index 66% rename from composeApp/src/jvmMain/kotlin/com/example/casera/main.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/main.kt index 69be761..04a87f0 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/main.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/main.kt @@ -1,11 +1,11 @@ -package com.example.casera +package com.tt.honeyDue import androidx.compose.ui.window.Window import androidx.compose.ui.window.application -import com.casera.storage.TokenManager -import com.casera.storage.TokenStorage -import com.casera.storage.TaskCacheManager -import com.casera.storage.TaskCacheStorage +import com.honeydue.storage.TokenManager +import com.honeydue.storage.TokenStorage +import com.honeydue.storage.TaskCacheManager +import com.honeydue.storage.TaskCacheStorage fun main() = application { // Initialize TokenStorage with JVM TokenManager @@ -16,7 +16,7 @@ fun main() = application { Window( onCloseRequest = ::exitApplication, - title = "MyCrib", + title = "honeyDue", ) { App() } diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/network/ApiClient.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/network/ApiClient.jvm.kt similarity index 96% rename from composeApp/src/jvmMain/kotlin/com/example/casera/network/ApiClient.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/network/ApiClient.jvm.kt index eb5513c..a5b4680 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/network/ApiClient.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/network/ApiClient.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network import io.ktor.client.* import io.ktor.client.engine.cio.* diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ContractorImportHandler.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.jvm.kt similarity index 76% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/ContractorImportHandler.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.jvm.kt index ad0b70b..360b57f 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ContractorImportHandler.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.jvm.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor @Composable actual fun ContractorImportHandler( diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ContractorSharing.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.jvm.kt similarity index 71% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/ContractorSharing.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.jvm.kt index cadb7aa..b7277e1 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ContractorSharing.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.jvm.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor @Composable actual fun rememberShareContractor(): (Contractor) -> Unit { diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/HapticFeedback.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.jvm.kt similarity index 93% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/HapticFeedback.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.jvm.kt index 8a9c0b7..2f51d51 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/HapticFeedback.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ImageBitmap.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.jvm.kt similarity index 93% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/ImageBitmap.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.jvm.kt index 4fb0d5b..d6b7c8e 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ImageBitmap.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ImagePicker.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ImagePicker.jvm.kt similarity index 96% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/ImagePicker.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ImagePicker.jvm.kt index e8490ec..0df41e7 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ImagePicker.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ImagePicker.jvm.kt @@ -1,4 +1,4 @@ -package com.casera.platform +package com.honeydue.platform import androidx.compose.runtime.Composable diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.jvm.kt similarity index 77% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.jvm.kt index d58c8b0..5d60ff0 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.jvm.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.ui.subscription.UpgradeScreen +import com.tt.honeyDue.ui.subscription.UpgradeScreen @Composable actual fun PlatformUpgradeScreen( diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ResidenceImportHandler.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.jvm.kt similarity index 80% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/ResidenceImportHandler.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.jvm.kt index a19e38c..81b9c5e 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ResidenceImportHandler.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.jvm.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.JoinResidenceResponse +import com.tt.honeyDue.models.JoinResidenceResponse /** * JVM implementation is a no-op - file imports are not supported on desktop. diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ResidenceSharing.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.jvm.kt similarity index 83% rename from composeApp/src/jvmMain/kotlin/com/example/casera/platform/ResidenceSharing.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.jvm.kt index 3929f03..e53af43 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/platform/ResidenceSharing.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.jvm.kt @@ -1,8 +1,8 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import com.example.casera.models.Residence +import com.tt.honeyDue.models.Residence /** * JVM implementation is a no-op - sharing is not supported on desktop. diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TaskCacheManager.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.jvm.kt similarity index 94% rename from composeApp/src/jvmMain/kotlin/com/example/casera/storage/TaskCacheManager.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.jvm.kt index e16e5f2..11f0c3c 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TaskCacheManager.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import java.util.prefs.Preferences @@ -47,7 +47,7 @@ actual class TaskCacheManager { } companion object { - private const val NODE_NAME = "com.casera.cache" + private const val NODE_NAME = "com.honeydue.cache" private const val KEY_TASKS = "cached_tasks" private const val KEY_DIRTY_FLAG = "tasks_dirty" diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TaskCacheStorage.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.jvm.kt similarity index 80% rename from composeApp/src/jvmMain/kotlin/com/example/casera/storage/TaskCacheStorage.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.jvm.kt index a0e25e3..8871e9a 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TaskCacheStorage.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.jvm.kt @@ -1,4 +1,4 @@ -package com.casera.storage +package com.honeydue.storage internal actual fun getPlatformTaskCacheManager(): TaskCacheManager? { return TaskCacheManager.getInstance() diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TokenManager.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TokenManager.jvm.kt similarity index 89% rename from composeApp/src/jvmMain/kotlin/com/example/casera/storage/TokenManager.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TokenManager.jvm.kt index 0cda073..d0b2499 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TokenManager.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TokenManager.jvm.kt @@ -1,4 +1,4 @@ -package com.casera.storage +package com.honeydue.storage import java.util.prefs.Preferences @@ -23,7 +23,7 @@ actual class TokenManager { } companion object { - private const val PREFS_NODE = "com.casera.app" + private const val PREFS_NODE = "com.honeyDue.treytartt.com" private const val KEY_TOKEN = "auth_token" @Volatile diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TokenStorage.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TokenStorage.jvm.kt similarity index 78% rename from composeApp/src/jvmMain/kotlin/com/example/casera/storage/TokenStorage.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TokenStorage.jvm.kt index de90984..100d2b2 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/storage/TokenStorage.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/storage/TokenStorage.jvm.kt @@ -1,4 +1,4 @@ -package com.casera.storage +package com.honeydue.storage internal actual fun getPlatformTokenManager(): TokenManager? { return TokenManager.getInstance() diff --git a/composeApp/src/jvmMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.jvm.kt b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.jvm.kt similarity index 88% rename from composeApp/src/jvmMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.jvm.kt rename to composeApp/src/jvmMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.jvm.kt index 33e1f7c..58ea470 100644 --- a/composeApp/src/jvmMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.jvm.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.runtime.Composable diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/Platform.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/Platform.wasmJs.kt similarity index 83% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/Platform.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/Platform.wasmJs.kt index b726219..1c4b828 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/Platform.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/Platform.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue class WasmPlatform: Platform { override val name: String = "Web with Kotlin/Wasm" diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.wasmJs.kt similarity index 94% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.wasmJs.kt index c82de82..ffac5fc 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/analytics/PostHogAnalytics.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/analytics/PostHogAnalytics.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.analytics +package com.tt.honeyDue.analytics /** * WasmJS/Web implementation of PostHog Analytics. diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/data/PersistenceManager.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/data/PersistenceManager.wasmJs.kt similarity index 96% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/data/PersistenceManager.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/data/PersistenceManager.wasmJs.kt index b92b606..d78e36d 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/data/PersistenceManager.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/data/PersistenceManager.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.data +package com.tt.honeyDue.data import kotlinx.browser.localStorage diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/network/ApiClient.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/network/ApiClient.wasmJs.kt similarity index 97% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/network/ApiClient.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/network/ApiClient.wasmJs.kt index 1e1504a..849b5e2 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/network/ApiClient.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/network/ApiClient.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.network +package com.tt.honeyDue.network import io.ktor.client.* import io.ktor.client.engine.js.* diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ContractorImportHandler.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.wasmJs.kt similarity index 76% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ContractorImportHandler.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.wasmJs.kt index 55275a3..3238d07 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ContractorImportHandler.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ContractorImportHandler.wasmJs.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor @Composable actual fun ContractorImportHandler( diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ContractorSharing.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.wasmJs.kt similarity index 71% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ContractorSharing.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.wasmJs.kt index ee4f9ac..cdc6dd5 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ContractorSharing.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ContractorSharing.wasmJs.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.Contractor +import com.tt.honeyDue.models.Contractor @Composable actual fun rememberShareContractor(): (Contractor) -> Unit { diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/HapticFeedback.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.wasmJs.kt similarity index 92% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/HapticFeedback.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.wasmJs.kt index 1584220..ac59645 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/HapticFeedback.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/HapticFeedback.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ImageBitmap.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.wasmJs.kt similarity index 93% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ImageBitmap.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.wasmJs.kt index 4fb0d5b..d6b7c8e 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ImageBitmap.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ImageBitmap.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ImagePicker.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ImagePicker.wasmJs.kt similarity index 95% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ImagePicker.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ImagePicker.wasmJs.kt index 5cfdfb6..68a0aab 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ImagePicker.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ImagePicker.wasmJs.kt @@ -1,4 +1,4 @@ -package com.casera.platform +package com.honeydue.platform import androidx.compose.runtime.Composable diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.wasmJs.kt similarity index 77% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.wasmJs.kt index d58c8b0..5d60ff0 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/PlatformUpgradeScreen.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/PlatformUpgradeScreen.wasmJs.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.ui.subscription.UpgradeScreen +import com.tt.honeyDue.ui.subscription.UpgradeScreen @Composable actual fun PlatformUpgradeScreen( diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.wasmJs.kt similarity index 80% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.wasmJs.kt index caa01f3..b8140f0 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ResidenceImportHandler.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ResidenceImportHandler.wasmJs.kt @@ -1,7 +1,7 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable -import com.example.casera.models.JoinResidenceResponse +import com.tt.honeyDue.models.JoinResidenceResponse /** * WasmJS implementation is a no-op - file imports are not supported on web. diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ResidenceSharing.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.wasmJs.kt similarity index 83% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ResidenceSharing.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.wasmJs.kt index 5e63335..366d8b8 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/platform/ResidenceSharing.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/platform/ResidenceSharing.wasmJs.kt @@ -1,8 +1,8 @@ -package com.example.casera.platform +package com.tt.honeyDue.platform import androidx.compose.runtime.Composable import androidx.compose.runtime.remember -import com.example.casera.models.Residence +import com.tt.honeyDue.models.Residence /** * WasmJS implementation is a no-op - sharing is not supported on web. diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TaskCacheManager.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.wasmJs.kt similarity index 97% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TaskCacheManager.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.wasmJs.kt index d552064..866c9d8 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TaskCacheManager.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TaskCacheManager.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.storage +package com.tt.honeyDue.storage import kotlinx.browser.localStorage diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TaskCacheStorage.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.wasmJs.kt similarity index 80% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TaskCacheStorage.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.wasmJs.kt index a0e25e3..8871e9a 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TaskCacheStorage.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TaskCacheStorage.wasmJs.kt @@ -1,4 +1,4 @@ -package com.casera.storage +package com.honeydue.storage internal actual fun getPlatformTaskCacheManager(): TaskCacheManager? { return TaskCacheManager.getInstance() diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TokenManager.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TokenManager.wasmJs.kt similarity index 96% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TokenManager.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TokenManager.wasmJs.kt index 69fd6b6..6cb5f46 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TokenManager.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TokenManager.wasmJs.kt @@ -1,4 +1,4 @@ -package com.casera.storage +package com.honeydue.storage import kotlinx.browser.localStorage diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TokenStorage.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TokenStorage.wasmJs.kt similarity index 78% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TokenStorage.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TokenStorage.wasmJs.kt index de90984..100d2b2 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/storage/TokenStorage.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/storage/TokenStorage.wasmJs.kt @@ -1,4 +1,4 @@ -package com.casera.storage +package com.honeydue.storage internal actual fun getPlatformTokenManager(): TokenManager? { return TokenManager.getInstance() diff --git a/composeApp/src/wasmJsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.wasmJs.kt b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.wasmJs.kt similarity index 87% rename from composeApp/src/wasmJsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.wasmJs.kt rename to composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.wasmJs.kt index 9856a5a..08ce16a 100644 --- a/composeApp/src/wasmJsMain/kotlin/com/example/casera/ui/components/auth/GoogleSignInButton.wasmJs.kt +++ b/composeApp/src/wasmJsMain/kotlin/com/tt/honeyDue/ui/components/auth/GoogleSignInButton.wasmJs.kt @@ -1,4 +1,4 @@ -package com.example.casera.ui.components.auth +package com.tt.honeyDue.ui.components.auth import androidx.compose.runtime.Composable diff --git a/composeApp/src/webMain/kotlin/com/example/casera/main.kt b/composeApp/src/webMain/kotlin/com/example/casera/main.kt index 4c628f0..d53ac91 100644 --- a/composeApp/src/webMain/kotlin/com/example/casera/main.kt +++ b/composeApp/src/webMain/kotlin/com/example/casera/main.kt @@ -1,4 +1,4 @@ -package com.example.casera +package com.tt.honeyDue import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.window.ComposeViewport diff --git a/docs/ANDROID_SUBSCRIPTION_PLAN.md b/docs/ANDROID_SUBSCRIPTION_PLAN.md index 30a9eb2..0a699c3 100644 --- a/docs/ANDROID_SUBSCRIPTION_PLAN.md +++ b/docs/ANDROID_SUBSCRIPTION_PLAN.md @@ -50,7 +50,7 @@ implementation(libs.google.billing) ### Phase 2: Implement BillingManager -**File:** `composeApp/src/androidMain/kotlin/com/example/mycrib/platform/BillingManager.kt` +**File:** `composeApp/src/androidMain/kotlin/com/example/honeydue/platform/BillingManager.kt` Replace stub implementation with full Google Play Billing: @@ -58,8 +58,8 @@ Replace stub implementation with full Google Play Billing: class BillingManager private constructor(private val context: Context) { // Product IDs (match Google Play Console) private val productIDs = listOf( - "com.example.casera.pro.monthly", - "com.example.casera.pro.annual" + "com.tt.honeyDue.pro.monthly", + "com.tt.honeyDue.pro.annual" ) // BillingClient instance @@ -94,7 +94,7 @@ class BillingManager private constructor(private val context: Context) { ### Phase 3: Update UpgradeFeatureScreen -**File:** `composeApp/src/commonMain/kotlin/com/example/mycrib/ui/subscription/UpgradeFeatureScreen.kt` +**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/subscription/UpgradeFeatureScreen.kt` Transform from teaser+dialog to full inline paywall matching iOS: @@ -130,7 +130,7 @@ fun UpgradeFeatureScreen( ### Phase 4: Create Android-Specific Product Display -**File:** `composeApp/src/androidMain/kotlin/com/example/mycrib/ui/subscription/SubscriptionProductButton.kt` +**File:** `composeApp/src/androidMain/kotlin/com/example/honeydue/ui/subscription/SubscriptionProductButton.kt` ```kotlin @Composable @@ -141,7 +141,7 @@ fun SubscriptionProductButton( onSelect: () -> Unit ) { // Display: - // - Product name (e.g., "MyCrib Pro Monthly") + // - Product name (e.g., "HoneyDue Pro Monthly") // - Price from subscriptionOfferDetails // - "Save X%" badge for annual // - Loading indicator when processing @@ -158,8 +158,8 @@ fun calculateAnnualSavings(monthly: ProductDetails, annual: ProductDetails): Int ### Phase 5: Disable FAB When Upgrade Showing **Files to modify:** -- `composeApp/src/commonMain/kotlin/com/example/mycrib/ui/screens/ContractorsScreen.kt` -- `composeApp/src/commonMain/kotlin/com/example/mycrib/ui/screens/DocumentsScreen.kt` +- `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ContractorsScreen.kt` +- `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/DocumentsScreen.kt` **Changes:** @@ -190,7 +190,7 @@ Same pattern for DocumentsScreen. ### Phase 6: Initialize BillingManager in MainActivity -**File:** `composeApp/src/androidMain/kotlin/com/example/mycrib/MainActivity.kt` +**File:** `composeApp/src/androidMain/kotlin/com/example/honeydue/MainActivity.kt` ```kotlin override fun onCreate(savedInstanceState: Bundle?) { @@ -270,7 +270,7 @@ These files show the iOS implementation to mirror: ## Notes -- Product IDs must match Google Play Console: `com.example.casera.pro.monthly`, `com.example.casera.pro.annual` +- Product IDs must match Google Play Console: `com.tt.honeyDue.pro.monthly`, `com.tt.honeyDue.pro.annual` - Backend endpoint `POST /subscription/verify-android/` already exists in SubscriptionApi - Testing requires Google Play Console setup with test products - Use Google's test cards for sandbox testing diff --git a/docs/ONBOARDING_STATISTICS_SOURCES.md b/docs/ONBOARDING_STATISTICS_SOURCES.md index 45ea79f..c5bfe39 100644 --- a/docs/ONBOARDING_STATISTICS_SOURCES.md +++ b/docs/ONBOARDING_STATISTICS_SOURCES.md @@ -1,6 +1,6 @@ # Onboarding Statistics Sources -This document provides citations for the statistics used in the Casera iOS onboarding screens. +This document provides citations for the statistics used in the honeyDue iOS onboarding screens. ## Statistics Used in the App diff --git a/docs/TODO_AUDIT.md b/docs/TODO_AUDIT.md index 73b36a5..3bfe54f 100644 --- a/docs/TODO_AUDIT.md +++ b/docs/TODO_AUDIT.md @@ -72,7 +72,7 @@ Three TODO items related to deep-linking from push notifications: ### 1. Document Download -**File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/DocumentDetailScreen.kt` +**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/DocumentDetailScreen.kt` ```kotlin // TODO: Download functionality @@ -86,7 +86,7 @@ Three TODO items related to deep-linking from push notifications: ### 2. Subscription Navigation from Residences -**File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidencesScreen.kt` +**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ResidencesScreen.kt` ```kotlin // TODO: Navigate to subscription/upgrade screen @@ -100,7 +100,7 @@ Three TODO items related to deep-linking from push notifications: ### 3. Subscription Navigation from Residence Detail -**File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt` +**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ResidenceDetailScreen.kt` ```kotlin // TODO: Navigate to subscription screen @@ -114,7 +114,7 @@ Three TODO items related to deep-linking from push notifications: ### 4. Profile Update Disabled -**File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ProfileScreen.kt` +**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ProfileScreen.kt` ```kotlin // Update profile button is disabled/not implemented @@ -128,7 +128,7 @@ Three TODO items related to deep-linking from push notifications: ### 5. Contractor Favorite Toggle -**File:** `composeApp/src/commonMain/kotlin/com/example/casera/ui/screens/ResidenceDetailScreen.kt` +**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ResidenceDetailScreen.kt` ```kotlin // Contractor favorite toggle not fully implemented diff --git a/hardening-report.md b/hardening-report.md index b509eef..5401850 100644 --- a/hardening-report.md +++ b/hardening-report.md @@ -42,7 +42,7 @@ **iOSApp.swift:294** | Deep link reset-password token extracted but never delivered to any view - What: `handleDeepLink` stores parsed reset token in `@State private var deepLinkResetToken`, but `RootView()` is constructed with no arguments. `LoginView` accepts `resetToken: Binding` but the binding is never wired. -- Impact: `casera://reset-password?token=xxx` deep links are silently discarded. Password reset emails don't work. +- Impact: `honeydue://reset-password?token=xxx` deep links are silently discarded. Password reset emails don't work. - Source: Navigation Auditor **Info.plist** | Missing Privacy Manifest (`PrivacyInfo.xcprivacy`) @@ -227,7 +227,7 @@ - Source: Navigation Auditor **ApiConfig.kt:25** | DEV environment URL doesn't match CLAUDE.md documentation -- What: Code uses `https://casera.treytartt.com/api`. CLAUDE.md documents `https://mycrib.treytartt.com/api`. +- What: Code uses `https://honeyDue.treytartt.com/api`. CLAUDE.md documents `https://honeyDue.treytartt.com/api`. - Impact: Documentation misleads developers. - Source: Deep Audit (cross-cutting) @@ -495,7 +495,7 @@ - Source: Testing Auditor **Unit Tests** | Minimal test coverage — only 2 unit test suites -- What: Only `CaseraTests.swift` (template) and `TaskMetricsTests.swift`. No ViewModel tests, no form validation tests, no integration tests. +- What: Only `honeyDueTests.swift` (template) and `TaskMetricsTests.swift`. No ViewModel tests, no form validation tests, no integration tests. - Impact: No regression safety net for business logic. - Source: Testing Auditor diff --git a/iosApp/ACCESSIBILITY_IDENTIFIERS_FIX.md b/iosApp/ACCESSIBILITY_IDENTIFIERS_FIX.md index 60d5a2e..68f8121 100644 --- a/iosApp/ACCESSIBILITY_IDENTIFIERS_FIX.md +++ b/iosApp/ACCESSIBILITY_IDENTIFIERS_FIX.md @@ -81,7 +81,7 @@ static let cancelButton = "Alert.CancelButton" 1. **`iosApp/Helpers/AccessibilityIdentifiers.swift`** - Renamed 6 cancel button identifiers to be context-specific -2. **`iosApp/MyCribTests/ComprehensiveResidenceTests.swift`** +2. **`iosApp/HoneyDueTests/ComprehensiveResidenceTests.swift`** - Updated reference from `Residence.cancelButton` → `Residence.formCancelButton` ## Usage Examples @@ -139,7 +139,7 @@ Button("Cancel Task") { } The file should now compile without errors. To verify: ```bash -cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp +cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp xcodebuild -project iosApp.xcodeproj -scheme iosApp -destination 'generic/platform=iOS Simulator' clean build ``` diff --git a/iosApp/CaseraExtension.entitlements b/iosApp/CaseraExtension.entitlements index 83ac4e5..030d7c0 100644 --- a/iosApp/CaseraExtension.entitlements +++ b/iosApp/CaseraExtension.entitlements @@ -4,7 +4,7 @@ com.apple.security.application-groups - group.com.tt.casera.CaseraDev + group.com.tt.honeyDue.HoneyDueDev diff --git a/iosApp/CaseraUITests.xctestplan b/iosApp/CaseraUITests.xctestplan index 6c04dfb..00bead4 100644 --- a/iosApp/CaseraUITests.xctestplan +++ b/iosApp/CaseraUITests.xctestplan @@ -14,11 +14,11 @@ "testTargets" : [ { "skippedTests" : [ - "CaseraUITests", - "CaseraUITests\/testExample()", - "CaseraUITests\/testLaunchPerformance()", - "CaseraUITestsLaunchTests", - "CaseraUITestsLaunchTests\/testLaunch()", + "HoneyDueUITests", + "HoneyDueUITests\/testExample()", + "HoneyDueUITests\/testLaunchPerformance()", + "HoneyDueUITestsLaunchTests", + "HoneyDueUITestsLaunchTests\/testLaunch()", "SimpleLoginTest", "SimpleLoginTest\/testAppLaunchesAndShowsLoginScreen()", "SimpleLoginTest\/testCanTypeInLoginFields()" @@ -26,7 +26,7 @@ "target" : { "containerPath" : "container:iosApp.xcodeproj", "identifier" : "1CBF1BEC2ECD9768001BF56C", - "name" : "CaseraUITests" + "name" : "HoneyDueUITests" } } ], diff --git a/iosApp/Configuration/Config.xcconfig b/iosApp/Configuration/Config.xcconfig index 402aa7f..a184aec 100644 --- a/iosApp/Configuration/Config.xcconfig +++ b/iosApp/Configuration/Config.xcconfig @@ -1,7 +1,7 @@ TEAM_ID= -PRODUCT_NAME=MyCrib -PRODUCT_BUNDLE_IDENTIFIER=com.example.mycrib.MyCrib$(TEAM_ID) +PRODUCT_NAME=honeyDue +PRODUCT_BUNDLE_IDENTIFIER=com.tt.honeyDue.HoneyDue$(TEAM_ID) CURRENT_PROJECT_VERSION=1 MARKETING_VERSION=1.0 \ No newline at end of file diff --git a/iosApp/DESIGN_SYSTEM.md b/iosApp/DESIGN_SYSTEM.md index ae092a4..6ff4555 100644 --- a/iosApp/DESIGN_SYSTEM.md +++ b/iosApp/DESIGN_SYSTEM.md @@ -1,7 +1,7 @@ -# MyCrib iOS Design System +# HoneyDue iOS Design System ## Overview -This document outlines the modern, sleek design system implemented for the MyCrib iOS app. +This document outlines the modern, sleek design system implemented for the HoneyDue iOS app. ## Design Philosophy - **Modern & Clean**: Minimalist approach with ample white space diff --git a/iosApp/FIX_TEST_TARGET.md b/iosApp/FIX_TEST_TARGET.md index 7317177..c2c1ed5 100644 --- a/iosApp/FIX_TEST_TARGET.md +++ b/iosApp/FIX_TEST_TARGET.md @@ -8,21 +8,21 @@ When compiling tests, you're seeing: No such module 'iosApp' ``` -This means the test target (`MyCribTests`) is not properly configured to access the main app target (`iosApp`). +This means the test target (`HoneyDueTests`) is not properly configured to access the main app target (`iosApp`). ## Solution: Configure Test Target in Xcode ### Step 1: Open Xcode Project ```bash -cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp +cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp open iosApp.xcodeproj ``` ### Step 2: Add Target Dependency 1. **Select the project** in the Project Navigator (top item, blue icon) -2. **Select `MyCribTests` target** in the targets list (middle column) +2. **Select `HoneyDueTests` target** in the targets list (middle column) 3. **Go to "Build Phases" tab** (top of editor) 4. **Expand "Dependencies" section** 5. **Click the "+" button** under Dependencies @@ -31,7 +31,7 @@ open iosApp.xcodeproj ### Step 3: Configure Test Host -1. Still in **`MyCribTests` target** → **Build Settings** tab +1. Still in **`HoneyDueTests` target** → **Build Settings** tab 2. **Search for "Test Host"** 3. Set **Test Host** to: ``` @@ -57,7 +57,7 @@ open iosApp.xcodeproj 2. Go to **Build Settings** tab 3. **Search for "Product Module Name"** 4. Verify it says **`iosApp`** - - If it's different (e.g., "MyCrib"), you need to update your imports + - If it's different (e.g., "HoneyDue"), you need to update your imports ### Step 6: Clean and Build @@ -84,12 +84,12 @@ If you prefer command-line configuration, you can use `xcodebuild` with PlistBud ### What It Should Look Like: -**MyCribTests Target → Build Phases → Dependencies:** +**HoneyDueTests Target → Build Phases → Dependencies:** ``` ✅ iosApp (target) ``` -**MyCribTests Target → Build Settings:** +**HoneyDueTests Target → Build Settings:** ``` Test Host: $(BUILT_PRODUCTS_DIR)/iosApp.app/iosApp Bundle Loader: $(TEST_HOST) @@ -140,7 +140,7 @@ Product Module Name: iosApp After making changes, verify: -- [ ] `MyCribTests` target has `iosApp` in Dependencies +- [ ] `HoneyDueTests` target has `iosApp` in Dependencies - [ ] Test Host is set to `$(BUILT_PRODUCTS_DIR)/iosApp.app/iosApp` - [ ] Bundle Loader is set to `$(TEST_HOST)` - [ ] `iosApp` target has "Enable Testability" = YES (Debug) diff --git a/iosApp/FIX_TEST_TARGET_MANUAL.md b/iosApp/FIX_TEST_TARGET_MANUAL.md index 66dbe78..ab42264 100644 --- a/iosApp/FIX_TEST_TARGET_MANUAL.md +++ b/iosApp/FIX_TEST_TARGET_MANUAL.md @@ -1,11 +1,11 @@ -# Fix MyCribTests Target Configuration +# Fix HoneyDueTests Target Configuration ## The Problem The tests are failing with "No target application path specified" because the test target's `TEST_HOST` setting is hardcoded to a wrong path: ``` -TEST_HOST = /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/build/Release-iphoneos/MyCrib.app//MyCrib +TEST_HOST = /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/build/Release-iphoneos/HoneyDue.app//HoneyDue ``` This path doesn't exist when running tests in Debug mode on the simulator. @@ -14,13 +14,13 @@ This path doesn't exist when running tests in Debug mode on the simulator. 1. **Open the project in Xcode:** ```bash - cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp + cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp open iosApp.xcodeproj ``` -2. **Select the MyCribTests target:** +2. **Select the HoneyDueTests target:** - Click on the project in the Project Navigator (blue icon at top) - - Select **MyCribTests** from the TARGETS list + - Select **HoneyDueTests** from the TARGETS list 3. **Go to Build Settings:** - Click the **Build Settings** tab @@ -34,11 +34,11 @@ This path doesn't exist when running tests in Debug mode on the simulator. - Double-click the value field - Change from: ``` - /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/build/Release-iphoneos/MyCrib.app//MyCrib + /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/build/Release-iphoneos/HoneyDue.app//HoneyDue ``` - To: ``` - $(BUILT_PRODUCTS_DIR)/MyCrib.app/MyCrib + $(BUILT_PRODUCTS_DIR)/HoneyDue.app/HoneyDue ``` - Press Enter @@ -63,12 +63,12 @@ This path doesn't exist when running tests in Debug mode on the simulator. After making these changes, run: ```bash -xcodebuild -project iosApp.xcodeproj -target MyCribTests -showBuildSettings | grep TEST_HOST +xcodebuild -project iosApp.xcodeproj -target HoneyDueTests -showBuildSettings | grep TEST_HOST ``` Should output: ``` -TEST_HOST = $(BUILT_PRODUCTS_DIR)/MyCrib.app/MyCrib +TEST_HOST = $(BUILT_PRODUCTS_DIR)/HoneyDue.app/HoneyDue ``` NOT a hardcoded absolute path. diff --git a/iosApp/Casera/AppIntent.swift b/iosApp/HoneyDue/AppIntent.swift similarity index 94% rename from iosApp/Casera/AppIntent.swift rename to iosApp/HoneyDue/AppIntent.swift index 539f347..dece293 100644 --- a/iosApp/Casera/AppIntent.swift +++ b/iosApp/HoneyDue/AppIntent.swift @@ -1,6 +1,6 @@ // // AppIntent.swift -// Casera +// honeyDue // // Created by Trey Tartt on 11/5/25. // @@ -11,8 +11,8 @@ import Foundation // MARK: - Widget Configuration Intent struct ConfigurationAppIntent: WidgetConfigurationIntent { - static var title: LocalizedStringResource { "Casera Configuration" } - static var description: IntentDescription { "Configure your Casera widget" } + static var title: LocalizedStringResource { "honeyDue Configuration" } + static var description: IntentDescription { "Configure your honeyDue widget" } } // MARK: - Complete Task Intent @@ -43,13 +43,13 @@ struct CompleteTaskIntent: AppIntent { // Check auth BEFORE marking pending — if auth fails the task should remain visible guard let token = WidgetActionManager.shared.getAuthToken() else { print("CompleteTaskIntent: No auth token available") - WidgetCenter.shared.reloadTimelines(ofKind: "Casera") + WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue") return .result() } guard let baseURL = WidgetActionManager.shared.getAPIBaseURL() else { print("CompleteTaskIntent: No API base URL available") - WidgetCenter.shared.reloadTimelines(ofKind: "Casera") + WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue") return .result() } @@ -57,7 +57,7 @@ struct CompleteTaskIntent: AppIntent { WidgetActionManager.shared.markTaskPendingCompletion(taskId: taskId) // Reload widget immediately to update task list and stats - WidgetCenter.shared.reloadTimelines(ofKind: "Casera") + WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue") // Make API call to complete the task let success = await WidgetAPIClient.quickCompleteTask( @@ -76,7 +76,7 @@ struct CompleteTaskIntent: AppIntent { } // Reload widget - WidgetCenter.shared.reloadTimelines(ofKind: "Casera") + WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue") return .result() } @@ -147,7 +147,7 @@ struct OpenTaskIntent: AppIntent { final class WidgetActionManager { static let shared = WidgetActionManager() - private let appGroupIdentifier = "group.com.tt.casera.CaseraDev" + private let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev" private let pendingTasksFileName = "widget_pending_tasks.json" private let tokenKey = "widget_auth_token" private let dirtyFlagKey = "widget_tasks_dirty" @@ -282,7 +282,7 @@ final class WidgetActionManager { savePendingTaskStates(pendingTasks) // Also reload widget - WidgetCenter.shared.reloadTimelines(ofKind: "Casera") + WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue") } /// Clear all pending states diff --git a/iosApp/Casera/Assets.xcassets/AccentColor.colorset/Contents.json b/iosApp/HoneyDue/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from iosApp/Casera/Assets.xcassets/AccentColor.colorset/Contents.json rename to iosApp/HoneyDue/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/iosApp/Casera/Assets.xcassets/AppIcon.appiconset/Contents.json b/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from iosApp/Casera/Assets.xcassets/AppIcon.appiconset/Contents.json rename to iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/icon.png b/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/icon.png new file mode 100644 index 0000000..02d229d Binary files /dev/null and b/iosApp/HoneyDue/Assets.xcassets/AppIcon.appiconset/icon.png differ diff --git a/iosApp/Casera/Assets.xcassets/Contents.json b/iosApp/HoneyDue/Assets.xcassets/Contents.json similarity index 100% rename from iosApp/Casera/Assets.xcassets/Contents.json rename to iosApp/HoneyDue/Assets.xcassets/Contents.json diff --git a/iosApp/Casera/Assets.xcassets/WidgetBackground.colorset/Contents.json b/iosApp/HoneyDue/Assets.xcassets/WidgetBackground.colorset/Contents.json similarity index 100% rename from iosApp/Casera/Assets.xcassets/WidgetBackground.colorset/Contents.json rename to iosApp/HoneyDue/Assets.xcassets/WidgetBackground.colorset/Contents.json diff --git a/iosApp/Casera/MyCrib.swift b/iosApp/HoneyDue/HoneyDue.swift similarity index 99% rename from iosApp/Casera/MyCrib.swift rename to iosApp/HoneyDue/HoneyDue.swift index b43a297..0978e2c 100644 --- a/iosApp/Casera/MyCrib.swift +++ b/iosApp/HoneyDue/HoneyDue.swift @@ -1,6 +1,6 @@ // -// Casera.swift -// Casera +// honeyDue.swift +// honeyDue // // Created by Trey Tartt on 11/5/25. // @@ -110,7 +110,7 @@ class CacheManager { } } - private static let appGroupIdentifier = "group.com.tt.casera.CaseraDev" + private static let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev" private static let tasksFileName = "widget_tasks.json" /// Get the shared App Group container URL @@ -242,7 +242,7 @@ struct SimpleEntry: TimelineEntry { } } -struct CaseraEntryView : View { +struct HoneyDueEntryView : View { var entry: Provider.Entry @Environment(\.widgetFamily) var family @@ -754,12 +754,12 @@ struct OrganicStatPillWidget: View { } } -struct Casera: Widget { - let kind: String = "Casera" +struct honeyDue: Widget { + let kind: String = "honeyDue" var body: some WidgetConfiguration { AppIntentConfiguration(kind: kind, intent: ConfigurationAppIntent.self, provider: Provider()) { entry in - CaseraEntryView(entry: entry) + HoneyDueEntryView(entry: entry) .containerBackground(for: .widget) { // Organic warm gradient background ZStack { @@ -777,7 +777,7 @@ struct Casera: Widget { } } } - .configurationDisplayName("Casera Tasks") + .configurationDisplayName("honeyDue Tasks") .description("View and complete your upcoming tasks.") .supportedFamilies([.systemSmall, .systemMedium, .systemLarge]) } @@ -785,7 +785,7 @@ struct Casera: Widget { // MARK: - Previews #Preview(as: .systemSmall) { - Casera() + honeyDue() } timeline: { SimpleEntry( date: .now, @@ -878,7 +878,7 @@ struct Casera: Widget { } #Preview(as: .systemMedium) { - Casera() + honeyDue() } timeline: { SimpleEntry( date: .now, @@ -1010,7 +1010,7 @@ struct Casera: Widget { } #Preview(as: .systemLarge) { - Casera() + honeyDue() } timeline: { SimpleEntry( date: .now, diff --git a/iosApp/Casera/CaseraBundle.swift b/iosApp/HoneyDue/HoneyDueBundle.swift similarity index 56% rename from iosApp/Casera/CaseraBundle.swift rename to iosApp/HoneyDue/HoneyDueBundle.swift index cfaee0a..f469547 100644 --- a/iosApp/Casera/CaseraBundle.swift +++ b/iosApp/HoneyDue/HoneyDueBundle.swift @@ -1,6 +1,6 @@ // -// CaseraBundle.swift -// Casera +// HoneyDueBundle.swift +// honeyDue // // Created by Trey Tartt on 11/5/25. // @@ -9,8 +9,8 @@ import WidgetKit import SwiftUI @main -struct CaseraBundle: WidgetBundle { +struct HoneyDueBundle: WidgetBundle { var body: some Widget { - Casera() + honeyDue() } } diff --git a/iosApp/Casera/CaseraIconView.swift b/iosApp/HoneyDue/HoneyDueIconView.swift similarity index 97% rename from iosApp/Casera/CaseraIconView.swift rename to iosApp/HoneyDue/HoneyDueIconView.swift index 5700b35..09caba1 100644 --- a/iosApp/Casera/CaseraIconView.swift +++ b/iosApp/HoneyDue/HoneyDueIconView.swift @@ -2,7 +2,7 @@ import SwiftUI // MARK: - Centered Icon View -struct CaseraIconView: View { +struct HoneyDueIconView: View { var houseProgress: CGFloat = 1.0 var windowScale: CGFloat = 1.0 var checkmarkScale: CGFloat = 1.0 @@ -160,7 +160,7 @@ struct FullIntroAnimationView: View { @State private var checkScale: CGFloat = 0 var body: some View { - CaseraIconView( + HoneyDueIconView( houseProgress: houseProgress, windowScale: windowScale, checkmarkScale: checkScale @@ -188,7 +188,7 @@ struct PulsatingCheckmarkView: View { @State private var checkScale: CGFloat = 1.0 var body: some View { - CaseraIconView(checkmarkScale: checkScale) + HoneyDueIconView(checkmarkScale: checkScale) .onAppear { withAnimation(.easeInOut(duration: 0.5).repeatForever(autoreverses: true)) { checkScale = 1.3 @@ -202,7 +202,7 @@ struct PulsingIconView: View { var backgroundColor: Color? = nil var body: some View { - CaseraIconView(backgroundColor: backgroundColor) + HoneyDueIconView(backgroundColor: backgroundColor) .scaleEffect(scale) .onAppear { withAnimation(.easeInOut(duration: 0.8).repeatForever(autoreverses: true)) { @@ -217,7 +217,7 @@ struct BouncyIconView: View { @State private var scale: CGFloat = 0.5 var body: some View { - CaseraIconView() + HoneyDueIconView() .scaleEffect(scale) .offset(y: offset) .onAppear { @@ -233,7 +233,7 @@ struct WigglingIconView: View { @State private var angle: Double = 0 var body: some View { - CaseraIconView() + HoneyDueIconView() .rotationEffect(.degrees(angle)) .onAppear { withAnimation(.easeInOut(duration: 0.1).repeatForever(autoreverses: true)) { @@ -253,7 +253,7 @@ struct PlaygroundContentView: View { var body: some View { VStack(spacing: 20) { - Text("MyCrib Icon Animations") + Text("HoneyDue Icon Animations") .font(.title) .fontWeight(.bold) @@ -310,7 +310,7 @@ struct PlaygroundContentView: View { case 2: PulsingIconView() case 3: BouncyIconView() case 4: WigglingIconView() - default: CaseraIconView() + default: HoneyDueIconView() } } } diff --git a/iosApp/Casera/Info.plist b/iosApp/HoneyDue/Info.plist similarity index 100% rename from iosApp/Casera/Info.plist rename to iosApp/HoneyDue/Info.plist diff --git a/iosApp/CaseraQLPreview/Base.lproj/MainInterface.storyboard b/iosApp/HoneyDueQLPreview/Base.lproj/MainInterface.storyboard similarity index 100% rename from iosApp/CaseraQLPreview/Base.lproj/MainInterface.storyboard rename to iosApp/HoneyDueQLPreview/Base.lproj/MainInterface.storyboard diff --git a/iosApp/CaseraQLPreview/Info.plist b/iosApp/HoneyDueQLPreview/Info.plist similarity index 92% rename from iosApp/CaseraQLPreview/Info.plist rename to iosApp/HoneyDueQLPreview/Info.plist index 033eb91..7be49da 100644 --- a/iosApp/CaseraQLPreview/Info.plist +++ b/iosApp/HoneyDueQLPreview/Info.plist @@ -3,7 +3,7 @@ CFBundleDisplayName - Casera Preview + honeyDue Preview CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -24,7 +24,7 @@ QLSupportedContentTypes - com.casera.contractor + com.honeydue.contractor QLSupportsSearchableItems diff --git a/iosApp/CaseraQLPreview/PreviewProvider.swift b/iosApp/HoneyDueQLPreview/PreviewProvider.swift similarity index 98% rename from iosApp/CaseraQLPreview/PreviewProvider.swift rename to iosApp/HoneyDueQLPreview/PreviewProvider.swift index 9daa5ff..540e8d7 100644 --- a/iosApp/CaseraQLPreview/PreviewProvider.swift +++ b/iosApp/HoneyDueQLPreview/PreviewProvider.swift @@ -1,6 +1,6 @@ // // PreviewProvider.swift -// CaseraQLPreview +// honeyDueQLPreview // // Created by Trey Tartt on 12/6/25. // diff --git a/iosApp/CaseraQLPreview/PreviewViewController.swift b/iosApp/HoneyDueQLPreview/PreviewViewController.swift similarity index 94% rename from iosApp/CaseraQLPreview/PreviewViewController.swift rename to iosApp/HoneyDueQLPreview/PreviewViewController.swift index 58280c8..4bd5ebc 100644 --- a/iosApp/CaseraQLPreview/PreviewViewController.swift +++ b/iosApp/HoneyDueQLPreview/PreviewViewController.swift @@ -5,7 +5,7 @@ class PreviewViewController: UIViewController, QLPreviewingController { // MARK: - Types - /// Represents the type of .casera package + /// Represents the type of .honeydue package private enum PackageType { case contractor case residence @@ -45,7 +45,7 @@ class PreviewViewController: UIViewController, QLPreviewingController { label.font = .systemFont(ofSize: 15, weight: .medium) label.textColor = .secondaryLabel label.textAlignment = .center - label.text = "Casera Contractor File" + label.text = "honeyDue Contractor File" return label }() @@ -80,7 +80,7 @@ class PreviewViewController: UIViewController, QLPreviewingController { label.textColor = UIColor(red: 7/255, green: 160/255, blue: 195/255, alpha: 1) label.textAlignment = .center label.numberOfLines = 0 - label.text = "Tap the share button below, then select \"Casera\" to import this contractor." + label.text = "Tap the share button below, then select \"honeyDue\" to import this contractor." return label }() @@ -104,7 +104,7 @@ class PreviewViewController: UIViewController, QLPreviewingController { override func viewDidLoad() { super.viewDidLoad() - print("CaseraQLPreview: viewDidLoad called") + print("honeyDueQLPreview: viewDidLoad called") setupUI() } @@ -196,9 +196,9 @@ class PreviewViewController: UIViewController, QLPreviewingController { // MARK: - QLPreviewingController func preparePreviewOfFile(at url: URL) async throws { - print("CaseraQLPreview: preparePreviewOfFile called with URL: \(url)") + print("honeyDueQLPreview: preparePreviewOfFile called with URL: \(url)") - // Parse the .casera file — single Codable pass to detect type, then decode + // Parse the .honeydue file — single Codable pass to detect type, then decode let data = try Data(contentsOf: url) let decoder = JSONDecoder() @@ -209,7 +209,7 @@ class PreviewViewController: UIViewController, QLPreviewingController { let residence = try decoder.decode(ResidencePreviewData.self, from: data) self.residenceData = residence - print("CaseraQLPreview: Parsed residence: \(residence.residenceName)") + print("honeyDueQLPreview: Parsed residence: \(residence.residenceName)") await MainActor.run { self.updateUIForResidence(with: residence) @@ -219,7 +219,7 @@ class PreviewViewController: UIViewController, QLPreviewingController { let contractor = try decoder.decode(ContractorPreviewData.self, from: data) self.contractorData = contractor - print("CaseraQLPreview: Parsed contractor: \(contractor.name)") + print("honeyDueQLPreview: Parsed contractor: \(contractor.name)") await MainActor.run { self.updateUIForContractor(with: contractor) @@ -233,8 +233,8 @@ class PreviewViewController: UIViewController, QLPreviewingController { iconImageView.image = UIImage(systemName: "person.crop.rectangle.stack", withConfiguration: config) titleLabel.text = contractor.name - subtitleLabel.text = "Casera Contractor File" - instructionLabel.text = "Tap the share button below, then select \"Casera\" to import this contractor." + subtitleLabel.text = "honeyDue Contractor File" + instructionLabel.text = "Tap the share button below, then select \"honeyDue\" to import this contractor." // Clear existing details detailsStackView.arrangedSubviews.forEach { $0.removeFromSuperview() } @@ -268,8 +268,8 @@ class PreviewViewController: UIViewController, QLPreviewingController { iconImageView.image = UIImage(systemName: "house.fill", withConfiguration: config) titleLabel.text = residence.residenceName - subtitleLabel.text = "Casera Residence Invite" - instructionLabel.text = "Tap the share button below, then select \"Casera\" to join this residence." + subtitleLabel.text = "honeyDue Residence Invite" + instructionLabel.text = "Tap the share button below, then select \"honeyDue\" to join this residence." // Clear existing details detailsStackView.arrangedSubviews.forEach { $0.removeFromSuperview() } diff --git a/iosApp/CaseraQLThumbnail/Info.plist b/iosApp/HoneyDueQLThumbnail/Info.plist similarity index 92% rename from iosApp/CaseraQLThumbnail/Info.plist rename to iosApp/HoneyDueQLThumbnail/Info.plist index f77509c..de515fc 100644 --- a/iosApp/CaseraQLThumbnail/Info.plist +++ b/iosApp/HoneyDueQLThumbnail/Info.plist @@ -3,7 +3,7 @@ CFBundleDisplayName - Casera Thumbnail + honeyDue Thumbnail CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -24,7 +24,7 @@ QLSupportedContentTypes - com.casera.contractor + com.honeydue.contractor QLThumbnailMinimumDimension 0 diff --git a/iosApp/CaseraQLThumbnail/ThumbnailProvider.swift b/iosApp/HoneyDueQLThumbnail/ThumbnailProvider.swift similarity index 97% rename from iosApp/CaseraQLThumbnail/ThumbnailProvider.swift rename to iosApp/HoneyDueQLThumbnail/ThumbnailProvider.swift index ab7e98b..5a0e727 100644 --- a/iosApp/CaseraQLThumbnail/ThumbnailProvider.swift +++ b/iosApp/HoneyDueQLThumbnail/ThumbnailProvider.swift @@ -1,6 +1,6 @@ // // ThumbnailProvider.swift -// CaseraQLThumbnail +// honeyDueQLThumbnail // // Created by Trey Tartt on 12/6/25. // @@ -10,7 +10,7 @@ import QuickLookThumbnailing class ThumbnailProvider: QLThumbnailProvider { - /// Represents the type of .casera package + /// Represents the type of .honeydue package private enum PackageType { case contractor case residence diff --git a/iosApp/CaseraTests/CaseraTests.swift b/iosApp/HoneyDueTests/CaseraTests.swift similarity index 76% rename from iosApp/CaseraTests/CaseraTests.swift rename to iosApp/HoneyDueTests/CaseraTests.swift index b38453b..17a880b 100644 --- a/iosApp/CaseraTests/CaseraTests.swift +++ b/iosApp/HoneyDueTests/CaseraTests.swift @@ -1,13 +1,13 @@ // -// CaseraTests.swift -// CaseraTests +// honeyDueTests.swift +// honeyDueTests // // Created by Trey Tartt on 11/12/25. // import Testing -struct CaseraTests { +struct honeyDueTests { @Test func example() async throws { // Write your test here and use APIs like `#expect(...)` to check expected conditions. diff --git a/iosApp/CaseraTests/DataLayerTests.swift b/iosApp/HoneyDueTests/DataLayerTests.swift similarity index 99% rename from iosApp/CaseraTests/DataLayerTests.swift rename to iosApp/HoneyDueTests/DataLayerTests.swift index 5a9e022..aadbf48 100644 --- a/iosApp/CaseraTests/DataLayerTests.swift +++ b/iosApp/HoneyDueTests/DataLayerTests.swift @@ -1,6 +1,6 @@ // // DataLayerTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for the DATA layer domain (DATA-001 through DATA-007). // Exercises Kotlin DataManager directly from Swift without launching the app. @@ -11,7 +11,7 @@ import Testing import Foundation -@testable import Casera +@testable import honeyDue import ComposeApp // MARK: - Serialized Parent Suite (prevents concurrent DataManager mutations) diff --git a/iosApp/CaseraTests/DataManagerExtendedTests.swift b/iosApp/HoneyDueTests/DataManagerExtendedTests.swift similarity index 99% rename from iosApp/CaseraTests/DataManagerExtendedTests.swift rename to iosApp/HoneyDueTests/DataManagerExtendedTests.swift index 43888df..6c28565 100644 --- a/iosApp/CaseraTests/DataManagerExtendedTests.swift +++ b/iosApp/HoneyDueTests/DataManagerExtendedTests.swift @@ -1,6 +1,6 @@ // // DataManagerExtendedTests.swift -// CaseraTests +// honeyDueTests // // Extended unit tests covering TASK-005, TASK-012, THEME-001, TCOMP-003, and QA-002. // @@ -11,7 +11,7 @@ import Testing import Foundation -@testable import Casera +@testable import honeyDue import ComposeApp // MARK: - Extension of DataLayerTests (serialized parent in DataLayerTests.swift) diff --git a/iosApp/CaseraTests/DateUtilsTests.swift b/iosApp/HoneyDueTests/DateUtilsTests.swift similarity index 99% rename from iosApp/CaseraTests/DateUtilsTests.swift rename to iosApp/HoneyDueTests/DateUtilsTests.swift index 580a637..64e074f 100644 --- a/iosApp/CaseraTests/DateUtilsTests.swift +++ b/iosApp/HoneyDueTests/DateUtilsTests.swift @@ -1,13 +1,13 @@ // // DateUtilsTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for DateUtils formatting, parsing, and timezone utilities. // import Testing import Foundation -@testable import Casera +@testable import honeyDue // MARK: - DateUtils.formatDate Tests diff --git a/iosApp/CaseraTests/DocumentHelpersTests.swift b/iosApp/HoneyDueTests/DocumentHelpersTests.swift similarity index 98% rename from iosApp/CaseraTests/DocumentHelpersTests.swift rename to iosApp/HoneyDueTests/DocumentHelpersTests.swift index 3b07d14..bf1629a 100644 --- a/iosApp/CaseraTests/DocumentHelpersTests.swift +++ b/iosApp/HoneyDueTests/DocumentHelpersTests.swift @@ -1,12 +1,12 @@ // // DocumentHelpersTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for DocumentTypeHelper and DocumentCategoryHelper. // import Testing -@testable import Casera +@testable import honeyDue // MARK: - DocumentTypeHelper Tests diff --git a/iosApp/CaseraTests/DoubleExtensionsTests.swift b/iosApp/HoneyDueTests/DoubleExtensionsTests.swift similarity index 98% rename from iosApp/CaseraTests/DoubleExtensionsTests.swift rename to iosApp/HoneyDueTests/DoubleExtensionsTests.swift index cdc3a34..192f8f0 100644 --- a/iosApp/CaseraTests/DoubleExtensionsTests.swift +++ b/iosApp/HoneyDueTests/DoubleExtensionsTests.swift @@ -1,12 +1,12 @@ // // DoubleExtensionsTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for Double, Int number formatting extensions. // import Testing -@testable import Casera +@testable import honeyDue // MARK: - Double.toCurrency Tests diff --git a/iosApp/CaseraTests/ErrorMessageParserTests.swift b/iosApp/HoneyDueTests/ErrorMessageParserTests.swift similarity index 99% rename from iosApp/CaseraTests/ErrorMessageParserTests.swift rename to iosApp/HoneyDueTests/ErrorMessageParserTests.swift index 5eca3e3..8f31d7c 100644 --- a/iosApp/CaseraTests/ErrorMessageParserTests.swift +++ b/iosApp/HoneyDueTests/ErrorMessageParserTests.swift @@ -1,13 +1,13 @@ // // ErrorMessageParserTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for ErrorMessageParser error code mapping, network error detection, // and message parsing logic. // import Testing -@testable import Casera +@testable import honeyDue // MARK: - API Error Code Mapping Tests diff --git a/iosApp/CaseraTests/PasswordResetViewModelTests.swift b/iosApp/HoneyDueTests/PasswordResetViewModelTests.swift similarity index 99% rename from iosApp/CaseraTests/PasswordResetViewModelTests.swift rename to iosApp/HoneyDueTests/PasswordResetViewModelTests.swift index 77b900c..1d9136b 100644 --- a/iosApp/CaseraTests/PasswordResetViewModelTests.swift +++ b/iosApp/HoneyDueTests/PasswordResetViewModelTests.swift @@ -1,13 +1,13 @@ // // PasswordResetViewModelTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for PasswordResetViewModel navigation, state management, // and client-side validation (no network calls). // import Testing -@testable import Casera +@testable import honeyDue // MARK: - PasswordResetStep Tests diff --git a/iosApp/CaseraTests/StringExtensionsTests.swift b/iosApp/HoneyDueTests/StringExtensionsTests.swift similarity index 98% rename from iosApp/CaseraTests/StringExtensionsTests.swift rename to iosApp/HoneyDueTests/StringExtensionsTests.swift index 2d2745e..d5fed02 100644 --- a/iosApp/CaseraTests/StringExtensionsTests.swift +++ b/iosApp/HoneyDueTests/StringExtensionsTests.swift @@ -1,12 +1,12 @@ // // StringExtensionsTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for String and Optional extensions. // import Testing -@testable import Casera +@testable import honeyDue // MARK: - isBlank Tests diff --git a/iosApp/CaseraTests/SubscriptionGatingTests.swift b/iosApp/HoneyDueTests/SubscriptionGatingTests.swift similarity index 99% rename from iosApp/CaseraTests/SubscriptionGatingTests.swift rename to iosApp/HoneyDueTests/SubscriptionGatingTests.swift index cd70428..fe73f68 100644 --- a/iosApp/CaseraTests/SubscriptionGatingTests.swift +++ b/iosApp/HoneyDueTests/SubscriptionGatingTests.swift @@ -1,6 +1,6 @@ // // SubscriptionGatingTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for SubscriptionCacheWrapper feature gating logic: // currentTier, shouldShowUpgradePrompt, canShareResidence, canShareContractor. @@ -10,7 +10,7 @@ import Testing import Foundation -@testable import Casera +@testable import honeyDue import ComposeApp // MARK: - Helpers diff --git a/iosApp/CaseraTests/TaskMetricsTests.swift b/iosApp/HoneyDueTests/TaskMetricsTests.swift similarity index 99% rename from iosApp/CaseraTests/TaskMetricsTests.swift rename to iosApp/HoneyDueTests/TaskMetricsTests.swift index 0a38ebd..5b18256 100644 --- a/iosApp/CaseraTests/TaskMetricsTests.swift +++ b/iosApp/HoneyDueTests/TaskMetricsTests.swift @@ -1,13 +1,13 @@ // // TaskMetricsTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for WidgetDataManager.TaskMetrics and task categorization logic. // import Testing import Foundation -@testable import Casera +@testable import honeyDue // MARK: - Column Name Constants Tests diff --git a/iosApp/CaseraTests/ThemeIDTests.swift b/iosApp/HoneyDueTests/ThemeIDTests.swift similarity index 96% rename from iosApp/CaseraTests/ThemeIDTests.swift rename to iosApp/HoneyDueTests/ThemeIDTests.swift index f24fe63..08d34f7 100644 --- a/iosApp/CaseraTests/ThemeIDTests.swift +++ b/iosApp/HoneyDueTests/ThemeIDTests.swift @@ -1,12 +1,12 @@ // // ThemeIDTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for ThemeID enum properties and round-tripping. // import Testing -@testable import Casera +@testable import honeyDue // MARK: - ThemeID Enum Tests diff --git a/iosApp/CaseraTests/ValidationHelpersTests.swift b/iosApp/HoneyDueTests/ValidationHelpersTests.swift similarity index 99% rename from iosApp/CaseraTests/ValidationHelpersTests.swift rename to iosApp/HoneyDueTests/ValidationHelpersTests.swift index 8c6702c..5e14ae1 100644 --- a/iosApp/CaseraTests/ValidationHelpersTests.swift +++ b/iosApp/HoneyDueTests/ValidationHelpersTests.swift @@ -1,12 +1,12 @@ // // ValidationHelpersTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for ValidationHelpers, FormValidator, and related types. // import Testing -@testable import Casera +@testable import honeyDue // MARK: - ValidationResult Tests diff --git a/iosApp/CaseraTests/ValidationRulesTests.swift b/iosApp/HoneyDueTests/ValidationRulesTests.swift similarity index 99% rename from iosApp/CaseraTests/ValidationRulesTests.swift rename to iosApp/HoneyDueTests/ValidationRulesTests.swift index 018ec4b..f311e5f 100644 --- a/iosApp/CaseraTests/ValidationRulesTests.swift +++ b/iosApp/HoneyDueTests/ValidationRulesTests.swift @@ -1,12 +1,12 @@ // // ValidationRulesTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for ValidationError and ValidationRules (distinct from ValidationHelpers). // import Testing -@testable import Casera +@testable import honeyDue // MARK: - ValidationError errorDescription Tests diff --git a/iosApp/CaseraTests/WidgetActionTests.swift b/iosApp/HoneyDueTests/WidgetActionTests.swift similarity index 98% rename from iosApp/CaseraTests/WidgetActionTests.swift rename to iosApp/HoneyDueTests/WidgetActionTests.swift index 66d1ea5..df60b4e 100644 --- a/iosApp/CaseraTests/WidgetActionTests.swift +++ b/iosApp/HoneyDueTests/WidgetActionTests.swift @@ -1,6 +1,6 @@ // // WidgetActionTests.swift -// CaseraTests +// honeyDueTests // // Unit tests for WidgetDataManager.WidgetAction (Codable, Equatable, accessors) // and WidgetDataManager.parseDate static helper. @@ -8,7 +8,7 @@ import Testing import Foundation -@testable import Casera +@testable import honeyDue // MARK: - WidgetAction Codable Tests diff --git a/iosApp/CaseraUITests/AccessibilityIdentifiers.swift b/iosApp/HoneyDueUITests/AccessibilityIdentifiers.swift similarity index 100% rename from iosApp/CaseraUITests/AccessibilityIdentifiers.swift rename to iosApp/HoneyDueUITests/AccessibilityIdentifiers.swift diff --git a/iosApp/CaseraUITests/CriticalPath/AuthCriticalPathTests.swift b/iosApp/HoneyDueUITests/CriticalPath/AuthCriticalPathTests.swift similarity index 100% rename from iosApp/CaseraUITests/CriticalPath/AuthCriticalPathTests.swift rename to iosApp/HoneyDueUITests/CriticalPath/AuthCriticalPathTests.swift diff --git a/iosApp/CaseraUITests/CriticalPath/NavigationCriticalPathTests.swift b/iosApp/HoneyDueUITests/CriticalPath/NavigationCriticalPathTests.swift similarity index 100% rename from iosApp/CaseraUITests/CriticalPath/NavigationCriticalPathTests.swift rename to iosApp/HoneyDueUITests/CriticalPath/NavigationCriticalPathTests.swift diff --git a/iosApp/CaseraUITests/CriticalPath/SmokeTests.swift b/iosApp/HoneyDueUITests/CriticalPath/SmokeTests.swift similarity index 100% rename from iosApp/CaseraUITests/CriticalPath/SmokeTests.swift rename to iosApp/HoneyDueUITests/CriticalPath/SmokeTests.swift diff --git a/iosApp/CaseraUITests/Docs/Failing_Suites_0_3_Rebuild_Plan.md b/iosApp/HoneyDueUITests/Docs/Failing_Suites_0_3_Rebuild_Plan.md similarity index 98% rename from iosApp/CaseraUITests/Docs/Failing_Suites_0_3_Rebuild_Plan.md rename to iosApp/HoneyDueUITests/Docs/Failing_Suites_0_3_Rebuild_Plan.md index 71c46ec..c47748e 100644 --- a/iosApp/CaseraUITests/Docs/Failing_Suites_0_3_Rebuild_Plan.md +++ b/iosApp/HoneyDueUITests/Docs/Failing_Suites_0_3_Rebuild_Plan.md @@ -41,7 +41,7 @@ Required infra: ## Suite1 Detailed plan already captured in: -- `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md` +- `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md` ### Failing tests - `test07_successfulRegistrationAndVerification` diff --git a/iosApp/CaseraUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md b/iosApp/HoneyDueUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md similarity index 100% rename from iosApp/CaseraUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md rename to iosApp/HoneyDueUITests/Docs/Suite1_Failing_Test_Rebuild_Plan.md diff --git a/iosApp/CaseraUITests/Fixtures/TestFixtures.swift b/iosApp/HoneyDueUITests/Fixtures/TestFixtures.swift similarity index 100% rename from iosApp/CaseraUITests/Fixtures/TestFixtures.swift rename to iosApp/HoneyDueUITests/Fixtures/TestFixtures.swift diff --git a/iosApp/CaseraUITests/Framework/AuthenticatedTestCase.swift b/iosApp/HoneyDueUITests/Framework/AuthenticatedTestCase.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/AuthenticatedTestCase.swift rename to iosApp/HoneyDueUITests/Framework/AuthenticatedTestCase.swift diff --git a/iosApp/CaseraUITests/Framework/BaseUITestCase.swift b/iosApp/HoneyDueUITests/Framework/BaseUITestCase.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/BaseUITestCase.swift rename to iosApp/HoneyDueUITests/Framework/BaseUITestCase.swift diff --git a/iosApp/CaseraUITests/Framework/RebuildSupport.swift b/iosApp/HoneyDueUITests/Framework/RebuildSupport.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/RebuildSupport.swift rename to iosApp/HoneyDueUITests/Framework/RebuildSupport.swift diff --git a/iosApp/CaseraUITests/Framework/ScreenObjects.swift b/iosApp/HoneyDueUITests/Framework/ScreenObjects.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/ScreenObjects.swift rename to iosApp/HoneyDueUITests/Framework/ScreenObjects.swift diff --git a/iosApp/CaseraUITests/Framework/TestAccountAPIClient.swift b/iosApp/HoneyDueUITests/Framework/TestAccountAPIClient.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/TestAccountAPIClient.swift rename to iosApp/HoneyDueUITests/Framework/TestAccountAPIClient.swift diff --git a/iosApp/CaseraUITests/Framework/TestAccountManager.swift b/iosApp/HoneyDueUITests/Framework/TestAccountManager.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/TestAccountManager.swift rename to iosApp/HoneyDueUITests/Framework/TestAccountManager.swift diff --git a/iosApp/CaseraUITests/Framework/TestDataCleaner.swift b/iosApp/HoneyDueUITests/Framework/TestDataCleaner.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/TestDataCleaner.swift rename to iosApp/HoneyDueUITests/Framework/TestDataCleaner.swift diff --git a/iosApp/CaseraUITests/Framework/TestDataSeeder.swift b/iosApp/HoneyDueUITests/Framework/TestDataSeeder.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/TestDataSeeder.swift rename to iosApp/HoneyDueUITests/Framework/TestDataSeeder.swift diff --git a/iosApp/CaseraUITests/Framework/TestFlows.swift b/iosApp/HoneyDueUITests/Framework/TestFlows.swift similarity index 100% rename from iosApp/CaseraUITests/Framework/TestFlows.swift rename to iosApp/HoneyDueUITests/Framework/TestFlows.swift diff --git a/iosApp/CaseraUITests/PageObjects/BaseScreen.swift b/iosApp/HoneyDueUITests/PageObjects/BaseScreen.swift similarity index 100% rename from iosApp/CaseraUITests/PageObjects/BaseScreen.swift rename to iosApp/HoneyDueUITests/PageObjects/BaseScreen.swift diff --git a/iosApp/CaseraUITests/PageObjects/LoginScreen.swift b/iosApp/HoneyDueUITests/PageObjects/LoginScreen.swift similarity index 100% rename from iosApp/CaseraUITests/PageObjects/LoginScreen.swift rename to iosApp/HoneyDueUITests/PageObjects/LoginScreen.swift diff --git a/iosApp/CaseraUITests/PageObjects/MainTabScreen.swift b/iosApp/HoneyDueUITests/PageObjects/MainTabScreen.swift similarity index 100% rename from iosApp/CaseraUITests/PageObjects/MainTabScreen.swift rename to iosApp/HoneyDueUITests/PageObjects/MainTabScreen.swift diff --git a/iosApp/CaseraUITests/PageObjects/RegisterScreen.swift b/iosApp/HoneyDueUITests/PageObjects/RegisterScreen.swift similarity index 100% rename from iosApp/CaseraUITests/PageObjects/RegisterScreen.swift rename to iosApp/HoneyDueUITests/PageObjects/RegisterScreen.swift diff --git a/iosApp/CaseraUITests/README.md b/iosApp/HoneyDueUITests/README.md similarity index 94% rename from iosApp/CaseraUITests/README.md rename to iosApp/HoneyDueUITests/README.md index d4c185c..543f0a5 100644 --- a/iosApp/CaseraUITests/README.md +++ b/iosApp/HoneyDueUITests/README.md @@ -1,9 +1,9 @@ -# Casera iOS UI Testing Architecture +# honeyDue iOS UI Testing Architecture ## Directory Structure ``` -CaseraUITests/ +HoneyDueUITests/ ├── PageObjects/ # Screen abstractions (Page Object pattern) │ ├── BaseScreen.swift # Common wait/assert utilities │ ├── LoginScreen.swift # Login screen elements and actions @@ -53,16 +53,16 @@ All interactive elements must have identifiers defined in `AccessibilityIdentifi ```bash xcodebuild test -project iosApp.xcodeproj -scheme iosApp \ -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:CaseraUITests/SmokeTests \ - -only-testing:CaseraUITests/AuthCriticalPathTests \ - -only-testing:CaseraUITests/NavigationCriticalPathTests + -only-testing:HoneyDueUITests/SmokeTests \ + -only-testing:HoneyDueUITests/AuthCriticalPathTests \ + -only-testing:HoneyDueUITests/NavigationCriticalPathTests ``` ### Full Regression (nightly) ```bash xcodebuild test -project iosApp.xcodeproj -scheme iosApp \ -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:CaseraUITests + -only-testing:HoneyDueUITests ``` ## Flake Reduction diff --git a/iosApp/CaseraUITests/Scripts/cleanup_test_users.sh b/iosApp/HoneyDueUITests/Scripts/cleanup_test_users.sh similarity index 100% rename from iosApp/CaseraUITests/Scripts/cleanup_test_users.sh rename to iosApp/HoneyDueUITests/Scripts/cleanup_test_users.sh diff --git a/iosApp/CaseraUITests/Scripts/get_verification_code.sh b/iosApp/HoneyDueUITests/Scripts/get_verification_code.sh similarity index 100% rename from iosApp/CaseraUITests/Scripts/get_verification_code.sh rename to iosApp/HoneyDueUITests/Scripts/get_verification_code.sh diff --git a/iosApp/CaseraUITests/SimpleLoginTest.swift b/iosApp/HoneyDueUITests/SimpleLoginTest.swift similarity index 100% rename from iosApp/CaseraUITests/SimpleLoginTest.swift rename to iosApp/HoneyDueUITests/SimpleLoginTest.swift diff --git a/iosApp/CaseraUITests/Suite0_OnboardingTests.swift b/iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift similarity index 98% rename from iosApp/CaseraUITests/Suite0_OnboardingTests.swift rename to iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift index 2885711..a4f3d61 100644 --- a/iosApp/CaseraUITests/Suite0_OnboardingTests.swift +++ b/iosApp/HoneyDueUITests/Suite0_OnboardingTests.swift @@ -4,8 +4,8 @@ import XCTest /// /// SETUP REQUIREMENTS: /// This test suite requires the app to be UNINSTALLED before running. -/// Add a Pre-action script to the CaseraUITests scheme (Edit Scheme → Test → Pre-actions): -/// /usr/bin/xcrun simctl uninstall booted com.tt.casera.CaseraDev +/// Add a Pre-action script to the honeyDueUITests scheme (Edit Scheme → Test → Pre-actions): +/// /usr/bin/xcrun simctl uninstall booted com.tt.honeyDue.HoneyDueDev /// exit 0 /// /// There is ONE fresh-install test that runs the complete onboarding flow. diff --git a/iosApp/CaseraUITests/Suite10_ComprehensiveE2ETests.swift b/iosApp/HoneyDueUITests/Suite10_ComprehensiveE2ETests.swift similarity index 99% rename from iosApp/CaseraUITests/Suite10_ComprehensiveE2ETests.swift rename to iosApp/HoneyDueUITests/Suite10_ComprehensiveE2ETests.swift index 5e034c2..6934e67 100644 --- a/iosApp/CaseraUITests/Suite10_ComprehensiveE2ETests.swift +++ b/iosApp/HoneyDueUITests/Suite10_ComprehensiveE2ETests.swift @@ -1,7 +1,7 @@ import XCTest /// Comprehensive End-to-End Test Suite -/// Closely mirrors TestIntegration_ComprehensiveE2E from myCribAPI-go/internal/integration/integration_test.go +/// Closely mirrors TestIntegration_ComprehensiveE2E from honeyDueAPI-go/internal/integration/integration_test.go /// /// This test creates a complete scenario: /// 1. Registers a new user and verifies login diff --git a/iosApp/CaseraUITests/Suite1_RegistrationTests.swift b/iosApp/HoneyDueUITests/Suite1_RegistrationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite1_RegistrationTests.swift rename to iosApp/HoneyDueUITests/Suite1_RegistrationTests.swift diff --git a/iosApp/CaseraUITests/Suite2_AuthenticationTests.swift b/iosApp/HoneyDueUITests/Suite2_AuthenticationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite2_AuthenticationTests.swift rename to iosApp/HoneyDueUITests/Suite2_AuthenticationTests.swift diff --git a/iosApp/CaseraUITests/Suite3_ResidenceTests.swift b/iosApp/HoneyDueUITests/Suite3_ResidenceTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite3_ResidenceTests.swift rename to iosApp/HoneyDueUITests/Suite3_ResidenceTests.swift diff --git a/iosApp/CaseraUITests/Suite4_ComprehensiveResidenceTests.swift b/iosApp/HoneyDueUITests/Suite4_ComprehensiveResidenceTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite4_ComprehensiveResidenceTests.swift rename to iosApp/HoneyDueUITests/Suite4_ComprehensiveResidenceTests.swift diff --git a/iosApp/CaseraUITests/Suite5_TaskTests.swift b/iosApp/HoneyDueUITests/Suite5_TaskTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite5_TaskTests.swift rename to iosApp/HoneyDueUITests/Suite5_TaskTests.swift diff --git a/iosApp/CaseraUITests/Suite6_ComprehensiveTaskTests.swift b/iosApp/HoneyDueUITests/Suite6_ComprehensiveTaskTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite6_ComprehensiveTaskTests.swift rename to iosApp/HoneyDueUITests/Suite6_ComprehensiveTaskTests.swift diff --git a/iosApp/CaseraUITests/Suite7_ContractorTests.swift b/iosApp/HoneyDueUITests/Suite7_ContractorTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite7_ContractorTests.swift rename to iosApp/HoneyDueUITests/Suite7_ContractorTests.swift diff --git a/iosApp/CaseraUITests/Suite8_DocumentWarrantyTests.swift b/iosApp/HoneyDueUITests/Suite8_DocumentWarrantyTests.swift similarity index 100% rename from iosApp/CaseraUITests/Suite8_DocumentWarrantyTests.swift rename to iosApp/HoneyDueUITests/Suite8_DocumentWarrantyTests.swift diff --git a/iosApp/CaseraUITests/Suite9_IntegrationE2ETests.swift b/iosApp/HoneyDueUITests/Suite9_IntegrationE2ETests.swift similarity index 99% rename from iosApp/CaseraUITests/Suite9_IntegrationE2ETests.swift rename to iosApp/HoneyDueUITests/Suite9_IntegrationE2ETests.swift index d8be955..ec58829 100644 --- a/iosApp/CaseraUITests/Suite9_IntegrationE2ETests.swift +++ b/iosApp/HoneyDueUITests/Suite9_IntegrationE2ETests.swift @@ -1,7 +1,7 @@ import XCTest /// Comprehensive End-to-End Integration Tests -/// Mirrors the backend integration tests in myCribAPI-go/internal/integration/integration_test.go +/// Mirrors the backend integration tests in honeyDueAPI-go/internal/integration/integration_test.go /// /// This test suite covers: /// 1. Full authentication flow (register, login, logout) diff --git a/iosApp/CaseraUITests/TestConfiguration/TestLaunchConfig.swift b/iosApp/HoneyDueUITests/TestConfiguration/TestLaunchConfig.swift similarity index 100% rename from iosApp/CaseraUITests/TestConfiguration/TestLaunchConfig.swift rename to iosApp/HoneyDueUITests/TestConfiguration/TestLaunchConfig.swift diff --git a/iosApp/CaseraUITests/Tests/AccessibilityTests.swift b/iosApp/HoneyDueUITests/Tests/AccessibilityTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/AccessibilityTests.swift rename to iosApp/HoneyDueUITests/Tests/AccessibilityTests.swift diff --git a/iosApp/CaseraUITests/Tests/AppLaunchTests.swift b/iosApp/HoneyDueUITests/Tests/AppLaunchTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/AppLaunchTests.swift rename to iosApp/HoneyDueUITests/Tests/AppLaunchTests.swift diff --git a/iosApp/CaseraUITests/Tests/AuthenticationTests.swift b/iosApp/HoneyDueUITests/Tests/AuthenticationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/AuthenticationTests.swift rename to iosApp/HoneyDueUITests/Tests/AuthenticationTests.swift diff --git a/iosApp/CaseraUITests/Tests/ContractorIntegrationTests.swift b/iosApp/HoneyDueUITests/Tests/ContractorIntegrationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/ContractorIntegrationTests.swift rename to iosApp/HoneyDueUITests/Tests/ContractorIntegrationTests.swift diff --git a/iosApp/CaseraUITests/Tests/DataLayerTests.swift b/iosApp/HoneyDueUITests/Tests/DataLayerTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/DataLayerTests.swift rename to iosApp/HoneyDueUITests/Tests/DataLayerTests.swift diff --git a/iosApp/CaseraUITests/Tests/DocumentIntegrationTests.swift b/iosApp/HoneyDueUITests/Tests/DocumentIntegrationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/DocumentIntegrationTests.swift rename to iosApp/HoneyDueUITests/Tests/DocumentIntegrationTests.swift diff --git a/iosApp/CaseraUITests/Tests/OnboardingTests.swift b/iosApp/HoneyDueUITests/Tests/OnboardingTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/OnboardingTests.swift rename to iosApp/HoneyDueUITests/Tests/OnboardingTests.swift diff --git a/iosApp/CaseraUITests/Tests/PasswordResetTests.swift b/iosApp/HoneyDueUITests/Tests/PasswordResetTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/PasswordResetTests.swift rename to iosApp/HoneyDueUITests/Tests/PasswordResetTests.swift diff --git a/iosApp/CaseraUITests/Tests/Rebuild/Suite0_OnboardingRebuildTests.swift b/iosApp/HoneyDueUITests/Tests/Rebuild/Suite0_OnboardingRebuildTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/Rebuild/Suite0_OnboardingRebuildTests.swift rename to iosApp/HoneyDueUITests/Tests/Rebuild/Suite0_OnboardingRebuildTests.swift diff --git a/iosApp/CaseraUITests/Tests/Rebuild/Suite1_RegistrationRebuildTests.swift b/iosApp/HoneyDueUITests/Tests/Rebuild/Suite1_RegistrationRebuildTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/Rebuild/Suite1_RegistrationRebuildTests.swift rename to iosApp/HoneyDueUITests/Tests/Rebuild/Suite1_RegistrationRebuildTests.swift diff --git a/iosApp/CaseraUITests/Tests/Rebuild/Suite2_AuthenticationRebuildTests.swift b/iosApp/HoneyDueUITests/Tests/Rebuild/Suite2_AuthenticationRebuildTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/Rebuild/Suite2_AuthenticationRebuildTests.swift rename to iosApp/HoneyDueUITests/Tests/Rebuild/Suite2_AuthenticationRebuildTests.swift diff --git a/iosApp/CaseraUITests/Tests/Rebuild/Suite3_ResidenceRebuildTests.swift b/iosApp/HoneyDueUITests/Tests/Rebuild/Suite3_ResidenceRebuildTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/Rebuild/Suite3_ResidenceRebuildTests.swift rename to iosApp/HoneyDueUITests/Tests/Rebuild/Suite3_ResidenceRebuildTests.swift diff --git a/iosApp/CaseraUITests/Tests/ResidenceIntegrationTests.swift b/iosApp/HoneyDueUITests/Tests/ResidenceIntegrationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/ResidenceIntegrationTests.swift rename to iosApp/HoneyDueUITests/Tests/ResidenceIntegrationTests.swift diff --git a/iosApp/CaseraUITests/Tests/StabilityTests.swift b/iosApp/HoneyDueUITests/Tests/StabilityTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/StabilityTests.swift rename to iosApp/HoneyDueUITests/Tests/StabilityTests.swift diff --git a/iosApp/CaseraUITests/Tests/TaskIntegrationTests.swift b/iosApp/HoneyDueUITests/Tests/TaskIntegrationTests.swift similarity index 100% rename from iosApp/CaseraUITests/Tests/TaskIntegrationTests.swift rename to iosApp/HoneyDueUITests/Tests/TaskIntegrationTests.swift diff --git a/iosApp/CaseraUITests/UITestHelpers.swift b/iosApp/HoneyDueUITests/UITestHelpers.swift similarity index 100% rename from iosApp/CaseraUITests/UITestHelpers.swift rename to iosApp/HoneyDueUITests/UITestHelpers.swift diff --git a/iosApp/REFACTORING_PLAN.md b/iosApp/REFACTORING_PLAN.md index dcdfef9..7432d42 100644 --- a/iosApp/REFACTORING_PLAN.md +++ b/iosApp/REFACTORING_PLAN.md @@ -2,9 +2,9 @@ ## Overview -Refactor the MyCrib iOS codebase to improve adherence to SOLID principles and DRY patterns. This plan targets ~1,500 lines of code reduction while significantly improving testability and maintainability. +Refactor the HoneyDue iOS codebase to improve adherence to SOLID principles and DRY patterns. This plan targets ~1,500 lines of code reduction while significantly improving testability and maintainability. -**Scope**: `MyCribKMM/iosApp/iosApp/` +**Scope**: `HoneyDueKMM/iosApp/iosApp/` **Estimated Effort**: 4-5 focused sessions **Risk Level**: Medium (ViewModels are central to app functionality) diff --git a/iosApp/TEST_FAILURES_ANALYSIS.md b/iosApp/TEST_FAILURES_ANALYSIS.md index 23c1038..ec3d0ab 100644 --- a/iosApp/TEST_FAILURES_ANALYSIS.md +++ b/iosApp/TEST_FAILURES_ANALYSIS.md @@ -17,7 +17,7 @@ The UI tests you're seeing fail are **failing for the right reason** - they cann - Ready to be used in views 3. ✅ **Fixed test compilation issues** - - Added `@testable import MyCrib` to all test files + - Added `@testable import HoneyDue` to all test files - Fixed ambiguous type references - Tests compile successfully @@ -260,7 +260,7 @@ xcodebuild test \ -project iosApp.xcodeproj \ -scheme iosApp \ -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:MyCribTests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials + -only-testing:HoneyDueTests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials ``` ## Why Tests Are Failing Now diff --git a/iosApp/UI_TESTS_README.md b/iosApp/UI_TESTS_README.md index 6a79a1b..4d9a291 100644 --- a/iosApp/UI_TESTS_README.md +++ b/iosApp/UI_TESTS_README.md @@ -1,4 +1,4 @@ -# MyCrib iOS UI Tests +# HoneyDue iOS UI Tests ## ✅ Status: WORKING @@ -85,25 +85,25 @@ XCTAssertTrue(addButton.waitForExistence(timeout: 5), ### In Xcode (Recommended) 1. Open `iosApp.xcodeproj` -2. Select **MyCribUITests** scheme +2. Select **HoneyDueUITests** scheme 3. Press `Cmd+U` to run all tests 4. Or click diamond icon next to individual test to run just that one ### Command Line ```bash # Run all UI tests -xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \ +xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \ -destination 'platform=iOS Simulator,name=iPhone 17' # Run specific test file -xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \ +xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \ -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:MyCribUITests/AuthenticationTests + -only-testing:HoneyDueUITests/AuthenticationTests # Run specific test -xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \ +xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \ -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:MyCribUITests/AuthenticationTests/testLoginWithValidCredentials + -only-testing:HoneyDueUITests/AuthenticationTests/testLoginWithValidCredentials ``` ## 📝 Test Credentials diff --git a/iosApp/UI_TESTS_SUMMARY.md b/iosApp/UI_TESTS_SUMMARY.md index 418a69c..3038ade 100644 --- a/iosApp/UI_TESTS_SUMMARY.md +++ b/iosApp/UI_TESTS_SUMMARY.md @@ -1,4 +1,4 @@ -# MyCrib iOS UI Tests - Complete Rewrite Summary +# HoneyDue iOS UI Tests - Complete Rewrite Summary ## ✅ Status: BUILD SUCCEEDED @@ -152,10 +152,10 @@ All UI tests have been completely rewritten from scratch with comprehensive edge - `takeScreenshot(named:)` - Named screenshots ### 5. **AccessibilityIdentifiers.swift** (213 lines) -Copied to MyCribUITests folder for UI test access without `@testable import`. +Copied to HoneyDueUITests folder for UI test access without `@testable import`. -### 6. **MyCribUITests.swift & MyCribUITestsLaunchTests.swift** -Updated to remove `@testable import MyCrib` (UI tests run in separate process). +### 6. **HoneyDueUITests.swift & HoneyDueUITestsLaunchTests.swift** +Updated to remove `@testable import HoneyDue` (UI tests run in separate process). ## 🗑️ Removed Files - AuthenticationUITests.swift (old, had @testable import) @@ -231,26 +231,26 @@ All tests compile successfully with no errors. Only warnings are from the main a 1. **Fix AccessibilityIdentifiers Target Membership:** - Open `iosApp.xcodeproj` in Xcode - Select `iosApp/Helpers/AccessibilityIdentifiers.swift` in Project Navigator - - In File Inspector (right panel), **uncheck** "MyCribUITests" from Target Membership + - In File Inspector (right panel), **uncheck** "HoneyDueUITests" from Target Membership - Only `iosApp` should be checked - - The copy in `MyCribUITests/AccessibilityIdentifiers.swift` should have "MyCribUITests" checked + - The copy in `HoneyDueUITests/AccessibilityIdentifiers.swift` should have "HoneyDueUITests" checked 2. **Run Tests:** ```bash # Run all UI tests xcodebuild test -project iosApp.xcodeproj -scheme iosApp \ -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:MyCribUITests + -only-testing:HoneyDueUITests # Run specific test class xcodebuild test -project iosApp.xcodeproj -scheme iosApp \ -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:MyCribUITests/ComprehensiveAuthenticationTests + -only-testing:HoneyDueUITests/ComprehensiveAuthenticationTests # Run specific test xcodebuild test -project iosApp.xcodeproj -scheme iosApp \ -destination 'platform=iOS Simulator,name=iPhone 17' \ - -only-testing:MyCribUITests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials + -only-testing:HoneyDueUITests/ComprehensiveAuthenticationTests/testLoginWithValidCredentials ``` ## 🎯 Test Philosophy diff --git a/iosApp/UI_TEST_STRATEGY.md b/iosApp/UI_TEST_STRATEGY.md index f62adc3..ccb0181 100644 --- a/iosApp/UI_TEST_STRATEGY.md +++ b/iosApp/UI_TEST_STRATEGY.md @@ -1,4 +1,4 @@ -# MyCrib iOS UI Test Strategy +# HoneyDue iOS UI Test Strategy ## Current Status: REBUILDING FROM SCRATCH @@ -50,12 +50,12 @@ Once SimpleLoginTest works, we'll build: ### In Xcode (Recommended) 1. Open `iosApp.xcodeproj` -2. Select MyCribUITests scheme +2. Select HoneyDueUITests scheme 3. Press Cmd+U or click diamond icon next to test ### Command Line ```bash -xcodebuild test -project iosApp.xcodeproj -scheme MyCribUITests \ +xcodebuild test -project iosApp.xcodeproj -scheme HoneyDueUITests \ -destination 'platform=iOS Simulator,name=iPhone 17' ``` diff --git a/iosApp/XCUITEST_DEBUGGING_GUIDE.md b/iosApp/XCUITEST_DEBUGGING_GUIDE.md index 7c99733..3efb0f0 100644 --- a/iosApp/XCUITEST_DEBUGGING_GUIDE.md +++ b/iosApp/XCUITEST_DEBUGGING_GUIDE.md @@ -37,13 +37,13 @@ This is the fastest way to diagnose the issue: 1. **Open the project in Xcode:** ```bash - cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp + cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp open iosApp.xcodeproj ``` 2. **Select the Test target and a simulator:** - Select "iPhone 17 Pro" simulator from the device dropdown - - Select the `MyCribTests` scheme + - Select the `HoneyDueTests` scheme 3. **Use UI Recording to see what elements exist:** - Open `DebugLoginTest.swift` @@ -84,12 +84,12 @@ Then run tests and check if "LoginView appeared" prints in console. The `DebugLoginTest.swift` is already simplified. Try running it: ```bash -cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp +cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp xcodebuild test \ -project iosApp.xcodeproj \ -scheme iosApp \ -destination 'platform=iOS Simulator,name=iPhone 17 Pro' \ - -only-testing:MyCribTests/DebugLoginTest/testAppLaunches + -only-testing:HoneyDueTests/DebugLoginTest/testAppLaunches ``` Check if it passes (meaning the app launches and has SOME UI elements). @@ -98,17 +98,17 @@ Check if it passes (meaning the app launches and has SOME UI elements). ### 1. AccessibilityIdentifiers Not in Test Target -Verify that `AccessibilityIdentifiers.swift` is included in the **iosApp target** (not MyCribTests): +Verify that `AccessibilityIdentifiers.swift` is included in the **iosApp target** (not HoneyDueTests): - In Xcode, select `Helpers/AccessibilityIdentifiers.swift` - In File Inspector (right panel), check "Target Membership" - ✅ `iosApp` should be checked -- ❌ `MyCribTests` should NOT be checked +- ❌ `HoneyDueTests` should NOT be checked ### 2. LoginView Not Using Correct Identifiers Double-check `Login/LoginView.swift`: ```bash -grep "accessibilityIdentifier" /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/LoginView.swift +grep "accessibilityIdentifier" /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/LoginView.swift ``` Should output: @@ -148,50 +148,50 @@ Try moving initialization to background thread or making it async. ```bash # Check if identifiers are in LoginView -grep -c "accessibilityIdentifier" /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/LoginView.swift +grep -c "accessibilityIdentifier" /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/LoginView.swift # Should output: 6 # Check if AccessibilityIdentifiers exists -ls -la /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift +ls -la /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift # Should show the file # Run simplified debug test -cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp +cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp xcodebuild test -project iosApp.xcodeproj -scheme iosApp \ -destination 'platform=iOS Simulator,name=iPhone 17 Pro' \ - -only-testing:MyCribTests/DebugLoginTest/testAppLaunches 2>&1 | grep "Test Case" + -only-testing:HoneyDueTests/DebugLoginTest/testAppLaunches 2>&1 | grep "Test Case" ``` ## Expected Output When Working When tests work properly, you should see: ``` -Test Case '-[MyCribTests.DebugLoginTest testAppLaunches]' started. +Test Case '-[HoneyDueTests.DebugLoginTest testAppLaunches]' started. Activity 'Found 1 text fields' started Activity 'Found 1 secure fields' started Activity 'Found 5 buttons' started Activity 'Email field exists: true' started Activity 'Password field exists: true' started -Test Case '-[MyCribTests.DebugLoginTest testAppLaunches]' passed (5.234 seconds). +Test Case '-[HoneyDueTests.DebugLoginTest testAppLaunches]' passed (5.234 seconds). ``` Currently seeing: ``` -Test Case '-[MyCribTests.DebugLoginTest testAppLaunches]' failed (0.540 seconds) +Test Case '-[HoneyDueTests.DebugLoginTest testAppLaunches]' failed (0.540 seconds) ``` The ~0.5 second failure suggests the app isn't even launching or is crashing immediately. ## Files Modified -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift` - Created -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/LoginView.swift` - Added 6 identifiers -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Login/RegisterView.swift` - Added 6 identifiers -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/MainTabView.swift` - Added 5 tab identifiers -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Residence/*` - Added 15+ identifiers -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Profile/ProfileTabView.swift` - Added logout identifier -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/MyCribTests/TestHelpers.swift` - Updated to use identifiers -- ✅ `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/MyCribTests/DebugLoginTest.swift` - Simplified debug test +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Helpers/AccessibilityIdentifiers.swift` - Created +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/LoginView.swift` - Added 6 identifiers +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Login/RegisterView.swift` - Added 6 identifiers +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/MainTabView.swift` - Added 5 tab identifiers +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Residence/*` - Added 15+ identifiers +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Profile/ProfileTabView.swift` - Added logout identifier +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/HoneyDueTests/TestHelpers.swift` - Updated to use identifiers +- ✅ `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/HoneyDueTests/DebugLoginTest.swift` - Simplified debug test ## Next Action diff --git a/iosApp/XCUITEST_IMPLEMENTATION_GUIDE.md b/iosApp/XCUITEST_IMPLEMENTATION_GUIDE.md index 55f8c90..2a7e921 100644 --- a/iosApp/XCUITEST_IMPLEMENTATION_GUIDE.md +++ b/iosApp/XCUITEST_IMPLEMENTATION_GUIDE.md @@ -2,7 +2,7 @@ ## Overview -This guide provides step-by-step instructions for implementing comprehensive UI testing for the MyCrib iOS app using XCUITest. +This guide provides step-by-step instructions for implementing comprehensive UI testing for the HoneyDue iOS app using XCUITest. ## Table of Contents @@ -18,7 +18,7 @@ This guide provides step-by-step instructions for implementing comprehensive UI ### Current Status ✅ **Already Done:** -- UI Test target exists: `MyCribTests` +- UI Test target exists: `HoneyDueTests` - Base test infrastructure in place (`TestHelpers.swift`, `BaseUITest`) - Initial test files created @@ -272,12 +272,12 @@ Here's a checklist of all views that need accessibility identifiers: 1. **Open the project:** ```bash - cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp + cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp open iosApp.xcodeproj ``` 2. **Select the test target:** - - Product → Scheme → MyCribTests + - Product → Scheme → HoneyDueTests 3. **Choose a simulator:** - iPhone 15 Pro (recommended) @@ -296,27 +296,27 @@ Here's a checklist of all views that need accessibility identifiers: ```bash # Navigate to iOS app directory -cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp +cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp # Run all tests xcodebuild test \ -project iosApp.xcodeproj \ - -scheme MyCribTests \ + -scheme HoneyDueTests \ -destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0' # Run specific test class xcodebuild test \ -project iosApp.xcodeproj \ - -scheme MyCribTests \ + -scheme HoneyDueTests \ -destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0' \ - -only-testing:MyCribTests/AuthenticationUITests + -only-testing:HoneyDueTests/AuthenticationUITests # Run specific test method xcodebuild test \ -project iosApp.xcodeproj \ - -scheme MyCribTests \ + -scheme HoneyDueTests \ -destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0' \ - -only-testing:MyCribTests/AuthenticationUITests/testLoginWithValidCredentials + -only-testing:HoneyDueTests/AuthenticationUITests/testLoginWithValidCredentials ``` ### Test Results @@ -359,7 +359,7 @@ jobs: - name: Start Django Backend run: | - cd myCribAPI + cd honeyDueAPI docker-compose up -d sleep 10 # Wait for backend to start @@ -369,10 +369,10 @@ jobs: - name: Run iOS UI Tests run: | - cd MyCribKMM/iosApp + cd HoneyDueKMM/iosApp xcodebuild test \ -project iosApp.xcodeproj \ - -scheme MyCribTests \ + -scheme HoneyDueTests \ -destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.2' \ -resultBundlePath TestResults.xcresult \ -enableCodeCoverage YES @@ -382,7 +382,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: test-results - path: MyCribKMM/iosApp/TestResults.xcresult + path: HoneyDueKMM/iosApp/TestResults.xcresult - name: Upload Screenshots if: failure() @@ -395,7 +395,7 @@ jobs: - name: Stop Docker Containers if: always() run: | - cd myCribAPI + cd honeyDueAPI docker-compose down ``` @@ -408,10 +408,10 @@ jobs: Create a `.xctestplan` file for better organization: 1. In Xcode: File → New → Test Plan -2. Name it: `MyCribTestPlan.xctestplan` +2. Name it: `HoneyDueTestPlan.xctestplan` 3. Configure: - **Configurations**: Debug, Release - - **Test Targets**: MyCribTests + - **Test Targets**: HoneyDueTests - **Code Coverage**: Enable - **Screenshots**: Automatically on failure diff --git a/iosApp/XCUITEST_IMPLEMENTATION_SUMMARY.md b/iosApp/XCUITEST_IMPLEMENTATION_SUMMARY.md index b4db442..e33a285 100644 --- a/iosApp/XCUITEST_IMPLEMENTATION_SUMMARY.md +++ b/iosApp/XCUITEST_IMPLEMENTATION_SUMMARY.md @@ -2,7 +2,7 @@ ## Overview -This document summarizes the comprehensive XCUITest implementation created for the MyCrib iOS app. All deliverables are based on the `AUTOMATED_TEST_EXECUTION_PLAN.md` and follow iOS best practices for UI testing. +This document summarizes the comprehensive XCUITest implementation created for the HoneyDue iOS app. All deliverables are based on the `AUTOMATED_TEST_EXECUTION_PLAN.md` and follow iOS best practices for UI testing. --- @@ -43,7 +43,7 @@ Three complete test files covering all major flows from the automated test plan: ####ComprehensiveAuthenticationTests.swift` -**Location:** `iosApp/MyCribTests/ComprehensiveAuthenticationTests.swift` +**Location:** `iosApp/HoneyDueTests/ComprehensiveAuthenticationTests.swift` **Tests Included:** - `testUserRegistrationComplete()` - Test 1.1: Full registration flow @@ -70,7 +70,7 @@ Three complete test files covering all major flows from the automated test plan: #### `ComprehensiveResidenceTests.swift` -**Location:** `iosApp/MyCribTests/ComprehensiveResidenceTests.swift` +**Location:** `iosApp/HoneyDueTests/ComprehensiveResidenceTests.swift` **Tests Included:** - `testCreateResidenceComplete()` - Test 2.1: Create property @@ -102,7 +102,7 @@ Three complete test files covering all major flows from the automated test plan: #### `ComprehensiveTaskTests.swift` -**Location:** `iosApp/MyCribTests/ComprehensiveTaskTests.swift` +**Location:** `iosApp/HoneyDueTests/ComprehensiveTaskTests.swift` **Tests Included:** - `testCreateOneTimeTaskComplete()` - Test 3.1: Create one-time task @@ -192,7 +192,7 @@ A comprehensive 400+ line guide covering: ### 4. ✅ Enhanced Test Helpers (Already Existing) -**File:** `iosApp/MyCribTests/TestHelpers.swift` (Already in project) +**File:** `iosApp/HoneyDueTests/TestHelpers.swift` (Already in project) The existing test infrastructure includes: @@ -268,12 +268,12 @@ TextField("Email", text: $email) 1. **Open Xcode** ```bash - cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp + cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp open iosApp.xcodeproj ``` 2. **Select Test Target** - - Product → Scheme → MyCribTests + - Product → Scheme → HoneyDueTests 3. **Run Individual Test** - Open `ComprehensiveAuthenticationTests.swift` @@ -397,13 +397,13 @@ TextField("Email", text: $email) 1. **`iosApp/Helpers/AccessibilityIdentifiers.swift`** (253 lines) - Centralized accessibility identifiers -2. **`iosApp/MyCribTests/ComprehensiveAuthenticationTests.swift`** (232 lines) +2. **`iosApp/HoneyDueTests/ComprehensiveAuthenticationTests.swift`** (232 lines) - 11 authentication tests -3. **`iosApp/MyCribTests/ComprehensiveResidenceTests.swift`** (387 lines) +3. **`iosApp/HoneyDueTests/ComprehensiveResidenceTests.swift`** (387 lines) - 10 residence management tests -4. **`iosApp/MyCribTests/ComprehensiveTaskTests.swift`** (437 lines) +4. **`iosApp/HoneyDueTests/ComprehensiveTaskTests.swift`** (437 lines) - 13 task management tests 5. **`iosApp/XCUITEST_IMPLEMENTATION_GUIDE.md`** (451 lines) @@ -490,7 +490,7 @@ For questions about this implementation, refer to the guide or check: ## Summary -This implementation provides a **complete, production-ready XCUITest infrastructure** for the MyCrib iOS app: +This implementation provides a **complete, production-ready XCUITest infrastructure** for the HoneyDue iOS app: ✅ **34 comprehensive tests** covering authentication, residences, and tasks ✅ **Centralized accessibility identifiers** for maintainability diff --git a/iosApp/XCUITest-Authoring.md b/iosApp/XCUITest-Authoring.md index 72a80db..01e5550 100644 --- a/iosApp/XCUITest-Authoring.md +++ b/iosApp/XCUITest-Authoring.md @@ -1,8 +1,8 @@ # XCUITest Authoring ## Required Architecture -- Put shared test infrastructure in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Framework`. -- Put feature suites in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Tests`. +- Put shared test infrastructure in `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Framework`. +- Put feature suites in `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Tests`. - Every test suite inherits `BaseUITestCase`. - Reusable multi-step setup belongs in `TestFlows`. - UI interactions should go through screen objects in `ScreenObjects.swift`. @@ -12,7 +12,7 @@ - `--ui-testing` - `--disable-animations` - `--reset-state` -- App-side behavior for UI test mode is implemented in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/iosApp/Helpers/UITestRuntime.swift`. +- App-side behavior for UI test mode is implemented in `/Users/treyt/Desktop/code/HoneyDueKMM/iosApp/iosApp/Helpers/UITestRuntime.swift`. ## Naming - Test method naming format: `test_()`. diff --git a/iosApp/iosApp.xcodeproj/project.pbxproj b/iosApp/iosApp.xcodeproj/project.pbxproj index ee0a79a..f848457 100644 --- a/iosApp/iosApp.xcodeproj/project.pbxproj +++ b/iosApp/iosApp.xcodeproj/project.pbxproj @@ -9,11 +9,11 @@ /* Begin PBXBuildFile section */ 1C0789402EBC218B00392B46 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C07893F2EBC218B00392B46 /* WidgetKit.framework */; }; 1C0789422EBC218B00392B46 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C0789412EBC218B00392B46 /* SwiftUI.framework */; }; - 1C0789532EBC218D00392B46 /* CaseraExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C07893D2EBC218B00392B46 /* CaseraExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 1C0789532EBC218D00392B46 /* HoneyDueExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 1C81F26B2EE416EE000739EA /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C81F26A2EE416EE000739EA /* QuickLook.framework */; }; - 1C81F2772EE416EF000739EA /* CaseraQLPreview.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 1C81F2772EE416EF000739EA /* HoneyDueQLPreview.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 1C81F2822EE41BB6000739EA /* QuickLookThumbnailing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1C81F2812EE41BB6000739EA /* QuickLookThumbnailing.framework */; }; - 1C81F2892EE41BB6000739EA /* CaseraQLThumbnail.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 1C81F2892EE41BB6000739EA /* HoneyDueQLThumbnail.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 1C81F3902EE69AF1000739EA /* PostHog in Frameworks */ = {isa = PBXBuildFile; productRef = 1C81F38F2EE69AF1000739EA /* PostHog */; }; /* End PBXBuildFile section */ @@ -23,21 +23,21 @@ containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */; proxyType = 1; remoteGlobalIDString = 1C07893C2EBC218B00392B46; - remoteInfo = CaseraExtension; + remoteInfo = HoneyDueExtension; }; 1C81F2752EE416EF000739EA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */; proxyType = 1; remoteGlobalIDString = 1C81F2682EE416EE000739EA; - remoteInfo = CaseraQLPreview; + remoteInfo = HoneyDueQLPreview; }; 1C81F2872EE41BB6000739EA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6A3E1D84F9F1A2FD92A75A6C /* Project object */; proxyType = 1; remoteGlobalIDString = 1C81F27F2EE41BB6000739EA; - remoteInfo = CaseraQLThumbnail; + remoteInfo = HoneyDueQLThumbnail; }; 1CBF16002ECD8AE4001BF56C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -62,9 +62,9 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( - 1C0789532EBC218D00392B46 /* CaseraExtension.appex in Embed Foundation Extensions */, - 1C81F2892EE41BB6000739EA /* CaseraQLThumbnail.appex in Embed Foundation Extensions */, - 1C81F2772EE416EF000739EA /* CaseraQLPreview.appex in Embed Foundation Extensions */, + 1C0789532EBC218D00392B46 /* HoneyDueExtension.appex in Embed Foundation Extensions */, + 1C81F2892EE41BB6000739EA /* HoneyDueQLThumbnail.appex in Embed Foundation Extensions */, + 1C81F2772EE416EF000739EA /* HoneyDueQLPreview.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -72,66 +72,31 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 1C07893D2EBC218B00392B46 /* CaseraExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CaseraExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = HoneyDueExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 1C07893F2EBC218B00392B46 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; 1C0789412EBC218B00392B46 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; - 1C0789612EBC2F5400392B46 /* CaseraExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = CaseraExtension.entitlements; sourceTree = ""; }; - 1C685CD22EC5539000A9669B /* CaseraTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CaseraTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CaseraQLPreview.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C0789612EBC2F5400392B46 /* HoneyDueExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = HoneyDueExtension.entitlements; sourceTree = ""; }; + 1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HoneyDueTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = HoneyDueQLPreview.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 1C81F26A2EE416EE000739EA /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; - 1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = CaseraQLThumbnail.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = HoneyDueQLThumbnail.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 1C81F2812EE41BB6000739EA /* QuickLookThumbnailing.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLookThumbnailing.framework; path = System/Library/Frameworks/QuickLookThumbnailing.framework; sourceTree = SDKROOT; }; - 1C87A0C42EDB8ED40081E450 /* CaseraUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = CaseraUITests.xctestplan; sourceTree = ""; }; - 1CBF1BED2ECD9768001BF56C /* CaseraUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CaseraUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1C87A0C42EDB8ED40081E450 /* HoneyDueUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = HoneyDueUITests.xctestplan; sourceTree = ""; }; + 1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HoneyDueUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 4B07E04F794A4C1CAA8CCD5D /* PhotoViewerSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoViewerSheet.swift; sourceTree = ""; }; - 96A3DDC05E14B3F83E56282F /* Casera.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Casera.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 96A3DDC05E14B3F83E56282F /* HoneyDue.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HoneyDue.app; sourceTree = BUILT_PRODUCTS_DIR; }; AD6CD907CA1045CBBC845D91 /* CompletionCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompletionCardView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ - 1C0789572EBC218D00392B46 /* Exceptions for "Casera" folder in "CaseraExtension" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Info.plist, - ); - target = 1C07893C2EBC218B00392B46 /* CaseraExtension */; - }; - 1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "CaseraUITests" target */ = { + 1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "HoneyDueUITests" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Helpers/AccessibilityIdentifiers.swift, ); - target = 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */; + target = 1CBF1BEC2ECD9768001BF56C /* HoneyDueUITests */; }; - 1C77EDA22ECE797700A53003 /* Exceptions for "CaseraUITests" folder in "CaseraUITests" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - AccessibilityIdentifiers.swift, - ); - target = 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */; - }; - 1C81F27B2EE416EF000739EA /* Exceptions for "CaseraQLPreview" folder in "CaseraQLPreview" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Info.plist, - ); - target = 1C81F2682EE416EE000739EA /* CaseraQLPreview */; - }; - 1C81F28D2EE41BB6000739EA /* Exceptions for "CaseraQLThumbnail" folder in "CaseraQLThumbnail" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - Info.plist, - ); - target = 1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */; - }; - 1C81F38A2EE5E430000739EA /* Exceptions for "Casera" folder in "Casera" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - CaseraIconView.swift, - ); - target = D4ADB376A7A4CFB73469E173 /* Casera */; - }; - 1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "CaseraExtension" target */ = { + 1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "HoneyDueExtension" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Assets.xcassets, @@ -139,64 +104,41 @@ Design/OrganicDesign.swift, Helpers/ThemeManager.swift, ); - target = 1C07893C2EBC218B00392B46 /* CaseraExtension */; + target = 1C07893C2EBC218B00392B46 /* HoneyDueExtension */; }; - 1CBF1C072ECD97AC001BF56C /* Exceptions for "CaseraTests" folder in "CaseraTests" target */ = { - isa = PBXFileSystemSynchronizedBuildFileExceptionSet; - membershipExceptions = ( - CaseraTests.swift, - ); - target = 1C685CD12EC5539000A9669B /* CaseraTests */; - }; - 84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "Casera" target */ = { + 84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "HoneyDue" target */ = { isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( Info.plist, ); - target = D4ADB376A7A4CFB73469E173 /* Casera */; + target = D4ADB376A7A4CFB73469E173 /* HoneyDue */; }; /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - 1C0789432EBC218B00392B46 /* Casera */ = { + 1C0789432EBC218B00392B46 /* HoneyDue */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 1C81F38A2EE5E430000739EA /* Exceptions for "Casera" folder in "Casera" target */, - 1C0789572EBC218D00392B46 /* Exceptions for "Casera" folder in "CaseraExtension" target */, - ); - path = Casera; + path = HoneyDue; sourceTree = ""; }; - 1C685CD32EC5539000A9669B /* CaseraTests */ = { + 1C685CD32EC5539000A9669B /* HoneyDueTests */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 1CBF1C072ECD97AC001BF56C /* Exceptions for "CaseraTests" folder in "CaseraTests" target */, - ); - path = CaseraTests; + path = HoneyDueTests; sourceTree = ""; }; - 1C81F26C2EE416EE000739EA /* CaseraQLPreview */ = { + 1C81F26C2EE416EE000739EA /* HoneyDueQLPreview */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 1C81F27B2EE416EF000739EA /* Exceptions for "CaseraQLPreview" folder in "CaseraQLPreview" target */, - ); - path = CaseraQLPreview; + path = HoneyDueQLPreview; sourceTree = ""; }; - 1C81F2832EE41BB6000739EA /* CaseraQLThumbnail */ = { + 1C81F2832EE41BB6000739EA /* HoneyDueQLThumbnail */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 1C81F28D2EE41BB6000739EA /* Exceptions for "CaseraQLThumbnail" folder in "CaseraQLThumbnail" target */, - ); - path = CaseraQLThumbnail; + path = HoneyDueQLThumbnail; sourceTree = ""; }; - 1CBF1BEE2ECD9768001BF56C /* CaseraUITests */ = { + 1CBF1BEE2ECD9768001BF56C /* HoneyDueUITests */ = { isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - 1C77EDA22ECE797700A53003 /* Exceptions for "CaseraUITests" folder in "CaseraUITests" target */, - ); - path = CaseraUITests; + path = HoneyDueUITests; sourceTree = ""; }; 7A237E53D5D71D9D6A361E29 /* Configuration */ = { @@ -207,9 +149,9 @@ E822E6B231E7783DE992578C /* iosApp */ = { isa = PBXFileSystemSynchronizedRootGroup; exceptions = ( - 84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "Casera" target */, - 1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "CaseraExtension" target */, - 1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "CaseraUITests" target */, + 84D9B4B86A80D013B8CBB951 /* Exceptions for "iosApp" folder in "HoneyDue" target */, + 1C87A67A2EDCC3100081E450 /* Exceptions for "iosApp" folder in "HoneyDueExtension" target */, + 1C77EDA12ECE784100A53003 /* Exceptions for "iosApp" folder in "HoneyDueUITests" target */, ); path = iosApp; sourceTree = ""; @@ -290,15 +232,15 @@ 86BC7E88090398B44B7DB0E4 = { isa = PBXGroup; children = ( - 1C87A0C42EDB8ED40081E450 /* CaseraUITests.xctestplan */, - 1C0789612EBC2F5400392B46 /* CaseraExtension.entitlements */, + 1C87A0C42EDB8ED40081E450 /* HoneyDueUITests.xctestplan */, + 1C0789612EBC2F5400392B46 /* HoneyDueExtension.entitlements */, 7A237E53D5D71D9D6A361E29 /* Configuration */, E822E6B231E7783DE992578C /* iosApp */, - 1C0789432EBC218B00392B46 /* Casera */, - 1C685CD32EC5539000A9669B /* CaseraTests */, - 1CBF1BEE2ECD9768001BF56C /* CaseraUITests */, - 1C81F26C2EE416EE000739EA /* CaseraQLPreview */, - 1C81F2832EE41BB6000739EA /* CaseraQLThumbnail */, + 1C0789432EBC218B00392B46 /* HoneyDue */, + 1C685CD32EC5539000A9669B /* HoneyDueTests */, + 1CBF1BEE2ECD9768001BF56C /* HoneyDueUITests */, + 1C81F26C2EE416EE000739EA /* HoneyDueQLPreview */, + 1C81F2832EE41BB6000739EA /* HoneyDueQLThumbnail */, 1C07893E2EBC218B00392B46 /* Frameworks */, FA6022B7B844191C54E57EB4 /* Products */, 1C078A1B2EC1820B00392B46 /* Recovered References */, @@ -308,12 +250,12 @@ FA6022B7B844191C54E57EB4 /* Products */ = { isa = PBXGroup; children = ( - 96A3DDC05E14B3F83E56282F /* Casera.app */, - 1C07893D2EBC218B00392B46 /* CaseraExtension.appex */, - 1C685CD22EC5539000A9669B /* CaseraTests.xctest */, - 1CBF1BED2ECD9768001BF56C /* CaseraUITests.xctest */, - 1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */, - 1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */, + 96A3DDC05E14B3F83E56282F /* HoneyDue.app */, + 1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */, + 1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */, + 1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */, + 1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */, + 1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */, ); name = Products; sourceTree = ""; @@ -321,9 +263,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 1C07893C2EBC218B00392B46 /* CaseraExtension */ = { + 1C07893C2EBC218B00392B46 /* HoneyDueExtension */ = { isa = PBXNativeTarget; - buildConfigurationList = 1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "CaseraExtension" */; + buildConfigurationList = 1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "HoneyDueExtension" */; buildPhases = ( 1C0789392EBC218B00392B46 /* Sources */, 1C07893A2EBC218B00392B46 /* Frameworks */, @@ -334,18 +276,18 @@ dependencies = ( ); fileSystemSynchronizedGroups = ( - 1C0789432EBC218B00392B46 /* Casera */, + 1C0789432EBC218B00392B46 /* HoneyDue */, ); - name = CaseraExtension; + name = HoneyDueExtension; packageProductDependencies = ( ); - productName = CaseraExtension; - productReference = 1C07893D2EBC218B00392B46 /* CaseraExtension.appex */; + productName = HoneyDueExtension; + productReference = 1C07893D2EBC218B00392B46 /* HoneyDueExtension.appex */; productType = "com.apple.product-type.app-extension"; }; - 1C685CD12EC5539000A9669B /* CaseraTests */ = { + 1C685CD12EC5539000A9669B /* HoneyDueTests */ = { isa = PBXNativeTarget; - buildConfigurationList = 1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "CaseraTests" */; + buildConfigurationList = 1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "HoneyDueTests" */; buildPhases = ( 1C685CCE2EC5539000A9669B /* Sources */, 1C685CCF2EC5539000A9669B /* Frameworks */, @@ -357,18 +299,18 @@ 1CBF16012ECD8AE4001BF56C /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( - 1C685CD32EC5539000A9669B /* CaseraTests */, + 1C685CD32EC5539000A9669B /* HoneyDueTests */, ); - name = CaseraTests; + name = HoneyDueTests; packageProductDependencies = ( ); - productName = CaseraTests; - productReference = 1C685CD22EC5539000A9669B /* CaseraTests.xctest */; + productName = HoneyDueTests; + productReference = 1C685CD22EC5539000A9669B /* HoneyDueTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 1C81F2682EE416EE000739EA /* CaseraQLPreview */ = { + 1C81F2682EE416EE000739EA /* HoneyDueQLPreview */ = { isa = PBXNativeTarget; - buildConfigurationList = 1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "CaseraQLPreview" */; + buildConfigurationList = 1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLPreview" */; buildPhases = ( 1C81F2652EE416EE000739EA /* Sources */, 1C81F2662EE416EE000739EA /* Frameworks */, @@ -379,18 +321,18 @@ dependencies = ( ); fileSystemSynchronizedGroups = ( - 1C81F26C2EE416EE000739EA /* CaseraQLPreview */, + 1C81F26C2EE416EE000739EA /* HoneyDueQLPreview */, ); - name = CaseraQLPreview; + name = HoneyDueQLPreview; packageProductDependencies = ( ); - productName = CaseraQLPreview; - productReference = 1C81F2692EE416EE000739EA /* CaseraQLPreview.appex */; + productName = HoneyDueQLPreview; + productReference = 1C81F2692EE416EE000739EA /* HoneyDueQLPreview.appex */; productType = "com.apple.product-type.app-extension"; }; - 1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */ = { + 1C81F27F2EE41BB6000739EA /* HoneyDueQLThumbnail */ = { isa = PBXNativeTarget; - buildConfigurationList = 1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "CaseraQLThumbnail" */; + buildConfigurationList = 1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLThumbnail" */; buildPhases = ( 1C81F27C2EE41BB6000739EA /* Sources */, 1C81F27D2EE41BB6000739EA /* Frameworks */, @@ -401,18 +343,18 @@ dependencies = ( ); fileSystemSynchronizedGroups = ( - 1C81F2832EE41BB6000739EA /* CaseraQLThumbnail */, + 1C81F2832EE41BB6000739EA /* HoneyDueQLThumbnail */, ); - name = CaseraQLThumbnail; + name = HoneyDueQLThumbnail; packageProductDependencies = ( ); - productName = CaseraQLThumbnail; - productReference = 1C81F2802EE41BB6000739EA /* CaseraQLThumbnail.appex */; + productName = HoneyDueQLThumbnail; + productReference = 1C81F2802EE41BB6000739EA /* HoneyDueQLThumbnail.appex */; productType = "com.apple.product-type.app-extension"; }; - 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */ = { + 1CBF1BEC2ECD9768001BF56C /* HoneyDueUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "CaseraUITests" */; + buildConfigurationList = 1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "HoneyDueUITests" */; buildPhases = ( 1CBF1BE92ECD9768001BF56C /* Sources */, 1CBF1BEA2ECD9768001BF56C /* Frameworks */, @@ -424,18 +366,18 @@ 1CBF1BF42ECD9768001BF56C /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( - 1CBF1BEE2ECD9768001BF56C /* CaseraUITests */, + 1CBF1BEE2ECD9768001BF56C /* HoneyDueUITests */, ); - name = CaseraUITests; + name = HoneyDueUITests; packageProductDependencies = ( ); - productName = CaseraUITests; - productReference = 1CBF1BED2ECD9768001BF56C /* CaseraUITests.xctest */; + productName = HoneyDueUITests; + productReference = 1CBF1BED2ECD9768001BF56C /* HoneyDueUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; - D4ADB376A7A4CFB73469E173 /* Casera */ = { + D4ADB376A7A4CFB73469E173 /* HoneyDue */ = { isa = PBXNativeTarget; - buildConfigurationList = 293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "Casera" */; + buildConfigurationList = 293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "HoneyDue" */; buildPhases = ( F4215B70FD6989F87745D84C /* Compile Kotlin Framework */, 3B506EC7E4A1032BA1E06A37 /* Sources */, @@ -453,12 +395,12 @@ fileSystemSynchronizedGroups = ( E822E6B231E7783DE992578C /* iosApp */, ); - name = Casera; + name = HoneyDue; packageProductDependencies = ( 1C81F38F2EE69AF1000739EA /* PostHog */, ); productName = iosApp; - productReference = 96A3DDC05E14B3F83E56282F /* Casera.app */; + productReference = 96A3DDC05E14B3F83E56282F /* HoneyDue.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -510,12 +452,12 @@ projectDirPath = ""; projectRoot = ""; targets = ( - D4ADB376A7A4CFB73469E173 /* Casera */, - 1C07893C2EBC218B00392B46 /* CaseraExtension */, - 1C685CD12EC5539000A9669B /* CaseraTests */, - 1CBF1BEC2ECD9768001BF56C /* CaseraUITests */, - 1C81F2682EE416EE000739EA /* CaseraQLPreview */, - 1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */, + D4ADB376A7A4CFB73469E173 /* HoneyDue */, + 1C07893C2EBC218B00392B46 /* HoneyDueExtension */, + 1C685CD12EC5539000A9669B /* HoneyDueTests */, + 1CBF1BEC2ECD9768001BF56C /* HoneyDueUITests */, + 1C81F2682EE416EE000739EA /* HoneyDueQLPreview */, + 1C81F27F2EE41BB6000739EA /* HoneyDueQLThumbnail */, ); }; /* End PBXProject section */ @@ -635,27 +577,27 @@ /* Begin PBXTargetDependency section */ 1C0789522EBC218D00392B46 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 1C07893C2EBC218B00392B46 /* CaseraExtension */; + target = 1C07893C2EBC218B00392B46 /* HoneyDueExtension */; targetProxy = 1C0789512EBC218D00392B46 /* PBXContainerItemProxy */; }; 1C81F2762EE416EF000739EA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 1C81F2682EE416EE000739EA /* CaseraQLPreview */; + target = 1C81F2682EE416EE000739EA /* HoneyDueQLPreview */; targetProxy = 1C81F2752EE416EF000739EA /* PBXContainerItemProxy */; }; 1C81F2882EE41BB6000739EA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 1C81F27F2EE41BB6000739EA /* CaseraQLThumbnail */; + target = 1C81F27F2EE41BB6000739EA /* HoneyDueQLThumbnail */; targetProxy = 1C81F2872EE41BB6000739EA /* PBXContainerItemProxy */; }; 1CBF16012ECD8AE4001BF56C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D4ADB376A7A4CFB73469E173 /* Casera */; + target = D4ADB376A7A4CFB73469E173 /* HoneyDue */; targetProxy = 1CBF16002ECD8AE4001BF56C /* PBXContainerItemProxy */; }; 1CBF1BF42ECD9768001BF56C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D4ADB376A7A4CFB73469E173 /* Casera */; + target = D4ADB376A7A4CFB73469E173 /* HoneyDue */; targetProxy = 1CBF1BF32ECD9768001BF56C /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -677,8 +619,8 @@ INFOPLIST_FILE = iosApp/Info.plist; INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = NO; - INFOPLIST_KEY_NSCameraUsageDescription = "Casera needs access to your camera to take photos of completed tasks"; - INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Casera needs access to your photo library to select photos of completed tasks"; + INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs access to your camera to take photos of completed tasks"; + INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs access to your photo library to select photos of completed tasks"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; @@ -688,7 +630,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -700,15 +642,15 @@ buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CODE_SIGN_ENTITLEMENTS = CaseraExtension.entitlements; + CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = V3PF3M6B6U; ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Casera/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Casera; + INFOPLIST_FILE = HoneyDue/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = honeyDue; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 26.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -718,7 +660,7 @@ ); MARKETING_VERSION = 1.0; OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION"; - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraDev; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueDev; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -735,15 +677,15 @@ buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; - CODE_SIGN_ENTITLEMENTS = CaseraExtension.entitlements; + CODE_SIGN_ENTITLEMENTS = HoneyDueExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = V3PF3M6B6U; ENABLE_USER_SCRIPT_SANDBOXING = NO; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = Casera/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = Casera; + INFOPLIST_FILE = HoneyDue/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = honeyDue; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 26.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -753,7 +695,7 @@ ); MARKETING_VERSION = 1.0; OTHER_SWIFT_FLAGS = "-DWIDGET_EXTENSION"; - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraDev; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueDev; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -777,7 +719,7 @@ GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 26.1; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueTests"; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; SWIFT_APPROACHABLE_CONCURRENCY = YES; @@ -786,8 +728,8 @@ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Casera.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Casera"; - TEST_TARGET_NAME = Casera; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HoneyDue.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/HoneyDue"; + TEST_TARGET_NAME = HoneyDue; }; name = Debug; }; @@ -803,7 +745,7 @@ GENERATE_INFOPLIST_FILE = YES; IPHONEOS_DEPLOYMENT_TARGET = 26.1; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueTests"; PRODUCT_NAME = "$(TARGET_NAME)"; STRING_CATALOG_GENERATE_SYMBOLS = NO; SWIFT_APPROACHABLE_CONCURRENCY = YES; @@ -812,8 +754,8 @@ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Casera.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Casera"; - TEST_TARGET_NAME = Casera; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HoneyDue.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/HoneyDue"; + TEST_TARGET_NAME = HoneyDue; }; name = Release; }; @@ -826,8 +768,8 @@ DEVELOPMENT_TEAM = V3PF3M6B6U; ENABLE_USER_SCRIPT_SANDBOXING = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = CaseraQLPreview/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = CaseraQLPreview; + INFOPLIST_FILE = HoneyDueQLPreview/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLPreview; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 26.1; LD_RUNPATH_SEARCH_PATHS = ( @@ -836,7 +778,7 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLPreview; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLPreview; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -857,8 +799,8 @@ DEVELOPMENT_TEAM = V3PF3M6B6U; ENABLE_USER_SCRIPT_SANDBOXING = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = CaseraQLPreview/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = CaseraQLPreview; + INFOPLIST_FILE = HoneyDueQLPreview/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLPreview; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 26.1; LD_RUNPATH_SEARCH_PATHS = ( @@ -867,7 +809,7 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLPreview; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLPreview; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -888,8 +830,8 @@ DEVELOPMENT_TEAM = V3PF3M6B6U; ENABLE_USER_SCRIPT_SANDBOXING = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = CaseraQLThumbnail/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = CaseraQLThumbnail; + INFOPLIST_FILE = HoneyDueQLThumbnail/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLThumbnail; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 26.1; LD_RUNPATH_SEARCH_PATHS = ( @@ -898,7 +840,7 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLThumbnail; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLThumbnail; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -919,8 +861,8 @@ DEVELOPMENT_TEAM = V3PF3M6B6U; ENABLE_USER_SCRIPT_SANDBOXING = YES; GENERATE_INFOPLIST_FILE = YES; - INFOPLIST_FILE = CaseraQLThumbnail/Info.plist; - INFOPLIST_KEY_CFBundleDisplayName = CaseraQLThumbnail; + INFOPLIST_FILE = HoneyDueQLThumbnail/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = HoneyDueQLThumbnail; INFOPLIST_KEY_NSHumanReadableCopyright = ""; IPHONEOS_DEPLOYMENT_TARGET = 26.1; LD_RUNPATH_SEARCH_PATHS = ( @@ -929,7 +871,7 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev.CaseraQLThumbnail; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev.HoneyDueQLThumbnail; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -952,7 +894,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 26.1; MACOSX_DEPLOYMENT_TARGET = 26.1; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraUITests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueUITests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; STRING_CATALOG_GENERATE_SYMBOLS = NO; @@ -962,7 +904,7 @@ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_TARGET_NAME = Casera; + TEST_TARGET_NAME = HoneyDue; XROS_DEPLOYMENT_TARGET = 26.1; }; name = Debug; @@ -978,7 +920,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 26.1; MACOSX_DEPLOYMENT_TARGET = 26.1; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.CaseraUITests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.t-t.HoneyDueUITests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = auto; STRING_CATALOG_GENERATE_SYMBOLS = NO; @@ -988,7 +930,7 @@ SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2,7"; - TEST_TARGET_NAME = Casera; + TEST_TARGET_NAME = HoneyDue; XROS_DEPLOYMENT_TARGET = 26.1; }; name = Release; @@ -1045,7 +987,7 @@ LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - PRODUCT_NAME = Casera; + PRODUCT_NAME = honeyDue; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; VALIDATE_PRODUCT = YES; @@ -1111,7 +1053,7 @@ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = Casera; + PRODUCT_NAME = honeyDue; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -1134,8 +1076,8 @@ INFOPLIST_FILE = iosApp/Info.plist; INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; INFOPLIST_KEY_LSSupportsOpeningDocumentsInPlace = NO; - INFOPLIST_KEY_NSCameraUsageDescription = "Casera needs access to your camera to take photos of completed tasks"; - INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "Casera needs access to your photo library to select photos of completed tasks"; + INFOPLIST_KEY_NSCameraUsageDescription = "honeyDue needs access to your camera to take photos of completed tasks"; + INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "honeyDue needs access to your photo library to select photos of completed tasks"; INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES; @@ -1145,7 +1087,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.tt.casera.CaseraDev; + PRODUCT_BUNDLE_IDENTIFIER = com.tt.honeyDue.HoneyDueDev; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1155,7 +1097,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "CaseraExtension" */ = { + 1C0789542EBC218D00392B46 /* Build configuration list for PBXNativeTarget "HoneyDueExtension" */ = { isa = XCConfigurationList; buildConfigurations = ( 1C0789552EBC218D00392B46 /* Debug */, @@ -1164,7 +1106,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "CaseraTests" */ = { + 1C685CD82EC5539000A9669B /* Build configuration list for PBXNativeTarget "HoneyDueTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 1C685CD92EC5539000A9669B /* Debug */, @@ -1173,7 +1115,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "CaseraQLPreview" */ = { + 1C81F2782EE416EF000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLPreview" */ = { isa = XCConfigurationList; buildConfigurations = ( 1C81F2792EE416EF000739EA /* Debug */, @@ -1182,7 +1124,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "CaseraQLThumbnail" */ = { + 1C81F28A2EE41BB6000739EA /* Build configuration list for PBXNativeTarget "HoneyDueQLThumbnail" */ = { isa = XCConfigurationList; buildConfigurations = ( 1C81F28B2EE41BB6000739EA /* Debug */, @@ -1191,7 +1133,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "CaseraUITests" */ = { + 1CBF1BF52ECD9768001BF56C /* Build configuration list for PBXNativeTarget "HoneyDueUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( 1CBF1BF62ECD9768001BF56C /* Debug */, @@ -1200,7 +1142,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "Casera" */ = { + 293B4412461C9407D900D07D /* Build configuration list for PBXNativeTarget "HoneyDue" */ = { isa = XCConfigurationList; buildConfigurations = ( E767E942685C7832D51FF978 /* Debug */, diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme index dbf5880..fae3c91 100644 --- a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme +++ b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/Casera.xcscheme @@ -1,7 +1,7 @@ + version = "1.3"> @@ -34,8 +34,8 @@ @@ -56,8 +56,8 @@ @@ -72,8 +72,8 @@ diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme index ccbc4fc..30f7a7a 100644 --- a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme +++ b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraExtension.xcscheme @@ -17,8 +17,8 @@ @@ -31,8 +31,8 @@ @@ -51,8 +51,8 @@ @@ -75,8 +75,8 @@ @@ -111,8 +111,8 @@ diff --git a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme index bb62094..d9066bd 100644 --- a/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme +++ b/iosApp/iosApp.xcodeproj/xcshareddata/xcschemes/CaseraUITests.xcscheme @@ -24,8 +24,8 @@ @@ -72,8 +72,8 @@ @@ -88,8 +88,8 @@ diff --git a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/icon.png b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/icon.png index a5215d3..02d229d 100644 Binary files a/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/icon.png and b/iosApp/iosApp/Assets.xcassets/AppIcon.appiconset/icon.png differ diff --git a/iosApp/iosApp/Background/BackgroundTaskManager.swift b/iosApp/iosApp/Background/BackgroundTaskManager.swift index 6146b77..4814c03 100644 --- a/iosApp/iosApp/Background/BackgroundTaskManager.swift +++ b/iosApp/iosApp/Background/BackgroundTaskManager.swift @@ -16,7 +16,7 @@ final class BackgroundTaskManager { static let shared = BackgroundTaskManager() /// Background task identifier - must match Info.plist BGTaskSchedulerPermittedIdentifiers - static let taskIdentifier = "com.tt.casera.refresh" + static let taskIdentifier = "com.tt.honeyDue.refresh" /// Time window for overnight refresh (12:00 AM - 4:00 AM) private let refreshWindowStartHour = 0 // 12:00 AM @@ -187,7 +187,7 @@ final class BackgroundTaskManager { /// Force a background refresh for testing (only works in debug builds with Xcode) /// Usage: In Xcode debugger console: - /// e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"com.tt.casera.refresh"] + /// e -l objc -- (void)[[BGTaskScheduler sharedScheduler] _simulateLaunchForTaskWithIdentifier:@"com.tt.honeyDue.refresh"] func debugInfo() -> String { return """ Background Task Debug Info: diff --git a/iosApp/iosApp/Contractor/ContractorSharingManager.swift b/iosApp/iosApp/Contractor/ContractorSharingManager.swift index ab01410..56b81ea 100644 --- a/iosApp/iosApp/Contractor/ContractorSharingManager.swift +++ b/iosApp/iosApp/Contractor/ContractorSharingManager.swift @@ -1,7 +1,7 @@ import Foundation import ComposeApp -/// Manages contractor export and import via .casera files. +/// Manages contractor export and import via .honeydue files. /// Singleton that handles file creation for sharing and parsing for import. @MainActor class ContractorSharingManager: ObservableObject { @@ -25,14 +25,14 @@ class ContractorSharingManager: ObservableObject { // MARK: - Export - /// Creates a shareable .casera file for a contractor. + /// Creates a shareable .honeydue file for a contractor. /// - Parameter contractor: The contractor to export /// - Returns: URL to the temporary file, or nil if creation failed func createShareableFile(contractor: Contractor) -> URL? { // Get current username for export metadata let currentUsername = DataManagerObservable.shared.currentUser?.username ?? "Unknown" - let jsonContent = CaseraShareCodec.shared.encodeContractorPackage( + let jsonContent = HoneyDueShareCodec.shared.encodeContractorPackage( contractor: contractor, exportedBy: currentUsername ) @@ -42,7 +42,7 @@ class ContractorSharingManager: ObservableObject { return nil } - let fileName = CaseraShareCodec.shared.safeShareFileName(displayName: contractor.name) + let fileName = HoneyDueShareCodec.shared.safeShareFileName(displayName: contractor.name) let tempURL = FileManager.default.temporaryDirectory.appendingPathComponent(fileName) do { @@ -51,16 +51,16 @@ class ContractorSharingManager: ObservableObject { AnalyticsManager.shared.track(.contractorShared) return tempURL } catch { - print("ContractorSharingManager: Failed to write .casera file: \(error)") + print("ContractorSharingManager: Failed to write .honeydue file: \(error)") return nil } } // MARK: - Import - /// Imports a contractor from a .casera file URL. + /// Imports a contractor from a .honeydue file URL. /// - Parameters: - /// - url: The URL to the .casera file + /// - url: The URL to the .honeydue file /// - completion: Called with true on success, false on failure func importContractor(from url: URL, completion: @escaping (Bool) -> Void) { isImporting = true @@ -136,7 +136,7 @@ class ContractorSharingManager: ObservableObject { // MARK: - Swift Codable Structure -/// Swift-native Codable structure for .casera file format. +/// Swift-native Codable structure for .honeydue file format. /// This mirrors the Kotlin SharedContractor model for JSON serialization. struct SharedContractorExport: Codable { let version: Int diff --git a/iosApp/iosApp/Design/DesignSystem.swift b/iosApp/iosApp/Design/DesignSystem.swift index fad0550..2d8e7aa 100644 --- a/iosApp/iosApp/Design/DesignSystem.swift +++ b/iosApp/iosApp/Design/DesignSystem.swift @@ -1,7 +1,7 @@ import SwiftUI // MARK: - Design System -// Modern, sleek design system for Casera with Light and Dark mode support +// Modern, sleek design system for honeyDue with Light and Dark mode support // MARK: - Colors @@ -11,7 +11,7 @@ extension Color { /// Shared App Group defaults for reading the active theme. /// Thread-safe: UserDefaults is safe to read from any thread/actor. private static let _themeDefaults: UserDefaults = { - UserDefaults(suiteName: "group.com.tt.casera.CaseraDev") ?? .standard + UserDefaults(suiteName: "group.com.tt.honeyDue.HoneyDueDev") ?? .standard }() private static func themed(_ name: String) -> Color { diff --git a/iosApp/iosApp/Helpers/L10n.swift b/iosApp/iosApp/Helpers/L10n.swift index 66c62d5..601d097 100644 --- a/iosApp/iosApp/Helpers/L10n.swift +++ b/iosApp/iosApp/Helpers/L10n.swift @@ -48,7 +48,7 @@ enum L10n { static var alreadyHaveAccount: String { String(localized: "auth_already_have_account") } static var signIn: String { String(localized: "auth_sign_in") } static var passwordsDontMatch: String { String(localized: "auth_passwords_dont_match") } - static var joinCasera: String { String(localized: "auth_join_casera") } + static var joinhoneyDue: String { String(localized: "auth_join_honeydue") } static var startManaging: String { String(localized: "auth_start_managing") } static var accountInfo: String { String(localized: "auth_account_info") } static var security: String { String(localized: "auth_security") } diff --git a/iosApp/iosApp/Helpers/ThemeManager.swift b/iosApp/iosApp/Helpers/ThemeManager.swift index daa6697..96c8959 100644 --- a/iosApp/iosApp/Helpers/ThemeManager.swift +++ b/iosApp/iosApp/Helpers/ThemeManager.swift @@ -60,7 +60,7 @@ enum ThemeID: String, CaseIterable, Codable { } // MARK: - Shared App Group UserDefaults -private let appGroupID = "group.com.tt.casera.CaseraDev" +private let appGroupID = "group.com.tt.honeyDue.HoneyDueDev" private let sharedDefaults: UserDefaults = { guard let defaults = UserDefaults(suiteName: appGroupID) else { #if DEBUG diff --git a/iosApp/iosApp/Helpers/WidgetDataManager.swift b/iosApp/iosApp/Helpers/WidgetDataManager.swift index 0535ca5..b238b32 100644 --- a/iosApp/iosApp/Helpers/WidgetDataManager.swift +++ b/iosApp/iosApp/Helpers/WidgetDataManager.swift @@ -20,7 +20,7 @@ final class WidgetDataManager { static let completedColumn = "completed_tasks" static let cancelledColumn = "cancelled_tasks" - private let appGroupIdentifier = "group.com.tt.casera.CaseraDev" + private let appGroupIdentifier = "group.com.tt.honeyDue.HoneyDueDev" private let tasksFileName = "widget_tasks.json" private let actionsFileName = "widget_pending_actions.json" private let pendingTasksFileName = "widget_pending_tasks.json" @@ -31,7 +31,7 @@ final class WidgetDataManager { private let isPremiumKey = "widget_is_premium" /// Serial queue for thread-safe file I/O operations - private let fileQueue = DispatchQueue(label: "com.casera.widget.fileio") + private let fileQueue = DispatchQueue(label: "com.honeydue.widget.fileio") private var sharedDefaults: UserDefaults? { UserDefaults(suiteName: appGroupIdentifier) @@ -283,7 +283,7 @@ final class WidgetDataManager { // Reload widget to reflect the change DispatchQueue.main.async { - WidgetCenter.shared.reloadTimelines(ofKind: "Casera") + WidgetCenter.shared.reloadTimelines(ofKind: "honeyDue") } } } diff --git a/iosApp/iosApp/Info.plist b/iosApp/iosApp/Info.plist index 916c3f7..9f89ab3 100644 --- a/iosApp/iosApp/Info.plist +++ b/iosApp/iosApp/Info.plist @@ -4,26 +4,26 @@ BGTaskSchedulerPermittedIdentifiers - com.tt.casera.refresh + com.tt.honeyDue.refresh - CASERA_IAP_ANNUAL_PRODUCT_ID - com.example.casera.pro.annual - CASERA_IAP_MONTHLY_PRODUCT_ID - com.example.casera.pro.monthly - CASERA_GOOGLE_WEB_CLIENT_ID + HONEYDUE_IAP_ANNUAL_PRODUCT_ID + com.tt.honeyDue.pro.annual + HONEYDUE_IAP_MONTHLY_PRODUCT_ID + com.tt.honeyDue.pro.monthly + HONEYDUE_GOOGLE_WEB_CLIENT_ID CFBundleDocumentTypes CFBundleTypeName - Casera Contractor + honeyDue Contractor CFBundleTypeRole Editor LSHandlerRank Owner LSItemContentTypes - com.casera.contractor + com.honeydue.contractor @@ -31,10 +31,10 @@ CFBundleURLName - com.casera.app + com.honeydue.app CFBundleURLSchemes - casera + honeydue @@ -57,19 +57,19 @@ public.content UTTypeDescription - Casera Contractor + honeyDue Contractor UTTypeIconFiles UTTypeIdentifier - com.casera.contractor + com.honeydue.contractor UTTypeTagSpecification public.filename-extension - casera + honeydue public.mime-type - application/x-casera + application/x-honeydue diff --git a/iosApp/iosApp/Localizable.xcstrings b/iosApp/iosApp/Localizable.xcstrings index 551b4f7..81c003a 100644 --- a/iosApp/iosApp/Localizable.xcstrings +++ b/iosApp/iosApp/Localizable.xcstrings @@ -172,61 +172,61 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "zh" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } } } @@ -1106,67 +1106,67 @@ } } }, - "auth_join_casera" : { + "auth_join_honeydue" : { "extractionState" : "manual", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "Bei Casera anmelden" + "value" : "Bei honeyDue anmelden" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Join Casera" + "value" : "Join honeyDue" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Únete a Casera" + "value" : "Únete a honeyDue" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Rejoindre Casera" + "value" : "Rejoindre honeyDue" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Unisciti a Casera" + "value" : "Unisciti a honeyDue" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Caseraに参加" + "value" : "honeyDueに参加" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Casera 가입" + "value" : "honeyDue 가입" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Word lid van Casera" + "value" : "Word lid van honeyDue" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Junte-se à Casera" + "value" : "Junte-se à honeyDue" } }, "zh" : { "stringUnit" : { "state" : "translated", - "value" : "加入Casera" + "value" : "加入honeyDue" } } } @@ -1437,61 +1437,61 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "zh" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } } } @@ -3090,25 +3090,25 @@ "it" : { "stringUnit" : { "state" : "translated", - "value" : "Accedi per continuare con Casera" + "value" : "Accedi per continuare con honeyDue" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Caseraを続けるにはログインしてください" + "value" : "honeyDueを続けるにはログインしてください" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Casera를 계속 사용하려면 로그인하세요" + "value" : "honeyDue를 계속 사용하려면 로그인하세요" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Log in om door te gaan met Casera" + "value" : "Log in om door te gaan met honeyDue" } }, "pt" : { @@ -3120,7 +3120,7 @@ "zh" : { "stringUnit" : { "state" : "translated", - "value" : "登录以继续使用Casera" + "value" : "登录以继续使用honeyDue" } } } @@ -4258,11 +4258,11 @@ "comment" : "A label displayed above the caption of an image in the photo viewer.", "isCommentAutoGenerated" : true }, - "Casera" : { + "honeyDue" : { "comment" : "The name of the app.", "isCommentAutoGenerated" : true }, - "CASERA PRO" : { + "HONEYDUE PRO" : { }, "Change" : { @@ -17411,7 +17411,7 @@ "Google Sign-In Error" : { }, - "Help improve Casera by sharing anonymous usage data" : { + "Help improve honeyDue by sharing anonymous usage data" : { }, "Here are tasks recommended for your area.\nPick the ones you'd like to track!" : { @@ -17422,11 +17422,11 @@ "isCommentAutoGenerated" : true }, "I have a code to join" : { - "comment" : "A button label that instructs the user to join an existing Casera account.", + "comment" : "A button label that instructs the user to join an existing honeyDue account.", "isCommentAutoGenerated" : true }, "I'm Ready!" : { - "comment" : "A button label that indicates the user is ready to use Casera.", + "comment" : "A button label that indicates the user is ready to use honeyDue.", "isCommentAutoGenerated" : true }, "Image %lld of %lld" : { @@ -17461,7 +17461,7 @@ "comment" : "A button label that instructs the user to join an existing residence.", "isCommentAutoGenerated" : true }, - "Join Casera" : { + "Join honeyDue" : { "comment" : "A title for the registration screen.", "isCommentAutoGenerated" : true }, @@ -17499,11 +17499,11 @@ "Logging in..." : { }, - "Manage at casera.app" : { + "Manage at honeydue.app" : { }, - "Manage your subscription at casera.app" : { - "comment" : "A text instruction that directs them to manage their subscription on casera.app.", + "Manage your subscription at honeydue.app" : { + "comment" : "A text instruction that directs them to manage their subscription on honeydue.app.", "isCommentAutoGenerated" : true }, "Manage your subscription on your Android device" : { @@ -17513,7 +17513,7 @@ "comment" : "A button label that says \"Mark Task In Progress\".", "isCommentAutoGenerated" : true }, - "MyCrib Icon Animations" : { + "HoneyDue Icon Animations" : { "comment" : "The title of the playground interface.", "isCommentAutoGenerated" : true }, @@ -17568,8 +17568,8 @@ "comment" : "A button that dismisses the success dialog.", "isCommentAutoGenerated" : true }, - "Open casera.app" : { - "comment" : "A button label that opens the casera.app settings page.", + "Open honeydue.app" : { + "comment" : "A button label that opens the honeydue.app settings page.", "isCommentAutoGenerated" : true }, "or" : { @@ -17737,61 +17737,61 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "en" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "ja" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } }, "zh" : { "stringUnit" : { "state" : "translated", - "value" : "Casera" + "value" : "honeyDue" } } } @@ -24837,7 +24837,7 @@ "comment" : "A label displayed above the picker for selecting the notification time.", "isCommentAutoGenerated" : true }, - "Send a .casera file via Messages, Email, or AirDrop. They just tap to join." : { + "Send a .honeydue file via Messages, Email, or AirDrop. They just tap to join." : { }, "Send Invite Link" : { @@ -30179,7 +30179,7 @@ "comment" : "A footer label within the \"Forgot Password?\" view, instructing the user to check their email for a verification code.", "isCommentAutoGenerated" : true }, - "Welcome to Casera" : { + "Welcome to honeyDue" : { "comment" : "The title of the welcome screen in the preview.", "isCommentAutoGenerated" : true }, diff --git a/iosApp/iosApp/Login/GoogleSignInManager.swift b/iosApp/iosApp/Login/GoogleSignInManager.swift index e0eee2b..2cdb348 100644 --- a/iosApp/iosApp/Login/GoogleSignInManager.swift +++ b/iosApp/iosApp/Login/GoogleSignInManager.swift @@ -21,7 +21,7 @@ final class GoogleSignInManager: NSObject, ObservableObject, ASWebAuthentication private var codeVerifier: String? private var oauthState: String? - private let redirectScheme = "casera" + private let redirectScheme = "honeydue" private var redirectURI: String { "\(redirectScheme):/oauth2callback" } // MARK: - Public @@ -247,7 +247,7 @@ final class GoogleSignInManager: NSObject, ObservableObject, ASWebAuthentication } private func resolvedClientID() -> String? { - if let fromInfo = Bundle.main.object(forInfoDictionaryKey: "CASERA_GOOGLE_WEB_CLIENT_ID") as? String { + if let fromInfo = Bundle.main.object(forInfoDictionaryKey: "HONEYDUE_GOOGLE_WEB_CLIENT_ID") as? String { let trimmed = fromInfo.trimmingCharacters(in: .whitespacesAndNewlines) if !trimmed.isEmpty { return trimmed diff --git a/iosApp/iosApp/MIGRATION_SUMMARY.md b/iosApp/iosApp/MIGRATION_SUMMARY.md index c94c385..3ba0afe 100644 --- a/iosApp/iosApp/MIGRATION_SUMMARY.md +++ b/iosApp/iosApp/MIGRATION_SUMMARY.md @@ -1,7 +1,7 @@ # iOS Shared Utilities Migration Summary ## Overview -Successfully migrated the iOS codebase at `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/` to use shared utilities from `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/Shared/`. +Successfully migrated the iOS codebase at `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/` to use shared utilities from `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/Shared/`. ## Migration Date December 17, 2025 diff --git a/iosApp/iosApp/Onboarding/OnboardingSubscriptionView.swift b/iosApp/iosApp/Onboarding/OnboardingSubscriptionView.swift index a5af0a4..d351397 100644 --- a/iosApp/iosApp/Onboarding/OnboardingSubscriptionView.swift +++ b/iosApp/iosApp/Onboarding/OnboardingSubscriptionView.swift @@ -139,7 +139,7 @@ struct OnboardingSubscriptionContent: View { HStack(spacing: 6) { Image(systemName: "sparkles") .foregroundColor(Color.appAccent) - Text("CASERA PRO") + Text("HONEYDUE PRO") .font(.system(size: 14, weight: .black)) .foregroundColor(Color.appAccent) Image(systemName: "sparkles") diff --git a/iosApp/iosApp/Onboarding/OnboardingValuePropsView.swift b/iosApp/iosApp/Onboarding/OnboardingValuePropsView.swift index 63f0afc..c04af2f 100644 --- a/iosApp/iosApp/Onboarding/OnboardingValuePropsView.swift +++ b/iosApp/iosApp/Onboarding/OnboardingValuePropsView.swift @@ -1,6 +1,6 @@ import SwiftUI -/// Screen 2: Features showcase - Wow the user with what Casera can do +/// Screen 2: Features showcase - Wow the user with what honeyDue can do struct OnboardingValuePropsContent: View { var onContinue: () -> Void diff --git a/iosApp/iosApp/Onboarding/OnboardingWelcomeView.swift b/iosApp/iosApp/Onboarding/OnboardingWelcomeView.swift index 28c75d6..470b455 100644 --- a/iosApp/iosApp/Onboarding/OnboardingWelcomeView.swift +++ b/iosApp/iosApp/Onboarding/OnboardingWelcomeView.swift @@ -95,7 +95,7 @@ struct OnboardingWelcomeView: View { // Welcome text VStack(spacing: 10) { - Text("Welcome to Casera") + Text("Welcome to honeyDue") .font(.system(size: 32, weight: .bold, design: .rounded)) .foregroundColor(Color.appTextPrimary) .accessibilityIdentifier(AccessibilityIdentifiers.Onboarding.welcomeTitle) diff --git a/iosApp/iosApp/Profile/ProfileTabView.swift b/iosApp/iosApp/Profile/ProfileTabView.swift index 719ce13..fa97fca 100644 --- a/iosApp/iosApp/Profile/ProfileTabView.swift +++ b/iosApp/iosApp/Profile/ProfileTabView.swift @@ -130,11 +130,11 @@ struct ProfileTabView: View { if subscription.subscriptionSource == "stripe" { // Web/Stripe subscription - direct to web portal Button(action: { - if let url = URL(string: "https://casera.app/settings") { + if let url = URL(string: "https://honeyDue.treytartt.com/settings") { UIApplication.shared.open(url) } }) { - Label("Manage at casera.app", systemImage: "globe") + Label("Manage at honeyDue.treytartt.com", systemImage: "globe") .foregroundColor(Color.appTextPrimary) } } else if subscription.subscriptionSource == "android" { @@ -230,7 +230,7 @@ struct ProfileTabView: View { Text("Share Analytics") .font(.body) .foregroundStyle(Color.appTextPrimary) - Text("Help improve Casera by sharing anonymous usage data") + Text("Help improve honeyDue by sharing anonymous usage data") .font(.caption) .foregroundStyle(Color.appTextSecondary) } @@ -325,8 +325,8 @@ struct ProfileTabView: View { } private func sendSupportEmail() { - let email = "caseraSupport@treymail.com" - let subject = "Casera Support Request" + let email = "honeydue@treymail.com" + let subject = "honeyDue Support Request" let urlString = "mailto:\(email)?subject=\(subject.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? subject)" if let url = URL(string: urlString) { diff --git a/iosApp/iosApp/PushNotifications/PushNotificationManager.swift b/iosApp/iosApp/PushNotifications/PushNotificationManager.swift index 4c3507c..6a2191c 100644 --- a/iosApp/iosApp/PushNotifications/PushNotificationManager.swift +++ b/iosApp/iosApp/PushNotifications/PushNotificationManager.swift @@ -15,8 +15,8 @@ class PushNotificationManager: NSObject, ObservableObject { @Published var pendingNavigationResidenceId: Int? @Published var pendingNavigationDocumentId: Int? - private let registeredTokenKey = "com.casera.registeredDeviceToken" - private let registeredUserIdKey = "com.casera.registeredUserId" + private let registeredTokenKey = "com.honeydue.registeredDeviceToken" + private let registeredUserIdKey = "com.honeydue.registeredUserId" /// The last token that was successfully registered with the backend private var lastRegisteredToken: String? { diff --git a/iosApp/iosApp/Register/RegisterView.swift b/iosApp/iosApp/Register/RegisterView.swift index abd65b3..6488757 100644 --- a/iosApp/iosApp/Register/RegisterView.swift +++ b/iosApp/iosApp/Register/RegisterView.swift @@ -54,7 +54,7 @@ struct RegisterView: View { } VStack(spacing: 8) { - Text(L10n.Auth.joinCasera) + Text(L10n.Auth.joinhoneyDue) .font(.system(size: 26, weight: .bold, design: .rounded)) .foregroundColor(Color.appTextPrimary) diff --git a/iosApp/iosApp/Residence/ResidenceSharingManager.swift b/iosApp/iosApp/Residence/ResidenceSharingManager.swift index c3ec40a..7444feb 100644 --- a/iosApp/iosApp/Residence/ResidenceSharingManager.swift +++ b/iosApp/iosApp/Residence/ResidenceSharingManager.swift @@ -1,7 +1,7 @@ import Foundation import ComposeApp -/// Manages residence share package creation and import via .casera files. +/// Manages residence share package creation and import via .honeydue files. /// For residences, the share code is generated server-side (unlike contractors which are exported client-side). @MainActor class ResidenceSharingManager: ObservableObject { @@ -35,7 +35,7 @@ class ResidenceSharingManager: ObservableObject { // MARK: - Export (Share) - /// Creates a shareable .casera file for a residence. + /// Creates a shareable .honeydue file for a residence. /// This calls the backend to generate a one-time share code, then packages it. /// - Parameter residence: The residence to share /// - Returns: URL to the temporary file, or nil if creation failed @@ -64,7 +64,7 @@ class ResidenceSharingManager: ObservableObject { return nil } - let jsonContent = CaseraShareCodec.shared.encodeSharedResidence(sharedResidence: sharedResidence) + let jsonContent = HoneyDueShareCodec.shared.encodeSharedResidence(sharedResidence: sharedResidence) guard let jsonData = jsonContent.data(using: .utf8) else { #if DEBUG print("ResidenceSharingManager: Failed to encode residence package as UTF-8") @@ -73,7 +73,7 @@ class ResidenceSharingManager: ObservableObject { return nil } - let fileName = CaseraShareCodec.shared.safeShareFileName(displayName: residence.name) + let fileName = HoneyDueShareCodec.shared.safeShareFileName(displayName: residence.name) let tempURL = FileManager.default.temporaryDirectory.appendingPathComponent(fileName) do { @@ -83,7 +83,7 @@ class ResidenceSharingManager: ObservableObject { return tempURL } catch { #if DEBUG - print("ResidenceSharingManager: Failed to write .casera file: \(error)") + print("ResidenceSharingManager: Failed to write .honeydue file: \(error)") #endif errorMessage = "Failed to save share file" return nil @@ -92,10 +92,10 @@ class ResidenceSharingManager: ObservableObject { // MARK: - Import - /// Imports a residence share from a .casera file URL. + /// Imports a residence share from a .honeydue file URL. /// This validates the share code with the server and adds the user to the residence. /// - Parameters: - /// - url: The URL to the .casera file + /// - url: The URL to the .honeydue file /// - completion: Called with true on success, false on failure func importResidence(from url: URL, completion: @escaping (Bool) -> Void) { isImporting = true @@ -164,7 +164,7 @@ class ResidenceSharingManager: ObservableObject { // MARK: - Swift Codable Structure -/// Swift-native Codable structure for .casera residence share format. +/// Swift-native Codable structure for .honeydue residence share format. /// This mirrors the Kotlin SharedResidence model for JSON serialization. struct SharedResidenceExport: Codable { let version: Int diff --git a/iosApp/iosApp/Shared/REFACTORING_SUMMARY.md b/iosApp/iosApp/Shared/REFACTORING_SUMMARY.md index 53c3fdf..fb6ded7 100644 --- a/iosApp/iosApp/Shared/REFACTORING_SUMMARY.md +++ b/iosApp/iosApp/Shared/REFACTORING_SUMMARY.md @@ -2,7 +2,7 @@ ## Executive Summary -This document summarizes the comprehensive analysis of the iOS codebase at `/Users/treyt/Desktop/code/MyCrib/MyCribKMM/iosApp/iosApp/` and provides a complete set of shared utilities to eliminate code duplication. +This document summarizes the comprehensive analysis of the iOS codebase at `/Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM/iosApp/iosApp/` and provides a complete set of shared utilities to eliminate code duplication. ## Status diff --git a/iosApp/iosApp/Shared/SHARED_UTILITIES.md b/iosApp/iosApp/Shared/SHARED_UTILITIES.md index 29474d2..c228ce2 100644 --- a/iosApp/iosApp/Shared/SHARED_UTILITIES.md +++ b/iosApp/iosApp/Shared/SHARED_UTILITIES.md @@ -562,7 +562,7 @@ VStack { All shared utilities should be tested before using in production. Run the iOS app build to verify: ```bash -cd /Users/treyt/Desktop/code/MyCrib/MyCribKMM +cd /Users/treyt/Desktop/code/HoneyDue/HoneyDueKMM open iosApp/iosApp.xcodeproj # Build and run (Cmd+R) ``` diff --git a/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift b/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift index edadb5c..3562edf 100644 --- a/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift +++ b/iosApp/iosApp/Shared/Utilities/KeychainHelper.swift @@ -7,7 +7,7 @@ import ComposeApp final class KeychainHelper: NSObject, KeychainDelegate { static let shared = KeychainHelper() - private let service = "com.tt.casera" + private let service = "com.tt.honeyDue" func save(key: String, value: String) -> Bool { guard let data = value.data(using: .utf8) else { return false } diff --git a/iosApp/iosApp/Subscription/FeatureComparisonView.swift b/iosApp/iosApp/Subscription/FeatureComparisonView.swift index a1b3c65..7660d3f 100644 --- a/iosApp/iosApp/Subscription/FeatureComparisonView.swift +++ b/iosApp/iosApp/Subscription/FeatureComparisonView.swift @@ -300,17 +300,17 @@ struct CrossPlatformSubscriptionNotice: View { .foregroundColor(Color.appTextPrimary) if source == "stripe" { - Text("Manage your subscription at casera.app") + Text("Manage your subscription at honeyDue.treytartt.com") .font(.subheadline) .foregroundColor(Color.appTextSecondary) .multilineTextAlignment(.center) Button(action: { - if let url = URL(string: "https://casera.app/settings") { + if let url = URL(string: "https://honeyDue.treytartt.com/settings") { UIApplication.shared.open(url) } }) { - Label("Open casera.app", systemImage: "globe") + Label("Open honeyDue.treytartt.com", systemImage: "globe") .fontWeight(.semibold) .frame(maxWidth: .infinity) .foregroundColor(Color.appTextOnPrimary) diff --git a/iosApp/iosApp/Subscription/StoreKitManager.swift b/iosApp/iosApp/Subscription/StoreKitManager.swift index 84f63df..44b2e83 100644 --- a/iosApp/iosApp/Subscription/StoreKitManager.swift +++ b/iosApp/iosApp/Subscription/StoreKitManager.swift @@ -9,18 +9,18 @@ class StoreKitManager: ObservableObject { static let shared = StoreKitManager() // Product IDs can be configured via Info.plist keys: - // CASERA_IAP_MONTHLY_PRODUCT_ID / CASERA_IAP_ANNUAL_PRODUCT_ID. + // HONEYDUE_IAP_MONTHLY_PRODUCT_ID / HONEYDUE_IAP_ANNUAL_PRODUCT_ID. // Falls back to local StoreKit config IDs for development. // Canonical source: SubscriptionProducts in commonMain (Kotlin shared code). // Keep these in sync with SubscriptionProducts.MONTHLY / SubscriptionProducts.ANNUAL. private let fallbackProductIDs = [ - "com.example.casera.pro.monthly", - "com.example.casera.pro.annual" + "com.tt.honeyDue.pro.monthly", + "com.tt.honeyDue.pro.annual" ] private var configuredProductIDs: [String] { - let monthly = Bundle.main.object(forInfoDictionaryKey: "CASERA_IAP_MONTHLY_PRODUCT_ID") as? String - let annual = Bundle.main.object(forInfoDictionaryKey: "CASERA_IAP_ANNUAL_PRODUCT_ID") as? String + let monthly = Bundle.main.object(forInfoDictionaryKey: "HONEYDUE_IAP_MONTHLY_PRODUCT_ID") as? String + let annual = Bundle.main.object(forInfoDictionaryKey: "HONEYDUE_IAP_ANNUAL_PRODUCT_ID") as? String return [monthly, annual] .compactMap { $0?.trimmingCharacters(in: .whitespacesAndNewlines) } .filter { !$0.isEmpty } @@ -61,7 +61,7 @@ class StoreKitManager: ObservableObject { do { if configuredProductIDs.isEmpty { - print("⚠️ StoreKit: Using fallback product IDs (configure CASERA_IAP_MONTHLY_PRODUCT_ID/CASERA_IAP_ANNUAL_PRODUCT_ID in Info.plist for production)") + print("⚠️ StoreKit: Using fallback product IDs (configure HONEYDUE_IAP_MONTHLY_PRODUCT_ID/HONEYDUE_IAP_ANNUAL_PRODUCT_ID in Info.plist for production)") } let loadedProducts = try await Product.products(for: productIDs) products = loadedProducts.sorted { $0.price < $1.price } diff --git a/iosApp/iosApp/Subviews/Auth/LoginHeader.swift b/iosApp/iosApp/Subviews/Auth/LoginHeader.swift index 919d415..2fa734e 100644 --- a/iosApp/iosApp/Subviews/Auth/LoginHeader.swift +++ b/iosApp/iosApp/Subviews/Auth/LoginHeader.swift @@ -9,7 +9,7 @@ struct LoginHeader: View { .frame(width: 80, height: 80) .foregroundColor(Color.appPrimary) - Text("Casera") + Text("honeyDue") .font(.largeTitle) .fontWeight(.bold) .foregroundColor(Color.appTextPrimary) diff --git a/iosApp/iosApp/Subviews/Auth/RegisterHeader.swift b/iosApp/iosApp/Subviews/Auth/RegisterHeader.swift index c26d00c..a33bfd6 100644 --- a/iosApp/iosApp/Subviews/Auth/RegisterHeader.swift +++ b/iosApp/iosApp/Subviews/Auth/RegisterHeader.swift @@ -9,7 +9,7 @@ struct RegisterHeader: View { .frame(width: 64, height: 64) .foregroundColor(Color.appPrimary) - Text("Join Casera") + Text("Join honeyDue") .font(.largeTitle) .fontWeight(.bold) .foregroundColor(Color.appTextPrimary) diff --git a/iosApp/iosApp/Subviews/Common/MyCribIconView.swift b/iosApp/iosApp/Subviews/Common/HoneyDueIconView.swift similarity index 97% rename from iosApp/iosApp/Subviews/Common/MyCribIconView.swift rename to iosApp/iosApp/Subviews/Common/HoneyDueIconView.swift index 94af582..72b9c43 100644 --- a/iosApp/iosApp/Subviews/Common/MyCribIconView.swift +++ b/iosApp/iosApp/Subviews/Common/HoneyDueIconView.swift @@ -148,8 +148,8 @@ struct BackgroundShape: Shape { } } -/// MyCrib icon view with all paths for animation -struct MyCribIconView: View { +/// HoneyDue icon view with all paths for animation +struct HoneyDueIconView: View { // Animation progress values (0 to 1) var houseLeftProgress: CGFloat = 1.0 var houseRightProgress: CGFloat = 1.0 @@ -237,7 +237,7 @@ struct MyCribIconView: View { } /// Animated version with built-in draw animation -struct AnimatedMyCribIconView: View { +struct AnimatedHoneyDueIconView: View { @State private var houseLeftProgress: CGFloat = 0 @State private var houseRightProgress: CGFloat = 0 @State private var windowScale: CGFloat = 0 @@ -249,7 +249,7 @@ struct AnimatedMyCribIconView: View { var showBackground: Bool = true var body: some View { - MyCribIconView( + HoneyDueIconView( houseLeftProgress: houseLeftProgress, houseRightProgress: houseRightProgress, windowScale: windowScale, @@ -295,26 +295,26 @@ struct AnimatedMyCribIconView: View { } #Preview("Static Icon") { - MyCribIconView() + HoneyDueIconView() .frame(width: 200, height: 200) .padding() } #Preview("Animated Icon") { - AnimatedMyCribIconView() + AnimatedHoneyDueIconView() .frame(width: 200, height: 200) .padding() } #Preview("Icon Without Background") { - MyCribIconView(showBackground: false) + HoneyDueIconView(showBackground: false) .frame(width: 200, height: 200) .padding() .background(Color.orange) } #Preview("Custom Colors") { - MyCribIconView( + HoneyDueIconView( backgroundColor: .blue, foregroundColor: .white ) diff --git a/iosApp/iosApp/Subviews/Residence/ShareCodeCard.swift b/iosApp/iosApp/Subviews/Residence/ShareCodeCard.swift index 70b01b1..228a566 100644 --- a/iosApp/iosApp/Subviews/Residence/ShareCodeCard.swift +++ b/iosApp/iosApp/Subviews/Residence/ShareCodeCard.swift @@ -42,7 +42,7 @@ struct ShareCodeCard: View { .buttonStyle(.borderedProminent) .disabled(isGeneratingPackage) - Text("Send a .casera file via Messages, Email, or AirDrop. They just tap to join.") + Text("Send a .honeydue file via Messages, Email, or AirDrop. They just tap to join.") .font(.caption) .foregroundColor(Color.appTextSecondary) } diff --git a/iosApp/iosApp/iOSApp.swift b/iosApp/iosApp/iOSApp.swift index 38085e8..4eda952 100644 --- a/iosApp/iosApp/iOSApp.swift +++ b/iosApp/iosApp/iOSApp.swift @@ -13,11 +13,11 @@ struct iOSApp: App { /// Tracks foreground refresh tasks so they can be cancelled on subsequent transitions @State private var foregroundTask: Task? @State private var pendingImportURL: URL? - @State private var pendingImportType: CaseraPackageType = .contractor + @State private var pendingImportType: HoneyDuePackageType = .contractor @State private var showImportConfirmation: Bool = false - /// Type of casera package being imported - enum CaseraPackageType { + /// Type of honeydue package being imported + enum HoneyDuePackageType { case contractor case residence } @@ -193,14 +193,14 @@ struct iOSApp: App { print("URL received: \(url)") #endif - // Handle .casera file imports - if url.pathExtension.lowercased() == "casera" { - handleCaseraFileImport(url: url) + // Handle .honeydue file imports + if url.pathExtension.lowercased() == "honeydue" { + handleHoneyDueFileImport(url: url) return } - // Handle casera:// deep links - if url.scheme == "casera" { + // Handle honeydue:// deep links + if url.scheme == "honeydue" { handleDeepLink(url: url) return } @@ -210,10 +210,10 @@ struct iOSApp: App { #endif } - /// Handles .casera file imports - detects type and routes accordingly - private func handleCaseraFileImport(url: URL) { + /// Handles .honeydue file imports - detects type and routes accordingly + private func handleHoneyDueFileImport(url: URL) { #if DEBUG - print("Casera file received: \(url)") + print("honeyDue file received: \(url)") #endif // Check if user is authenticated @@ -231,7 +231,7 @@ struct iOSApp: App { // Copy to temp location so import works after security scope ends let tempURL = FileManager.default.temporaryDirectory .appendingPathComponent(UUID().uuidString) - .appendingPathExtension("casera") + .appendingPathExtension("honeydue") try data.write(to: tempURL) do { @@ -239,11 +239,11 @@ struct iOSApp: App { let typeString = json["type"] as? String { pendingImportType = typeString == "residence" ? .residence : .contractor } else { - print("iOSApp: Casera file is valid JSON but missing 'type' field, defaulting to contractor") + print("iOSApp: honeyDue file is valid JSON but missing 'type' field, defaulting to contractor") pendingImportType = .contractor } } catch { - print("iOSApp: Failed to parse casera file JSON: \(error)") + print("iOSApp: Failed to parse honeydue file JSON: \(error)") if accessing { url.stopAccessingSecurityScopedResource() } @@ -254,7 +254,7 @@ struct iOSApp: App { pendingImportURL = tempURL } catch { #if DEBUG - print("Failed to read casera file: \(error)") + print("Failed to read honeydue file: \(error)") #endif pendingImportType = .contractor pendingImportURL = url @@ -267,7 +267,7 @@ struct iOSApp: App { showImportConfirmation = true } - /// Handles casera:// deep links + /// Handles honeydue:// deep links private func handleDeepLink(url: URL) { guard let components = URLComponents(url: url, resolvingAgainstBaseURL: true) else { return } let host = url.host diff --git a/iosApp/iosApp/iosApp.entitlements b/iosApp/iosApp/iosApp.entitlements index b64e948..ba67575 100644 --- a/iosApp/iosApp/iosApp.entitlements +++ b/iosApp/iosApp/iosApp.entitlements @@ -10,7 +10,7 @@ com.apple.security.application-groups - group.com.tt.casera.CaseraDev + group.com.tt.honeyDue.HoneyDueDev diff --git a/iosApp/push_test_payloads/README.md b/iosApp/push_test_payloads/README.md index 7a86b26..3df3d0a 100644 --- a/iosApp/push_test_payloads/README.md +++ b/iosApp/push_test_payloads/README.md @@ -38,7 +38,7 @@ The `category` field in `aps` maps to these iOS notification categories: ```json { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.honeyDueDev", "aps": { "alert": { "title": "Notification Title", diff --git a/iosApp/push_test_payloads/task_assigned.apns b/iosApp/push_test_payloads/task_assigned.apns index 3a0e792..3258d22 100644 --- a/iosApp/push_test_payloads/task_assigned.apns +++ b/iosApp/push_test_payloads/task_assigned.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task Assigned", diff --git a/iosApp/push_test_payloads/task_cancelled.apns b/iosApp/push_test_payloads/task_cancelled.apns index 802735e..d771ebb 100644 --- a/iosApp/push_test_payloads/task_cancelled.apns +++ b/iosApp/push_test_payloads/task_cancelled.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task Cancelled", diff --git a/iosApp/push_test_payloads/task_completed.apns b/iosApp/push_test_payloads/task_completed.apns index 15e4ac6..82e6fe1 100644 --- a/iosApp/push_test_payloads/task_completed.apns +++ b/iosApp/push_test_payloads/task_completed.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task Completed", diff --git a/iosApp/push_test_payloads/task_due_soon.apns b/iosApp/push_test_payloads/task_due_soon.apns index 030cba6..99b4233 100644 --- a/iosApp/push_test_payloads/task_due_soon.apns +++ b/iosApp/push_test_payloads/task_due_soon.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task Due Soon", diff --git a/iosApp/push_test_payloads/task_generic_free_user.apns b/iosApp/push_test_payloads/task_generic_free_user.apns index 7362584..13b7163 100644 --- a/iosApp/push_test_payloads/task_generic_free_user.apns +++ b/iosApp/push_test_payloads/task_generic_free_user.apns @@ -1,9 +1,9 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { - "title": "Casera", - "body": "Something in Casera needs your attention" + "title": "honeyDue", + "body": "Something in honeyDue needs your attention" }, "sound": "default", "badge": 1, diff --git a/iosApp/push_test_payloads/task_in_progress.apns b/iosApp/push_test_payloads/task_in_progress.apns index 951be00..3d9dc67 100644 --- a/iosApp/push_test_payloads/task_in_progress.apns +++ b/iosApp/push_test_payloads/task_in_progress.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task In Progress", diff --git a/iosApp/push_test_payloads/task_overdue.apns b/iosApp/push_test_payloads/task_overdue.apns index 7da985b..5fcac02 100644 --- a/iosApp/push_test_payloads/task_overdue.apns +++ b/iosApp/push_test_payloads/task_overdue.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task Overdue", diff --git a/iosApp/test_push.apns b/iosApp/test_push.apns index e25c7b6..2c3bcd6 100644 --- a/iosApp/test_push.apns +++ b/iosApp/test_push.apns @@ -1,5 +1,5 @@ { - "Simulator Target Bundle": "com.tt.casera.CaseraDev", + "Simulator Target Bundle": "com.tt.honeyDue.HoneyDueDev", "aps": { "alert": { "title": "Task Reminder", diff --git a/settings.gradle.kts b/settings.gradle.kts index 452f833..874fff3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,4 @@ -rootProject.name = "Casera" +rootProject.name = "honeyDue" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") pluginManagement {