diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2013-12-19 10:12:39 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2013-12-19 10:12:39 +0100 |
| commit | 5d2037d977cb1d41d8c252b1fd5f79d464817b0f (patch) | |
| tree | 3f045e22df737056ba4d4248fc7ef6c0a4768fd7 /main/src/cgeo/geocaching/settings | |
| parent | 865049e156cfdac0d4c01367e74e243a027286ca (diff) | |
| download | cgeo-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.java | 26 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/InfoPreference.java | 50 |
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; } } |
