diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2013-12-29 15:50:20 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2013-12-29 15:52:14 +0100 |
| commit | 102b5cb2fa4779af97076ed2d6afe6a0349e5329 (patch) | |
| tree | 5a4c665f2809f4471acaba37fa228d0c9e22dc55 /main/src | |
| parent | 11bd776ee2bd1a1722692f9c4288b8f0a507e43b (diff) | |
| download | cgeo-102b5cb2fa4779af97076ed2d6afe6a0349e5329.zip cgeo-102b5cb2fa4779af97076ed2d6afe6a0349e5329.tar.gz cgeo-102b5cb2fa4779af97076ed2d6afe6a0349e5329.tar.bz2 | |
fix #3491: bad encoding in features list
This:
- forces the use of UTF-8 encoding;
- escapes HTML characters present in features;
- closes <p></p> before starting <ul></ul> (as the later cannot be
embedded in the former according to the HTML specification).
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/geocaching/settings/CapabilitiesPreference.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/settings/CapabilitiesPreference.java b/main/src/cgeo/geocaching/settings/CapabilitiesPreference.java index d2e19b7..98aabe8 100644 --- a/main/src/cgeo/geocaching/settings/CapabilitiesPreference.java +++ b/main/src/cgeo/geocaching/settings/CapabilitiesPreference.java @@ -12,6 +12,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; import android.preference.Preference; +import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; @@ -46,7 +47,7 @@ public class CapabilitiesPreference extends AbstractAttributeBasedPrefence { @Override public boolean onPreferenceClick(final Preference preference) { WebView htmlView = new WebView(preference.getContext()); - htmlView.loadData(createCapabilitiesMessage(), "text/html", null); + htmlView.loadDataWithBaseURL(null, createCapabilitiesMessage(), "text/html", "utf-8", null); AlertDialog.Builder builder = new AlertDialog.Builder(preference.getContext()); builder.setView(htmlView) .setIcon(android.R.drawable.ic_dialog_info) @@ -69,13 +70,13 @@ public class CapabilitiesPreference extends AbstractAttributeBasedPrefence { return StringUtils.EMPTY; } StringBuilder builder = new StringBuilder("<p>" - + CgeoApplication.getInstance().getString(R.string.feature_description) + "<ul>"); + + TextUtils.htmlEncode(CgeoApplication.getInstance().getString(R.string.feature_description)) + "</p><ul>"); for (String capability : connector.getCapabilities()) { - builder.append("<li>").append(capability).append("</li>"); + builder.append("<li>").append(TextUtils.htmlEncode(capability)).append("</li>"); } - builder.append("</ul></p>"); + builder.append("</ul>"); return builder.toString(); } |
