From f686cac359357384bbd7b150a7245e16a27bccb1 Mon Sep 17 00:00:00 2001 From: y20k Date: Thu, 14 May 2020 16:16:34 +0200 Subject: [PATCH] fixes calculation auf pauses & displays start time in addition to start date --- app/build.gradle | 6 +++--- app/src/main/java/org/y20k/trackbook/TrackerService.kt | 2 +- .../org/y20k/trackbook/dialogs/RenameTrackDialog.kt | 3 +-- .../java/org/y20k/trackbook/helpers/DateTimeHelper.kt | 10 ++++++++-- .../java/org/y20k/trackbook/helpers/LocationHelper.kt | 2 +- .../java/org/y20k/trackbook/helpers/TrackHelper.kt | 2 +- .../org/y20k/trackbook/tracklist/TracklistAdapter.kt | 2 +- .../org/y20k/trackbook/ui/TrackFragmentLayoutHolder.kt | 4 ++-- app/src/main/res/layout/dialog_rename_track.xml | 1 + build.gradle | 6 +++--- metadata/en-US/changelogs/40.txt | 2 +- 11 files changed, 23 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4f64312..5e6c2cc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -72,10 +72,10 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0' implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0' - implementation "androidx.preference:preference-ktx:1.1.0" + implementation "androidx.preference:preference-ktx:1.1.1" - implementation 'androidx.navigation:navigation-fragment-ktx:2.2.1' - implementation 'androidx.navigation:navigation-ui-ktx:2.2.1' + implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2' + implementation 'androidx.navigation:navigation-ui-ktx:2.2.2' implementation "com.google.android.material:material:1.1.0-beta01" diff --git a/app/src/main/java/org/y20k/trackbook/TrackerService.kt b/app/src/main/java/org/y20k/trackbook/TrackerService.kt index 80b9d06..224810c 100644 --- a/app/src/main/java/org/y20k/trackbook/TrackerService.kt +++ b/app/src/main/java/org/y20k/trackbook/TrackerService.kt @@ -215,7 +215,7 @@ class TrackerService(): Service(), CoroutineScope, SensorEventListener { // set resumed flag resumed = true // calculate length of recording break - track.recordingPaused = TrackHelper.calculateRecordingPaused(track.recordingStop) + track.recordingPaused = track.recordingPaused + TrackHelper.calculateDurationOfPause(track.recordingStop) // start tracking startTracking(newTrack = false) } diff --git a/app/src/main/java/org/y20k/trackbook/dialogs/RenameTrackDialog.kt b/app/src/main/java/org/y20k/trackbook/dialogs/RenameTrackDialog.kt index ebd8403..0e700a5 100644 --- a/app/src/main/java/org/y20k/trackbook/dialogs/RenameTrackDialog.kt +++ b/app/src/main/java/org/y20k/trackbook/dialogs/RenameTrackDialog.kt @@ -20,7 +20,6 @@ package org.y20k.trackbook.dialogs import android.content.Context import android.text.InputType import android.view.LayoutInflater -import android.view.View import android.widget.EditText import android.widget.TextView import com.google.android.material.dialog.MaterialAlertDialogBuilder @@ -51,7 +50,7 @@ class RenameTrackDialog (private var renameTrackListener: RenameTrackListener) { // get input field val inflater = LayoutInflater.from(context) val view = inflater.inflate(R.layout.dialog_rename_track, null) - val inputField = view.findViewById(R.id.dialog_rename_track_input_edit_text) as EditText + val inputField = view.findViewById(R.id.dialog_rename_track_input_edit_text) // pre-fill with current track name inputField.setText(trackName, TextView.BufferType.EDITABLE) diff --git a/app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt b/app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt index c02d380..3cadcae 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt +++ b/app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt @@ -56,19 +56,25 @@ object DateTimeHelper { } - /* Create sortable string from date - used for filenames */ + /* Create sortable string for date - used for filenames */ fun convertToSortableDateString(date: Date): String { val dateFormat: SimpleDateFormat = SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.US) return dateFormat.format(date) } - /* Creates a readable string from date - used in the UI */ + /* Creates a readable string for date - used in the UI */ fun convertToReadableDate(date: Date, dateStyle: Int = DateFormat.LONG): String { return DateFormat.getDateInstance(dateStyle, Locale.getDefault()).format(date) } + /* Creates a readable string date and time - used in the UI */ + fun convertToReadableDateAndTime(date: Date, dateStyle: Int = DateFormat.SHORT, timeStyle: Int = DateFormat.SHORT): String { + return "${DateFormat.getDateInstance(dateStyle, Locale.getDefault()).format(date)} ${DateFormat.getTimeInstance(timeStyle, Locale.getDefault()).format(date)}" + } + + /* Calculates time difference between two locations */ fun calculateTimeDistance(previousLocation: Location?, location: Location): Long { var timeDifference: Long = 0L diff --git a/app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt b/app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt index 04243e2..3a6584a 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt +++ b/app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt @@ -75,7 +75,7 @@ object LocationHelper { } - /* Determines whether one Location reading is better than the current Location fix */ + /* Determines whether one location reading is better than the current location fix */ fun isBetterLocation(location: Location, currentBestLocation: Location?): Boolean { // Credit: https://developer.android.com/guide/topics/location/strategies.html#BestEstimate diff --git a/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt b/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt index e78875e..d96366a 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt +++ b/app/src/main/java/org/y20k/trackbook/helpers/TrackHelper.kt @@ -145,7 +145,7 @@ object TrackHelper { /* Calculates time passed since last stop of recording */ - fun calculateRecordingPaused(recordingStop: Date): Long = + fun calculateDurationOfPause(recordingStop: Date): Long = GregorianCalendar.getInstance().time.time - recordingStop.time diff --git a/app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt b/app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt index 98feb30..a825722 100644 --- a/app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt +++ b/app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt @@ -111,10 +111,10 @@ class TracklistAdapter(private val fragment: Fragment) : RecyclerView.Adapter = async { FileHelper.deleteTrackSuspended(context, position, tracklist) } // wait for result and store in tracklist tracklist = deferred.await() + notifyItemRemoved(position) backgroundJob.cancel() } } diff --git a/app/src/main/java/org/y20k/trackbook/ui/TrackFragmentLayoutHolder.kt b/app/src/main/java/org/y20k/trackbook/ui/TrackFragmentLayoutHolder.kt index b9b9b71..159c2da 100644 --- a/app/src/main/java/org/y20k/trackbook/ui/TrackFragmentLayoutHolder.kt +++ b/app/src/main/java/org/y20k/trackbook/ui/TrackFragmentLayoutHolder.kt @@ -185,8 +185,8 @@ data class TrackFragmentLayoutHolder(var context: Context, var inflater: LayoutI stepsView.text = steps waypointsView.text = track.wayPoints.size.toString() durationView.text = DateTimeHelper.convertToReadableTime(context, track.duration) - recordingStartView.text = DateTimeHelper.convertToReadableDate(track.recordingStart) - recordingStopView.text = DateTimeHelper.convertToReadableDate(track.recordingStart) + recordingStartView.text = DateTimeHelper.convertToReadableDateAndTime(track.recordingStart) + recordingStopView.text = DateTimeHelper.convertToReadableDateAndTime(track.recordingStart) maxAltitudeView.text = LengthUnitHelper.convertDistanceToString(track.maxAltitude, useImperialUnits) minAltitudeView.text = LengthUnitHelper.convertDistanceToString(track.minAltitude, useImperialUnits) positiveElevationView.text = LengthUnitHelper.convertDistanceToString(track.positiveElevation, useImperialUnits) diff --git a/app/src/main/res/layout/dialog_rename_track.xml b/app/src/main/res/layout/dialog_rename_track.xml index 69058e5..04c2a7c 100644 --- a/app/src/main/res/layout/dialog_rename_track.xml +++ b/app/src/main/res/layout/dialog_rename_track.xml @@ -16,6 +16,7 @@ android:layout_marginBottom="24dp" android:hint="@string/dialog_rename_track_input_hint" android:maxLines="1" + app:endIconMode="clear_text" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/build.gradle b/build.gradle index d8e0fa0..05b374b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,16 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.3.71' + ext.kotlin_version = '1.3.72' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.1' + classpath 'com.android.tools.build:gradle:3.6.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.1" + classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.2.2" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/metadata/en-US/changelogs/40.txt b/metadata/en-US/changelogs/40.txt index 4a6a3fb..f2992ea 100644 --- a/metadata/en-US/changelogs/40.txt +++ b/metadata/en-US/changelogs/40.txt @@ -1,5 +1,5 @@ # v2.0.3 - Echoes **2020-03-13** -- updated translation +- updated translations - minor bug fixes (e.g. plausibility check for the first location) \ No newline at end of file