From dfd93e387f51b2cd505491e05ac5440b17351211 Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Thu, 12 Jun 2014 08:02:00 +0200 Subject: convert sort selection to actionprovider --- .../sorting/ComparatorUserInterface.java | 122 --------------------- 1 file changed, 122 deletions(-) delete mode 100644 main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java (limited to 'main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java') diff --git a/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java b/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java deleted file mode 100644 index 7f10353..0000000 --- a/main/src/cgeo/geocaching/sorting/ComparatorUserInterface.java +++ /dev/null @@ -1,122 +0,0 @@ -package cgeo.geocaching.sorting; - -import cgeo.geocaching.R; -import cgeo.geocaching.utils.Log; - -import rx.functions.Action1; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.DialogInterface; -import android.content.res.Resources; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; - -public class ComparatorUserInterface { - private final Activity activity; - private final ArrayList registry; - private final Resources res; - - private static final class ComparatorEntry { - private final String name; - private final Class cacheComparator; - - public ComparatorEntry(final String name, final Class cacheComparator) { - this.name = name; - this.cacheComparator = cacheComparator; - } - - @Override - public String toString() { - return name; - } - } - - public ComparatorUserInterface(final Activity activity) { - this.activity = activity; - res = activity.getResources(); - - registry = new ArrayList(20); - - register(R.string.caches_sort_distance, null); - register(R.string.caches_sort_date_hidden, DateComparator.class); - register(R.string.caches_sort_difficulty, DifficultyComparator.class); - register(R.string.caches_sort_finds, FindsComparator.class); - register(R.string.caches_sort_geocode, GeocodeComparator.class); - register(R.string.caches_sort_inventory, InventoryComparator.class); - register(R.string.caches_sort_name, NameComparator.class); - register(R.string.caches_sort_favorites, PopularityComparator.class); - register(R.string.caches_sort_favorites_ratio, PopularityRatioComparator.class); - register(R.string.caches_sort_rating, RatingComparator.class); - register(R.string.caches_sort_size, SizeComparator.class); - register(R.string.caches_sort_state, StateComparator.class); - register(R.string.caches_sort_storage, StorageTimeComparator.class); - register(R.string.caches_sort_terrain, TerrainComparator.class); - register(R.string.caches_sort_date_logged, VisitComparator.class); - register(R.string.caches_sort_vote, VoteComparator.class); - - // sort the menu labels alphabetically for easier reading - Collections.sort(registry, new Comparator() { - - @Override - public int compare(ComparatorEntry lhs, ComparatorEntry rhs) { - return lhs.name.compareToIgnoreCase(rhs.name); - } - }); - } - - private void register(final int resourceId, Class comparatorClass) { - registry.add(new ComparatorEntry(res.getString(resourceId), comparatorClass)); - } - - public void selectComparator(final CacheComparator current, final Action1 runAfterwards) { - final AlertDialog.Builder builder = new AlertDialog.Builder(activity); - builder.setTitle(R.string.caches_sort_title); - - // adapter doesn't work correctly here, therefore using the string array based method - final String[] items = new String[registry.size()]; - for (int i = 0; i < items.length; i++) { - items[i] = registry.get(i).name; - } - builder.setSingleChoiceItems(items, getCurrentIndex(current), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int itemIndex) { - ComparatorEntry entry = registry.get(itemIndex); - try { - if (entry.cacheComparator == null) { - runAfterwards.call(null); - } - else { - CacheComparator comparator = entry.cacheComparator.newInstance(); - runAfterwards.call(comparator); - } - } catch (InstantiationException e) { - Log.e("selectComparator", e); - } catch (IllegalAccessException e) { - Log.e("selectComparator", e); - } - dialog.dismiss(); - } - }); - - builder.create().show(); - } - - private int getCurrentIndex(final CacheComparator current) { - for (int index = 0; index < registry.size(); index++) { - final ComparatorEntry entry = registry.get(index); - if (current == null) { - if (entry.cacheComparator == null) { - return index; - } - } - else if (current.getClass().equals(entry.cacheComparator)) { - return index; - } - } - return -1; - } - -} -- cgit v1.1