This commit adds a comprehensive theming system to Android matching iOS, and fixes package declarations throughout the codebase to match directory structure. Theme System Additions: - Added 11 themes matching iOS: Default, Teal, Ocean, Forest, Sunset, Monochrome, Lavender, Crimson, Midnight, Desert, Mint - Created ThemeColors.kt with exact iOS color values for light/dark modes - Added ThemeManager.kt for dynamic theme switching - Created Spacing.kt with standardized spacing constants (xs/sm/md/lg/xl) - Added ThemePickerDialog.kt for theme selection UI - Integrated theme switching in ProfileScreen.kt - Updated App.kt to observe ThemeManager for reactive theming Component Library: - Added StandardCard.kt and CompactCard.kt for consistent card styling - Added FormTextField.kt with error/helper text support - Added FormSection.kt for grouping related form fields - Added StandardEmptyState.kt for empty state UI Package Migration: - Fixed all package declarations to match directory structure (com.example.mycrib.*) - Updated package declarations in commonMain, androidMain, and iosMain - Fixed all import statements across entire codebase - Ensures compilation on both Android and iOS platforms iOS Theme Rename: - Renamed "Default" theme to "Teal" in iOS - Renamed "Bright" theme to "Default" in iOS to make vibrant colors the default Build Status: - ✅ Android builds successfully - ✅ iOS builds successfully 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
100 lines
2.2 KiB
Kotlin
100 lines
2.2 KiB
Kotlin
package com.example.mycrib.models
|
|
|
|
import kotlinx.serialization.SerialName
|
|
import kotlinx.serialization.Serializable
|
|
|
|
@Serializable
|
|
data class ResidenceTypeResponse(
|
|
val count: Int,
|
|
val results: List<ResidenceType>
|
|
)
|
|
|
|
@Serializable
|
|
data class ResidenceType(
|
|
val id: Int,
|
|
val name: String,
|
|
val description: String? = null
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskFrequencyResponse(
|
|
val count: Int,
|
|
val results: List<TaskFrequency>
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskFrequency(
|
|
val id: Int,
|
|
val name: String,
|
|
@SerialName("lookup_name") val lookupName: String,
|
|
@SerialName("display_name") val displayName: String,
|
|
@SerialName("day_span") val daySpan: Int? = null,
|
|
@SerialName("notify_days") val notifyDays: Int? = null
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskPriorityResponse(
|
|
val count: Int,
|
|
val results: List<TaskPriority>
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskPriority(
|
|
val id: Int,
|
|
val name: String,
|
|
@SerialName("display_name") val displayName: String,
|
|
@SerialName("order_id") val orderId: Int = 0,
|
|
val description: String? = null
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskStatusResponse(
|
|
val count: Int,
|
|
val results: List<TaskStatus>
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskStatus(
|
|
val id: Int,
|
|
val name: String,
|
|
@SerialName("display_name") val displayName: String,
|
|
@SerialName("order_id") val orderId: Int = 0,
|
|
val description: String? = null
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskCategoryResponse(
|
|
val count: Int,
|
|
val results: List<TaskCategory>
|
|
)
|
|
|
|
@Serializable
|
|
data class TaskCategory(
|
|
val id: Int,
|
|
val name: String,
|
|
@SerialName("order_id") val orderId: Int = 0,
|
|
val description: String? = null
|
|
)
|
|
|
|
@Serializable
|
|
data class ContractorSpecialtyResponse(
|
|
val count: Int,
|
|
val results: List<ContractorSpecialty>
|
|
)
|
|
|
|
@Serializable
|
|
data class ContractorSpecialty(
|
|
val id: Int,
|
|
val name: String
|
|
)
|
|
|
|
@Serializable
|
|
data class StaticDataResponse(
|
|
val residenceTypes: List<ResidenceType>,
|
|
val taskFrequencies: List<TaskFrequency>,
|
|
val taskPriorities: List<TaskPriority>,
|
|
val taskStatuses: List<TaskStatus>,
|
|
val taskCategories: List<TaskCategory>,
|
|
val contractorSpecialties: List<ContractorSpecialty>
|
|
)
|