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/AndroidManifest.xml b/AndroidManifest.xml
index e301b5a..56cc78b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -41,11 +41,6 @@
-
-
-
-
-
-
-
-
- - WLAN有りの時のみ自動同期
- - ネットワーク有りの時のみ自動同期
- - 自動同期オフ
-
-
- - WLAN有りの時のみ画像をダウロード
- - ネットワーク有りの時のみ画像をダウロード
- - 画像をダウロードしない
-
-
- - デフォルトテーマ
- - ナイトモード
-
-
- - 1時間
- - 2時間
- - 3時間
- - 4時間
- - 6時間
- - 20分
- - 30分
-
-
+
+
+
+
+ - WLAN有りの時のみ自動同期
+ - ネットワーク有りの時のみ自動同期
+ - 自動同期オフ
+
+
+ - WLAN有りの時のみ画像をダウロード
+ - ネットワーク有りの時のみ画像をダウロード
+ - 画像をダウロードしない
+
+
+ - デフォルトテーマ
+ - ナイトモード
+
+
+ - 1時間
+ - 2時間
+ - 3時間
+ - 4時間
+ - 6時間
+ - 20分
+ - 30分
+
+
\ No newline at end of file
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 9e09ec1..5aa8e2f 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1,124 +1,124 @@
-
-
-
- EasyRSS
- ログイン
- 確認
- キャンセル
- Google Reader アカウント
- パスワード
- 未読のアイテムはありません
- 未読のタグはありません
- 未読のフィードはありません
- 確認
- 全て既読にしますか。
- ログアウトと時キャッシュはクリアします、続きますか。
- 同期
- ストリージ
- 読む
- 全て
- 全て登録
- タグ
- 登録
- アイテムを読む
- スターを付く
- 未読
- 全て
- すべての未読のアイテム
- すべてのスター付きのアイテム
- これは最初のアイテム
- これは最後のアイテム
- 処理中
- マーク中…
- マーク中…
- キャッシュをクリアしている…
- EasyRSS - 設定
- EasyRSS について
- 設定
- EasyRSS について
- へ送信…
- へアイテムのテキストを送信…
- へアイテムの内容を送信…
- ヘルプ
- ログアウト
- 自動同期
- この機能をオンにすれば、EasyRSSは特定なネットワーク環境で自動にGoogle Readerから新しいアイテムをダウロードして、同期します。
- 画像のロード
- いつか画像をロードします。
- 画像のプリロード
- 同期の時に画像をダウロードしますかしないか(画像のロードありのみ有効)。
- ローカルのアイテムの数
- 通信データ縮減のため、すべてのアイテム及び画像はSDカードで保存している。大きな領域を占めるることがあります。
- すぐに同期
- この機能をオンにすれば、アイテムの変更はすぐにサーバーと同期
- HTTPS 接続
- この機能をオンにすれば、EasyRSSとGoogle Readerサーバーの接続はHTTPSプロトコルを使います。
- 同期頻度
- 同期頻度を設定する(自動同期ありのみ有効)。
- 降順に並び替え
- アイテムを表示する時の並び替え方法を変える。
- 通知
- 新着アイテムの通知方法を設定します。
- ブラウザ
- ブラウザを選択する。
- フォントサイズ
- デフォルトのサイズを設定します。
- テーマ
- テーマを変更。
- すべて既読にする時の確認
- すべて既読にする前に確認ダイアログを表示する。
- 音量キーで切り替え
- 音量キーでアイテムを切り替えますか。
- ナイトモード
- デフォルト
- 必要な空き容量を計算
- まだ計算していません。
- 計算
- 計算中…
- 古いバージョンのデータベースをクリアしています…
- 古いアイテムをクリアしています…
- 現在のバージョン
- EasyRSSについて (@EasyRSS)
- EasyRSS\nhttps://github.com/Alkarex/EasyRSS
- 作成者について
- 孫征 (@sunzheng91)\n復旦大学計算機科学専攻\nwww.pursuer.me
- 前回の同期
- 不明
- 登録してるフィードを同期中…
- タグを同期中…
- アイテムを同期中…
- 未読のアイテムを同期中…
- アイテムと画像を同期中…
- 情報を同期中…
- アイテムをロードする
- ロード中
- ロード中…
- 認証中…
- Google Reader アカウントでログイン
- 認証された Google アカウントで体験する
- 既読にする
- 未読にする
- スターを付く
- スターを外す
- 前のアイテムを既読にする
- EasyRSS経由
- 更新、しばらくお待ちください…
- モバイル表示
- デスクトップ表示
- (EasyRSS Mobilizerによって生成されます)
- 一時間未満前
- %d 時間前
- %d 日前
- イメージをロードすることができません
- 次回からこのダイアログを表示しない
- 「設定 > 読む > すべて既読にする時の確認」でこの設定を変更できます。
- ブラウザを選択してください
- 毎回確認する
- デフォルトブラウザ (モバイル版)
- デフォルトブラウザ(デスクトップ版)
- サードパーティブラウザ
- 「設定 > 読む > ブラウザ」でこの設定を変更できます。
- クリップボードにコピー
- Sync failed
-
+
+
+
+ EasyRSS
+ ログイン
+ 確認
+ キャンセル
+ Google Reader アカウント
+ パスワード
+ 未読のアイテムはありません
+ 未読のタグはありません
+ 未読のフィードはありません
+ 確認
+ 全て既読にしますか。
+ ログアウトと時キャッシュはクリアします、続きますか。
+ 同期
+ ストリージ
+ 読む
+ 全て
+ 全て登録
+ タグ
+ 登録
+ アイテムを読む
+ スターを付く
+ 未読
+ 全て
+ すべての未読のアイテム
+ すべてのスター付きのアイテム
+ これは最初のアイテム
+ これは最後のアイテム
+ 処理中
+ マーク中…
+ マーク中…
+ キャッシュをクリアしている…
+ EasyRSS - 設定
+ EasyRSS について
+ 設定
+ EasyRSS について
+ へ送信…
+ へアイテムのテキストを送信…
+ へアイテムの内容を送信…
+ ヘルプ
+ ログアウト
+ 自動同期
+ この機能をオンにすれば、EasyRSSは特定なネットワーク環境で自動にGoogle Readerから新しいアイテムをダウロードして、同期します。
+ 画像のロード
+ いつか画像をロードします。
+ 画像のプリロード
+ 同期の時に画像をダウロードしますかしないか(画像のロードありのみ有効)。
+ ローカルのアイテムの数
+ 通信データ縮減のため、すべてのアイテム及び画像はSDカードで保存している。大きな領域を占めるることがあります。
+ すぐに同期
+ この機能をオンにすれば、アイテムの変更はすぐにサーバーと同期
+ HTTPS 接続
+ この機能をオンにすれば、EasyRSSとGoogle Readerサーバーの接続はHTTPSプロトコルを使います。
+ 同期頻度
+ 同期頻度を設定する(自動同期ありのみ有効)。
+ 降順に並び替え
+ アイテムを表示する時の並び替え方法を変える。
+ 通知
+ 新着アイテムの通知方法を設定します。
+ ブラウザ
+ ブラウザを選択する。
+ フォントサイズ
+ デフォルトのサイズを設定します。
+ テーマ
+ テーマを変更。
+ すべて既読にする時の確認
+ すべて既読にする前に確認ダイアログを表示する。
+ 音量キーで切り替え
+ 音量キーでアイテムを切り替えますか。
+ ナイトモード
+ デフォルト
+ 必要な空き容量を計算
+ まだ計算していません。
+ 計算
+ 計算中…
+ 古いバージョンのデータベースをクリアしています…
+ 古いアイテムをクリアしています…
+ 現在のバージョン
+ EasyRSSについて (@EasyRSS)
+ EasyRSS\nhttps://github.com/Alkarex/EasyRSS
+ 作成者について
+ 孫征 (@sunzheng91)\n復旦大学計算機科学専攻\nwww.pursuer.me
+ 前回の同期
+ 不明
+ 登録してるフィードを同期中…
+ タグを同期中…
+ アイテムを同期中…
+ 未読のアイテムを同期中…
+ アイテムと画像を同期中…
+ 情報を同期中…
+ アイテムをロードする
+ ロード中
+ ロード中…
+ 認証中…
+ Google Reader アカウントでログイン
+ 認証された Google アカウントで体験する
+ 既読にする
+ 未読にする
+ スターを付く
+ スターを外す
+ 前のアイテムを既読にする
+ EasyRSS経由
+ 更新、しばらくお待ちください…
+ モバイル表示
+ デスクトップ表示
+ (EasyRSS Mobilizerによって生成されます)
+ 一時間未満前
+ %d 時間前
+ %d 日前
+ イメージをロードすることができません
+ 次回からこのダイアログを表示しない
+ 「設定 > 読む > すべて既読にする時の確認」でこの設定を変更できます。
+ ブラウザを選択してください
+ 毎回確認する
+ デフォルトブラウザ (モバイル版)
+ デフォルトブラウザ(デスクトップ版)
+ サードパーティブラウザ
+ 「設定 > 読む > ブラウザ」でこの設定を変更できます。
+ クリップボードにコピー
+ Sync failed
+
\ No newline at end of file
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index bddc113..0f65e03 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -1,20 +1,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/org/freshrss/easyrss/BootReceiver.java b/src/org/freshrss/easyrss/BootReceiver.java
new file mode 100644
index 0000000..e6b5937
--- /dev/null
+++ b/src/org/freshrss/easyrss/BootReceiver.java
@@ -0,0 +1,16 @@
+package org.freshrss.easyrss;
+
+import org.freshrss.easyrss.network.NetworkUtils;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+public class BootReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ NetworkUtils.startSyncingTimer(context);
+ }
+
+}
diff --git a/src/org/freshrss/easyrss/VerticalSingleItemView.java b/src/org/freshrss/easyrss/VerticalSingleItemView.java
index 75f2c93..faee236 100644
--- a/src/org/freshrss/easyrss/VerticalSingleItemView.java
+++ b/src/org/freshrss/easyrss/VerticalSingleItemView.java
@@ -51,6 +51,7 @@
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
+import android.webkit.WebSettings.RenderPriority;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.CheckBox;
diff --git a/src/org/freshrss/easyrss/network/GlobalItemDataSyncer.java b/src/org/freshrss/easyrss/network/GlobalItemDataSyncer.java
index 3a2fd4e..08a3e62 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;
@@ -124,8 +126,14 @@ public void onProgressChanged(final String text, final int progress, final int m
@Override
protected void startSyncing() throws DataSyncerException {
+
+ final Context context = dataMgr.getContext();
+ if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
+ return;
+ }
+
final String sExpTime = dataMgr.getSettingByName(Setting.SETTING_ITEM_LIST_EXPIRE_TIME);
- if (networkConfig != SettingSyncMethod.SYNC_METHOD_MANUAL
+ if (networkConfig != SettingSyncMethod.SYNC_METHOD_MANUAL
&& sExpTime != null
&& Long.valueOf(sExpTime) + new SettingSyncInterval(dataMgr).toSeconds() * 1000 - 10 * 60 * 1000 > System
.currentTimeMillis()) {
@@ -152,9 +160,6 @@ protected void startSyncing() throws DataSyncerException {
private void syncAllItems() throws DataSyncerException {
final Context context = dataMgr.getContext();
- if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
- return;
- }
int count = 0;
String sSetting = dataMgr.getSettingByName(Setting.SETTING_GLOBAL_NEWEST_ITEM_TIMESTAMP);
long newestTimestamp = (sSetting == null) ? 0 : Long.valueOf(sSetting);
@@ -226,9 +231,6 @@ private void syncUnreadCount() throws DataSyncerException {
private void syncUnreadItems() throws DataSyncerException {
final Context context = dataMgr.getContext();
- if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
- return;
- }
String sSetting = dataMgr.getSettingByName(Setting.SETTING_GLOBAL_ITEM_UNREAD_COUNT);
final int unreadCount = (sSetting == null) ? 0 : Integer.valueOf(sSetting);
if (unreadCount == 0) {
@@ -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);
diff --git a/src/org/freshrss/easyrss/network/SubscriptionDataSyncer.java b/src/org/freshrss/easyrss/network/SubscriptionDataSyncer.java
index b295239..d63e7de 100644
--- a/src/org/freshrss/easyrss/network/SubscriptionDataSyncer.java
+++ b/src/org/freshrss/easyrss/network/SubscriptionDataSyncer.java
@@ -89,6 +89,12 @@ protected void finishSyncing() {
@Override
public void startSyncing() throws DataSyncerException {
+
+ final Context context = dataMgr.getContext();
+ if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
+ return;
+ }
+
final String sExpTime = dataMgr.getSettingByName(Setting.SETTING_SUBSCRIPTION_LIST_EXPIRE_TIME);
if (networkConfig != SettingSyncMethod.SYNC_METHOD_MANUAL
&& sExpTime != null
@@ -105,9 +111,6 @@ public void startSyncing() throws DataSyncerException {
private void syncSubscriptionIcons() throws DataSyncerException {
final Context context = dataMgr.getContext();
- if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
- return;
- }
final ContentResolver resolver = context.getContentResolver();
final Cursor cur = resolver.query(Subscription.CONTENT_URI, new String[] { Subscription._UID,
Subscription._ICON, Subscription._URL }, null, null, null);
@@ -137,9 +140,6 @@ private void syncSubscriptionIcons() throws DataSyncerException {
private void syncSubscriptions() throws DataSyncerException {
final Context context = dataMgr.getContext();
- if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
- return;
- }
notifyProgressChanged(context.getString(R.string.TxtSyncingSubscriptions), -1, -1);
final InputStream stream = httpGetQueryStream(new SubscriptionListURL(isHttpsConnection));
diff --git a/src/org/freshrss/easyrss/network/TagDataSyncer.java b/src/org/freshrss/easyrss/network/TagDataSyncer.java
index c83625d..92070e9 100644
--- a/src/org/freshrss/easyrss/network/TagDataSyncer.java
+++ b/src/org/freshrss/easyrss/network/TagDataSyncer.java
@@ -83,6 +83,12 @@ protected void finishSyncing() {
@Override
public void startSyncing() throws DataSyncerException {
+
+ final Context context = dataMgr.getContext();
+ if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
+ return;
+ }
+
final String sExpTime = dataMgr.getSettingByName(Setting.SETTING_TAG_LIST_EXPIRE_TIME);
if (networkConfig != SettingSyncMethod.SYNC_METHOD_MANUAL
&& sExpTime != null
@@ -98,9 +104,6 @@ public void startSyncing() throws DataSyncerException {
private void syncTags() throws DataSyncerException {
final Context context = dataMgr.getContext();
- if (!NetworkUtils.checkSyncingNetworkStatus(context, networkConfig)) {
- return;
- }
notifyProgressChanged(context.getString(R.string.TxtSyncingTags), -1, -1);
final InputStream stream = httpGetQueryStream(new TagListURL(isHttpsConnection));
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) {