From 07845fb797abb7b0a2d2f0986d38b090fca51496 Mon Sep 17 00:00:00 2001 From: Daniel Shokouhi Date: Wed, 19 Oct 2022 18:06:27 -0700 Subject: [PATCH] Breaking Change: Fix mobile data roaming sensor after target SDK change (#2978) Fix mobile data roaming sensor after target SDK change --- .../companion/android/sensors/MobileDataManager.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/homeassistant/companion/android/sensors/MobileDataManager.kt b/app/src/main/java/io/homeassistant/companion/android/sensors/MobileDataManager.kt index fdb43aef5..c6853e40c 100644 --- a/app/src/main/java/io/homeassistant/companion/android/sensors/MobileDataManager.kt +++ b/app/src/main/java/io/homeassistant/companion/android/sensors/MobileDataManager.kt @@ -1,7 +1,9 @@ package io.homeassistant.companion.android.sensors +import android.Manifest import android.content.Context import android.content.pm.PackageManager +import android.os.Build import android.provider.Settings import android.provider.Settings.Global.getInt import android.telephony.TelephonyManager @@ -43,7 +45,9 @@ class MobileDataManager : SensorManager { } override fun requiredPermissions(sensorId: String): Array { - return arrayOf() + return if (sensorId == mobileDataRoaming.id) + arrayOf(Manifest.permission.READ_PHONE_STATE) + else arrayOf() } override fun hasSensor(context: Context): Boolean { @@ -69,7 +73,11 @@ class MobileDataManager : SensorManager { var enabled = false val telephonyManager = context.applicationContext.getSystemService() if (telephonyManager?.simState == TelephonyManager.SIM_STATE_READY) { - enabled = getInt(context.contentResolver, settingKey, 0) == 1 + enabled = if (sensor.id == mobileDataRoaming.id && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) + telephonyManager.isDataRoamingEnabled + else { + getInt(context.contentResolver, settingKey, 0) == 1 + } } onSensorUpdated( context,