From f9b0d1d318ed7e96fbc71dab8197937e02c0302c Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sat, 16 Jun 2012 17:18:37 +0200 Subject: [PATCH] Moved Feeditemlist into Fragment --- res/layout/feeditemlist_activity.xml | 13 +++++ .../activity/FeedItemlistActivity.java | 45 ++++++++------- .../podfetcher/activity/ItemviewActivity.java | 3 +- .../fragment/FeedItemlistFragment.java | 56 +++++++++++++++++++ 4 files changed, 93 insertions(+), 24 deletions(-) create mode 100644 res/layout/feeditemlist_activity.xml create mode 100644 src/de/podfetcher/fragment/FeedItemlistFragment.java diff --git a/res/layout/feeditemlist_activity.xml b/res/layout/feeditemlist_activity.xml new file mode 100644 index 000000000..9b60bd796 --- /dev/null +++ b/res/layout/feeditemlist_activity.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/src/de/podfetcher/activity/FeedItemlistActivity.java b/src/de/podfetcher/activity/FeedItemlistActivity.java index 3166d1faf..172259aad 100644 --- a/src/de/podfetcher/activity/FeedItemlistActivity.java +++ b/src/de/podfetcher/activity/FeedItemlistActivity.java @@ -1,49 +1,48 @@ package de.podfetcher.activity; -import com.actionbarsherlock.app.SherlockListActivity; -import android.view.View; -import android.widget.ListView; + import android.os.Bundle; -import android.content.Intent; -import de.podfetcher.feed.*; -import de.podfetcher.adapter.FeedItemlistAdapter; -import de.podfetcher.fragment.FeedlistFragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; import android.util.Log; +import android.view.View; + +import com.actionbarsherlock.app.SherlockFragmentActivity; + +import de.podfetcher.R; +import de.podfetcher.feed.Feed; +import de.podfetcher.feed.FeedManager; +import de.podfetcher.fragment.FeedItemlistFragment; +import de.podfetcher.fragment.FeedlistFragment; /** Displays a List of FeedItems */ -public class FeedItemlistActivity extends SherlockListActivity { +public class FeedItemlistActivity extends SherlockFragmentActivity { private static final String TAG = "FeedItemlistActivity"; - public static final String EXTRA_SELECTED_FEEDITEM = "extra.de.podfetcher.activity.selected_feeditem"; - private FeedItemlistAdapter fila; private FeedManager manager; /** The feed which the activity displays */ private Feed feed; + private FeedItemlistFragment filf; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + this.setContentView(R.layout.feeditemlist_activity); manager = FeedManager.getInstance(); long feedId = getIntent().getLongExtra(FeedlistFragment.EXTRA_SELECTED_FEED, -1); if(feedId == -1) Log.e(TAG, "Received invalid feed selection."); feed = manager.getFeed(feedId); - - fila = new FeedItemlistAdapter(this, 0, feed.getItems()); - setListAdapter(fila); setTitle(feed.getTitle()); - } - - @Override - protected void onListItemClick(ListView l, View v, int position, long id) { - FeedItem selection = fila.getItem(position); - Intent showItem = new Intent(this, ItemviewActivity.class); - showItem.putExtra(FeedlistFragment.EXTRA_SELECTED_FEED, feed.getId()); - showItem.putExtra(EXTRA_SELECTED_FEEDITEM, selection.getId()); - - startActivity(showItem); + + FragmentManager fragmentManager = getSupportFragmentManager(); + FragmentTransaction fT = fragmentManager.beginTransaction(); + filf = new FeedItemlistFragment(feed.getItems()); + fT.add(R.id.feeditemlistFragment, filf); + fT.commit(); + } public void onButActionClicked(View v) { diff --git a/src/de/podfetcher/activity/ItemviewActivity.java b/src/de/podfetcher/activity/ItemviewActivity.java index 177bff79d..17d00f237 100644 --- a/src/de/podfetcher/activity/ItemviewActivity.java +++ b/src/de/podfetcher/activity/ItemviewActivity.java @@ -19,6 +19,7 @@ import de.podfetcher.feed.Feed; import de.podfetcher.feed.FeedItem; import de.podfetcher.feed.FeedManager; import de.podfetcher.feed.FeedMedia; +import de.podfetcher.fragment.FeedItemlistFragment; import de.podfetcher.fragment.FeedlistFragment; import de.podfetcher.service.DownloadObserver; import de.podfetcher.service.PlaybackService; @@ -99,7 +100,7 @@ public class ItemviewActivity extends SherlockActivity { /** Extracts FeedItem object the activity is supposed to display */ private void extractFeeditem() { long itemId = getIntent().getLongExtra( - FeedItemlistActivity.EXTRA_SELECTED_FEEDITEM, -1); + FeedItemlistFragment.EXTRA_SELECTED_FEEDITEM, -1); long feedId = getIntent().getLongExtra( FeedlistFragment.EXTRA_SELECTED_FEED, -1); if (itemId == -1 || feedId == -1) { diff --git a/src/de/podfetcher/fragment/FeedItemlistFragment.java b/src/de/podfetcher/fragment/FeedItemlistFragment.java new file mode 100644 index 000000000..3081a95c5 --- /dev/null +++ b/src/de/podfetcher/fragment/FeedItemlistFragment.java @@ -0,0 +1,56 @@ +package de.podfetcher.fragment; + +import java.util.ArrayList; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.ListView; + +import com.actionbarsherlock.app.SherlockListFragment; + +import de.podfetcher.activity.ItemviewActivity; +import de.podfetcher.adapter.FeedItemlistAdapter; +import de.podfetcher.feed.FeedItem; +import de.podfetcher.feed.FeedManager; + +public class FeedItemlistFragment extends SherlockListFragment { + private static final String TAG = "FeedItemlistFragment"; + public static final String EXTRA_SELECTED_FEEDITEM = "extra.de.podfetcher.activity.selected_feeditem"; + + private FeedItemlistAdapter fila; + private FeedManager manager; + + /** The feed which the activity displays */ + private ArrayList items; + + public FeedItemlistFragment(ArrayList items) { + super(); + this.items = items; + manager = FeedManager.getInstance(); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + fila = new FeedItemlistAdapter(getActivity(), 0, items); + setListAdapter(fila); + + + } + + @Override + public void onListItemClick(ListView l, View v, int position, long id) { + FeedItem selection = fila.getItem(position); + Intent showItem = new Intent(getActivity(), ItemviewActivity.class); + showItem.putExtra(FeedlistFragment.EXTRA_SELECTED_FEED, selection.getFeed().getId()); + showItem.putExtra(EXTRA_SELECTED_FEEDITEM, selection.getId()); + + startActivity(showItem); + } + + public void onButActionClicked(View v) { + Log.d(TAG, "Button clicked"); + } +}