diff --git a/app/build.gradle b/app/build.gradle index 1e9a076..b7864d0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -49,6 +49,12 @@ android { sourceCompatibility = '1.8' targetCompatibility = '1.8' } + lintOptions { + checkReleaseBuilds false + // Or, if you prefer, you can continue to check for errors in release builds, + // but continue the build even when errors are found: +// abortOnError false + } } dependencies { diff --git a/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java b/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java index 84b7993..12a56f7 100644 --- a/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java +++ b/app/src/main/java/de/tadris/fitness/activity/RecordWorkoutActivity.java @@ -38,6 +38,8 @@ import android.view.ViewGroup; import android.widget.EditText; import android.widget.TextView; +import android.speech.tts.TextToSpeech; + import androidx.core.app.ActivityCompat; import org.mapsforge.core.graphics.Paint; @@ -171,6 +173,7 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location if(isResumed){ mHandler.post(this::updateDescription); } + mHandler.post(this::speechUpdate); } }catch (InterruptedException e){ e.printStackTrace(); @@ -178,14 +181,41 @@ public class RecordWorkoutActivity extends FitoTrackActivity implements Location }).start(); } - int i= 0; + private void speechUpdate() { + long duration = recorder.getDuration(); + if (duration / interval == lastSpeechUpdate / interval) + return; - private void updateDescription(){ - i++; - timeView.setText(UnitUtils.getHourMinuteSecondTime(recorder.getDuration())); - infoViews[0].setText(getString(R.string.workoutDistance), UnitUtils.getDistance(recorder.getDistance())); + timeView.setText(UnitUtils.getHourMinuteSecondTime(duration)); + final String distanceCaption = getString(R.string.workoutDistance); + final String distance = UnitUtils.getDistance(recorder.getDistance()); + final String avgSpeedCaption = getString(R.string.workoutAvgSpeed); + final String avgSpeed = UnitUtils.getSpeed(Math.min(100d, recorder.getAvgSpeed())); + + tts = new TextToSpeech(this, (int status) -> { + if (status != TextToSpeech.SUCCESS) return; + final String text = distanceCaption + ": " + distance + ". " + + avgSpeedCaption + ": " + avgSpeed; + tts.speak(text, TextToSpeech.QUEUE_FLUSH, null, "updateDescription" + duration); + }); + + lastSpeechUpdate = duration; + } + + TextToSpeech tts; + long lastSpeechUpdate = 0; + final long interval = 60 * 1000; + + private void updateDescription() { + long duration = recorder.getDuration(); + timeView.setText(UnitUtils.getHourMinuteSecondTime(duration)); + final String distanceCaption = getString(R.string.workoutDistance); + final String distance = UnitUtils.getDistance(recorder.getDistance()); + final String avgSpeedCaption = getString(R.string.workoutAvgSpeed); + final String avgSpeed = UnitUtils.getSpeed(Math.min(100d, recorder.getAvgSpeed())); + infoViews[0].setText(distanceCaption, distance); infoViews[1].setText(getString(R.string.workoutBurnedEnergy), recorder.getCalories() + " kcal"); - infoViews[2].setText(getString(R.string.workoutAvgSpeed), UnitUtils.getSpeed(Math.min(100d, recorder.getAvgSpeed()))); + infoViews[2].setText(avgSpeedCaption, avgSpeed); infoViews[3].setText(getString(R.string.workoutPauseDuration), UnitUtils.getHourMinuteSecondTime(recorder.getPauseDuration())); } diff --git a/app/src/main/java/de/tadris/fitness/recording/WorkoutRecorder.java b/app/src/main/java/de/tadris/fitness/recording/WorkoutRecorder.java index 1346033..db2acfc 100644 --- a/app/src/main/java/de/tadris/fitness/recording/WorkoutRecorder.java +++ b/app/src/main/java/de/tadris/fitness/recording/WorkoutRecorder.java @@ -48,7 +48,7 @@ public class WorkoutRecorder implements LocationListener.LocationChangeListener } } - private static final int PAUSE_TIME= 10000; + private static final int PAUSE_TIME= 1000*1000; /** * Time after which the workout is stopped and saved automatically because there is no activity anymore diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bd74019..224ef85 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -57,7 +57,7 @@ Pace Route Speed - Avg. Speed + Average Speed Top Speed Burned Energy Total Energy diff --git a/build.gradle b/build.gradle index 795a6ec..75828ac 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' + classpath 'com.android.tools.build:gradle:3.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files