diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/AutoTunnelControlTile.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/AutoTunnelControlTile.kt index 1089d8af..fcb4c026 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/AutoTunnelControlTile.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/AutoTunnelControlTile.kt @@ -1,5 +1,7 @@ package com.zaneschepke.wireguardautotunnel.core.service.tile +import android.content.Intent +import android.os.IBinder import android.service.quicksettings.Tile import android.service.quicksettings.TileService import androidx.lifecycle.Lifecycle @@ -89,6 +91,18 @@ class AutoTunnelControlTile : TileService(), LifecycleOwner { } } + /* This works around an annoying unsolved frameworks bug some people are hitting. */ + override fun onBind(intent: Intent): IBinder? { + var ret: IBinder? = null + try { + ret = super.onBind(intent) + } catch (_: Throwable) { + Timber.e("Failed to bind to AutoTunnelControlTile") + } + return ret + } + + override val lifecycle: Lifecycle get() = lifecycleRegistry } diff --git a/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/TunnelControlTile.kt b/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/TunnelControlTile.kt index 2e290217..32901c1c 100644 --- a/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/TunnelControlTile.kt +++ b/app/src/main/java/com/zaneschepke/wireguardautotunnel/core/service/tile/TunnelControlTile.kt @@ -1,6 +1,8 @@ package com.zaneschepke.wireguardautotunnel.core.service.tile +import android.content.Intent import android.os.Build +import android.os.IBinder import android.service.quicksettings.Tile import android.service.quicksettings.TileService import androidx.lifecycle.Lifecycle @@ -167,6 +169,18 @@ class TunnelControlTile : TileService(), LifecycleOwner { .onFailure { Timber.e(it) } } + /* This works around an annoying unsolved frameworks bug some people are hitting. */ + override fun onBind(intent: Intent): IBinder? { + var ret: IBinder? = null + try { + ret = super.onBind(intent) + } catch (_: Throwable) { + Timber.e("Failed to bind to TunnelControlTile") + } + return ret + } + + override val lifecycle: Lifecycle get() = lifecycleRegistry }