Add preference to show debug information on main screen.
This commit is contained in:
parent
eff08eb375
commit
531ff36ed0
7 changed files with 52 additions and 13 deletions
|
@ -61,6 +61,7 @@ object Keys {
|
|||
const val PREF_LOCATION_GPS: String = "prefLocationGPS"
|
||||
const val PREF_OMIT_RESTS: String = "prefOmitRests"
|
||||
const val PREF_ALLOW_SLEEP: String = "prefAllowSleep"
|
||||
const val PREF_SHOW_DEBUG: String = "prefShowDebug"
|
||||
const val PREF_DEVICE_ID: String = "prefDeviceID"
|
||||
const val PREF_DATABASE_DIRECTORY: String = "prefDatabaseDirectory"
|
||||
|
||||
|
@ -106,6 +107,7 @@ object Keys {
|
|||
const val DEFAULT_ZOOM_LEVEL: Double = 16.0
|
||||
const val DEFAULT_OMIT_RESTS: Boolean = true
|
||||
const val DEFAULT_ALLOW_SLEEP: Boolean = true
|
||||
const val DEFAULT_SHOW_DEBUG: Boolean = false
|
||||
|
||||
// notification
|
||||
const val TRACKER_SERVICE_NOTIFICATION_ID: Int = 1
|
||||
|
|
|
@ -63,6 +63,7 @@ class MapFragment : Fragment()
|
|||
var continuous_auto_center: Boolean = true
|
||||
private var trackerService: TrackerService? = null
|
||||
private lateinit var database_changed_listener: DatabaseChangedListener
|
||||
var show_debug: Boolean = false
|
||||
|
||||
var thismapfragment: MapFragment? = null
|
||||
lateinit var rootView: View
|
||||
|
@ -226,6 +227,8 @@ class MapFragment : Fragment()
|
|||
mapView.controller.setZoom(mapView.zoomLevelDouble - 0.5)
|
||||
}
|
||||
|
||||
show_debug = PreferencesHelper.loadShowDebug()
|
||||
|
||||
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||
handler.post(redraw_runnable)
|
||||
return rootView
|
||||
|
@ -360,6 +363,10 @@ class MapFragment : Fragment()
|
|||
}
|
||||
|
||||
private val sharedPreferenceChangeListener = SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
|
||||
if (key == Keys.PREF_SHOW_DEBUG)
|
||||
{
|
||||
show_debug = sharedPreferences.getBoolean(Keys.PREF_SHOW_DEBUG, Keys.DEFAULT_SHOW_DEBUG)
|
||||
}
|
||||
redraw()
|
||||
}
|
||||
|
||||
|
@ -632,7 +639,6 @@ class MapFragment : Fragment()
|
|||
redraw()
|
||||
// register listener for changes in shared preferences
|
||||
PreferencesHelper.registerPreferenceChangeListener(sharedPreferenceChangeListener)
|
||||
// start listening for location updates
|
||||
}
|
||||
override fun onServiceDisconnected(arg0: ComponentName)
|
||||
{
|
||||
|
@ -662,7 +668,22 @@ class MapFragment : Fragment()
|
|||
centerMap(tracker.currentBestLocation)
|
||||
}
|
||||
|
||||
map_current_time.text = iso8601_local_noms(tracker.currentBestLocation.time)
|
||||
if (show_debug)
|
||||
{
|
||||
map_current_time.text = """
|
||||
now: ${iso8601_local_noms(System.currentTimeMillis())}
|
||||
location: ${iso8601_local_noms(tracker.currentBestLocation.time)}
|
||||
listeners: ${iso8601_local_noms(tracker.listeners_enabled_at)}
|
||||
motion: ${iso8601_local_noms(tracker.last_significant_motion)}
|
||||
watchdog: ${iso8601_local_noms(tracker.last_watchdog)}
|
||||
died: ${iso8601_local_noms(tracker.gave_up_at)}
|
||||
power: ${tracker.device_is_charging}
|
||||
""".trimIndent()
|
||||
}
|
||||
else
|
||||
{
|
||||
map_current_time.text = iso8601_local_noms(tracker.currentBestLocation.time)
|
||||
}
|
||||
|
||||
mapView.invalidate()
|
||||
}
|
||||
|
|
|
@ -139,6 +139,17 @@ class SettingsFragment : PreferenceFragmentCompat()
|
|||
preferenceCategoryGeneral.contains(prefAllowSleep)
|
||||
screen.addPreference(prefAllowSleep)
|
||||
|
||||
val prefShowDebug = SwitchPreferenceCompat(activity as Context)
|
||||
prefShowDebug.isSingleLineTitle = false
|
||||
prefShowDebug.title = "Show debug info"
|
||||
prefShowDebug.setIcon(R.drawable.ic_bar_chart_24)
|
||||
prefShowDebug.key = Keys.PREF_SHOW_DEBUG
|
||||
prefShowDebug.summaryOn = "Debug info shown on map screen."
|
||||
prefShowDebug.summaryOff = "Debug info hidden."
|
||||
prefShowDebug.setDefaultValue(Keys.DEFAULT_SHOW_DEBUG)
|
||||
preferenceCategoryGeneral.contains(prefShowDebug)
|
||||
screen.addPreference(prefShowDebug)
|
||||
|
||||
val preferenceDeviceID = EditTextPreference(activity as Context)
|
||||
preferenceDeviceID.title = getString(R.string.pref_device_id)
|
||||
preferenceDeviceID.setIcon(R.drawable.ic_smartphone_24dp)
|
||||
|
|
|
@ -21,15 +21,8 @@
|
|||
package net.voussoir.trkpt
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Notification
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.PendingIntent
|
||||
import android.app.Service
|
||||
import android.app.TaskStackBuilder
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.app.*
|
||||
import android.content.*
|
||||
import android.content.pm.PackageManager
|
||||
import android.hardware.*
|
||||
import android.location.Location
|
||||
|
@ -61,6 +54,8 @@ class TrackerService: Service()
|
|||
var lastCommit: Long = 0
|
||||
var listeners_enabled_at: Long = 0
|
||||
var last_significant_motion: Long = 0
|
||||
var last_watchdog: Long = 0
|
||||
var gave_up_at: Long = 0
|
||||
var arrived_at_home: Long = 0
|
||||
var location_interval: Long = 0
|
||||
val TIME_UNTIL_SLEEP: Long = 2 * Keys.ONE_MINUTE_IN_MILLISECONDS
|
||||
|
@ -718,6 +713,7 @@ class TrackerService: Service()
|
|||
Log.i("VOUSSOIR", "TrackerService.background_watchdog")
|
||||
handler.postDelayed(this, WATCHDOG_INTERVAL)
|
||||
val now = System.currentTimeMillis()
|
||||
last_watchdog = now
|
||||
if (
|
||||
allow_sleep &&
|
||||
has_motion_sensor &&
|
||||
|
@ -730,6 +726,7 @@ class TrackerService: Service()
|
|||
)
|
||||
{
|
||||
reset_location_listeners(Keys.LOCATION_INTERVAL_GIVE_UP)
|
||||
gave_up_at = now
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,10 @@ fun iso8601_local(timestamp: Long): String
|
|||
|
||||
fun iso8601_local_noms(timestamp: Long): String
|
||||
{
|
||||
if (timestamp == 0L)
|
||||
{
|
||||
return "0"
|
||||
}
|
||||
val iso8601_format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss")
|
||||
return iso8601_format.format(timestamp)
|
||||
}
|
||||
|
|
|
@ -105,6 +105,10 @@ object PreferencesHelper
|
|||
return sharedPreferences.getBoolean(Keys.PREF_ALLOW_SLEEP, Keys.DEFAULT_ALLOW_SLEEP)
|
||||
}
|
||||
|
||||
fun loadShowDebug(): Boolean {
|
||||
return sharedPreferences.getBoolean(Keys.PREF_SHOW_DEBUG, Keys.DEFAULT_SHOW_DEBUG)
|
||||
}
|
||||
|
||||
/* Loads the state of a map */
|
||||
fun loadCurrentBestLocation(): Location {
|
||||
val provider: String = sharedPreferences.getString(Keys.PREF_CURRENT_BEST_LOCATION_PROVIDER, LocationManager.NETWORK_PROVIDER) ?: LocationManager.NETWORK_PROVIDER
|
||||
|
|
|
@ -92,11 +92,11 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:gravity="right"
|
||||
app:fontFamily="monospace"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
/>
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<!-- GROUPS -->
|
||||
|
||||
|
|
Loading…
Reference in a new issue