More skippable intents (#1038)

* Add more skippable intents

* Remove phone state action since its tied to more than 1 sensor
This commit is contained in:
Daniel Shokouhi 2020-10-13 09:25:02 -07:00 committed by GitHub
parent 0a2edd0467
commit 120d1c26f6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 8 deletions

View file

@ -10,7 +10,7 @@ class AudioSensorManager : SensorManager {
companion object { companion object {
private const val TAG = "AudioSensor" private const val TAG = "AudioSensor"
private val audioSensor = SensorManager.BasicSensor( val audioSensor = SensorManager.BasicSensor(
"audio_sensor", "audio_sensor",
"sensor", "sensor",
R.string.sensor_name_ringer_mode, R.string.sensor_name_ringer_mode,
@ -28,7 +28,7 @@ class AudioSensorManager : SensorManager {
R.string.sensor_name_headphone, R.string.sensor_name_headphone,
R.string.sensor_description_headphone R.string.sensor_description_headphone
) )
private val micMuted = SensorManager.BasicSensor( val micMuted = SensorManager.BasicSensor(
"mic_muted", "mic_muted",
"binary_sensor", "binary_sensor",
R.string.sensor_name_mic_muted, R.string.sensor_name_mic_muted,
@ -40,7 +40,7 @@ class AudioSensorManager : SensorManager {
R.string.sensor_name_music_active, R.string.sensor_name_music_active,
R.string.sensor_description_music_active R.string.sensor_description_music_active
) )
private val speakerphoneState = SensorManager.BasicSensor( val speakerphoneState = SensorManager.BasicSensor(
"speakerphone_state", "speakerphone_state",
"binary_sensor", "binary_sensor",
R.string.sensor_name_speakerphone, R.string.sensor_name_speakerphone,

View file

@ -9,7 +9,7 @@ class DNDSensorManager : SensorManager {
companion object { companion object {
private const val TAG = "DNDSensor" private const val TAG = "DNDSensor"
private val dndSensor = SensorManager.BasicSensor( val dndSensor = SensorManager.BasicSensor(
"dnd_sensor", "dnd_sensor",
"sensor", "sensor",
R.string.sensor_name_dnd, R.string.sensor_name_dnd,

View file

@ -12,19 +12,19 @@ class PowerSensorManager : SensorManager {
private const val TAG = "PowerSensors" private const val TAG = "PowerSensors"
private const val packageName = "io.homeassistant.companion.android" private const val packageName = "io.homeassistant.companion.android"
private val interactiveDevice = SensorManager.BasicSensor( val interactiveDevice = SensorManager.BasicSensor(
"is_interactive", "is_interactive",
"binary_sensor", "binary_sensor",
R.string.basic_sensor_name_interactive, R.string.basic_sensor_name_interactive,
R.string.sensor_description_interactive R.string.sensor_description_interactive
) )
private val doze = SensorManager.BasicSensor( val doze = SensorManager.BasicSensor(
"is_idle", "is_idle",
"binary_sensor", "binary_sensor",
R.string.basic_sensor_name_doze, R.string.basic_sensor_name_doze,
R.string.sensor_description_doze R.string.sensor_description_doze
) )
private val powerSave = SensorManager.BasicSensor( val powerSave = SensorManager.BasicSensor(
"power_save", "power_save",
"binary_sensor", "binary_sensor",
R.string.basic_sensor_name_power_save, R.string.basic_sensor_name_power_save,

View file

@ -1,9 +1,13 @@
package io.homeassistant.companion.android.sensors package io.homeassistant.companion.android.sensors
import android.annotation.SuppressLint
import android.app.NotificationManager
import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothAdapter
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.media.AudioManager
import android.os.PowerManager
import android.telephony.TelephonyManager import android.telephony.TelephonyManager
import android.util.Log import android.util.Log
import io.homeassistant.companion.android.common.dagger.GraphComponentAccessor import io.homeassistant.companion.android.common.dagger.GraphComponentAccessor
@ -60,11 +64,21 @@ class SensorReceiver : BroadcastReceiver() {
Intent.ACTION_POWER_DISCONNECTED Intent.ACTION_POWER_DISCONNECTED
) )
// Suppress Lint because we only register for the receiver if the android version matches the intent
@SuppressLint("InlinedApi")
private val skippableActions = mapOf( private val skippableActions = mapOf(
"android.app.action.NEXT_ALARM_CLOCK_CHANGED" to NextAlarmManager.nextAlarm.id, "android.app.action.NEXT_ALARM_CLOCK_CHANGED" to NextAlarmManager.nextAlarm.id,
"android.bluetooth.device.action.ACL_CONNECTED" to BluetoothSensorManager.bluetoothConnection.id, "android.bluetooth.device.action.ACL_CONNECTED" to BluetoothSensorManager.bluetoothConnection.id,
"android.bluetooth.device.action.ACL_DISCONNECTED" to BluetoothSensorManager.bluetoothConnection.id, "android.bluetooth.device.action.ACL_DISCONNECTED" to BluetoothSensorManager.bluetoothConnection.id,
BluetoothAdapter.ACTION_STATE_CHANGED to BluetoothSensorManager.bluetoothState.id BluetoothAdapter.ACTION_STATE_CHANGED to BluetoothSensorManager.bluetoothState.id,
Intent.ACTION_SCREEN_OFF to PowerSensorManager.interactiveDevice.id,
Intent.ACTION_SCREEN_ON to PowerSensorManager.interactiveDevice.id,
PowerManager.ACTION_POWER_SAVE_MODE_CHANGED to PowerSensorManager.powerSave.id,
PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED to PowerSensorManager.doze.id,
NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED to DNDSensorManager.dndSensor.id,
AudioManager.ACTION_MICROPHONE_MUTE_CHANGED to AudioSensorManager.micMuted.id,
AudioManager.ACTION_SPEAKERPHONE_STATE_CHANGED to AudioSensorManager.speakerphoneState.id,
AudioManager.RINGER_MODE_CHANGED_ACTION to AudioSensorManager.audioSensor.id
) )
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {