From 5519f1da8b92d71871e7330eebb5199223a2f32c Mon Sep 17 00:00:00 2001 From: Zane Schepke Date: Mon, 13 Oct 2025 18:28:09 -0400 Subject: [PATCH] fix: revert tile binder changes --- .../core/service/tile/AutoTunnelControlTile.kt | 14 ++++++++++++++ .../core/service/tile/TunnelControlTile.kt | 14 ++++++++++++++ 2 files changed, 28 insertions(+) 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 }