Skip to content

Commit 1a00006

Browse files
committed
🚀 Update entities when limited assets updated
1 parent 8ffbcd5 commit 1a00006

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

lib/src/widget/asset_picker.dart

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
/// [Date] 2020/3/31 15:39
44
///
55
6-
import 'package:flutter/cupertino.dart';
76
import 'package:flutter/material.dart';
7+
import 'package:flutter/foundation.dart';
88
import 'package:flutter/services.dart';
99

1010
import '../constants/constants.dart';
@@ -241,6 +241,8 @@ class AssetPickerState<A, P> extends State<AssetPicker<A, P>>
241241
void initState() {
242242
super.initState();
243243
WidgetsBinding.instance!.addObserver(this);
244+
PhotoManager.setLog(!kReleaseMode);
245+
AssetPicker.registerObserve(_onLimitedAssetsUpdated);
244246
}
245247

246248
@override
@@ -256,10 +258,25 @@ class AssetPickerState<A, P> extends State<AssetPicker<A, P>>
256258
@override
257259
void dispose() {
258260
WidgetsBinding.instance!.removeObserver(this);
261+
AssetPicker.unregisterObserve(_onLimitedAssetsUpdated);
259262
widget.builder.dispose();
260263
super.dispose();
261264
}
262265

266+
Future<void> _onLimitedAssetsUpdated(MethodCall call) async {
267+
if (!widget.builder.isPermissionLimited) {
268+
return;
269+
}
270+
final P? pathEntity = widget.builder.provider.currentPathEntity;
271+
if (pathEntity != null) {
272+
if (pathEntity is AssetPathEntity) {
273+
await pathEntity.refreshPathProperties();
274+
}
275+
await widget.builder.provider.getAssetPathList();
276+
await widget.builder.provider.switchPath(pathEntity);
277+
}
278+
}
279+
263280
@override
264281
Widget build(BuildContext context) {
265282
return widget.builder.build(context);

0 commit comments

Comments
 (0)