fixes calculation auf pauses & displays start time in addition to start date

This commit is contained in:
y20k 2020-05-14 16:16:34 +02:00
parent 8796aa9331
commit f686cac359
No known key found for this signature in database
GPG key ID: 824D4259F41FAFF6
11 changed files with 23 additions and 17 deletions

View file

@ -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"

View file

@ -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)
}

View file

@ -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<View>(R.id.dialog_rename_track_input_edit_text) as EditText
val inputField = view.findViewById<EditText>(R.id.dialog_rename_track_input_edit_text)
// pre-fill with current track name
inputField.setText(trackName, TextView.BufferType.EDITABLE)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -111,10 +111,10 @@ class TracklistAdapter(private val fragment: Fragment) : RecyclerView.Adapter<Re
val backgroundJob = Job()
val uiScope = CoroutineScope(Dispatchers.Main + backgroundJob)
uiScope.launch {
notifyItemRemoved(position)
val deferred: Deferred<Tracklist> = async { FileHelper.deleteTrackSuspended(context, position, tracklist) }
// wait for result and store in tracklist
tracklist = deferred.await()
notifyItemRemoved(position)
backgroundJob.cancel()
}
}

View file

@ -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)

View file

@ -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"

View file

@ -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
}

View file

@ -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)