ISPANA Client App Changelog — v0.0.3 Catatan Rilis Klien ISPANA — v0.0.3

a22 2026-05-21

Focus: Exception-Free Map Controller Layout Initialization

  • a. [map_display_view.dart]: Added _isMapReady boolean state gate to safely guard _mapController.camera access. Deferred first visible landmarks fetch. Re-introduced persistent tile provider. Integrated optimized zoom-boundary checking.
  • b. [pubspec.yaml]: Bumped version to 0.0.3+22.
Git Commit Tag: ispana-v0.0.3a22
a21 2026-05-21

Focus: Map Infinite Rebuild Loop and Sync I/O Freeze Fix

  • a. [map_display_view.dart]: Defined persistent _tileProvider state variable. Changed initialZoom in MapOptions to use _currentZoom. Optimized onMapEvent.
  • b. [location_picker.dart]: Applied matching optimization to onMapEvent handler.
  • c. [pubspec.yaml]: Bumped app version to 0.0.3+21.
Git Commit Tag: ispana-v0.0.3a21
a20 2026-05-20

Focus: Landmark Detail Sheet Header Cleanup & Collapsible Hardware Specifications

  • a. [landmark_detail_sheet.dart]: Removed Edit & Delete IconButtons from sheet header. Extracted hardware items into stateful _HardwareDeviceCard. Added expanding detailed views for ports inside hardware cards.
  • b. [pubspec.yaml]: Bumped app version to 0.0.3+20.
Git Commit Tag: ispana-v0.0.3a20
a19 2026-05-20

Focus: Landmark Detail Sheet UI/UX Tabbed Redesign

  • a. [landmark_detail_sheet.dart]: Overhauled bottom sheet UI to present a modern, tabbed interface using ButtonsTabBar.
  • b. [pubspec.yaml]: Bumped app version to 0.0.3+19.
Git Commit Tag: ispana-v0.0.3a19
a18 2026-05-19

Focus: Stateful Upstream Port Picker Search Implementation

  • a. [landmark_pop_form.dart]: Implemented stateful, real-time filtering logic inside _showPortPicker modal bottom sheet using StatefulBuilder and persistent TextEditingController.
Git Commit Tag: ispana-v0.0.3a18
a17 2026-05-19

Focus: Content-Length Aware Responsive Button Padding Implementation

  • a. [app_theme.dart]: Added dynamic static helper responsiveButtonPadding.
  • b. [landmarks_list_view.dart]: Bound responsiveButtonPadding to "+ Add Landmark" button empty state.
Git Commit Tag: ispana-v0.0.3a17
a16 2026-05-19

Focus: Map Display Initializer Silent Freeze / Crash Fix

  • a. [map_display_view.dart]: Removed viewport fetch trigger from initState. Added safe onMapReady trigger. Bounded coordinate bounds retrieval inside try-catch block.
Git Commit Tag: ispana-v0.0.3a16
a15 2026-05-19

Focus: Maps Management Category Filter Dialog Modernization & RadioGroup Migration

  • a. [maps_management_page.dart]: Migrated category filter dialog to standard Flutter RadioGroup parent widget API.
Git Commit Tag: ispana-v0.0.3a15
a14 2026-05-19

Focus: OLT and ODP Port Settings Preservation on Connection Update

  • a. [landmark_form_page.dart]: Updated port reconstruction operations to preserve preexisting port labels, splitter configurations, and dBm attenuation metrics during connection syncs.
Git Commit Tag: ispana-v0.0.3a14
a13 2026-05-04

Focus: Landmark Form Modernization (Responsive Popup & Tabbed UI)

  • a. [landmark_form_page.dart]: Refactored into Tabbed UI using ButtonsTabBar. Implemented responsive routing popup/full-page, and dynamic header title.
  • b. [landmark_detail_sheet/landmarks_list_view/landmark_drafts_list_view]: Updated to use new show() method.
Git Commit Tag: ispana-v0.0.3a13
a12 2026-05-04

Focus: ODP & Infrastructure Reporting Modernization

  • a. [map_landmark.dart]: Added attenuation fields and distanceKm.
  • b. [landmark_connection_section.dart]: Redesigned ODP section.
  • c. [landmark_pop_form.dart]: Added dBm power tracking for OLT/Switch/ODP ports.
  • d. [landmark_form_page.dart]: Implemented state management and bidirectional logic.
  • e. [API]: Updated landmark_model.dart and vendor_gis_logic.dart.
  • f. [landmark_pop_form.dart]: Restored Device Source (Port 0) section.
Git Commit Tag: ispana-v0.0.3a12
a11 2026-05-01

Focus: Landmark Photo Upload & Template Unification

  • a. [map_landmark.dart]: Added imageUrl to Device model.
  • b. [photo_upload_widget.dart]: Created new reusable photo upload widget.
  • c. [landmark_form_page.dart]: Unified JC and OTB with ODP template.
  • d. [landmark_connection_section.dart]: Added photo support for attenuation rows.
  • e. [landmark_pop_form.dart]: Added photo support for device configuration.
  • f. [landmark_provider.dart/service.dart]: Implemented uploadImage logic.
Git Commit Tag: ispana-v0.0.3a11
a10 2026-04-21

Focus: Landmark Draft Read-Only UI Expansion Phase

  • [landmark_form_page.dart]: Integrated isReadOnly flag and propagated to child sections.
  • [landmark_drafts_list_view.dart]: Made draft cards actionable, routing to preview form in read-only mode.
  • [map_display_view.dart]: Applied opacity ghosting effect to draft polylines.
a9 2026-04-21

Focus: Landmark Draft & Approval System

  • [API]: Created landmark_draft_model.dart, updated vendor_remote_data_source.dart, and implemented resolution logic in vendor_gis_logic.dart.
  • [LandmarkProvider]: Integrated draft fetching and tagged pending CREATE drafts as isDraft.
  • [Map UX]: Ghosted markers with opacity and (Draft) label.
  • [Redirection Logic]: Redirected technicians to draft submission workflow.
  • [Admin Review UI]: Created landmark_drafts_list_view.dart.
Git Commit Tag: ispana-v0.0.3a9
a8 2026-04-21

Focus: Device Consolidation & UI Consistency

  • [map_display_view.dart]: Fixed _VisualHop aggregation logic, restored compact row format for upward and downward traces.
Git Commit Tag: ispana-v0.0.3a8
a7 2026-04-21

Focus: Downstream Branching UI & NAP Visibility

  • [landmark_provider.dart]: Introduced depth tracking in traceDownstream and updated numbering logic.
  • [map_display_view.dart]: Hides NAP ISP card in downward mode, added visual branching indentation.
Git Commit Tag: ispana-v0.0.3a7
a6 2026-04-21

Focus: Dual-Mode Path Tracing (Upward/Downward)

  • [landmark_provider.dart]: Renamed startTrace to traceUpstream. Implemented traceDownstream with full tree traversal (BFS).
  • [landmark_detail_sheet.dart]: Added Cyan trace button for Upward tracing and Orange trace buttons for Downward tracing.
Git Commit Tag: ispana-v0.0.3a6
a5 2026-04-21

Focus: Data Integrity (Bidirectional Link Healing)

  • [landmark_form_page.dart]: Implemented Global ID Registry, Local Cleanup Pass, and Global Cleanup Logic for cross-landmark sync loops.
Git Commit Tag: ispana-v0.0.3a5
a4 2026-04-21

Focus: UI Logic Synchronization

  • [map_display_view.dart]: Synchronized Topology Path numbering with map landmark sequence badges.
Git Commit Tag: ispana-v0.0.3a4
a3 2026-04-21

Focus: Connectivity Bugfix (ID Collisions)

  • [map_landmark.dart]: Updated Port.generateId to support integer suffix.
  • [landmark_form_page.dart]: Updated _addPortToDevice to pass port loop index suffix.
Git Commit Tag: ispana-v0.0.3a3
a2 2026-04-21

Focus: Port Form UX Overhaul (Grid & Modals)

  • [landmark_pop_form.dart]: Replaced vertical scrolling list of port forms with compact Status Grid. Integrated Modal Port Editor bottom sheet.
Git Commit Tag: ispana-v0.0.3a2
a1 2026-04-21

Focus: Topology Path Refinement & Version Transition

  • [pubspec.yaml]: Bumped version to 0.0.3+1.
  • [map_display_view.dart]: Implemented Device grouping, format DEVICE • PORT X > PORT Y, and permanent NAP ISP destination.
Git Commit Tag: ispana-v0.0.3a1