summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-06-23 16:19:53 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-06-23 16:19:53 +0200
commitb7f9d066b91fc5efe7e471ae080e885be649e1df (patch)
treea38ddf27e10f66172cd9c6f3af11410ce3879a76 /src
parent3608ba18b68830f9bd65b0970ba85a4a3a1d5d44 (diff)
downloadAntennaPod-b7f9d066b91fc5efe7e471ae080e885be649e1df.zip
Moved Feedmenu into separate file
Diffstat (limited to 'src')
-rw-r--r--src/de/podfetcher/activity/FeedItemlistActivity.java41
-rw-r--r--src/de/podfetcher/fragment/FeedItemlistFragment.java6
-rw-r--r--src/de/podfetcher/fragment/FeedlistFragment.java43
-rw-r--r--src/de/podfetcher/util/FeedMenuHandler.java44
4 files changed, 106 insertions, 28 deletions
diff --git a/src/de/podfetcher/activity/FeedItemlistActivity.java b/src/de/podfetcher/activity/FeedItemlistActivity.java
index 517b9799a..e57255434 100644
--- a/src/de/podfetcher/activity/FeedItemlistActivity.java
+++ b/src/de/podfetcher/activity/FeedItemlistActivity.java
@@ -8,12 +8,17 @@ import android.util.Log;
import android.view.View;
import com.actionbarsherlock.app.SherlockFragmentActivity;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
import de.podfetcher.R;
+import de.podfetcher.asynctask.FeedRemover;
import de.podfetcher.feed.Feed;
import de.podfetcher.feed.FeedManager;
import de.podfetcher.fragment.FeedItemlistFragment;
import de.podfetcher.fragment.FeedlistFragment;
+import de.podfetcher.util.FeedMenuHandler;
/** Displays a List of FeedItems */
public class FeedItemlistActivity extends SherlockFragmentActivity {
@@ -44,8 +49,36 @@ public class FeedItemlistActivity extends SherlockFragmentActivity {
fT.commit();
}
- /*
- public void onButActionClicked(View v) {
- Log.d(TAG, "Button clicked");
- }*/
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ return FeedMenuHandler.onCreateOptionsMenu(new MenuInflater(this), menu);
+ }
+
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ return FeedMenuHandler.onPrepareOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (FeedMenuHandler.onOptionsItemClicked(this, item, feed)) {
+ filf.getListAdapter().notifyDataSetChanged();
+ } else {
+ switch(item.getItemId()) {
+ case R.id.remove_item:
+ FeedRemover remover = new FeedRemover(this) {
+ @Override
+ protected void onPostExecute(Void result) {
+ super.onPostExecute(result);
+ finish();
+ }
+ };
+ remover.execute(feed);
+ break;
+ }
+ }
+ return true;
+ }
+
}
diff --git a/src/de/podfetcher/fragment/FeedItemlistFragment.java b/src/de/podfetcher/fragment/FeedItemlistFragment.java
index d8be380fe..e01065c6f 100644
--- a/src/de/podfetcher/fragment/FeedItemlistFragment.java
+++ b/src/de/podfetcher/fragment/FeedItemlistFragment.java
@@ -24,6 +24,7 @@ import de.podfetcher.storage.DownloadRequester;
import de.podfetcher.util.FeedItemMenuHandler;
public class FeedItemlistFragment extends SherlockListFragment {
+
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
this.getListView().setItemsCanFocus(true);
@@ -127,5 +128,10 @@ public class FeedItemlistFragment extends SherlockListFragment {
return true;
}
};
+
+ public FeedItemlistAdapter getListAdapter() {
+ return fila;
+ }
+
}
diff --git a/src/de/podfetcher/fragment/FeedlistFragment.java b/src/de/podfetcher/fragment/FeedlistFragment.java
index aecaa7165..2b42c8548 100644
--- a/src/de/podfetcher/fragment/FeedlistFragment.java
+++ b/src/de/podfetcher/fragment/FeedlistFragment.java
@@ -7,6 +7,7 @@ import de.podfetcher.adapter.FeedlistAdapter;
import de.podfetcher.asynctask.FeedRemover;
import de.podfetcher.storage.DownloadRequester;
import de.podfetcher.service.DownloadService;
+import de.podfetcher.util.FeedMenuHandler;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
@@ -57,20 +58,17 @@ public class FeedlistFragment extends SherlockListFragment {
manager = FeedManager.getInstance();
fla = new FeedlistAdapter(pActivity, 0, manager.getFeeds());
setListAdapter(fla);
-
}
-
-
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
return inflater.inflate(R.layout.feedlist, container, false);
-
+
}
-
+
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@@ -89,7 +87,6 @@ public class FeedlistFragment extends SherlockListFragment {
mActionMode = getSherlockActivity().startActionMode(
mActionModeCallback);
-
}
return true;
}
@@ -137,8 +134,7 @@ public class FeedlistFragment extends SherlockListFragment {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
- MenuInflater inflater = mode.getMenuInflater();
- inflater.inflate(R.menu.feedlist, menu);
+ FeedMenuHandler.onCreateOptionsMenu(mode.getMenuInflater(), menu);
mode.setTitle(selectedFeed.getTitle());
return true;
}
@@ -150,23 +146,22 @@ public class FeedlistFragment extends SherlockListFragment {
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- switch (item.getItemId()) {
- case R.id.remove_item:
- FeedRemover remover = new FeedRemover(getSherlockActivity()){
- @Override
- protected void onPostExecute(Void result) {
- super.onPostExecute(result);
- fla.notifyDataSetChanged();
- }
- };
- remover.execute(selectedFeed);
- break;
- case R.id.mark_all_read_item:
- for (FeedItem feeditem : selectedFeed.getItems()) {
- manager.markItemRead(getSherlockActivity(), feeditem, true);
- }
+ if (FeedMenuHandler.onOptionsItemClicked(getSherlockActivity(),
+ item, selectedFeed)) {
fla.notifyDataSetChanged();
- break;
+ } else {
+ switch (item.getItemId()) {
+ case R.id.remove_item:
+ FeedRemover remover = new FeedRemover(getSherlockActivity()) {
+ @Override
+ protected void onPostExecute(Void result) {
+ super.onPostExecute(result);
+ fla.notifyDataSetChanged();
+ }
+ };
+ remover.execute(selectedFeed);
+ break;
+ }
}
mode.finish();
return true;
diff --git a/src/de/podfetcher/util/FeedMenuHandler.java b/src/de/podfetcher/util/FeedMenuHandler.java
new file mode 100644
index 000000000..140b895ff
--- /dev/null
+++ b/src/de/podfetcher/util/FeedMenuHandler.java
@@ -0,0 +1,44 @@
+package de.podfetcher.util;
+
+import android.content.Context;
+
+import com.actionbarsherlock.view.ActionMode;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
+
+import de.podfetcher.R;
+import de.podfetcher.feed.Feed;
+import de.podfetcher.feed.FeedItem;
+import de.podfetcher.feed.FeedManager;
+
+
+/** Handles interactions with the FeedItemMenu. */
+public class FeedMenuHandler {
+
+ public static boolean onCreateOptionsMenu(MenuInflater inflater, Menu menu) {
+ inflater.inflate(R.menu.feedlist, menu);
+ return true;
+ }
+
+
+ public static boolean onPrepareOptionsMenu(Menu menu) {
+ return true;
+ }
+
+ /** NOTE: This method does not handle clicks on the 'remove feed' - item. */
+ public static boolean onOptionsItemClicked(Context context, MenuItem item, Feed selectedFeed) {
+ FeedManager manager = FeedManager.getInstance();
+ switch (item.getItemId()) {
+ case R.id.mark_all_read_item:
+ for (FeedItem feeditem : selectedFeed.getItems()) {
+ manager.markItemRead(context, feeditem, true);
+ }
+
+ break;
+ default:
+ return false;
+ }
+ return true;
+ }
+}