package org.music.player;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.net.Uri;
import android.provider.MediaStore;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
/**
* Framework methods only in Honeycomb or above go here.
*/
@TargetApi(11)
public class CompatHoneycomb {
/**
* Add ActionBar tabs for LibraryActivity.
*
* @param activity The activity to add to.
*/
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();
ab.removeAllTabs();
int[] order = activity.mPagerAdapter.mTabOrder;
int[] titles = LibraryPagerAdapter.TITLES;
for (int i = 0, n = activity.mPagerAdapter.getCount(); i != n; ++i) {
ab.addTab(ab.newTab().setText(titles[order[i]]).setTabListener(listener));
}
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
}
/**
* Call {@link ListView#setFastScrollAlwaysVisible(boolean)} on the given
* ListView with value true.
*/
public static void setFastScrollAlwaysVisible(ListView view)
{
view.setFastScrollAlwaysVisible(true);
}
/**
* Call {@link MenuItem#setActionView(View)} on the given MenuItem.
*/
public static void setActionView(MenuItem item, View view)
{
item.setActionView(view);
}
/**
* Call {@link MenuItem#setShowAsAction(int)} on the given MenuItem.
*/
public static void setShowAsAction(MenuItem item, int mode)
{
item.setShowAsAction(mode);
}
/**
* Select the ActionBar tab at the given position.
*
* @param activity The activity that owns the ActionBar.
* @param position The tab's position.
*/
public static void selectTab(Activity activity, int position)
{
ActionBar ab = activity.getActionBar();
if (position < ab.getTabCount()) {
ab.selectTab(ab.getTabAt(position));
}
}
/**
* Call {@link android.provider.MediaStore.Audio.Genres#getContentUriForAudioId(String,int)}
* on the external volume.
*/
public static Uri getContentUriForAudioId(int id)
{
return MediaStore.Audio.Genres.getContentUriForAudioId("external", id);
}
/**
* Call {@link KeyEvent#hasNoModifiers()}.
*/
public static boolean hasNoModifiers(KeyEvent event)
{
return event.hasNoModifiers();
}
/**
* Call {@link KeyEvent#hasModifiers(int)}.
*/
public static boolean hasModifiers(KeyEvent event, int modifiers)
{
return event.hasModifiers(modifiers);
}
}