Use getSystemService extension from Core KTX (#2136)

* Use getSystemService extension from Core KTX

* Replace deprecated bluetooth calls
This commit is contained in:
Tiger Oakes 2022-01-17 17:08:23 -08:00 committed by GitHub
parent 050d449ef2
commit 26f700bab2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 99 additions and 82 deletions

View file

@ -5,9 +5,8 @@ import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.PendingIntent
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothManager
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
@ -35,6 +34,7 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.RemoteInput
import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService
import androidx.core.text.HtmlCompat
import androidx.core.text.isDigitsOnly
import com.google.firebase.messaging.FirebaseMessagingService
@ -70,7 +70,6 @@ import java.net.URL
import java.net.URLDecoder
import java.util.Locale
import javax.inject.Inject
import kotlin.collections.HashMap
import io.homeassistant.companion.android.common.R as commonR
@AndroidEntryPoint
@ -407,7 +406,7 @@ class MessagingService : FirebaseMessagingService() {
var textToSpeech: TextToSpeech? = null
var tts = data[TITLE]
val audioManager =
applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
applicationContext.getSystemService<AudioManager>()!!
val currentAlarmVolume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM)
val maxAlarmVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM)
if (tts.isNullOrEmpty())
@ -477,7 +476,7 @@ class MessagingService : FirebaseMessagingService() {
COMMAND_DND -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val notificationManager =
applicationContext.getSystemService(NOTIFICATION_SERVICE) as NotificationManager
applicationContext.getSystemService<NotificationManager>()!!
if (!notificationManager.isNotificationPolicyAccessGranted) {
notifyMissingPermission(data[MESSAGE].toString())
} else {
@ -499,10 +498,10 @@ class MessagingService : FirebaseMessagingService() {
}
COMMAND_RINGER_MODE -> {
val audioManager =
applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
applicationContext.getSystemService<AudioManager>()!!
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val notificationManager =
applicationContext.getSystemService(NOTIFICATION_SERVICE) as NotificationManager
applicationContext.getSystemService<NotificationManager>()!!
if (!notificationManager.isNotificationPolicyAccessGranted) {
notifyMissingPermission(data[MESSAGE].toString())
} else {
@ -539,10 +538,10 @@ class MessagingService : FirebaseMessagingService() {
}
COMMAND_VOLUME_LEVEL -> {
val audioManager =
applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
applicationContext.getSystemService<AudioManager>()!!
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val notificationManager =
applicationContext.getSystemService(NOTIFICATION_SERVICE) as NotificationManager
applicationContext.getSystemService<NotificationManager>()!!
if (!notificationManager.isNotificationPolicyAccessGranted) {
notifyMissingPermission(data[MESSAGE].toString())
} else {
@ -561,11 +560,12 @@ class MessagingService : FirebaseMessagingService() {
}
}
COMMAND_BLUETOOTH -> {
val bluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
val bluetoothAdapter =
applicationContext.getSystemService<BluetoothManager>()?.adapter
if (title == TURN_OFF)
bluetoothAdapter.disable()
bluetoothAdapter?.disable()
if (title == TURN_ON)
bluetoothAdapter.enable()
bluetoothAdapter?.enable()
}
COMMAND_BLE_TRANSMITTER -> {
if (title == TURN_OFF)
@ -613,7 +613,7 @@ class MessagingService : FirebaseMessagingService() {
}
val powerManager =
applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager
applicationContext.getSystemService<PowerManager>()!!
val wakeLock = powerManager.newWakeLock(
PowerManager.FULL_WAKE_LOCK or
PowerManager.ACQUIRE_CAUSES_WAKEUP or
@ -1338,7 +1338,7 @@ class MessagingService : FirebaseMessagingService() {
private fun processMediaCommand(data: Map<String, String>) {
val title = data[TITLE]
val mediaSessionManager =
applicationContext.getSystemService(Context.MEDIA_SESSION_SERVICE) as MediaSessionManager
applicationContext.getSystemService<MediaSessionManager>()!!
val mediaList = mediaSessionManager.getActiveSessions(
ComponentName(
applicationContext,
@ -1503,7 +1503,7 @@ class MessagingService : FirebaseMessagingService() {
private fun notifyMissingPermission(type: String) {
val appManager =
applicationContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
applicationContext.getSystemService<ActivityManager>()!!
val currentProcess = appManager.runningAppProcesses
if (currentProcess != null) {
for (item in currentProcess) {

View file

@ -10,7 +10,7 @@ import android.os.Looper
import android.os.PowerManager
import android.util.Log
import android.widget.Toast
import androidx.core.content.ContextCompat.getSystemService
import androidx.core.content.getSystemService
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.Geofence
import com.google.android.gms.location.GeofencingClient
@ -790,7 +790,7 @@ class LocationSensorManager : LocationSensorManagerBase() {
request,
object : LocationCallback() {
val wakeLock: PowerManager.WakeLock? =
getSystemService(latestContext, PowerManager::class.java)
latestContext.getSystemService<PowerManager>()
?.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK,
"HomeAssistant::AccurateLocation"

View file

@ -1,9 +1,10 @@
package io.homeassistant.companion.android.bluetooth.ble
import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothManager
import android.bluetooth.le.AdvertiseCallback
import android.bluetooth.le.AdvertiseSettings
import android.content.Context
import androidx.core.content.getSystemService
import org.altbeacon.beacon.Beacon
import org.altbeacon.beacon.BeaconParser
import org.altbeacon.beacon.BeaconTransmitter
@ -53,7 +54,8 @@ object TransmitterManager {
val parser = BeaconParser().setBeaconLayout(haTransmitter.beaconLayout)
physicalTransmitter = BeaconTransmitter(context, parser)
}
val bluetoothOn = BluetoothAdapter.getDefaultAdapter().isEnabled
val bluetoothAdapter = context.getSystemService<BluetoothManager>()?.adapter
val bluetoothOn = bluetoothAdapter?.isEnabled == true
if (bluetoothOn) {
val beacon = buildBeacon(haTransmitter)
if (!physicalTransmitter.isStarted) {

View file

@ -1,12 +1,11 @@
package io.homeassistant.companion.android.onboarding
import android.app.Application
import android.net.nsd.NsdManager
import android.webkit.URLUtil
import android.widget.Toast
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService
import androidx.lifecycle.AndroidViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import io.homeassistant.companion.android.common.R
@ -22,7 +21,7 @@ class OnboardingViewModel @Inject constructor(
) : AndroidViewModel(app) {
private val homeAssistantSearcher = HomeAssistantSearcher(
ContextCompat.getSystemService(app, NsdManager::class.java)!!,
app.getSystemService()!!,
{ instance ->
if (foundInstances.none { it.url == instance.url }) {
foundInstances.add(instance)

View file

@ -16,6 +16,7 @@ import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.platform.ComposeView
import androidx.core.content.getSystemService
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import com.google.android.material.composethemeadapter.MdcTheme
@ -168,7 +169,7 @@ class MobileAppIntegrationFragment : Fragment() {
private fun isIgnoringBatteryOptimizations(): Boolean {
return Build.VERSION.SDK_INT <= Build.VERSION_CODES.M ||
context?.getSystemService(PowerManager::class.java)
context?.getSystemService<PowerManager>()
?.isIgnoringBatteryOptimizations(activity?.packageName ?: "")
?: false
}

View file

@ -8,6 +8,7 @@ import android.os.Build
import android.os.Process
import android.util.Log
import androidx.annotation.RequiresApi
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.sensors.SensorManager
import java.math.RoundingMode
@ -123,7 +124,7 @@ class AppSensorManager : SensorManager {
updateAppTxGb(context, myUid)
updateImportanceCheck(context)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val usageStatsManager = context.getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
val usageStatsManager = context.getSystemService<UsageStatsManager>()!!
updateAppInactive(context, usageStatsManager)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
updateAppStandbyBucket(context, usageStatsManager)
@ -262,7 +263,7 @@ class AppSensorManager : SensorManager {
if (!isEnabled(context, app_importance.id))
return
val appManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val appManager = context.getSystemService<ActivityManager>()!!
val currentProcess = appManager.runningAppProcesses
var importance = "not_running"
if (currentProcess != null) {

View file

@ -4,6 +4,7 @@ import android.content.Context
import android.media.AudioDeviceInfo
import android.media.AudioManager
import android.os.Build
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -97,7 +98,7 @@ class AudioSensorManager : SensorManager {
}
override fun requestSensorUpdate(context: Context) {
val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val audioManager = context.getSystemService<AudioManager>()!!
updateAudioSensor(context, audioManager)
updateAudioState(context, audioManager)
updateHeadphoneState(context, audioManager)

View file

@ -4,6 +4,7 @@ import android.app.KeyguardManager
import android.content.Context
import android.os.Build
import androidx.annotation.RequiresApi
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -64,7 +65,7 @@ class KeyguardSensorManager : SensorManager {
override fun requestSensorUpdate(
context: Context
) {
val km = context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
val km = context.getSystemService<KeyguardManager>()!!
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
updateDeviceLocked(context, km)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)

View file

@ -7,6 +7,7 @@ import android.content.pm.PackageManager
import android.os.Build
import android.util.Log
import androidx.annotation.RequiresApi
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -55,7 +56,7 @@ class LastAppSensorManager : SensorManager {
if (!isEnabled(context, last_used.id))
return
val usageStats = context.getSystemService(Context.USAGE_STATS_SERVICE) as UsageStatsManager
val usageStats = context.getSystemService<UsageStatsManager>()!!
val current = System.currentTimeMillis()
var lastApp = usageStats.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, current - 1000 * 1000, current).maxByOrNull { it.lastTimeUsed }?.packageName ?: "none"
try {

View file

@ -1,13 +1,13 @@
package io.homeassistant.companion.android.sensors
import android.content.Context
import android.content.Context.SENSOR_SERVICE
import android.content.pm.PackageManager
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import kotlin.math.roundToInt
import io.homeassistant.companion.android.common.R as commonR
@ -64,7 +64,7 @@ class LightSensorManager : SensorManager, SensorEventListener {
if (!isEnabled(latestContext, lightSensor.id))
return
mySensorManager = latestContext.getSystemService(SENSOR_SERVICE) as android.hardware.SensorManager
mySensorManager = latestContext.getSystemService()!!
val lightSensors = mySensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)
if (lightSensors != null && !isListenerRegistered) {

View file

@ -5,6 +5,7 @@ import android.content.pm.PackageManager
import android.provider.Settings
import android.provider.Settings.Global.getInt
import android.telephony.TelephonyManager
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -64,9 +65,8 @@ class MobileDataManager : SensorManager {
return
var enabled = false
val telephonyManager =
(context.applicationContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager)
if (telephonyManager.simState == TelephonyManager.SIM_STATE_READY) {
val telephonyManager = context.applicationContext.getSystemService<TelephonyManager>()
if (telephonyManager?.simState == TelephonyManager.SIM_STATE_READY) {
enabled = getInt(context.contentResolver, settingKey, 0) == 1
}
onSensorUpdated(

View file

@ -6,6 +6,7 @@ import android.net.wifi.WifiInfo
import android.net.wifi.WifiManager
import android.os.Build
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.database.AppDatabase
@ -152,7 +153,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, wifiConnection.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
conInfo = wifiManager.connectionInfo
ssid = if (conInfo.networkId == -1) {
@ -185,7 +186,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, bssidState.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
conInfo = wifiManager.connectionInfo
}
@ -228,7 +229,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, wifiIp.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
val conInfo = wifiManager.connectionInfo
deviceIp = if (conInfo.networkId == -1) {
@ -258,7 +259,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, wifiLinkSpeed.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
val conInfo = wifiManager.connectionInfo
linkSpeed = if (conInfo.networkId == -1) {
@ -300,7 +301,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, wifiState.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
wifiEnabled = wifiManager.isWifiEnabled
}
@ -323,7 +324,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, wifiFrequency.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
val conInfo = wifiManager.connectionInfo
frequency = if (conInfo.networkId == -1) {
@ -352,7 +353,7 @@ class NetworkSensorManager : SensorManager {
if (checkPermission(context, wifiSignalStrength.id)) {
val wifiManager =
(context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager)
context.applicationContext.getSystemService<WifiManager>()!!
val conInfo = wifiManager.connectionInfo
lastScanStrength = wifiManager.scanResults.firstOrNull {

View file

@ -3,6 +3,7 @@ package io.homeassistant.companion.android.sensors
import android.app.AlarmManager
import android.content.Context
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.database.AppDatabase
@ -68,8 +69,7 @@ class NextAlarmManager : SensorManager {
val allowPackageList = sensorSetting.firstOrNull { it.name == SETTING_ALLOW_LIST }?.value ?: ""
try {
val alarmManager: AlarmManager =
context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
val alarmManager = context.getSystemService<AlarmManager>()!!
val alarmClockInfo = alarmManager.nextAlarmClock

View file

@ -10,6 +10,7 @@ import android.service.notification.NotificationListenerService
import android.service.notification.StatusBarNotification
import android.util.Log
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -229,7 +230,7 @@ class NotificationSensorManager : NotificationListenerService(), SensorManager {
if (!isEnabled(context, mediaSession.id))
return
val mediaSessionManager = context.getSystemService(Context.MEDIA_SESSION_SERVICE) as MediaSessionManager
val mediaSessionManager = context.getSystemService<MediaSessionManager>()!!
val mediaList = mediaSessionManager.getActiveSessions(ComponentName(context, NotificationSensorManager::class.java))
val sessionCount = mediaList.size
val primaryPlaybackState = if (sessionCount > 0) getPlaybackState(mediaList[0].playbackState?.state) else "Unavailable"

View file

@ -6,6 +6,7 @@ import android.os.Build
import android.telephony.SubscriptionInfo
import android.telephony.SubscriptionManager
import android.telephony.TelephonyManager
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.BuildConfig
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -73,7 +74,7 @@ class PhoneStateSensorManager : SensorManager {
if (checkPermission(context, phoneState.id)) {
val telephonyManager =
(context.applicationContext.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager)
context.applicationContext.getSystemService<TelephonyManager>()!!
currentPhoneState = when (telephonyManager.callState) {
TelephonyManager.CALL_STATE_IDLE -> "idle"
@ -115,8 +116,9 @@ class PhoneStateSensorManager : SensorManager {
if (checkPermission(context, basicSimSensor.id)) {
val subscriptionManager =
(context.applicationContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)) as SubscriptionManager
val info: SubscriptionInfo? = subscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(slotIndex)
context.applicationContext.getSystemService<SubscriptionManager>()
val info: SubscriptionInfo? =
subscriptionManager?.getActiveSubscriptionInfoForSimSlotIndex(slotIndex)
if (info != null) {
displayName = info.displayName.toString()

View file

@ -1,10 +1,10 @@
package io.homeassistant.companion.android.sensors
import android.content.Context
import android.content.Context.POWER_SERVICE
import android.os.Build
import android.os.PowerManager
import androidx.annotation.RequiresApi
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import io.homeassistant.companion.android.common.R as commonR
@ -59,7 +59,7 @@ class PowerSensorManager : SensorManager {
override fun requestSensorUpdate(
context: Context
) {
val powerManager = context.getSystemService(POWER_SERVICE) as PowerManager
val powerManager = context.getSystemService<PowerManager>()!!
updateInteractive(context, powerManager)
updatePowerSave(context, powerManager)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

View file

@ -1,13 +1,13 @@
package io.homeassistant.companion.android.sensors
import android.content.Context
import android.content.Context.SENSOR_SERVICE
import android.content.pm.PackageManager
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import java.math.RoundingMode
import io.homeassistant.companion.android.common.R as commonR
@ -62,7 +62,7 @@ class PressureSensorManager : SensorManager, SensorEventListener {
if (!isEnabled(latestContext, pressureSensor.id))
return
mySensorManager = latestContext.getSystemService(SENSOR_SERVICE) as android.hardware.SensorManager
mySensorManager = latestContext.getSystemService()!!
val pressureSensors = mySensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE)
if (pressureSensors != null && !isListenerRegistered) {

View file

@ -1,13 +1,13 @@
package io.homeassistant.companion.android.sensors
import android.content.Context
import android.content.Context.SENSOR_SERVICE
import android.content.pm.PackageManager
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import kotlin.math.roundToInt
import io.homeassistant.companion.android.common.R as commonR
@ -61,7 +61,7 @@ class ProximitySensorManager : SensorManager, SensorEventListener {
if (!isEnabled(latestContext, proximitySensor.id))
return
mySensorManager = latestContext.getSystemService(SENSOR_SERVICE) as android.hardware.SensorManager
mySensorManager = latestContext.getSystemService()!!
val proximitySensors = mySensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY)
if (proximitySensors != null && !isListenerRegistered) {

View file

@ -2,7 +2,6 @@ package io.homeassistant.companion.android.sensors
import android.Manifest
import android.content.Context
import android.content.Context.SENSOR_SERVICE
import android.content.pm.PackageManager
import android.hardware.Sensor
import android.hardware.SensorEvent
@ -10,6 +9,7 @@ import android.hardware.SensorEventListener
import android.hardware.SensorManager.SENSOR_DELAY_NORMAL
import android.os.Build
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import kotlin.math.roundToInt
import io.homeassistant.companion.android.common.R as commonR
@ -73,8 +73,7 @@ class StepsSensorManager : SensorManager, SensorEventListener {
return
if (checkPermission(latestContext, stepsSensor.id)) {
mySensorManager =
latestContext.getSystemService(SENSOR_SERVICE) as android.hardware.SensorManager
mySensorManager = latestContext.getSystemService()!!
val stepsSensors = mySensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
if (stepsSensors != null && !isListenerRegistered) {

View file

@ -5,6 +5,7 @@ import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.net.TrafficStats
import android.util.Log
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.common.sensors.SensorManager
import java.math.RoundingMode
import kotlin.math.absoluteValue
@ -73,7 +74,7 @@ class TrafficStatsManager : SensorManager {
}
override fun hasSensor(context: Context): Boolean {
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val cm = context.getSystemService<ConnectivityManager>()!!
val networkInfo = cm.allNetworks
var networkCapabilities: NetworkCapabilities?
for (item in networkInfo) {

View file

@ -16,6 +16,7 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.content.res.AppCompatResources
import androidx.biometric.BiometricManager
import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService
import androidx.lifecycle.lifecycleScope
import androidx.preference.EditTextPreference
import androidx.preference.ListPreference
@ -474,7 +475,7 @@ class SettingsFragment constructor(
private fun isIgnoringBatteryOptimizations(): Boolean {
return Build.VERSION.SDK_INT <= Build.VERSION_CODES.M ||
context?.getSystemService(PowerManager::class.java)
context?.getSystemService<PowerManager>()
?.isIgnoringBatteryOptimizations(requireActivity().packageName)
?: false
}

View file

@ -13,6 +13,7 @@ import android.util.Log
import android.view.Menu
import android.widget.Toast
import androidx.annotation.RequiresApi
import androidx.core.content.getSystemService
import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.graphics.drawable.toBitmap
import androidx.preference.EditTextPreference
@ -30,7 +31,6 @@ import io.homeassistant.companion.android.R
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
import io.homeassistant.companion.android.webview.WebViewActivity
import kotlinx.coroutines.runBlocking
import java.lang.Exception
import javax.inject.Inject
import io.homeassistant.companion.android.common.R as commonR
@ -91,7 +91,7 @@ class ManageShortcutsSettingsFragment : PreferenceFragmentCompat(), IconDialog.C
activity?.title = getString(commonR.string.shortcuts)
val addNewShortcut = findPreference<PreferenceCategory>("pinned_shortcut_category")
val shortcutManager = requireContext().getSystemService(ShortcutManager::class.java)
val shortcutManager = requireContext().getSystemService<ShortcutManager>()!!
var pinnedShortcuts = shortcutManager.pinnedShortcuts
var dynamicShortcuts = shortcutManager.dynamicShortcuts
var entityList = listOf<String>()

View file

@ -9,6 +9,7 @@ import android.content.Intent
import android.util.Log
import androidx.core.app.ServiceCompat
import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService
import java.util.Calendar
class ForegroundServiceLauncher(private val serviceClass: Class<out Service>) {
@ -61,7 +62,7 @@ class ForegroundServiceLauncher(private val serviceClass: Class<out Service>) {
val restartIntent = Intent(context, serviceClass).apply { block() }
val restartServicePI = PendingIntent.getService(context, 1, restartIntent, PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE)
val alarmManager: AlarmManager = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
val alarmManager: AlarmManager = context.getSystemService()!!
val calendar: Calendar = Calendar.getInstance()
calendar.timeInMillis = System.currentTimeMillis()
calendar.add(Calendar.SECOND, 2)

View file

@ -43,6 +43,7 @@ import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService
import androidx.core.content.res.ResourcesCompat
import androidx.core.graphics.ColorUtils
import androidx.core.view.WindowInsetsControllerCompat
@ -819,7 +820,7 @@ class WebViewActivity : BaseActivity(), io.homeassistant.companion.android.webvi
}
fun processHaptic(hapticType: String) {
val vm = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
val vm = getSystemService<Vibrator>()
Log.d(TAG, "Processing haptic tag for $hapticType")
when (hapticType) {
@ -827,19 +828,19 @@ class WebViewActivity : BaseActivity(), io.homeassistant.companion.android.webvi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
webView.performHapticFeedback(HapticFeedbackConstants.CONFIRM)
else
vm.vibrate(500)
vm?.vibrate(500)
}
"warning" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
vm.vibrate(VibrationEffect.createOneShot(400, VibrationEffect.EFFECT_HEAVY_CLICK))
vm?.vibrate(VibrationEffect.createOneShot(400, VibrationEffect.EFFECT_HEAVY_CLICK))
else
vm.vibrate(1500)
vm?.vibrate(1500)
}
"failure" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
webView.performHapticFeedback(HapticFeedbackConstants.REJECT)
else
vm.vibrate(1000)
vm?.vibrate(1000)
}
"light" -> {
webView.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP)
@ -854,7 +855,7 @@ class WebViewActivity : BaseActivity(), io.homeassistant.companion.android.webvi
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R)
webView.performHapticFeedback(HapticFeedbackConstants.GESTURE_START)
else
vm.vibrate(50)
vm?.vibrate(50)
}
}
}

View file

@ -13,6 +13,7 @@ import android.util.Log
import android.view.View
import android.widget.RemoteViews
import android.widget.Toast
import androidx.core.content.getSystemService
import com.squareup.picasso.Picasso
import dagger.hilt.android.AndroidEntryPoint
import io.homeassistant.companion.android.BuildConfig
@ -249,8 +250,8 @@ class CameraWidget : AppWidgetProvider() {
}
private fun isConnectionActive(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetworkInfo = connectivityManager.activeNetworkInfo
val connectivityManager = context.getSystemService<ConnectivityManager>()
val activeNetworkInfo = connectivityManager?.activeNetworkInfo
return activeNetworkInfo?.isConnected ?: false
}
}

View file

@ -13,6 +13,7 @@ import android.util.Log
import android.view.View
import android.widget.RemoteViews
import android.widget.Toast
import androidx.core.content.getSystemService
import com.mikepenz.iconics.IconicsDrawable
import com.squareup.picasso.Picasso
import dagger.hilt.android.AndroidEntryPoint
@ -616,8 +617,8 @@ class MediaPlayerControlsWidget : BaseWidgetProvider() {
}
private fun isConnectionActive(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetworkInfo = connectivityManager.activeNetworkInfo
val connectivityManager = context.getSystemService<ConnectivityManager>()
val activeNetworkInfo = connectivityManager?.activeNetworkInfo
return activeNetworkInfo?.isConnected ?: false
}
}

View file

@ -5,6 +5,7 @@ import android.content.Context
import android.net.wifi.WifiManager
import android.os.Build
import android.provider.Settings
import androidx.core.content.getSystemService
import dagger.Binds
import dagger.Module
import dagger.Provides
@ -120,7 +121,7 @@ abstract class DataModule {
@Provides
@Singleton
fun wifiManager(@ApplicationContext appContext: Context) = appContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
fun wifiManager(@ApplicationContext appContext: Context) = appContext.getSystemService<WifiManager>()!!
}
@Binds

View file

@ -6,6 +6,7 @@ import android.content.Intent
import android.content.pm.PackageManager
import android.os.Process.myPid
import android.os.Process.myUid
import androidx.core.content.getSystemService
import io.homeassistant.companion.android.database.AppDatabase
import io.homeassistant.companion.android.database.sensor.Attribute
import io.homeassistant.companion.android.database.sensor.Sensor
@ -55,7 +56,7 @@ interface SensorManager {
fun checkUsageStatsPermission(context: Context): Boolean {
val pm = context.packageManager
val appInfo = pm.getApplicationInfo(context.packageName, 0)
val appOpsManager = context.getSystemService(Context.APP_OPS_SERVICE) as AppOpsManager
val appOpsManager = context.getSystemService<AppOpsManager>()!!
val mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, appInfo.uid, appInfo.packageName)
return mode == AppOpsManager.MODE_ALLOWED
}

View file

@ -3,10 +3,10 @@ package io.homeassistant.companion.android.common.sensors
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.content.Context.NOTIFICATION_SERVICE
import android.os.Build
import android.util.Log
import androidx.core.app.NotificationCompat
import androidx.core.content.getSystemService
import androidx.work.CoroutineWorker
import androidx.work.ForegroundInfo
import androidx.work.WorkerParameters
@ -30,7 +30,7 @@ abstract class SensorWorkerBase(
const val NOTIFICATION_ID = 42
}
private val notificationManager = appContext.getSystemService(NOTIFICATION_SERVICE) as NotificationManager
private val notificationManager = appContext.getSystemService<NotificationManager>()!!
override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
val sensorDao = AppDatabase.getInstance(applicationContext).sensorDao()

View file

@ -11,6 +11,7 @@ import android.util.Log
import android.widget.Toast
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.getSystemService
import androidx.room.Database
import androidx.room.OnConflictStrategy
import androidx.room.Room
@ -455,7 +456,7 @@ abstract class AppDatabase : RoomDatabase() {
private fun createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val notificationManager = appContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
val notificationManager = appContext.getSystemService<NotificationManager>()!!
var notificationChannel =
notificationManager.getNotificationChannel(channelId)

View file

@ -7,6 +7,7 @@ import android.os.Build
import android.os.VibrationEffect
import android.os.Vibrator
import android.os.VibratorManager
import androidx.core.content.getSystemService
import dagger.hilt.android.AndroidEntryPoint
import io.homeassistant.companion.android.common.data.integration.IntegrationRepository
import io.homeassistant.companion.android.home.HomePresenterImpl
@ -26,14 +27,12 @@ class TileActionReceiver : BroadcastReceiver() {
runBlocking {
if (integrationUseCase.getWearHapticFeedback()) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager =
context?.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
val vibrator = vibratorManager.defaultVibrator
vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
val vibratorManager = context?.getSystemService<VibratorManager>()
val vibrator = vibratorManager?.defaultVibrator
vibrator?.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
} else {
val vibrator =
context?.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
vibrator.vibrate(200)
val vibrator = context?.getSystemService<Vibrator>()
vibrator?.vibrate(200)
}
}