1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 09:49:19 +02:00

different filter modes for different options

This commit is contained in:
Nikolay Pultsin 2014-04-15 22:54:43 +01:00
parent 127a96ee37
commit 0ffae5fd20
4 changed files with 15 additions and 8 deletions

View file

@ -36,11 +36,13 @@ import org.geometerplus.zlibrary.core.resources.ZLResource;
abstract class FileChooserPreference extends Preference {
private final int myRegCode;
private final ZLResource myResource;
private final IFileProvider.FilterMode myFilterMode;
FileChooserPreference(Context context, ZLResource rootResource, String resourceKey, int regCode) {
FileChooserPreference(Context context, ZLResource rootResource, String resourceKey, IFileProvider.FilterMode filterMode, int regCode) {
super(context);
myRegCode = regCode;
myFilterMode = filterMode;
myResource = rootResource.getResource(resourceKey);
setTitle(myResource.getValue());
}
@ -73,10 +75,11 @@ abstract class FileChooserPreference extends Preference {
intent.putExtra(FileChooserActivity._ActionBar, true);
intent.putExtra(FileChooserActivity._SaveLastLocation, false);
intent.putExtra(FileChooserActivity._DisplayHiddenFiles, true);
intent.putExtra(FileChooserActivity._FilterMode, myFilterMode);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.AnyDirectories);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.DirectoriesOnly);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.FilesOnly);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.FilesAndDirectories);
intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.DirectoriesOnly);
((Activity)getContext()).startActivityForResult(intent, myRegCode);
}

View file

@ -24,6 +24,8 @@ import java.util.List;
import android.content.Context;
import group.pals.android.lib.ui.filechooser.services.IFileProvider;
import org.geometerplus.zlibrary.core.options.ZLStringListOption;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.core.util.MiscUtil;
@ -33,7 +35,7 @@ class FileChooserStringListPreference extends FileChooserPreference {
private final Runnable myOnValueSetAction;
FileChooserStringListPreference(Context context, ZLResource rootResource, String resourceKey, ZLStringListOption option, int regCode, Runnable onValueSetAction) {
super(context, rootResource, resourceKey, regCode);
super(context, rootResource, resourceKey, IFileProvider.FilterMode.AnyDirectories, regCode);
myOption = option;
myOnValueSetAction = onValueSetAction;

View file

@ -21,6 +21,8 @@ package org.geometerplus.android.fbreader.preferences.fileChooser;
import android.content.Context;
import group.pals.android.lib.ui.filechooser.services.IFileProvider;
import org.geometerplus.zlibrary.core.options.ZLStringOption;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.core.util.MiscUtil;
@ -29,7 +31,7 @@ class FileChooserStringPreference extends FileChooserPreference {
private final ZLStringOption myOption;
FileChooserStringPreference(Context context, ZLResource rootResource, String resourceKey, ZLStringOption option, int regCode) {
super(context, rootResource, resourceKey, regCode);
super(context, rootResource, resourceKey, IFileProvider.FilterMode.DirectoriesOnly, regCode);
myOption = option;
setSummary(getStringValue());

View file

@ -634,7 +634,7 @@ public class FileChooserActivity extends Activity {
mRoot = mFileProvider.defaultPath();
IFileProvider.FilterMode filterMode = (FilterMode) getIntent().getSerializableExtra(_FilterMode);
if (filterMode == null){
if (filterMode == null) {
filterMode = IFileProvider.FilterMode.DirectoriesOnly;
}
@ -1709,9 +1709,9 @@ public class FileChooserActivity extends Activity {
private final View.OnClickListener mBtnOk_ActionBar_OnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((getLocation() instanceof File)){
if(mFileProvider.getFilterMode() != IFileProvider.FilterMode.AnyDirectories){
if(!((File)getLocation()).canWrite()){
if (getLocation() instanceof File) {
if (mFileProvider.getFilterMode() != IFileProvider.FilterMode.AnyDirectories) {
if (!((File)getLocation()).canWrite()) {
Dlg.toast(FileChooserActivity.this, R.string.afc_msg_app_cant_choose_folder, Dlg._LengthShort);
return;
}