Limit the view being expanded to synchronously

The old array adapter prevented a flicker from many songs being displayed to just a few songs being dispalyed after expanding an item. This restores that behavior.
This commit is contained in:
Christopher Eby 2010-04-03 11:17:18 -05:00
parent 126760692f
commit 35ba1a0704
2 changed files with 10 additions and 6 deletions

View File

@ -149,10 +149,13 @@ public class MediaAdapter extends CursorAdapter implements FilterQueryProvider {
return mExpandable; return mExpandable;
} }
public final void setLimiter(String[] limiter) public final void setLimiter(String[] limiter, boolean async)
{ {
mLimiter = limiter; mLimiter = limiter;
getFilter().filter(mConstraint); if (async)
getFilter().filter(mConstraint);
else
changeCursor(runQuery(mConstraint));
} }
public final String[] getLimiter() public final String[] getLimiter()

View File

@ -163,10 +163,11 @@ public class SongSelector extends Dialog implements AdapterView.OnItemClickListe
{ {
String[] limiter = view.getLimiter(); String[] limiter = view.getLimiter();
for (int i = limiter.length; i != 3; ++i) getAdapter(limiter.length).setLimiter(limiter, false);
getAdapter(i).setLimiter(limiter);
mTabHost.setCurrentTab(limiter.length); 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) 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; ) { for (int j = 3; --j != -1; ) {
MediaAdapter adapter = getAdapter(j); MediaAdapter adapter = getAdapter(j);
if (adapter.getLimiterLength() > i) if (adapter.getLimiterLength() > i)
adapter.setLimiter(limiter); adapter.setLimiter(limiter, true);
} }
updateLimiterViews(); updateLimiterViews();