Add pulsing icon for residences with overdue tasks

- Add overdueCount field to ResidenceResponse model
- ResidenceCard shows PulsingIconView when residence has overdue tasks
- SummaryCard uses static CaseraIconView (never pulses)
- APILayer refreshes residence data after task completion to update
  overdue counts and animation state

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-07 12:19:28 -06:00
parent 9d6e7c4f2a
commit bb4ff216b1
7 changed files with 343 additions and 20 deletions

View File

@@ -51,6 +51,7 @@ data class ResidenceResponse(
@SerialName("purchase_price") val purchasePrice: Double? = null,
@SerialName("is_primary") val isPrimary: Boolean = false,
@SerialName("is_active") val isActive: Boolean = true,
@SerialName("overdue_count") val overdueCount: Int = 0,
@SerialName("created_at") val createdAt: String,
@SerialName("updated_at") val updatedAt: String
) {

View File

@@ -658,8 +658,8 @@ object APILayer {
result.data.updatedTask?.let { updatedTask ->
DataManager.updateTask(updatedTask)
}
// Refresh summary counts (tasksDueNextWeek, etc.) - lightweight API call
refreshSummary()
// Refresh my-residences to update per-residence overdueCount and summary
refreshMyResidences()
}
return result
@@ -678,8 +678,8 @@ object APILayer {
result.data.updatedTask?.let { updatedTask ->
DataManager.updateTask(updatedTask)
}
// Refresh summary counts (tasksDueNextWeek, etc.) - lightweight API call
refreshSummary()
// Refresh my-residences to update per-residence overdueCount and summary
refreshMyResidences()
}
return result