utils/sync_settings_ui/lib/sync_settings_ui.dart
Krzysztof kuhy Rudnicki 23c693da4e Add sync_settings_ui: shared Firebase-only sync settings screen
Extracts the near-identical "Sync settings" UI duplicated across 5 apps
(todo, diet_guard_app, workout_app, wake_alarm/phone_app, home_inventory)
into a single tested package. Firebase sync (primary) + optional local
backup slot; GitHub mirror UI was dropped per kuhy's explicit decision
mid-build in favor of Firebase-only, so existing apps keep their local
GitHub code untouched, just disconnected from this shared screen.

100% line coverage, flutter analyze clean under very_good_analysis.
Generalized check_no_crdt_sync_override.sh to guard any utils git
dependency (crdt_sync, sync_settings_ui), not just crdt_sync by name.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KdSp6Nbrs9xvsWkCMDN9a1
2026-08-12 23:10:17 +02:00

17 lines
794 B
Dart

/// Shared "Sync settings" UI: Firebase (primary) and an optional per-app
/// local backup slot.
///
/// This package deliberately never touches `flutter_secure_storage` or
/// `google_sign_in` itself -- every keystore read/write and every platform
/// sign-in call arrives here as an already-built closure, exactly as each
/// app's own `SettingsScreen` already injected them before this package
/// existed. That keeps the controller pure Dart and 100%-coverable without
/// a plugin platform-interface fake, and keeps each app's three-line
/// keystore adapter where it already lived (and was already
/// `// coverage:ignore`d for the same platform-channel reason).
library;
export 'src/backup_slot.dart';
export 'src/firebase_sync_controller.dart';
export 'src/sync_settings_screen.dart';