@@ -14,7 +14,7 @@ Future<XFile> openFile({
1414 String initialDirectory,
1515 String confirmButtonText,
1616}) {
17- _verifyExtensions (acceptedTypeGroups);
17+ acceptedTypeGroups = _verifyTypeGroups (acceptedTypeGroups);
1818 return FileSelectorPlatform .instance.openFile (
1919 acceptedTypeGroups: acceptedTypeGroups,
2020 initialDirectory: initialDirectory,
@@ -27,7 +27,7 @@ Future<List<XFile>> openFiles({
2727 String initialDirectory,
2828 String confirmButtonText,
2929}) {
30- _verifyExtensions (acceptedTypeGroups);
30+ acceptedTypeGroups = _verifyTypeGroups (acceptedTypeGroups);
3131 return FileSelectorPlatform .instance.openFiles (
3232 acceptedTypeGroups: acceptedTypeGroups,
3333 initialDirectory: initialDirectory,
@@ -41,7 +41,7 @@ Future<String> getSavePath({
4141 String suggestedName,
4242 String confirmButtonText,
4343}) async {
44- _verifyExtensions (acceptedTypeGroups);
44+ acceptedTypeGroups = _verifyTypeGroups (acceptedTypeGroups);
4545 return FileSelectorPlatform .instance.getSavePath (
4646 acceptedTypeGroups: acceptedTypeGroups,
4747 initialDirectory: initialDirectory,
@@ -58,15 +58,21 @@ Future<String> getDirectoryPath({
5858 initialDirectory: initialDirectory, confirmButtonText: confirmButtonText);
5959}
6060
61- void _verifyExtensions (List <XTypeGroup > acceptedTypeGroups) {
62- acceptedTypeGroups? .asMap ()? .forEach ((i, acceptedTypeGroup) {
63- acceptedTypeGroup.extensions? .asMap ()? .forEach ((j, ext) {
64- if (kDebugMode && ext.startsWith ('.' )) {
65- print (
66- 'acceptedTypeGroups[${i }].extensions[${j }] with value "${ext }" is invalid.'
67- ' Remove the leading dot.' ,
68- );
61+ List <XTypeGroup > _verifyTypeGroups (List <XTypeGroup > groups) {
62+ if (groups == null ) return groups;
63+ for (var i = 0 ; i < groups.length; i++ ) {
64+ if (groups[i] == null || groups[i].extensions == null ) continue ;
65+ for (var j = 0 ; j < groups[i].extensions.length; j++ ) {
66+ if (groups[i].extensions[j] == null ) continue ;
67+ if (groups[i].extensions[j].startsWith ('.' )) {
68+ if (kDebugMode) {
69+ print ('acceptedTypeGroups[${i }].extensions[${j }]'
70+ ' with value "${groups [i ].extensions [j ]} is invalid.'
71+ ' Please remove the leading dot.' );
72+ }
73+ groups[i].extensions[j] = groups[i].extensions[j].substring (1 );
6974 }
70- });
71- });
75+ }
76+ }
77+ return groups;
7278}
0 commit comments