From 36c24e5846cffb9ed5928b59bcca2b184343f7dc Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 4 Nov 2014 17:27:11 +0300 Subject: implement support for article sorting modes instead of previous preference options --- .../src/main/java/org/fox/ttrss/ArticlePager.java | 2 +- .../src/main/java/org/fox/ttrss/FeedsActivity.java | 59 ++++++++++++++++++++-- .../main/java/org/fox/ttrss/HeadlinesFragment.java | 2 +- .../main/java/org/fox/ttrss/OnlineActivity.java | 18 +++++-- .../org/fox/ttrss/offline/OfflineActivity.java | 12 ++++- org.fox.ttrss/src/main/res/values/strings.xml | 5 ++ org.fox.ttrss/src/main/res/xml/preferences.xml | 9 ---- 7 files changed, 88 insertions(+), 19 deletions(-) (limited to 'org.fox.ttrss') diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java index 6f45432b..87ca61dd 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/ArticlePager.java @@ -233,7 +233,7 @@ public class ArticlePager extends Fragment { put("view_mode", m_activity.getViewMode()); put("skip", String.valueOf(fskip)); put("include_nested", "true"); - put("order_by", m_prefs.getBoolean("oldest_first", false) ? "date_reverse" : ""); + put("order_by", m_activity.getSortMode()); if (feed.is_cat) put("is_cat", "true"); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java index a6a3069a..39e4ae6f 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/FeedsActivity.java @@ -2,6 +2,9 @@ package org.fox.ttrss; import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.app.Dialog; +import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; @@ -297,10 +300,58 @@ public class FeedsActivity extends OnlineActivity implements HeadlinesEventListe //getSupportFragmentManager().popBackStack(); return true; case R.id.headlines_toggle_sort_order: - SharedPreferences.Editor editor = m_prefs.edit(); - editor.putBoolean("oldest_first", !m_prefs.getBoolean("oldest_first", false)); - editor.commit(); - refresh(); + Dialog dialog = new Dialog(this); + + String sortMode = getSortMode(); + + int selectedIndex = 0; + + if (sortMode.equals("feed_dates")) { + selectedIndex = 1; + } else if (sortMode.equals("date_reverse")) { + selectedIndex = 2; + } else if (sortMode.equals("title")) { + selectedIndex = 3; + } + + AlertDialog.Builder builder = new AlertDialog.Builder(this) + .setTitle(getString(R.string.headlines_sort_articles_title)) + .setSingleChoiceItems( + new String[] { + getString(R.string.headlines_sort_default), + getString(R.string.headlines_sort_newest_first), + getString(R.string.headlines_sort_oldest_first), + getString(R.string.headlines_sort_title) + }, + selectedIndex, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, + int which) { + Log.d(TAG, "which:" + which); + + switch (which) { + case 0: + setSortMode("default"); + break; + case 1: + setSortMode("feed_dates"); + break; + case 2: + setSortMode("date_reverse"); + break; + case 3: + setSortMode("title"); + break; + } + dialog.cancel(); + + refresh(); + } + }); + + dialog = builder.create(); + dialog.show(); + return true; case R.id.show_feeds: setUnreadOnly(!getUnreadOnly()); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java index 69d6033a..93e6a8e7 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/HeadlinesFragment.java @@ -541,7 +541,7 @@ public class HeadlinesFragment extends Fragment implements OnItemClickListener, put("offset", String.valueOf(0)); put("skip", String.valueOf(fskip)); put("include_nested", "true"); - put("order_by", m_prefs.getBoolean("oldest_first", false) ? "date_reverse" : ""); + put("order_by", m_activity.getSortMode()); if (isCat) put("is_cat", "true"); 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 244f40a4..894920cb 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/OnlineActivity.java @@ -1723,13 +1723,25 @@ public class OnlineActivity extends CommonActivity { } - public void setViewMode(String viewMode) { + public String getSortMode() { + return m_prefs.getString("headlines_sort_mode", "default"); + } + + public void setSortMode(String sortMode) { + Log.d(TAG, "setSortMode:" + sortMode); + + SharedPreferences.Editor editor = m_prefs.edit(); + editor.putString("headlines_sort_mode", sortMode); + editor.commit(); + } + + public void setViewMode(String viewMode) { SharedPreferences.Editor editor = m_prefs.edit(); editor.putString("view_mode", viewMode); editor.commit(); } - - public String getViewMode() { + + public String getViewMode() { return m_prefs.getString("view_mode", "adaptive"); } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java index 6059bf2f..184937a7 100644 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/offline/OfflineActivity.java @@ -823,7 +823,17 @@ public class OfflineActivity extends CommonActivity { editor.putString("offline_view_mode", viewMode); editor.commit(); } - + + /* public String getSortMode() { + return m_prefs.getString("headlines_sort_mode", "default"); + } + + public void setSortMode(String sortMode) { + SharedPreferences.Editor editor = m_prefs.edit(); + editor.putString("headlines_sort_mode", sortMode); + editor.commit(); + } */ + public String getViewMode() { return m_prefs.getString("offline_view_mode", "adaptive"); } diff --git a/org.fox.ttrss/src/main/res/values/strings.xml b/org.fox.ttrss/src/main/res/values/strings.xml index b4f81543..0752ff54 100644 --- a/org.fox.ttrss/src/main/res/values/strings.xml +++ b/org.fox.ttrss/src/main/res/values/strings.xml @@ -244,5 +244,10 @@ Error loading image. Open parent Toggle oldest first + Default + Newest first + Oldest first + Title + Sort articles diff --git a/org.fox.ttrss/src/main/res/xml/preferences.xml b/org.fox.ttrss/src/main/res/xml/preferences.xml index 7ee21f84..ec1c6418 100644 --- a/org.fox.ttrss/src/main/res/xml/preferences.xml +++ b/org.fox.ttrss/src/main/res/xml/preferences.xml @@ -104,11 +104,6 @@ android:summary="@string/pref_headlines_full_content_long" android:title="@string/pref_headlines_full_content" /> --> - -