From c434d3b84013709493b5ff9f1f08310f2b4d260e Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Thu, 23 Mar 2023 22:48:25 -0700 Subject: [PATCH] checkpoint --- app/src/main/AndroidManifest.xml | 17 ++-- .../voussoir/trkpt}/Database.kt | 9 +-- .../voussoir/trkpt}/Homepoint.kt | 2 +- .../trackbook => net/voussoir/trkpt}/Keys.kt | 8 +- .../voussoir/trkpt}/MainActivity.kt | 18 ++--- .../voussoir/trkpt}/MapFragment.kt | 10 ++- .../voussoir/trkpt}/SettingsFragment.kt | 14 ++-- .../trackbook => net/voussoir/trkpt}/Track.kt | 11 ++- .../voussoir/trkpt}/TrackFragment.kt | 28 ++++--- .../voussoir/trkpt}/Trackbook.kt | 14 ++-- .../voussoir/trkpt}/TrackerService.kt | 80 ++++++++++++------- .../trkpt}/TrackingToggleTileService.kt | 8 +- .../voussoir/trkpt}/TracklistFragment.kt | 12 +-- .../trackbook => net/voussoir/trkpt}/Trkpt.kt | 7 +- .../voussoir/trkpt}/dialogs/ErrorDialog.kt | 4 +- .../voussoir/trkpt}/dialogs/YesNoDialog.kt | 6 +- .../trkpt}/extensions/SharedPreferencesExt.kt | 2 +- .../voussoir/trkpt}/functions.kt | 12 +-- .../voussoir/trkpt}/get_path_from_uri.kt | 0 .../voussoir/trkpt}/helpers/AppThemeHelper.kt | 6 +- .../voussoir/trkpt}/helpers/DateTimeHelper.kt | 8 +- .../trkpt}/helpers/LengthUnitHelper.kt | 2 +- .../voussoir/trkpt}/helpers/LocationHelper.kt | 4 +- .../trkpt}/helpers/MapOverlayHelper.kt | 6 +- .../trkpt}/helpers/NotificationHelper.kt | 15 ++-- .../trkpt}/helpers/PreferencesHelper.kt | 13 +-- .../voussoir/trkpt}/helpers/UiHelper.kt | 7 +- .../trkpt}/tracklist/TracklistAdapter.kt | 12 +-- .../main/res/navigation/nav_graph_main.xml | 8 +- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 4 +- 31 files changed, 189 insertions(+), 159 deletions(-) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/Database.kt (95%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/Homepoint.kt (95%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/Keys.kt (95%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/MainActivity.kt (93%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/MapFragment.kt (98%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/SettingsFragment.kt (97%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/Track.kt (97%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/TrackFragment.kt (96%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/Trackbook.kt (92%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/TrackerService.kt (89%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/TrackingToggleTileService.kt (96%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/TracklistFragment.kt (95%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/Trkpt.kt (92%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/dialogs/ErrorDialog.kt (97%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/dialogs/YesNoDialog.kt (96%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/extensions/SharedPreferencesExt.kt (92%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/functions.kt (69%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/get_path_from_uri.kt (100%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/AppThemeHelper.kt (96%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/DateTimeHelper.kt (95%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/LengthUnitHelper.kt (99%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/LocationHelper.kt (99%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/MapOverlayHelper.kt (97%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/NotificationHelper.kt (94%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/PreferencesHelper.kt (92%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/helpers/UiHelper.kt (95%) rename app/src/main/java/{org/y20k/trackbook => net/voussoir/trkpt}/tracklist/TracklistAdapter.kt (95%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 69b0e73..5d8b95f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="net.voussoir.trkpt"> @@ -19,11 +19,10 @@ - @@ -43,19 +42,19 @@ - - - + + + = Build.VERSION_CODES.R) + if (net.voussoir.trkpt.BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { StrictMode.setVmPolicy( VmPolicy.Builder() @@ -62,7 +62,7 @@ class MainActivity: AppCompatActivity() } // set user agent to prevent getting banned from the osm servers - Configuration.getInstance().userAgentValue = BuildConfig.APPLICATION_ID + Configuration.getInstance().userAgentValue = net.voussoir.trkpt.BuildConfig.APPLICATION_ID // set the path for osmdroid's files (e.g. tile cache) Configuration.getInstance().osmdroidBasePath = this.getExternalFilesDir(null) diff --git a/app/src/main/java/org/y20k/trackbook/MapFragment.kt b/app/src/main/java/net/voussoir/trkpt/MapFragment.kt similarity index 98% rename from app/src/main/java/org/y20k/trackbook/MapFragment.kt rename to app/src/main/java/net/voussoir/trkpt/MapFragment.kt index b6cc877..bb2fa52 100644 --- a/app/src/main/java/org/y20k/trackbook/MapFragment.kt +++ b/app/src/main/java/net/voussoir/trkpt/MapFragment.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +package net.voussoir.trkpt import android.Manifest import android.app.Dialog @@ -53,7 +53,8 @@ import org.osmdroid.views.overlay.Polyline import org.osmdroid.views.overlay.TilesOverlay import org.osmdroid.views.overlay.compass.CompassOverlay import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider -import org.y20k.trackbook.helpers.* +import net.voussoir.trkpt.helpers.* +import net.voussoir.trkpt.R class MapFragment : Fragment() { @@ -219,7 +220,7 @@ class MapFragment : Fragment() { startTracking() } - handler.post(location_update_redraw) + handler.postDelayed(location_update_redraw, 0) } currentLocationButton.setOnClickListener { centerMap(currentBestLocation, animated=true) @@ -452,7 +453,7 @@ class MapFragment : Fragment() clear_track_overlay() val pl = Polyline(mapView) pl.outlinePaint.strokeWidth = Keys.POLYLINE_THICKNESS - pl.outlinePaint.color = Keys.POLYLINE_COLOR + pl.outlinePaint.color = requireContext().getColor(R.color.fuchsia) mapView.overlays.add(pl) current_track_overlay = pl } @@ -601,6 +602,7 @@ class MapFragment : Fragment() // get state of tracking and update button if necessary trackingState = trackerService.trackingState update_main_button() + handler.postDelayed(location_update_redraw, 0) // register listener for changes in shared preferences PreferencesHelper.registerPreferenceChangeListener(sharedPreferenceChangeListener) // start listening for location updates diff --git a/app/src/main/java/org/y20k/trackbook/SettingsFragment.kt b/app/src/main/java/net/voussoir/trkpt/SettingsFragment.kt similarity index 97% rename from app/src/main/java/org/y20k/trackbook/SettingsFragment.kt rename to app/src/main/java/net/voussoir/trkpt/SettingsFragment.kt index cea0d3f..1e68e92 100644 --- a/app/src/main/java/org/y20k/trackbook/SettingsFragment.kt +++ b/app/src/main/java/net/voussoir/trkpt/SettingsFragment.kt @@ -14,7 +14,11 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import YesNoDialog import android.app.Activity @@ -40,10 +44,10 @@ import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreferenceCompat import androidx.preference.contains import get_path_from_uri -import org.y20k.trackbook.helpers.AppThemeHelper -import org.y20k.trackbook.helpers.LengthUnitHelper -import org.y20k.trackbook.helpers.PreferencesHelper -import org.y20k.trackbook.helpers.random_device_id +import net.voussoir.trkpt.helpers.AppThemeHelper +import net.voussoir.trkpt.helpers.LengthUnitHelper +import net.voussoir.trkpt.helpers.PreferencesHelper +import net.voussoir.trkpt.helpers.random_device_id class SettingsFragment : PreferenceFragmentCompat(), YesNoDialog.YesNoDialogListener { diff --git a/app/src/main/java/org/y20k/trackbook/Track.kt b/app/src/main/java/net/voussoir/trkpt/Track.kt similarity index 97% rename from app/src/main/java/org/y20k/trackbook/Track.kt rename to app/src/main/java/net/voussoir/trkpt/Track.kt index 5aa6c8d..3b6b814 100644 --- a/app/src/main/java/org/y20k/trackbook/Track.kt +++ b/app/src/main/java/net/voussoir/trkpt/Track.kt @@ -14,22 +14,25 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import android.content.Context import android.database.Cursor -import android.database.DatabaseUtils.dumpCursorToString import android.net.Uri import android.os.Handler import android.os.Looper import android.util.Log import android.widget.Toast -import org.y20k.trackbook.helpers.iso8601 +import net.voussoir.trkpt.helpers.iso8601 import java.text.SimpleDateFormat import java.util.* data class Track ( - val database: Database, + val database: net.voussoir.trkpt.Database, val device_id: String, var start_time: Date, var end_time: Date, diff --git a/app/src/main/java/org/y20k/trackbook/TrackFragment.kt b/app/src/main/java/net/voussoir/trkpt/TrackFragment.kt similarity index 96% rename from app/src/main/java/org/y20k/trackbook/TrackFragment.kt rename to app/src/main/java/net/voussoir/trkpt/TrackFragment.kt index 3cd60c5..a65f637 100644 --- a/app/src/main/java/org/y20k/trackbook/TrackFragment.kt +++ b/app/src/main/java/net/voussoir/trkpt/TrackFragment.kt @@ -14,7 +14,11 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import YesNoDialog import android.app.Activity @@ -54,14 +58,14 @@ import org.osmdroid.views.overlay.TilesOverlay import org.osmdroid.views.overlay.simplefastpoint.SimpleFastPointOverlay import org.osmdroid.views.overlay.simplefastpoint.SimpleFastPointOverlayOptions import org.osmdroid.views.overlay.simplefastpoint.SimplePointTheme -import org.y20k.trackbook.helpers.AppThemeHelper -import org.y20k.trackbook.helpers.DateTimeHelper -import org.y20k.trackbook.helpers.LengthUnitHelper -import org.y20k.trackbook.helpers.PreferencesHelper -import org.y20k.trackbook.helpers.UiHelper -import org.y20k.trackbook.helpers.create_start_end_markers -import org.y20k.trackbook.helpers.iso8601 -import org.y20k.trackbook.helpers.iso8601_parse +import net.voussoir.trkpt.helpers.AppThemeHelper +import net.voussoir.trkpt.helpers.DateTimeHelper +import net.voussoir.trkpt.helpers.LengthUnitHelper +import net.voussoir.trkpt.helpers.PreferencesHelper +import net.voussoir.trkpt.helpers.UiHelper +import net.voussoir.trkpt.helpers.create_start_end_markers +import net.voussoir.trkpt.helpers.iso8601 +import net.voussoir.trkpt.helpers.iso8601_parse import java.text.SimpleDateFormat import java.util.* @@ -114,7 +118,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { this.trackbook = (requireContext().applicationContext as Trackbook) - val database: Database = (requireActivity().applicationContext as Trackbook).database + val database: net.voussoir.trkpt.Database = (requireActivity().applicationContext as Trackbook).database track = Track( database=database, name=this.requireArguments().getString(Keys.ARG_TRACK_TITLE, ""), @@ -337,7 +341,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener val pointTheme = SimplePointTheme(track_geopoints, false) val style = Paint() style.style = Paint.Style.FILL - style.color = Keys.POLYLINE_COLOR + style.color = requireContext().getColor(R.color.fuchsia) style.flags = Paint.ANTI_ALIAS_FLAG val overlayOptions: SimpleFastPointOverlayOptions = SimpleFastPointOverlayOptions.getDefaultStyle() .setAlgorithm(SimpleFastPointOverlayOptions.RenderingAlgorithm.MEDIUM_OPTIMIZATION) @@ -369,7 +373,7 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener { var pl = Polyline(mapView) pl.outlinePaint.strokeWidth = Keys.POLYLINE_THICKNESS - pl.outlinePaint.color = Keys.POLYLINE_COLOR + pl.outlinePaint.color = requireContext().getColor(R.color.fuchsia) pl.infoWindow = null track_segment_overlays.add(pl) mapView.overlays.add(pl) diff --git a/app/src/main/java/org/y20k/trackbook/Trackbook.kt b/app/src/main/java/net/voussoir/trkpt/Trackbook.kt similarity index 92% rename from app/src/main/java/org/y20k/trackbook/Trackbook.kt rename to app/src/main/java/net/voussoir/trkpt/Trackbook.kt index fa6e1f9..da8bab4 100644 --- a/app/src/main/java/org/y20k/trackbook/Trackbook.kt +++ b/app/src/main/java/net/voussoir/trkpt/Trackbook.kt @@ -14,7 +14,11 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import android.Manifest import android.app.Application @@ -22,9 +26,9 @@ import android.content.pm.PackageManager import android.database.Cursor import android.util.Log import com.google.android.material.color.DynamicColors -import org.y20k.trackbook.helpers.AppThemeHelper -import org.y20k.trackbook.helpers.PreferencesHelper -import org.y20k.trackbook.helpers.PreferencesHelper.initPreferences +import net.voussoir.trkpt.helpers.AppThemeHelper +import net.voussoir.trkpt.helpers.PreferencesHelper +import net.voussoir.trkpt.helpers.PreferencesHelper.initPreferences import java.io.File @@ -35,7 +39,7 @@ interface DatabaseChangedListener class Trackbook : Application() { - val database: Database = Database(this) + val database: net.voussoir.trkpt.Database = net.voussoir.trkpt.Database(this) val homepoints: ArrayList = ArrayList() val database_changed_listeners = ArrayList() diff --git a/app/src/main/java/org/y20k/trackbook/TrackerService.kt b/app/src/main/java/net/voussoir/trkpt/TrackerService.kt similarity index 89% rename from app/src/main/java/org/y20k/trackbook/TrackerService.kt rename to app/src/main/java/net/voussoir/trkpt/TrackerService.kt index 90eeadc..c71fd4c 100644 --- a/app/src/main/java/org/y20k/trackbook/TrackerService.kt +++ b/app/src/main/java/net/voussoir/trkpt/TrackerService.kt @@ -14,7 +14,11 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import android.app.Notification import android.app.NotificationManager @@ -32,52 +36,56 @@ import android.util.Log import androidx.core.content.ContextCompat import org.osmdroid.util.GeoPoint import java.util.* -import org.y20k.trackbook.helpers.* +import net.voussoir.trkpt.helpers.* /* * TrackerService class */ class TrackerService: Service() { - /* Main class variables */ + lateinit var trackbook: Trackbook + var trackingState: Int = Keys.STATE_TRACKING_STOPPED - var gpsProviderActive: Boolean = false - var networkProviderActive: Boolean = false var useImperial: Boolean = false - var use_gps_location: Boolean = false - var use_network_location: Boolean = false var omitRests: Boolean = true var device_id: String = random_device_id() var currentBestLocation: Location = getDefaultLocation() + var last_location_time: Long = 0 var lastCommit: Long = 0 var location_min_time_ms: Long = 0 private val RECENT_TRKPT_COUNT = 7200 lateinit var recent_trkpts: Deque lateinit var recent_displacement_locations: Deque - var recent_trackpoints_for_mapview: MutableList = mutableListOf() - var gpsLocationListenerRegistered: Boolean = false - var networkLocationListenerRegistered: Boolean = false + lateinit var recent_trackpoints_for_mapview: MutableList var bound: Boolean = false private val binder = LocalBinder() - lateinit var trackbook: Trackbook - private lateinit var locationManager: LocationManager + private lateinit var notificationManager: NotificationManager private lateinit var notificationHelper: NotificationHelper + + private lateinit var locationManager: LocationManager private lateinit var gpsLocationListener: LocationListener private lateinit var networkLocationListener: LocationListener + var use_gps_location: Boolean = false + var use_network_location: Boolean = false + var gpsProviderActive: Boolean = false + var networkProviderActive: Boolean = false + var gpsLocationListenerRegistered: Boolean = false + var networkLocationListenerRegistered: Boolean = false + var mapfragment: MapFragment? = null private fun addGpsLocationListener() { if (! use_gps_location) { - Log.v("VOUSSOIR", "Skipping GPS listener.") + Log.i("VOUSSOIR", "Skipping GPS listener.") return } if (gpsLocationListenerRegistered) { - Log.v("VOUSSOIR", "GPS location listener has already been added.") + Log.i("VOUSSOIR", "GPS location listener has already been added.") return } @@ -102,20 +110,20 @@ class TrackerService: Service() gpsLocationListener, ) gpsLocationListenerRegistered = true - Log.v("VOUSSOIR", "Added GPS location listener.") + Log.i("VOUSSOIR", "Added GPS location listener.") } private fun addNetworkLocationListener() { if (! use_network_location) { - Log.v("VOUSSOIR", "Skipping Network listener.") + Log.i("VOUSSOIR", "Skipping Network listener.") return } if (networkLocationListenerRegistered) { - Log.v("VOUSSOIR", "Network location listener has already been added.") + Log.i("VOUSSOIR", "Network location listener has already been added.") return } @@ -140,7 +148,7 @@ class TrackerService: Service() networkLocationListener, ) networkLocationListenerRegistered = true - Log.v("VOUSSOIR", "Added Network location listener.") + Log.i("VOUSSOIR", "Added Network location listener.") } private fun createLocationListener(): LocationListener @@ -149,20 +157,23 @@ class TrackerService: Service() { override fun onLocationChanged(location: Location) { - Log.i("VOUSSOIR", "Processing point ${location.latitude}, ${location.longitude} ${location.time}.") + Log.i("VOUSSOIR", "Processing point ${location.time} ${location.latitude}, ${location.longitude}.") - if (! isBetterLocation(location, currentBestLocation)) + if (location.time == currentBestLocation.time) { - Log.i("VOUSSOIR", "Not better than previous.") return } + // if (! isBetterLocation(location, currentBestLocation)) + // { + // Log.i("VOUSSOIR", "Not better than previous.") + // return + // } + currentBestLocation = location - if (mapfragment != null) - { - mapfragment!!.handler.postDelayed(mapfragment!!.location_update_redraw, 0) - } + val mf = mapfragment + mf?.handler?.postDelayed(mf.location_update_redraw, 0) if (trackingState != Keys.STATE_TRACKING_ACTIVE) { @@ -199,7 +210,11 @@ class TrackerService: Service() return } } - if (! (recent_displacement_locations.isEmpty() || isDifferentEnough(recent_displacement_locations.first(), location, omitRests))) + if (recent_displacement_locations.isEmpty()) + { + // pass + } + else if (! isDifferentEnough(recent_displacement_locations.first(), location, omitRests)) { Log.i("VOUSSOIR", "Omitting due to too close to previous.") return @@ -207,6 +222,7 @@ class TrackerService: Service() val trkpt = Trkpt(device_id=device_id, location=location) trackbook.database.insert_trkpt(trkpt) + recent_trkpts.add(trkpt) while (recent_trkpts.size > RECENT_TRKPT_COUNT) { @@ -264,6 +280,7 @@ class TrackerService: Service() /* Overrides onBind from Service */ override fun onBind(p0: Intent?): IBinder { + Log.i("VOUSSOIR", "TrackerService.onBind") bound = true // start receiving location updates addGpsLocationListener() @@ -276,6 +293,7 @@ class TrackerService: Service() override fun onCreate() { super.onCreate() + Log.i("VOUSSOIR", "TrackerService.onCreate") trackbook = (applicationContext as Trackbook) trackbook.load_homepoints() recent_trkpts = ArrayDeque(RECENT_TRKPT_COUNT) @@ -317,6 +335,7 @@ class TrackerService: Service() /* Overrides onRebind from Service */ override fun onRebind(intent: Intent?) { + Log.i("VOUSSOIR", "TrackerService.onRebind") bound = true addGpsLocationListener() addNetworkLocationListener() @@ -325,6 +344,7 @@ class TrackerService: Service() /* Overrides onStartCommand from Service */ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + Log.i("VOUSSOIR", "TrackerService.onStartCommand") // SERVICE RESTART (via START_STICKY) if (intent == null) { @@ -350,6 +370,8 @@ class TrackerService: Service() /* Overrides onUnbind from Service */ override fun onUnbind(intent: Intent?): Boolean { + super.onUnbind(intent) + Log.i("VOUSSOIR", "TrackerService.onUnbind") bound = false // stop receiving location updates - if not tracking if (trackingState != Keys.STATE_TRACKING_ACTIVE) @@ -368,7 +390,7 @@ class TrackerService: Service() { locationManager.removeUpdates(gpsLocationListener) gpsLocationListenerRegistered = false - Log.v("VOUSSOIR", "Removed GPS location listener.") + Log.i("VOUSSOIR", "Removed GPS location listener.") } else { @@ -382,7 +404,7 @@ class TrackerService: Service() { locationManager.removeUpdates(networkLocationListener) networkLocationListenerRegistered = false - Log.v("VOUSSOIR", "Removed Network location listener.") + Log.i("VOUSSOIR", "Removed Network location listener.") } else { @@ -392,6 +414,7 @@ class TrackerService: Service() fun startTracking() { + Log.i("VOUSSOIR", "TrackerService.startTracking") addGpsLocationListener() addNetworkLocationListener() trackingState = Keys.STATE_TRACKING_ACTIVE @@ -402,6 +425,7 @@ class TrackerService: Service() fun stopTracking() { + Log.i("VOUSSOIR", "TrackerService.stopTracking") trackbook.database.commit() trackingState = Keys.STATE_TRACKING_STOPPED diff --git a/app/src/main/java/org/y20k/trackbook/TrackingToggleTileService.kt b/app/src/main/java/net/voussoir/trkpt/TrackingToggleTileService.kt similarity index 96% rename from app/src/main/java/org/y20k/trackbook/TrackingToggleTileService.kt rename to app/src/main/java/net/voussoir/trkpt/TrackingToggleTileService.kt index d020b2c..07f4d0e 100644 --- a/app/src/main/java/org/y20k/trackbook/TrackingToggleTileService.kt +++ b/app/src/main/java/net/voussoir/trkpt/TrackingToggleTileService.kt @@ -14,7 +14,11 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import android.content.Intent import android.content.SharedPreferences @@ -22,7 +26,7 @@ import android.graphics.drawable.Icon import android.os.Build import android.service.quicksettings.Tile import android.service.quicksettings.TileService -import org.y20k.trackbook.helpers.PreferencesHelper +import net.voussoir.trkpt.helpers.PreferencesHelper /* * TrackingToggleTileService class diff --git a/app/src/main/java/org/y20k/trackbook/TracklistFragment.kt b/app/src/main/java/net/voussoir/trkpt/TracklistFragment.kt similarity index 95% rename from app/src/main/java/org/y20k/trackbook/TracklistFragment.kt rename to app/src/main/java/net/voussoir/trkpt/TracklistFragment.kt index 3ed4aa6..f1c3359 100644 --- a/app/src/main/java/org/y20k/trackbook/TracklistFragment.kt +++ b/app/src/main/java/net/voussoir/trkpt/TracklistFragment.kt @@ -14,7 +14,11 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +/* + * Modified by voussoir for trkpt, forked from Trackbook. + */ + +package net.voussoir.trkpt import YesNoDialog import android.content.Context @@ -27,14 +31,12 @@ import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.DefaultItemAnimator -import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import kotlinx.coroutines.* import kotlinx.coroutines.Dispatchers.Main -import org.y20k.trackbook.helpers.UiHelper -import org.y20k.trackbook.helpers.iso8601 -import org.y20k.trackbook.tracklist.TracklistAdapter +import net.voussoir.trkpt.helpers.iso8601 +import net.voussoir.trkpt.tracklist.TracklistAdapter /* * TracklistFragment class diff --git a/app/src/main/java/org/y20k/trackbook/Trkpt.kt b/app/src/main/java/net/voussoir/trkpt/Trkpt.kt similarity index 92% rename from app/src/main/java/org/y20k/trackbook/Trkpt.kt rename to app/src/main/java/net/voussoir/trkpt/Trkpt.kt index d92fda4..edadd5a 100644 --- a/app/src/main/java/org/y20k/trackbook/Trkpt.kt +++ b/app/src/main/java/net/voussoir/trkpt/Trkpt.kt @@ -14,13 +14,12 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook +package net.voussoir.trkpt import android.location.Location -import org.osmdroid.api.IGeoPoint import org.osmdroid.util.GeoPoint import org.osmdroid.views.overlay.Polyline -import org.y20k.trackbook.helpers.getNumberOfSatellites +import net.voussoir.trkpt.helpers.getNumberOfSatellites class Trkpt( val device_id: String, @@ -54,4 +53,4 @@ class Trkpt( location.time = this.time return location } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/y20k/trackbook/dialogs/ErrorDialog.kt b/app/src/main/java/net/voussoir/trkpt/dialogs/ErrorDialog.kt similarity index 97% rename from app/src/main/java/org/y20k/trackbook/dialogs/ErrorDialog.kt rename to app/src/main/java/net/voussoir/trkpt/dialogs/ErrorDialog.kt index 27acac2..33a67cd 100644 --- a/app/src/main/java/org/y20k/trackbook/dialogs/ErrorDialog.kt +++ b/app/src/main/java/net/voussoir/trkpt/dialogs/ErrorDialog.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.dialogs +package net.voussoir.trkpt.dialogs import android.content.Context import android.content.DialogInterface @@ -25,7 +25,7 @@ import android.widget.TextView import androidx.core.view.isGone import androidx.core.view.isVisible import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.y20k.trackbook.R +import net.voussoir.trkpt.R /* * ErrorDialog object diff --git a/app/src/main/java/org/y20k/trackbook/dialogs/YesNoDialog.kt b/app/src/main/java/net/voussoir/trkpt/dialogs/YesNoDialog.kt similarity index 96% rename from app/src/main/java/org/y20k/trackbook/dialogs/YesNoDialog.kt rename to app/src/main/java/net/voussoir/trkpt/dialogs/YesNoDialog.kt index a93b9f6..297caa1 100644 --- a/app/src/main/java/org/y20k/trackbook/dialogs/YesNoDialog.kt +++ b/app/src/main/java/net/voussoir/trkpt/dialogs/YesNoDialog.kt @@ -1,7 +1,7 @@ /* * YesNoDialog * Implements the YesNoDialog class - * A YesNoDialog asks the user if he/she wants to do something or notpackage org.y20k.trackbook.dialogs + * A YesNoDialog asks the user if he/she wants to do something or not * * This file is part of * TRACKBOOK - Movement Recorder for Android @@ -16,8 +16,8 @@ import android.content.Context import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.y20k.trackbook.Keys -import org.y20k.trackbook.R +import net.voussoir.trkpt.Keys +import net.voussoir.trkpt.R /* * YesNoDialog class diff --git a/app/src/main/java/org/y20k/trackbook/extensions/SharedPreferencesExt.kt b/app/src/main/java/net/voussoir/trkpt/extensions/SharedPreferencesExt.kt similarity index 92% rename from app/src/main/java/org/y20k/trackbook/extensions/SharedPreferencesExt.kt rename to app/src/main/java/net/voussoir/trkpt/extensions/SharedPreferencesExt.kt index a1f1ffd..0c99346 100644 --- a/app/src/main/java/org/y20k/trackbook/extensions/SharedPreferencesExt.kt +++ b/app/src/main/java/net/voussoir/trkpt/extensions/SharedPreferencesExt.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.extensions +package net.voussoir.trkpt.extensions import android.content.SharedPreferences diff --git a/app/src/main/java/org/y20k/trackbook/functions.kt b/app/src/main/java/net/voussoir/trkpt/functions.kt similarity index 69% rename from app/src/main/java/org/y20k/trackbook/functions.kt rename to app/src/main/java/net/voussoir/trkpt/functions.kt index 6331248..d86f587 100644 --- a/app/src/main/java/org/y20k/trackbook/functions.kt +++ b/app/src/main/java/net/voussoir/trkpt/functions.kt @@ -1,19 +1,9 @@ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers -import android.annotation.TargetApi -import android.content.ContentUris -import android.content.Context -import android.database.Cursor -import android.net.Uri -import android.os.Build -import android.os.Environment -import android.provider.DocumentsContract -import android.provider.MediaStore import java.lang.Math.abs import java.security.SecureRandom import java.text.SimpleDateFormat import java.util.* -import kotlin.random.Random.Default.nextBits private val RNG = SecureRandom() diff --git a/app/src/main/java/org/y20k/trackbook/get_path_from_uri.kt b/app/src/main/java/net/voussoir/trkpt/get_path_from_uri.kt similarity index 100% rename from app/src/main/java/org/y20k/trackbook/get_path_from_uri.kt rename to app/src/main/java/net/voussoir/trkpt/get_path_from_uri.kt diff --git a/app/src/main/java/org/y20k/trackbook/helpers/AppThemeHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/AppThemeHelper.kt similarity index 96% rename from app/src/main/java/org/y20k/trackbook/helpers/AppThemeHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/AppThemeHelper.kt index 2ffbd89..723567d 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/AppThemeHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/AppThemeHelper.kt @@ -14,14 +14,14 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.content.Context import android.content.res.Configuration import android.util.Log import androidx.appcompat.app.AppCompatDelegate -import org.y20k.trackbook.Keys -import org.y20k.trackbook.R +import net.voussoir.trkpt.Keys +import net.voussoir.trkpt.R /* * AppThemeHelper object diff --git a/app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/DateTimeHelper.kt similarity index 95% rename from app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/DateTimeHelper.kt index c9ed53a..72fe319 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/DateTimeHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/DateTimeHelper.kt @@ -14,14 +14,12 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.content.Context -import android.location.Location -import org.y20k.trackbook.Keys -import org.y20k.trackbook.R +import net.voussoir.trkpt.Keys +import net.voussoir.trkpt.R import java.text.DateFormat -import java.text.SimpleDateFormat import java.util.* import java.util.concurrent.TimeUnit diff --git a/app/src/main/java/org/y20k/trackbook/helpers/LengthUnitHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/LengthUnitHelper.kt similarity index 99% rename from app/src/main/java/org/y20k/trackbook/helpers/LengthUnitHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/LengthUnitHelper.kt index 05f3b44..6f0033d 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/LengthUnitHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/LengthUnitHelper.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import java.math.BigDecimal import java.math.RoundingMode diff --git a/app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt similarity index 99% rename from app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt index c81dbc2..cce85db 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/LocationHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/LocationHelper.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.Manifest import android.content.Context @@ -24,7 +24,7 @@ import android.location.LocationManager import android.os.Bundle import android.os.SystemClock import androidx.core.content.ContextCompat -import org.y20k.trackbook.Keys +import net.voussoir.trkpt.Keys import kotlin.math.pow /* Get default location */ diff --git a/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/MapOverlayHelper.kt similarity index 97% rename from app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/MapOverlayHelper.kt index f067da5..74170ae 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/MapOverlayHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/MapOverlayHelper.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.content.Context import android.util.Log @@ -24,8 +24,8 @@ import org.osmdroid.util.GeoPoint import org.osmdroid.views.MapView import org.osmdroid.views.overlay.ItemizedIconOverlay import org.osmdroid.views.overlay.OverlayItem -import org.y20k.trackbook.R -import org.y20k.trackbook.Trkpt +import net.voussoir.trkpt.R +import net.voussoir.trkpt.Trkpt import java.text.DecimalFormat import java.text.SimpleDateFormat import java.util.* diff --git a/app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/NotificationHelper.kt similarity index 94% rename from app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/NotificationHelper.kt index 9d0457f..2b3f75e 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/NotificationHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/NotificationHelper.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.app.* import android.content.Context @@ -24,10 +24,10 @@ import androidx.annotation.RequiresApi import androidx.appcompat.content.res.AppCompatResources import androidx.core.app.NotificationCompat import androidx.core.graphics.drawable.toBitmap -import org.y20k.trackbook.Keys -import org.y20k.trackbook.MainActivity -import org.y20k.trackbook.R -import org.y20k.trackbook.TrackerService +import net.voussoir.trkpt.Keys +import net.voussoir.trkpt.MainActivity +import net.voussoir.trkpt.R +import net.voussoir.trkpt.TrackerService /* * NotificationHelper class @@ -40,8 +40,8 @@ class NotificationHelper(private val trackerService: TrackerService) /* Creates notification */ fun createNotification(trackingState: Int, timestamp: String): Notification { - // create notification channel if necessary - if (shouldCreateNotificationChannel()) { + if (shouldCreateNotificationChannel()) + { createNotificationChannel() } @@ -67,7 +67,6 @@ class NotificationHelper(private val trackerService: TrackerService) } return builder.build() - } /* Checks if notification channel should be created */ diff --git a/app/src/main/java/org/y20k/trackbook/helpers/PreferencesHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/PreferencesHelper.kt similarity index 92% rename from app/src/main/java/org/y20k/trackbook/helpers/PreferencesHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/PreferencesHelper.kt index 35da242..d974587 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/PreferencesHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/PreferencesHelper.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.content.Context import android.content.SharedPreferences @@ -23,9 +23,9 @@ import android.location.LocationManager import android.util.Log import androidx.core.content.edit import androidx.preference.PreferenceManager -import org.y20k.trackbook.Keys -import org.y20k.trackbook.extensions.getDouble -import org.y20k.trackbook.extensions.putDouble +import net.voussoir.trkpt.Keys +import net.voussoir.trkpt.extensions.getDouble +import net.voussoir.trkpt.extensions.putDouble /* * PreferencesHelper object @@ -75,10 +75,13 @@ object PreferencesHelper } fun loadTrackingState(): Int { - return sharedPreferences.getInt(Keys.PREF_TRACKING_STATE, Keys.STATE_TRACKING_STOPPED) + val state = sharedPreferences.getInt(Keys.PREF_TRACKING_STATE, Keys.STATE_TRACKING_STOPPED) + Log.i("VOUSSOIR", "PreferencesHelper.loadTrackingState ${state}") + return state } fun saveTrackingState(trackingState: Int) { + Log.i("VOUSSOIR", "PreferencesHelper.saveTrackingState ${trackingState}") sharedPreferences.edit { putInt(Keys.PREF_TRACKING_STATE, trackingState) } } diff --git a/app/src/main/java/org/y20k/trackbook/helpers/UiHelper.kt b/app/src/main/java/net/voussoir/trkpt/helpers/UiHelper.kt similarity index 95% rename from app/src/main/java/org/y20k/trackbook/helpers/UiHelper.kt rename to app/src/main/java/net/voussoir/trkpt/helpers/UiHelper.kt index 3837da9..c98c67e 100644 --- a/app/src/main/java/org/y20k/trackbook/helpers/UiHelper.kt +++ b/app/src/main/java/net/voussoir/trkpt/helpers/UiHelper.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.helpers +package net.voussoir.trkpt.helpers import android.content.Context import android.graphics.Canvas @@ -22,13 +22,10 @@ import android.graphics.Paint import android.graphics.PorterDuff import android.graphics.PorterDuffXfermode import android.graphics.drawable.ColorDrawable -import android.view.View -import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView -import org.y20k.trackbook.R -import org.y20k.trackbook.tracklist.TracklistAdapter +import net.voussoir.trkpt.R /* * UiHelper object diff --git a/app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt b/app/src/main/java/net/voussoir/trkpt/tracklist/TracklistAdapter.kt similarity index 95% rename from app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt rename to app/src/main/java/net/voussoir/trkpt/tracklist/TracklistAdapter.kt index 4834e85..df693d3 100644 --- a/app/src/main/java/org/y20k/trackbook/tracklist/TracklistAdapter.kt +++ b/app/src/main/java/net/voussoir/trkpt/tracklist/TracklistAdapter.kt @@ -14,7 +14,7 @@ * https://github.com/osmdroid/osmdroid */ -package org.y20k.trackbook.tracklist +package net.voussoir.trkpt.tracklist import android.content.Context import android.database.Cursor @@ -26,15 +26,15 @@ import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.fragment.app.Fragment import androidx.recyclerview.widget.RecyclerView -import org.y20k.trackbook.Keys -import org.y20k.trackbook.R -import org.y20k.trackbook.Database -import org.y20k.trackbook.Track +import net.voussoir.trkpt.Keys +import net.voussoir.trkpt.R +import net.voussoir.trkpt.Database +import net.voussoir.trkpt.Track import java.text.DateFormat import java.text.SimpleDateFormat import java.util.* -class TracklistAdapter(val fragment: Fragment, val database: Database) : RecyclerView.Adapter() +class TracklistAdapter(val fragment: Fragment, val database: net.voussoir.trkpt.Database) : RecyclerView.Adapter() { private lateinit var tracklistListener: TracklistAdapterListener val tracks: ArrayList = ArrayList() diff --git a/app/src/main/res/navigation/nav_graph_main.xml b/app/src/main/res/navigation/nav_graph_main.xml index 682fe23..b40cc5a 100644 --- a/app/src/main/res/navigation/nav_graph_main.xml +++ b/app/src/main/res/navigation/nav_graph_main.xml @@ -8,7 +8,7 @@ #FF3C98DB #FFFFC107 #FF4CAF50 + #FFFF00FF diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4a6cadb..7f89a95 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,8 +8,8 @@ History Settings - Trackbook running - Trackbook stopped + Recording + Stopped Stop Record Show