versionCode 144 is the build already on Play; a duplicate is rejected at upload. pubspec is the source of truth — android/local.properties is gitignored and regenerated from it by `flutter build`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EqVJPB9B4QuieZnBAAKgYQ
203 lines
7.2 KiB
YAML
203 lines
7.2 KiB
YAML
name: miler
|
|
description: Miler Rider - Smarter Pickups, Powered by AI
|
|
publish_to: "none"
|
|
|
|
version: 1.2.29+145
|
|
|
|
|
|
environment:
|
|
sdk: ^3.9.2
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
|
|
cupertino_icons: ^1.0.8
|
|
qr_flutter: ^4.1.0
|
|
introduction_screen: ^4.0.0
|
|
smooth_page_indicator: ^1.2.1
|
|
get: ^4.7.2
|
|
http: ^1.2.2
|
|
device_info_plus: ^12.2.0
|
|
firebase_core: ^4.2.0
|
|
firebase_messaging: ^16.0.3
|
|
image_picker: ^1.1.2
|
|
shared_preferences: ^2.3.3
|
|
sms_autofill: ^2.3.0
|
|
webview_flutter: ^4.8.0
|
|
audioplayers: ^6.5.1
|
|
flutter_local_notifications: ^19.5.0
|
|
path_provider: ^2.1.4
|
|
geolocator: ^14.0.2
|
|
connectivity_plus: ^7.0.0
|
|
slide_to_submit_button: ^1.0.3
|
|
flutter_tts: ^4.0.2
|
|
vibration: ^3.1.4
|
|
contained_tab_bar_view: ^0.8.0
|
|
tab_indicator_styler: ^2.0.0
|
|
geocoding: ^4.0.0
|
|
fl_chart: ^1.1.1
|
|
battery_plus: ^7.0.0
|
|
provider: ^6.1.5+1
|
|
slider_button_lite: ^1.0.1
|
|
url_launcher: ^6.3.2
|
|
circular_countdown_timer: ^0.2.4
|
|
lottie: ^3.3.2
|
|
flutter_foreground_task: ^7.0.3
|
|
floating: ^6.0.0
|
|
bottom_sheet: ^4.0.4
|
|
wakelock_plus: ^1.1.1
|
|
minio: ^3.5.8
|
|
package_info_plus: ^8.0.0
|
|
flutter_native_splash: ^2.4.7
|
|
new_version_plus: ^0.1.1
|
|
raindrop_animated_splash_screen: ^0.0.2
|
|
alp_animated_splashscreen: ^0.0.6
|
|
flutter_slidable: ^4.0.3
|
|
animated_stack: ^0.3.3
|
|
flutter_screenutil: ^5.9.3
|
|
google_fonts: ^6.3.3
|
|
shimmer: ^3.0.0
|
|
skeletonizer: ^2.1.3
|
|
flutter_launcher_icons: ^0.14.4
|
|
scratcher: ^2.5.0
|
|
confetti: ^0.8.0
|
|
permission_handler: ^12.0.1
|
|
mqtt_client: ^10.3.0
|
|
flutter_map: ^8.3.1
|
|
latlong2: ^0.10.1
|
|
# The delivery line's maps. The parcel line draws its maps with flutter_map
|
|
# (OSM tiles + OSRM, keyless — see views/helpers/widgets/miler_map.dart); the
|
|
# ported delivery screens under lib/xpress were built against MapLibre and are
|
|
# kept verbatim, so both engines ship. Only one line runs per session, so only
|
|
# one is ever instantiated.
|
|
maplibre_gl: ^0.26.2
|
|
animated_toggle_switch: ^0.8.7
|
|
another_flushbar: ^2.2.4
|
|
lucide_icons_flutter: ^3.1.17
|
|
tab_container: ^3.5.3
|
|
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
flutter_lints: ^6.0.0
|
|
# The camera seam. StopVerificationPage's review step is only reachable once
|
|
# a photo exists, so the tests swap ImagePickerPlatform.instance for a fake
|
|
# that returns a file on disk. Test-only — the app talks to image_picker.
|
|
image_picker_platform_interface: ^2.10.0
|
|
|
|
|
|
# ── The launcher icon looked small, and the manifest was not the reason ──
|
|
#
|
|
# `android:icon="@mipmap/ic_launcher"` only names the resource; how large the
|
|
# mark *reads* on the home screen is decided by the artwork and by whether the
|
|
# icon is adaptive. Both were working against it:
|
|
#
|
|
# 1. `doormile_icon.png` is 1024x1024 with the mark occupying 684px of it —
|
|
# 170px of transparent margin on every side, so a third of the icon was
|
|
# empty before Android touched it.
|
|
# 2. There was no `adaptive_icon_foreground`, so no `mipmap-anydpi-v26` was
|
|
# generated. Android 8+ falls back to *legacy treatment* for a plain PNG:
|
|
# it shrinks the bitmap to roughly three-quarters and centres it on a white
|
|
# rounded backdrop it draws itself. Stacked on the margin above, the mark
|
|
# ended up at about half the width of the icons beside it.
|
|
#
|
|
# So the fix is two pre-sized sources, not a manifest attribute:
|
|
#
|
|
# • **foreground** — the mark alone at 61% of the canvas, which is the 66dp
|
|
# safe zone of the 108dp adaptive canvas. Everything outside that is what
|
|
# the launcher's mask cuts away, and a circle mask on this circular mark
|
|
# now meets its edge.
|
|
# • **legacy / iOS** — the mark at 80% on white, because neither is masked the
|
|
# way an adaptive icon is and both are square.
|
|
#
|
|
# `adaptive_icon_foreground_inset: 0` because the padding is already baked into
|
|
# the foreground at the exact safe-zone ratio; the tool's default 16 would add
|
|
# a second margin and undo the change.
|
|
#
|
|
# `doormile_icon.png` is deliberately left alone — `flutter_native_splash`
|
|
# below still uses it, and the splash wants the airier framing.
|
|
#
|
|
# The two generated sources live in `launcher_icon/` rather than
|
|
# `assets/images/`, which is globbed wholesale into the bundle: they are
|
|
# build-time inputs for this tool and have no business being shipped inside the
|
|
# APK the tool produces.
|
|
flutter_launcher_icons:
|
|
android: true
|
|
ios: true
|
|
web:
|
|
generate: true
|
|
image_path: "launcher_icon/doormile_icon_legacy.png"
|
|
image_path: "launcher_icon/doormile_icon_legacy.png"
|
|
adaptive_icon_background: "#FFFFFF"
|
|
adaptive_icon_foreground: "launcher_icon/doormile_icon_foreground.png"
|
|
adaptive_icon_foreground_inset: 0
|
|
remove_alpha_ios: true
|
|
flutter_native_splash:
|
|
color: "#FFFFFF"
|
|
image: assets/images/doormile_icon.png
|
|
android_12:
|
|
image: assets/images/doormile_icon.png
|
|
icon_background_color: "#FFFFFF"
|
|
|
|
|
|
|
|
flutter:
|
|
uses-material-design: true
|
|
|
|
assets:
|
|
- assets/images/
|
|
- assets/audio/
|
|
- assets/lotties/
|
|
|
|
fonts:
|
|
# The delivery line's typeface. The ported screens under lib/xpress read
|
|
# FontConstants.fontFamily = 'Proxima Nova' on every text style; the files
|
|
# were already in assets/fonts but the family was never declared, so without
|
|
# this every delivery screen falls back to Roboto.
|
|
- family: Proxima Nova
|
|
fonts:
|
|
- asset: assets/fonts/ProximaNova/proximanova_regular.ttf
|
|
weight: 400
|
|
- asset: assets/fonts/ProximaNova/proximanova_bold.otf
|
|
weight: 700
|
|
- family: Manrope
|
|
fonts:
|
|
- asset: assets/fonts/Manrope/Manrope-VF.ttf
|
|
- family: PlusJakartaSans
|
|
fonts:
|
|
- asset: assets/fonts/PlusJakartaSans/PlusJakartaSans-VF.ttf
|
|
# ── Declared, correct, and currently unused ──
|
|
#
|
|
# The parcel line reads Manrope (FontConstants.fontFamily) and the delivery
|
|
# line reads Proxima Nova; nothing asks for Poppins today. It was briefly
|
|
# made the app's typeface and reverted — it runs optically much heavier than
|
|
# Manrope at every grade and turned the whole app bold.
|
|
#
|
|
# The declaration is kept because it is now correct and was not before: it
|
|
# said `poppins` with a lowercase path on every asset, while the files on
|
|
# disk are `assets/fonts/Poppins/Poppins-*.ttf`. Asset bundling is
|
|
# case-sensitive on both platforms, so none of the seven resolved. Leaving
|
|
# the fixed version here means the family is one string away if it is ever
|
|
# wanted, instead of silently falling back again.
|
|
#
|
|
# All seven static weights are listed because Poppins ships as separate
|
|
# files rather than a variable font the way Manrope does; without explicit
|
|
# 800/900 entries Flutter synthesises them by smearing SemiBold.
|
|
- family: Poppins
|
|
fonts:
|
|
- asset: assets/fonts/Poppins/Poppins-Light.ttf
|
|
weight: 300
|
|
- asset: assets/fonts/Poppins/Poppins-Regular.ttf
|
|
weight: 400
|
|
- asset: assets/fonts/Poppins/Poppins-Medium.ttf
|
|
weight: 500
|
|
- asset: assets/fonts/Poppins/Poppins-SemiBold.ttf
|
|
weight: 600
|
|
- asset: assets/fonts/Poppins/Poppins-Bold.ttf
|
|
weight: 700
|
|
- asset: assets/fonts/Poppins/Poppins-ExtraBold.ttf
|
|
weight: 800
|
|
- asset: assets/fonts/Poppins/Poppins-Black.ttf
|
|
weight: 900
|