chore: bump dart sdk to 3.8 (#20355)

* chore: bump dart sdk to 3.8

* chore: make build

* make pigeon

* chore: format files

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
shenlong
2025-07-29 00:34:03 +05:30
committed by GitHub
parent 9b3718120b
commit e52b9d15b5
643 changed files with 32561 additions and 35292 deletions
@@ -15,26 +15,17 @@ class MultiSelectState {
final Set<BaseAsset> lockedSelectionAssets;
final bool forceEnable;
const MultiSelectState({
required this.selectedAssets,
required this.lockedSelectionAssets,
this.forceEnable = false,
});
const MultiSelectState({required this.selectedAssets, required this.lockedSelectionAssets, this.forceEnable = false});
bool get isEnabled => selectedAssets.isNotEmpty;
/// Cloud only
bool get hasRemote => selectedAssets.any(
(asset) => asset.storage == AssetState.remote || asset.storage == AssetState.merged,
);
bool get hasRemote =>
selectedAssets.any((asset) => asset.storage == AssetState.remote || asset.storage == AssetState.merged);
bool get hasLocal => selectedAssets.any(
(asset) => asset.storage == AssetState.local,
);
bool get hasLocal => selectedAssets.any((asset) => asset.storage == AssetState.local);
bool get hasMerged => selectedAssets.any(
(asset) => asset.storage == AssetState.merged,
);
bool get hasMerged => selectedAssets.any((asset) => asset.storage == AssetState.merged);
MultiSelectState copyWith({
Set<BaseAsset>? selectedAssets,
@@ -74,12 +65,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
@override
MultiSelectState build() {
return _defaultState ??
const MultiSelectState(
selectedAssets: {},
lockedSelectionAssets: {},
forceEnable: false,
);
return _defaultState ?? const MultiSelectState(selectedAssets: {}, lockedSelectionAssets: {}, forceEnable: false);
}
void selectAsset(BaseAsset asset) {
@@ -87,9 +73,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
return;
}
state = state.copyWith(
selectedAssets: {...state.selectedAssets, asset},
);
state = state.copyWith(selectedAssets: {...state.selectedAssets, asset});
}
void deselectAsset(BaseAsset asset) {
@@ -97,9 +81,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
return;
}
state = state.copyWith(
selectedAssets: state.selectedAssets.where((a) => a != asset).toSet(),
);
state = state.copyWith(selectedAssets: state.selectedAssets.where((a) => a != asset).toSet());
}
void toggleAssetSelection(BaseAsset asset) {
@@ -111,11 +93,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
}
void reset() {
state = const MultiSelectState(
selectedAssets: {},
lockedSelectionAssets: {},
forceEnable: false,
);
state = const MultiSelectState(selectedAssets: {}, lockedSelectionAssets: {}, forceEnable: false);
}
/// Bucket bulk operations
@@ -125,9 +103,7 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
selectedAssets.addAll(assets);
state = state.copyWith(
selectedAssets: selectedAssets,
);
state = state.copyWith(selectedAssets: selectedAssets);
}
void deselectBucket(int offset, int bucketCount) async {
@@ -164,20 +140,15 @@ class MultiSelectNotifier extends Notifier<MultiSelectState> {
}
void setLockedSelectionAssets(Set<BaseAsset> assets) {
state = state.copyWith(
lockedSelectionAssets: assets,
);
state = state.copyWith(lockedSelectionAssets: assets);
}
}
final bucketSelectionProvider = Provider.family<bool, List<BaseAsset>>(
(ref, bucketAssets) {
final selectedAssets = ref.watch(multiSelectProvider.select((s) => s.selectedAssets));
final bucketSelectionProvider = Provider.family<bool, List<BaseAsset>>((ref, bucketAssets) {
final selectedAssets = ref.watch(multiSelectProvider.select((s) => s.selectedAssets));
if (bucketAssets.isEmpty) return false;
if (bucketAssets.isEmpty) return false;
// Check if all assets in the bucket are selected
return bucketAssets.every((asset) => selectedAssets.contains(asset));
},
dependencies: [multiSelectProvider, timelineServiceProvider],
);
// Check if all assets in the bucket are selected
return bucketAssets.every((asset) => selectedAssets.contains(asset));
}, dependencies: [multiSelectProvider, timelineServiceProvider]);