Update the filter for all lists

This commit is contained in:
Christopher Eby 2010-03-12 22:26:29 -06:00
parent 1b1b83127c
commit f1e7c0d425
2 changed files with 15 additions and 4 deletions

View File

@ -123,7 +123,10 @@ public class MediaAdapter extends BaseAdapter implements Filterable {
boolean noFilter = filter == null || filter.length() == 0;
if (noFilter && mLimiterField == -1) {
if (mLastFilter.equals(filter)) {
results.values = mObjects;
results.count = mObjects.size();
} else if (noFilter && mLimiterField == -1) {
results.values = Arrays.asList(mAllObjects);
results.count = mAllObjects.length;
} else {

View File

@ -42,13 +42,14 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Filter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.Toast;
public class SongSelector extends TabActivity implements AdapterView.OnItemClickListener, TextWatcher, View.OnClickListener, TabHost.OnTabChangeListener {
public class SongSelector extends TabActivity implements AdapterView.OnItemClickListener, TextWatcher, View.OnClickListener, TabHost.OnTabChangeListener, Filter.FilterListener {
private TabHost mTabHost;
private TextView mTextFilter;
private View mClearButton;
@ -170,11 +171,11 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
{
}
public void onTextChanged(CharSequence s, int start, int before, int count)
public void onTextChanged(CharSequence text, int start, int before, int count)
{
MediaAdapter adapter = getAdapter(mTabHost.getCurrentTab());
if (adapter != null)
adapter.getFilter().filter(s);
adapter.getFilter().filter(text, this);
}
private void updateLimiterViews()
@ -272,4 +273,11 @@ public class SongSelector extends TabActivity implements AdapterView.OnItemClick
sendSongIntent(intent);
return true;
}
public void onFilterComplete(int count)
{
CharSequence text = mTextFilter.getText();
for (int i = 3; --i != -1; )
getAdapter(i).getFilter().filter(text);
}
}