Commit bb81fe13 authored by Max Lv's avatar Max Lv

fix close receiver

parent 66d70f15
...@@ -68,10 +68,10 @@ class ShadowsocksVpnService extends VpnService with BaseService { ...@@ -68,10 +68,10 @@ class ShadowsocksVpnService extends VpnService with BaseService {
val PRIVATE_VLAN = "26.26.26.%s" val PRIVATE_VLAN = "26.26.26.%s"
val PRIVATE_VLAN6 = "fdfe:dcba:9876::%s" val PRIVATE_VLAN6 = "fdfe:dcba:9876::%s"
var conn: ParcelFileDescriptor = null var conn: ParcelFileDescriptor = null
var receiver: BroadcastReceiver = null
var apps: Array[ProxiedApp] = null var apps: Array[ProxiedApp] = null
var config: Config = null var config: Config = null
var vpnThread: ShadowsocksVpnThread = null var vpnThread: ShadowsocksVpnThread = null
var closeReceiver: BroadcastReceiver = null
def isByass(net: SubnetUtils): Boolean = { def isByass(net: SubnetUtils): Boolean = {
val info = net.getInfo val info = net.getInfo
...@@ -171,10 +171,10 @@ class ShadowsocksVpnService extends VpnService with BaseService { ...@@ -171,10 +171,10 @@ class ShadowsocksVpnService extends VpnService with BaseService {
stopSelf() stopSelf()
} }
// clean up the context // clean up recevier
if (receiver != null) { if (closeReceiver != null) {
unregisterReceiver(receiver) unregisterReceiver(closeReceiver)
receiver = null closeReceiver = null
} }
// channge the state // channge the state
...@@ -211,6 +211,16 @@ class ShadowsocksVpnService extends VpnService with BaseService { ...@@ -211,6 +211,16 @@ class ShadowsocksVpnService extends VpnService with BaseService {
config = c config = c
// register close receiver
val filter = new IntentFilter()
filter.addAction(Intent.ACTION_SHUTDOWN)
filter.addAction(Action.CLOSE)
closeReceiver = (context: Context, intent: Intent) => {
Toast.makeText(context, R.string.stopping, Toast.LENGTH_SHORT).show()
stopRunner()
}
registerReceiver(closeReceiver, filter)
// ensure the VPNService is prepared // ensure the VPNService is prepared
if (VpnService.prepare(this) != null) { if (VpnService.prepare(this) != null) {
val i = new Intent(this, classOf[ShadowsocksRunnerActivity]) val i = new Intent(this, classOf[ShadowsocksRunnerActivity])
...@@ -226,15 +236,6 @@ class ShadowsocksVpnService extends VpnService with BaseService { ...@@ -226,15 +236,6 @@ class ShadowsocksVpnService extends VpnService with BaseService {
.setLabel(getVersionName) .setLabel(getVersionName)
.build()) .build())
// register close receiver
val filter = new IntentFilter()
filter.addAction(Intent.ACTION_SHUTDOWN)
receiver = (p1: Context, p2: Intent) => {
Toast.makeText(p1, R.string.stopping, Toast.LENGTH_SHORT)
stopRunner()
}
registerReceiver(receiver, filter)
changeState(State.CONNECTING) changeState(State.CONNECTING)
Future { Future {
......
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