merge and hotfix

This commit is contained in:
unknown 2014-06-18 22:18:39 +03:00
commit 6582bbf42a
2 changed files with 19 additions and 25 deletions

View file

@ -1,11 +1,9 @@
package net.osmand.plus.routepointsnavigation;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.util.Log;
@ -25,6 +23,7 @@ import java.util.*;
/**
* Created by Bars on 13.06.2014.
*
*/
public class RoutePointsActivity extends OsmandListActivity {
@ -37,15 +36,11 @@ public class RoutePointsActivity extends OsmandListActivity {
private List<GPXUtilities.WptPt> sortedPointsList;
private List<Long> pointsStatus;
//saves indexed of sorted list
private List<Integer> pointsIndex;
private int selectedItemIndex;
private ActionMode actionMode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.setContentView(R.layout.route_steps_main);
@ -74,6 +69,7 @@ public class RoutePointsActivity extends OsmandListActivity {
private void getGpx(boolean forced) {
if (plugin.getGpx() != null && !forced) {
this.gpx = plugin.getGpx();
return;
}
GpxUiHelper.selectGPXFile(this, false, false, new CallbackWithObject<GPXUtilities.GPXFile[]>() {
@ -95,7 +91,7 @@ public class RoutePointsActivity extends OsmandListActivity {
gpxName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
actionMode = getActivity().startActionMode(mGpxActionModeCallback);
getActivity().startActionMode(mGpxActionModeCallback);
}
});
@ -111,9 +107,10 @@ public class RoutePointsActivity extends OsmandListActivity {
ArrayList<PointItem> pointItemsList = new ArrayList<PointItem>();
for (int i = 0; i < sortedPointsList.size(); i++) {
String pointName = sortedPointsList.get(i).name;
if (pointsStatus.get(i) != 0) {
long time = plugin.getPointStatus(pointsIndex.get(i));
if (time != 0) {
String dateString;
Date date = new Date(pointsStatus.get(i));
Date date = new Date(time);
if (DateFormat.is24HourFormat(app)) {
dateString = DateFormat.format("MM/dd k:mm", date).toString();
} else {
@ -141,12 +138,13 @@ public class RoutePointsActivity extends OsmandListActivity {
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
selectedItemIndex = i;
view.setSelected(true);
actionMode = getActivity().startActionMode(mPointActionModeCallback);
getActivity().startActionMode(mPointActionModeCallback);
}
});
}
@ -168,26 +166,20 @@ public class RoutePointsActivity extends OsmandListActivity {
}
}
private List<Long> getAllPointsStatus() {
List<Long> pointsStatus = new ArrayList<Long>();
for (int i = 0; i < sortedPointsList.size(); i++) {
pointsStatus.add(plugin.getPointStatus(pointsIndex.get(i)));
}
return pointsStatus;
}
private void sortPoints() {
sortedPointsList = plugin.getPoints();
List<GPXUtilities.WptPt> listToSort = new ArrayList<GPXUtilities.WptPt>();
List<Integer> indexItemsAtTheEnd = new ArrayList<Integer>();
pointsIndex = new ArrayList<Integer>();
int curPointInd = plugin.getCurrentPointIndex();
//current item should be first if it's exists
if (curPointInd != -1) {
pointsIndex.add(curPointInd);
listToSort.add(plugin.getCurrentPoint());
}
//all not visited points should be at the top
for (int i = 0; i < sortedPointsList.size(); i++) {
if (i == curPointInd) {
continue;
@ -202,11 +194,15 @@ public class RoutePointsActivity extends OsmandListActivity {
}
List<Long> timeOfVisits = new ArrayList<Long>();
for (int i = 0; i < indexItemsAtTheEnd.size(); i++) {
timeOfVisits.add(plugin.getPointStatus(indexItemsAtTheEnd.get(i)));
for (Integer anIndexItemsAtTheEnd : indexItemsAtTheEnd) {
timeOfVisits.add(plugin.getPointStatus(anIndexItemsAtTheEnd));
}
//sorting visited point from earliest to latest
quickSort(timeOfVisits, indexItemsAtTheEnd, 0, indexItemsAtTheEnd.size());
//reverting items so they will be from latest to earliest
Collections.reverse(indexItemsAtTheEnd);
for (int i : indexItemsAtTheEnd) {
listToSort.add(sortedPointsList.get(i));
@ -214,16 +210,13 @@ public class RoutePointsActivity extends OsmandListActivity {
}
sortedPointsList = listToSort;
pointsStatus = getAllPointsStatus();
}
private class PointItemAdapter extends ArrayAdapter<PointItem> {
private RoutePointsActivity ctx;
private ArrayList<PointItem> pointsList;
public PointItemAdapter(Context context, int textViewResourceId, ArrayList<PointItem> pointsList) {
super(context, textViewResourceId, pointsList);
ctx = (RoutePointsActivity) context;
this.pointsList = new ArrayList<PointItem>();
this.pointsList.addAll(pointsList);
}

View file

@ -105,6 +105,7 @@ public class RoutePointsPlugin extends OsmandPlugin {
currentRoute = gpx.routes.get(0);
pointsList = currentRoute.points;
refreshPointsStatus();
getCurrentPoint();
}
public void registerLayers(MapActivity activity) {