Refine #602
This commit is contained in:
@@ -63,7 +63,7 @@ trait BaseService extends Service {
|
||||
|
||||
private val closeReceiver: BroadcastReceiver = (context: Context, intent: Intent) => {
|
||||
Toast.makeText(context, R.string.stopping, Toast.LENGTH_SHORT).show()
|
||||
stopRunner()
|
||||
stopRunner(true)
|
||||
}
|
||||
var closeReceiverRegistered: Boolean = _
|
||||
|
||||
@@ -106,8 +106,8 @@ trait BaseService extends Service {
|
||||
override def use(config: Config) = synchronized(state match {
|
||||
case State.STOPPED => if (config != null) startRunner(config)
|
||||
case State.CONNECTED =>
|
||||
if (config == null) stopRunner() else if (config.profileId != BaseService.this.config.profileId) {
|
||||
stopRunner()
|
||||
if (config == null) stopRunner(true) else if (config.profileId != BaseService.this.config.profileId) {
|
||||
stopRunner(false)
|
||||
startRunner(config)
|
||||
}
|
||||
case _ => Log.w(BaseService.this.getClass.getSimpleName, "Illegal state when invoking use: " + state)
|
||||
@@ -132,7 +132,7 @@ trait BaseService extends Service {
|
||||
}
|
||||
}
|
||||
|
||||
def stopRunner() {
|
||||
def stopRunner(stopService: Boolean) {
|
||||
// clean up recevier
|
||||
if (closeReceiverRegistered) {
|
||||
unregisterReceiver(closeReceiver)
|
||||
@@ -152,7 +152,7 @@ trait BaseService extends Service {
|
||||
changeState(State.STOPPED)
|
||||
|
||||
// stop the service if nothing has bound to it
|
||||
stopSelf()
|
||||
if (stopService) stopSelf()
|
||||
}
|
||||
|
||||
def updateTrafficTotal(tx: Long, rx: Long) {
|
||||
|
||||
@@ -396,7 +396,7 @@ class ShadowsocksNatService extends BaseService {
|
||||
} catch {
|
||||
case ex: Exception =>
|
||||
changeState(State.STOPPED, getString(R.string.service_failed))
|
||||
stopRunner()
|
||||
stopRunner(false)
|
||||
this.config = null
|
||||
}
|
||||
}
|
||||
@@ -427,13 +427,13 @@ class ShadowsocksNatService extends BaseService {
|
||||
notification = new ShadowsocksNotification(this, config.profileName, true)
|
||||
} else {
|
||||
changeState(State.STOPPED, getString(R.string.service_failed))
|
||||
stopRunner()
|
||||
stopRunner(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override def stopRunner() {
|
||||
override def stopRunner(stopService: Boolean) {
|
||||
|
||||
// channge the state
|
||||
changeState(State.STOPPING)
|
||||
@@ -445,7 +445,7 @@ class ShadowsocksNatService extends BaseService {
|
||||
// reset NAT
|
||||
killProcesses()
|
||||
|
||||
super.stopRunner()
|
||||
super.stopRunner(stopService)
|
||||
}
|
||||
|
||||
override def getTag = TAG
|
||||
|
||||
@@ -106,10 +106,10 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
}
|
||||
|
||||
override def onRevoke() {
|
||||
stopRunner()
|
||||
stopRunner(false)
|
||||
}
|
||||
|
||||
override def stopRunner() {
|
||||
override def stopRunner(stopService: Boolean) {
|
||||
|
||||
if (vpnThread != null) {
|
||||
vpnThread.stopThread()
|
||||
@@ -132,7 +132,7 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
conn = null
|
||||
}
|
||||
|
||||
super.stopRunner()
|
||||
super.stopRunner(stopService)
|
||||
}
|
||||
|
||||
def getVersionName: String = {
|
||||
@@ -193,7 +193,7 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
} catch {
|
||||
case ex: Exception =>
|
||||
changeState(State.STOPPED, getString(R.string.service_failed))
|
||||
stopRunner()
|
||||
stopRunner(false)
|
||||
this.config = null
|
||||
}
|
||||
}
|
||||
@@ -221,7 +221,7 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
notification = new ShadowsocksNotification(this, config.profileName)
|
||||
} else {
|
||||
changeState(State.STOPPED, getString(R.string.service_failed))
|
||||
stopRunner()
|
||||
stopRunner(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -386,7 +386,7 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
}
|
||||
|
||||
if (conn == null) {
|
||||
stopRunner()
|
||||
stopRunner(false)
|
||||
return -1
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user