From c4418f673c64d65b4702f9ba21e7d567efa20394 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Thu, 17 Apr 2014 19:27:15 +0100 Subject: [PATCH] File.canExecute() is only accessible on SDKs 9 and higher --- .../lib/ui/filechooser/utils/FileUtils.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/utils/FileUtils.java b/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/utils/FileUtils.java index dc73943d2..cabf1ce53 100755 --- a/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/utils/FileUtils.java +++ b/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/utils/FileUtils.java @@ -40,6 +40,14 @@ public class FileUtils { _MapFileIcons.put(MimeTypes._RegexFileTypePlainTexts, R.drawable.afc_file_plain_text); } + private static boolean accessDenied(IFile file) { + if (android.os.Build.VERSION.SDK_INT >= 9) { + return file instanceof File && !((File)file).canExecute(); + } else { + return false; + } + } + /** * Gets resource icon ID of an {@link IFile}. * @@ -58,23 +66,23 @@ public class FileUtils { return _MapFileIcons.get(r); return R.drawable.afc_file; - } else if (file.isDirectory()){ - if(filterMode != IFileProvider.FilterMode.AnyDirectories){ - if(file instanceof File && !((File)file).canWrite()){ - if(file instanceof ParentFile){ + } else if (file.isDirectory()) { + if (filterMode != IFileProvider.FilterMode.AnyDirectories) { + if (file instanceof File && !((File)file).canWrite()) { + if (file instanceof ParentFile) { return R.drawable.afc_folder; - }else if(!((File)file).canExecute()){ + } else if (accessDenied(file)) { return R.drawable.afc_folder_no_access; - }else{ + } else { return R.drawable.afc_folder_locked; } - }else{ + } else { return R.drawable.afc_folder; } - }else{ - if(file instanceof File && !((File)file).canExecute()){ + } else { + if (accessDenied(file)) { return R.drawable.afc_folder_no_access; - }else{ + } else { return R.drawable.afc_folder; } }