3
3
/// [Date] 2020/3/31 15:39
4
4
///
5
5
6
- import 'package:flutter/cupertino.dart' ;
7
6
import 'package:flutter/material.dart' ;
7
+ import 'package:flutter/foundation.dart' ;
8
8
import 'package:flutter/services.dart' ;
9
9
10
10
import '../constants/constants.dart' ;
@@ -241,6 +241,8 @@ class AssetPickerState<A, P> extends State<AssetPicker<A, P>>
241
241
void initState () {
242
242
super .initState ();
243
243
WidgetsBinding .instance! .addObserver (this );
244
+ PhotoManager .setLog (! kReleaseMode);
245
+ AssetPicker .registerObserve (_onLimitedAssetsUpdated);
244
246
}
245
247
246
248
@override
@@ -256,10 +258,25 @@ class AssetPickerState<A, P> extends State<AssetPicker<A, P>>
256
258
@override
257
259
void dispose () {
258
260
WidgetsBinding .instance! .removeObserver (this );
261
+ AssetPicker .unregisterObserve (_onLimitedAssetsUpdated);
259
262
widget.builder.dispose ();
260
263
super .dispose ();
261
264
}
262
265
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
+
263
280
@override
264
281
Widget build (BuildContext context) {
265
282
return widget.builder.build (context);
0 commit comments