From 026464754ac1117743c08c743ee60413784e848e Mon Sep 17 00:00:00 2001 From: Christopher Eby Date: Tue, 21 Feb 2012 03:22:24 -0600 Subject: [PATCH] Implement Honeycomb tab listener more safely Dalvik complains about CompatHoneycomb in Gingerbread and below. Seems harmless, but I'll fix it just to be safe. --- src/org/kreed/vanilla/CompatHoneycomb.java | 53 ++++++++----------- .../kreed/vanilla/LibraryPagerAdapter.java | 2 +- 2 files changed, 24 insertions(+), 31 deletions(-) diff --git a/src/org/kreed/vanilla/CompatHoneycomb.java b/src/org/kreed/vanilla/CompatHoneycomb.java index fcb3f384..a4167e58 100644 --- a/src/org/kreed/vanilla/CompatHoneycomb.java +++ b/src/org/kreed/vanilla/CompatHoneycomb.java @@ -26,8 +26,8 @@ import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.FragmentTransaction; -import android.provider.MediaStore; import android.net.Uri; +import android.provider.MediaStore; import android.view.MenuItem; import android.view.View; import android.widget.ListView; @@ -35,26 +35,35 @@ import android.widget.ListView; /** * Framework methods only in Honeycomb or above go here. */ -public class CompatHoneycomb implements ActionBar.TabListener { - /** - * The LibraryActivity to callback to when a tab is selected. - */ - private final LibraryActivity mActivity; - - private CompatHoneycomb(LibraryActivity activity) - { - mActivity = activity; - } - +public class CompatHoneycomb { /** * Add ActionBar tabs for LibraryActivity. * * @param activity The activity to add to. */ - public static void addActionBarTabs(LibraryActivity activity) + public static void addActionBarTabs(final LibraryActivity activity) { + ActionBar.TabListener listener = new ActionBar.TabListener() { + private final LibraryActivity mActivity = activity; + + @Override + public void onTabReselected(Tab tab, FragmentTransaction ft) + { + } + + @Override + public void onTabSelected(Tab tab, FragmentTransaction ft) + { + mActivity.mViewPager.setCurrentItem(tab.getPosition()); + } + + @Override + public void onTabUnselected(Tab tab, FragmentTransaction ft) + { + } + }; + ActionBar ab = activity.getActionBar(); - CompatHoneycomb listener = new CompatHoneycomb(activity); ab.addTab(ab.newTab() .setText(R.string.artists) .setTabListener(listener)); @@ -112,22 +121,6 @@ public class CompatHoneycomb implements ActionBar.TabListener { ab.selectTab(ab.getTabAt(position)); } - @Override - public void onTabReselected(Tab tab, FragmentTransaction ft) - { - } - - @Override - public void onTabSelected(Tab tab, FragmentTransaction ft) - { - mActivity.mViewPager.setCurrentItem(tab.getPosition()); - } - - @Override - public void onTabUnselected(Tab tab, FragmentTransaction ft) - { - } - /** * Call {@link android.provider.MediaStore.Audio.Genres#getContentUriForAudioId(String,int)} * on the external volume. diff --git a/src/org/kreed/vanilla/LibraryPagerAdapter.java b/src/org/kreed/vanilla/LibraryPagerAdapter.java index 9277513d..0200399e 100644 --- a/src/org/kreed/vanilla/LibraryPagerAdapter.java +++ b/src/org/kreed/vanilla/LibraryPagerAdapter.java @@ -78,7 +78,7 @@ public class LibraryPagerAdapter extends PagerAdapter implements Handler.Callbac /** * The playlist adapter instance, also stored at mAdapters[3]. */ - private MediaAdapter mPlaylistAdapter; + MediaAdapter mPlaylistAdapter; /** * The file adapter instance, also stored at mAdapters[5]. */