Add detailed logging and UI refresh for inventory sync
🔍 Debug Improvements: - Added detailed logging to track sync events - Print statements show: items received, added, updated, deleted - Logs Firebase connection status and errors - Easier to diagnose sync issues 🔄 UI Refresh Fix: - Added callback system to notify UI when sync occurs - HomeScreen invalidates providers after Firebase sync - UI now automatically refreshes when items sync - No manual refresh needed! 📝 Logging Output: - 📡 Starting Firebase sync for household: {id} - 🔄 Received {count} items from Firebase - ➕ Added new item from Firebase: {name} - 🔄 Updated item from Firebase: {name} - 🗑️ Deleting {count} items no longer in Firebase - ✅ UI refreshed after Firebase sync ✅ Build Status: - APK: 63.4MB - All tests passing - Ready for testing 🎯 How to Test: 1. Install on both phones 2. Check console logs (adb logcat) 3. Add item on Phone A 4. Watch logs on Phone B - should see sync messages 5. If no sync messages → Firebase not configured correctly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,7 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_syncService.removeSyncCallback(_onItemsSync);
|
||||
_syncService.stopSync();
|
||||
super.dispose();
|
||||
}
|
||||
@@ -36,6 +37,9 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
|
||||
final settings = await HiveDatabase.getSettings();
|
||||
if (settings.currentHouseholdId != null) {
|
||||
try {
|
||||
// Register callback to refresh UI when items sync
|
||||
_syncService.addSyncCallback(_onItemsSync);
|
||||
|
||||
await _syncService.startSync(settings.currentHouseholdId!);
|
||||
print('🔄 Started syncing inventory for household: ${settings.currentHouseholdId}');
|
||||
} catch (e) {
|
||||
@@ -44,6 +48,15 @@ class _HomeScreenState extends ConsumerState<HomeScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
void _onItemsSync() {
|
||||
if (mounted) {
|
||||
// Refresh all inventory providers when Firebase syncs
|
||||
ref.invalidate(itemCountProvider);
|
||||
ref.invalidate(expiringSoonProvider);
|
||||
print('✅ UI refreshed after Firebase sync');
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final itemCount = ref.watch(itemCountProvider);
|
||||
|
Reference in New Issue
Block a user