chore(branding): replace Hot Wheels user-facing text with die-cast wording
This commit is contained in:
parent
7175fdbb1f
commit
214285bb68
8 changed files with 11 additions and 11 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
# car64
|
# car64
|
||||||
|
|
||||||
car64 is a Flutter + Supabase Hot Wheels collector app with a fast scanning workflow, private photo storage, collaborative collections, and community-based catalog validation.
|
car64 is a Flutter + Supabase die-cast collector app with a fast scanning workflow, private photo storage, collaborative collections, and community-based catalog validation.
|
||||||
|
|
||||||
## Core Features
|
## Core Features
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import 'theme/app_colors.dart';
|
||||||
import 'utils/error_utils.dart';
|
import 'utils/error_utils.dart';
|
||||||
import 'utils/scanner_utils.dart';
|
import 'utils/scanner_utils.dart';
|
||||||
|
|
||||||
/// Screen that uses the camera to scan text (OCR) from a Hot Wheels package
|
/// Screen that uses the camera to scan text (OCR) from a die-cast package
|
||||||
/// and extract the hw_id (e.g. "JKF21").
|
/// and extract the hw_id (e.g. "JKF21").
|
||||||
///
|
///
|
||||||
/// The detected ID is returned via Navigator.pop(context, hwId).
|
/// The detected ID is returned via Navigator.pop(context, hwId).
|
||||||
|
|
@ -174,7 +174,7 @@ class _ScannerScreenState extends State<ScannerScreen>
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Capture a photo, run OCR, and look for a Hot Wheels ID.
|
/// Capture a photo, run OCR, and look for a die-cast model ID.
|
||||||
Future<void> _captureAndScan() async {
|
Future<void> _captureAndScan() async {
|
||||||
if (_isBusy || _cameraController == null || !_cameraController!.value.isInitialized) return;
|
if (_isBusy || _cameraController == null || !_cameraController!.value.isInitialized) return;
|
||||||
if (_cameraController!.value.isTakingPicture) return;
|
if (_cameraController!.value.isTakingPicture) return;
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ class _AboutScreenState extends State<AboutScreen> {
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
Center(
|
Center(
|
||||||
child: Text(
|
child: Text(
|
||||||
'Track and manage your Hot Wheels collection.',
|
'Track and manage your die-cast car collection.',
|
||||||
style: theme.textTheme.bodyMedium?.copyWith(
|
style: theme.textTheme.bodyMedium?.copyWith(
|
||||||
color: AppColors.textHint,
|
color: AppColors.textHint,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,7 @@ class CollectionsScreenState extends State<CollectionsScreen>
|
||||||
maxLength: 50,
|
maxLength: 50,
|
||||||
decoration: const InputDecoration(
|
decoration: const InputDecoration(
|
||||||
labelText: 'Name',
|
labelText: 'Name',
|
||||||
hintText: 'e.g. Hot Wheels, Matchbox…',
|
hintText: 'e.g. Die-Cast Cars, Matchbox…',
|
||||||
),
|
),
|
||||||
validator: (value) {
|
validator: (value) {
|
||||||
final trimmed = value?.trim() ?? '';
|
final trimmed = value?.trim() ?? '';
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import '../theme/app_colors.dart';
|
||||||
import '../utils/error_utils.dart';
|
import '../utils/error_utils.dart';
|
||||||
import '../widgets/car_card.dart';
|
import '../widgets/car_card.dart';
|
||||||
|
|
||||||
/// The "My Garage" screen — shows a collection's cars in a grid.
|
/// The "My Garage" screen — shows a collection's die-cast cars in a grid.
|
||||||
class GarageScreen extends StatefulWidget {
|
class GarageScreen extends StatefulWidget {
|
||||||
final String collectionId;
|
final String collectionId;
|
||||||
final String collectionName;
|
final String collectionName;
|
||||||
|
|
@ -1348,7 +1348,7 @@ class _EmptyGarage extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
hasSearch
|
hasSearch
|
||||||
? 'Try a different search term'
|
? 'Try a different search term'
|
||||||
: 'Scan your first Hot Wheels car to get started!',
|
: 'Scan your first die-cast car to get started!',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: const TextStyle(color: AppColors.textHint),
|
style: const TextStyle(color: AppColors.textHint),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ class ScanTabState extends State<ScanTab> {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 28),
|
const SizedBox(height: 28),
|
||||||
const Text(
|
const Text(
|
||||||
'Scan a Hot Wheels Car',
|
'Scan a Die-Cast Car',
|
||||||
style: TextStyle(fontSize: 22, fontWeight: FontWeight.w700),
|
style: TextStyle(fontSize: 22, fontWeight: FontWeight.w700),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import '../main.dart';
|
||||||
/// Handles uploading / deleting car images in Supabase Storage.
|
/// Handles uploading / deleting car images in Supabase Storage.
|
||||||
///
|
///
|
||||||
/// Bucket: `car-images` (private)
|
/// Bucket: `car-images` (private)
|
||||||
/// Path: `{auth.uid()}/{hotwheels.id}.jpg`
|
/// Path: `{auth.uid()}/{entry.id}.jpg`
|
||||||
class StorageService {
|
class StorageService {
|
||||||
StorageService._();
|
StorageService._();
|
||||||
|
|
||||||
|
|
@ -20,7 +20,7 @@ class StorageService {
|
||||||
static const _maxSignedUrlCacheEntries = 500;
|
static const _maxSignedUrlCacheEntries = 500;
|
||||||
static final Map<String, _SignedUrlCacheEntry> _signedUrlCache = {};
|
static final Map<String, _SignedUrlCacheEntry> _signedUrlCache = {};
|
||||||
|
|
||||||
/// Upload a car image for a specific hotwheels entry.
|
/// Upload a car image for a specific garage entry.
|
||||||
/// Returns the storage path on success (e.g. `uid/123.jpg`).
|
/// Returns the storage path on success (e.g. `uid/123.jpg`).
|
||||||
static Future<String> uploadCarImage({
|
static Future<String> uploadCarImage({
|
||||||
required File file,
|
required File file,
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import 'package:cached_network_image/cached_network_image.dart';
|
||||||
import '../services/storage_service.dart';
|
import '../services/storage_service.dart';
|
||||||
import '../theme/app_colors.dart';
|
import '../theme/app_colors.dart';
|
||||||
|
|
||||||
/// A styled card for displaying a single Hot Wheels car in the garage.
|
/// A styled card for displaying a single die-cast car in the garage.
|
||||||
class CarCard extends StatelessWidget {
|
class CarCard extends StatelessWidget {
|
||||||
final String hwId;
|
final String hwId;
|
||||||
final String? name;
|
final String? name;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue