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;
}
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()

View File

@ -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();