From 5001182aee7bcb3a1f5cacee243d45d8b403ea0f Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Sun, 17 Jun 2012 12:51:14 +0200 Subject: Feeditems can now be marked as read or unread --- src/de/podfetcher/activity/PodfetcherActivity.java | 61 ++++++++++++++-------- src/de/podfetcher/adapter/FeedItemlistAdapter.java | 6 +++ .../podfetcher/fragment/FeedItemlistFragment.java | 13 +++++ 3 files changed, 59 insertions(+), 21 deletions(-) (limited to 'src/de') diff --git a/src/de/podfetcher/activity/PodfetcherActivity.java b/src/de/podfetcher/activity/PodfetcherActivity.java index ee8eee79d..6487c018b 100644 --- a/src/de/podfetcher/activity/PodfetcherActivity.java +++ b/src/de/podfetcher/activity/PodfetcherActivity.java @@ -12,55 +12,74 @@ import com.actionbarsherlock.app.SherlockFragmentActivity; import de.podfetcher.R; import de.podfetcher.fragment.FeedlistFragment; - - public class PodfetcherActivity extends SherlockFragmentActivity { - private static final String TAG = "PodfetcherActivity"; - + private static final String TAG = "PodfetcherActivity"; + private FeedlistFragment feedlist; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); setContentView(R.layout.main); - + // Set up tabs ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayShowTitleEnabled(false); - Tab tab = actionBar.newTab() + Tab tab = actionBar + .newTab() .setText(getText(R.string.feeds_label).toString()) - .setTabListener(new TabListener( - this, getText(R.string.feeds_label).toString(), FeedlistFragment.class)); - + .setTabListener( + new TabListener(this, getText( + R.string.feeds_label).toString(), + FeedlistFragment.class)); + actionBar.addTab(tab); - tab = actionBar.newTab() + tab = actionBar + .newTab() .setText(getText(R.string.new_label).toString()) - .setTabListener(new TabListener( - this, getText(R.string.new_label).toString(), FeedlistFragment.class)); + .setTabListener( + new TabListener(this, getText( + R.string.new_label).toString(), + FeedlistFragment.class)); actionBar.addTab(tab); - } - + } /** TabListener for navigating between the main lists. */ - private class TabListener implements ActionBar.TabListener { + private class TabListener implements + ActionBar.TabListener { private final Activity activity; private final String tag; private final Class fClass; private Fragment fragment; - + private boolean attachedOnce = false; + public TabListener(Activity activity, String tag, Class fClass) { this.activity = activity; this.tag = tag; this.fClass = fClass; } + @SuppressWarnings("unused") + public TabListener(Activity activity, String tag, Fragment fragment, + Class fClass) { + super(); + this.activity = activity; + this.tag = tag; + this.fragment = fragment; + this.fClass = fClass; + } + public void onTabSelected(Tab tab, FragmentTransaction ft) { if (fragment == null) { fragment = Fragment.instantiate(activity, fClass.getName()); ft.replace(R.id.main_fragment, fragment); + attachedOnce = true; + } else if (!attachedOnce) { + ft.replace(R.id.main_fragment, fragment); + attachedOnce = true; } else { ft.attach(fragment); } @@ -73,7 +92,7 @@ public class PodfetcherActivity extends SherlockFragmentActivity { } public void onTabReselected(Tab tab, FragmentTransaction ft) { - // Do nothing + // Do nothing } } } diff --git a/src/de/podfetcher/adapter/FeedItemlistAdapter.java b/src/de/podfetcher/adapter/FeedItemlistAdapter.java index e28a77d1c..975ffc8dc 100644 --- a/src/de/podfetcher/adapter/FeedItemlistAdapter.java +++ b/src/de/podfetcher/adapter/FeedItemlistAdapter.java @@ -13,6 +13,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.content.Context; +import android.graphics.Typeface; public class FeedItemlistAdapter extends ArrayAdapter { private OnClickListener onButActionClicked; @@ -42,6 +43,11 @@ public class FeedItemlistAdapter extends ArrayAdapter { } holder.title.setText(item.getTitle()); + if (!item.isRead()) { + holder.title.setTypeface(Typeface.DEFAULT_BOLD); + } else { + holder.title.setTypeface(Typeface.DEFAULT); + } holder.size.setText(Converter.byteToString(item.getMedia().getSize())); holder.butAction.setOnClickListener(onButActionClicked); return convertView; diff --git a/src/de/podfetcher/fragment/FeedItemlistFragment.java b/src/de/podfetcher/fragment/FeedItemlistFragment.java index caafdccaa..e14da78cd 100644 --- a/src/de/podfetcher/fragment/FeedItemlistFragment.java +++ b/src/de/podfetcher/fragment/FeedItemlistFragment.java @@ -119,6 +119,12 @@ public class FeedItemlistFragment extends SherlockListFragment { } else { menu.findItem(R.id.cancel_download_item).setVisible(true); } + + if (selectedItem.isRead()) { + menu.findItem(R.id.mark_unread_item).setVisible(true); + } else { + menu.findItem(R.id.mark_read_item).setVisible(true); + } return true; @@ -143,8 +149,15 @@ public class FeedItemlistFragment extends SherlockListFragment { requester.cancelDownload(getSherlockActivity(), selectedItem .getMedia().getDownloadId()); break; + case R.id.mark_read_item: + selectedItem.setRead(true); + break; + case R.id.mark_unread_item: + selectedItem.setRead(false); + break; } + fila.notifyDataSetChanged(); mode.finish(); return true; } -- cgit v1.2.3