diff options
author | Daniel Oeh <daniel@danielpc.(none)> | 2012-05-29 13:26:14 +0200 |
---|---|---|
committer | Daniel Oeh <daniel@danielpc.(none)> | 2012-05-29 13:26:14 +0200 |
commit | 92c53bcf92c9be21df88e6aae0ee93784d9b936d (patch) | |
tree | bbbfbd07a419d24c39ff8de37f35cc86436a3016 /src/de/podfetcher/fragment | |
parent | 2df0fb4774d054e8f394dfefd62a0511db29d17e (diff) | |
download | AntennaPod-92c53bcf92c9be21df88e6aae0ee93784d9b936d.zip |
Converted FeedlistActivity into ListFragment
Diffstat (limited to 'src/de/podfetcher/fragment')
-rw-r--r-- | src/de/podfetcher/fragment/FeedlistFragment.java | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/src/de/podfetcher/fragment/FeedlistFragment.java b/src/de/podfetcher/fragment/FeedlistFragment.java new file mode 100644 index 000000000..dceb06b4b --- /dev/null +++ b/src/de/podfetcher/fragment/FeedlistFragment.java @@ -0,0 +1,105 @@ +package de.podfetcher.fragment; + +import de.podfetcher.R; +import de.podfetcher.feed.*; +import de.podfetcher.activity.*; +import de.podfetcher.adapter.FeedlistAdapter; +import de.podfetcher.storage.DownloadRequester; +import de.podfetcher.service.DownloadService; +import android.os.Bundle; +import android.app.Activity; +import android.view.View; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.widget.ListView; +import com.actionbarsherlock.app.SherlockListFragment; +import com.actionbarsherlock.app.SherlockFragmentActivity; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuInflater; +import com.actionbarsherlock.view.MenuItem; +import android.util.Log; + + +public class FeedlistFragment extends SherlockListFragment { + private static final String TAG = "FeedlistActivity"; + public static final String EXTRA_SELECTED_FEED = "extra.de.podfetcher.activity.selected_feed"; + + private FeedManager manager; + private FeedlistAdapter fla; + private SherlockFragmentActivity pActivity; + + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + pActivity = (SherlockFragmentActivity) activity; + } + + @Override + public void onDetach() { + super.onDetach(); + pActivity = null; + } + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Log.d(TAG, "Creating"); + setHasOptionsMenu(true); + manager = FeedManager.getInstance(); + fla = new FeedlistAdapter(pActivity, 0, manager.getFeeds()); + setListAdapter(fla); + + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.feedlist, menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.add_feed: + startActivity(new Intent(pActivity, AddFeedActivity.class)); + return true; + case R.id.all_feed_refresh: + manager.refreshAllFeeds(pActivity); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + + @Override + public void onResume() { + super.onResume(); + IntentFilter filter = new IntentFilter(); + filter.addAction(DownloadService.ACTION_FEED_SYNC_COMPLETED); + + pActivity.registerReceiver(contentUpdate, filter); + } + + @Override + public void onPause() { + super.onPause(); + pActivity.unregisterReceiver(contentUpdate); + } + + private BroadcastReceiver contentUpdate = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + fla.notifyDataSetChanged(); + } + }; + + @Override + public void onListItemClick(ListView l, View v, int position, long id) { + Feed selection = fla.getItem(position); + Intent showFeed = new Intent(pActivity, FeedItemlistActivity.class); + showFeed.putExtra(EXTRA_SELECTED_FEED, selection.getId()); + + pActivity.startActivity(showFeed); + } +} |