feat(android): surface shift tags on schedule and dashboard #332
No reviewers
Labels
No labels
agent:hermes
bug
chore
dependency
feature
status:blocked
status:in-progress
status:needs-info
status:needs-review
status:ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
owlburtoe/Shiftd!332
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "android-shift-tags"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Android counterpart to #330. Renders shift tags (
call,hot,preceptor, …) at a glance on the staff member's own shift display so they can see what type of shift they're working. A shift with no tags is a regular shift (nothing rendered).Tags were already deserialized into
ShiftSummary.tagsfrom the schedule-detail endpoint and were already rendered on coworker rows ("Working Today"). This PR closes the remaining gap: the staff member's own shifts on the Schedule screen and the Dashboard next-shift hero.No backend dependency
Unlike web (whose dashboard reads
/staff/:id/upcoming-assignments), the Android dashboard and schedule both source shifts from the schedule-detail endpoint, which already carriestagson every shift. So this is a self-contained, Android-only change offmain— it does not depend on #330's backend change.Changes
schedule/ScheduleCalendarModels.kttags: List<ShiftTagSummary>toScheduleAssignmentDisplayRowschedule/ScheduleCalendarDeriver.kttags = shift.tagswhen building the own-shift rowschedule/ScheduleScreen.ktRolePill) onAssignmentRow— covers day detail, timeline, and selected-day surfaces, which all delegate to itdashboard/DashboardModels.kttags: List<ShiftTagSummary>toNextShiftSummarydashboard/DashboardDeriver.kttags = shift.tagsintoNextShiftdashboard/DashboardScreen.ktShiftTypePill) on the next-shift heroReuses the existing colored-pill components and the same
shift.tagssource already used for coworker tags — no new tag model, no new networking, no DTO changes.Test plan
./gradlew :app:compileDebugKotlin— clean./gradlew :app:testDebugUnitTest— full unit suite passes (incl.ScheduleCalendarDeriverTest,ScheduleScreenPresentationTest,DashboardViewModelTest)./gradlew :app:lintDebug— BUILD SUCCESSFUL, no new lint errors