Commit graph

11 commits

Author SHA1 Message Date
Lukas Müllner
aab5c7d039 fix(storage): enforce strict <=500KB upload guarantee for private bucket
- Harden compression pipeline with iterative quality + dimension reduction
- Throw explicit error if final output still exceeds 500KB bucket limit
- Keep 1080px cap while allowing progressive downscaling to fit constraints
- Update login screen branding comment to car64
2026-03-04 11:30:32 +01:00
Lukas Müllner
e4afe7b63c feat(collections): persist active collection and harden member actions
- Persist scanner activeCollectionId via shared_preferences
- Restore last selected collection automatically on scan tab load
- Keep selection valid if collection list changes and store fallback safely
- Harden collection membership service rules:
  - only owners can invite/remove members
  - prevent self-invite duplicates
  - block owner removal
  - block owner leave action with explicit error
- Improve manage-collection UX with pull-to-refresh and owner leave guidance
2026-03-04 10:38:14 +01:00
Lukas Müllner
d8dbc2573a feat(v3.0): rebrand to car64 and align app flow with TPB schema
- Rename installed app display name to car64 (Android/iOS/Web titles)
- Remove Buy Me a Coffee link from About screen
- Update app version to 3.0.0+1
- Migrate scanner workflow to catalog-first flow:
  - look up in global_cars
  - show Found in Catalog bottom sheet for known cars
  - show New Discovery bottom sheet and insert into global_cars + car_votes
  - insert only into hotwheels for collection entries
- Align garage reads to TPB schema by joining global_cars
- Switch image field usage from image_url to user_image_url
- Implement private-storage image service:
  - upload path auth.uid()/hotwheels.id.jpg
  - signed URL generation (1h) for display
  - in-app compression pipeline targeting <=500KB and max 1080px width
- Use local brand fallback image assets/img/icon_bg_removed.png for missing car photos
- Restrict edit dialog to personal notes (hotwheels) instead of global car metadata
- Ensure first login auto-creates a default collection and owner membership
2026-03-04 10:12:12 +01:00
Lukas Müllner
2c6ae514fb fix: update app version to 2.0.0 and modify subtitle in profile screen 2026-02-25 07:17:47 +01:00
Lukas Müllner
b51d2b4ec1 fix: update collection service to use inFilter for querying collection IDs 2026-02-25 06:39:15 +01:00
Lukas Müllner
9f9a0cb601
Merge pull request #2 from DieLustigenTierwesen/copilot/sub-pr-1
Add client-side ownership enforcement to CollectionService update/delete
2026-02-24 20:42:55 +01:00
copilot-swe-agent[bot]
4fbd776605 Add client-side ownership checks to update and delete methods
Co-authored-by: derkauzigekoala <79001016+derkauzigekoala@users.noreply.github.com>
2026-02-24 19:18:27 +00:00
Lukas Müllner
2699242fdf
Update lib/services/collection_service.dart
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-24 20:16:21 +01:00
Lukas Müllner
ca11df0152
Update lib/services/collection_service.dart
n+1 performance

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-24 20:13:39 +01:00
Lukas Müllner
eaf538bf45 feat: implement collections feature with screens for viewing, managing, and creating collections 2026-02-24 16:38:35 +01:00
Lukas Müllner
91f25e0cef feat(v1.1): complete UI overhaul with branded theme, garage, and image uploads
- Custom Material 3 theme with Hot Wheels branding (orange/red gradient, navy accents)
- Locally bundled Poppins font (Regular, Medium, SemiBold, Bold)
- Redesigned login screen with full-bleed background image and frosted glass form
- Bottom navigation shell: My Garage / Scan / Profile tabs
- My Garage screen with grid view, search, stats, detail bottom sheet
- Edit and delete car details from the detail sheet
- Skip button for quick-add with minimal info
- Camera photo upload to Supabase Storage (UUID-based unguessable paths)
- Change/add photo from car detail view
- Profile screen with change password, about dialog, sign out
- Scan tab with camera scanner and manual entry
- Styled scanner screen with crosshair overlay and gradient buttons
- Custom app icon with transparent background and adaptive icon support
- Native splash screen with brand colors
- Auto-refresh garage on tab switch
2026-02-24 07:46:06 +01:00