aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-12-29 15:50:20 +0100
committerSamuel Tardieu <sam@rfc1149.net>2013-12-29 15:52:14 +0100
commit102b5cb2fa4779af97076ed2d6afe6a0349e5329 (patch)
tree5a4c665f2809f4471acaba37fa228d0c9e22dc55 /main
parent11bd776ee2bd1a1722692f9c4288b8f0a507e43b (diff)
downloadcgeo-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')
-rw-r--r--main/src/cgeo/geocaching/settings/CapabilitiesPreference.java9
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();
}