From b836e176f99326ef5e69e291ec34a62da6f96d23 Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 30 Aug 2014 20:41:31 +0100 Subject: [PATCH] fixed string resources in dialog preferences --- .../fbreader/preferences/ColorPreference.java | 32 ++++++++++++------- .../preferences/ZLStringListPreference.java | 4 +++ .../background/BackgroundPreference.java | 2 +- .../preferences/background/Chooser.java | 8 ++++- .../src/yuku/ambilwarna/AmbilWarnaDialog.java | 12 +++++-- 5 files changed, 41 insertions(+), 17 deletions(-) diff --git a/src/org/geometerplus/android/fbreader/preferences/ColorPreference.java b/src/org/geometerplus/android/fbreader/preferences/ColorPreference.java index c6204b81a..8f45bce1a 100644 --- a/src/org/geometerplus/android/fbreader/preferences/ColorPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/ColorPreference.java @@ -26,6 +26,7 @@ import android.widget.TextView; import yuku.ambilwarna.AmbilWarnaDialog; +import org.geometerplus.zlibrary.core.resources.ZLResource; import org.geometerplus.zlibrary.core.util.ZLColor; import org.geometerplus.zlibrary.ui.android.R; @@ -54,19 +55,26 @@ public abstract class ColorPreference extends Preference { @Override protected void onClick() { - new AmbilWarnaDialog(getContext(), ZLAndroidColorUtil.rgb(getSavedColor()), new AmbilWarnaDialog.OnAmbilWarnaListener() { - @Override - public void onOk(AmbilWarnaDialog dialog, int color) { - if (!callChangeListener(color)) { - return; + final ZLResource buttonResource = ZLResource.resource("dialog").getResource("button"); + new AmbilWarnaDialog( + getContext(), + ZLAndroidColorUtil.rgb(getSavedColor()), + new AmbilWarnaDialog.OnAmbilWarnaListener() { + @Override + public void onOk(AmbilWarnaDialog dialog, int color) { + if (!callChangeListener(color)) { + return; + } + saveColor(new ZLColor(color)); + notifyChanged(); } - saveColor(new ZLColor(color)); - notifyChanged(); - } - @Override - public void onCancel(AmbilWarnaDialog dialog) { - } - }).show(); + @Override + public void onCancel(AmbilWarnaDialog dialog) { + } + }, + buttonResource.getResource("ok").getValue(), + buttonResource.getResource("cancel").getValue() + ).show(); } } diff --git a/src/org/geometerplus/android/fbreader/preferences/ZLStringListPreference.java b/src/org/geometerplus/android/fbreader/preferences/ZLStringListPreference.java index b51b30def..5061bfd50 100644 --- a/src/org/geometerplus/android/fbreader/preferences/ZLStringListPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/ZLStringListPreference.java @@ -35,6 +35,10 @@ abstract class ZLStringListPreference extends ListPreference { super(context); setTitle(resource.getValue()); myValuesResource = valuesResource; + + final ZLResource buttonResource = ZLResource.resource("dialog").getResource("button"); + setPositiveButtonText(buttonResource.getResource("ok").getValue()); + setNegativeButtonText(buttonResource.getResource("cancel").getValue()); } protected final void setList(String[] values) { diff --git a/src/org/geometerplus/android/fbreader/preferences/background/BackgroundPreference.java b/src/org/geometerplus/android/fbreader/preferences/background/BackgroundPreference.java index cde52785a..1243b2985 100644 --- a/src/org/geometerplus/android/fbreader/preferences/background/BackgroundPreference.java +++ b/src/org/geometerplus/android/fbreader/preferences/background/BackgroundPreference.java @@ -98,7 +98,7 @@ public class BackgroundPreference extends Preference { final ZLColor color = myProfile.BackgroundOption.getValue(); if (color != null) { - call.putExtra(COLOR_KEY, color.intValue()); + call.putExtra(COLOR_KEY, ZLAndroidColorUtil.rgb(color)); } ((Activity)getContext()).startActivityForResult(call, myRequestCode); diff --git a/src/org/geometerplus/android/fbreader/preferences/background/Chooser.java b/src/org/geometerplus/android/fbreader/preferences/background/Chooser.java index 77468decf..3161b7ff7 100644 --- a/src/org/geometerplus/android/fbreader/preferences/background/Chooser.java +++ b/src/org/geometerplus/android/fbreader/preferences/background/Chooser.java @@ -74,12 +74,18 @@ public class Chooser extends ListActivity implements AdapterView.OnItemClickList public final void onItemClick(AdapterView parent, View view, int position, long id) { switch (position) { case 0: + { + final ZLResource buttonResource = + ZLResource.resource("dialog").getResource("button"); new AmbilWarnaDialog( this, getIntent().getIntExtra(BackgroundPreference.COLOR_KEY, 0), - myColorChooserListener + myColorChooserListener, + buttonResource.getResource("ok").getValue(), + buttonResource.getResource("cancel").getValue() ).show(); break; + } case 1: startActivityForResult(new Intent(this, PredefinedImages.class), 1); break; diff --git a/third-party/AmbilWarna/src/yuku/ambilwarna/AmbilWarnaDialog.java b/third-party/AmbilWarna/src/yuku/ambilwarna/AmbilWarnaDialog.java index 968aff4cc..079944928 100644 --- a/third-party/AmbilWarna/src/yuku/ambilwarna/AmbilWarnaDialog.java +++ b/third-party/AmbilWarna/src/yuku/ambilwarna/AmbilWarnaDialog.java @@ -24,6 +24,9 @@ public class AmbilWarnaDialog { final ViewGroup viewContainer; final float[] currentColorHsv = new float[3]; + private final CharSequence positiveButtonText; + private final CharSequence negativeButtonText; + /** * create an AmbilWarnaDialog. call this only from OnCreateDialog() or from a background thread. * @@ -34,10 +37,13 @@ public class AmbilWarnaDialog { * @param listener * an OnAmbilWarnaListener, allowing you to get back error or */ - public AmbilWarnaDialog(final Context context, int color, OnAmbilWarnaListener listener) { + public AmbilWarnaDialog(final Context context, int color, OnAmbilWarnaListener listener, String positiveButtonText, String negativeButtonText) { this.listener = listener; Color.colorToHSV(color, currentColorHsv); + this.positiveButtonText = positiveButtonText; + this.negativeButtonText = negativeButtonText; + final View view = LayoutInflater.from(context).inflate(R.layout.ambilwarna_dialog, null); viewHue = view.findViewById(R.id.ambilwarna_viewHue); viewSatVal = (AmbilWarnaKotak) view.findViewById(R.id.ambilwarna_viewSatBri); @@ -102,14 +108,14 @@ public class AmbilWarnaDialog { }); dialog = new AlertDialog.Builder(context) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { + .setPositiveButton(positiveButtonText, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (AmbilWarnaDialog.this.listener != null) { AmbilWarnaDialog.this.listener.onOk(AmbilWarnaDialog.this, getColor()); } } }) - .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { + .setNegativeButton(negativeButtonText, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (AmbilWarnaDialog.this.listener != null) { AmbilWarnaDialog.this.listener.onCancel(AmbilWarnaDialog.this);