diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b12fa9b..1501da5 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,6 +25,7 @@ + { + try{ + while (recorder.isActive()){ + Thread.sleep(1000); + if(isResumed){ + mHandler.post(() -> updateDescription()); } - }catch (InterruptedException e){ - e.printStackTrace(); } + }catch (InterruptedException e){ + e.printStackTrace(); } }).start(); } @@ -136,7 +137,7 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location timeView.setText(UnitUtils.getHourMinuteSecondTime(recorder.getDuration())); infoViews[0].setText(getString(R.string.workoutDistance), UnitUtils.getDistance(recorder.getDistance())); infoViews[1].setText(getString(R.string.workoutBurnedEnergy), recorder.getCalories() + " kcal"); - infoViews[2].setText(getString(R.string.workoutAvgSpeed), UnitUtils.getSpeed(recorder.getAvgSpeed())); + infoViews[2].setText(getString(R.string.workoutAvgSpeed), UnitUtils.getSpeed(Math.min(100d, recorder.getAvgSpeed()))); infoViews[3].setText(getString(R.string.workoutPauseDuration), UnitUtils.getHourMinuteSecondTime(recorder.getPauseDuration())); } @@ -180,6 +181,9 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location mapView.destroyAll(); AndroidGraphicFactory.clearResourceMemoryCache(); super.onDestroy(); + if(wakeLock.isHeld()){ + wakeLock.release(); + } } @Override diff --git a/app/src/main/java/de/tadris/fitness/activity/ShowWorkoutActivity.java b/app/src/main/java/de/tadris/fitness/activity/ShowWorkoutActivity.java index fbf8267..c89a494 100644 --- a/app/src/main/java/de/tadris/fitness/activity/ShowWorkoutActivity.java +++ b/app/src/main/java/de/tadris/fitness/activity/ShowWorkoutActivity.java @@ -20,7 +20,6 @@ package de.tadris.fitness.activity; import android.app.AlertDialog; -import android.content.DialogInterface; import android.content.res.Resources; import android.graphics.Color; import android.graphics.Typeface; @@ -114,7 +113,7 @@ public class ShowWorkoutActivity extends FitoTrackActivity { addTitle(getString(R.string.workoutBurnedEnergy)); addKeyValue(getString(R.string.workoutTotalEnergy), workout.calorie + " kcal", - getString(R.string.workoutEnergyConsumption), UnitUtils.getPace((double)workout.calorie / workout.length / 1000)); + getString(R.string.workoutEnergyConsumption), UnitUtils.getRelativeEnergyConsumption((double)workout.calorie / ((double)workout.length / 1000))); } @@ -224,13 +223,10 @@ public class ShowWorkoutActivity extends FitoTrackActivity { map.addLayer(workoutLayer); final BoundingBox bounds= new BoundingBox(workoutLayer.getLatLongs()).extendMeters(50); - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - map.getModel().mapViewPosition.setMapPosition(new MapPosition(bounds.getCenterPoint(), - (byte)(LatLongUtils.zoomForBounds(map.getDimension(), bounds, map.getModel().displayModel.getTileSize())))); - map.animate().alpha(1f).setDuration(1000).start(); - } + new Handler().postDelayed(() -> { + map.getModel().mapViewPosition.setMapPosition(new MapPosition(bounds.getCenterPoint(), + (byte)(LatLongUtils.zoomForBounds(map.getDimension(), bounds, map.getModel().displayModel.getTileSize())))); + map.animate().alpha(1f).setDuration(1000).start(); }, 1000); map.getModel().mapViewPosition.setMapLimit(bounds); @@ -282,12 +278,7 @@ public class ShowWorkoutActivity extends FitoTrackActivity { new AlertDialog.Builder(this).setTitle(R.string.deleteWorkout) .setMessage(R.string.deleteWorkoutMessage) .setNegativeButton(R.string.cancel, null) - .setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - deleteWorkout(); - } - }) + .setPositiveButton(R.string.delete, (dialog, which) -> deleteWorkout()) .create().show(); } diff --git a/app/src/main/java/de/tadris/fitness/data/Workout.java b/app/src/main/java/de/tadris/fitness/data/Workout.java index 69937fc..cbbc237 100644 --- a/app/src/main/java/de/tadris/fitness/data/Workout.java +++ b/app/src/main/java/de/tadris/fitness/data/Workout.java @@ -26,7 +26,6 @@ import androidx.room.PrimaryKey; public class Workout{ public static final String WORKOUT_TYPE_RUNNING= "running"; - public static final String WORKOUT_TYPE_WALKING= "running"; public static final String WORKOUT_TYPE_HIKING= "hiking"; public static final String WORKOUT_TYPE_CYCLING= "cycling"; diff --git a/app/src/main/java/de/tadris/fitness/location/WorkoutRecorder.java b/app/src/main/java/de/tadris/fitness/location/WorkoutRecorder.java index 6a9dc09..d0c0d29 100644 --- a/app/src/main/java/de/tadris/fitness/location/WorkoutRecorder.java +++ b/app/src/main/java/de/tadris/fitness/location/WorkoutRecorder.java @@ -210,9 +210,15 @@ public class WorkoutRecorder implements LocationListener.LocationChangeListener return (int)distance; } + private int maxCalories= 0; public int getCalories(){ workout.avgSpeed= getAvgSpeed(); - return CalorieCalculator.calculateCalories(workout, Instance.getInstance(context).userPreferences.weight); + workout.duration= getDuration(); + int calories= CalorieCalculator.calculateCalories(workout, Instance.getInstance(context).userPreferences.weight); + if(calories > maxCalories){ + maxCalories= calories; + } + return maxCalories; } /** diff --git a/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java b/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java index ae3ccc7..d253ac3 100644 --- a/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java +++ b/app/src/main/java/de/tadris/fitness/util/CalorieCalculator.java @@ -24,6 +24,8 @@ import de.tadris.fitness.data.Workout; public class CalorieCalculator { /** + * + * workoutType, duration and avgSpeed of workout have to be set * * @param workout the workout * @param weight the weight of the person in kilogram