diff --git a/src/net/i2p/android/router/loader/AddressEntry.java b/src/net/i2p/android/router/loader/AddressEntry.java index 7c62cf77e4a43ef17764fdeb4ece1cf07e32ae41..a5fee8b9753e7b00a74e325540d493e85e6ed066 100644 --- a/src/net/i2p/android/router/loader/AddressEntry.java +++ b/src/net/i2p/android/router/loader/AddressEntry.java @@ -1,13 +1,21 @@ package net.i2p.android.router.loader; +import net.i2p.data.Destination; + public class AddressEntry { private final String mHostName; + private final Destination mDest; - public AddressEntry(String hostName) { + public AddressEntry(String hostName, Destination dest) { mHostName = hostName; + mDest = dest; } public String getHostName() { return mHostName; } + + public Destination getDestination() { + return mDest; + } } diff --git a/src/net/i2p/android/router/loader/AddressEntryLoader.java b/src/net/i2p/android/router/loader/AddressEntryLoader.java index a513f10b8da32e4d7f143e7d687946ecf1c2d66c..00ed305342ef84e597a6999e94b2c3911d8827d0 100644 --- a/src/net/i2p/android/router/loader/AddressEntryLoader.java +++ b/src/net/i2p/android/router/loader/AddressEntryLoader.java @@ -2,12 +2,12 @@ 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; - +import java.util.Map; +import java.util.Properties; +import java.util.TreeMap; import net.i2p.android.router.util.Util; import net.i2p.client.naming.NamingService; +import net.i2p.data.Destination; import net.i2p.router.RouterContext; import android.content.Context; @@ -35,16 +35,17 @@ public class AddressEntryLoader extends AsyncTaskLoader<List<AddressEntry>> { Util.i("NamingService: " + ns.getName()); // After router shutdown we get nothing... why? List<AddressEntry> ret = new ArrayList<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); - } + Map<String, Destination> names = new TreeMap<String, Destination>(); + + Properties searchProps = new Properties(); + // Needed for HostsTxtNamingService + searchProps.setProperty("file", mBook); + if (mFilter != null && mFilter.length() > 0) + searchProps.setProperty("search", mFilter); + + names.putAll(ns.getEntries(searchProps)); + for (String hostName : names.keySet()) + ret.add(new AddressEntry(hostName, names.get(hostName))); return ret; }