Skip to content

Commit acdcabd

Browse files
committed
Add attachments, pet selector, badges & search fix
Multiple UI and feature tweaks across app screens: - chat_screen.dart: Add attachment bottom sheet and _AttachOption widget, implement animated send/mic button toggle, update message hint, wire text change state handling and show snackbars for unimplemented features. - pet_care_screen.dart: Add per-pet selector in AppBar for users with multiple pets, integrate active pet provider, remove old _PetSelector, and adjust layout/TabBar sizing. - pet_profile_screen.dart: Restyle action buttons (use FilledButton for Message, circular share InkWell) and adjust spacing. - search_repository.dart: Fix search filter to query animal_type instead of species. - search_screen.dart: Hook SearchBar.onChanged to _onSearch and update clear button to refresh UI state. - settings_screen.dart: Add Achievements & Badges section (new UI, badge dialog and sharing via share_plus), import controllers/models needed. - APP_SCREENS_AUDIT.md: Add new audit file. These changes improve messaging attachments UX, multi-pet navigation, badges visibility and search correctness.
1 parent 0ee64c4 commit acdcabd

7 files changed

Lines changed: 936 additions & 105 deletions

File tree

APP_SCREENS_AUDIT.md

Lines changed: 391 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,391 @@
1+
# PetSphere — App Screens Audit
2+
3+
| Field | Value |
4+
|-------|-------|
5+
| **Audit date** | May 3, 2026 |
6+
| **Build** | Debug on `emulator-5554` (Android 17 / API 37) |
7+
| **Method** | Marionette + Cursor agent |
8+
9+
---
10+
11+
## Table of contents
12+
13+
1. [Home / Feed](#home--feed)
14+
2. [Discovery / Breeding](#discovery--breeding-discovery)
15+
3. [Search](#search)
16+
4. [Pet Care](#pet-care)
17+
5. [Chat / Messages](#chat--messages)
18+
6. [Pet Profile (Own)](#pet-profile-own)
19+
7. [Pet Profile (Visitor)](#pet-profile-visitor--other-user)
20+
8. [Marketplace](#marketplace)
21+
9. [Settings](#settings)
22+
10. [Notifications](#notifications)
23+
11. [Care resource screens](#care-resource-screens)
24+
12. [Bottom navigation](#bottom-navigation)
25+
13. [Summary of changes](#summary-of-all-changes)
26+
27+
---
28+
29+
## Home / Feed
30+
31+
| | |
32+
|---|---|
33+
| **Route** | `/` (MainLayout index 0) |
34+
| **File** | `lib/views/home_screen.dart` |
35+
36+
### Available actions
37+
38+
| Done | Action | Result |
39+
|:---:|:---|:---|
40+
| x | Scroll feed | Working |
41+
| x | Tap story (Your story) | Working |
42+
| x | Tap pet post 뿯↽ opens post detail | Working |
43+
| x | Like post (heart icon) | Working |
44+
| x | Comment icon | Working |
45+
| x | Share post icon | Working |
46+
| x | Bookmark icon | Working |
47+
| x | Search icon (AppBar) 뿯↽ Search screen | Working |
48+
| x | New Post icon (AppBar) 뿯↽ Create Post | Working |
49+
| x | Notifications icon (AppBar) | Working |
50+
| x | Messages icon (AppBar) | Working (unread badge) |
51+
52+
### Issues found
53+
54+
None observed.
55+
56+
### Screenshots
57+
58+
Initial launch screenshot — 2026-05-03.
59+
60+
---
61+
62+
## Discovery / Breeding Discovery
63+
64+
| | |
65+
|---|---|
66+
| **Route** | MainLayout index 1 (bottom nav search icon) |
67+
| **File** | `lib/views/discovery_screen.dart` |
68+
69+
### Available actions
70+
71+
| Done | Action | Result |
72+
|:---:|:---|:---|
73+
| x | Pet selector bar (multiple pets) | Working |
74+
| x | Filter chips: For You, Dogs, Cats, Nearby | Working |
75+
| x | Swipe card left (skip) | Working |
76+
| x | Swipe card right (like) | Working |
77+
| x | Tap star button 뿯↽ pet profile | Working |
78+
| x | Tap heart button 뿯↽ like with animation | Working |
79+
| x | Liked Pets icon (AppBar) | Working |
80+
| x | New Listing icon (AppBar) 뿯↽ bottom sheet | Working |
81+
| x | Nearby tab | Working |
82+
| x | My Listings tab | Working |
83+
84+
### Issues found
85+
86+
- Action buttons cleared above bottom nav via `navSpace` padding.
87+
- LIKE/NOPE overlay uses `colorScheme` tokens.
88+
89+
### Screenshots
90+
91+
2026-05-03.
92+
93+
---
94+
95+
## Search
96+
97+
| | |
98+
|---|---|
99+
| **Route** | `/search` (pushed from Home AppBar) |
100+
| **File** | `lib/views/search_screen.dart` |
101+
102+
### Available actions
103+
104+
| Done | Action | Result |
105+
|:---:|:---|:---|
106+
| x | Type in SearchBar 뿯↽ live search (`onChanged`) | Fixed |
107+
| x | Submit search (keyboard Enter) | Working |
108+
| x | Clear button (X) | Working |
109+
| x | Posts tab | Working |
110+
| x | Pets tab | Working |
111+
| x | Market tab | Working |
112+
113+
### Issues fixed
114+
115+
1. **Critical:** Added `onChanged: _onSearch` so search runs while typing.
116+
2. **Query bug:** Replaced wrong column `species` with `animal_type` in pet search (was returning zero pet results).
117+
3. Refresh trailing button visibility on clear via `setState`.
118+
119+
### Screenshots
120+
121+
Empty state — 2026-05-03.
122+
123+
---
124+
125+
## Pet Care
126+
127+
| | |
128+
|---|---|
129+
| **Route** | `/pet_care` (bottom nav center + button) |
130+
| **File** | `lib/views/pet_care_screen.dart` |
131+
132+
### Available actions
133+
134+
| Done | Action | Result |
135+
|:---:|:---|:---|
136+
| x | Per-pet selector (above tabs) | Added |
137+
| x | Care Diary / Health / Feeding tabs | Working |
138+
| x | Daily checklist tasks | Working |
139+
| x | Today's overview bento grid | Working |
140+
| x | Edit Goals | Working |
141+
| x | Mood selector (Sleepy / Happy / Playful / Sick) | Working |
142+
| x | Care Resources grid (20 resource buttons) | Working |
143+
| x | Setup banner (onboarding incomplete) | Working |
144+
| x | Streak display | Working |
145+
| x | Achievements block | Working |
146+
| x | Pull-to-refresh | Working |
147+
148+
### Issues fixed
149+
150+
- Per-pet selector at top so all three tabs share the selected pet.
151+
- Removed duplicate `_PetSelector` from Care Diary tab body.
152+
- Selector: pill chips with avatar + name, amber border when selected.
153+
154+
### Screenshots
155+
156+
Care Diary — Fluffy 1 selected — 2026-05-03.
157+
158+
---
159+
160+
## Chat / Messages
161+
162+
| | |
163+
|---|---|
164+
| **Route** | `/messages`, `/chat/:id` |
165+
| **Files** | `lib/views/messages_list_screen.dart`, `lib/views/chat_screen.dart` |
166+
167+
### Available actions
168+
169+
| Done | Action | Result |
170+
|:---:|:---|:---|
171+
| x | Messages list (avatars, names, preview) | Working |
172+
| x | Unread badge | Working |
173+
| x | Tap thread 뿯↽ chat | Working |
174+
| x | AppBar avatar + name (tappable 뿯↽ pet profile) | Working |
175+
| x | Online status indicator | Working |
176+
| x | Three-dot menu (AppBar) | Working (placeholder) |
177+
| x | Date separators | Working |
178+
| x | Sent bubbles (amber gradient) | Working |
179+
| x | Timestamp + read receipt | Working |
180+
| x | Attachment (+) 뿯↽ bottom sheet | Fixed |
181+
| x | Camera / Gallery / Document (sheet options) | Snackbar placeholders |
182+
| x | Text input | Working |
183+
| x | Mic icon when field empty | Added |
184+
| x | Send when text present (`AnimatedSwitcher`) | Working |
185+
| x | Empty state: "Say hello! 붿붿" | Working |
186+
187+
### Issues fixed
188+
189+
- Replaced "Attachment support coming soon" snackbar with modal bottom sheet.
190+
- Send / mic toggle from text content; `onChanged` triggers rebuild.
191+
- Added `_AttachOption` widget for sheet rows.
192+
193+
### Screenshots
194+
195+
Sallu chat with attachment sheet — 2026-05-03.
196+
197+
---
198+
199+
## Pet Profile (Own)
200+
201+
| | |
202+
|---|---|
203+
| **Route** | MainLayout index 4 (profile tab) |
204+
| **File** | `lib/views/pet_profile_screen.dart` |
205+
206+
### Available actions
207+
208+
| Done | Action | Result |
209+
|:---:|:---|:---|
210+
| x | Hero `SliverAppBar` | Working |
211+
| x | Edit Profile | Working |
212+
| x | Share | Working |
213+
| x | Pet / Owner selector chips | Working |
214+
| x | Post grid | Working |
215+
| x | Settings gear 뿯↽ Settings | Working |
216+
| x | Care badges (e.g. First Step) | Working |
217+
| x | Followers / Following / Posts stats | Working |
218+
219+
### Issues found
220+
221+
None in own-profile view.
222+
223+
---
224+
225+
## Pet Profile (Visitor / Other User)
226+
227+
| | |
228+
|---|---|
229+
| **Route** | `/pet/:id` |
230+
| **File** | `lib/views/pet_profile_screen.dart` |
231+
232+
### Available actions
233+
234+
| Done | Action | Result |
235+
|:---:|:---|:---|
236+
| x | Follow / Unfollow (filled amber vs grey) | Working |
237+
| x | Message 뿯↽ opens / creates thread | Working |
238+
| x | Share (icon-only circle) | Fixed |
239+
240+
### Issues fixed
241+
242+
- Message: `FilledButton.icon` + `secondaryContainer`.
243+
- Share: icon-only circle with border (min touch target).
244+
245+
---
246+
247+
## Marketplace
248+
249+
| | |
250+
|---|---|
251+
| **Route** | MainLayout index 3 |
252+
| **File** | `lib/views/marketplace_screen.dart` |
253+
254+
### Available actions
255+
256+
| Done | Action | Result |
257+
|:---:|:---|:---|
258+
| x | Product grid | Working |
259+
| x | Add to cart | Working |
260+
| x | Tap product 뿯↽ detail | Working |
261+
| x | Cart icon + badge | Working |
262+
| x | Search / filter | Working |
263+
264+
### Issues found
265+
266+
None observed.
267+
268+
---
269+
270+
## Settings
271+
272+
| | |
273+
|---|---|
274+
| **Route** | `/settings` |
275+
| **File** | `lib/views/settings_screen.dart` |
276+
277+
### Available actions
278+
279+
| Done | Action | Result |
280+
|:---:|:---|:---|
281+
| x | Theme toggle (Light / Dark) | Working |
282+
| x | Account profile block | Working |
283+
| x | Notifications tile | Working |
284+
| x | Liked pets tile | Working |
285+
| x | Order history tile | Working |
286+
| x | **Achievements & Badges** (per-pet rows, horizontal scroll) | Added |
287+
| x | Tap badge 뿯↽ dialog (title, description, date, Share) | Working |
288+
| x | Empty state when no badges | Working |
289+
| x | Privacy Policy 뿯↽ URL | Working |
290+
| x | Terms 뿯↽ URL | Working |
291+
| x | Help & Support 뿯↽ email | Working |
292+
| x | App version | Working |
293+
| x | Sign out (confirm dialog) | Working |
294+
295+
### Issues fixed
296+
297+
- Achievements section with detail dialog + share.
298+
- Deprecated `Share.share()` migrated to `SharePlus.instance.share(ShareParams(...))`.
299+
300+
---
301+
302+
## Notifications
303+
304+
| | |
305+
|---|---|
306+
| **Route** | `/notifications` |
307+
| **File** | `lib/views/notifications_screen.dart` |
308+
309+
### Available actions
310+
311+
| Done | Action | Result |
312+
|:---:|:---|:---|
313+
| x | Notification list | Working |
314+
| x | Mark as read | Working |
315+
| x | Tap 뿯↽ target screen | Working |
316+
317+
### Issues found
318+
319+
None observed.
320+
321+
---
322+
323+
## Care resource screens
324+
325+
Navigated from Pet Care 뿯↽ Care Resources grid.
326+
327+
| Screen | Route | Status |
328+
|:---|:---|:---:|
329+
| Vet Booking | `/vet_booking` | OK |
330+
| Emergency Care | `/emergency_care` | OK |
331+
| Nutrition Planner | `/nutrition_planner` | OK |
332+
| Expense Tracker | `/expenses` | OK |
333+
| Growth Chart | `/growth_chart` | OK |
334+
| Insurance Hub | `/insurance` | OK |
335+
| Pet Training | `/training` | OK |
336+
| Adoption Center | `/adoption` | OK |
337+
| Pet-Friendly Places | `/places` | OK |
338+
| Event Discovery | `/events` | OK |
339+
| Health Record | `/health_record` | OK |
340+
| Pet Sitter Dashboard | `/sitters` | OK |
341+
| Social Timeline | `/social_timeline` | OK |
342+
| Breed Identifier | `/breed_identifier` | OK |
343+
| Knowledge Base | `/knowledge` | OK |
344+
| Gear Reviews | `/reviews` | OK |
345+
| Community Groups | `/groups` | OK |
346+
| Lost & Found | `/lost_found` | OK |
347+
| Memorial | `/memorial` | OK |
348+
349+
---
350+
351+
## Bottom navigation
352+
353+
| | |
354+
|---|---|
355+
| **File** | `lib/views/main_layout.dart` |
356+
357+
| Index | Icon | Screen | Status |
358+
|:---:|:---|:---|:---:|
359+
| 0 | Home | `HomeScreen` | OK |
360+
| 1 | Search | `DiscoveryScreen` | OK |
361+
| 2 | + | `PetCareScreen` (push) | OK |
362+
| 3 | Store | `MarketplaceScreen` | OK |
363+
| 4 | Person | `PetProfileScreen` | OK |
364+
365+
**Checks:** glass styling, `SafeArea`, semantics labels, profile avatar tab, `extendBody` + `bottomNavSpaceFor()`.
366+
367+
---
368+
369+
## Summary of all changes
370+
371+
### Bug fixes
372+
373+
1. Search: live `onChanged` search.
374+
2. Search: `animal_type` instead of `species` in pets query.
375+
376+
### UI
377+
378+
3. Chat: attachment bottom sheet (Camera / Gallery / Document placeholders).
379+
4. Chat: mic 뿯↽ send via `AnimatedSwitcher`.
380+
5. Pet Care: single top pet selector for all tabs; removed duplicate in-tab selector.
381+
6. Visitor profile: filled Message + icon Share.
382+
7. Settings: Achievements & Badges block.
383+
384+
### Code quality
385+
386+
8. `SharePlus` API migration.
387+
9. `flutter analyze`: **0 issues** (at audit time).
388+
389+
---
390+
391+
*Generated by PetSphere audit — May 3, 2026.*

0 commit comments

Comments
 (0)