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:
Trey t
2026-03-07 06:33:57 -06:00
parent 9c574c4343
commit 1e2adf7660
450 changed files with 1730 additions and 1788 deletions

View File

@@ -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

View File

@@ -1,4 +1,4 @@
package com.example.casera
package com.tt.honeyDue
import platform.UIKit.UIDevice

View File

@@ -1,4 +1,4 @@
package com.example.casera.analytics
package com.tt.honeyDue.analytics
/**
* iOS implementation of PostHog Analytics.

View File

@@ -1,4 +1,4 @@
package com.example.casera.data
package com.tt.honeyDue.data
import platform.Foundation.NSUserDefaults

View File

@@ -1,4 +1,4 @@
package com.example.casera.network
package com.tt.honeyDue.network
import io.ktor.client.*
import io.ktor.client.engine.darwin.*

View File

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

View File

@@ -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()

View File

@@ -1,4 +1,4 @@
package com.example.casera.platform
package com.tt.honeyDue.platform
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember

View File

@@ -1,4 +1,4 @@
package com.example.casera.platform
package com.tt.honeyDue.platform
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember

View File

@@ -1,4 +1,4 @@
package com.example.casera.platform
package com.tt.honeyDue.platform
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember

View File

@@ -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
/**

View File

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

View File

@@ -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<ResidenceSharingState, (Residence) ->
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<ResidenceSharingState, (Residence) ->
@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()

View File

@@ -1,4 +1,4 @@
package com.example.casera.storage
package com.tt.honeyDue.storage
import platform.Foundation.NSUserDefaults
import kotlin.concurrent.Volatile

View File

@@ -1,4 +1,4 @@
package com.example.casera.storage
package com.tt.honeyDue.storage
internal actual fun getPlatformTaskCacheManager(): TaskCacheManager? {
return TaskCacheManager.getInstance()

View File

@@ -1,4 +1,4 @@
package com.example.casera.storage
package com.tt.honeyDue.storage
import platform.Foundation.NSUserDefaults

View File

@@ -1,4 +1,4 @@
package com.example.casera.storage
package com.tt.honeyDue.storage
import kotlin.concurrent.Volatile

View File

@@ -1,4 +1,4 @@
package com.example.casera.storage
package com.tt.honeyDue.storage
internal actual fun getPlatformTokenManager(): TokenManager? {
return TokenManager.getInstance()

View File

@@ -1,4 +1,4 @@
package com.example.casera.ui.components.auth
package com.tt.honeyDue.ui.components.auth
import androidx.compose.runtime.Composable

View File

@@ -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.*