Fix issues
This commit is contained in:
parent
e2406d4ea4
commit
7b7de23c81
4 changed files with 53 additions and 42 deletions
|
@ -16,8 +16,8 @@ public class OsmAndFormatter {
|
|||
public final static float METERS_IN_ONE_MILE = 1609.344f; // 1609.344
|
||||
public final static float YARDS_IN_ONE_METER = 1.0936f;
|
||||
public final static float FOOTS_IN_ONE_METER = YARDS_IN_ONE_METER * 3f;
|
||||
private static final DecimalFormat fixed2 = new DecimalFormat("#.00");
|
||||
private static final DecimalFormat fixed1 = new DecimalFormat("#.0");
|
||||
private static final DecimalFormat fixed2 = new DecimalFormat("0.00");
|
||||
private static final DecimalFormat fixed1 = new DecimalFormat("0.0");
|
||||
{
|
||||
fixed2.setMinimumFractionDigits(2);
|
||||
fixed1.setMinimumFractionDigits(1);
|
||||
|
|
|
@ -632,8 +632,9 @@ public class OsmandSettings {
|
|||
public final OsmandPreference<DrivingRegion> DRIVING_REGION = new EnumIntPreference<DrivingRegion>(
|
||||
"default_driving_region", DrivingRegion.EUROPE_ASIA, DrivingRegion.values()) {
|
||||
protected boolean setValue(Object prefs, DrivingRegion val) {
|
||||
//((CommonPreference<MetricsConstants>)METRIC_SYSTEM).cachedValue = null;
|
||||
((CommonPreference<MetricsConstants>)METRIC_SYSTEM).set(DRIVING_REGION.get().defMetrics);
|
||||
if(val != null) {
|
||||
((CommonPreference<MetricsConstants>)METRIC_SYSTEM).set(val.defMetrics);
|
||||
}
|
||||
return super.setValue(prefs, val);
|
||||
};
|
||||
}.makeGlobal().cache();
|
||||
|
|
|
@ -79,11 +79,13 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
private AsyncTask<GpxInfo, ?, ?> operationTask;
|
||||
private GpxSelectionHelper selectedGpxHelper;
|
||||
private SavingTrackHelper savingTrackHelper;
|
||||
private OsmandApplication app;
|
||||
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
this.app = (OsmandApplication) getActivity().getApplication();
|
||||
final Collator collator = Collator.getInstance();
|
||||
collator.setStrength(Collator.SECONDARY);
|
||||
asyncLoader = new LoadGpxTask();
|
||||
|
@ -93,10 +95,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
setAdapter(listAdapter);
|
||||
}
|
||||
|
||||
public OsmandApplication getMyApplication() {
|
||||
return (OsmandApplication) getActivity().getApplication();
|
||||
}
|
||||
|
||||
public List<GpxInfo> getSelectedItems() {
|
||||
return selectedItems;
|
||||
}
|
||||
|
@ -231,7 +229,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
|
||||
private void updateSelectionMode(ActionMode m) {
|
||||
if(selectedItems.size() > 0) {
|
||||
m.setTitle(selectedItems.size() + " " + getString(R.string.selected));
|
||||
m.setTitle(selectedItems.size() + " " + app.getString(R.string.selected));
|
||||
} else{
|
||||
m.setTitle("");
|
||||
}
|
||||
|
@ -294,13 +292,13 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
public void openSelectionMode(final int actionResId, int darkIcon, int lightIcon,
|
||||
final DialogInterface.OnClickListener listener){
|
||||
final int actionIconId = !isLightActionBar() ? darkIcon : lightIcon;
|
||||
String value = getString(actionResId);
|
||||
String value = app.getString(actionResId);
|
||||
if (value.endsWith("...")) {
|
||||
value = value.substring(0, value.length() - 3);
|
||||
}
|
||||
final String actionButton = value;
|
||||
if(listAdapter.getGroupCount() == 0){
|
||||
AccessibleToast.makeText(getActivity(), getString(R.string.local_index_no_items_to_do, actionButton.toLowerCase()), Toast.LENGTH_SHORT).show();
|
||||
AccessibleToast.makeText(getActivity(), app.getString(R.string.local_index_no_items_to_do, actionButton.toLowerCase()), Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -329,7 +327,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||
if (selectedItems.isEmpty()) {
|
||||
AccessibleToast.makeText(getActivity(),
|
||||
getString(R.string.local_index_no_items_to_do, actionButton.toLowerCase()), Toast.LENGTH_SHORT).show();
|
||||
app.getString(R.string.local_index_no_items_to_do, actionButton.toLowerCase()), Toast.LENGTH_SHORT).show();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -471,9 +469,9 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
List<GpxInfo> result = new ArrayList<GpxInfo>();
|
||||
if(!savingTrackHelper.getCurrentGpx().isEmpty()) {
|
||||
loadFile(new GpxInfo(savingTrackHelper.getCurrentGpx(),
|
||||
getMyApplication().getString(R.string.gpx_available_current_track)));
|
||||
app.getString(R.string.gpx_available_current_track)));
|
||||
}
|
||||
loadGPXData(getMyApplication().getAppPath(IndexConstants.GPX_INDEX_DIR), result, this);
|
||||
loadGPXData(app.getAppPath(IndexConstants.GPX_INDEX_DIR), result, this);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -611,7 +609,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
if(info.gpx != null && info.gpx.showCurrentTrack) {
|
||||
catName = info.name;
|
||||
} else {
|
||||
catName = getString(R.string.local_indexes_cat_gpx) + " " + info.subfolder;
|
||||
catName = app.getString(R.string.local_indexes_cat_gpx) + " " + info.subfolder;
|
||||
}
|
||||
int found = -1;
|
||||
// search from end
|
||||
|
@ -838,7 +836,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
|||
}
|
||||
}
|
||||
}
|
||||
return getString(R.string.local_index_items_deleted, count, total);
|
||||
return app.getString(R.string.local_index_items_deleted, count, total);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
|
|||
timeSplit.add(-1);
|
||||
addOptionSplit(30, true, options, distanceSplit, timeSplit, checkedItem, model); // 100 feet, 50 yards, 50 m
|
||||
addOptionSplit(60, true, options, distanceSplit, timeSplit, checkedItem, model); // 200 feet, 100 yards, 100 m
|
||||
addOptionSplit(180, true, options, distanceSplit, timeSplit, checkedItem, model); // 500 feet, 200 yards, 200 m
|
||||
addOptionSplit(150, true, options, distanceSplit, timeSplit, checkedItem, model); // 500 feet, 200 yards, 200 m
|
||||
addOptionSplit(300, true, options, distanceSplit, timeSplit, checkedItem, model); // 1000 feet, 500 yards, 500 m
|
||||
addOptionSplit(600, true, options, distanceSplit, timeSplit, checkedItem, model); // 2000 feet, 1000 yards, 1km
|
||||
addOptionSplit(1500, true, options, distanceSplit, timeSplit, checkedItem, model); // 1mi, 2km
|
||||
|
@ -212,9 +212,9 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
|
|||
Filter myFilter;
|
||||
private List<GpxDisplayGroup> displayGroups = new ArrayList<GpxDisplayGroup>();
|
||||
private ExpandableListView expandableListView;
|
||||
private boolean manualScroll;
|
||||
private boolean groupScroll = true;
|
||||
private int maxNumberOfSections = 1;
|
||||
private double positionsInGroup;
|
||||
private double itemsInSection;
|
||||
|
||||
public SelectedGPXAdapter(ExpandableListView lv) {
|
||||
this.expandableListView = lv;
|
||||
|
@ -224,7 +224,7 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
|
|||
|
||||
@Override
|
||||
public void onScrollStateChanged(AbsListView view, int scrollState) {
|
||||
this.manualScroll = scrollState == SCROLL_STATE_TOUCH_SCROLL;
|
||||
// this.manualScroll = scrollState == SCROLL_STATE_TOUCH_SCROLL;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -235,36 +235,48 @@ public class SelectedGPXFragment extends OsmandExpandableListFragment {
|
|||
|
||||
@Override
|
||||
public int getPositionForSection(int section) {
|
||||
if (manualScroll) {
|
||||
return section;
|
||||
} else {
|
||||
// return expandableListView.getFlatListPosition(
|
||||
// ExpandableListView.getPackedPositionForGroup(section));
|
||||
return (int) (section * positionsInGroup);
|
||||
if(groupScroll) {
|
||||
return expandableListView.getFlatListPosition(
|
||||
ExpandableListView.getPackedPositionForGroup(section));
|
||||
} else {
|
||||
return (int) (section * itemsInSection);
|
||||
}
|
||||
}
|
||||
|
||||
// Gets called when scrolling the list manually
|
||||
@Override
|
||||
public int getSectionForPosition(int position) {
|
||||
// Get the packed position of the provided flat one and find the corresponding group
|
||||
// return ExpandableListView.getPackedPositionChild(expandableListView
|
||||
// .getExpandableListPosition(position));
|
||||
return Math.min(maxNumberOfSections - 1, (int) (position / positionsInGroup));
|
||||
}
|
||||
public int getSectionForPosition(int position) {
|
||||
// Get the packed position of the provided flat one and find the corresponding group
|
||||
if (groupScroll) {
|
||||
return ExpandableListView
|
||||
.getPackedPositionGroup(expandableListView.getExpandableListPosition(position));
|
||||
} else {
|
||||
int m = Math.min(maxNumberOfSections - 1, (int) (position / itemsInSection));
|
||||
return m;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getSections() {
|
||||
int total = getGroupCount();
|
||||
for(int i = 0; i < getGroupCount(); i++) {
|
||||
if(expandableListView.isGroupExpanded(i)) {
|
||||
total += getChildrenCount(i);
|
||||
String[] ar ;
|
||||
if (groupScroll) {
|
||||
ar = new String[getGroupCount()];
|
||||
for (int i = 0; i < getGroupCount(); i++) {
|
||||
ar[i] = getGroup(i).getGroupName();
|
||||
}
|
||||
} else {
|
||||
int total = getGroupCount();
|
||||
for (int i = 0; i < getGroupCount(); i++) {
|
||||
if (expandableListView.isGroupExpanded(i)) {
|
||||
total += getChildrenCount(i);
|
||||
}
|
||||
}
|
||||
maxNumberOfSections = Math.max(1, Math.min(25, total));
|
||||
itemsInSection = ((double) total) / maxNumberOfSections;
|
||||
ar = new String[maxNumberOfSections];
|
||||
for (int i = 0; i < ar.length; i++) {
|
||||
ar[i] = ((i + 1) * 100 / maxNumberOfSections) + "%";
|
||||
}
|
||||
}
|
||||
maxNumberOfSections = Math.max(1, Math.min(25, total));
|
||||
positionsInGroup = ((double)total) / maxNumberOfSections;
|
||||
String[] ar = new String[maxNumberOfSections];
|
||||
for(int i = 0; i < ar.length; i++) {
|
||||
ar[i] = ((i + 1) * 100 / maxNumberOfSections) + "%";
|
||||
}
|
||||
return ar;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue