From 046228702ad22ab6f6a21bc3a929114ae47c4b8b Mon Sep 17 00:00:00 2001 From: y20k Date: Tue, 27 Sep 2016 17:02:23 +0200 Subject: [PATCH] clearing the map now saves the track (2) -> does this using AsyncTask --- .../trackbook/MainActivityMapFragment.java | 38 ++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java b/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java index 3610941..6ceaa4b 100644 --- a/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java +++ b/app/src/main/java/org/y20k/trackbook/MainActivityMapFragment.java @@ -26,6 +26,7 @@ import android.database.ContentObserver; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; @@ -393,13 +394,8 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys { } // save track object - StorageHelper storageHelper = new StorageHelper(mActivity); - storageHelper.saveTrack(mTrack); - - // clear track object - mTrack = null; - - + SaveTrackAsyncHelper saveTrackAsyncHelper = new SaveTrackAsyncHelper(); + saveTrackAsyncHelper.execute(); } @@ -555,9 +551,9 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys { /** * Inner class: SettingsContentObserver is a custom ContentObserver for changes in Android Settings */ - public class SettingsContentObserver extends ContentObserver { + private class SettingsContentObserver extends ContentObserver { - public SettingsContentObserver(Handler handler) { + SettingsContentObserver(Handler handler) { super(handler); } @@ -590,4 +586,28 @@ public class MainActivityMapFragment extends Fragment implements TrackbookKeys { } + /** + * Inner class: Saves track to external storage using an AsyncTask + */ + private class SaveTrackAsyncHelper extends AsyncTask { + + @Override + protected Void doInBackground(Void... voids) { + LogHelper.v(LOG_TAG, "Saving track object in background."); + // save track object + StorageHelper storageHelper = new StorageHelper(mActivity); + storageHelper.saveTrack(mTrack); + return null; + } + + @Override + protected void onPostExecute(Void aVoid) { + super.onPostExecute(aVoid); + // clear track object + LogHelper.v(LOG_TAG, "Clearing track object after background save operation."); + mTrack = null; + } + } + + } \ No newline at end of file