Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add description for each sensor on details screen, only show device class and icon if they are set #847

Merged
merged 5 commits into from Aug 30, 2020
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -10,6 +10,7 @@ import android.util.Log
import com.google.android.gms.location.ActivityRecognition
import com.google.android.gms.location.ActivityRecognitionResult
import com.google.android.gms.location.DetectedActivity
import io.homeassistant.companion.android.R
import io.homeassistant.companion.android.common.dagger.GraphComponentAccessor
import io.homeassistant.companion.android.domain.integration.IntegrationUseCase
import javax.inject.Inject
Expand All @@ -26,7 +27,8 @@ class ActivitySensorManager : BroadcastReceiver(), SensorManager {
private val activity = SensorManager.BasicSensor(
"detected_activity",
"sensor",
"Detected Activity"
"Detected Activity",
R.string.sensor_description_detected_activity
)
}

Expand Down
Expand Up @@ -7,6 +7,7 @@ import android.location.Geocoder
import android.os.Build
import android.util.Log
import com.google.android.gms.location.LocationServices
import io.homeassistant.companion.android.R
import java.lang.Exception

class GeocodeSensorManager : SensorManager {
Expand All @@ -16,7 +17,8 @@ class GeocodeSensorManager : SensorManager {
private val geocodedLocation = SensorManager.BasicSensor(
"geocoded_location",
"sensor",
"Geocoded Location"
"Geocoded Location",
R.string.sensor_description_geocoded_location
)
}

Expand Down
Expand Up @@ -17,6 +17,7 @@ import com.google.android.gms.location.LocationCallback
import com.google.android.gms.location.LocationRequest
import com.google.android.gms.location.LocationResult
import com.google.android.gms.location.LocationServices
import io.homeassistant.companion.android.R
import io.homeassistant.companion.android.common.dagger.GraphComponentAccessor
import io.homeassistant.companion.android.database.AppDatabase
import io.homeassistant.companion.android.domain.integration.IntegrationUseCase
Expand Down Expand Up @@ -44,12 +45,14 @@ class LocationSensorManager : BroadcastReceiver(), SensorManager {
val backgroundLocation = SensorManager.BasicSensor(
"location_background",
"",
"Background Location"
"Background Location",
R.string.sensor_description_location_background
)
val zoneLocation = SensorManager.BasicSensor(
"zone_background",
"",
"Zone Location"
"Zone Location",
R.string.sensor_description_location_zone
)
internal const val TAG = "LocBroadcastReceiver"
}
Expand Down
Expand Up @@ -4,6 +4,7 @@ import android.content.Context
import android.media.AudioDeviceInfo
import android.media.AudioManager
import android.os.Build
import io.homeassistant.companion.android.R

class AudioSensorManager : SensorManager {
companion object {
Expand All @@ -12,7 +13,8 @@ class AudioSensorManager : SensorManager {
private val audioSensor = SensorManager.BasicSensor(
"audio_sensor",
"sensor",
"Audio Sensor"
"Audio Sensor",
R.string.sensor_description_audio_sensor
)
}

Expand Down
Expand Up @@ -4,6 +4,7 @@ import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.BatteryManager
import io.homeassistant.companion.android.R

class BatterySensorManager : SensorManager {

Expand All @@ -13,13 +14,15 @@ class BatterySensorManager : SensorManager {
"battery_level",
"sensor",
"Battery Level",
R.string.sensor_description_battery_level,
"battery",
"%"
)
private val batteryState = SensorManager.BasicSensor(
"battery_state",
"sensor",
"Battery State",
R.string.sensor_description_battery_state,
"battery"
)
}
Expand Down
Expand Up @@ -5,6 +5,7 @@ import android.bluetooth.BluetoothDevice
import android.bluetooth.BluetoothManager
import android.bluetooth.BluetoothProfile.GATT
import android.content.Context
import io.homeassistant.companion.android.R
import java.lang.reflect.Method

class BluetoothSensorManager : SensorManager {
Expand All @@ -14,6 +15,7 @@ class BluetoothSensorManager : SensorManager {
"bluetooth_connection",
"sensor",
"Bluetooth Connection",
R.string.sensor_description_bluetooth_connection,
unitOfMeasurement = "connection(s)"
)
}
Expand Down
Expand Up @@ -3,6 +3,7 @@ package io.homeassistant.companion.android.sensors
import android.content.Context
import android.provider.Settings.Global
import android.util.Log
import io.homeassistant.companion.android.R

class DNDSensorManager : SensorManager {
companion object {
Expand All @@ -11,7 +12,8 @@ class DNDSensorManager : SensorManager {
private val dndSensor = SensorManager.BasicSensor(
"dnd_sensor",
"sensor",
"Do Not Disturb Sensor"
"Do Not Disturb Sensor",
R.string.sensor_description_dnd_sensor
)
}

Expand Down
Expand Up @@ -3,6 +3,7 @@ package io.homeassistant.companion.android.sensors
import android.content.Context
import android.os.SystemClock
import android.util.Log
import io.homeassistant.companion.android.R
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
Expand All @@ -17,6 +18,7 @@ class LastRebootSensorManager : SensorManager {
"last_reboot",
"sensor",
"Last Reboot",
R.string.sensor_description_last_reboot,
"timestamp"
)
}
Expand Down
Expand Up @@ -6,6 +6,7 @@ import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import io.homeassistant.companion.android.R
import kotlin.math.roundToInt

class LightSensorManager : SensorManager, SensorEventListener {
Expand All @@ -16,6 +17,7 @@ class LightSensorManager : SensorManager, SensorEventListener {
"light_sensor",
"sensor",
"Light Sensor",
R.string.sensor_description_light_sensor,
"illuminance",
"lx"
)
Expand Down
Expand Up @@ -5,14 +5,16 @@ import android.content.Context
import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager
import android.os.Build
import io.homeassistant.companion.android.R

class NetworkSensorManager : SensorManager {
companion object {
private const val TAG = "NetworkSM"
private val wifiConnection = SensorManager.BasicSensor(
"wifi_connection",
"sensor",
"Wifi Connection"
"Wifi Connection",
R.string.sensor_description_wifi_connection
)
}

Expand Down
Expand Up @@ -3,6 +3,7 @@ package io.homeassistant.companion.android.sensors
import android.app.AlarmManager
import android.content.Context
import android.util.Log
import io.homeassistant.companion.android.R
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
Expand All @@ -17,6 +18,7 @@ class NextAlarmManager : SensorManager {
"next_alarm",
"sensor",
"Next Alarm",
R.string.sensor_description_next_alarm,
"timestamp"
)
}
Expand Down
Expand Up @@ -6,6 +6,7 @@ import android.os.Build
import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import io.homeassistant.companion.android.R

class PhoneStateSensorManager : SensorManager {

Expand All @@ -14,19 +15,22 @@ class PhoneStateSensorManager : SensorManager {
val phoneState = SensorManager.BasicSensor(
"phone_state",
"sensor",
"Phone State"
"Phone State",
R.string.sensor_description_phone_state
)

val sim_1 = SensorManager.BasicSensor(
"sim_1",
"sensor",
"SIM_1"
"SIM_1",
R.string.sensor_description_sim_1
)

val sim_2 = SensorManager.BasicSensor(
"sim_2",
"sensor",
"SIM_2"
"SIM_2",
R.string.sensor_description_sim_2
)
}

Expand Down
Expand Up @@ -6,6 +6,7 @@ import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import io.homeassistant.companion.android.R
import java.math.RoundingMode

class PressureSensorManager : SensorManager, SensorEventListener {
Expand All @@ -16,6 +17,7 @@ class PressureSensorManager : SensorManager, SensorEventListener {
"pressure_sensor",
"sensor",
"Pressure Sensor",
R.string.sensor_description_pressure_sensor,
"pressure",
"hPa"
)
Expand Down
Expand Up @@ -6,6 +6,7 @@ import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import io.homeassistant.companion.android.R
import kotlin.math.roundToInt

class ProximitySensorManager : SensorManager, SensorEventListener {
Expand All @@ -15,7 +16,8 @@ class ProximitySensorManager : SensorManager, SensorEventListener {
private val proximitySensor = SensorManager.BasicSensor(
"proximity_sensor",
"sensor",
"Proximity Sensor"
"Proximity Sensor",
R.string.sensor_description_proximity_sensor
)
}

Expand Down
Expand Up @@ -16,16 +16,18 @@ import io.homeassistant.companion.android.database.sensor.SensorDao

class SensorDetailFragment(
private val sensorManager: SensorManager,
private val basicSensor: SensorManager.BasicSensor,
private val sensorId: String
) :
PreferenceFragmentCompat() {

companion object {
fun newInstance(
sensorManager: SensorManager,
basicSensor: SensorManager.BasicSensor,
sensorId: String
dshokouhi marked this conversation as resolved.
Show resolved Hide resolved
): SensorDetailFragment {
return SensorDetailFragment(sensorManager, sensorId)
return SensorDetailFragment(sensorManager, basicSensor, sensorId)
}
}

Expand Down Expand Up @@ -72,6 +74,9 @@ class SensorDetailFragment(
return@setOnPreferenceChangeListener true
}
}
findPreference<Preference>("description")?.let {
it.summary = getString(basicSensor.descriptionId)
}
}

override fun onResume() {
Expand Down Expand Up @@ -110,12 +115,16 @@ class SensorDetailFragment(
}
}
findPreference<Preference>("device_class")?.let {
it.isCopyingEnabled = true
it.summary = sensorData.deviceClass
if (sensorData.deviceClass == null)
it.isVisible = false
else
it.summary = sensorData.deviceClass
}
findPreference<Preference>("icon")?.let {
it.isCopyingEnabled = true
it.summary = sensorData.icon
if (sensorData.icon == "")
it.isVisible = false
else
it.summary = sensorData.icon
}

findPreference<PreferenceCategory>("attributes")?.let {
Expand Down
Expand Up @@ -4,6 +4,7 @@ import android.content.Context
import android.content.pm.PackageManager
import android.os.Process.myPid
import android.os.Process.myUid
import io.homeassistant.companion.android.R
import io.homeassistant.companion.android.database.AppDatabase
import io.homeassistant.companion.android.database.sensor.Attribute
import io.homeassistant.companion.android.database.sensor.Sensor
Expand All @@ -17,6 +18,7 @@ interface SensorManager {
val id: String,
val type: String,
val name: String,
val descriptionId: Int = R.string.sensor_description_none,
val deviceClass: String? = null,
val unitOfMeasurement: String? = null
)
Expand Down
Expand Up @@ -73,6 +73,7 @@ class SensorsSettingsFragment : PreferenceFragmentCompat() {
R.id.content,
SensorDetailFragment.newInstance(
manager,
basicSensor,
basicSensor.id
)
)
Expand Down
Expand Up @@ -8,6 +8,7 @@ import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import android.os.Build
import io.homeassistant.companion.android.R
import kotlin.math.roundToInt

class StepsSensorManager : SensorManager, SensorEventListener {
Expand All @@ -18,6 +19,7 @@ class StepsSensorManager : SensorManager, SensorEventListener {
"steps_sensor",
"sensor",
"Steps Sensor",
R.string.sensor_description_steps_sensor,
unitOfMeasurement = "steps"
)
}
Expand Down
Expand Up @@ -4,6 +4,7 @@ import android.content.Context
import android.os.Environment
import android.os.StatFs
import android.util.Log
import io.homeassistant.companion.android.R
import java.io.File
import kotlin.math.roundToInt

Expand All @@ -15,6 +16,7 @@ class StorageSensorManager : SensorManager {
"storage_sensor",
"sensor",
"Storage Sensor",
R.string.sensor_description_storage_sensor,
unitOfMeasurement = "%"
)
val path: File = Environment.getDataDirectory()
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/res/layout/fragment_mobile_app_integration.xml
Expand Up @@ -122,7 +122,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="50dp"
android:text="@string/pref_location_zone_summary" />
android:text="@string/sensor_description_location_zone" />

<androidx.appcompat.widget.SwitchCompat
android:id="@+id/location_background"
Expand All @@ -136,7 +136,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="50dp"
android:text="@string/pref_location_background_summary" />
android:text="@string/sensor_description_location_background" />

<androidx.appcompat.widget.AppCompatTextView
style="@style/TextAppearance.HomeAssistant.Title"
Expand Down