diff --git a/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserPreference.java b/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserPreference.java index a15858cc2..716e3ae5a 100644 --- a/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserPreference.java @@ -19,15 +19,12 @@ package org.geometerplus.android.fbreader.preferences.fileChooser; -import java.util.ArrayList; - import android.app.Activity; import android.content.Context; import android.content.Intent; import android.preference.Preference; import org.geometerplus.zlibrary.core.resources.ZLResource; -import org.geometerplus.zlibrary.core.util.MiscUtil; import org.geometerplus.android.util.FileChooserUtil; @@ -50,7 +47,7 @@ abstract class FileChooserPreference extends Preference { @Override protected void onClick() { - FileChooserUtil.runDirectoryChooser( + FileChooserUtil.runDirectoryChooser( (Activity)getContext(), myRegCode, myResource.getResource("chooserTitle").getValue(), @@ -60,19 +57,5 @@ abstract class FileChooserPreference extends Preference { } protected abstract String getStringValue(); - protected abstract void setValueFromIntent(Intent data); - - protected final void setValue(String value) { - if (MiscUtil.isEmptyString(value)) { - return; - } - - setValueInternal(value); - - if (myOnValueSetAction != null) { - myOnValueSetAction.run(); - } - } - protected abstract void setValueInternal(String value); } diff --git a/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringListPreference.java b/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringListPreference.java index ae9dacd46..b6e2e6827 100644 --- a/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringListPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringListPreference.java @@ -40,7 +40,7 @@ class FileChooserStringListPreference extends FileChooserPreference { super(context, rootResource, resourceKey, false, regCode, onValueSetAction); myOption = option; - + myResource = rootResource.getResource(resourceKey); setSummary(getStringValue()); @@ -53,15 +53,11 @@ class FileChooserStringListPreference extends FileChooserPreference { myRegCode, myResource.getValue(), myResource.getResource("chooserTitle").getValue(), - getStringListValue(), + new ArrayList(myOption.getValue()), myChooseWritableDirectoriesOnly ); } - - private ArrayList getStringListValue(){ - return new ArrayList(myOption.getValue()); - } - + @Override protected String getStringValue() { return MiscUtil.join(myOption.getValue(), ", "); @@ -69,19 +65,7 @@ class FileChooserStringListPreference extends FileChooserPreference { @Override protected void setValueFromIntent(Intent data) { - setValue(FileChooserUtil.pathArrayFromData(data)); - } - - @Override - protected void setValueInternal(String value) { - final List currentValues = myOption.getValue(); - if (currentValues.size() != 1 || !currentValues.get(0).equals(value)) { - myOption.setValue(Collections.singletonList(value)); - setSummary(getStringValue()); - } - } - - protected final void setValue(ArrayList value) { + final List value = FileChooserUtil.pathArrayFromData(data); if (value.isEmpty()){ return; } diff --git a/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringPreference.java b/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringPreference.java index c21ca100b..e4f038cb4 100644 --- a/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/fileChooser/FileChooserStringPreference.java @@ -24,6 +24,7 @@ import android.content.Intent; import org.geometerplus.zlibrary.core.options.ZLStringOption; import org.geometerplus.zlibrary.core.resources.ZLResource; +import org.geometerplus.zlibrary.core.util.MiscUtil; import org.geometerplus.android.util.FileChooserUtil; @@ -44,15 +45,19 @@ class FileChooserStringPreference extends FileChooserPreference { @Override protected void setValueFromIntent(Intent data) { - setValue(FileChooserUtil.pathFromData(data)); - } + final String value = FileChooserUtil.pathFromData(data); + if (MiscUtil.isEmptyString(value)) { + return; + } - @Override - protected void setValueInternal(String value) { final String currentValue = myOption.getValue(); if (!currentValue.equals(value)) { myOption.setValue(value); setSummary(value); } + + if (myOnValueSetAction != null) { + myOnValueSetAction.run(); + } } }