simplify tab order code
This commit is contained in:
parent
6825310baa
commit
a332396f42
@ -280,22 +280,21 @@ public class LibraryActivity
|
|||||||
switch (limiter.type) {
|
switch (limiter.type) {
|
||||||
case MediaUtils.TYPE_ALBUM:
|
case MediaUtils.TYPE_ALBUM:
|
||||||
setLimiter(MediaUtils.TYPE_ARTIST, limiter.data.toString());
|
setLimiter(MediaUtils.TYPE_ARTIST, limiter.data.toString());
|
||||||
pos = mPagerAdapter.mAlbumsPosition;
|
pos = mPagerAdapter.getMediaTypePosition(limiter.type);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_ARTIST:
|
case MediaUtils.TYPE_ARTIST:
|
||||||
mPagerAdapter.clearLimiter(MediaUtils.TYPE_ARTIST);
|
case MediaUtils.TYPE_ALBARTIST:
|
||||||
pos = mPagerAdapter.mArtistsPosition;
|
case MediaUtils.TYPE_COMPOSER:
|
||||||
break;
|
|
||||||
case MediaUtils.TYPE_GENRE:
|
case MediaUtils.TYPE_GENRE:
|
||||||
mPagerAdapter.clearLimiter(MediaUtils.TYPE_GENRE);
|
mPagerAdapter.clearLimiter(limiter.type);
|
||||||
pos = mPagerAdapter.mGenresPosition;
|
pos = mPagerAdapter.getMediaTypePosition(limiter.type);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_FILE:
|
case MediaUtils.TYPE_FILE:
|
||||||
if(limiter.names.length > 1) {
|
if(limiter.names.length > 1) {
|
||||||
File parentFile = ((File)limiter.data).getParentFile();
|
File parentFile = ((File)limiter.data).getParentFile();
|
||||||
mPagerAdapter.setLimiter(FileSystemAdapter.buildLimiter(parentFile));
|
mPagerAdapter.setLimiter(FileSystemAdapter.buildLimiter(parentFile));
|
||||||
} else {
|
} else {
|
||||||
mPagerAdapter.clearLimiter(MediaUtils.TYPE_FILE);
|
mPagerAdapter.clearLimiter(limiter.type);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -196,22 +196,7 @@ public class LibraryPagerAdapter
|
|||||||
* The current filter text, or null if none.
|
* The current filter text, or null if none.
|
||||||
*/
|
*/
|
||||||
private String mFilter;
|
private String mFilter;
|
||||||
/**
|
|
||||||
* The position of the songs page, or -1 if it is hidden.
|
|
||||||
*/
|
|
||||||
public int mSongsPosition = -1;
|
|
||||||
/**
|
|
||||||
* The position of the albums page, or -1 if it is hidden.
|
|
||||||
*/
|
|
||||||
public int mAlbumsPosition = -1;
|
|
||||||
/**
|
|
||||||
* The position of the artists page, or -1 if it is hidden.
|
|
||||||
*/
|
|
||||||
public int mArtistsPosition = -1;
|
|
||||||
/**
|
|
||||||
* The position of the genres page, or -1 if it is hidden.
|
|
||||||
*/
|
|
||||||
public int mGenresPosition = -1;
|
|
||||||
|
|
||||||
private final ContentObserver mPlaylistObserver = new ContentObserver(null) {
|
private final ContentObserver mPlaylistObserver = new ContentObserver(null) {
|
||||||
@Override
|
@Override
|
||||||
@ -292,39 +277,12 @@ public class LibraryPagerAdapter
|
|||||||
*/
|
*/
|
||||||
public void computeExpansions()
|
public void computeExpansions()
|
||||||
{
|
{
|
||||||
int[] order = mTabOrder;
|
|
||||||
int songsPosition = -1;
|
|
||||||
int albumsPosition = -1;
|
|
||||||
int artistsPosition = -1;
|
|
||||||
int genresPosition = -1;
|
|
||||||
for (int i = mTabCount; --i != -1; ) {
|
|
||||||
switch (order[i]) {
|
|
||||||
case MediaUtils.TYPE_ALBUM:
|
|
||||||
albumsPosition = i;
|
|
||||||
break;
|
|
||||||
case MediaUtils.TYPE_SONG:
|
|
||||||
songsPosition = i;
|
|
||||||
break;
|
|
||||||
case MediaUtils.TYPE_ARTIST:
|
|
||||||
artistsPosition = i;
|
|
||||||
break;
|
|
||||||
case MediaUtils.TYPE_GENRE:
|
|
||||||
genresPosition = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mArtistAdapter != null)
|
if (mArtistAdapter != null)
|
||||||
mArtistAdapter.setExpandable(songsPosition != -1 || albumsPosition != -1);
|
mArtistAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1 || getMediaTypePosition(MediaUtils.TYPE_ALBUM) != -1);
|
||||||
if (mAlbumAdapter != null)
|
if (mAlbumAdapter != null)
|
||||||
mAlbumAdapter.setExpandable(songsPosition != -1);
|
mAlbumAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1);
|
||||||
if (mGenreAdapter != null)
|
if (mGenreAdapter != null)
|
||||||
mGenreAdapter.setExpandable(songsPosition != -1);
|
mGenreAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1);
|
||||||
|
|
||||||
mSongsPosition = songsPosition;
|
|
||||||
mAlbumsPosition = albumsPosition;
|
|
||||||
mArtistsPosition = artistsPosition;
|
|
||||||
mGenresPosition = genresPosition;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -342,22 +300,22 @@ public class LibraryPagerAdapter
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case MediaUtils.TYPE_ARTIST:
|
case MediaUtils.TYPE_ARTIST:
|
||||||
adapter = mArtistAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ARTIST, mPendingArtistLimiter, activity);
|
adapter = mArtistAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ARTIST, mPendingArtistLimiter, activity);
|
||||||
mArtistAdapter.setExpandable(mSongsPosition != -1 || mAlbumsPosition != -1);
|
mArtistAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1 || getMediaTypePosition(MediaUtils.TYPE_ALBUM) != -1);
|
||||||
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_ALBARTIST:
|
case MediaUtils.TYPE_ALBARTIST:
|
||||||
adapter = mAlbArtAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ALBARTIST, mPendingAlbArtLimiter, activity);
|
adapter = mAlbArtAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ALBARTIST, mPendingAlbArtLimiter, activity);
|
||||||
mAlbArtAdapter.setExpandable(mSongsPosition != -1 || mAlbumsPosition != -1);
|
mAlbArtAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1 || getMediaTypePosition(MediaUtils.TYPE_ALBUM) != -1);
|
||||||
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_COMPOSER:
|
case MediaUtils.TYPE_COMPOSER:
|
||||||
adapter = mComposerAdapter = new MediaAdapter(activity, MediaUtils.TYPE_COMPOSER, mPendingComposerLimiter, activity);
|
adapter = mComposerAdapter = new MediaAdapter(activity, MediaUtils.TYPE_COMPOSER, mPendingComposerLimiter, activity);
|
||||||
mComposerAdapter.setExpandable(mSongsPosition != -1 || mAlbumsPosition != -1);
|
mComposerAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1 || getMediaTypePosition(MediaUtils.TYPE_ALBUM) != -1);
|
||||||
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_ALBUM:
|
case MediaUtils.TYPE_ALBUM:
|
||||||
adapter = mAlbumAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ALBUM, mPendingAlbumLimiter, activity);
|
adapter = mAlbumAdapter = new MediaAdapter(activity, MediaUtils.TYPE_ALBUM, mPendingAlbumLimiter, activity);
|
||||||
mAlbumAdapter.setExpandable(mSongsPosition != -1);
|
mAlbumAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1);
|
||||||
mPendingAlbumLimiter = null;
|
mPendingAlbumLimiter = null;
|
||||||
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
header = (DraggableRow)inflater.inflate(R.layout.draggable_row, null);
|
||||||
break;
|
break;
|
||||||
@ -371,7 +329,7 @@ public class LibraryPagerAdapter
|
|||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_GENRE:
|
case MediaUtils.TYPE_GENRE:
|
||||||
adapter = mGenreAdapter = new MediaAdapter(activity, MediaUtils.TYPE_GENRE, null, activity);
|
adapter = mGenreAdapter = new MediaAdapter(activity, MediaUtils.TYPE_GENRE, null, activity);
|
||||||
mGenreAdapter.setExpandable(mSongsPosition != -1);
|
mGenreAdapter.setExpandable(getMediaTypePosition(MediaUtils.TYPE_SONG) != -1);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_FILE:
|
case MediaUtils.TYPE_FILE:
|
||||||
adapter = mFilesAdapter = new FileSystemAdapter(activity, mPendingFileLimiter);
|
adapter = mFilesAdapter = new FileSystemAdapter(activity, mPendingFileLimiter);
|
||||||
@ -413,12 +371,8 @@ public class LibraryPagerAdapter
|
|||||||
public int getItemPosition(Object item)
|
public int getItemPosition(Object item)
|
||||||
{
|
{
|
||||||
int type = (Integer)((ListView)item).getTag();
|
int type = (Integer)((ListView)item).getTag();
|
||||||
int[] order = mTabOrder;
|
int pos = getMediaTypePosition(type);
|
||||||
for (int i = mTabCount; --i != -1; ) {
|
return pos == -1 ? POSITION_NONE : pos;
|
||||||
if (order[i] == type)
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
return POSITION_NONE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -579,7 +533,7 @@ public class LibraryPagerAdapter
|
|||||||
loadSortOrder(mSongAdapter);
|
loadSortOrder(mSongAdapter);
|
||||||
requestRequery(mSongAdapter);
|
requestRequery(mSongAdapter);
|
||||||
}
|
}
|
||||||
tab = mSongsPosition;
|
tab = getMediaTypePosition(MediaUtils.TYPE_SONG);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_ARTIST:
|
case MediaUtils.TYPE_ARTIST:
|
||||||
case MediaUtils.TYPE_ALBARTIST:
|
case MediaUtils.TYPE_ALBARTIST:
|
||||||
@ -598,9 +552,9 @@ public class LibraryPagerAdapter
|
|||||||
loadSortOrder(mSongAdapter);
|
loadSortOrder(mSongAdapter);
|
||||||
requestRequery(mSongAdapter);
|
requestRequery(mSongAdapter);
|
||||||
}
|
}
|
||||||
tab = mAlbumsPosition;
|
tab = getMediaTypePosition(MediaUtils.TYPE_ALBUM);
|
||||||
if (tab == -1)
|
if (tab == -1)
|
||||||
tab = mSongsPosition;
|
tab = getMediaTypePosition(MediaUtils.TYPE_SONG);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_GENRE:
|
case MediaUtils.TYPE_GENRE:
|
||||||
if (mArtistAdapter == null) {
|
if (mArtistAdapter == null) {
|
||||||
@ -638,11 +592,11 @@ public class LibraryPagerAdapter
|
|||||||
loadSortOrder(mSongAdapter);
|
loadSortOrder(mSongAdapter);
|
||||||
requestRequery(mSongAdapter);
|
requestRequery(mSongAdapter);
|
||||||
}
|
}
|
||||||
tab = mArtistsPosition;
|
tab = getMediaTypePosition(MediaUtils.TYPE_ARTIST);
|
||||||
if (tab == -1)
|
if (tab == -1)
|
||||||
tab = mAlbumsPosition;
|
tab = getMediaTypePosition(MediaUtils.TYPE_ALBUM);
|
||||||
if (tab == -1)
|
if (tab == -1)
|
||||||
tab = mSongsPosition;
|
tab = getMediaTypePosition(MediaUtils.TYPE_SONG);
|
||||||
break;
|
break;
|
||||||
case MediaUtils.TYPE_FILE:
|
case MediaUtils.TYPE_FILE:
|
||||||
if (mFilesAdapter == null) {
|
if (mFilesAdapter == null) {
|
||||||
@ -686,6 +640,20 @@ public class LibraryPagerAdapter
|
|||||||
return current.getLimiter();
|
return current.getLimiter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the tab position of given media type, -1 if not visible.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public int getMediaTypePosition(int type) {
|
||||||
|
int[] order = mTabOrder;
|
||||||
|
for (int i = mTabCount; --i != -1; ) {
|
||||||
|
if (order[i] == type)
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Run on query on the adapter passed in obj.
|
* Run on query on the adapter passed in obj.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user