From 82e383e9537e3a3fc603080136a744ce4519aa82 Mon Sep 17 00:00:00 2001 From: jannis Date: Tue, 10 Sep 2019 20:01:44 +0200 Subject: [PATCH] Data Import up to 5 times faster and more secure if it fails --- .../tadris/fitness/util/export/Exporter.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/de/tadris/fitness/util/export/Exporter.java b/app/src/main/java/de/tadris/fitness/util/export/Exporter.java index 6914fe6..c2e165b 100644 --- a/app/src/main/java/de/tadris/fitness/util/export/Exporter.java +++ b/app/src/main/java/de/tadris/fitness/util/export/Exporter.java @@ -95,21 +95,25 @@ public class Exporter { .commit(); AppDatabase database= Instance.getInstance(context).db; - database.clearAllTables(); - listener.onStatusChanged(60, context.getString(R.string.workouts)); - if(container.workouts != null){ - for(Workout workout : container.workouts){ - database.workoutDao().insertWorkout(workout); - } - } + database.runInTransaction(() -> { + database.clearAllTables(); - listener.onStatusChanged(80, context.getString(R.string.locationData)); - if(container.samples != null){ - for(WorkoutSample sample : container.samples){ - database.workoutDao().insertSample(sample); + listener.onStatusChanged(60, context.getString(R.string.workouts)); + if(container.workouts != null){ + for(Workout workout : container.workouts){ + database.workoutDao().insertWorkout(workout); + } } - } + + listener.onStatusChanged(80, context.getString(R.string.locationData)); + if(container.samples != null){ + for(WorkoutSample sample : container.samples){ + database.workoutDao().insertSample(sample); + } + } + }); + listener.onStatusChanged(100, context.getString(R.string.finished)); }