summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-06-10 15:34:33 +0400
committerAndrew Dolgov <[email protected]>2013-06-10 15:34:33 +0400
commitfa3ee0b886dc3ecbc55f49792a518efea57c5d2a (patch)
tree9bb0eeccb5c1b2974d9f0f2ae7c75d5efcd0141b
parent96e91b9c95bcb5975d09bc1a2f7dc27fc30a56b5 (diff)
support view_mode setting in offline (without adaptive for the time
being) (closes #712)
-rw-r--r--res/menu/offline_menu.xml13
-rw-r--r--src/org/fox/ttrss/offline/OfflineActivity.java73
-rw-r--r--src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java14
3 files changed, 95 insertions, 5 deletions
diff --git a/res/menu/offline_menu.xml b/res/menu/offline_menu.xml
index 8d656d3f..68046522 100644
--- a/res/menu/offline_menu.xml
+++ b/res/menu/offline_menu.xml
@@ -3,11 +3,10 @@
<group android:id="@+id/menu_group_feeds" >
<item
android:id="@+id/go_online"
- android:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_cloud_light"
+ android:showAsAction="ifRoom|withText"
android:title="@string/go_online"
android:visible="false"/>
-
<item
android:id="@+id/show_feeds"
android:icon="@drawable/ic_list_light"
@@ -31,8 +30,13 @@
android:icon="@drawable/ic_select_all_light"
android:showAsAction="ifRoom"
android:title="@string/headlines_select"/>
+ <item
+ android:id="@+id/headlines_view_mode"
+ android:showAsAction=""
+ android:title="@string/headlines_view_mode"/>
</group>
- <!-- <group android:id="@+id/menu_group_headlines_selection" >
+ <!--
+ <group android:id="@+id/menu_group_headlines_selection" >
<item
android:id="@+id/selection_toggle_unread"
android:showAsAction="ifRoom"
@@ -51,7 +55,8 @@
android:id="@+id/selection_select_none"
android:showAsAction=""
android:title="@string/selection_select_none"/>
- </group> -->
+ </group>
+ -->
<group android:id="@+id/menu_group_article" >
<item
android:id="@+id/toggle_marked"
diff --git a/src/org/fox/ttrss/offline/OfflineActivity.java b/src/org/fox/ttrss/offline/OfflineActivity.java
index bda9c007..712bed78 100644
--- a/src/org/fox/ttrss/offline/OfflineActivity.java
+++ b/src/org/fox/ttrss/offline/OfflineActivity.java
@@ -1,6 +1,5 @@
package org.fox.ttrss.offline;
-import org.fox.ttrss.ArticlePager;
import org.fox.ttrss.CommonActivity;
import org.fox.ttrss.PreferencesActivity;
import org.fox.ttrss.R;
@@ -308,6 +307,67 @@ public class OfflineActivity extends CommonActivity {
Intent intent = new Intent(this, PreferencesActivity.class);
startActivityForResult(intent, 0);
return true;
+ case R.id.headlines_view_mode:
+ if (ohf != null) {
+ Dialog dialog = new Dialog(this);
+
+ String viewMode = getViewMode();
+
+ //Log.d(TAG, "viewMode:" + getViewMode());
+
+ int selectedIndex = 0;
+
+ if (viewMode.equals("all_articles")) {
+ selectedIndex = 0;
+ } else if (viewMode.equals("marked")) {
+ selectedIndex = 1;
+ } else if (viewMode.equals("published")) {
+ selectedIndex = 2;
+ } else if (viewMode.equals("unread")) {
+ selectedIndex = 3;
+ }
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this)
+ .setTitle(R.string.headlines_set_view_mode)
+ .setSingleChoiceItems(
+ new String[] {
+ /* getString(R.string.headlines_adaptive), */
+ getString(R.string.headlines_all_articles),
+ getString(R.string.headlines_starred),
+ getString(R.string.headlines_published),
+ getString(R.string.headlines_unread) },
+ selectedIndex, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog,
+ int which) {
+ switch (which) {
+ /* case 0:
+ setViewMode("adaptive");
+ break; */
+ case 0:
+ setViewMode("all_articles");
+ break;
+ case 1:
+ setViewMode("marked");
+ break;
+ case 2:
+ setViewMode("published");
+ break;
+ case 3:
+ setViewMode("unread");
+ break;
+ }
+ dialog.cancel();
+
+ refresh();
+ }
+ });
+
+ dialog = builder.create();
+ dialog.show();
+
+ }
+ return true;
case R.id.headlines_select:
if (ohf != null) {
Dialog dialog = new Dialog(this);
@@ -789,4 +849,15 @@ public class OfflineActivity extends CommonActivity {
public String getLastContentImageHitTestUrl() {
return m_lastImageHitTestUrl;
}
+
+ public void setViewMode(String viewMode) {
+ SharedPreferences.Editor editor = m_prefs.edit();
+ editor.putString("offline_view_mode", viewMode);
+ editor.commit();
+ }
+
+ public String getViewMode() {
+ return m_prefs.getString("offline_view_mode", "adaptive");
+ }
+
}
diff --git a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
index 0eeeee6f..1953c671 100644
--- a/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
+++ b/src/org/fox/ttrss/offline/OfflineHeadlinesFragment.java
@@ -334,6 +334,20 @@ public class OfflineHeadlinesFragment extends Fragment implements OnItemClickLis
feedClause = "feed_id = ?";
}
+ String viewMode = m_activity.getViewMode();
+
+ if ("adaptive".equals(viewMode)) {
+ // TODO: implement adaptive
+ } else if ("marked".equals(viewMode)) {
+ feedClause += "AND (marked = 1)";
+ } else if ("published".equals(viewMode)) {
+ feedClause += "AND (published = 1)";
+ } else if ("unread".equals(viewMode)) {
+ feedClause += "AND (unread = 1)";
+ } else { // all_articles
+ //
+ }
+
String orderBy = (m_prefs.getBoolean("offline_oldest_first", false)) ? "updated" : "updated DESC";
if (m_searchQuery == null || m_searchQuery.equals("")) {