Changelog
All notable changes to the Nosè Flutter app are documented in this file.
[1.2.027] - 2026-05-29
✨ New Features
Panic Bubble Color Customization
- Added a full HSV color picker (
flutter_colorpicker) for selecting a custom panic bubble color.
- Custom colors are persisted to
SharedPreferences and broadcast to the active overlay via FlutterOverlayWindow.shareData("update_color:...").
- Custom selected colors now appear dynamically injected into the color swatch row so the current selection is always visible.
- Added 10 preset swatches (sky blue, indigo, violet, pink, orange, green, red, teal, amber, white).
- Bubble icons now auto-adapt to dark or light based on the background color's luminance using
ThemeData.estimateBrightnessForColor.
Coming Soon Dialog
- Created a new reusable widget:
lib/core/widgets/coming_soon_dialog.dart.
- Mirrors the web app's Coming Soon modal — includes 🚀 rocket icon, "In Development" and "Beta 2026" badges, and a "Got it, take me back" button.
- Wired up to:
- Home Screen → "Start Interactive Tutorial" button (when protection is active).
- Home Screen → Notification & Help icon buttons in the app bar.
- Home Screen → "Explore Workshops" button.
- Learn Screen → Workshop cards for upcoming events (@america Jakarta, Kuala Lumpur, Brunei).
- Learn Screen → Day 2 and Day 3 module cards.
Profile Screen — Full Redesign
- Converted layout from a centered
Column to a scrollable SingleChildScrollView.
- Added a Guardian Status Badge showing "Level 1: Community Observer" with a gradient card.
- Added dynamic "Member Since" date sourced from
FirebaseAuth user metadata (user.metadata.creationTime).
- New Safety & Privacy section:
- Mask Identity toggle (moved from standalone card).
- Emergency Contacts tile (linked to Coming Soon).
- Community Threat Sharing toggle (linked to Coming Soon).
- New Account & Security section:
- Nosè Premium tile (gold icon, linked to Coming Soon).
- Two-Factor Authentication tile (linked to Coming Soon).
- Download My Data tile (linked to Coming Soon).
- Polished Logout button: full-width, outlined red style.
- Delete Account button: muted red to reduce destructive affordance.
Settings Screen — Profile Quick Access
- Added a profile card at the top of the settings list showing the user's avatar, display name, and email.
- Tapping it navigates directly to the
ProfileScreen.
🎨 UI / Design Improvements
Settings Screen
_buildColorPicker() redesigned to match the _buildSettingCard aesthetic: circular icon container, bold title, dimmed subtitle, margin: bottom 12.
- Panic Mode selector (
_showPanicModePicker) restyled from a plain ListTile to a fully styled card matching _buildSettingCard, with the currently selected mode shown as a bold secondary-colored subtitle.
Localization
- Added
bubble_color and adjust_bubble_color keys across all 5 supported languages:
- 🇬🇧 English
- 🇮🇩 Indonesian
- 🇲🇾 Malay
- 🇹🇭 Thai
- 🇲🇲 Burmese
🐛 Bug Fixes
- Fixed
ListTile ink splash invisible assertion in _buildSimpleTile. The ListTile was previously wrapped directly in a Container with a BoxDecoration background, causing Flutter to warn that ripple effects would be hidden. Fixed by inserting a Material widget between the Container and ListTile, allowing ink splashes to render correctly.
📦 Dependencies
| Package |
Version |
Reason |
flutter_colorpicker |
^1.1.0 |
Full HSV box color picker for bubble customization |
Version string: 1.2.027
[1.0.0] - 2026-05-20
🚀 Initial Release
Core Application
- Launched Nosè — a real-time scam detection and community protection app for Android.
- Built with Flutter mobile client, Laravel API backend, and Google Cloud Run deployment pipeline.
- Integrated Firebase Authentication with Google Sign-In for secure user identity.
Nosè Smart Scan (Overlay)
- Implemented a persistent, always-on floating overlay bubble (
flutter_overlay_window) accessible from any app.
- Overlay supports drag-to-reposition and edge auto-snap after inactivity.
- Panic button triggers screenshot capture or live audio monitoring based on user-configured mode.
- Drag-to-remove gesture with a proximity-snapping remove zone.
AI-Powered Scam Analysis
- Integrated Google Gemini 1.5 Flash for multi-lingual screenshot and audio transcription analysis.
- Implemented heuristic AI failover layer for offline/degraded network scenarios.
- Results are routed to available Trusted Guardian Nodes in real-time.
Guardian Node Network
- Implemented live dynamic guardian polling sync loop with Cloud Build pipeline.
- Guardians can review flagged incidents and provide verified responses.
Settings & Personalization
- Adjustable bubble size slider with SharedPreferences persistence.
- Configurable Panic Button Mode: Show Selector Dialog, Direct Screenshot Scan, or Direct Live Audio Monitor.
- Auto-hide half toggle to reduce screen obstruction after inactivity.
- Multi-language support: 🇬🇧 English, 🇮🇩 Indonesian, 🇲🇾 Malay, 🇹🇭 Thai, 🇲🇲 Burmese.
- Theme switcher: Light, Dark, System.
Profile & Identity
- User profile with Firebase display name, email, and photo avatar.
- Mask Identity toggle to anonymize name from Guardians during review sessions.
Web Platform
- Launched Nosè Initiative website with glassmorphic design, feature showcase, and trusted node visualization.
- Interactive API Developer Portal with Swagger UI documentation.
- Legal pages: Privacy Policy, Terms of Service.
Version string: 1.0.0
[Mockup] - 2026-05-03
🎨 Design Prototype
Static Mockup Website
- Built a static ReactJS mockup as the early design prototype and proof-of-concept for the Nosè Initiative.
- Showcased the core concept, color palette, and branding direction before the full-stack implementation began.
Key Design Decisions Validated
- Established the minimal UI with glassmorphism.
- Defined the initial mobile app architecture including guided walkthrough and sample scam analysis.
- Served as the reference point for the final implementation.
View Original MockupThe static ReactJS prototype that started it all — before the full-stack rebuild.