fix webview encoding in articlefragment
This commit is contained in:
parent
8c19ec257c
commit
20effebcbf
@ -6,8 +6,16 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:layout_height="match_parent" android:orientation="vertical">
|
android:layout_height="match_parent" android:orientation="vertical">
|
||||||
<LinearLayout android:background="?articleHeader" android:layout_gravity="center_vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/article_header" android:padding="10dip">
|
<LinearLayout android:background="?articleHeader" android:layout_gravity="center_vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/article_header" android:padding="10dip" android:orientation="vertical">
|
||||||
<TextView android:singleLine="true" android:layout_weight="1" android:text="" android:layout_height="wrap_content" android:ellipsize="end" android:layout_width="match_parent" android:id="@+id/title" android:textSize="18dip"></TextView>
|
<TextView android:singleLine="true" android:layout_weight="1" android:text="{Title}" android:layout_height="wrap_content" android:ellipsize="end" android:layout_width="match_parent" android:id="@+id/title" android:textSize="18dip"></TextView>
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linearLayout3"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1">
|
||||||
|
<TextView android:text="{COMMENTS}" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="wrap_content" android:id="@+id/comments"></TextView>
|
||||||
|
<TextView android:text="{DATE}" android:gravity="right" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/date"></TextView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<ImageView android:background="?feedlistDivider" android:paddingTop="2dip" android:layout_weight="0" android:layout_height="wrap_content" android:layout_width="match_parent"></ImageView>
|
<ImageView android:background="?feedlistDivider" android:paddingTop="2dip" android:layout_weight="0" android:layout_height="wrap_content" android:layout_width="match_parent"></ImageView>
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
<string name="menu_unread_feeds">Show unread feeds</string>
|
<string name="menu_unread_feeds">Show unread feeds</string>
|
||||||
<string name="menu_all_feeds">Show all feeds</string>
|
<string name="menu_all_feeds">Show all feeds</string>
|
||||||
<string name="update_feeds">Refresh feeds</string>
|
<string name="update_feeds">Refresh feeds</string>
|
||||||
<string name="close_article">Close article</string>
|
<string name="close_article">Close article</string>
|
||||||
<string name="share_article">Share article</string>
|
<string name="share_article">Share article</string>
|
||||||
|
<string name="could_not_decode_content">Could not decode content (UnsupportedEncodingException)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package org.fox.ttrss;
|
package org.fox.ttrss;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
@ -37,8 +40,8 @@ public class ArticleFragment extends Fragment {
|
|||||||
TextView title = (TextView)view.findViewById(R.id.title);
|
TextView title = (TextView)view.findViewById(R.id.title);
|
||||||
|
|
||||||
if (title != null) {
|
if (title != null) {
|
||||||
title.setText(Html.fromHtml("<a href=\""+URLEncoder.encode(m_article.link)+"\">" + m_article.title + "</a>"));
|
|
||||||
title.setMovementMethod(LinkMovementMethod.getInstance());
|
title.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
|
title.setText(Html.fromHtml("<a href=\""+m_article.link.replace("\"", "\\\"")+"\">" + m_article.title + "</a>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
WebView web = (WebView)view.findViewById(R.id.content);
|
WebView web = (WebView)view.findViewById(R.id.content);
|
||||||
@ -47,13 +50,36 @@ public class ArticleFragment extends Fragment {
|
|||||||
|
|
||||||
// this is ridiculous
|
// this is ridiculous
|
||||||
// TODO white on black style for dark theme
|
// TODO white on black style for dark theme
|
||||||
String content = URLEncoder.encode("<html>" +
|
String content;
|
||||||
"<head><style type=\"text/css\">img { max-width : 90%; }</style></head>" +
|
try {
|
||||||
"<body>" + m_article.content + "</body></html>").replace('+', ' ');
|
content = URLEncoder.encode("<html>" +
|
||||||
|
"<head>" +
|
||||||
|
"<meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\">" + // wtf, google?
|
||||||
|
"<style type=\"text/css\">img { max-width : 90%; }</style>" +
|
||||||
|
"</head>" +
|
||||||
|
"<body>" + m_article.content + "</body></html>", "utf-8").replace('+', ' ');
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
content = getString(R.string.could_not_decode_content);
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
web.loadData(content, "text/html", "utf-8");
|
web.loadData(content, "text/html", "utf-8");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextView dv = (TextView)view.findViewById(R.id.date);
|
||||||
|
|
||||||
|
if (dv != null) {
|
||||||
|
Date d = new Date(m_article.updated * 1000L);
|
||||||
|
SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy, HH:mm");
|
||||||
|
dv.setText(df.format(d));
|
||||||
|
}
|
||||||
|
|
||||||
|
TextView cv = (TextView)view.findViewById(R.id.comments);
|
||||||
|
|
||||||
|
// comments are not currently returned by the API
|
||||||
|
if (cv != null) {
|
||||||
|
cv.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
|
Loading…
Reference in New Issue
Block a user