Commit 716d50bb authored by Mygod's avatar Mygod

Catch DeadObjectException in onServiceConnected

parent 734f2ed8
......@@ -28,6 +28,7 @@ import android.net.VpnService
import android.nfc.NdefMessage
import android.nfc.NfcAdapter
import android.os.Bundle
import android.os.DeadObjectException
import android.util.Log
import android.view.KeyCharacterMap
import android.view.KeyEvent
......@@ -117,7 +118,11 @@ class MainActivity : AppCompatActivity(), ShadowsocksConnection.Interface, OnPre
}
override val listenForDeath: Boolean get() = true
override fun onServiceConnected(service: IShadowsocksService) = changeState(service.state)
override fun onServiceConnected(service: IShadowsocksService) = changeState(try {
service.state
} catch (_: DeadObjectException) {
BaseService.IDLE
})
override fun onServiceDisconnected() = changeState(BaseService.IDLE)
override fun binderDied() {
super.binderDied()
......
......@@ -26,6 +26,7 @@ import android.content.ActivityNotFoundException
import android.content.Intent
import android.net.VpnService
import android.os.Bundle
import android.os.DeadObjectException
import android.text.format.Formatter
import android.util.Log
import android.widget.Toast
......@@ -135,7 +136,11 @@ class MainPreferenceFragment : LeanbackPreferenceFragment(), ShadowsocksConnecti
}
override val listenForDeath: Boolean get() = true
override fun onServiceConnected(service: IShadowsocksService) = changeState(service.state)
override fun onServiceConnected(service: IShadowsocksService) = changeState(try {
service.state
} catch (_: DeadObjectException) {
BaseService.IDLE
})
override fun onServiceDisconnected() = changeState(BaseService.IDLE)
override fun binderDied() {
super.binderDied()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment