From b6174202907064061eb161d075b0e0654f352624 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 20 May 2020 11:58:46 +0200 Subject: [PATCH] Export: do not show progress of exported TrackPoints. Only the overall number of tracks is shown now (similar to import). --- .../provider/ShareContentProvider.java | 2 +- .../opentracks/io/file/TrackFileFormat.java | 25 +++++++------- .../io/file/exporter/ExportAsyncTask.java | 26 +++------------ .../io/file/exporter/FileTrackExporter.java | 8 +---- .../file/exporter/TrackExporterListener.java | 33 ------------------- 5 files changed, 19 insertions(+), 75 deletions(-) delete mode 100644 src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporterListener.java diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java b/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java index 727bccdec..eb7f0bdc9 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java @@ -209,7 +209,7 @@ public class ShareContentProvider extends CustomContentProvider implements ICont tracks[i] = contentProviderUtils.getTrack(trackIds[i]); } - final TrackExporter trackExporter = getTrackFileFormat(uri).newTrackExporter(getContext(), tracks, null); + final TrackExporter trackExporter = getTrackFileFormat(uri).newTrackExporter(getContext(), tracks); PipeDataWriter pipeDataWriter = new PipeDataWriter() { @Override diff --git a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java index c6aed8d60..8ff3e79e2 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java @@ -12,7 +12,6 @@ import de.dennisguse.opentracks.io.file.exporter.GpxTrackWriter; import de.dennisguse.opentracks.io.file.exporter.KmlTrackWriter; import de.dennisguse.opentracks.io.file.exporter.KmzTrackExporter; import de.dennisguse.opentracks.io.file.exporter.TrackExporter; -import de.dennisguse.opentracks.io.file.exporter.TrackExporterListener; import de.dennisguse.opentracks.io.file.exporter.TrackWriter; /** @@ -74,8 +73,8 @@ public enum TrackFileFormat { return new KmlTrackWriter(context, multiple, false, false, exportPhotos); } - public TrackExporter newTrackExporter(Context context, Track[] tracks, TrackExporterListener trackExporterListener) { - return newKmzTrackExporter(context, this.newTrackWriter(context, tracks.length > 1), tracks, trackExporterListener, exportPhotos); + public TrackExporter newTrackExporter(Context context, Track[] tracks) { + return newKmzTrackExporter(context, this.newTrackWriter(context, tracks.length > 1), tracks, exportPhotos); } @Override @@ -101,8 +100,8 @@ public enum TrackFileFormat { return new KmlTrackWriter(context, multiple, true, false, exportPhotos); } - public TrackExporter newTrackExporter(Context context, Track[] tracks, TrackExporterListener trackExporterListener) { - return newKmzTrackExporter(context, this.newTrackWriter(context, tracks.length > 1), tracks, trackExporterListener, exportPhotos); + public TrackExporter newTrackExporter(Context context, Track[] tracks) { + return newKmzTrackExporter(context, this.newTrackWriter(context, tracks.length > 1), tracks, exportPhotos); } @Override @@ -134,8 +133,8 @@ public enum TrackFileFormat { return MIME_KMZ; } - public TrackExporter newTrackExporter(Context context, Track[] tracks, TrackExporterListener trackExporterListener) { - return newKmzTrackExporter(context, this.newTrackWriter(context, tracks.length > 1), tracks, trackExporterListener, exportPhotos); + public TrackExporter newTrackExporter(Context context, Track[] tracks) { + return newKmzTrackExporter(context, this.newTrackWriter(context, tracks.length > 1), tracks, exportPhotos); } public String getExtension() { @@ -163,8 +162,8 @@ public enum TrackFileFormat { return MIME_KMZ; } - public TrackExporter newTrackExporter(Context context, Track[] tracks, TrackExporterListener trackExporterListener) { - return newKmzTrackExporter(context, newTrackWriter(context, tracks.length > 1), tracks, trackExporterListener, exportPhotos); + public TrackExporter newTrackExporter(Context context, Track[] tracks) { + return newKmzTrackExporter(context, newTrackWriter(context, tracks.length > 1), tracks, exportPhotos); } public String getExtension() { @@ -197,10 +196,10 @@ public enum TrackFileFormat { private static final String MIME_KML = "application/vnd.google-earth.kml+xml"; - private static TrackExporter newKmzTrackExporter(Context context, TrackWriter trackWriter, Track[] tracks, TrackExporterListener trackExporterListener, boolean exportPhotos) { + private static TrackExporter newKmzTrackExporter(Context context, TrackWriter trackWriter, Track[] tracks, boolean exportPhotos) { ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); - FileTrackExporter fileTrackExporter = new FileTrackExporter(contentProviderUtils, trackWriter, tracks, trackExporterListener); + FileTrackExporter fileTrackExporter = new FileTrackExporter(contentProviderUtils, trackWriter, tracks); return new KmzTrackExporter(contentProviderUtils, fileTrackExporter, tracks, exportPhotos); } @@ -210,10 +209,10 @@ public enum TrackFileFormat { */ public abstract String getMimeType(); - public TrackExporter newTrackExporter(Context context, Track[] tracks, TrackExporterListener trackExporterListener) { + public TrackExporter newTrackExporter(Context context, Track[] tracks) { ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); TrackWriter trackWriter = newTrackWriter(context, tracks.length > 1); - return new FileTrackExporter(contentProviderUtils, trackWriter, tracks, trackExporterListener); + return new FileTrackExporter(contentProviderUtils, trackWriter, tracks); } /** diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportAsyncTask.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportAsyncTask.java index 761ea4c35..0a5c0bc53 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportAsyncTask.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportAsyncTask.java @@ -16,7 +16,6 @@ package de.dennisguse.opentracks.io.file.exporter; -import android.content.Context; import android.database.Cursor; import android.os.AsyncTask; import android.os.PowerManager.WakeLock; @@ -45,13 +44,10 @@ class ExportAsyncTask extends AsyncTask { private static final String TAG = ExportAsyncTask.class.getSimpleName(); private final TrackFileFormat trackFileFormat; private final DocumentFile directory; - private final Context context; private final ContentProviderUtils contentProviderUtils; private ExportActivity exportActivity; private WakeLock wakeLock; - private boolean completed = false; - private int processedTrackCount = 0; private int totalTrackCount = 0; @@ -66,8 +62,7 @@ class ExportAsyncTask extends AsyncTask { this.exportActivity = exportActivity; this.trackFileFormat = trackFileFormat; this.directory = directory; - context = exportActivity.getApplicationContext(); - contentProviderUtils = new ContentProviderUtils(context); + contentProviderUtils = new ContentProviderUtils(exportActivity); } @Override @@ -99,7 +94,6 @@ class ExportAsyncTask extends AsyncTask { @Override protected void onPostExecute(Boolean result) { - completed = true; if (exportActivity != null) { exportActivity.onAsyncTaskCompleted(processedTrackCount, totalTrackCount); } @@ -107,7 +101,6 @@ class ExportAsyncTask extends AsyncTask { @Override protected void onCancelled() { - completed = true; if (exportActivity != null) { exportActivity.onAsyncTaskCompleted(processedTrackCount, totalTrackCount); } @@ -119,17 +112,7 @@ class ExportAsyncTask extends AsyncTask { * @param track the track */ private Boolean exportTrack(Track track) { - TrackExporterListener trackExporterListener = new TrackExporterListener() { - @Override - public void onProgressUpdate(int number, int max) { - //Update the progress dialog once every 500 points. - if (number % 500 == 0) { - publishProgress(number, max); - } - } - }; - - TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, trackExporterListener); + TrackExporter trackExporter = trackFileFormat.newTrackExporter(exportActivity, new Track[]{track}); String fileName = track.getId() + "." + trackFileFormat.getExtension(); @@ -139,8 +122,8 @@ class ExportAsyncTask extends AsyncTask { file = directory.createFile(trackFileFormat.getMimeType(), fileName); } - try (OutputStream outputStream = context.getContentResolver().openOutputStream(file.getUri())) { - if (trackExporter.writeTrack(context, outputStream)) { + try (OutputStream outputStream = exportActivity.getContentResolver().openOutputStream(file.getUri())) { + if (trackExporter.writeTrack(exportActivity, outputStream)) { return true; } else { if (!file.delete()) { @@ -167,6 +150,7 @@ class ExportAsyncTask extends AsyncTask { return false; } totalTrackCount = cursor.getCount(); + for (int i = 0; i < totalTrackCount; i++) { if (isCancelled()) { return false; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java index 0b7648209..51c03cd20 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java @@ -44,7 +44,6 @@ public class FileTrackExporter implements TrackExporter { private final ContentProviderUtils contentProviderUtils; private final Track[] tracks; private final TrackWriter trackWriter; - private final TrackExporterListener trackExporterListener; /** * Constructor. @@ -52,13 +51,11 @@ public class FileTrackExporter implements TrackExporter { * @param contentProviderUtils the content provider utils * @param trackWriter the track writer * @param tracks the tracks - * @param trackExporterListener the track export listener */ - public FileTrackExporter(ContentProviderUtils contentProviderUtils, TrackWriter trackWriter, Track[] tracks, TrackExporterListener trackExporterListener) { + public FileTrackExporter(ContentProviderUtils contentProviderUtils, TrackWriter trackWriter, Track[] tracks) { this.contentProviderUtils = contentProviderUtils; this.tracks = tracks; this.trackWriter = trackWriter; - this.trackExporterListener = trackExporterListener; } @Override @@ -158,9 +155,6 @@ public class FileTrackExporter implements TrackExporter { // Write the current trackPoint trackWriter.writeTrackPoint(trackPoint); - if (trackExporterListener != null) { - trackExporterListener.onProgressUpdate(locationNumber, trackPointIterator.getCount()); - } } else { if (wroteSegment) { trackWriter.writeCloseSegment(); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporterListener.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporterListener.java deleted file mode 100644 index e7893c1d2..000000000 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporterListener.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package de.dennisguse.opentracks.io.file.exporter; - -/** - * Listener for {@link TrackExporter} progress. - * - * @author Jimmy Shih - */ -public interface TrackExporterListener { - - /** - * Called to update progress. - * - * @param number the number of {@link de.dennisguse.opentracks.content.data.TrackPoint}s written - * @param max the maximum number of {@link de.dennisguse.opentracks.content.data.TrackPoint}s in a {@link de.dennisguse.opentracks.content.data.Track}, for calculation of - * completion percentage - */ - void onProgressUpdate(int number, int max); -} \ No newline at end of file