Fix sortign favorites
This commit is contained in:
parent
42705f7a5a
commit
6822805739
2 changed files with 56 additions and 50 deletions
|
@ -477,13 +477,17 @@ public class FavouritesDbHelper {
|
||||||
String s2 = o2.getName();
|
String s2 = o2.getName();
|
||||||
int i1 = Algorithms.extractIntegerNumber(s1);
|
int i1 = Algorithms.extractIntegerNumber(s1);
|
||||||
int i2 = Algorithms.extractIntegerNumber(s2);
|
int i2 = Algorithms.extractIntegerNumber(s2);
|
||||||
if(i1 == i2) {
|
String ot1 = Algorithms.extractIntegerPrefix(s1);
|
||||||
String ot1 = Algorithms.extractIntegerPrefix(s1);
|
String ot2 = Algorithms.extractIntegerPrefix(s2);
|
||||||
String ot2 = Algorithms.extractIntegerPrefix(s2);
|
int res = collator.compare(ot1, ot2);
|
||||||
return collator.compare(ot1, ot2);
|
if (res == 0) {
|
||||||
|
res = i1 - i2;
|
||||||
}
|
}
|
||||||
|
if (res == 0) {
|
||||||
return i1 - i2;
|
res = collator.compare(s1, s2);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return favoritesComparator;
|
return favoritesComparator;
|
||||||
|
|
|
@ -1,5 +1,37 @@
|
||||||
package net.osmand.plus.activities;
|
package net.osmand.plus.activities;
|
||||||
|
|
||||||
|
import gnu.trove.list.array.TIntArrayList;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.text.MessageFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import net.osmand.access.AccessibleToast;
|
||||||
|
import net.osmand.data.FavouritePoint;
|
||||||
|
import net.osmand.data.LatLon;
|
||||||
|
import net.osmand.data.PointDescription;
|
||||||
|
import net.osmand.plus.FavouritesDbHelper;
|
||||||
|
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
||||||
|
import net.osmand.plus.GPXUtilities;
|
||||||
|
import net.osmand.plus.GPXUtilities.GPXFile;
|
||||||
|
import net.osmand.plus.IconsCache;
|
||||||
|
import net.osmand.plus.OsmAndFormatter;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.OsmandSettings;
|
||||||
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.TargetPointsHelper;
|
||||||
|
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||||
|
import net.osmand.plus.dialogs.DirectionsDialogs;
|
||||||
|
import net.osmand.plus.helpers.AndroidUiHelper;
|
||||||
|
import net.osmand.plus.helpers.ColorDialogs;
|
||||||
|
import net.osmand.plus.myplaces.FavoritesActivity;
|
||||||
|
import net.osmand.util.MapUtils;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
|
@ -37,39 +69,6 @@ import android.widget.Spinner;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import net.osmand.access.AccessibleToast;
|
|
||||||
import net.osmand.data.FavouritePoint;
|
|
||||||
import net.osmand.data.LatLon;
|
|
||||||
import net.osmand.data.PointDescription;
|
|
||||||
import net.osmand.plus.FavouritesDbHelper;
|
|
||||||
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
|
|
||||||
import net.osmand.plus.GPXUtilities;
|
|
||||||
import net.osmand.plus.GPXUtilities.GPXFile;
|
|
||||||
import net.osmand.plus.IconsCache;
|
|
||||||
import net.osmand.plus.OsmAndFormatter;
|
|
||||||
import net.osmand.plus.OsmandApplication;
|
|
||||||
import net.osmand.plus.OsmandSettings;
|
|
||||||
import net.osmand.plus.R;
|
|
||||||
import net.osmand.plus.TargetPointsHelper;
|
|
||||||
import net.osmand.plus.base.FavoriteImageDrawable;
|
|
||||||
import net.osmand.plus.dialogs.DirectionsDialogs;
|
|
||||||
import net.osmand.plus.helpers.AndroidUiHelper;
|
|
||||||
import net.osmand.plus.helpers.ColorDialogs;
|
|
||||||
import net.osmand.plus.myplaces.FavoritesActivity;
|
|
||||||
import net.osmand.util.MapUtils;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.text.MessageFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import gnu.trove.list.array.TIntArrayList;
|
|
||||||
|
|
||||||
|
|
||||||
public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
||||||
|
|
||||||
|
@ -605,6 +604,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
||||||
|
|
||||||
class FavouritesAdapter extends OsmandBaseExpandableListAdapter implements Filterable {
|
class FavouritesAdapter extends OsmandBaseExpandableListAdapter implements Filterable {
|
||||||
|
|
||||||
|
private static final boolean showOptionsButton = false;
|
||||||
Map<FavoriteGroup, List<FavouritePoint>> favoriteGroups = new LinkedHashMap<FavoriteGroup, List<FavouritePoint>>();
|
Map<FavoriteGroup, List<FavouritePoint>> favoriteGroups = new LinkedHashMap<FavoriteGroup, List<FavouritePoint>>();
|
||||||
List<FavoriteGroup> groups = new ArrayList<FavoriteGroup>();
|
List<FavoriteGroup> groups = new ArrayList<FavoriteGroup>();
|
||||||
Filter myFilter;
|
Filter myFilter;
|
||||||
|
@ -764,17 +764,19 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment {
|
||||||
final FavouritePoint model = (FavouritePoint) getChild(groupPosition, childPosition);
|
final FavouritePoint model = (FavouritePoint) getChild(groupPosition, childPosition);
|
||||||
row.setTag(model);
|
row.setTag(model);
|
||||||
|
|
||||||
ImageView options = (ImageView) row.findViewById(R.id.options);
|
if (showOptionsButton) {
|
||||||
options.setFocusable(false);
|
ImageView options = (ImageView) row.findViewById(R.id.options);
|
||||||
options.setImageDrawable(getMyApplication().getIconsCache()
|
options.setFocusable(false);
|
||||||
.getContentIcon(R.drawable.ic_overflow_menu_white));
|
options.setImageDrawable(getMyApplication().getIconsCache().getContentIcon(
|
||||||
options.setVisibility(View.VISIBLE);
|
R.drawable.ic_overflow_menu_white));
|
||||||
options.setOnClickListener(new View.OnClickListener() {
|
options.setVisibility(View.VISIBLE);
|
||||||
@Override
|
options.setOnClickListener(new View.OnClickListener() {
|
||||||
public void onClick(View v) {
|
@Override
|
||||||
showItemPopupOptionsMenu(model, v);
|
public void onClick(View v) {
|
||||||
}
|
showItemPopupOptionsMenu(model, v);
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(), model.getColor(), 0));
|
icon.setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(), model.getColor(), 0));
|
||||||
LatLon lastKnownMapLocation = getMyApplication().getSettings().getLastKnownMapLocation();
|
LatLon lastKnownMapLocation = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||||
int dist = (int) (MapUtils.getDistance(model.getLatitude(), model.getLongitude(),
|
int dist = (int) (MapUtils.getDistance(model.getLatitude(), model.getLongitude(),
|
||||||
|
|
Loading…
Reference in a new issue