aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/settings
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-12-19 10:12:39 +0100
committerBananeweizen <bananeweizen@gmx.de>2013-12-19 10:12:39 +0100
commit5d2037d977cb1d41d8c252b1fd5f79d464817b0f (patch)
tree3f045e22df737056ba4d4248fc7ef6c0a4768fd7 /main/src/cgeo/geocaching/settings
parent865049e156cfdac0d4c01367e74e243a027286ca (diff)
downloadcgeo-5d2037d977cb1d41d8c252b1fd5f79d464817b0f.zip
cgeo-5d2037d977cb1d41d8c252b1fd5f79d464817b0f.tar.gz
cgeo-5d2037d977cb1d41d8c252b1fd5f79d464817b0f.tar.bz2
refactoring: remove duplicated code
Diffstat (limited to 'main/src/cgeo/geocaching/settings')
-rw-r--r--main/src/cgeo/geocaching/settings/CheckBoxWithPopupPreference.java26
-rw-r--r--main/src/cgeo/geocaching/settings/InfoPreference.java50
2 files changed, 21 insertions, 55 deletions
diff --git a/main/src/cgeo/geocaching/settings/CheckBoxWithPopupPreference.java b/main/src/cgeo/geocaching/settings/CheckBoxWithPopupPreference.java
index 4e64b9a..e36e007 100644
--- a/main/src/cgeo/geocaching/settings/CheckBoxWithPopupPreference.java
+++ b/main/src/cgeo/geocaching/settings/CheckBoxWithPopupPreference.java
@@ -1,13 +1,10 @@
package cgeo.geocaching.settings;
import cgeo.geocaching.R;
+import cgeo.geocaching.ui.UrlPopup;
-import android.app.AlertDialog;
import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
import android.content.res.TypedArray;
-import android.net.Uri;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.util.AttributeSet;
@@ -63,26 +60,7 @@ public class CheckBoxWithPopupPreference extends CheckBoxPreference {
if (!(Boolean) newValue) {
return true;
}
- AlertDialog.Builder builder = new AlertDialog.Builder(
- preference.getContext());
- builder.setMessage(text)
- .setIcon(android.R.drawable.ic_dialog_info)
- .setTitle(title)
- .setPositiveButton(R.string.err_none, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- })
- .setNegativeButton(urlButton, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- Intent i = new Intent(Intent.ACTION_VIEW);
- i.setData(Uri.parse(url));
- preference.getContext().startActivity(i);
- }
- });
- builder.create().show();
+ new UrlPopup(preference.getContext()).show(title, text, url, urlButton);
return true;
}
});
diff --git a/main/src/cgeo/geocaching/settings/InfoPreference.java b/main/src/cgeo/geocaching/settings/InfoPreference.java
index 3b59bcc..8040a62 100644
--- a/main/src/cgeo/geocaching/settings/InfoPreference.java
+++ b/main/src/cgeo/geocaching/settings/InfoPreference.java
@@ -1,14 +1,11 @@
package cgeo.geocaching.settings;
import cgeo.geocaching.R;
+import cgeo.geocaching.ui.UrlPopup;
import android.app.Activity;
-import android.app.AlertDialog;
import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
import android.content.res.TypedArray;
-import android.net.Uri;
import android.preference.Preference;
import android.util.AttributeSet;
import android.view.LayoutInflater;
@@ -82,39 +79,30 @@ public class InfoPreference extends AbstractAttributeBasedPrefence {
@Override
public boolean onPreferenceClick(final Preference preference) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- preference.getContext());
- builder.setMessage(text)
- .setIcon(android.R.drawable.ic_dialog_info)
- .setTitle(preference.getTitle())
- .setPositiveButton(R.string.err_none, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- })
- .setNegativeButton(urlButton, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- Intent i = new Intent(Intent.ACTION_VIEW);
- i.setData(Uri.parse(url));
- preference.getContext().startActivity(i);
- }
- });
- builder.create().show();
+ new UrlPopup(preference.getContext()).show(preference.getTitle().toString(), text, url, urlButton);
+ // don't update the preference value
return false;
}
});
- // show an Info Icon
- View v = super.onCreateView(parent);
+ return addInfoIcon(parent);
+ }
+
+ /**
+ * Add an info icon at the left hand side of the preference.
+ *
+ * @param parent
+ * @return
+ */
+ private View addInfoIcon(ViewGroup parent) {
+ View preferenceView = super.onCreateView(parent);
- ImageView i = (ImageView) inflater.inflate(R.layout.preference_info_icon, parent, false);
- LinearLayout l = (LinearLayout) v.findViewById(android.R.id.widget_frame);
- l.setVisibility(View.VISIBLE);
- l.addView(i);
+ ImageView iconView = (ImageView) inflater.inflate(R.layout.preference_info_icon, parent, false);
+ LinearLayout frame = (LinearLayout) preferenceView.findViewById(android.R.id.widget_frame);
+ frame.setVisibility(View.VISIBLE);
+ frame.addView(iconView);
- return v;
+ return preferenceView;
}
}