TrackDataHub always sends via handler.

This commit is contained in:
Dennis Guse
2021-01-09 20:55:02 +01:00
parent 912fd1aa2f
commit 022d8146fe
3 changed files with 6 additions and 31 deletions
@@ -390,7 +390,7 @@ public class TrackRecordingServiceTest {
* Inserts a location and waits for 200ms. * Inserts a location and waits for 200ms.
*/ */
private static void newTrackPoint(TrackRecordingServiceInterface trackRecordingService, double latitude, double longitude, float accuracy, long speed, long time) throws InterruptedException { private static void newTrackPoint(TrackRecordingServiceInterface trackRecordingService, double latitude, double longitude, float accuracy, long speed, long time) throws InterruptedException {
Location location = new Location("gps"); Location location = new Location("");
location.setLongitude(longitude); location.setLongitude(longitude);
location.setLatitude(latitude); location.setLatitude(latitude);
location.setAccuracy(accuracy); location.setAccuracy(accuracy);
@@ -400,7 +400,5 @@ public class TrackRecordingServiceTest {
TrackPoint trackPoint = new TrackPoint(location); TrackPoint trackPoint = new TrackPoint(location);
int prefAccuracy = PreferencesUtils.getRecordingGPSAccuracy(ApplicationProvider.getApplicationContext()); int prefAccuracy = PreferencesUtils.getRecordingGPSAccuracy(ApplicationProvider.getApplicationContext());
trackRecordingService.newTrackPoint(trackPoint, prefAccuracy); trackRecordingService.newTrackPoint(trackPoint, prefAccuracy);
//TODO Needed?
Thread.sleep(200);
} }
} }
@@ -25,13 +25,6 @@ public class AggregatedStatisticsTest {
private final Context context = ApplicationProvider.getApplicationContext(); private final Context context = ApplicationProvider.getApplicationContext();
/**
* Create a TrackStatistics object.
*
* @param totalDistance distance in meters.
* @param totalTime total time in milliseconds. //TODO Duration
* @return TrackStatistics object.
*/
private static Track createTrack(Context context, long totalDistance, long totalTime, String category) { private static Track createTrack(Context context, long totalDistance, long totalTime, String category) {
TrackStatistics statistics = new TrackStatistics(); TrackStatistics statistics = new TrackStatistics();
statistics.setStartTime(Instant.ofEpochMilli(1000L)); // Resulting start time statistics.setStartTime(Instant.ofEpochMilli(1000L)); // Resulting start time
@@ -142,7 +142,7 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
PreferencesUtils.register(context, this); PreferencesUtils.register(context, this);
onSharedPreferenceChanged(null, null); onSharedPreferenceChanged(null, null);
runInHandlerThread(() -> { handler.post(() -> {
if (started) { if (started) {
loadDataForAll(); loadDataForAll();
} }
@@ -173,7 +173,7 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
} }
public void loadTrack(final @NonNull Track.Id trackId) { public void loadTrack(final @NonNull Track.Id trackId) {
runInHandlerThread(() -> { handler.post(() -> {
if (trackId.equals(selectedTrackId)) { if (trackId.equals(selectedTrackId)) {
Log.i(TAG, "Not reloading track " + trackId.getId()); Log.i(TAG, "Not reloading track " + trackId.getId());
return; return;
@@ -189,7 +189,7 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
* @param trackDataListener the track data listener * @param trackDataListener the track data listener
*/ */
public void registerTrackDataListener(final TrackDataListener trackDataListener, final boolean tracksTable, final boolean markersTable, final boolean trackPointsTable_SampleIn, final boolean trackPointsTable_SampleOut) { public void registerTrackDataListener(final TrackDataListener trackDataListener, final boolean tracksTable, final boolean markersTable, final boolean trackPointsTable_SampleIn, final boolean trackPointsTable_SampleOut) {
runInHandlerThread(() -> { handler.post(() -> {
trackDataManager.registerTrackDataListener(trackDataListener, tracksTable, markersTable, trackPointsTable_SampleIn, trackPointsTable_SampleOut); trackDataManager.registerTrackDataListener(trackDataListener, tracksTable, markersTable, trackPointsTable_SampleIn, trackPointsTable_SampleOut);
if (started) { if (started) {
loadDataForListener(trackDataListener); loadDataForListener(trackDataListener);
@@ -203,7 +203,7 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
* @param trackDataListener the track data listener * @param trackDataListener the track data listener
*/ */
public void unregisterTrackDataListener(final TrackDataListener trackDataListener) { public void unregisterTrackDataListener(final TrackDataListener trackDataListener) {
runInHandlerThread(() -> trackDataManager.unregisterTrackDataListener(trackDataListener)); handler.post(() -> trackDataManager.unregisterTrackDataListener(trackDataListener));
} }
/** /**
@@ -222,7 +222,7 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, final String key) { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, final String key) {
runInHandlerThread(() -> { handler.post(() -> {
if (PreferencesUtils.isKey(context, R.string.recording_track_id_key, key)) { if (PreferencesUtils.isKey(context, R.string.recording_track_id_key, key)) {
recordingTrackId = PreferencesUtils.getRecordingTrackId(context); recordingTrackId = PreferencesUtils.getRecordingTrackId(context);
} }
@@ -421,20 +421,4 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
firstSeenTrackPointId = null; firstSeenTrackPointId = null;
lastSeenTrackPointId = null; lastSeenTrackPointId = null;
} }
/**
* Run in the handler thread.
*
* @param runnable the runnable
*/
@Deprecated //TODO: Why actually catch this problem: I guess it would be better to fail hard.
@VisibleForTesting
private void runInHandlerThread(Runnable runnable) {
if (handler == null) {
// Use a Throwable to ensure the stack trace is logged.
Log.d(TAG, "handler is null.", new Throwable());
return;
}
handler.post(runnable);
}
} }