mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-08 23:18:16 -07:00
feature: Re-implemented syncing
This commit is contained in:
parent
c5c7f71b84
commit
86ff355e21
51 changed files with 3067 additions and 1147 deletions
|
|
@ -1,43 +1,34 @@
|
|||
import 'package:isar/isar.dart';
|
||||
import 'package:background_downloader/background_downloader.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import 'package:fladder/models/item_base_model.dart';
|
||||
import 'package:fladder/models/syncing/download_stream.dart';
|
||||
import 'package:fladder/models/syncing/i_synced_item.dart';
|
||||
import 'package:fladder/models/syncing/sync_item.dart';
|
||||
import 'package:fladder/providers/sync_provider.dart';
|
||||
|
||||
part 'sync_provider_helpers.g.dart';
|
||||
|
||||
@riverpod
|
||||
class SyncChildren extends _$SyncChildren {
|
||||
@override
|
||||
List<SyncedItem> build(SyncedItem root) {
|
||||
final isar = ref.watch(syncProvider.notifier).isar;
|
||||
final syncPath = ref.read(syncProvider.notifier).syncPath ?? "";
|
||||
|
||||
if (isar == null) return [];
|
||||
|
||||
final all = <SyncedItem>[];
|
||||
List<SyncedItem> toProcess = [root];
|
||||
|
||||
while (toProcess.isNotEmpty) {
|
||||
final parentIds = toProcess.map((e) => e.id).toList();
|
||||
|
||||
final children = <ISyncedItem>[];
|
||||
for (final id in parentIds) {
|
||||
final results = isar.iSyncedItems.where().parentIdEqualTo(id).sortBySortName().findAll();
|
||||
children.addAll(results);
|
||||
}
|
||||
|
||||
if (children.isEmpty) break;
|
||||
|
||||
final wrapped = children.map((e) => SyncedItem.fromIsar(e, syncPath)).toList();
|
||||
all.addAll(wrapped);
|
||||
toProcess = wrapped;
|
||||
}
|
||||
|
||||
return all;
|
||||
Stream<SyncedItem?> syncedItem(Ref ref, ItemBaseModel? item) {
|
||||
final id = item?.id;
|
||||
if (id == null || id.isEmpty) {
|
||||
return Stream.value(null);
|
||||
}
|
||||
|
||||
return ref.watch(syncProvider.notifier).db.getItem(id).watchSingleOrNull();
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SyncedChildren extends _$SyncedChildren {
|
||||
@override
|
||||
FutureOr<List<SyncedItem>> build(SyncedItem item) => ref.read(syncProvider.notifier).getChildren(item);
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SyncedNestedChildren extends _$SyncedNestedChildren {
|
||||
@override
|
||||
FutureOr<List<SyncedItem>> build(SyncedItem item) => ref.read(syncProvider.notifier).getNestedChildren(item);
|
||||
}
|
||||
|
||||
@riverpod
|
||||
|
|
@ -55,49 +46,33 @@ class SyncDownloadStatus extends _$SyncDownloadStatus {
|
|||
int downloadCount = 0;
|
||||
double fullProgress = mainStream.hasDownload ? mainStream.progress : 0.0;
|
||||
|
||||
int fullySyncedChildren = 0;
|
||||
|
||||
for (var i = 0; i < nestedChildren.length; i++) {
|
||||
final childItem = nestedChildren[i];
|
||||
final downloadStream = ref.read(downloadTasksProvider(childItem.id));
|
||||
if (childItem.videoFile.existsSync()) {
|
||||
fullySyncedChildren++;
|
||||
}
|
||||
if (downloadStream.hasDownload) {
|
||||
downloadCount++;
|
||||
fullProgress += downloadStream.progress;
|
||||
mainStream = mainStream.copyWith(status: downloadStream.status);
|
||||
mainStream = mainStream.copyWith(
|
||||
status: mainStream.status != TaskStatus.running ? downloadStream.status : mainStream.status,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
int syncAbleChildren = nestedChildren.where((element) => element.hasVideoFile).length;
|
||||
|
||||
var fullySynced = nestedChildren.isNotEmpty ? fullySyncedChildren == syncAbleChildren : arg.videoFile.existsSync();
|
||||
return mainStream.copyWith(
|
||||
status: fullySynced ? TaskStatus.complete : mainStream.status,
|
||||
progress: fullProgress / downloadCount.clamp(1, double.infinity).toInt(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SyncStatuses extends _$SyncStatuses {
|
||||
@override
|
||||
FutureOr<SyncStatus> build(SyncedItem arg, List<SyncedItem>? children) async {
|
||||
final nestedChildren = children;
|
||||
|
||||
ref.watch(downloadTasksProvider(arg.id));
|
||||
if (nestedChildren != null) {
|
||||
for (var element in nestedChildren) {
|
||||
ref.watch(downloadTasksProvider(element.id));
|
||||
}
|
||||
|
||||
for (var i = 0; i < nestedChildren.length; i++) {
|
||||
final item = nestedChildren[i];
|
||||
if (item.hasVideoFile && !await item.videoFile.exists()) {
|
||||
return SyncStatus.partially;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (arg.hasVideoFile && !await arg.videoFile.exists()) {
|
||||
return SyncStatus.partially;
|
||||
}
|
||||
return SyncStatus.complete;
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class SyncSize extends _$SyncSize {
|
||||
@override
|
||||
|
|
@ -112,7 +87,9 @@ class SyncSize extends _$SyncSize {
|
|||
ref.watch(downloadTasksProvider(element.id));
|
||||
}
|
||||
for (var element in nestedChildren) {
|
||||
size += element.fileSize ?? 0;
|
||||
if (element.videoFile.existsSync()) {
|
||||
size += element.fileSize ?? 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'sync_provider_helpers.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$syncChildrenHash() => r'c5a90d630d49f59ad4fbaacb5154f1205799f5ab';
|
||||
String _$syncedItemHash() => r'7b1178ba78529ebf65425aa4cb8b239a28c7914b';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
@ -29,39 +29,30 @@ class _SystemHash {
|
|||
}
|
||||
}
|
||||
|
||||
abstract class _$SyncChildren
|
||||
extends BuildlessAutoDisposeNotifier<List<SyncedItem>> {
|
||||
late final SyncedItem root;
|
||||
/// See also [syncedItem].
|
||||
@ProviderFor(syncedItem)
|
||||
const syncedItemProvider = SyncedItemFamily();
|
||||
|
||||
List<SyncedItem> build(
|
||||
SyncedItem root,
|
||||
);
|
||||
}
|
||||
/// See also [syncedItem].
|
||||
class SyncedItemFamily extends Family<AsyncValue<SyncedItem?>> {
|
||||
/// See also [syncedItem].
|
||||
const SyncedItemFamily();
|
||||
|
||||
/// See also [SyncChildren].
|
||||
@ProviderFor(SyncChildren)
|
||||
const syncChildrenProvider = SyncChildrenFamily();
|
||||
|
||||
/// See also [SyncChildren].
|
||||
class SyncChildrenFamily extends Family<List<SyncedItem>> {
|
||||
/// See also [SyncChildren].
|
||||
const SyncChildrenFamily();
|
||||
|
||||
/// See also [SyncChildren].
|
||||
SyncChildrenProvider call(
|
||||
SyncedItem root,
|
||||
/// See also [syncedItem].
|
||||
SyncedItemProvider call(
|
||||
ItemBaseModel? item,
|
||||
) {
|
||||
return SyncChildrenProvider(
|
||||
root,
|
||||
return SyncedItemProvider(
|
||||
item,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SyncChildrenProvider getProviderOverride(
|
||||
covariant SyncChildrenProvider provider,
|
||||
SyncedItemProvider getProviderOverride(
|
||||
covariant SyncedItemProvider provider,
|
||||
) {
|
||||
return call(
|
||||
provider.root,
|
||||
provider.item,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -77,81 +68,75 @@ class SyncChildrenFamily extends Family<List<SyncedItem>> {
|
|||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'syncChildrenProvider';
|
||||
String? get name => r'syncedItemProvider';
|
||||
}
|
||||
|
||||
/// See also [SyncChildren].
|
||||
class SyncChildrenProvider
|
||||
extends AutoDisposeNotifierProviderImpl<SyncChildren, List<SyncedItem>> {
|
||||
/// See also [SyncChildren].
|
||||
SyncChildrenProvider(
|
||||
SyncedItem root,
|
||||
/// See also [syncedItem].
|
||||
class SyncedItemProvider extends AutoDisposeStreamProvider<SyncedItem?> {
|
||||
/// See also [syncedItem].
|
||||
SyncedItemProvider(
|
||||
ItemBaseModel? item,
|
||||
) : this._internal(
|
||||
() => SyncChildren()..root = root,
|
||||
from: syncChildrenProvider,
|
||||
name: r'syncChildrenProvider',
|
||||
(ref) => syncedItem(
|
||||
ref as SyncedItemRef,
|
||||
item,
|
||||
),
|
||||
from: syncedItemProvider,
|
||||
name: r'syncedItemProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$syncChildrenHash,
|
||||
dependencies: SyncChildrenFamily._dependencies,
|
||||
: _$syncedItemHash,
|
||||
dependencies: SyncedItemFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SyncChildrenFamily._allTransitiveDependencies,
|
||||
root: root,
|
||||
SyncedItemFamily._allTransitiveDependencies,
|
||||
item: item,
|
||||
);
|
||||
|
||||
SyncChildrenProvider._internal(
|
||||
SyncedItemProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.root,
|
||||
required this.item,
|
||||
}) : super.internal();
|
||||
|
||||
final SyncedItem root;
|
||||
final ItemBaseModel? item;
|
||||
|
||||
@override
|
||||
List<SyncedItem> runNotifierBuild(
|
||||
covariant SyncChildren notifier,
|
||||
Override overrideWith(
|
||||
Stream<SyncedItem?> Function(SyncedItemRef provider) create,
|
||||
) {
|
||||
return notifier.build(
|
||||
root,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(SyncChildren Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SyncChildrenProvider._internal(
|
||||
() => create()..root = root,
|
||||
override: SyncedItemProvider._internal(
|
||||
(ref) => create(ref as SyncedItemRef),
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
root: root,
|
||||
item: item,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeNotifierProviderElement<SyncChildren, List<SyncedItem>>
|
||||
createElement() {
|
||||
return _SyncChildrenProviderElement(this);
|
||||
AutoDisposeStreamProviderElement<SyncedItem?> createElement() {
|
||||
return _SyncedItemProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SyncChildrenProvider && other.root == root;
|
||||
return other is SyncedItemProvider && other.item == item;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, root.hashCode);
|
||||
hash = _SystemHash.combine(hash, item.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
|
|
@ -159,22 +144,316 @@ class SyncChildrenProvider
|
|||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SyncChildrenRef on AutoDisposeNotifierProviderRef<List<SyncedItem>> {
|
||||
/// The parameter `root` of this provider.
|
||||
SyncedItem get root;
|
||||
mixin SyncedItemRef on AutoDisposeStreamProviderRef<SyncedItem?> {
|
||||
/// The parameter `item` of this provider.
|
||||
ItemBaseModel? get item;
|
||||
}
|
||||
|
||||
class _SyncChildrenProviderElement
|
||||
extends AutoDisposeNotifierProviderElement<SyncChildren, List<SyncedItem>>
|
||||
with SyncChildrenRef {
|
||||
_SyncChildrenProviderElement(super.provider);
|
||||
class _SyncedItemProviderElement
|
||||
extends AutoDisposeStreamProviderElement<SyncedItem?> with SyncedItemRef {
|
||||
_SyncedItemProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
SyncedItem get root => (origin as SyncChildrenProvider).root;
|
||||
ItemBaseModel? get item => (origin as SyncedItemProvider).item;
|
||||
}
|
||||
|
||||
String _$syncedChildrenHash() => r'2b6ce1611750785060df6317ce0ea25e2dc0aeb4';
|
||||
|
||||
abstract class _$SyncedChildren
|
||||
extends BuildlessAutoDisposeAsyncNotifier<List<SyncedItem>> {
|
||||
late final SyncedItem item;
|
||||
|
||||
FutureOr<List<SyncedItem>> build(
|
||||
SyncedItem item,
|
||||
);
|
||||
}
|
||||
|
||||
/// See also [SyncedChildren].
|
||||
@ProviderFor(SyncedChildren)
|
||||
const syncedChildrenProvider = SyncedChildrenFamily();
|
||||
|
||||
/// See also [SyncedChildren].
|
||||
class SyncedChildrenFamily extends Family<AsyncValue<List<SyncedItem>>> {
|
||||
/// See also [SyncedChildren].
|
||||
const SyncedChildrenFamily();
|
||||
|
||||
/// See also [SyncedChildren].
|
||||
SyncedChildrenProvider call(
|
||||
SyncedItem item,
|
||||
) {
|
||||
return SyncedChildrenProvider(
|
||||
item,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SyncedChildrenProvider getProviderOverride(
|
||||
covariant SyncedChildrenProvider provider,
|
||||
) {
|
||||
return call(
|
||||
provider.item,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'syncedChildrenProvider';
|
||||
}
|
||||
|
||||
/// See also [SyncedChildren].
|
||||
class SyncedChildrenProvider extends AutoDisposeAsyncNotifierProviderImpl<
|
||||
SyncedChildren, List<SyncedItem>> {
|
||||
/// See also [SyncedChildren].
|
||||
SyncedChildrenProvider(
|
||||
SyncedItem item,
|
||||
) : this._internal(
|
||||
() => SyncedChildren()..item = item,
|
||||
from: syncedChildrenProvider,
|
||||
name: r'syncedChildrenProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$syncedChildrenHash,
|
||||
dependencies: SyncedChildrenFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SyncedChildrenFamily._allTransitiveDependencies,
|
||||
item: item,
|
||||
);
|
||||
|
||||
SyncedChildrenProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.item,
|
||||
}) : super.internal();
|
||||
|
||||
final SyncedItem item;
|
||||
|
||||
@override
|
||||
FutureOr<List<SyncedItem>> runNotifierBuild(
|
||||
covariant SyncedChildren notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
item,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(SyncedChildren Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SyncedChildrenProvider._internal(
|
||||
() => create()..item = item,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
item: item,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<SyncedChildren, List<SyncedItem>>
|
||||
createElement() {
|
||||
return _SyncedChildrenProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SyncedChildrenProvider && other.item == item;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, item.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SyncedChildrenRef
|
||||
on AutoDisposeAsyncNotifierProviderRef<List<SyncedItem>> {
|
||||
/// The parameter `item` of this provider.
|
||||
SyncedItem get item;
|
||||
}
|
||||
|
||||
class _SyncedChildrenProviderElement
|
||||
extends AutoDisposeAsyncNotifierProviderElement<SyncedChildren,
|
||||
List<SyncedItem>> with SyncedChildrenRef {
|
||||
_SyncedChildrenProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
SyncedItem get item => (origin as SyncedChildrenProvider).item;
|
||||
}
|
||||
|
||||
String _$syncedNestedChildrenHash() =>
|
||||
r'ea8dd0e694efa6d6ec0c73d699b5fb3e933f9322';
|
||||
|
||||
abstract class _$SyncedNestedChildren
|
||||
extends BuildlessAutoDisposeAsyncNotifier<List<SyncedItem>> {
|
||||
late final SyncedItem item;
|
||||
|
||||
FutureOr<List<SyncedItem>> build(
|
||||
SyncedItem item,
|
||||
);
|
||||
}
|
||||
|
||||
/// See also [SyncedNestedChildren].
|
||||
@ProviderFor(SyncedNestedChildren)
|
||||
const syncedNestedChildrenProvider = SyncedNestedChildrenFamily();
|
||||
|
||||
/// See also [SyncedNestedChildren].
|
||||
class SyncedNestedChildrenFamily extends Family<AsyncValue<List<SyncedItem>>> {
|
||||
/// See also [SyncedNestedChildren].
|
||||
const SyncedNestedChildrenFamily();
|
||||
|
||||
/// See also [SyncedNestedChildren].
|
||||
SyncedNestedChildrenProvider call(
|
||||
SyncedItem item,
|
||||
) {
|
||||
return SyncedNestedChildrenProvider(
|
||||
item,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SyncedNestedChildrenProvider getProviderOverride(
|
||||
covariant SyncedNestedChildrenProvider provider,
|
||||
) {
|
||||
return call(
|
||||
provider.item,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'syncedNestedChildrenProvider';
|
||||
}
|
||||
|
||||
/// See also [SyncedNestedChildren].
|
||||
class SyncedNestedChildrenProvider extends AutoDisposeAsyncNotifierProviderImpl<
|
||||
SyncedNestedChildren, List<SyncedItem>> {
|
||||
/// See also [SyncedNestedChildren].
|
||||
SyncedNestedChildrenProvider(
|
||||
SyncedItem item,
|
||||
) : this._internal(
|
||||
() => SyncedNestedChildren()..item = item,
|
||||
from: syncedNestedChildrenProvider,
|
||||
name: r'syncedNestedChildrenProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$syncedNestedChildrenHash,
|
||||
dependencies: SyncedNestedChildrenFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SyncedNestedChildrenFamily._allTransitiveDependencies,
|
||||
item: item,
|
||||
);
|
||||
|
||||
SyncedNestedChildrenProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.item,
|
||||
}) : super.internal();
|
||||
|
||||
final SyncedItem item;
|
||||
|
||||
@override
|
||||
FutureOr<List<SyncedItem>> runNotifierBuild(
|
||||
covariant SyncedNestedChildren notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
item,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(SyncedNestedChildren Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SyncedNestedChildrenProvider._internal(
|
||||
() => create()..item = item,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
item: item,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<SyncedNestedChildren,
|
||||
List<SyncedItem>> createElement() {
|
||||
return _SyncedNestedChildrenProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SyncedNestedChildrenProvider && other.item == item;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, item.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SyncedNestedChildrenRef
|
||||
on AutoDisposeAsyncNotifierProviderRef<List<SyncedItem>> {
|
||||
/// The parameter `item` of this provider.
|
||||
SyncedItem get item;
|
||||
}
|
||||
|
||||
class _SyncedNestedChildrenProviderElement
|
||||
extends AutoDisposeAsyncNotifierProviderElement<SyncedNestedChildren,
|
||||
List<SyncedItem>> with SyncedNestedChildrenRef {
|
||||
_SyncedNestedChildrenProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
SyncedItem get item => (origin as SyncedNestedChildrenProvider).item;
|
||||
}
|
||||
|
||||
String _$syncDownloadStatusHash() =>
|
||||
r'1036352200e1138b4ef70e524c0baf13bb9cd452';
|
||||
r'6ee039e094f1e007ebaeb20ae63430be829cdeb7';
|
||||
|
||||
abstract class _$SyncDownloadStatus
|
||||
extends BuildlessAutoDisposeNotifier<DownloadStream?> {
|
||||
|
|
@ -344,176 +623,7 @@ class _SyncDownloadStatusProviderElement
|
|||
(origin as SyncDownloadStatusProvider).children;
|
||||
}
|
||||
|
||||
String _$syncStatusesHash() => r'64a3499fc7b7bbdbd6594b1eec76cf42a119a041';
|
||||
|
||||
abstract class _$SyncStatuses
|
||||
extends BuildlessAutoDisposeAsyncNotifier<SyncStatus> {
|
||||
late final SyncedItem arg;
|
||||
late final List<SyncedItem>? children;
|
||||
|
||||
FutureOr<SyncStatus> build(
|
||||
SyncedItem arg,
|
||||
List<SyncedItem>? children,
|
||||
);
|
||||
}
|
||||
|
||||
/// See also [SyncStatuses].
|
||||
@ProviderFor(SyncStatuses)
|
||||
const syncStatusesProvider = SyncStatusesFamily();
|
||||
|
||||
/// See also [SyncStatuses].
|
||||
class SyncStatusesFamily extends Family<AsyncValue<SyncStatus>> {
|
||||
/// See also [SyncStatuses].
|
||||
const SyncStatusesFamily();
|
||||
|
||||
/// See also [SyncStatuses].
|
||||
SyncStatusesProvider call(
|
||||
SyncedItem arg,
|
||||
List<SyncedItem>? children,
|
||||
) {
|
||||
return SyncStatusesProvider(
|
||||
arg,
|
||||
children,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
SyncStatusesProvider getProviderOverride(
|
||||
covariant SyncStatusesProvider provider,
|
||||
) {
|
||||
return call(
|
||||
provider.arg,
|
||||
provider.children,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'syncStatusesProvider';
|
||||
}
|
||||
|
||||
/// See also [SyncStatuses].
|
||||
class SyncStatusesProvider
|
||||
extends AutoDisposeAsyncNotifierProviderImpl<SyncStatuses, SyncStatus> {
|
||||
/// See also [SyncStatuses].
|
||||
SyncStatusesProvider(
|
||||
SyncedItem arg,
|
||||
List<SyncedItem>? children,
|
||||
) : this._internal(
|
||||
() => SyncStatuses()
|
||||
..arg = arg
|
||||
..children = children,
|
||||
from: syncStatusesProvider,
|
||||
name: r'syncStatusesProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$syncStatusesHash,
|
||||
dependencies: SyncStatusesFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
SyncStatusesFamily._allTransitiveDependencies,
|
||||
arg: arg,
|
||||
children: children,
|
||||
);
|
||||
|
||||
SyncStatusesProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.arg,
|
||||
required this.children,
|
||||
}) : super.internal();
|
||||
|
||||
final SyncedItem arg;
|
||||
final List<SyncedItem>? children;
|
||||
|
||||
@override
|
||||
FutureOr<SyncStatus> runNotifierBuild(
|
||||
covariant SyncStatuses notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
arg,
|
||||
children,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(SyncStatuses Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: SyncStatusesProvider._internal(
|
||||
() => create()
|
||||
..arg = arg
|
||||
..children = children,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
arg: arg,
|
||||
children: children,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeAsyncNotifierProviderElement<SyncStatuses, SyncStatus>
|
||||
createElement() {
|
||||
return _SyncStatusesProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is SyncStatusesProvider &&
|
||||
other.arg == arg &&
|
||||
other.children == children;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, arg.hashCode);
|
||||
hash = _SystemHash.combine(hash, children.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin SyncStatusesRef on AutoDisposeAsyncNotifierProviderRef<SyncStatus> {
|
||||
/// The parameter `arg` of this provider.
|
||||
SyncedItem get arg;
|
||||
|
||||
/// The parameter `children` of this provider.
|
||||
List<SyncedItem>? get children;
|
||||
}
|
||||
|
||||
class _SyncStatusesProviderElement
|
||||
extends AutoDisposeAsyncNotifierProviderElement<SyncStatuses, SyncStatus>
|
||||
with SyncStatusesRef {
|
||||
_SyncStatusesProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
SyncedItem get arg => (origin as SyncStatusesProvider).arg;
|
||||
@override
|
||||
List<SyncedItem>? get children => (origin as SyncStatusesProvider).children;
|
||||
}
|
||||
|
||||
String _$syncSizeHash() => r'81797ecc4a6f600691b6f1fe0c16bae0228ec920';
|
||||
String _$syncSizeHash() => r'eeb6ab8dc1fdf5696c06e53f04a0e54ad68c6748';
|
||||
|
||||
abstract class _$SyncSize extends BuildlessAutoDisposeNotifier<int?> {
|
||||
late final SyncedItem arg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue