@@ -30,14 +30,14 @@ import '../widget/builder/asset_entity_grid_item_builder.dart';
30
30
31
31
/// Class which contains non-null special item widget and its position which derived from the [SpecialItem]
32
32
/// 包含非空自定义item,并指定其位置。
33
- class SpecialItemResult {
34
- SpecialItemResult ({
33
+ class SpecialItemModel {
34
+ const SpecialItemModel ({
35
35
required this .position,
36
36
required this .item,
37
37
});
38
38
39
- SpecialItemPosition position;
40
- Widget item;
39
+ final SpecialItemPosition position;
40
+ final Widget item;
41
41
}
42
42
43
43
/// The delegate to build the whole picker's components.
@@ -330,7 +330,7 @@ abstract class AssetPickerBuilderDelegate<Asset, Path> {
330
330
int ? findChildIndexBuilder ({
331
331
required String id,
332
332
required List <Asset > assets,
333
- required List <SpecialItemResult > prependSpecialItemResults,
333
+ required List <SpecialItemModel > prependSpecialItemResults,
334
334
int placeholderCount = 0 ,
335
335
}) =>
336
336
null ;
@@ -358,7 +358,7 @@ abstract class AssetPickerBuilderDelegate<Asset, Path> {
358
358
int index,
359
359
Asset asset,
360
360
Widget child,
361
- List <SpecialItemResult > prependSpecialItemResults,
361
+ List <SpecialItemModel > prependSpecialItemResults,
362
362
);
363
363
364
364
/// The item builder for audio type of asset.
@@ -1239,7 +1239,7 @@ class DefaultAssetPickerBuilderDelegate
1239
1239
// First, we need the count of the assets.
1240
1240
int totalCount = wrapper? .assetCount ?? 0 ;
1241
1241
1242
- final List <SpecialItemResult > specialItemResults = specialItems
1242
+ final List <SpecialItemModel > specialItemModels = specialItems
1243
1243
.map ((item) {
1244
1244
final specialItem = item.builder? .call (
1245
1245
context,
@@ -1248,19 +1248,19 @@ class DefaultAssetPickerBuilderDelegate
1248
1248
permissionNotifier.value,
1249
1249
);
1250
1250
if (specialItem != null ) {
1251
- return SpecialItemResult (
1251
+ return SpecialItemModel (
1252
1252
position: item.position,
1253
1253
item: specialItem,
1254
1254
);
1255
1255
}
1256
1256
return null ;
1257
1257
})
1258
- .whereType <SpecialItemResult >()
1258
+ .whereType <SpecialItemModel >()
1259
1259
.toList ();
1260
1260
1261
- totalCount += specialItemResults .length;
1261
+ totalCount += specialItemModels .length;
1262
1262
1263
- if (totalCount == 0 && specialItemResults .isEmpty) {
1263
+ if (totalCount == 0 && specialItemModels .isEmpty) {
1264
1264
return loadingIndicator (context);
1265
1265
}
1266
1266
// Then we use the [totalCount] to calculate placeholders we need.
@@ -1300,7 +1300,7 @@ class DefaultAssetPickerBuilderDelegate
1300
1300
context,
1301
1301
index,
1302
1302
assets,
1303
- specialItemResults : specialItemResults ,
1303
+ specialItemModels : specialItemModels ,
1304
1304
),
1305
1305
),
1306
1306
);
@@ -1309,15 +1309,15 @@ class DefaultAssetPickerBuilderDelegate
1309
1309
context: context,
1310
1310
assets: assets,
1311
1311
placeholderCount: placeholderCount,
1312
- specialItemResults : specialItemResults ,
1312
+ specialItemModels : specialItemModels ,
1313
1313
),
1314
1314
findChildIndexCallback: (Key ? key) {
1315
1315
if (key is ValueKey <String >) {
1316
1316
return findChildIndexBuilder (
1317
1317
id: key.value,
1318
1318
assets: assets,
1319
1319
placeholderCount: placeholderCount,
1320
- prependSpecialItemResults: specialItemResults
1320
+ prependSpecialItemResults: specialItemModels
1321
1321
.where (
1322
1322
(item) =>
1323
1323
item.position == SpecialItemPosition .prepend,
@@ -1425,17 +1425,17 @@ class DefaultAssetPickerBuilderDelegate
1425
1425
BuildContext context,
1426
1426
int index,
1427
1427
List <AssetEntity > currentAssets, {
1428
- List <SpecialItemResult > specialItemResults = const [],
1428
+ List <SpecialItemModel > specialItemModels = const [],
1429
1429
}) {
1430
1430
final DefaultAssetPickerProvider p =
1431
1431
context.read <DefaultAssetPickerProvider >();
1432
1432
final int length = currentAssets.length;
1433
1433
final PathWrapper <AssetPathEntity >? currentWrapper = p.currentPath;
1434
1434
final AssetPathEntity ? currentPathEntity = currentWrapper? .path;
1435
1435
1436
- final prependItems = < SpecialItemResult > [];
1437
- final appendItems = < SpecialItemResult > [];
1438
- for (final model in specialItemResults ) {
1436
+ final prependItems = < SpecialItemModel > [];
1437
+ final appendItems = < SpecialItemModel > [];
1438
+ for (final model in specialItemModels ) {
1439
1439
switch (model.position) {
1440
1440
case SpecialItemPosition .prepend:
1441
1441
prependItems.add (model);
@@ -1446,13 +1446,13 @@ class DefaultAssetPickerBuilderDelegate
1446
1446
1447
1447
if (prependItems.isNotEmpty) {
1448
1448
if (index < prependItems.length) {
1449
- return specialItemResults [index].item;
1449
+ return specialItemModels [index].item;
1450
1450
}
1451
1451
}
1452
1452
1453
1453
if (appendItems.isNotEmpty) {
1454
1454
if (index >= length + prependItems.length) {
1455
- return specialItemResults [index - length].item;
1455
+ return specialItemModels [index - length].item;
1456
1456
}
1457
1457
}
1458
1458
@@ -1498,7 +1498,7 @@ class DefaultAssetPickerBuilderDelegate
1498
1498
1499
1499
int semanticIndex (
1500
1500
int index,
1501
- List <SpecialItemResult > prependSpecialItemResults,
1501
+ List <SpecialItemModel > prependSpecialItemResults,
1502
1502
) {
1503
1503
return index - prependSpecialItemResults.length;
1504
1504
}
@@ -1509,7 +1509,7 @@ class DefaultAssetPickerBuilderDelegate
1509
1509
int index,
1510
1510
AssetEntity asset,
1511
1511
Widget child,
1512
- List <SpecialItemResult > prependSpecialItemResults,
1512
+ List <SpecialItemModel > prependSpecialItemResults,
1513
1513
) {
1514
1514
return ValueListenableBuilder <bool >(
1515
1515
valueListenable: isSwitchingPath,
@@ -1590,7 +1590,7 @@ class DefaultAssetPickerBuilderDelegate
1590
1590
int findChildIndexBuilder ({
1591
1591
required String id,
1592
1592
required List <AssetEntity > assets,
1593
- required List <SpecialItemResult > prependSpecialItemResults,
1593
+ required List <SpecialItemModel > prependSpecialItemResults,
1594
1594
int placeholderCount = 0 ,
1595
1595
}) {
1596
1596
int index = assets.indexWhere ((AssetEntity e) => e.id == id);
@@ -1604,7 +1604,7 @@ class DefaultAssetPickerBuilderDelegate
1604
1604
required BuildContext context,
1605
1605
required List <AssetEntity > assets,
1606
1606
int placeholderCount = 0 ,
1607
- List <SpecialItemResult > specialItemResults = const [],
1607
+ List <SpecialItemModel > specialItemModels = const [],
1608
1608
}) {
1609
1609
final PathWrapper <AssetPathEntity >? currentWrapper = context
1610
1610
.select <DefaultAssetPickerProvider , PathWrapper <AssetPathEntity >?>(
@@ -1614,17 +1614,17 @@ class DefaultAssetPickerBuilderDelegate
1614
1614
final int length = assets.length + placeholderCount;
1615
1615
1616
1616
// Return 1 if the [specialItem] build something.
1617
- if (currentPathEntity == null && specialItemResults .isNotEmpty) {
1618
- return placeholderCount + specialItemResults .length;
1617
+ if (currentPathEntity == null && specialItemModels .isNotEmpty) {
1618
+ return placeholderCount + specialItemModels .length;
1619
1619
}
1620
1620
1621
1621
// Return actual length if the current path is all.
1622
1622
// 如果当前目录是全部内容,则返回实际的内容数量。
1623
- if (currentPathEntity? .isAll != true && specialItemResults .isEmpty) {
1623
+ if (currentPathEntity? .isAll != true && specialItemModels .isEmpty) {
1624
1624
return length;
1625
1625
}
1626
1626
1627
- return length + specialItemResults .length;
1627
+ return length + specialItemModels .length;
1628
1628
}
1629
1629
1630
1630
@override
0 commit comments