Skip to content

Commit

Permalink
More skippable intents (#1038)
Browse files Browse the repository at this point in the history
* Add more skippable intents

* Remove phone state action since its tied to more than 1 sensor
  • Loading branch information
dshokouhi committed Oct 13, 2020
1 parent 0a2edd0 commit 120d1c2
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 8 deletions.
Expand Up @@ -10,7 +10,7 @@ class AudioSensorManager : SensorManager {
companion object {
private const val TAG = "AudioSensor"

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

private val dndSensor = SensorManager.BasicSensor(
val dndSensor = SensorManager.BasicSensor(
"dnd_sensor",
"sensor",
R.string.sensor_name_dnd,
Expand Down
Expand Up @@ -12,19 +12,19 @@ class PowerSensorManager : SensorManager {
private const val TAG = "PowerSensors"
private const val packageName = "io.homeassistant.companion.android"

private val interactiveDevice = SensorManager.BasicSensor(
val interactiveDevice = SensorManager.BasicSensor(
"is_interactive",
"binary_sensor",
R.string.basic_sensor_name_interactive,
R.string.sensor_description_interactive
)
private val doze = SensorManager.BasicSensor(
val doze = SensorManager.BasicSensor(
"is_idle",
"binary_sensor",
R.string.basic_sensor_name_doze,
R.string.sensor_description_doze
)
private val powerSave = SensorManager.BasicSensor(
val powerSave = SensorManager.BasicSensor(
"power_save",
"binary_sensor",
R.string.basic_sensor_name_power_save,
Expand Down
@@ -1,9 +1,13 @@
package io.homeassistant.companion.android.sensors

import android.annotation.SuppressLint
import android.app.NotificationManager
import android.bluetooth.BluetoothAdapter
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.media.AudioManager
import android.os.PowerManager
import android.telephony.TelephonyManager
import android.util.Log
import io.homeassistant.companion.android.common.dagger.GraphComponentAccessor
Expand Down Expand Up @@ -60,11 +64,21 @@ class SensorReceiver : BroadcastReceiver() {
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(
"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_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) {
Expand Down

0 comments on commit 120d1c2

Please sign in to comment.