From 1bea09c5c66d425384f48a4db261e9c77ed6d0a0 Mon Sep 17 00:00:00 2001 From: Mygod Date: Sun, 17 Dec 2017 01:36:20 -0800 Subject: [PATCH] Remove unnecessary call to linkToDeath --- mobile/src/main/java/com/github/shadowsocks/MainActivity.kt | 1 + .../java/com/github/shadowsocks/ShadowsocksConnection.kt | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt b/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt index 1d1c946e..7ee67113 100644 --- a/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt +++ b/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt @@ -224,6 +224,7 @@ class MainActivity : AppCompatActivity(), ShadowsocksConnection.Interface, Drawe } } + override val listenForDeath: Boolean get() = true override fun onServiceConnected(service: IShadowsocksService) = changeState(service.state) override fun onServiceDisconnected() = changeState(BaseService.IDLE) override fun binderDied() { diff --git a/mobile/src/main/java/com/github/shadowsocks/ShadowsocksConnection.kt b/mobile/src/main/java/com/github/shadowsocks/ShadowsocksConnection.kt index 96fdb8bb..8fecccd1 100644 --- a/mobile/src/main/java/com/github/shadowsocks/ShadowsocksConnection.kt +++ b/mobile/src/main/java/com/github/shadowsocks/ShadowsocksConnection.kt @@ -41,6 +41,7 @@ class ShadowsocksConnection(private val instance: Interface) : ServiceConnection val serviceCallback: IShadowsocksServiceCallback? get() = null val connection: ShadowsocksConnection get() = connections.getOrPut(this, { ShadowsocksConnection(this) }) + val listenForDeath get() = false fun onServiceConnected(service: IShadowsocksService) { } /** @@ -66,7 +67,7 @@ class ShadowsocksConnection(private val instance: Interface) : ServiceConnection override fun onServiceConnected(name: ComponentName?, binder: IBinder) { this.binder = binder - binder.linkToDeath(instance, 0) + if (instance.listenForDeath) binder.linkToDeath(instance, 0) val service = IShadowsocksService.Stub.asInterface(binder)!! this.service = service if (instance.serviceCallback != null && !callbackRegistered) try { @@ -106,7 +107,7 @@ class ShadowsocksConnection(private val instance: Interface) : ServiceConnection (instance as Context).unbindService(this) } catch (_: IllegalArgumentException) { } // ignore connectionActive = false - binder?.unlinkToDeath(instance, 0) + if (instance.listenForDeath) binder?.unlinkToDeath(instance, 0) binder = null service = null }