Skip to content

Commit e3a842a

Browse files
committed
♻️ Adapt type page builder and finish refactor.
1 parent a0da257 commit e3a842a

File tree

3 files changed

+22
-15
lines changed

3 files changed

+22
-15
lines changed

lib/src/widget/builder/audio_page_builder.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import 'package:wechat_assets_picker/wechat_assets_picker.dart';
1010

1111
import 'package:wechat_assets_picker/src/constants/constants.dart';
1212

13-
class AudioPageBuilder<A, P> extends StatefulWidget {
13+
class AudioPageBuilder extends StatefulWidget {
1414
const AudioPageBuilder({
1515
Key key,
1616
this.asset,
@@ -23,7 +23,7 @@ class AudioPageBuilder<A, P> extends StatefulWidget {
2323

2424
/// [State] for asset picker viewer.
2525
/// 资源查看器的状态 [State]
26-
final AssetPickerViewerState<A, P> state;
26+
final AssetPickerViewerState<AssetEntity, AssetPathEntity> state;
2727

2828
@override
2929
State<StatefulWidget> createState() => _AudioPageBuilderState();

lib/src/widget/builder/image_page_builder.dart

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import 'package:flutter/material.dart';
66
import 'package:extended_image/extended_image.dart';
77
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
88

9-
class ImagePageBuilder<A, P> extends StatelessWidget {
9+
class ImagePageBuilder extends StatelessWidget {
1010
const ImagePageBuilder({
1111
Key key,
1212
this.asset,
@@ -20,15 +20,18 @@ class ImagePageBuilder<A, P> extends StatelessWidget {
2020

2121
/// [State] for asset picker viewer.
2222
/// 资源查看器的状态[State]
23-
final AssetPickerViewerState<A, P> state;
23+
final AssetPickerViewerState<AssetEntity, AssetPathEntity> state;
2424

2525
final List<int> previewThumbSize;
2626

27+
DefaultAssetPickerViewerBuilderDelegate get builder =>
28+
state.builder as DefaultAssetPickerViewerBuilderDelegate;
29+
2730
@override
2831
Widget build(BuildContext context) {
2932
return GestureDetector(
3033
behavior: HitTestBehavior.opaque,
31-
onTap: state.buidler.switchDisplayingDetail,
34+
onTap: builder.switchDisplayingDetail,
3235
child: ExtendedImage(
3336
image: AssetEntityImageProvider(
3437
asset,
@@ -37,7 +40,7 @@ class ImagePageBuilder<A, P> extends StatelessWidget {
3740
),
3841
fit: BoxFit.contain,
3942
mode: ExtendedImageMode.gesture,
40-
onDoubleTap: state.builder.updateAnimation,
43+
onDoubleTap: builder.updateAnimation,
4144
initGestureConfigHandler: (ExtendedImageState state) {
4245
return GestureConfig(
4346
initialScale: 1.0,
@@ -49,7 +52,9 @@ class ImagePageBuilder<A, P> extends StatelessWidget {
4952
inPageView: true,
5053
);
5154
},
52-
loadStateChanged: state.builder.previewWidgetLoadStateChanged,
55+
loadStateChanged: (ExtendedImageState state) {
56+
return builder.previewWidgetLoadStateChanged(context, state);
57+
},
5358
),
5459
);
5560
}

lib/src/widget/builder/video_page_builder.dart

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@
44
///
55
import 'package:flutter/material.dart';
66
import 'package:video_player/video_player.dart';
7+
import 'package:wechat_assets_picker/src/delegates/asset_picker_viewer_builder_delegate.dart';
78
import 'package:wechat_assets_picker/wechat_assets_picker.dart';
89

910
import 'package:wechat_assets_picker/src/constants/constants.dart';
1011

11-
class VideoPageBuilder<A, P> extends StatefulWidget {
12+
class VideoPageBuilder extends StatefulWidget {
1213
const VideoPageBuilder({Key key, this.asset, this.state}) : super(key: key);
1314

1415
/// Asset currently displayed.
@@ -17,7 +18,7 @@ class VideoPageBuilder<A, P> extends StatefulWidget {
1718

1819
/// [State] for asset picker viewer.
1920
/// 资源查看器的状态[State]
20-
final AssetPickerViewerState<A, P> state;
21+
final AssetPickerViewerState<AssetEntity, AssetPathEntity> state;
2122

2223
@override
2324
_VideoPageBuilderState createState() => _VideoPageBuilderState();
@@ -40,6 +41,9 @@ class _VideoPageBuilderState extends State<VideoPageBuilder> {
4041
/// 初始化视频控制器时是否发生错误
4142
bool hasErrorWhenInitializing = false;
4243

44+
DefaultAssetPickerViewerBuilderDelegate get builder =>
45+
widget.state.builder as DefaultAssetPickerViewerBuilderDelegate;
46+
4347
@override
4448
void initState() {
4549
super.initState();
@@ -99,8 +103,8 @@ class _VideoPageBuilderState extends State<VideoPageBuilder> {
99103
if (isPlaying) {
100104
_controller.pause();
101105
} else {
102-
if (widget.state.builder.isDisplayingDetail) {
103-
widget.state.builder.switchDisplayingDetail(value: false);
106+
if (builder.isDisplayingDetail) {
107+
builder.switchDisplayingDetail(value: false);
104108
}
105109
if (_controller.value.duration == _controller.value.position) {
106110
_controller
@@ -132,7 +136,7 @@ class _VideoPageBuilderState extends State<VideoPageBuilder> {
132136
behavior: HitTestBehavior.opaque,
133137
onTap: isPlaying
134138
? playButtonCallback
135-
: widget.state.switchDisplayingDetail,
139+
: builder.switchDisplayingDetail,
136140
child: Center(
137141
child: AnimatedOpacity(
138142
duration: kThemeAnimationDuration,
@@ -160,8 +164,6 @@ class _VideoPageBuilderState extends State<VideoPageBuilder> {
160164
),
161165
],
162166
)
163-
: Center(
164-
child: Text(Constants.textDelegate.loadFailed),
165-
);
167+
: Center(child: Text(Constants.textDelegate.loadFailed));
166168
}
167169
}

0 commit comments

Comments
 (0)