Also watch charging status, don't kill GPS while on power.
This commit is contained in:
parent
9e75502477
commit
eff08eb375
1 changed files with 43 additions and 0 deletions
|
@ -92,6 +92,9 @@ class TrackerService: Service()
|
||||||
private var step_counter_sensor: Sensor? = null
|
private var step_counter_sensor: Sensor? = null
|
||||||
var has_motion_sensor: Boolean = false
|
var has_motion_sensor: Boolean = false
|
||||||
|
|
||||||
|
var device_is_charging: Boolean = false
|
||||||
|
private var charging_broadcast_receiver: BroadcastReceiver? = null
|
||||||
|
|
||||||
private fun addGpsLocationListener(interval: Long): Boolean
|
private fun addGpsLocationListener(interval: Long): Boolean
|
||||||
{
|
{
|
||||||
gpsProviderActive = isGpsEnabled(locationManager)
|
gpsProviderActive = isGpsEnabled(locationManager)
|
||||||
|
@ -565,6 +568,31 @@ class TrackerService: Service()
|
||||||
has_motion_sensor = true
|
has_motion_sensor = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
device_is_charging = get_device_charging()
|
||||||
|
charging_broadcast_receiver = object: BroadcastReceiver() {
|
||||||
|
override fun onReceive(context: Context, intent: Intent)
|
||||||
|
{
|
||||||
|
if (intent.action == Intent.ACTION_POWER_CONNECTED)
|
||||||
|
{
|
||||||
|
Log.i("VOUSSOIR", "Power connected")
|
||||||
|
device_is_charging = true
|
||||||
|
if (location_interval == Keys.LOCATION_INTERVAL_GIVE_UP)
|
||||||
|
{
|
||||||
|
reset_location_listeners(Keys.LOCATION_INTERVAL_FULL_POWER)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (intent.action == Intent.ACTION_POWER_DISCONNECTED)
|
||||||
|
{
|
||||||
|
Log.i("VOUSSOIR", "Power disconnected")
|
||||||
|
device_is_charging = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val charging_intent_filter = IntentFilter()
|
||||||
|
charging_intent_filter.addAction(Intent.ACTION_POWER_CONNECTED)
|
||||||
|
charging_intent_filter.addAction(Intent.ACTION_POWER_DISCONNECTED)
|
||||||
|
registerReceiver(charging_broadcast_receiver, charging_intent_filter)
|
||||||
|
|
||||||
handler.post(background_watchdog)
|
handler.post(background_watchdog)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -609,6 +637,7 @@ class TrackerService: Service()
|
||||||
PreferencesHelper.unregisterPreferenceChangeListener(sharedPreferenceChangeListener)
|
PreferencesHelper.unregisterPreferenceChangeListener(sharedPreferenceChangeListener)
|
||||||
reset_location_listeners(interval=Keys.LOCATION_INTERVAL_GIVE_UP)
|
reset_location_listeners(interval=Keys.LOCATION_INTERVAL_GIVE_UP)
|
||||||
handler.removeCallbacks(background_watchdog)
|
handler.removeCallbacks(background_watchdog)
|
||||||
|
unregisterReceiver(charging_broadcast_receiver)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun startTracking()
|
fun startTracking()
|
||||||
|
@ -669,6 +698,19 @@ class TrackerService: Service()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun get_device_charging(): Boolean
|
||||||
|
{
|
||||||
|
val intent = applicationContext.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
|
||||||
|
val status = intent!!.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)
|
||||||
|
var plugged = (
|
||||||
|
status == BatteryManager.BATTERY_PLUGGED_AC ||
|
||||||
|
status == BatteryManager.BATTERY_PLUGGED_USB ||
|
||||||
|
status == BatteryManager.BATTERY_PLUGGED_WIRELESS
|
||||||
|
)
|
||||||
|
Log.i("VOUSSOIR", "Charging: ${plugged}")
|
||||||
|
return plugged
|
||||||
|
}
|
||||||
|
|
||||||
val background_watchdog: Runnable = object : Runnable
|
val background_watchdog: Runnable = object : Runnable
|
||||||
{
|
{
|
||||||
override fun run()
|
override fun run()
|
||||||
|
@ -679,6 +721,7 @@ class TrackerService: Service()
|
||||||
if (
|
if (
|
||||||
allow_sleep &&
|
allow_sleep &&
|
||||||
has_motion_sensor &&
|
has_motion_sensor &&
|
||||||
|
!device_is_charging &&
|
||||||
trackingState == Keys.STATE_TRACKING_ACTIVE &&
|
trackingState == Keys.STATE_TRACKING_ACTIVE &&
|
||||||
location_interval != Keys.LOCATION_INTERVAL_GIVE_UP &&
|
location_interval != Keys.LOCATION_INTERVAL_GIVE_UP &&
|
||||||
(now - listeners_enabled_at) > TIME_UNTIL_GIVE_UP &&
|
(now - listeners_enabled_at) > TIME_UNTIL_GIVE_UP &&
|
||||||
|
|
Loading…
Reference in a new issue