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

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