Merge pull request #10900 from osmandapp/select-segment
Distance, time, points count for segment title card
This commit is contained in:
commit
cd238560bb
2 changed files with 25 additions and 2 deletions
|
@ -79,7 +79,7 @@ public class TrackSelectSegmentAdapter extends RecyclerView.Adapter<TrackViewHol
|
||||||
return segments.size();
|
return segments.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
private long getSegmentTime(TrkSegment segment) {
|
public static long getSegmentTime(TrkSegment segment) {
|
||||||
long startTime = Long.MAX_VALUE;
|
long startTime = Long.MAX_VALUE;
|
||||||
long endTime = Long.MIN_VALUE;
|
long endTime = Long.MIN_VALUE;
|
||||||
for (int i = 0; i < segment.points.size(); i++) {
|
for (int i = 0; i < segment.points.size(); i++) {
|
||||||
|
@ -93,7 +93,7 @@ public class TrackSelectSegmentAdapter extends RecyclerView.Adapter<TrackViewHol
|
||||||
return endTime - startTime;
|
return endTime - startTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
private double getDistance(TrkSegment segment) {
|
public static double getDistance(TrkSegment segment) {
|
||||||
double distance = 0;
|
double distance = 0;
|
||||||
WptPt prevPoint = null;
|
WptPt prevPoint = null;
|
||||||
for (int i = 0; i < segment.points.size(); i++) {
|
for (int i = 0; i < segment.points.size(); i++) {
|
||||||
|
|
|
@ -4,20 +4,25 @@ import android.graphics.drawable.ColorDrawable;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageButton;
|
import android.widget.ImageButton;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import net.osmand.AndroidUtils;
|
import net.osmand.AndroidUtils;
|
||||||
|
import net.osmand.GPXUtilities;
|
||||||
import net.osmand.GPXUtilities.GPXFile;
|
import net.osmand.GPXUtilities.GPXFile;
|
||||||
import net.osmand.plus.GPXDatabase.GpxDataItem;
|
import net.osmand.plus.GPXDatabase.GpxDataItem;
|
||||||
import net.osmand.plus.GpxDbHelper.GpxDataItemCallback;
|
import net.osmand.plus.GpxDbHelper.GpxDataItemCallback;
|
||||||
|
import net.osmand.plus.OsmAndFormatter;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.UiUtilities;
|
import net.osmand.plus.UiUtilities;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.helpers.GpxUiHelper;
|
import net.osmand.plus.helpers.GpxUiHelper;
|
||||||
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
|
import net.osmand.plus.helpers.GpxUiHelper.GPXInfo;
|
||||||
|
import net.osmand.plus.helpers.TrackSelectSegmentAdapter;
|
||||||
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
|
import net.osmand.plus.routing.RouteProvider.GPXRouteParamsBuilder;
|
||||||
import net.osmand.util.Algorithms;
|
import net.osmand.util.Algorithms;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class TrackEditCard extends BaseCard {
|
public class TrackEditCard extends BaseCard {
|
||||||
|
|
||||||
|
@ -75,6 +80,24 @@ public class TrackEditCard extends BaseCard {
|
||||||
}
|
}
|
||||||
GpxUiHelper.updateGpxInfoView(view, title, gpxInfo, dataItem, false, app);
|
GpxUiHelper.updateGpxInfoView(view, title, gpxInfo, dataItem, false, app);
|
||||||
|
|
||||||
|
if (gpxFile.getNonEmptySegmentsCount() > 1 && routeParams != null && routeParams.getSelectedSegment() != -1) {
|
||||||
|
TextView distanceView = view.findViewById(R.id.distance);
|
||||||
|
TextView timeView = view.findViewById(R.id.time);
|
||||||
|
TextView pointsView = view.findViewById(R.id.points_count);
|
||||||
|
List<GPXUtilities.TrkSegment> segments = gpxFile.getNonEmptyTrkSegments(false);
|
||||||
|
GPXUtilities.TrkSegment segment = segments.get(routeParams.getSelectedSegment());
|
||||||
|
int point = segment.points.size();
|
||||||
|
double distance = TrackSelectSegmentAdapter.getDistance(segment);
|
||||||
|
long time = TrackSelectSegmentAdapter.getSegmentTime(segment);
|
||||||
|
if (time != 1) {
|
||||||
|
timeView.setText(OsmAndFormatter.getFormattedDurationShort((int) (time / 1000)));
|
||||||
|
} else {
|
||||||
|
timeView.setText("");
|
||||||
|
}
|
||||||
|
distanceView.setText(OsmAndFormatter.getFormattedDistance((float) distance, app));
|
||||||
|
pointsView.setText(String.valueOf(point));
|
||||||
|
}
|
||||||
|
|
||||||
ImageButton editButton = view.findViewById(R.id.show_on_map);
|
ImageButton editButton = view.findViewById(R.id.show_on_map);
|
||||||
editButton.setVisibility(View.VISIBLE);
|
editButton.setVisibility(View.VISIBLE);
|
||||||
editButton.setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark));
|
editButton.setImageDrawable(getContentIcon(R.drawable.ic_action_edit_dark));
|
||||||
|
|
Loading…
Reference in a new issue