mirror of
https://github.com/home-assistant/android
synced 2024-10-07 00:29:32 +00:00
Hide some sensors from unsupported devices (#3740)
* Hide some sensors from unsupported devices * Move UI manager to condition
This commit is contained in:
parent
644c4ad657
commit
94413801ec
|
@ -5,6 +5,7 @@ import android.app.PendingIntent
|
|||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import com.google.android.gms.location.ActivityRecognition
|
||||
|
@ -208,6 +209,14 @@ class ActivitySensorManager : BroadcastReceiver(), SensorManager {
|
|||
}
|
||||
}
|
||||
|
||||
override fun hasSensor(context: Context): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
!context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
|
||||
} else {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
override fun requestSensorUpdate(context: Context) {
|
||||
if (isEnabled(context, activity)) {
|
||||
val actReg = ActivityRecognition.getClient(context)
|
||||
|
|
|
@ -35,7 +35,11 @@ class LastAppSensorManager : SensorManager {
|
|||
}
|
||||
|
||||
override fun hasSensor(context: Context): Boolean {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
return if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
|
||||
false
|
||||
} else {
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.M)
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.Manifest
|
|||
import android.app.UiModeManager
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.res.Configuration
|
||||
import android.media.MediaMetadata
|
||||
import android.media.session.MediaSessionManager
|
||||
|
@ -69,8 +70,12 @@ class NotificationSensorManager : NotificationListenerService(), SensorManager {
|
|||
return "https://companion.home-assistant.io/docs/core/sensors#notification-sensors"
|
||||
}
|
||||
override fun hasSensor(context: Context): Boolean {
|
||||
val uiManager = context.getSystemService<UiModeManager>()
|
||||
return uiManager?.currentModeType != Configuration.UI_MODE_TYPE_TELEVISION
|
||||
return if (!context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
|
||||
val uiManager = context.getSystemService<UiModeManager>()
|
||||
uiManager?.currentModeType != Configuration.UI_MODE_TYPE_TELEVISION
|
||||
} else {
|
||||
false
|
||||
}
|
||||
}
|
||||
override val name: Int
|
||||
get() = commonR.string.sensor_name_last_notification
|
||||
|
|
|
@ -115,6 +115,11 @@ class BatterySensorManager : SensorManager {
|
|||
)
|
||||
}
|
||||
|
||||
override fun hasSensor(context: Context): Boolean {
|
||||
val intent = context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
|
||||
return intent?.getBooleanExtra(BatteryManager.EXTRA_PRESENT, false) == true
|
||||
}
|
||||
|
||||
override fun requiredPermissions(sensorId: String): Array<String> {
|
||||
return emptyArray()
|
||||
}
|
||||
|
@ -298,6 +303,7 @@ class BatterySensorManager : SensorManager {
|
|||
BatteryManager.BATTERY_PLUGGED_AC -> "ac"
|
||||
BatteryManager.BATTERY_PLUGGED_USB -> "usb"
|
||||
BatteryManager.BATTERY_PLUGGED_WIRELESS -> "wireless"
|
||||
BatteryManager.BATTERY_PLUGGED_DOCK -> "dock"
|
||||
else -> "none"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package io.homeassistant.companion.android.common.sensors
|
|||
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import androidx.annotation.ChecksSdkIntAtLeast
|
||||
import androidx.annotation.RequiresApi
|
||||
|
@ -46,7 +47,11 @@ class DNDSensorManager : SensorManager {
|
|||
|
||||
@ChecksSdkIntAtLeast(api = Build.VERSION_CODES.M)
|
||||
override fun hasSensor(context: Context): Boolean {
|
||||
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
return if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
|
||||
false
|
||||
} else {
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateDNDState(context: Context) {
|
||||
|
|
|
@ -2,6 +2,8 @@ package io.homeassistant.companion.android.common.sensors
|
|||
|
||||
import android.app.AlarmManager
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import androidx.core.content.getSystemService
|
||||
import io.homeassistant.companion.android.database.AppDatabase
|
||||
|
@ -11,6 +13,7 @@ import java.text.SimpleDateFormat
|
|||
import java.util.Calendar
|
||||
import java.util.Date
|
||||
import java.util.GregorianCalendar
|
||||
import java.util.Locale
|
||||
import java.util.TimeZone
|
||||
import io.homeassistant.companion.android.common.R as commonR
|
||||
|
||||
|
@ -40,6 +43,14 @@ class NextAlarmManager : SensorManager {
|
|||
return listOf(nextAlarm)
|
||||
}
|
||||
|
||||
override fun hasSensor(context: Context): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
!context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
|
||||
} else {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
override fun requiredPermissions(sensorId: String): Array<String> {
|
||||
return emptyArray()
|
||||
}
|
||||
|
@ -89,7 +100,7 @@ class NextAlarmManager : SensorManager {
|
|||
local = cal.time.toString()
|
||||
|
||||
val dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
|
||||
val sdf = SimpleDateFormat(dateFormat)
|
||||
val sdf = SimpleDateFormat(dateFormat, Locale.getDefault())
|
||||
sdf.timeZone = TimeZone.getTimeZone("UTC")
|
||||
utc = sdf.format(Date(triggerTime))
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue