From 3f9dd74797483c30154fe4484a01bf407ed5ce5b Mon Sep 17 00:00:00 2001 From: y20k Date: Thu, 4 Mar 2021 21:03:12 +0100 Subject: [PATCH] mark end of a track with a flag icon (see #95) --- app/build.gradle | 20 +++++++++---------- .../java/org/y20k/trackbook/core/Track.kt | 4 ++-- .../java/org/y20k/trackbook/core/Tracklist.kt | 4 ++-- .../y20k/trackbook/core/TracklistElement.kt | 4 ++-- .../java/org/y20k/trackbook/core/WayPoint.kt | 4 ++-- .../trackbook/helpers/MapOverlayHelper.kt | 14 ++++++++++--- .../ic_marker_track_end_blue_36dp.xml | 14 +++++++++++++ .../ic_marker_track_end_starred_blue_36dp.xml | 7 +++++++ build.gradle | 6 +++--- 9 files changed, 52 insertions(+), 25 deletions(-) create mode 100644 app/src/main/res/drawable/ic_marker_track_end_blue_36dp.xml create mode 100644 app/src/main/res/drawable/ic_marker_track_end_starred_blue_36dp.xml diff --git a/app/build.gradle b/app/build.gradle index 3fa4cc2..56b5626 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-parcelize' apply plugin: 'androidx.navigation.safeargs.kotlin' android { @@ -51,26 +51,24 @@ android { dependencies { // Kotlin + def coroutinesVersion = "1.4.1" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9' + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion" // AndroidX + def navigationVersion = "2.3.3" implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation 'androidx.core:core-ktx:1.3.2' - implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version" - implementation "androidx.navigation:navigation-ui-ktx:$navigation_version" + implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion" + implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion" implementation 'androidx.preference:preference-ktx:1.1.1' - implementation 'com.google.android.material:material:1.2.1' + implementation 'com.google.android.material:material:1.3.0' // Gson implementation 'com.google.code.gson:gson:2.8.6' // OpenStreetMap - implementation 'org.osmdroid:osmdroid-android:6.1.8' -} - -androidExtensions { - experimental = true + implementation 'org.osmdroid:osmdroid-android:6.1.10' } diff --git a/app/src/main/java/org/y20k/trackbook/core/Track.kt b/app/src/main/java/org/y20k/trackbook/core/Track.kt index 361911b..b83ff53 100644 --- a/app/src/main/java/org/y20k/trackbook/core/Track.kt +++ b/app/src/main/java/org/y20k/trackbook/core/Track.kt @@ -21,7 +21,7 @@ import android.content.Context import android.os.Parcelable import androidx.annotation.Keep import com.google.gson.annotations.Expose -import kotlinx.android.parcel.Parcelize +import kotlinx.parcelize.Parcelize import org.y20k.trackbook.Keys import org.y20k.trackbook.helpers.DateTimeHelper import java.util.* @@ -75,4 +75,4 @@ data class Track (@Expose var trackFormatVersion: Int = Keys.CURRENT_TRACK_FORMA } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/y20k/trackbook/core/Tracklist.kt b/app/src/main/java/org/y20k/trackbook/core/Tracklist.kt index 8944ed8..53ec512 100644 --- a/app/src/main/java/org/y20k/trackbook/core/Tracklist.kt +++ b/app/src/main/java/org/y20k/trackbook/core/Tracklist.kt @@ -20,7 +20,7 @@ package org.y20k.trackbook.core import android.os.Parcelable import androidx.annotation.Keep import com.google.gson.annotations.Expose -import kotlinx.android.parcel.Parcelize +import kotlinx.parcelize.Parcelize import org.y20k.trackbook.Keys import org.y20k.trackbook.helpers.TrackHelper import java.util.* @@ -50,4 +50,4 @@ data class Tracklist (@Expose val tracklistFormatVersion: Int = Keys.CURRENT_TRA return Tracklist(tracklistFormatVersion, mutableListOf().apply { addAll(tracklistElements) }, modificationDate) } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/y20k/trackbook/core/TracklistElement.kt b/app/src/main/java/org/y20k/trackbook/core/TracklistElement.kt index baa7e5a..c999a4f 100644 --- a/app/src/main/java/org/y20k/trackbook/core/TracklistElement.kt +++ b/app/src/main/java/org/y20k/trackbook/core/TracklistElement.kt @@ -20,7 +20,7 @@ package org.y20k.trackbook.core import android.os.Parcelable import androidx.annotation.Keep import com.google.gson.annotations.Expose -import kotlinx.android.parcel.Parcelize +import kotlinx.parcelize.Parcelize import java.util.* @@ -43,4 +43,4 @@ data class TracklistElement(@Expose var name: String, return date.time } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/y20k/trackbook/core/WayPoint.kt b/app/src/main/java/org/y20k/trackbook/core/WayPoint.kt index d3bf6b0..1792909 100644 --- a/app/src/main/java/org/y20k/trackbook/core/WayPoint.kt +++ b/app/src/main/java/org/y20k/trackbook/core/WayPoint.kt @@ -21,7 +21,7 @@ import android.location.Location import android.os.Parcelable import androidx.annotation.Keep import com.google.gson.annotations.Expose -import kotlinx.android.parcel.Parcelize +import kotlinx.parcelize.Parcelize /* @@ -52,4 +52,4 @@ data class WayPoint(@Expose val provider: String, return location } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt b/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt index 4f154ad..04e147b 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt +++ b/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt @@ -92,8 +92,9 @@ class MapOverlayHelper (private var markerListener: MarkerListener) { val overlayItems: ArrayList = ArrayList() val wayPoints: MutableList = track.wayPoints + val maxIndex: Int = wayPoints.size - 1 - wayPoints.forEach { wayPoint -> + wayPoints.forEachIndexed { index: Int, wayPoint: WayPoint -> // create marker val newMarker: Drawable @@ -111,7 +112,14 @@ class MapOverlayHelper (private var markerListener: MarkerListener) { } // CASE: Recording is paused/stopped else -> { - if (wayPoint.starred) { + if (index == maxIndex) { + if (wayPoint.starred) { + newMarker = ContextCompat.getDrawable(context, R.drawable.ic_marker_track_end_starred_blue_36dp)!! + } else { + newMarker = ContextCompat.getDrawable(context, R.drawable.ic_marker_track_end_blue_36dp)!! + } + } + else if (wayPoint.starred) { newMarker = ContextCompat.getDrawable(context, R.drawable.ic_star_blue_24dp)!! } else if (wayPoint.isStopOver) { newMarker = ContextCompat.getDrawable(context, R.drawable.ic_marker_track_location_grey_24dp)!! @@ -159,4 +167,4 @@ class MapOverlayHelper (private var markerListener: MarkerListener) { }) } -} \ No newline at end of file +} diff --git a/app/src/main/res/drawable/ic_marker_track_end_blue_36dp.xml b/app/src/main/res/drawable/ic_marker_track_end_blue_36dp.xml new file mode 100644 index 0000000..4b8db46 --- /dev/null +++ b/app/src/main/res/drawable/ic_marker_track_end_blue_36dp.xml @@ -0,0 +1,14 @@ + + + + diff --git a/app/src/main/res/drawable/ic_marker_track_end_starred_blue_36dp.xml b/app/src/main/res/drawable/ic_marker_track_end_starred_blue_36dp.xml new file mode 100644 index 0000000..084f65a --- /dev/null +++ b/app/src/main/res/drawable/ic_marker_track_end_starred_blue_36dp.xml @@ -0,0 +1,7 @@ + + + + diff --git a/build.gradle b/build.gradle index b9279fa..22a5f08 100644 --- a/build.gradle +++ b/build.gradle @@ -2,15 +2,15 @@ buildscript { ext { - kotlin_version = '1.4.21' - navigation_version = '2.3.2' + kotlin_version = '1.4.31' + navigation_version = '2.3.3' } repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.1' + classpath 'com.android.tools.build:gradle:4.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"