Skip to content

Commit

Permalink
Rename SpecialItemResult ot SpecialItemModel.
Browse files Browse the repository at this point in the history
  • Loading branch information
yujunetee committed Oct 20, 2024
1 parent 67ce52a commit 3c47b51
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 41 deletions.
26 changes: 13 additions & 13 deletions example/lib/customs/pickers/directory_file_asset_picker.dart
Original file line number Diff line number Diff line change
Expand Up @@ -585,7 +585,7 @@ class FileAssetPickerBuilder
appBarPreferredSize ??= appBar(context).preferredSize;
int totalCount = provider.currentAssets.length;

final List<SpecialItemResult> specialItemResults = specialItems
final List<SpecialItemModel> specialItemModels = specialItems
.map((item) {
final specialItem = item.builder?.call(
context,
Expand All @@ -594,17 +594,17 @@ class FileAssetPickerBuilder
permissionNotifier.value,
);
if (specialItem != null) {
return SpecialItemResult(
return SpecialItemModel(
position: item.position,
item: specialItem,
);
}
return null;
})
.whereType<SpecialItemResult>()
.whereType<SpecialItemModel>()
.toList();

totalCount += specialItemResults.length;
totalCount += specialItemModels.length;

final int placeholderCount;
if (isAppleOS(context) && totalCount % gridCount != 0) {
Expand Down Expand Up @@ -645,7 +645,7 @@ class FileAssetPickerBuilder
id: key.value,
assets: assets,
placeholderCount: placeholderCount,
prependSpecialItemResults: specialItemResults
prependSpecialItemResults: specialItemModels
.where(
(item) => item.position == SpecialItemPosition.prepend,
)
Expand Down Expand Up @@ -724,13 +724,13 @@ class FileAssetPickerBuilder
BuildContext context,
int index,
List<File> currentAssets, {
List<SpecialItemResult> specialItemResults = const [],
List<SpecialItemModel> specialItemModels = const [],
}) {
final int length = currentAssets.length;

final prependItems = <SpecialItemResult>[];
final appendItems = <SpecialItemResult>[];
for (final model in specialItemResults) {
final prependItems = <SpecialItemModel>[];
final appendItems = <SpecialItemModel>[];
for (final model in specialItemModels) {
switch (model.position) {
case SpecialItemPosition.prepend:
prependItems.add(model);
Expand All @@ -741,13 +741,13 @@ class FileAssetPickerBuilder

if (prependItems.isNotEmpty) {
if (index < prependItems.length) {
return specialItemResults[index].item;
return specialItemModels[index].item;
}
}

if (appendItems.isNotEmpty) {
if (index >= length + prependItems.length) {
return specialItemResults[index - length].item;
return specialItemModels[index - length].item;
}
}

Expand Down Expand Up @@ -775,7 +775,7 @@ class FileAssetPickerBuilder
int index,
File asset,
Widget child,
List<SpecialItemResult> prependSpecialItemResults,
List<SpecialItemModel> prependSpecialItemResults,
) {
return Semantics(child: child);
}
Expand Down Expand Up @@ -1213,7 +1213,7 @@ class FileAssetPickerBuilder
int findChildIndexBuilder({
required String id,
required List<File> assets,
required List<SpecialItemResult> prependSpecialItemResults,
required List<SpecialItemModel> prependSpecialItemResults,
int placeholderCount = 0,
}) {
return assets.indexWhere((File file) => file.path == id);
Expand Down
56 changes: 28 additions & 28 deletions lib/src/delegates/asset_picker_builder_delegate.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ import '../widget/builder/asset_entity_grid_item_builder.dart';

/// Class which contains non-null special item widget and its position which derived from the [SpecialItem]
/// 包含非空自定义item,并指定其位置。
class SpecialItemResult {
SpecialItemResult({
class SpecialItemModel {
const SpecialItemModel({
required this.position,
required this.item,
});

SpecialItemPosition position;
Widget item;
final SpecialItemPosition position;
final Widget item;
}

/// The delegate to build the whole picker's components.
Expand Down Expand Up @@ -330,7 +330,7 @@ abstract class AssetPickerBuilderDelegate<Asset, Path> {
int? findChildIndexBuilder({
required String id,
required List<Asset> assets,
required List<SpecialItemResult> prependSpecialItemResults,
required List<SpecialItemModel> prependSpecialItemResults,
int placeholderCount = 0,
}) =>
null;
Expand Down Expand Up @@ -358,7 +358,7 @@ abstract class AssetPickerBuilderDelegate<Asset, Path> {
int index,
Asset asset,
Widget child,
List<SpecialItemResult> prependSpecialItemResults,
List<SpecialItemModel> prependSpecialItemResults,
);

/// The item builder for audio type of asset.
Expand Down Expand Up @@ -1239,7 +1239,7 @@ class DefaultAssetPickerBuilderDelegate
// First, we need the count of the assets.
int totalCount = wrapper?.assetCount ?? 0;

final List<SpecialItemResult> specialItemResults = specialItems
final List<SpecialItemModel> specialItemModels = specialItems
.map((item) {
final specialItem = item.builder?.call(
context,
Expand All @@ -1248,19 +1248,19 @@ class DefaultAssetPickerBuilderDelegate
permissionNotifier.value,
);
if (specialItem != null) {
return SpecialItemResult(
return SpecialItemModel(
position: item.position,
item: specialItem,
);
}
return null;
})
.whereType<SpecialItemResult>()
.whereType<SpecialItemModel>()
.toList();

totalCount += specialItemResults.length;
totalCount += specialItemModels.length;

if (totalCount == 0 && specialItemResults.isEmpty) {
if (totalCount == 0 && specialItemModels.isEmpty) {
return loadingIndicator(context);
}
// Then we use the [totalCount] to calculate placeholders we need.
Expand Down Expand Up @@ -1300,7 +1300,7 @@ class DefaultAssetPickerBuilderDelegate
context,
index,
assets,
specialItemResults: specialItemResults,
specialItemModels: specialItemModels,
),
),
);
Expand All @@ -1309,15 +1309,15 @@ class DefaultAssetPickerBuilderDelegate
context: context,
assets: assets,
placeholderCount: placeholderCount,
specialItemResults: specialItemResults,
specialItemModels: specialItemModels,
),
findChildIndexCallback: (Key? key) {
if (key is ValueKey<String>) {
return findChildIndexBuilder(
id: key.value,
assets: assets,
placeholderCount: placeholderCount,
prependSpecialItemResults: specialItemResults
prependSpecialItemResults: specialItemModels
.where(
(item) =>
item.position == SpecialItemPosition.prepend,
Expand Down Expand Up @@ -1425,17 +1425,17 @@ class DefaultAssetPickerBuilderDelegate
BuildContext context,
int index,
List<AssetEntity> currentAssets, {
List<SpecialItemResult> specialItemResults = const [],
List<SpecialItemModel> specialItemModels = const [],
}) {
final DefaultAssetPickerProvider p =
context.read<DefaultAssetPickerProvider>();
final int length = currentAssets.length;
final PathWrapper<AssetPathEntity>? currentWrapper = p.currentPath;
final AssetPathEntity? currentPathEntity = currentWrapper?.path;

final prependItems = <SpecialItemResult>[];
final appendItems = <SpecialItemResult>[];
for (final model in specialItemResults) {
final prependItems = <SpecialItemModel>[];
final appendItems = <SpecialItemModel>[];
for (final model in specialItemModels) {
switch (model.position) {
case SpecialItemPosition.prepend:
prependItems.add(model);
Expand All @@ -1446,13 +1446,13 @@ class DefaultAssetPickerBuilderDelegate

if (prependItems.isNotEmpty) {
if (index < prependItems.length) {
return specialItemResults[index].item;
return specialItemModels[index].item;
}
}

if (appendItems.isNotEmpty) {
if (index >= length + prependItems.length) {
return specialItemResults[index - length].item;
return specialItemModels[index - length].item;
}
}

Expand Down Expand Up @@ -1498,7 +1498,7 @@ class DefaultAssetPickerBuilderDelegate

int semanticIndex(
int index,
List<SpecialItemResult> prependSpecialItemResults,
List<SpecialItemModel> prependSpecialItemResults,
) {
return index - prependSpecialItemResults.length;
}
Expand All @@ -1509,7 +1509,7 @@ class DefaultAssetPickerBuilderDelegate
int index,
AssetEntity asset,
Widget child,
List<SpecialItemResult> prependSpecialItemResults,
List<SpecialItemModel> prependSpecialItemResults,
) {
return ValueListenableBuilder<bool>(
valueListenable: isSwitchingPath,
Expand Down Expand Up @@ -1590,7 +1590,7 @@ class DefaultAssetPickerBuilderDelegate
int findChildIndexBuilder({
required String id,
required List<AssetEntity> assets,
required List<SpecialItemResult> prependSpecialItemResults,
required List<SpecialItemModel> prependSpecialItemResults,
int placeholderCount = 0,
}) {
int index = assets.indexWhere((AssetEntity e) => e.id == id);
Expand All @@ -1604,7 +1604,7 @@ class DefaultAssetPickerBuilderDelegate
required BuildContext context,
required List<AssetEntity> assets,
int placeholderCount = 0,
List<SpecialItemResult> specialItemResults = const [],
List<SpecialItemModel> specialItemModels = const [],
}) {
final PathWrapper<AssetPathEntity>? currentWrapper = context
.select<DefaultAssetPickerProvider, PathWrapper<AssetPathEntity>?>(
Expand All @@ -1614,17 +1614,17 @@ class DefaultAssetPickerBuilderDelegate
final int length = assets.length + placeholderCount;

// Return 1 if the [specialItem] build something.
if (currentPathEntity == null && specialItemResults.isNotEmpty) {
return placeholderCount + specialItemResults.length;
if (currentPathEntity == null && specialItemModels.isNotEmpty) {
return placeholderCount + specialItemModels.length;
}

// Return actual length if the current path is all.
// 如果当前目录是全部内容,则返回实际的内容数量。
if (currentPathEntity?.isAll != true && specialItemResults.isEmpty) {
if (currentPathEntity?.isAll != true && specialItemModels.isEmpty) {
return length;
}

return length + specialItemResults.length;
return length + specialItemModels.length;
}

@override
Expand Down

0 comments on commit 3c47b51

Please sign in to comment.