From 1cc111bb762087f04334682929fa868e88ec1eb1 Mon Sep 17 00:00:00 2001 From: Irene Date: Sun, 23 Aug 2026 17:21:45 +0900 Subject: [PATCH] feat(overlay): create stub ViewModel and View for deferred overlay feature - Stub OverlayViewModel reserves abstraction point - Stub OverlayView shows 'Overlay deferred' placeholder - Original OverlayProvider (274 lines) was too tangled: mixed IPC, GPS forwarding, timers, foreground mgmt - Will be reimplemented properly when overlay issues are resolved --- lib/ui/features/overlay/overlay_view.dart | 17 ++++++++++++ .../features/overlay/overlay_view_model.dart | 26 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 lib/ui/features/overlay/overlay_view.dart create mode 100644 lib/ui/features/overlay/overlay_view_model.dart diff --git a/lib/ui/features/overlay/overlay_view.dart b/lib/ui/features/overlay/overlay_view.dart new file mode 100644 index 0000000..cf0cd41 --- /dev/null +++ b/lib/ui/features/overlay/overlay_view.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; + +/// Stub view for the overlay feature. +/// +/// [Overlay] has been deferred due to ongoing issues. This placeholder +/// reserves the UI layer for when the overlay is properly reimplemented +/// with the new architecture. +class OverlayView extends StatelessWidget { + const OverlayView({super.key}); + + @override + Widget build(BuildContext context) { + return const Center( + child: Text('Overlay deferred'), + ); + } +} \ No newline at end of file diff --git a/lib/ui/features/overlay/overlay_view_model.dart b/lib/ui/features/overlay/overlay_view_model.dart new file mode 100644 index 0000000..4283197 --- /dev/null +++ b/lib/ui/features/overlay/overlay_view_model.dart @@ -0,0 +1,26 @@ +import 'package:flutter/widgets.dart'; + +/// Stub ViewModel for the overlay feature. +/// +/// [Overlay] has been a major problem and is deferred. This stub +/// reserves the abstraction point for future implementation. +/// +/// The original [OverlayProvider] mixed overlay IPC, GPS forwarding, +/// timers, and app foreground management — all of which violated +/// separation of concerns. +@Deprecated('Overlay is deferred. This stub reserves the abstraction point.') +class OverlayViewModel extends ChangeNotifier { + bool get isOverlayActive => false; + + void init() { + // No-op — overlay is deferred + } + + void toggleOverlay() { + // No-op — overlay is deferred + } + + void closeOverlay() { + // No-op — overlay is deferred + } +}