Skip to content

Commit 9c12573

Browse files
authored
♻️ More migrations (#258)
1 parent d3a2934 commit 9c12573

12 files changed

+50
-1360
lines changed

example/lib/pages/multi_assets_page.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ class _MultiAssetsPageState extends State<MultiAssetsPage>
8383
maxAssets: maxAssetsCount,
8484
selectedAssets: assets,
8585
requestType: RequestType.image,
86-
previewThumbSize: const <int>[150, 150],
87-
gridThumbSize: 80,
86+
gridThumbnailSize: const ThumbnailSize.square(80),
87+
previewThumbnailSize: const ThumbnailSize.square(150),
8888
),
8989
);
9090
},

lib/src/constants/config.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ class AssetPickerConfig {
1616
this.selectedAssets,
1717
this.maxAssets = 9,
1818
this.pageSize = 80,
19-
this.gridThumbSize = defaultAssetGridPreviewSize,
20-
this.previewThumbSize,
19+
this.gridThumbnailSize = defaultAssetGridPreviewSize,
20+
this.pathThumbnailSize = defaultPathThumbnailSize,
21+
this.previewThumbnailSize,
2122
this.specialPickerType,
2223
this.keepScrollOffset = false,
23-
this.pathThumbSize = 80,
2424
this.requestType = RequestType.common,
2525
this.sortPathDelegate,
2626
this.filterOptions,
@@ -82,7 +82,11 @@ class AssetPickerConfig {
8282
/// This cannot be `null` or a large value since you shouldn't use the
8383
/// original data for the grid.
8484
/// 该值不能为空或者非常大,因为在网格中使用原数据不是一个好的决定。
85-
final int gridThumbSize;
85+
final ThumbnailSize gridThumbnailSize;
86+
87+
/// Thumbnail size for path selector.
88+
/// 路径选择器中缩略图的大小
89+
final ThumbnailSize pathThumbnailSize;
8690

8791
/// Preview thumbnail size in the viewer.
8892
/// 预览时图片的缩略图大小
@@ -94,7 +98,7 @@ class AssetPickerConfig {
9498
///
9599
/// Default is `null`, which will request the origin data.
96100
/// 默认为空,即读取原图。
97-
final List<int>? previewThumbSize;
101+
final ThumbnailSize? previewThumbnailSize;
98102

99103
/// The current special picker type for the picker.
100104
/// 当前特殊选择类型
@@ -114,10 +118,6 @@ class AssetPickerConfig {
114118
/// 选择器是否可以从同样的位置开始选择
115119
final bool keepScrollOffset;
116120

117-
/// Thumb size for path selector.
118-
/// 路径选择器中缩略图的大小
119-
final int pathThumbSize;
120-
121121
/// Request assets type.
122122
/// 请求的资源类型
123123
final RequestType requestType;

lib/src/constants/constants.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
/// [Date] 2020/3/31 16:02
44
///
55
import 'package:flutter/painting.dart';
6+
import 'package:photo_manager/photo_manager.dart';
67

78
/// Default theme color from WeChat.
89
const Color defaultThemeColorWeChat = Color(0xff00bc56);
910

10-
const int defaultAssetGridPreviewSize = 200;
11+
const ThumbnailSize defaultAssetGridPreviewSize = ThumbnailSize.square(200);
12+
const ThumbnailSize defaultPathThumbnailSize = ThumbnailSize.square(80);

lib/src/delegates/asset_picker_builder_delegate.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -673,8 +673,8 @@ class DefaultAssetPickerBuilderDelegate
673673
bool allowSpecialItemWhenEmpty = false,
674674
AssetSelectPredicate<AssetEntity>? selectPredicate,
675675
bool? shouldRevertGrid,
676-
this.gridThumbSize = defaultAssetGridPreviewSize,
677-
this.previewThumbSize,
676+
this.gridThumbnailSize = defaultAssetGridPreviewSize,
677+
this.previewThumbnailSize,
678678
this.specialPickerType,
679679
this.keepScrollOffset = false,
680680
Color? themeColor,
@@ -719,7 +719,7 @@ class DefaultAssetPickerBuilderDelegate
719719
/// This cannot be `null` or a large value since you shouldn't use the
720720
/// original data for the grid.
721721
/// 该值不能为空或者非常大,因为在网格中使用原数据不是一个好的决定。
722-
final int gridThumbSize;
722+
final ThumbnailSize gridThumbnailSize;
723723

724724
/// Preview thumbnail size in the viewer.
725725
/// 预览时图片的缩略图大小
@@ -731,7 +731,7 @@ class DefaultAssetPickerBuilderDelegate
731731
///
732732
/// Default is `null`, which will request the origin data.
733733
/// 默认为空,即读取原图。
734-
final List<int>? previewThumbSize;
734+
final ThumbnailSize? previewThumbnailSize;
735735

736736
/// The current special picker type for the picker.
737737
/// 当前特殊选择类型
@@ -880,7 +880,7 @@ class DefaultAssetPickerBuilderDelegate
880880
currentIndex: _index,
881881
previewAssets: _current,
882882
themeData: theme,
883-
previewThumbSize: previewThumbSize,
883+
previewThumbnailSize: previewThumbnailSize,
884884
selectedAssets: _selected,
885885
selectorProvider: provider,
886886
specialPickerType: specialPickerType,
@@ -1506,7 +1506,7 @@ class DefaultAssetPickerBuilderDelegate
15061506
final AssetEntityImageProvider imageProvider = AssetEntityImageProvider(
15071507
asset,
15081508
isOriginal: false,
1509-
thumbSize: <int>[gridThumbSize, gridThumbSize],
1509+
thumbnailSize: gridThumbnailSize,
15101510
);
15111511
SpecialImageType? type;
15121512
if (imageProvider.imageFileType == ImageFileType.gif) {
@@ -1892,7 +1892,7 @@ class DefaultAssetPickerBuilderDelegate
18921892
context,
18931893
currentIndex: 0,
18941894
previewAssets: _selected,
1895-
previewThumbSize: previewThumbSize,
1895+
previewThumbnailSize: previewThumbnailSize,
18961896
selectedAssets: _selected,
18971897
selectorProvider: provider,
18981898
themeData: theme,

lib/src/delegates/asset_picker_viewer_builder_delegate.dart

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import '../widget/builder/fade_image_builder.dart';
2727
import '../widget/builder/image_page_builder.dart';
2828
import '../widget/builder/value_listenable_builder_2.dart';
2929
import '../widget/builder/video_page_builder.dart';
30-
import '../widget/custom_checkbox.dart';
3130
import '../widget/scale_text.dart';
3231

3332
abstract class AssetPickerViewerBuilderDelegate<Asset, Path> {
@@ -365,7 +364,7 @@ class DefaultAssetPickerViewerBuilderDelegate
365364
required ThemeData themeData,
366365
AssetPickerViewerProvider<AssetEntity>? provider,
367366
List<AssetEntity>? selectedAssets,
368-
this.previewThumbSize,
367+
this.previewThumbnailSize,
369368
this.specialPickerType,
370369
int? maxAssets,
371370
bool shouldReversePreview = false,
@@ -384,7 +383,7 @@ class DefaultAssetPickerViewerBuilderDelegate
384383

385384
/// Thumb size for the preview of images in the viewer.
386385
/// 预览时图片的缩略图大小
387-
final List<int>? previewThumbSize;
386+
final ThumbnailSize? previewThumbnailSize;
388387

389388
/// The current special picker type for the viewer.
390389
/// 当前特殊选择类型
@@ -417,7 +416,7 @@ class DefaultAssetPickerViewerBuilderDelegate
417416
_builder = ImagePageBuilder(
418417
asset: asset,
419418
delegate: this,
420-
previewThumbSize: previewThumbSize,
419+
previewThumbnailSize: previewThumbnailSize,
421420
);
422421
break;
423422
case AssetType.video:
@@ -917,7 +916,7 @@ class DefaultAssetPickerViewerBuilderDelegate
917916
bool isSelected,
918917
AssetEntity asset,
919918
) {
920-
return CustomCheckbox(
919+
return Checkbox(
921920
value: isSelected,
922921
shape: RoundedRectangleBorder(
923922
borderRadius: BorderRadius.circular(999999),

lib/src/provider/asset_picker_provider.dart

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@ import 'dart:typed_data';
88
import 'package:flutter/material.dart';
99
import 'package:photo_manager/photo_manager.dart';
1010

11+
import '../constants/constants.dart';
1112
import '../delegates/sort_path_delegate.dart';
1213
import '../internal/singleton.dart';
1314

1415
/// [ChangeNotifier] for assets picker.
1516
///
1617
/// The provider maintain all methods that control assets and paths.
1718
/// By extending it you can customize how you can get all assets or paths,
18-
/// how to fetch the next page of assets, how to get the thumb data of a path.
19+
/// how to fetch the next page of assets,
20+
/// and how to get the thumbnail data of a path.
1921
abstract class AssetPickerProvider<Asset, Path> extends ChangeNotifier {
2022
AssetPickerProvider({
2123
this.maxAssets = 9,
2224
this.pageSize = 320,
23-
this.pathThumbSize = 80,
25+
this.pathThumbnailSize = defaultPathThumbnailSize,
2426
List<Asset>? selectedAssets,
2527
}) {
2628
if (selectedAssets?.isNotEmpty == true) {
@@ -38,9 +40,9 @@ abstract class AssetPickerProvider<Asset, Path> extends ChangeNotifier {
3840
/// Use `null` to display all assets into a single grid.
3941
final int pageSize;
4042

41-
/// Thumb size for path selector.
43+
/// Thumbnail size for path selector.
4244
/// 路径选择器中缩略图的大小
43-
final int pathThumbSize;
45+
final ThumbnailSize pathThumbnailSize;
4446

4547
/// Clear all fields when dispose.
4648
/// 销毁时重置所有内容
@@ -125,8 +127,9 @@ abstract class AssetPickerProvider<Asset, Path> extends ChangeNotifier {
125127
/// Map for all path entity.
126128
/// 所有包含资源的路径里列表
127129
///
128-
/// Using [Map] in order to save the thumb data for the first asset under the path.
129-
/// 使用[Map]来保存路径下第一个资源的缩略图数据
130+
/// Using [Map] in order to save the thumbnail data
131+
/// for the first asset under the path.
132+
/// 使用 [Map] 来保存路径下第一个资源的缩略图数据
130133
Map<Path, Uint8List?> get pathsList => _pathsList;
131134
final Map<Path, Uint8List?> _pathsList = <Path, Uint8List?>{};
132135

@@ -231,11 +234,11 @@ class DefaultAssetPickerProvider
231234
this.filterOptions,
232235
int maxAssets = 9,
233236
int pageSize = 80,
234-
int pathThumbSize = 80,
237+
ThumbnailSize pathThumbnailSize = const ThumbnailSize.square(80),
235238
}) : super(
236239
maxAssets: maxAssets,
237240
pageSize: pageSize,
238-
pathThumbSize: pathThumbSize,
241+
pathThumbnailSize: pathThumbnailSize,
239242
selectedAssets: selectedAssets,
240243
) {
241244
Singleton.sortPathDelegate = sortPathDelegate ?? SortPathDelegate.common;
@@ -383,9 +386,8 @@ class DefaultAssetPickerProvider
383386
);
384387
final AssetEntity asset =
385388
(await path.getAssetListRange(start: 0, end: 1)).single;
386-
final Uint8List? assetData = await asset.thumbDataWithSize(
387-
pathThumbSize,
388-
pathThumbSize,
389+
final Uint8List? assetData = await asset.thumbnailDataWithSize(
390+
pathThumbnailSize,
389391
);
390392
return assetData;
391393
}

lib/src/widget/asset_picker.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class AssetPicker<Asset, Path> extends StatefulWidget {
4040
final DefaultAssetPickerProvider provider = DefaultAssetPickerProvider(
4141
maxAssets: pickerConfig.maxAssets,
4242
pageSize: pickerConfig.pageSize,
43-
pathThumbSize: pickerConfig.pathThumbSize,
43+
pathThumbnailSize: pickerConfig.pathThumbnailSize,
4444
selectedAssets: pickerConfig.selectedAssets,
4545
requestType: pickerConfig.requestType,
4646
sortPathDelegate: pickerConfig.sortPathDelegate,
@@ -53,8 +53,8 @@ class AssetPicker<Asset, Path> extends StatefulWidget {
5353
initialPermission: _ps,
5454
gridCount: pickerConfig.gridCount,
5555
pickerTheme: pickerConfig.pickerTheme,
56-
gridThumbSize: pickerConfig.gridThumbSize,
57-
previewThumbSize: pickerConfig.previewThumbSize,
56+
gridThumbnailSize: pickerConfig.gridThumbnailSize,
57+
previewThumbnailSize: pickerConfig.previewThumbnailSize,
5858
specialPickerType: pickerConfig.specialPickerType,
5959
specialItemPosition: pickerConfig.specialItemPosition,
6060
specialItemBuilder: pickerConfig.specialItemBuilder,

lib/src/widget/asset_picker_viewer.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class AssetPickerViewer<Asset, Path> extends StatefulWidget {
3434
required List<AssetEntity> previewAssets,
3535
required ThemeData themeData,
3636
DefaultAssetPickerProvider? selectorProvider,
37-
List<int>? previewThumbSize,
37+
ThumbnailSize? previewThumbnailSize,
3838
List<AssetEntity>? selectedAssets,
3939
SpecialPickerType? specialPickerType,
4040
int? maxAssets,
@@ -50,7 +50,7 @@ class AssetPickerViewer<Asset, Path> extends StatefulWidget {
5050
? AssetPickerViewerProvider<AssetEntity>(selectedAssets)
5151
: null,
5252
themeData: themeData,
53-
previewThumbSize: previewThumbSize,
53+
previewThumbnailSize: previewThumbnailSize,
5454
specialPickerType: specialPickerType,
5555
selectedAssets: selectedAssets,
5656
selectorProvider: selectorProvider,

lib/src/widget/builder/asset_entity_grid_item_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ class AssetEntityGridItemWidgetState extends State<AssetEntityGridItemBuilder> {
4949
);
5050
}
5151

52-
/// Item widgets when the thumb data load failed.
52+
/// Item widgets when the thumbnail data load failed.
5353
/// 资源缩略数据加载失败时使用的部件
5454
Widget failedItemBuilder(BuildContext context) {
5555
return Center(

lib/src/widget/builder/image_page_builder.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class ImagePageBuilder extends StatefulWidget {
1616
Key? key,
1717
required this.asset,
1818
required this.delegate,
19-
this.previewThumbSize,
19+
this.previewThumbnailSize,
2020
}) : super(key: key);
2121

2222
/// Asset currently displayed.
@@ -25,7 +25,7 @@ class ImagePageBuilder extends StatefulWidget {
2525

2626
final AssetPickerViewerBuilderDelegate<AssetEntity, AssetPathEntity> delegate;
2727

28-
final List<int>? previewThumbSize;
28+
final ThumbnailSize? previewThumbnailSize;
2929

3030
@override
3131
_ImagePageBuilderState createState() => _ImagePageBuilderState();
@@ -80,8 +80,8 @@ class _ImagePageBuilderState extends State<ImagePageBuilder> {
8080
return ExtendedImage(
8181
image: AssetEntityImageProvider(
8282
asset,
83-
isOriginal: widget.previewThumbSize == null,
84-
thumbSize: widget.previewThumbSize,
83+
isOriginal: widget.previewThumbnailSize == null,
84+
thumbnailSize: widget.previewThumbnailSize,
8585
),
8686
fit: BoxFit.contain,
8787
mode: ExtendedImageMode.gesture,
@@ -111,7 +111,7 @@ class _ImagePageBuilderState extends State<ImagePageBuilder> {
111111
Widget build(BuildContext context) {
112112
return LocallyAvailableBuilder(
113113
asset: widget.asset,
114-
isOriginal: widget.previewThumbSize == null,
114+
isOriginal: widget.previewThumbnailSize == null,
115115
builder: (BuildContext context, AssetEntity asset) {
116116
// Initialize the video controller when the asset is a Live photo
117117
// and available for further use.

0 commit comments

Comments
 (0)