diff --git a/src/org/kreed/vanilla/MediaAdapter.java b/src/org/kreed/vanilla/MediaAdapter.java index bb61fcce..47fb1f96 100644 --- a/src/org/kreed/vanilla/MediaAdapter.java +++ b/src/org/kreed/vanilla/MediaAdapter.java @@ -149,10 +149,13 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider { return mExpandable; } - public final void setLimiter(String[] limiter) + public final void setLimiter(String[] limiter, boolean async) { mLimiter = limiter; - getFilter().filter(mConstraint); + if (async) + getFilter().filter(mConstraint); + else + changeCursor(runQuery(mConstraint)); } public final String[] getLimiter() diff --git a/src/org/kreed/vanilla/SongSelector.java b/src/org/kreed/vanilla/SongSelector.java index eb7b881b..7499874e 100644 --- a/src/org/kreed/vanilla/SongSelector.java +++ b/src/org/kreed/vanilla/SongSelector.java @@ -163,10 +163,11 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe { String[] limiter = view.getLimiter(); - for (int i = limiter.length; i != 3; ++i) - getAdapter(i).setLimiter(limiter); - + getAdapter(limiter.length).setLimiter(limiter, false); mTabHost.setCurrentTab(limiter.length); + + for (int i = limiter.length + 1; i < 3; ++i) + getAdapter(i).setLimiter(limiter, true); } public void onItemClick(AdapterView list, View view, int pos, long id) @@ -253,7 +254,7 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe for (int j = 3; --j != -1; ) { MediaAdapter adapter = getAdapter(j); if (adapter.getLimiterLength() > i) - adapter.setLimiter(limiter); + adapter.setLimiter(limiter, true); } updateLimiterViews();