mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-22 00:21:57 +00:00
Fix ProviderDisposedException
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: Cannot use the Ref of totalChapterCacheSizeStateProvider after it has been disposed. This typically happens if: - A provider rebuilt, but the previous "build" was still pending and is still performing operations. You should therefore either use `ref.onDispose` to cancel pending work, or check `ref.mounted` after async gaps or anything that could invalidate the provider. - You tried to use Ref inside `onDispose` or other life-cycles. This is not supported, as the provider is already being disposed. #0 Ref._throwIfInvalidUsage (package:riverpod/src/core/ref.dart:220:7) ref.dart:220 #1 AnyNotifier.state= (package:riverpod/src/core/provider/notifier_provider.dart:91:9) notifier_provider.dart:91 #2 TotalChapterCacheSizeState.build.<anonymous closure> (package:mangayomi/modules/more/data_and_storage/providers/storage_usage.dart:17:42) storage_usage.dart:17 #3 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:948:45) future_impl.dart:948 #4 Future._propagateToListeners (dart:async/future_impl.dart:977:13) future_impl.dart:977 #5 Future._completeWithValue (dart:async/future_impl.dart:720:5) future_impl.dart:720 <asynchronous suspension>
This commit is contained in:
parent
5fdbf530cb
commit
33152fc035
2 changed files with 6 additions and 1 deletions
|
|
@ -119,6 +119,8 @@ class _MyAppState extends ConsumerState<MyApp> {
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if (ref.read(clearChapterCacheOnAppLaunchStateProvider)) {
|
if (ref.read(clearChapterCacheOnAppLaunchStateProvider)) {
|
||||||
|
// Watch before calling clearcache to keep it alive, so that _getTotalDiskSpace completes safely
|
||||||
|
ref.watch(totalChapterCacheSizeStateProvider);
|
||||||
ref
|
ref
|
||||||
.read(totalChapterCacheSizeStateProvider.notifier)
|
.read(totalChapterCacheSizeStateProvider.notifier)
|
||||||
.clearCache(showToast: false);
|
.clearCache(showToast: false);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,10 @@ part 'storage_usage.g.dart';
|
||||||
class TotalChapterCacheSizeState extends _$TotalChapterCacheSizeState {
|
class TotalChapterCacheSizeState extends _$TotalChapterCacheSizeState {
|
||||||
@override
|
@override
|
||||||
String build() {
|
String build() {
|
||||||
_getTotalDiskSpace().then((value) => state = _formatBytes(value));
|
_getTotalDiskSpace().then((value) {
|
||||||
|
if (!ref.mounted) return;
|
||||||
|
state = _formatBytes(value);
|
||||||
|
});
|
||||||
return "0.00 B";
|
return "0.00 B";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue