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); - } - -}