package org.music.player; import org.music.player.R; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; /** * CursorAdapter backed by MediaStore playlists. */ public class TabOrderAdapter extends BaseAdapter implements DragListView.DragAdapter { private final TabOrderActivity mActivity; private final LayoutInflater mInflater; private int[] mTabIds; /** * Create a tab order adapter. * * @param activity The activity that will own this adapter. The activity * will be notified when items have been moved. */ public TabOrderAdapter(TabOrderActivity activity) { mActivity = activity; mInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } /** * Set the array containing the order of tab ids. */ public void setTabIds(int[] ids) { mTabIds = ids; notifyDataSetChanged(); } /** * Returns the array containing the order of tab ids. Do not modify the array. */ public int[] getTabIds() { return mTabIds; } @Override public void move(int from, int to) { if (from == to) return; int[] ids = mTabIds; int tempId = ids[from]; if (from > to) { System.arraycopy(ids, to, ids, to + 1, from - to); } else { System.arraycopy(ids, from + 1, ids, from, to - from); } ids[to] = tempId; notifyDataSetChanged(); mActivity.save(); } @Override public void remove(int position) { // not implemented } @Override public int getCount() { return LibraryPagerAdapter.MAX_ADAPTER_COUNT; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return mTabIds[position]; } @Override public View getView(int position, View convert, ViewGroup parent) { DragTextView text; if (convert == null) { text = (DragTextView)mInflater.inflate(R.layout.tab_order_row, null); } else { text = (DragTextView)convert; } text.setText(LibraryPagerAdapter.TITLES[mTabIds[position]]); return text; } @Override public boolean hasStableIds() { return true; } }