summaryrefslogtreecommitdiff
path: root/src/de/podfetcher/activity/PodfetcherActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/podfetcher/activity/PodfetcherActivity.java')
-rw-r--r--src/de/podfetcher/activity/PodfetcherActivity.java157
1 files changed, 61 insertions, 96 deletions
diff --git a/src/de/podfetcher/activity/PodfetcherActivity.java b/src/de/podfetcher/activity/PodfetcherActivity.java
index 7a70203b7..3feab2c10 100644
--- a/src/de/podfetcher/activity/PodfetcherActivity.java
+++ b/src/de/podfetcher/activity/PodfetcherActivity.java
@@ -7,7 +7,10 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
+import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -34,10 +37,8 @@ public class PodfetcherActivity extends SherlockFragmentActivity {
private static final String TAG = "PodfetcherActivity";
private FeedManager manager;
-
- private FeedlistFragment feedlist;
- ItemlistFragment unreadList;
-
+ private ViewPager viewpager;
+ private MainPagerAdapter pagerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -47,38 +48,13 @@ public class PodfetcherActivity extends SherlockFragmentActivity {
setContentView(R.layout.main);
// Set up tabs
ActionBar actionBar = getSupportActionBar();
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
+ //actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowTitleEnabled(false);
-
- Tab tab = actionBar
- .newTab()
- .setText(getText(R.string.feeds_label).toString())
- .setTabListener(
- new TabListener<FeedlistFragment>(this, getText(
- R.string.feeds_label).toString(),
- FeedlistFragment.class));
-
- actionBar.addTab(tab);
-
- tab = actionBar
- .newTab()
- .setText(getText(R.string.new_label).toString())
- .setTabListener(
- new TabListener<UnreadItemlistFragment>(this, getText(
- R.string.new_label).toString(),
- UnreadItemlistFragment.class));
- actionBar.addTab(tab);
-
- tab = actionBar
- .newTab()
- .setText(getText(R.string.queue_label).toString())
- .setTabListener(
- new TabListener<QueueFragment>(this, getText(
- R.string.queue_label).toString(),
- QueueFragment.class));
- actionBar.addTab(tab);
+ pagerAdapter = new MainPagerAdapter(getSupportFragmentManager());
+ viewpager = (ViewPager) findViewById(R.id.viewpager);
+ viewpager.setAdapter(pagerAdapter);
}
-
+
@Override
protected void onPause() {
super.onPause();
@@ -94,7 +70,7 @@ public class PodfetcherActivity extends SherlockFragmentActivity {
filter.addAction(DownloadRequester.ACTION_DOWNLOAD_QUEUED);
registerReceiver(contentUpdate, filter);
}
-
+
private BroadcastReceiver contentUpdate = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -102,99 +78,88 @@ public class PodfetcherActivity extends SherlockFragmentActivity {
updateProgressBarVisibility();
}
};
-
+
private void updateProgressBarVisibility() {
- if (DownloadService.isRunning && DownloadRequester.getInstance().isDownloadingFeeds()) {
+ if (DownloadService.isRunning
+ && DownloadRequester.getInstance().isDownloadingFeeds()) {
setSupportProgressBarIndeterminateVisibility(true);
} else {
setSupportProgressBarIndeterminateVisibility(false);
}
invalidateOptionsMenu();
}
-
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- switch(item.getItemId()) {
- case R.id.add_feed:
- startActivity(new Intent(this, AddFeedActivity.class));
- return true;
- case R.id.all_feed_refresh:
- manager.refreshAllFeeds(this);
- return true;
- case R.id.show_downloads:
- startActivity(new Intent(this, DownloadActivity.class));
- return true;
- case R.id.show_preferences:
- startActivity(new Intent(this, PreferenceActivity.class));
- return true;
- case R.id.show_player:
- startActivity(new Intent(this, MediaplayerActivity.class));
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
+ switch (item.getItemId()) {
+ case R.id.add_feed:
+ startActivity(new Intent(this, AddFeedActivity.class));
+ return true;
+ case R.id.all_feed_refresh:
+ manager.refreshAllFeeds(this);
+ return true;
+ case R.id.show_downloads:
+ startActivity(new Intent(this, DownloadActivity.class));
+ return true;
+ case R.id.show_preferences:
+ startActivity(new Intent(this, PreferenceActivity.class));
+ return true;
+ case R.id.show_player:
+ startActivity(new Intent(this, MediaplayerActivity.class));
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
}
-
+
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem refreshAll = menu.findItem(R.id.all_feed_refresh);
- if (DownloadService.isRunning && DownloadRequester.getInstance().isDownloadingFeeds()) {
+ if (DownloadService.isRunning
+ && DownloadRequester.getInstance().isDownloadingFeeds()) {
refreshAll.setVisible(false);
} else {
refreshAll.setVisible(true);
}
return true;
}
-
+
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = new MenuInflater(this);
- inflater.inflate(R.menu.podfetcher, menu);
- return true;
+ inflater.inflate(R.menu.podfetcher, menu);
+ return true;
}
- /** TabListener for navigating between the main lists. */
- private class TabListener<T extends Fragment> implements
- ActionBar.TabListener {
-
- private final Activity activity;
- private final String tag;
- private final Class<T> fClass;
- private Fragment fragment;
+ public static class MainPagerAdapter extends FragmentPagerAdapter {
+ private static final int NUM_ITEMS = 3;
- public TabListener(Activity activity, String tag, Class<T> fClass) {
- this.activity = activity;
- this.tag = tag;
- this.fClass = fClass;
- }
+ private static final int POS_FEEDLIST = 0;
+ private static final int POS_NEW_ITEMS = 1;
+ private static final int POS_QUEUE = 2;
- @SuppressWarnings("unused")
- public TabListener(Activity activity, String tag, Fragment fragment,
- Class<T> fClass) {
- super();
- this.activity = activity;
- this.tag = tag;
- this.fragment = fragment;
- this.fClass = fClass;
+ public MainPagerAdapter(FragmentManager fm) {
+ super(fm);
}
- public void onTabSelected(Tab tab, FragmentTransaction ft) {
- if (fragment == null) {
- fragment = Fragment.instantiate(activity, fClass.getName());
- ft.replace(R.id.main_fragment, fragment);
- } else {
- ft.attach(fragment);
+ @Override
+ public Fragment getItem(int position) {
+ switch (position) {
+ case POS_FEEDLIST:
+ return new FeedlistFragment();
+ case POS_NEW_ITEMS:
+ return new UnreadItemlistFragment();
+ case POS_QUEUE:
+ return new QueueFragment();
+ default:
+ return null;
}
}
- public void onTabUnselected(Tab tab, FragmentTransaction ft) {
- if (fragment != null) {
- ft.detach(fragment);
- }
+ @Override
+ public int getCount() {
+ return NUM_ITEMS;
}
- public void onTabReselected(Tab tab, FragmentTransaction ft) {
- // Do nothing
- }
}
}