Skip to content

feat: prepare ParkTrack 1.4.0 parking search experience - #20

Merged
nawinds merged 161 commits into
mainfrom
release/1.4.0
Jul 31, 2026
Merged

feat: prepare ParkTrack 1.4.0 parking search experience#20
nawinds merged 161 commits into
mainfrom
release/1.4.0

Conversation

@nawinds

@nawinds nawinds commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

Introduces a map-first parking search flow with a draggable results panel, synchronized marker selection, non-modal parking details, and a real driving-route preview that keeps the map interactive and fits the complete route.

Changes

  • draggable parking results list with explicit driving/walking context and live parking facts;
  • relative result badges, localized long distance/duration formatting, availability colors, address and parking number titles, confidence, and direct route/external-map actions;
  • synchronized native and Web marker emphasis, including dimmed parking geometry and counters;
  • exact light/dark semantic parking palette, selected semantic outlines, thinner clusters, and single-tap cluster expansion;
  • non-modal selected parking details with previous/next navigation, preserved results, scroll position, outside-tap collapse, and last-viewed highlighting;
  • complete-route and selected-parking camera fitting with panel/safe-area/DPR insets;
  • smooth Web geometry style updates without removing parking geometry;
  • route cleanup after navigation, interactive route preview, destination pin, directional user marker, and responsive map controls;
  • automatic parking availability refresh every 20 seconds;
  • duplicate login language switcher removed;
  • Russian and English localization;
  • state, widget, formatting, marker, palette, clustering, deeplink, camera, route, refresh, and localization tests;
  • version bump to 1.4.0+4 and release notes.

Testing

  • flutter pub get — passed.
  • dart run build_runner build --delete-conflicting-outputs — passed earlier in the release; no generated models changed in the latest fix.
  • formatting check for every changed Dart file — passed, 0 changes.
  • flutter analyze — passed, no issues found.
  • flutter test — passed, 72 tests.
  • flutter build web --release — passed; standard Web release bundle produced. Flutter also reports existing WebAssembly dry-run incompatibilities in flutter_secure_storage_web.
  • flutter build apk --debug — passed; app-debug.apk produced.
  • git diff --check — passed.
  • dart format --output=none --set-exit-if-changed lib test — reports 9 pre-existing formatting differences in files outside this map/search change; unrelated rewrites were not committed.

Screenshots

  • Android emulator smoke-tested in RU/light mode with local mock data: results panel, active/dimmed parking geometry, selected parking, responsive controls, back-to-results state, and last-viewed highlight were inspected.
  • The login page was inspected and contains only one language switcher.
  • Web, dark theme, and live-backend route-preview captures remain pending because the in-app browser was unavailable and the emulator had no live map/backend network session.

Known limitations

  • Before merge, repeat the full live-backend flow on Android and Web in RU/EN and light/dark themes, especially external Yandex Maps launch and a real route preview.
  • External Yandex Maps launch and fallback are covered by automated tests but were not exercised against an installed external application during this run.
  • Parking addresses are resolved lazily from real zone coordinates and cached by Riverpod because the routing and zone API models do not currently include a display address.
  • Repository-wide Dart formatting still contains 9 pre-existing differences outside this change.

nawinds and others added 30 commits May 5, 2026 18:18
nawinds added 23 commits July 30, 2026 13:35
# Conflicts:
#	analysis_options.yaml
#	android/app/build.gradle.kts
#	android/app/src/main/AndroidManifest.xml
#	android/app/src/main/kotlin/com/parktrack/mobile/MainActivity.kt
#	distribution/releases/1.4.0/github-release-notes.md
#	distribution/releases/1.4.0/whatsnew-en-US
#	distribution/releases/1.4.0/whatsnew-ru-RU
#	docs/deep-links.md
#	lib/core/localization/app_localizations.dart
#	lib/core/router/app_router.dart
#	lib/core/router/deep_link_coordinator.dart
#	lib/core/services/parking_address_native.dart
#	lib/core/utils/nav_math.dart
#	lib/data/repositories/routing_repository.dart
#	lib/presentation/providers/navigation_provider.dart
#	lib/presentation/providers/parking_search_provider.dart
#	lib/presentation/providers/routing_provider.dart
#	lib/presentation/providers/zones_provider.dart
#	lib/presentation/screens/map/map_screen.dart
#	lib/presentation/screens/map/route_camera.dart
#	lib/presentation/screens/map/widgets/candidates_sheet.dart
#	lib/presentation/screens/map/widgets/navigation_overlay.dart
#	lib/presentation/screens/map/widgets/parking_card_sheet.dart
#	lib/presentation/screens/map/widgets/parking_zone_layer.dart
#	lib/presentation/screens/map/widgets/route_preview_sheet.dart
#	lib/presentation/screens/map/widgets/web_map_types.dart
#	lib/presentation/screens/map/widgets/web_map_view_stub.dart
#	lib/presentation/screens/map/widgets/web_map_view_web.dart
#	lib/presentation/screens/profile/edit_profile_screen.dart
#	lib/presentation/screens/profile/profile_screen.dart
#	test/core/router/deep_link_coordinator_test.dart
#	test/core/utils/nav_math_test.dart
#	test/core/utils/navigation_deeplink_test.dart
#	test/presentation/map/candidates_sheet_test.dart
#	test/presentation/map/destination_marker_test.dart
#	test/presentation/map/parking_card_sheet_test.dart
#	test/presentation/map/parking_zone_layer_test.dart
#	test/presentation/map/route_camera_test.dart
#	test/presentation/map/route_preview_sheet_test.dart
#	test/presentation/map/web_map_types_test.dart
#	test/presentation/providers/parking_search_provider_test.dart
#	test/web/app_links_assets_test.dart
#	test/web/yandex_maps_bridge_test.dart
#	web/.well-known/assetlinks.json
#	web/index.html
#	web/yandex_maps.js
@nawinds
nawinds merged commit d94cd1d into main Jul 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants