diff --git a/app/src/full/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt b/app/src/full/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt index 86da0080f..0965d23ec 100644 --- a/app/src/full/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt +++ b/app/src/full/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt @@ -3,6 +3,7 @@ package io.homeassistant.companion.android.matter import android.content.ComponentName import android.content.Context import android.content.IntentSender +import android.content.pm.PackageManager import android.os.Build import android.util.Log import com.google.android.gms.home.matter.Matter @@ -12,7 +13,8 @@ import io.homeassistant.companion.android.common.data.websocket.impl.entities.Ma import javax.inject.Inject class MatterManagerImpl @Inject constructor( - private val serverManager: ServerManager + private val serverManager: ServerManager, + private val packageManager: PackageManager ) : MatterManager { companion object { @@ -20,7 +22,7 @@ class MatterManagerImpl @Inject constructor( } override fun appSupportsCommissioning(): Boolean = - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 + Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) override suspend fun coreSupportsCommissioning(serverId: Int): Boolean { if (!serverManager.isRegistered() || serverManager.getServer(serverId)?.user?.isAdmin != true) return false diff --git a/app/src/full/java/io/homeassistant/companion/android/settings/wear/SettingsWearDetection.kt b/app/src/full/java/io/homeassistant/companion/android/settings/wear/SettingsWearDetection.kt index 449f5046c..15f7b76dc 100644 --- a/app/src/full/java/io/homeassistant/companion/android/settings/wear/SettingsWearDetection.kt +++ b/app/src/full/java/io/homeassistant/companion/android/settings/wear/SettingsWearDetection.kt @@ -1,6 +1,7 @@ package io.homeassistant.companion.android.settings.wear import android.content.Context +import android.content.pm.PackageManager import android.util.Log import com.google.android.gms.common.api.ApiException import com.google.android.gms.common.api.CommonStatusCodes @@ -16,6 +17,7 @@ object SettingsWearDetection { * if they have the Home Assistant app installed. */ suspend fun hasAnyNodes(context: Context): Boolean { + if (context.packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) return false return try { val nodeClient = Wearable.getNodeClient(context) nodeClient.connectedNodes.await().any() diff --git a/app/src/full/java/io/homeassistant/companion/android/thread/ThreadManagerImpl.kt b/app/src/full/java/io/homeassistant/companion/android/thread/ThreadManagerImpl.kt index c34f0607b..9e337a2db 100644 --- a/app/src/full/java/io/homeassistant/companion/android/thread/ThreadManagerImpl.kt +++ b/app/src/full/java/io/homeassistant/companion/android/thread/ThreadManagerImpl.kt @@ -3,6 +3,7 @@ package io.homeassistant.companion.android.thread import android.app.Activity import android.content.Context import android.content.IntentSender +import android.content.pm.PackageManager import android.os.Build import android.util.Log import androidx.activity.result.ActivityResult @@ -21,7 +22,8 @@ import kotlin.coroutines.resumeWithException import kotlin.coroutines.suspendCoroutine class ThreadManagerImpl @Inject constructor( - private val serverManager: ServerManager + private val serverManager: ServerManager, + private val packageManager: PackageManager ) : ThreadManager { companion object { private const val TAG = "ThreadManagerImpl" @@ -31,7 +33,7 @@ class ThreadManagerImpl @Inject constructor( } override fun appSupportsThread(): Boolean = - Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 + Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && !packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE) override suspend fun coreSupportsThread(serverId: Int): Boolean { if (!serverManager.isRegistered() || serverManager.getServer(serverId)?.user?.isAdmin != true) return false diff --git a/common/src/main/java/io/homeassistant/companion/android/common/data/DataModule.kt b/common/src/main/java/io/homeassistant/companion/android/common/data/DataModule.kt index 5f7cf1376..701558b6a 100644 --- a/common/src/main/java/io/homeassistant/companion/android/common/data/DataModule.kt +++ b/common/src/main/java/io/homeassistant/companion/android/common/data/DataModule.kt @@ -139,6 +139,10 @@ abstract class DataModule { @Provides @Singleton fun wifiManager(@ApplicationContext appContext: Context) = appContext.getSystemService() + + @Provides + @Singleton + fun packageManager(@ApplicationContext appContext: Context) = appContext.packageManager } @Binds