From e6ecd7ae321c1e699ebe1cf246acf95281f5af32 Mon Sep 17 00:00:00 2001 From: juan-rybczinski Date: Sun, 11 Feb 2024 21:24:50 +0900 Subject: [PATCH] =?UTF-8?q?Feat:[Riverpod]=20DEV=20Flavor=EC=97=90=20Provi?= =?UTF-8?q?derObserver=20=EC=A0=81=EC=9A=A9=20#84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/core/logger/provider_logger.dart | 42 ++++++++++++++++++++++++++++ lib/main_development.dart | 3 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 lib/core/logger/provider_logger.dart diff --git a/lib/core/logger/provider_logger.dart b/lib/core/logger/provider_logger.dart new file mode 100644 index 0000000..e45c7b7 --- /dev/null +++ b/lib/core/logger/provider_logger.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; +import 'package:hooks_riverpod/hooks_riverpod.dart'; + +class ProviderLogger extends ProviderObserver { + // 로깅할 Provider + final observingProvider = [ + // 'currentTabTypeProvider', + // 'petMateSearchFilterProvider', + // 'petSosSearchFilterProvider', + ]; + + @override + void didAddProvider(ProviderBase provider, Object? value, + ProviderContainer container) { + super.didAddProvider(provider, value, container); + + if (observingProvider.contains(provider.name)) { + debugPrint('Provider added ::: ${provider.name}'); + } + } + + @override + void didDisposeProvider( + ProviderBase provider, ProviderContainer container) { + super.didDisposeProvider(provider, container); + + if (observingProvider.contains(provider.name)) { + debugPrint('Provider disposed ::: ${provider.name}'); + } + } + + @override + void didUpdateProvider(ProviderBase provider, Object? previousValue, + Object? newValue, ProviderContainer container) { + super.didUpdateProvider(provider, previousValue, newValue, container); + + if (observingProvider.contains(provider.name)) { + debugPrint( + 'Provider updated ::: ${provider.name} ::: ${previousValue.toString()} -> ${newValue.toString()}'); + } + } +} diff --git a/lib/main_development.dart b/lib/main_development.dart index cb63183..c56cfb0 100644 --- a/lib/main_development.dart +++ b/lib/main_development.dart @@ -2,11 +2,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:pets_next_door_flutter/app.dart'; import 'package:pets_next_door_flutter/app/env/flavors.dart'; +import 'package:pets_next_door_flutter/core/logger/provider_logger.dart'; Future main() async { Flavor.initialize(BuildType.development); await Flavor.instance.setup(); - runApp(const ProviderScope(child: App())); + runApp(ProviderScope(observers: [ProviderLogger()], child: App())); }