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,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
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera
|
||||
package com.tt.honeyDue
|
||||
|
||||
import platform.UIKit.UIDevice
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.analytics
|
||||
package com.tt.honeyDue.analytics
|
||||
|
||||
/**
|
||||
* iOS implementation of PostHog Analytics.
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.data
|
||||
package com.tt.honeyDue.data
|
||||
|
||||
import platform.Foundation.NSUserDefaults
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.network
|
||||
package com.tt.honeyDue.network
|
||||
|
||||
import io.ktor.client.*
|
||||
import io.ktor.client.engine.darwin.*
|
||||
@@ -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.
|
||||
@@ -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()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.platform
|
||||
package com.tt.honeyDue.platform
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.platform
|
||||
package com.tt.honeyDue.platform
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.platform
|
||||
package com.tt.honeyDue.platform
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
@@ -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
|
||||
|
||||
/**
|
||||
@@ -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.
|
||||
@@ -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()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
import platform.Foundation.NSUserDefaults
|
||||
import kotlin.concurrent.Volatile
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
internal actual fun getPlatformTaskCacheManager(): TaskCacheManager? {
|
||||
return TaskCacheManager.getInstance()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
import platform.Foundation.NSUserDefaults
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
import kotlin.concurrent.Volatile
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.storage
|
||||
package com.tt.honeyDue.storage
|
||||
|
||||
internal actual fun getPlatformTokenManager(): TokenManager? {
|
||||
return TokenManager.getInstance()
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.example.casera.ui.components.auth
|
||||
package com.tt.honeyDue.ui.components.auth
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
@@ -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.*
|
||||
Reference in New Issue
Block a user