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 0965d23ec..aa221818e 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 @@ -30,6 +30,11 @@ class MatterManagerImpl @Inject constructor( return config != null && config.components.contains("matter") } + override fun suppressDiscoveryBottomSheet(context: Context) { + if (!appSupportsCommissioning()) return + Matter.getCommissioningClient(context).suppressHalfSheetNotification() + } + override fun startNewCommissioningFlow( context: Context, onSuccess: (IntentSender) -> Unit, diff --git a/app/src/main/java/io/homeassistant/companion/android/matter/MatterManager.kt b/app/src/main/java/io/homeassistant/companion/android/matter/MatterManager.kt index ddc12c492..cc8ae49b3 100644 --- a/app/src/main/java/io/homeassistant/companion/android/matter/MatterManager.kt +++ b/app/src/main/java/io/homeassistant/companion/android/matter/MatterManager.kt @@ -16,6 +16,11 @@ interface MatterManager { */ suspend fun coreSupportsCommissioning(serverId: Int): Boolean + /** + * Prevent the bottom sheet for discovered Matter devices from showing up while the app is open. + */ + fun suppressDiscoveryBottomSheet(context: Context) + /** * Start a flow to commission a Matter device that is on the same network as this device. * @param onSuccess Callback that receives an intent to launch the commissioning flow diff --git a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt index 8641c88fe..c7c5a2ef9 100644 --- a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt +++ b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt @@ -800,6 +800,11 @@ class WebViewActivity : BaseActivity(), io.homeassistant.companion.android.webvi } } + override fun onStart() { + super.onStart() + presenter.onStart(this) + } + override fun onResume() { super.onResume() if (currentAutoplay != presenter.isAutoPlayVideoEnabled()) { diff --git a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenter.kt b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenter.kt index 5c28c9bed..313ce866b 100644 --- a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenter.kt +++ b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenter.kt @@ -42,6 +42,8 @@ interface WebViewPresenter { fun sessionTimeOut(): Int + fun onStart(context: Context) + fun onFinish() fun isSsidUsed(): Boolean diff --git a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenterImpl.kt b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenterImpl.kt index c978a3362..4a4902990 100644 --- a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenterImpl.kt +++ b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewPresenterImpl.kt @@ -287,6 +287,10 @@ class WebViewPresenterImpl @Inject constructor( } ?: 0 } + override fun onStart(context: Context) { + matterUseCase.suppressDiscoveryBottomSheet(context) + } + override fun onFinish() { mainScope.cancel() } diff --git a/app/src/minimal/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt b/app/src/minimal/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt index dad635874..ac7f60e8c 100644 --- a/app/src/minimal/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt +++ b/app/src/minimal/java/io/homeassistant/companion/android/matter/MatterManagerImpl.kt @@ -14,6 +14,10 @@ class MatterManagerImpl @Inject constructor() : MatterManager { override suspend fun coreSupportsCommissioning(serverId: Int): Boolean = false + override fun suppressDiscoveryBottomSheet(context: Context) { + // No support, so nothing to suppress + } + override fun startNewCommissioningFlow( context: Context, onSuccess: (IntentSender) -> Unit,