Skip to content

Commit 346fecb

Browse files
authored
🐛 Use PermissionRequestOption as much as possible (#544)
Fixes #540
1 parent eaab93c commit 346fecb

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ that can be found in the LICENSE file. -->
1616
### Fixes
1717

1818
- Fix previewing selected assets behavior.
19+
- Use `PermissionRequestOption` as much as possible.
1920

2021
## 9.0.0-dev.2
2122

lib/src/delegates/asset_picker_delegate.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,19 @@ class AssetPickerDelegate {
6666
BuildContext context, {
6767
Key? key,
6868
AssetPickerConfig pickerConfig = const AssetPickerConfig(),
69+
PermissionRequestOption? permissionRequestOption,
6970
bool useRootNavigator = true,
7071
AssetPickerPageRouteBuilder<List<AssetEntity>>? pageRouteBuilder,
7172
}) async {
72-
final PermissionState ps = await permissionCheck(
73-
requestOption: PermissionRequestOption(
74-
androidPermission: AndroidPermission(
75-
type: pickerConfig.requestType,
76-
mediaLocation: false,
77-
),
73+
permissionRequestOption ??= PermissionRequestOption(
74+
androidPermission: AndroidPermission(
75+
type: pickerConfig.requestType,
76+
mediaLocation: false,
7877
),
7978
);
79+
final PermissionState ps = await permissionCheck(
80+
requestOption: permissionRequestOption,
81+
);
8082
final AssetPickerPageRoute<List<AssetEntity>> route =
8183
pageRouteBuilder?.call(const SizedBox.shrink()) ??
8284
AssetPickerPageRoute<List<AssetEntity>>(

lib/src/widget/asset_picker.dart

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class AssetPicker<Asset, Path> extends StatefulWidget {
4141
static Future<List<AssetEntity>?> pickAssets(
4242
BuildContext context, {
4343
Key? key,
44+
PermissionRequestOption? permissionRequestOption,
4445
AssetPickerConfig pickerConfig = const AssetPickerConfig(),
4546
bool useRootNavigator = true,
4647
AssetPickerPageRouteBuilder<List<AssetEntity>>? pageRouteBuilder,
@@ -49,6 +50,7 @@ class AssetPicker<Asset, Path> extends StatefulWidget {
4950
context,
5051
key: key,
5152
pickerConfig: pickerConfig,
53+
permissionRequestOption: permissionRequestOption,
5254
useRootNavigator: useRootNavigator,
5355
pageRouteBuilder: pageRouteBuilder,
5456
);
@@ -58,15 +60,18 @@ class AssetPicker<Asset, Path> extends StatefulWidget {
5860
static Future<List<Asset>?> pickAssetsWithDelegate<Asset, Path,
5961
PickerProvider extends AssetPickerProvider<Asset, Path>>(
6062
BuildContext context, {
61-
Key? key,
6263
required AssetPickerBuilderDelegate<Asset, Path> delegate,
63-
bool useRootNavigator = true,
64+
PermissionRequestOption permissionRequestOption =
65+
const PermissionRequestOption(),
66+
Key? key,
6467
AssetPickerPageRouteBuilder<List<Asset>>? pageRouteBuilder,
68+
bool useRootNavigator = true,
6569
}) {
6670
return _pickerDelegate.pickAssetsWithDelegate<Asset, Path, PickerProvider>(
6771
context,
6872
key: key,
6973
delegate: delegate,
74+
permissionRequestOption: permissionRequestOption,
7075
useRootNavigator: useRootNavigator,
7176
pageRouteBuilder: pageRouteBuilder,
7277
);

test/test_utils.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,17 +84,19 @@ class TestAssetPickerDelegate extends AssetPickerDelegate {
8484
BuildContext context, {
8585
Key? key,
8686
AssetPickerConfig pickerConfig = const AssetPickerConfig(),
87+
PermissionRequestOption? permissionRequestOption,
8788
bool useRootNavigator = true,
8889
AssetPickerPageRouteBuilder<List<AssetEntity>>? pageRouteBuilder,
8990
}) async {
90-
final PermissionState ps = await permissionCheck(
91-
requestOption: PermissionRequestOption(
92-
androidPermission: AndroidPermission(
93-
type: pickerConfig.requestType,
94-
mediaLocation: false,
95-
),
91+
permissionRequestOption ??= PermissionRequestOption(
92+
androidPermission: AndroidPermission(
93+
type: pickerConfig.requestType,
94+
mediaLocation: false,
9695
),
9796
);
97+
final PermissionState ps = await permissionCheck(
98+
requestOption: permissionRequestOption,
99+
);
98100
final AssetPathEntity pathEntity = AssetPathEntity(
99101
id: 'test',
100102
name: 'pathEntity',

0 commit comments

Comments
 (0)