From 1fc767419f551580110fe35b0ec92843f34a271f Mon Sep 17 00:00:00 2001 From: Mark Anderson Date: Wed, 16 Apr 2014 22:28:03 +0100 Subject: [PATCH] Add save/unsave to story context menu (#207) --- .../NewsBlur/res/menu/context_story.xml | 6 +++++ .../newsblur/fragment/ItemListFragment.java | 26 +++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) 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: