diff --git a/clients/android/NewsBlur/res/menu/context_story.xml b/clients/android/NewsBlur/res/menu/context_story.xml
index b383b82938..d5d0b2741d 100644
--- a/clients/android/NewsBlur/res/menu/context_story.xml
+++ b/clients/android/NewsBlur/res/menu/context_story.xml
@@ -13,4 +13,10 @@
+
+
+
+
diff --git a/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java b/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java
index 7e984cb5ac..ea1d7236fc 100644
--- a/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java
+++ b/clients/android/NewsBlur/src/com/newsblur/fragment/ItemListFragment.java
@@ -3,13 +3,13 @@
import java.util.ArrayList;
import java.util.List;
+import android.app.Activity;
import android.database.Cursor;
import android.app.Fragment;
import android.content.Loader;
import android.util.Log;
import android.view.ContextMenu;
import android.view.GestureDetector;
-import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
@@ -27,6 +27,7 @@
import com.newsblur.activity.ItemsList;
import com.newsblur.database.StoryItemsAdapter;
import com.newsblur.domain.Story;
+import com.newsblur.network.APIManager;
import com.newsblur.util.DefaultFeedView;
import com.newsblur.util.FeedUtils;
import com.newsblur.util.StoryOrder;
@@ -118,21 +119,28 @@ public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuIn
} else {
menu.removeItem(R.id.menu_mark_story_as_unread);
}
+
+ if (story.starred) {
+ menu.removeItem(R.id.menu_save_story);
+ } else {
+ menu.removeItem(R.id.menu_unsave_story);
+ }
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
Story story = adapter.getStory(menuInfo.position);
+ Activity activity = getActivity();
switch (item.getItemId()) {
case R.id.menu_mark_story_as_read:
- FeedUtils.markStoryAsRead(story, getActivity());
+ FeedUtils.markStoryAsRead(story, activity);
hasUpdated();
return true;
case R.id.menu_mark_story_as_unread:
- FeedUtils.markStoryUnread(story, getActivity());
+ FeedUtils.markStoryUnread(story, activity);
hasUpdated();
return true;
@@ -144,12 +152,20 @@ public boolean onContextItemSelected(MenuItem item) {
storiesToMarkAsRead.add(s);
}
}
- FeedUtils.markStoriesAsRead(storiesToMarkAsRead, getActivity());
+ FeedUtils.markStoriesAsRead(storiesToMarkAsRead, activity);
hasUpdated();
return true;
case R.id.menu_shared:
- FeedUtils.shareStory(story, getActivity());
+ FeedUtils.shareStory(story, activity);
+ return true;
+
+ case R.id.menu_save_story:
+ FeedUtils.saveStory(story, activity, new APIManager(activity), null);
+ return true;
+
+ case R.id.menu_unsave_story:
+ FeedUtils.unsaveStory(story, activity, new APIManager(activity), null);
return true;
default: