Rebrand from Casera/MyCrib to honeyDue
Total rebrand across KMM project: - Kotlin package: com.example.casera -> com.tt.honeyDue (dirs + declarations) - Gradle: rootProject.name, namespace, applicationId - Android: manifest, strings.xml (all languages), widget resources - iOS: pbxproj bundle IDs, Info.plist, entitlements, xcconfig - iOS directories: Casera/ -> HoneyDue/, CaseraTests/ -> HoneyDueTests/, etc. - Swift source: all class/struct/enum renames - Deep links: casera:// -> honeydue://, .casera -> .honeydue - App icons replaced with honeyDue honeycomb icon - Domains: casera.treytartt.com -> honeyDue.treytartt.com - Bundle IDs: com.tt.casera -> com.tt.honeyDue - Database table names preserved Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Verwalten Sie Ihre Immobilien einfach</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Verwalten Sie Ihre Immobilien einfach</string>
|
||||
<string name="auth_login_username_label">Benutzername oder E-Mail</string>
|
||||
<string name="auth_login_password_label">Passwort</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Administra tus propiedades con facilidad</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Administra tus propiedades con facilidad</string>
|
||||
<string name="auth_login_username_label">Usuario o Correo</string>
|
||||
<string name="auth_login_password_label">Contrasena</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Gerez vos proprietes facilement</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Gerez vos proprietes facilement</string>
|
||||
<string name="auth_login_username_label">Nom d\'utilisateur ou Email</string>
|
||||
<string name="auth_login_password_label">Mot de passe</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Gestisci le tue proprietà con facilità</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Gestisci le tue proprietà con facilità</string>
|
||||
<string name="auth_login_username_label">Nome utente o Email</string>
|
||||
<string name="auth_login_password_label">Password</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">物件管理を簡単に</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">物件管理を簡単に</string>
|
||||
<string name="auth_login_username_label">ユーザー名またはメールアドレス</string>
|
||||
<string name="auth_login_password_label">パスワード</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">부동산을 쉽게 관리하세요</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">부동산을 쉽게 관리하세요</string>
|
||||
<string name="auth_login_username_label">사용자 이름 또는 이메일</string>
|
||||
<string name="auth_login_password_label">비밀번호</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Beheer uw eigendommen met gemak</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Beheer uw eigendommen met gemak</string>
|
||||
<string name="auth_login_username_label">Gebruikersnaam of E-mail</string>
|
||||
<string name="auth_login_password_label">Wachtwoord</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Gerencie suas propriedades com facilidade</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Gerencie suas propriedades com facilidade</string>
|
||||
<string name="auth_login_username_label">Usuario ou Email</string>
|
||||
<string name="auth_login_password_label">Senha</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">轻松管理您的房产</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">轻松管理您的房产</string>
|
||||
<string name="auth_login_username_label">用户名或邮箱</string>
|
||||
<string name="auth_login_password_label">密码</string>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- App Name -->
|
||||
<string name="app_name">Casera</string>
|
||||
<string name="app_name">honeyDue</string>
|
||||
<string name="app_tagline">Manage your properties with ease</string>
|
||||
|
||||
<!-- Auth - Login -->
|
||||
<string name="auth_login_title">Casera</string>
|
||||
<string name="auth_login_title">honeyDue</string>
|
||||
<string name="auth_login_subtitle">Manage your properties with ease</string>
|
||||
<string name="auth_login_username_label">Username or Email</string>
|
||||
<string name="auth_login_password_label">Password</string>
|
||||
@@ -282,7 +282,7 @@
|
||||
<string name="manage_users_invite_title">Invite Others</string>
|
||||
<string name="manage_users_easy_share">Easy Share</string>
|
||||
<string name="manage_users_send_invite">Send Invite Link</string>
|
||||
<string name="manage_users_easy_share_desc">Send a .casera file via Messages, Email, or share. They just tap to join.</string>
|
||||
<string name="manage_users_easy_share_desc">Send a .honeydue file via Messages, Email, or share. They just tap to join.</string>
|
||||
<string name="manage_users_share_code">Share Code</string>
|
||||
<string name="manage_users_no_code">No active code</string>
|
||||
<string name="manage_users_generate">Generate Code</string>
|
||||
@@ -553,7 +553,7 @@
|
||||
<string name="profile_privacy">Privacy Policy</string>
|
||||
<string name="profile_privacy_subtitle">View our privacy policy</string>
|
||||
<string name="profile_app_version">Version %1$s</string>
|
||||
<string name="profile_app_name">Casera</string>
|
||||
<string name="profile_app_name">honeyDue</string>
|
||||
<string name="profile_edit_profile">Edit Profile</string>
|
||||
|
||||
<!-- Settings -->
|
||||
@@ -690,7 +690,7 @@
|
||||
<string name="subscription_limit_tasks">You\'ve reached the task limit for your plan</string>
|
||||
|
||||
<!-- Onboarding -->
|
||||
<string name="onboarding_welcome_title">Welcome to Casera</string>
|
||||
<string name="onboarding_welcome_title">Welcome to honeyDue</string>
|
||||
<string name="onboarding_welcome_subtitle">Your home maintenance companion</string>
|
||||
<string name="onboarding_start_fresh">Start Fresh</string>
|
||||
<string name="onboarding_join_existing">Join Existing Home</string>
|
||||
@@ -763,7 +763,7 @@
|
||||
<!-- Onboarding - Subscription -->
|
||||
<string name="onboarding_subscription_title">Go Pro</string>
|
||||
<string name="onboarding_subscription_subtitle">Take your home management to the next level</string>
|
||||
<string name="onboarding_subscription_pro">CASERA PRO</string>
|
||||
<string name="onboarding_subscription_pro">HONEYDUE PRO</string>
|
||||
<string name="onboarding_subscription_social_proof">4.9 • 10K+ homeowners</string>
|
||||
<string name="onboarding_subscription_benefit_properties">Unlimited Properties</string>
|
||||
<string name="onboarding_subscription_benefit_properties_desc">Track every home you own</string>
|
||||
|
||||
@@ -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 {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera
|
||||
package com.tt.honeyDue
|
||||
|
||||
class Greeting {
|
||||
private val platform = getPlatform()
|
||||
@@ -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()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera
|
||||
package com.tt.honeyDue
|
||||
|
||||
interface Platform {
|
||||
val name: String
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.analytics
|
||||
package com.tt.honeyDue.analytics
|
||||
|
||||
/**
|
||||
* Common analytics interface for cross-platform event tracking.
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.data
|
||||
package com.tt.honeyDue.data
|
||||
|
||||
/**
|
||||
* Platform-specific persistence manager for storing app data to disk.
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -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<JsonObject>(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,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.models
|
||||
package com.tt.honeyDue.models
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.navigation
|
||||
package com.tt.honeyDue.navigation
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.network
|
||||
package com.tt.honeyDue.network
|
||||
|
||||
import io.ktor.client.*
|
||||
import io.ktor.client.plugins.contentnegotiation.*
|
||||
@@ -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)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.network
|
||||
package com.tt.honeyDue.network
|
||||
|
||||
sealed class ApiResult<out T> {
|
||||
data class Success<T>(val data: T) : ApiResult<T>()
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.platform
|
||||
package com.tt.honeyDue.platform
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.platform
|
||||
package com.tt.honeyDue.platform
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.platform
|
||||
package com.tt.honeyDue.platform
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
@@ -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.
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
/**
|
||||
* Platform-specific task cache manager interface for persistent storage.
|
||||
@@ -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
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
/**
|
||||
* Cross-platform theme storage for persisting theme selection.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
/**
|
||||
* Platform-specific token manager interface for persistent storage.
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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(
|
||||
@@ -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(
|
||||
@@ -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)
|
||||
@@ -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 <T> ApiResult<T>.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
|
||||
}
|
||||
}
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
@@ -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)
|
||||
)
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.ui.components.auth
|
||||
package com.tt.honeyDue.ui.components.auth
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.*
|
||||
@@ -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
|
||||
@@ -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) {
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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.*
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
@@ -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(
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user