From e4ca8197ff7e59844fda1072152bc1ed90086a9b Mon Sep 17 00:00:00 2001 From: scastrorico Date: Sun, 27 Mar 2016 00:08:19 +0100 Subject: [PATCH 1/4] Add support for theoldreader.com --- .classpath | 7 +++++-- .project | 16 ++++++++++++++++ project.properties | 2 +- .../easyrss/data/parser/ItemIdJSONParser.java | 7 ++++++- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.classpath b/.classpath index ed3db2b..224bf14 100644 --- a/.classpath +++ b/.classpath @@ -2,10 +2,13 @@ - - + + + + + diff --git a/.project b/.project index d9ad5c0..c3fc262 100644 --- a/.project +++ b/.project @@ -5,6 +5,16 @@ + + org.eclipse.andmore.ResourceManagerBuilder + + + + + org.eclipse.andmore.PreCompilerBuilder + + + com.android.ide.eclipse.adt.ResourceManagerBuilder @@ -25,8 +35,14 @@ + + org.eclipse.andmore.ApkBuilder + + + + org.eclipse.andmore.AndroidNature com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature diff --git a/project.properties b/project.properties index a5578ba..358ce4a 100644 --- a/project.properties +++ b/project.properties @@ -8,4 +8,4 @@ # project structure. # Project target. -target=android-19 +target=android-22 diff --git a/src/org/freshrss/easyrss/data/parser/ItemIdJSONParser.java b/src/org/freshrss/easyrss/data/parser/ItemIdJSONParser.java index ed06410..b9c4e4e 100644 --- a/src/org/freshrss/easyrss/data/parser/ItemIdJSONParser.java +++ b/src/org/freshrss/easyrss/data/parser/ItemIdJSONParser.java @@ -50,7 +50,12 @@ private void parse() throws JsonParseException, IOException { case VALUE_STRING: if (level == 3) { if ("id".equals(name)) { - itemId.setUid(Long.toHexString(Long.valueOf(parser.getText()))); + String uid = parser.getText(); + try { + uid = Long.toHexString(Long.valueOf(parser.getText())); + } + catch (final NumberFormatException nfe) {} + itemId.setUid(uid); } else if ("timestampUsec".equals(name)) { itemId.setTimestamp(Long.valueOf(parser.getText())); } From 620ebd365181b33383cf26c151148422e3f4c163 Mon Sep 17 00:00:00 2001 From: scastrorico Date: Sun, 27 Mar 2016 23:04:56 +0200 Subject: [PATCH 2/4] Fix empty unread messages list after refresh Sort ItemIds by timestamp (Downward). That prevents mark all items as read if they are disordered. --- .../easyrss/network/GlobalItemDataSyncer.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/org/freshrss/easyrss/network/GlobalItemDataSyncer.java b/src/org/freshrss/easyrss/network/GlobalItemDataSyncer.java index 3a2fd4e..73341a0 100644 --- a/src/org/freshrss/easyrss/network/GlobalItemDataSyncer.java +++ b/src/org/freshrss/easyrss/network/GlobalItemDataSyncer.java @@ -14,6 +14,8 @@ import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.LinkedList; import java.util.List; @@ -250,6 +252,16 @@ public void onItemIdRetrieved(final ItemId itemId) throws IOException { itemIds.add(itemId); } }); + + // Sort ItemIds by timestamp (Downward). That prevents mark all + // items as read if they are disordered. + Collections.sort(itemIds, new Comparator() { + @Override + public int compare(ItemId lhs, ItemId rhs) { + return Long.valueOf(lhs.getTimestamp()).compareTo(rhs.getTimestamp()); + } + }); + for (int i = 0; i < itemIds.size(); i += 50) { if (i + 50 <= itemIds.size()) { dataMgr.markItemsAsReadItemIds(itemIds, i, i + 50); From 31ca466c31ee19f4587877bc2322f186e334460f Mon Sep 17 00:00:00 2001 From: scastrorico Date: Wed, 30 Mar 2016 23:20:24 +0200 Subject: [PATCH 3/4] Fix images not shown in article view In webview settings, if blockNetwokImage option is false images are not loaded (although they are in device and loaded with file:// scheme). --- src/org/freshrss/easyrss/VerticalSingleItemView.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/org/freshrss/easyrss/VerticalSingleItemView.java b/src/org/freshrss/easyrss/VerticalSingleItemView.java index 50ef1fe..5189347 100644 --- a/src/org/freshrss/easyrss/VerticalSingleItemView.java +++ b/src/org/freshrss/easyrss/VerticalSingleItemView.java @@ -38,6 +38,8 @@ import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; +import android.os.Build; +import android.util.Log; import android.util.TypedValue; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; @@ -320,7 +322,7 @@ public void holdItemViewScroll() { menu.findViewById(R.id.BtnOpenLink).setOnClickListener(null); } - @SuppressLint("SetJavaScriptEnabled") + @SuppressLint({ "SetJavaScriptEnabled", "NewApi" }) public void loadContent() { final WebSettings settings = webView.getSettings(); settings.setDefaultTextEncodingName(HTTP.UTF_8); @@ -331,20 +333,20 @@ public void loadContent() { final StringBuffer content = new StringBuffer(); if (item.getState().isCached()) { - settings.setBlockNetworkImage(true); content.append(DataUtils.readFromFile(new File(item.getFullContentStoragePath()))); } else { final SettingImageFetching sImgFetch = new SettingImageFetching(dataMgr); if (NetworkUtils.checkImageFetchingNetworkStatus(context, sImgFetch.getData())) { - settings.setBlockNetworkImage(false); content.append(DataUtils.readFromFile(new File(item.getOriginalContentStoragePath()))); } else { - settings.setBlockNetworkImage(true); content.append(DataUtils.readFromFile(new File(item.getStrippedContentStoragePath()))); } } content.append(DataUtils.DEFAULT_JS); content.append(theme == SettingTheme.THEME_NORMAL ? DataUtils.DEFAULT_NORMAL_CSS : DataUtils.DEFAULT_DARK_CSS); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + WebView.setWebContentsDebuggingEnabled(true); + } webView.loadDataWithBaseURL("file://" + item.getStoragePath() + "/", content.toString(), null, "utf-8", null); } From 221004e90ce9c013bf615ed1cd25330b28714c15 Mon Sep 17 00:00:00 2001 From: scastrorico Date: Thu, 21 Apr 2016 00:05:22 +0200 Subject: [PATCH 4/4] Fix 404 when refresh starred post In theoldreader.com, when application try to refresh starred post, it get a document not found error. --- src/org/freshrss/easyrss/network/url/StreamContentsURL.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/org/freshrss/easyrss/network/url/StreamContentsURL.java b/src/org/freshrss/easyrss/network/url/StreamContentsURL.java index 8e7ef06..9734855 100644 --- a/src/org/freshrss/easyrss/network/url/StreamContentsURL.java +++ b/src/org/freshrss/easyrss/network/url/StreamContentsURL.java @@ -11,8 +11,6 @@ package org.freshrss.easyrss.network.url; -import android.net.Uri; - /* * Reference: http://code.google.com/p/google-reader-api/wiki/ApiStreamContents */ @@ -34,7 +32,7 @@ public StreamContentsURL(final boolean isHttpsConnection, final String uid, fina @Override public String getBaseURL() { - return appendURL(serverUrl + URL_STREAM_CONTENTS, Uri.encode(uid, "/")); + return appendURL(serverUrl, URL_STREAM_CONTENTS); } public String getContinuation() { @@ -96,6 +94,7 @@ public void setNewestItemTime(final long newestItemTime) { public void setUid(final String uid) { this.uid = uid; + addParam("s", uid); } public void setUnread(final boolean isUnread) {