summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2020-10-03 11:04:00 +0300
committerAndrew Dolgov <[email protected]>2020-10-03 11:04:00 +0300
commit4759db4ef8b347e1eaf23c7e728dcd4941c4eda3 (patch)
tree9ee50b31d2ac2880b059df0b8634f9cd8b8a4a3f
parent213ab533b110c08f665f874e38fbd46edfc0f198 (diff)
show extended catchup dialog on api 15+
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java13
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java31
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java4
-rwxr-xr-xorg.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java126
-rwxr-xr-xorg.fox.ttrss/src/main/res/values/strings.xml6
5 files changed, 135 insertions, 45 deletions
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
index 07fec156..43a1d6d4 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedCategoriesFragment.java
@@ -2,10 +2,7 @@ package org.fox.ttrss;
import android.annotation.SuppressLint;
import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Build;
@@ -255,8 +252,10 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
if (true) {
final FeedCategory cat = getCategoryAtPosition(info.position);
if (cat != null) {
-
- if (m_prefs.getBoolean("confirm_headlines_catchup", true)) {
+
+ m_activity.catchupDialog(new Feed(cat.id, cat.title, true));
+
+ /* if (m_prefs.getBoolean("confirm_headlines_catchup", true)) {
AlertDialog.Builder builder = new AlertDialog.Builder(
m_activity)
.setMessage(getString(R.string.context_confirm_catchup, cat.title))
@@ -265,7 +264,7 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
public void onClick(DialogInterface dialog,
int which) {
- m_activity.catchupFeed(new Feed(cat.id, cat.title, true));
+ m_activity.catchupFeed(new Feed(cat.id, cat.title, true), "all");
}
})
@@ -281,7 +280,7 @@ public class FeedCategoriesFragment extends BaseFeedlistFragment implements OnIt
dlg.show();
} else {
m_activity.catchupFeed(new Feed(cat.id, cat.title, true));
- }
+ } */
}
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
index 58e76a34..dde7923e 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsFragment.java
@@ -318,35 +318,10 @@ public class FeedsFragment extends BaseFeedlistFragment implements OnItemClickLi
return true;
case R.id.catchup_feed:
if (true) {
- final Feed feed = getFeedAtPosition(info.position);
-
+ Feed feed = getFeedAtPosition(info.position);
+
if (feed != null) {
- if (m_prefs.getBoolean("confirm_headlines_catchup", true)) {
- AlertDialog.Builder builder = new AlertDialog.Builder(
- m_activity)
- .setMessage(getString(R.string.context_confirm_catchup, feed.title))
- .setPositiveButton(R.string.catchup,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- m_activity.catchupFeed(feed);
-
- }
- })
- .setNegativeButton(R.string.dialog_cancel,
- new Dialog.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
-
- }
- });
-
- AlertDialog dlg = builder.create();
- dlg.show();
- } else {
- m_activity.catchupFeed(feed);
- }
+ m_activity.catchupDialog(feed);
}
}
return true;
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
index e4f11757..d2fb2cc1 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/MasterActivity.java
@@ -551,8 +551,8 @@ public class MasterActivity extends OnlineActivity implements HeadlinesEventList
onArticleSelected(article, true);
}
- public void catchupFeed(final Feed feed) {
- super.catchupFeed(feed);
+ public void catchupFeed(final Feed feed, final String mode) {
+ super.catchupFeed(feed, mode);
refresh();
}
diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
index e644fc46..7403985a 100755
--- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
+++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java
@@ -28,6 +28,7 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.EditText;
+import android.widget.ListView;
import android.widget.TextView;
import com.google.gson.Gson;
@@ -68,6 +69,108 @@ public class OnlineActivity extends CommonActivity {
private String m_lastImageHitTestUrl;
private ConnectivityManager m_cmgr;
+ public void catchupDialog(final Feed feed) {
+
+ if (getApiLevel() >= 15) {
+
+ int selectedIndex = 0;
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ .setTitle(getString(R.string.catchup_dialog_title, feed.title))
+ .setSingleChoiceItems(
+ new String[] {
+ getString(R.string.catchup_dialog_all_articles),
+ getString(R.string.catchup_dialog_1day),
+ getString(R.string.catchup_dialog_1week),
+ getString(R.string.catchup_dialog_2week)
+ },
+ selectedIndex, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ }
+ })
+ .setPositiveButton(R.string.catchup,
+ new OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ ListView list = ((AlertDialog)dialog).getListView();
+
+ if (list.getCheckedItemCount() > 0) {
+ int position = list.getCheckedItemPosition();
+
+ String[] catchupModes = { "all", "1day", "1week", "2week" };
+ String mode = catchupModes[position];
+
+ catchupFeed(feed, mode);
+ }
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ Dialog dialog = builder.create();
+ dialog.show();
+
+ } else {
+ AlertDialog.Builder builder = new AlertDialog.Builder(
+ this)
+ .setMessage(getString(R.string.catchup_dialog_title, feed.title))
+ .setPositiveButton(R.string.catchup,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ catchupFeed(feed, "all");
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+
+ /* if (m_prefs.getBoolean("confirm_headlines_catchup", true)) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(
+ m_activity)
+ .setMessage(getString(R.string.context_confirm_catchup, feed.title))
+ .setPositiveButton(R.string.catchup,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ m_activity.catchupFeed(feed);
+
+ }
+ })
+ .setNegativeButton(R.string.dialog_cancel,
+ new Dialog.OnClickListener() {
+ public void onClick(DialogInterface dialog,
+ int which) {
+
+ }
+ });
+
+ AlertDialog dlg = builder.create();
+ dlg.show();
+ } else {
+ m_activity.catchupFeed(feed);
+ } */
+ }
+
//protected PullToRefreshAttacher m_pullToRefreshAttacher;
protected abstract class OnLoginFinishedListener {
@@ -608,9 +711,15 @@ public class OnlineActivity extends CommonActivity {
return true;
case R.id.headlines_mark_as_read:
if (hf != null) {
-
- int count = hf.getUnreadArticles().size();
-
+
+ Feed feed = hf.getFeed();
+
+ if (feed != null) {
+ catchupDialog(hf.getFeed());
+ }
+
+ /*int count = hf.getUnreadArticles().size();
+
boolean confirm = m_prefs.getBoolean("confirm_headlines_catchup", true);
if (count > 0) {
@@ -640,7 +749,7 @@ public class OnlineActivity extends CommonActivity {
} else {
catchupVisibleArticles();
}
- }
+ } */
}
return true;
case R.id.headlines_view_mode:
@@ -897,7 +1006,7 @@ public class OnlineActivity extends CommonActivity {
}
}
- protected void catchupVisibleArticles() {
+ /* protected void catchupVisibleArticles() {
final HeadlinesFragment hf = (HeadlinesFragment) getSupportFragmentManager().findFragmentByTag(FRAG_HEADLINES);
if (hf != null) {
@@ -928,7 +1037,7 @@ public class OnlineActivity extends CommonActivity {
};
req.execute(map);
}
- }
+ } */
public void editArticleNote(final Article article) {
String note = "";
@@ -1275,8 +1384,8 @@ public class OnlineActivity extends CommonActivity {
return super.onKeyUp(keyCode, event);
}
- public void catchupFeed(final Feed feed) {
- Log.d(TAG, "catchupFeed=" + feed);
+ public void catchupFeed(final Feed feed, final String mode) {
+ Log.d(TAG, "catchupFeed=" + feed + "; mode=" + mode);
ApiRequest req = new ApiRequest(getApplicationContext()) {
protected void onPostExecute(JsonElement result) {
@@ -1290,6 +1399,7 @@ public class OnlineActivity extends CommonActivity {
put("sid", getSessionId());
put("op", "catchupFeed");
put("feed_id", String.valueOf(feed.id));
+ put("mode", mode);
if (feed.is_cat)
put("is_cat", "1");
}
diff --git a/org.fox.ttrss/src/main/res/values/strings.xml b/org.fox.ttrss/src/main/res/values/strings.xml
index 12604d45..e2a6ca8e 100755
--- a/org.fox.ttrss/src/main/res/values/strings.xml
+++ b/org.fox.ttrss/src/main/res/values/strings.xml
@@ -284,4 +284,10 @@
<string name="prefs_inline_video_player_title">Inline video player</string>
<string name="force_phone_layout_summary">On tablet devices</string>
<string name="force_phone_layout">Force phone layout</string>
+
+ <string name="catchup_dialog_title">Mark %1$s as read?</string>
+ <string name="catchup_dialog_all_articles">All articles</string>
+ <string name="catchup_dialog_1day">Older than one day</string>
+ <string name="catchup_dialog_1week">Older than one week</string>
+ <string name="catchup_dialog_2week">Older than two weeks</string>
</resources>