forked from upstream-mirrors/OpenTracks
Notification opens recording UI.
Features was removed as it broke occasionally and re-implemented after refactoring. Fixes #1156.
This commit is contained in:
@@ -195,6 +195,8 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
startSensors();
|
startSensors();
|
||||||
|
|
||||||
voiceAnnouncementManager.start(trackRecordingManager.getTrackStatistics());
|
voiceAnnouncementManager.start(trackRecordingManager.getTrackStatistics());
|
||||||
|
|
||||||
|
notificationManager.onRecordingStarted(this, recordingStatus.trackId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tryStartSensors() {
|
public void tryStartSensors() {
|
||||||
@@ -265,6 +267,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean stored = trackRecordingManager.onNewTrackPoint(trackPoint);
|
boolean stored = trackRecordingManager.onNewTrackPoint(trackPoint);
|
||||||
|
//TODO Should be done during updateRecordingDataWhileRecording()
|
||||||
notificationManager.updateTrackPoint(this, trackRecordingManager.getTrackStatistics(), trackPoint, thresholdHorizontalAccuracy);
|
notificationManager.updateTrackPoint(this, trackRecordingManager.getTrackStatistics(), trackPoint, thresholdHorizontalAccuracy);
|
||||||
return stored;
|
return stored;
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-2
@@ -9,15 +9,18 @@ import android.content.Intent;
|
|||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
import androidx.core.app.TaskStackBuilder;
|
import androidx.core.app.TaskStackBuilder;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.TrackListActivity;
|
import de.dennisguse.opentracks.TrackListActivity;
|
||||||
|
import de.dennisguse.opentracks.TrackRecordingActivity;
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.DistanceFormatter;
|
import de.dennisguse.opentracks.data.models.DistanceFormatter;
|
||||||
import de.dennisguse.opentracks.data.models.SpeedFormatter;
|
import de.dennisguse.opentracks.data.models.SpeedFormatter;
|
||||||
|
import de.dennisguse.opentracks.data.models.Track;
|
||||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||||
@@ -69,11 +72,10 @@ class TrackRecordingServiceNotificationManager implements SharedPreferences.OnSh
|
|||||||
Notification onSensorsStarted(Context context) {
|
Notification onSensorsStarted(Context context) {
|
||||||
Intent intent = IntentUtils.newIntent(context, TrackListActivity.class);
|
Intent intent = IntentUtils.newIntent(context, TrackListActivity.class);
|
||||||
|
|
||||||
int pendingIntentFlags = PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT;
|
|
||||||
PendingIntent pendingIntent = TaskStackBuilder.create(context)
|
PendingIntent pendingIntent = TaskStackBuilder.create(context)
|
||||||
.addParentStack(TrackListActivity.class)
|
.addParentStack(TrackListActivity.class)
|
||||||
.addNextIntent(intent)
|
.addNextIntent(intent)
|
||||||
.getPendingIntent(0, pendingIntentFlags);
|
.getPendingIntent(0, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
|
||||||
updateGPSStatus(context.getString(R.string.gps_starting));
|
updateGPSStatus(context.getString(R.string.gps_starting));
|
||||||
|
|
||||||
@@ -88,6 +90,19 @@ class TrackRecordingServiceNotificationManager implements SharedPreferences.OnSh
|
|||||||
updateNotification();
|
updateNotification();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onRecordingStarted(Context context, @NonNull Track.Id trackId) {
|
||||||
|
Intent intent = IntentUtils.newIntent(context, TrackRecordingActivity.class)
|
||||||
|
.putExtra(TrackRecordingActivity.EXTRA_TRACK_ID, trackId);
|
||||||
|
|
||||||
|
PendingIntent pendingIntent = TaskStackBuilder.create(context)
|
||||||
|
.addParentStack(TrackListActivity.class)
|
||||||
|
.addNextIntent(intent)
|
||||||
|
.getPendingIntent(0, PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
|
|
||||||
|
notificationBuilder.setContentIntent(pendingIntent);
|
||||||
|
updateNotification();
|
||||||
|
}
|
||||||
|
|
||||||
void updateTrackPoint(Context context, TrackStatistics trackStatistics, TrackPoint trackPoint, Distance thresholdHorizontalAccuracy) {
|
void updateTrackPoint(Context context, TrackStatistics trackStatistics, TrackPoint trackPoint, Distance thresholdHorizontalAccuracy) {
|
||||||
String formattedAccuracy = context.getString(R.string.value_none);
|
String formattedAccuracy = context.getString(R.string.value_none);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user