This commit is contained in:
Dennis Guse
2021-07-15 00:05:14 +02:00
parent 65e920e8b6
commit 18702bb6b3
7 changed files with 12 additions and 51 deletions
@@ -18,8 +18,6 @@ package de.dennisguse.opentracks;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -41,8 +39,6 @@ import de.dennisguse.opentracks.services.TrackDeleteServiceConnection;
//TODO Check if this class is still such a good idea; inheritance might limit maintainability //TODO Check if this class is still such a good idea; inheritance might limit maintainability
public abstract class AbstractTrackDeleteActivity extends AbstractActivity implements ConfirmDeleteCaller, TrackDeleteServiceConnection.Listener { public abstract class AbstractTrackDeleteActivity extends AbstractActivity implements ConfirmDeleteCaller, TrackDeleteServiceConnection.Listener {
private static final String TAG = AbstractTrackDeleteActivity.class.getSimpleName();
private TrackDeleteServiceConnection trackDeleteServiceConnection; private TrackDeleteServiceConnection trackDeleteServiceConnection;
@Override @Override
@@ -97,10 +93,7 @@ public abstract class AbstractTrackDeleteActivity extends AbstractActivity imple
protected abstract void onDeleteConfirmed(); protected abstract void onDeleteConfirmed();
@Nullable protected abstract Track.Id getRecordingTrackId();
protected Track.Id getRecordingTrackId() {
return null;
}
@Override @Override
public void connected() { public void connected() {
@@ -129,10 +129,6 @@ public class TrackPoint {
return new TrackPoint(Type.SEGMENT_START_MANUAL, time); return new TrackPoint(Type.SEGMENT_START_MANUAL, time);
} }
public static TrackPoint createSegmentStartAutomaticWithTime(Instant time) {
return new TrackPoint(Type.SEGMENT_START_AUTOMATIC, time);
}
public static TrackPoint createSegmentEndWithTime(Instant time) { public static TrackPoint createSegmentEndWithTime(Instant time) {
return new TrackPoint(Type.SEGMENT_END_MANUAL, time); return new TrackPoint(Type.SEGMENT_END_MANUAL, time);
} }
@@ -105,7 +105,7 @@ public class KMLTrackExporter implements TrackExporter {
Instant startTime = tracks[0].getTrackStatistics().getStartTime(); Instant startTime = tracks[0].getTrackStatistics().getStartTime();
for (Track track : tracks) { for (Track track : tracks) {
Duration offset = Duration.between(track.getTrackStatistics().getStartTime(), startTime); Duration offset = Duration.between(track.getTrackStatistics().getStartTime(), startTime);
writeLocations(track, offset); writeLocations(track);
} }
if (hasMultipleTracks) { if (hasMultipleTracks) {
writeMultiTrackEnd(); writeMultiTrackEnd();
@@ -144,7 +144,7 @@ public class KMLTrackExporter implements TrackExporter {
} }
} }
private void writeLocations(Track track, Duration offset) throws InterruptedException { private void writeLocations(Track track) throws InterruptedException {
boolean wroteTrack = false; boolean wroteTrack = false;
boolean wroteSegment = false; boolean wroteSegment = false;
@@ -229,7 +229,7 @@ public class KMLTrackExporter implements TrackExporter {
printWriter.println("<atom:generator>" + StringUtils.formatCData(context.getString(R.string.app_name)) + "</atom:generator>"); printWriter.println("<atom:generator>" + StringUtils.formatCData(context.getString(R.string.app_name)) + "</atom:generator>");
writeTrackStyle(); writeTrackStyle();
writePlacemarkerStyle(MARKER_STYLE, MARKER_ICON, 20, 2); writePlacemarkerStyle();
printWriter.println("<Schema id=\"" + SCHEMA_ID + "\">"); printWriter.println("<Schema id=\"" + SCHEMA_ID + "\">");
writeSimpleArrayStyle(EXTENDED_DATA_TYPE_SPEED, context.getString(R.string.description_speed_ms)); writeSimpleArrayStyle(EXTENDED_DATA_TYPE_SPEED, context.getString(R.string.description_speed_ms));
@@ -263,7 +263,7 @@ public class KMLTrackExporter implements TrackExporter {
float heading = getHeading(marker.getTrackId(), marker.getLocation()); float heading = getHeading(marker.getTrackId(), marker.getLocation());
writePhotoOverlay(marker, heading); writePhotoOverlay(marker, heading);
} else { } else {
writePlacemark(marker.getName(), marker.getCategory(), marker.getDescription(), MARKER_STYLE, marker.getLocation()); writePlacemark(marker.getName(), marker.getCategory(), marker.getDescription(), marker.getLocation());
} }
} }
} }
@@ -406,16 +406,15 @@ public class KMLTrackExporter implements TrackExporter {
* @param name the name * @param name the name
* @param category the category * @param category the category
* @param description the description * @param description the description
* @param styleName the style name
* @param location the location * @param location the location
*/ */
private void writePlacemark(String name, String category, String description, String styleName, Location location) { private void writePlacemark(String name, String category, String description, Location location) {
if (location != null) { if (location != null) {
printWriter.println("<Placemark>"); printWriter.println("<Placemark>");
printWriter.println("<name>" + StringUtils.formatCData(name) + "</name>"); printWriter.println("<name>" + StringUtils.formatCData(name) + "</name>");
printWriter.println("<description>" + StringUtils.formatCData(description) + "</description>"); printWriter.println("<description>" + StringUtils.formatCData(description) + "</description>");
printWriter.println("<TimeStamp><when>" + getTime(location) + "</when></TimeStamp>"); printWriter.println("<TimeStamp><when>" + getTime(location) + "</when></TimeStamp>");
printWriter.println("<styleUrl>#" + styleName + "</styleUrl>"); printWriter.println("<styleUrl>#" + KMLTrackExporter.MARKER_STYLE + "</styleUrl>");
writeCategory(category); writeCategory(category);
printWriter.println("<Point>"); printWriter.println("<Point>");
printWriter.println("<coordinates>" + getCoordinates(location, ",") + "</coordinates>"); printWriter.println("<coordinates>" + getCoordinates(location, ",") + "</coordinates>");
@@ -521,17 +520,12 @@ public class KMLTrackExporter implements TrackExporter {
/** /**
* Writes a placemarker style. * Writes a placemarker style.
*
* @param name the name of the style
* @param url the url of the style icon
* @param x the x position of the hotspot
* @param y the y position of the hotspot
*/ */
private void writePlacemarkerStyle(String name, String url, int x, int y) { private void writePlacemarkerStyle() {
printWriter.println("<Style id=\"" + name + "\"><IconStyle>"); printWriter.println("<Style id=\"" + KMLTrackExporter.MARKER_STYLE + "\"><IconStyle>");
printWriter.println("<scale>1.3</scale>"); printWriter.println("<scale>1.3</scale>");
printWriter.println("<Icon><href>" + url + "</href></Icon>"); printWriter.println("<Icon><href>" + KMLTrackExporter.MARKER_ICON + "</href></Icon>");
printWriter.println("<hotSpot x=\"" + x + "\" y=\"" + y + "\" xunits=\"pixels\" yunits=\"pixels\"/>"); printWriter.println("<hotSpot x=\"" + 20 + "\" y=\"" + 2 + "\" xunits=\"pixels\" yunits=\"pixels\"/>");
printWriter.println("</IconStyle></Style>"); printWriter.println("</IconStyle></Style>");
} }
@@ -86,10 +86,6 @@ public class TrackImporter {
this.trackPoints.addAll(trackPoints); this.trackPoints.addAll(trackPoints);
} }
void addMarker(Marker marker) {
this.markers.add(marker);
}
void addMarkers(List<Marker> markers) { void addMarkers(List<Marker> markers) {
this.markers.addAll(markers); this.markers.addAll(markers);
} }
@@ -160,6 +160,7 @@ public class TrackDeleteService extends Service {
return this.trackId != null && this.trackId.equals(trackId); return this.trackId != null && this.trackId.equals(trackId);
} }
@NonNull
@Override @Override
public String toString() { public String toString() {
return "DeleteStatus{" + return "DeleteStatus{" +
@@ -172,8 +172,4 @@ class LocationHandler implements LocationListener, GpsStatus.GpsStatusListener {
public void onGpsStatusChanged(GpsStatusValue prevStatus, GpsStatusValue currentStatus) { public void onGpsStatusChanged(GpsStatusValue prevStatus, GpsStatusValue currentStatus) {
handlerServer.sendGpsStatus(currentStatus); handlerServer.sendGpsStatus(currentStatus);
} }
public GpsStatusValue getGpsStatus() {
return gpsStatus != null ? gpsStatus.getGpsStatus() : GpsStatusValue.GPS_NONE;
}
} }
@@ -17,7 +17,6 @@
package de.dennisguse.opentracks.util; package de.dennisguse.opentracks.util;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.text.format.DateUtils; import android.text.format.DateUtils;
import android.view.Gravity; import android.view.Gravity;
@@ -134,20 +133,6 @@ public class ListItemUtils {
params.gravity = timeDistanceTextView.getVisibility() == View.GONE && markerCountIcon.getVisibility() == View.GONE ? Gravity.TOP : Gravity.CENTER_VERTICAL; params.gravity = timeDistanceTextView.getVisibility() == View.GONE && markerCountIcon.getVisibility() == View.GONE ? Gravity.TOP : Gravity.CENTER_VERTICAL;
} }
private static Bitmap decodeSampledBitmapFromResource(String photoUrl, int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(photoUrl, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(photoUrl, options);
}
private static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { private static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
// Raw height and width of image // Raw height and width of image
final int height = options.outHeight; final int height = options.outHeight;