From 04c61cf164d36508c6df20f93fa9d11b36f13a86 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Wed, 3 Sep 2014 17:31:50 +0100 Subject: [PATCH] disable non-image files selection --- .../lib/ui/filechooser/FileChooserActivity.java | 13 +++++++++---- .../android/lib/ui/filechooser/IFileAdapter.java | 11 ++++++----- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/FileChooserActivity.java b/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/FileChooserActivity.java index a0d49eacc..48d685c71 100755 --- a/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/FileChooserActivity.java +++ b/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/FileChooserActivity.java @@ -1892,13 +1892,18 @@ public class FileChooserActivity extends Activity { return; }// double tap to choose files else { - if (mIsMultiSelection) + if (mIsMultiSelection) { return; + } - if (mIsSaveDialog) + if (mIsSaveDialog) { doCheckSaveasFilenameAndFinish(data.getFile().getName()); - else - doFinish(data.getFile()); + } else { + final IFileAdapter.Bag bag = (IFileAdapter.Bag)view.getTag(); + if (bag != null && bag.mIsAccessible) { + doFinish(data.getFile()); + } + } }// single tap to choose files }// onItemClick() };// mViewFilesOnItemClickListener diff --git a/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/IFileAdapter.java b/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/IFileAdapter.java index 7163debac..099d06d91 100755 --- a/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/IFileAdapter.java +++ b/third-party/android-filechooser/code/src/group/pals/android/lib/ui/filechooser/IFileAdapter.java @@ -235,7 +235,8 @@ public class IFileAdapter extends BaseAdapter { * @author Hai Bison * */ - private static final class Bag { + static final class Bag { + boolean mIsAccessible; ImageView mImageIcon; TextView mTxtFileName; TextView mTxtFileInfo; @@ -306,10 +307,10 @@ public class IFileAdapter extends BaseAdapter { else bag.mTxtFileInfo.setText(String.format("%s, %s", Converter.sizeToStr(file.length()), time)); - final boolean isAccessible = FileUtils.isAccessible(file, mFilenameRegexp); - bag.mImageIcon.setEnabled(isAccessible); - bag.mTxtFileName.setEnabled(isAccessible); - bag.mTxtFileInfo.setEnabled(isAccessible); + bag.mIsAccessible = FileUtils.isAccessible(file, mFilenameRegexp); + bag.mImageIcon.setEnabled(bag.mIsAccessible); + bag.mTxtFileName.setEnabled(bag.mIsAccessible); + bag.mTxtFileInfo.setEnabled(bag.mIsAccessible); // checkbox if (mMultiSelection) {