I2P Address: [http://git.idk.i2p]

Skip to content
Snippets Groups Projects
Commit 76f9259e authored by str4d's avatar str4d
Browse files

Filter addressbook in the Loader

parent d437f451
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,7 @@ import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
......@@ -36,6 +37,7 @@ public class AddressbookFragment extends ListFragment implements
OnAddressSelectedListener mCallback;
private AddressEntryAdapter mAdapter;
private String mBook;
private String mCurFilter;
// Container Activity must implement this interface
public interface OnAddressSelectedListener {
......@@ -128,7 +130,9 @@ public class AddressbookFragment extends ListFragment implements
}
public void filterAddresses(String query) {
mAdapter.getFilter().filter(query);
mCurFilter = !TextUtils.isEmpty(query) ? query : null;
getLoaderManager().restartLoader("private".equals(mBook) ?
PRIVATE_LOADER_ID : ROUTER_LOADER_ID, null, this);
}
// Duplicated from I2PFragmentBase because this extends ListFragment
......@@ -140,7 +144,7 @@ public class AddressbookFragment extends ListFragment implements
public Loader<List<AddressEntry>> onCreateLoader(int id, Bundle args) {
return new AddressEntryLoader(getActivity(),
getRouterContext(), mBook);
getRouterContext(), mBook, mCurFilter);
}
public void onLoadFinished(Loader<List<AddressEntry>> loader,
......
......@@ -2,6 +2,7 @@ package net.i2p.android.router.loader;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import java.util.TreeSet;
......@@ -16,12 +17,15 @@ public class AddressEntryLoader extends AsyncTaskLoader<List<AddressEntry>> {
private static final String DEFAULT_NS = "BlockfileNamingService";
private RouterContext mRContext;
private String mBook;
private String mFilter;
private List<AddressEntry> mData;
public AddressEntryLoader(Context context, RouterContext rContext, String book) {
public AddressEntryLoader(Context context, RouterContext rContext,
String book, String filter) {
super(context);
mRContext = rContext;
mBook = book;
mFilter = filter;
}
@Override
......@@ -34,6 +38,10 @@ public class AddressEntryLoader extends AsyncTaskLoader<List<AddressEntry>> {
Set<String> names = new TreeSet<String>();
names.addAll(ns.getNames());
for (String hostName : names) {
if (mFilter != null && !hostName.toLowerCase(Locale.US).contains(
mFilter.toLowerCase(Locale.US)))
continue;
AddressEntry name = new AddressEntry(hostName);
ret.add(name);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment