1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 17:59:33 +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 { abstract class FileChooserPreference extends Preference {
private final int myRegCode; private final int myRegCode;
private final ZLResource myResource; 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); super(context);
myRegCode = regCode; myRegCode = regCode;
myFilterMode = filterMode;
myResource = rootResource.getResource(resourceKey); myResource = rootResource.getResource(resourceKey);
setTitle(myResource.getValue()); setTitle(myResource.getValue());
} }
@ -73,10 +75,11 @@ abstract class FileChooserPreference extends Preference {
intent.putExtra(FileChooserActivity._ActionBar, true); intent.putExtra(FileChooserActivity._ActionBar, true);
intent.putExtra(FileChooserActivity._SaveLastLocation, false); intent.putExtra(FileChooserActivity._SaveLastLocation, false);
intent.putExtra(FileChooserActivity._DisplayHiddenFiles, true); intent.putExtra(FileChooserActivity._DisplayHiddenFiles, true);
intent.putExtra(FileChooserActivity._FilterMode, myFilterMode);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.AnyDirectories); //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.FilesOnly);
//intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.FilesAndDirectories); //intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.FilesAndDirectories);
intent.putExtra(FileChooserActivity._FilterMode, IFileProvider.FilterMode.DirectoriesOnly);
((Activity)getContext()).startActivityForResult(intent, myRegCode); ((Activity)getContext()).startActivityForResult(intent, myRegCode);
} }

View file

@ -24,6 +24,8 @@ import java.util.List;
import android.content.Context; 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.options.ZLStringListOption;
import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.core.util.MiscUtil; import org.geometerplus.zlibrary.core.util.MiscUtil;
@ -33,7 +35,7 @@ class FileChooserStringListPreference extends FileChooserPreference {
private final Runnable myOnValueSetAction; private final Runnable myOnValueSetAction;
FileChooserStringListPreference(Context context, ZLResource rootResource, String resourceKey, ZLStringListOption option, int regCode, Runnable onValueSetAction) { 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; myOption = option;
myOnValueSetAction = onValueSetAction; myOnValueSetAction = onValueSetAction;

View file

@ -21,6 +21,8 @@ package org.geometerplus.android.fbreader.preferences.fileChooser;
import android.content.Context; 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.options.ZLStringOption;
import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.core.util.MiscUtil; import org.geometerplus.zlibrary.core.util.MiscUtil;
@ -29,7 +31,7 @@ class FileChooserStringPreference extends FileChooserPreference {
private final ZLStringOption myOption; private final ZLStringOption myOption;
FileChooserStringPreference(Context context, ZLResource rootResource, String resourceKey, ZLStringOption option, int regCode) { 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; myOption = option;
setSummary(getStringValue()); setSummary(getStringValue());

View file

@ -1709,7 +1709,7 @@ public class FileChooserActivity extends Activity {
private final View.OnClickListener mBtnOk_ActionBar_OnClickListener = new View.OnClickListener() { private final View.OnClickListener mBtnOk_ActionBar_OnClickListener = new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if ((getLocation() instanceof File)){ if (getLocation() instanceof File) {
if (mFileProvider.getFilterMode() != IFileProvider.FilterMode.AnyDirectories) { if (mFileProvider.getFilterMode() != IFileProvider.FilterMode.AnyDirectories) {
if (!((File)getLocation()).canWrite()) { if (!((File)getLocation()).canWrite()) {
Dlg.toast(FileChooserActivity.this, R.string.afc_msg_app_cant_choose_folder, Dlg._LengthShort); Dlg.toast(FileChooserActivity.this, R.string.afc_msg_app_cant_choose_folder, Dlg._LengthShort);