Files
sure/mobile/pubspec.yaml
Tristan the Katana ee89aec850 Add Mobile version check for update notifications (#2367)
* feat(mobile): in-app update prompt via upgrader package

- Add upgrader ^13.5.0 dependency for automatic update checks
- Show UpgradeAlert after authentication, with a 5-minute delay so
  users can settle in before being prompted
- Dialog shows at most once every 7 days per store version
- Only "Later" and "Update now" buttons — ignore button removed via showIgnore: false
- Custom _SureUpgraderMessages with mustache body template (v13 API)
- Add "Check for updates" tile in Settings for manual checks:
  calls updateVersionInfo() and shows an AlertDialog with store URL
  if an update is available, or a snackbar if already up to date
- Timer resets on logout so the delay restarts on next sign-in

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(mobile): address upgrader review comments

- Mount UpgradeAlert unconditionally so MainNavigationScreen is never
  remounted when the timer fires, preserving navigation state
- Dispose _manualUpgrader in SettingsScreen to remove its lifecycle
  observer when the screen is torn down
- Show update dialog even when store version metadata is incomplete
  (falls back to 'a newer version'); disable Update now button rather
  than silently no-oping when store URL is unavailable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(mobile): show snackbar when store URL cannot be opened

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(mobile): dispose manual upgrader if unmounted after initialize

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 16:49:52 +02:00

70 lines
1.7 KiB
YAML

name: sure_mobile
description: A mobile app for Sure personal finance management
publish_to: 'none'
version: 0.6.9+20260402
environment:
sdk: '>=3.3.0 <4.0.0'
flutter: '>=3.27.0'
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.6
http: ^1.1.0
provider: ^6.1.1
shared_preferences: ^2.2.2
flutter_secure_storage: ^10.0.0
intl: ^0.18.1
sqflite: ^2.4.2
path: ^1.9.1
connectivity_plus: ^7.0.0
uuid: ^4.5.2
app_links: ^6.4.0
url_launcher: ^6.2.5
flutter_svg: ^2.2.0
package_info_plus: ^8.0.0
local_auth: ^2.3.0
flutter_markdown: ^0.7.2
sentry_flutter: ^8.14.2
upgrader: ^13.5.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^6.0.0
flutter_launcher_icons: ^0.14.4
flutter:
uses-material-design: true
assets:
- assets/icon/
- assets/images/
- assets/icons/lucide/
# Geist + Geist Mono (SIL OFL-1.1 — see assets/fonts/OFL.txt). The theme
# (SureTokens.fontSans/fontMono) already names these families; bundling the
# assets here makes them actually render instead of falling back to the
# platform system font.
fonts:
- family: Geist
fonts:
- asset: assets/fonts/Geist-Regular.ttf
- asset: assets/fonts/Geist-Medium.ttf
weight: 500
- asset: assets/fonts/Geist-SemiBold.ttf
weight: 600
- asset: assets/fonts/Geist-Bold.ttf
weight: 700
- family: Geist Mono
fonts:
- asset: assets/fonts/GeistMono-Regular.ttf
flutter_launcher_icons:
android: true
ios: true
image_path: "assets/icon/app_icon.png"
image_path_ios_dark_transparent: "assets/icon/app_icon.png"
adaptive_icon_background: "#FFFFFF"
adaptive_icon_foreground: "assets/icon/app_icon.png"
remove_alpha_ios: true