Skip to content

Commit 2178f54

Browse files
authored
πŸ› Further fix to the wrong behavior in WeChat Moment video preview (#113)
1 parent c7c247d commit 2178f54

File tree

4 files changed

+31
-8
lines changed

4 files changed

+31
-8
lines changed

β€Žexample/lib/pages/multi_assets_page.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ class _MultiAssetsPageState extends State<MultiAssetsPage>
4949
return AssetPicker.pickAssets(
5050
context,
5151
maxAssets: maxAssetsCount,
52-
selectedAssets: assets,
5352
specialPickerType: SpecialPickerType.wechatMoment,
5453
);
5554
},

β€Žlib/src/constants/custom_scroll_physics.dart

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,34 @@
55
import 'package:flutter/cupertino.dart';
66
import 'package:flutter/physics.dart';
77

8-
class CustomScrollPhysics extends BouncingScrollPhysics {
9-
const CustomScrollPhysics({ScrollPhysics? parent}) : super(parent: parent);
8+
class CustomBouncingScrollPhysics extends BouncingScrollPhysics {
9+
const CustomBouncingScrollPhysics({
10+
ScrollPhysics? parent,
11+
}) : super(parent: parent);
1012

1113
@override
12-
CustomScrollPhysics applyTo(ScrollPhysics? ancestor) {
13-
return CustomScrollPhysics(parent: buildParent(ancestor));
14+
CustomBouncingScrollPhysics applyTo(ScrollPhysics? ancestor) {
15+
return CustomBouncingScrollPhysics(parent: buildParent(ancestor));
16+
}
17+
18+
@override
19+
SpringDescription get spring {
20+
return SpringDescription.withDampingRatio(
21+
mass: 0.5,
22+
stiffness: 400.0,
23+
ratio: 1.1,
24+
);
25+
}
26+
}
27+
28+
class CustomClampingScrollPhysics extends ClampingScrollPhysics {
29+
const CustomClampingScrollPhysics({
30+
ScrollPhysics? parent,
31+
}) : super(parent: parent);
32+
33+
@override
34+
CustomClampingScrollPhysics applyTo(ScrollPhysics? ancestor) {
35+
return CustomClampingScrollPhysics(parent: buildParent(ancestor));
1436
}
1537

1638
@override

β€Žlib/src/delegates/asset_picker_builder_delegate.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1250,12 +1250,12 @@ class DefaultAssetPickerBuilderDelegate
12501250
return;
12511251
}
12521252
final List<AssetEntity> _current;
1253-
final List<AssetEntity> _selected;
1253+
final List<AssetEntity>? _selected;
12541254
final int _index;
12551255
if (isWeChatMoment) {
12561256
if (asset.type == AssetType.video) {
12571257
_current = <AssetEntity>[asset];
1258-
_selected = <AssetEntity>[];
1258+
_selected = null;
12591259
_index = 0;
12601260
} else {
12611261
_current = provider.currentAssets

β€Žlib/src/delegates/asset_picker_viewer_builder_delegate.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,9 @@ class DefaultAssetPickerViewerBuilderDelegate
754754
children: <Widget>[
755755
Positioned.fill(
756756
child: ExtendedImageGesturePageView.builder(
757-
physics: const CustomScrollPhysics(),
757+
physics: previewAssets.length == 1
758+
? const CustomClampingScrollPhysics()
759+
: const CustomBouncingScrollPhysics(),
758760
controller: pageController,
759761
itemCount: previewAssets.length,
760762
itemBuilder: assetPageBuilder,

0 commit comments

Comments
Β (0)