Merge master branch improvements into dev/floating-window-wip
Resolved conflicts: - CLAUDE.md: Updated documentation to match master branch structure - main.dart: Hybrid overlay sizing - proportional with reasonable limits (280-400w, 140-300h) This brings the layout improvements from master (better flex ratios and sizing) into the advanced floating window development branch. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -33,17 +33,21 @@ Permissions: Location services + SYSTEM_ALERT_WINDOW for overlay functionality
|
||||
|
||||
## Recent Updates (v2.1.0)
|
||||
|
||||
### ✅ Completed Features
|
||||
### ✅ Completed Features (Master Branch - Stable)
|
||||
- [x] **Split Decimal Display**: Main speed prominent with smaller, faded decimal fraction for better readability
|
||||
- [x] **Optimized Content Sizing**: Maximized readability with improved responsive layout and flex ratios
|
||||
- [x] **Basic Floating Window**: Simple overlay with "GPS SPEEDO" text and close button (stable implementation)
|
||||
- [x] **Navigation Icon Trigger**: Tap compass/navigation area to launch floating window overlay
|
||||
- [x] **Multiple Close Options**: Overlay close button and long-press navigation area for easy dismissal
|
||||
- [x] **Android System Integration**: SYSTEM_ALERT_WINDOW permissions and foreground service configuration
|
||||
|
||||
### 🚧 Work in Progress Features (Seriously WIP - Dev Branch)
|
||||
- [ ] **Floating Window Overlay**: System-level overlay window - basic functionality works but seriously buggy
|
||||
### 🚧 Work in Progress Features (dev/floating-window-wip Branch - Seriously Buggy)
|
||||
- [ ] **Advanced Floating Window Overlay**: System-level overlay with live GPS data - basic functionality works but seriously buggy
|
||||
- GPS data synchronization implemented but unreliable
|
||||
- Theme/unit sync between main app and overlay works partially
|
||||
- Proportional sizing and positioning needs major refinement
|
||||
- Close button functionality works but overlay behavior inconsistent
|
||||
- Android SYSTEM_ALERT_WINDOW permissions configured
|
||||
- Performance may impact main app, needs optimization
|
||||
|
||||
### Previous Updates (v1.1)
|
||||
- [x] **Portrait/Landscape Support**: Automatic orientation detection implemented
|
||||
@@ -52,17 +56,19 @@ Permissions: Location services + SYSTEM_ALERT_WINDOW for overlay functionality
|
||||
|
||||
## TODO - Future Improvements
|
||||
|
||||
### Known Issues (Dev Branch - Floating Window WIP)
|
||||
### Known Issues
|
||||
|
||||
**Master Branch (v2.1.0 - Stable):**
|
||||
- [ ] **Dependency Updates**: Update packages to latest compatible versions
|
||||
- [ ] **Orientation Override**: Fix auto-rotate to work regardless of system toggle status
|
||||
|
||||
**Dev Branch (floating-window-wip - Seriously Buggy):**
|
||||
- [ ] **Floating Window Reliability**: Overlay behavior inconsistent across different devices and Android versions
|
||||
- [ ] **GPS Data Sync**: Real-time GPS synchronization between main app and overlay unreliable
|
||||
- [ ] **Theme/Unit Sync**: Setting synchronization works partially but not consistently
|
||||
- [ ] **Overlay Positioning**: Poor positioning stability, sizing calculations need major work
|
||||
- [ ] **Performance**: Overlay may impact main app performance, needs optimization
|
||||
|
||||
### Critical Issues
|
||||
- [ ] **Dependency Updates**: Update packages to latest compatible versions
|
||||
- [ ] **Orientation Override**: Fix auto-rotate to work regardless of system toggle status
|
||||
|
||||
### UI/UX Enhancements
|
||||
- [ ] **Background Customization**: Custom background color selection
|
||||
- [ ] **Interface Rearrangement**: User-defined layout customization
|
||||
@@ -85,6 +91,11 @@ Permissions: Location services + SYSTEM_ALERT_WINDOW for overlay functionality
|
||||
- **Memory**: Project uses automatic Claude Code memory - this file for major decisions only
|
||||
- **Git**: Active repository at `https://github.com/mikkelimatlock/gps_speedo`
|
||||
|
||||
## Branch Strategy
|
||||
- **master**: Stable releases, ready for production APK builds
|
||||
- **dev/floating-window-wip**: Advanced floating window development (seriously buggy, not for release)
|
||||
- Tagged releases: v2.1.0 on master branch contains stable basic floating window
|
||||
|
||||
## Code Patterns to Maintain
|
||||
- Provider pattern for state management
|
||||
- Separate widgets for reusability
|
||||
|
||||
+6
-5
@@ -191,7 +191,7 @@ class _SpeedometerScreenState extends State<SpeedometerScreen> with WidgetsBindi
|
||||
'screenHeight': screenSize.height,
|
||||
});
|
||||
|
||||
// Show the overlay with proportional sizing
|
||||
// Show the overlay with hybrid sizing - proportional but with reasonable limits
|
||||
await FlutterOverlayWindow.showOverlay(
|
||||
enableDrag: true,
|
||||
overlayTitle: "GPS Speedometer",
|
||||
@@ -199,8 +199,9 @@ class _SpeedometerScreenState extends State<SpeedometerScreen> with WidgetsBindi
|
||||
flag: OverlayFlag.defaultFlag,
|
||||
visibility: NotificationVisibility.visibilityPublic,
|
||||
positionGravity: PositionGravity.none,
|
||||
width: overlayWidth,
|
||||
height: overlayHeight,
|
||||
// Use proportional sizing with minimum reasonable dimensions
|
||||
width: overlayWidth.clamp(280, 400),
|
||||
height: overlayHeight.clamp(140, 300),
|
||||
);
|
||||
} catch (e) {
|
||||
// Silent error handling - floating window issues shouldn't crash main app
|
||||
@@ -296,7 +297,7 @@ class _SpeedometerScreenState extends State<SpeedometerScreen> with WidgetsBindi
|
||||
children: [
|
||||
// Speed area - takes most space, precise tap targets on text only
|
||||
Expanded(
|
||||
flex: 7,
|
||||
flex: 65,
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
color: Colors.transparent,
|
||||
@@ -351,7 +352,7 @@ class _SpeedometerScreenState extends State<SpeedometerScreen> with WidgetsBindi
|
||||
),
|
||||
// Compass area - compact but fully tappable for floating window
|
||||
Expanded(
|
||||
flex: 3,
|
||||
flex: 32,
|
||||
child: GestureDetector(
|
||||
onTap: _showFloatingWindow, // Tap navigation icon to show floating window
|
||||
onLongPress: _closeFloatingWindow, // Long press to close floating window
|
||||
|
||||
Reference in New Issue
Block a user