diff --git a/clients/android/NewsBlur/res/menu/context_story.xml b/clients/android/NewsBlur/res/menu/context_story.xml
index ad563a22e..e3313cb16 100644
--- a/clients/android/NewsBlur/res/menu/context_story.xml
+++ b/clients/android/NewsBlur/res/menu/context_story.xml
@@ -7,8 +7,10 @@
-
+
+
-
\ No newline at end of file
+
diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/AllStoriesItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/AllStoriesItemListFragment.java
index ebf7b39e6..901e456cc 100644
--- a/clients/android/NewsBlur/src/com/newsblur/fragment/AllStoriesItemListFragment.java
+++ b/clients/android/NewsBlur/src/com/newsblur/fragment/AllStoriesItemListFragment.java
@@ -29,7 +29,7 @@ import com.newsblur.util.DefaultFeedView;
import com.newsblur.util.StoryOrder;
import com.newsblur.view.SocialItemViewBinder;
-public class AllStoriesItemListFragment extends StoryItemListFragment implements LoaderManager.LoaderCallbacks, OnItemClickListener {
+public class AllStoriesItemListFragment extends ItemListFragment implements LoaderManager.LoaderCallbacks, OnItemClickListener {
private String[] feedIds;
private int currentState;
diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/FeedItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/FeedItemListFragment.java
index ad8f08a26..32ade0a43 100644
--- a/clients/android/NewsBlur/src/com/newsblur/fragment/FeedItemListFragment.java
+++ b/clients/android/NewsBlur/src/com/newsblur/fragment/FeedItemListFragment.java
@@ -29,7 +29,7 @@ import com.newsblur.util.DefaultFeedView;
import com.newsblur.util.StoryOrder;
import com.newsblur.view.FeedItemViewBinder;
-public class FeedItemListFragment extends StoryItemListFragment implements LoaderManager.LoaderCallbacks, OnItemClickListener {
+public class FeedItemListFragment extends ItemListFragment implements LoaderManager.LoaderCallbacks, OnItemClickListener {
private String feedId;
private int currentState;
diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/FolderItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/FolderItemListFragment.java
index e7ce91456..f4aee6d68 100644
--- a/clients/android/NewsBlur/src/com/newsblur/fragment/FolderItemListFragment.java
+++ b/clients/android/NewsBlur/src/com/newsblur/fragment/FolderItemListFragment.java
@@ -33,7 +33,7 @@ import com.newsblur.util.NetworkUtils;
import com.newsblur.util.StoryOrder;
import com.newsblur.view.FeedItemViewBinder;
-public class FolderItemListFragment extends StoryItemListFragment implements LoaderManager.LoaderCallbacks, OnItemClickListener {
+public class FolderItemListFragment extends ItemListFragment implements LoaderManager.LoaderCallbacks, OnItemClickListener {
private ContentResolver contentResolver;
private String[] feedIds;
diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java
index cf66fcd44..8ced63341 100644
--- a/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java
+++ b/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java
@@ -1,22 +1,33 @@
package com.newsblur.fragment;
+import java.util.ArrayList;
+import java.util.List;
+
import android.database.Cursor;
import android.support.v4.app.Fragment;
import android.support.v4.content.Loader;
import android.util.Log;
+import android.view.ContextMenu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
+import android.view.ContextMenu.ContextMenuInfo;
+import android.view.View.OnCreateContextMenuListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
+import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.newsblur.R;
import com.newsblur.activity.ItemsList;
import com.newsblur.database.StoryItemsAdapter;
+import com.newsblur.domain.Story;
import com.newsblur.util.DefaultFeedView;
+import com.newsblur.util.FeedUtils;
import com.newsblur.util.StoryOrder;
-public abstract class ItemListFragment extends Fragment implements OnScrollListener {
+public abstract class ItemListFragment extends Fragment implements OnScrollListener, OnCreateContextMenuListener {
protected int currentPage = 0;
protected boolean requestedPage;
@@ -91,4 +102,47 @@ public abstract class ItemListFragment extends Fragment implements OnScrollListe
public void setDefaultFeedView(DefaultFeedView value) {
this.defaultFeedView = value;
}
+
+ @Override
+ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
+ MenuInflater inflater = getActivity().getMenuInflater();
+ inflater.inflate(R.menu.context_story, menu);
+ }
+
+ @Override
+ public boolean onContextItemSelected(MenuItem item) {
+ AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
+ Story story = adapter.getStory(menuInfo.position);
+
+ switch (item.getItemId()) {
+ case R.id.menu_mark_story_as_read:
+ FeedUtils.markStoryAsRead(story, getActivity());
+ hasUpdated();
+ return true;
+
+ case R.id.menu_mark_story_as_unread:
+ FeedUtils.markStoryUnread(story, getActivity());
+ hasUpdated();
+ return true;
+
+ case R.id.menu_mark_previous_stories_as_read:
+ List previousStories = adapter.getPreviousStories(menuInfo.position);
+ List storiesToMarkAsRead = new ArrayList();
+ for(Story s : previousStories) {
+ if(! s.read) {
+ storiesToMarkAsRead.add(s);
+ }
+ }
+ FeedUtils.markStoriesAsRead(storiesToMarkAsRead, getActivity());
+ hasUpdated();
+ return true;
+
+ case R.id.menu_shared:
+ FeedUtils.shareStory(story, getActivity());
+ return true;
+
+ default:
+ return super.onContextItemSelected(item);
+ }
+ }
}
diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/StoryItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/StoryItemListFragment.java
deleted file mode 100644
index e4477c9a8..000000000
--- a/clients/android/NewsBlur/src/com/newsblur/fragment/StoryItemListFragment.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package com.newsblur.fragment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import android.view.ContextMenu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.view.View.OnCreateContextMenuListener;
-import android.widget.AdapterView;
-
-import com.newsblur.R;
-import com.newsblur.database.StoryItemsAdapter;
-import com.newsblur.domain.Story;
-import com.newsblur.util.FeedUtils;
-
-public abstract class StoryItemListFragment extends ItemListFragment implements OnCreateContextMenuListener {
-
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenuInfo menuInfo) {
- MenuInflater inflater = getActivity().getMenuInflater();
-
- inflater.inflate(R.menu.context_story, menu);
- }
-
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- final AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
- if (item.getItemId() == R.id.menu_mark_story_as_read) {
- final Story story = adapter.getStory(menuInfo.position);
- if(! story.read) {
- List storiesToMarkAsRead = new ArrayList();
- storiesToMarkAsRead.add(story);
- FeedUtils.markStoriesAsRead(storiesToMarkAsRead, getActivity());
- hasUpdated();
- }
- } else if (item.getItemId() == R.id.menu_mark_previous_stories_as_read) {
- final List previousStories = adapter.getPreviousStories(menuInfo.position);
- List storiesToMarkAsRead = new ArrayList();
- for(Story story: previousStories) {
- if(! story.read) {
- storiesToMarkAsRead.add(story);
- }
- }
- FeedUtils.markStoriesAsRead(storiesToMarkAsRead, getActivity());
- hasUpdated();
- } else if (item.getItemId() == R.id.menu_shared) {
- Story story = adapter.getStory(menuInfo.position);
- FeedUtils.shareStory(story, getActivity());
- }
- return super.onContextItemSelected(item);
- }
-
-}