refine onTaskRemoved
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.github.shadowsocks"
|
||||
android:versionCode="68"
|
||||
android:versionName="2.2.0">
|
||||
android:versionCode="69"
|
||||
android:versionName="2.2.1">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
|
||||
@@ -220,12 +220,12 @@ class ShadowsocksNatService extends Service with BaseService {
|
||||
}
|
||||
|
||||
def notifyForegroundAlert(title: String, info: String, rate: Int) {
|
||||
val openIntent: Intent = new Intent(this, classOf[Shadowsocks])
|
||||
openIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
val contentIntent: PendingIntent = PendingIntent.getActivity(this, 0, openIntent, 0)
|
||||
val closeIntent: Intent = new Intent(Action.CLOSE)
|
||||
val actionIntent: PendingIntent = PendingIntent.getBroadcast(this, 0, closeIntent, 0)
|
||||
val builder: NotificationCompat.Builder = new NotificationCompat.Builder(this)
|
||||
val openIntent = new Intent(this, classOf[Shadowsocks])
|
||||
openIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
|
||||
val contentIntent = PendingIntent.getActivity(this, 0, openIntent, 0)
|
||||
val closeIntent = new Intent(Action.CLOSE)
|
||||
val actionIntent = PendingIntent.getBroadcast(this, 0, closeIntent, 0)
|
||||
val builder = new NotificationCompat.Builder(this)
|
||||
|
||||
val icon = getResources.getDrawable(R.drawable.ic_stat_shadowsocks)
|
||||
if (rate >= 0) {
|
||||
@@ -309,14 +309,6 @@ class ShadowsocksNatService extends Service with BaseService {
|
||||
}
|
||||
}
|
||||
|
||||
override def onStartCommand(intent: Intent, flags: Int, startId: Int): Int = {
|
||||
Service.START_STICKY
|
||||
}
|
||||
|
||||
override def onTaskRemoved(intent: Intent) {
|
||||
stopRunner()
|
||||
}
|
||||
|
||||
def killProcesses() {
|
||||
Console.runRootCommand(Utils.getIptables + " -t nat -F OUTPUT")
|
||||
|
||||
@@ -564,13 +556,6 @@ class ShadowsocksNatService extends Service with BaseService {
|
||||
timer = null
|
||||
}
|
||||
|
||||
// clean up context
|
||||
stopForegroundCompat(1)
|
||||
if (receiver != null) {
|
||||
unregisterReceiver(receiver)
|
||||
receiver = null
|
||||
}
|
||||
|
||||
// reset NAT
|
||||
killProcesses()
|
||||
|
||||
@@ -578,6 +563,13 @@ class ShadowsocksNatService extends Service with BaseService {
|
||||
if (callbackCount == 0) {
|
||||
stopSelf()
|
||||
}
|
||||
|
||||
// clean up context
|
||||
if (receiver != null) {
|
||||
unregisterReceiver(receiver)
|
||||
receiver = null
|
||||
}
|
||||
stopForegroundCompat(1)
|
||||
}
|
||||
|
||||
override def stopBackgroundService() {
|
||||
|
||||
@@ -118,8 +118,8 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
|
||||
def startVpn() {
|
||||
|
||||
val openIntent: Intent = new Intent(this, classOf[Shadowsocks])
|
||||
openIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
val openIntent = new Intent(this, classOf[Shadowsocks])
|
||||
openIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)
|
||||
val configIntent = PendingIntent.getActivity(this, 0, openIntent, 0)
|
||||
|
||||
val builder = new Builder()
|
||||
@@ -221,10 +221,10 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
}
|
||||
|
||||
def notifyAlert(title: String, info: String) {
|
||||
val openIntent: Intent = new Intent(this, classOf[Shadowsocks])
|
||||
val openIntent = new Intent(this, classOf[Shadowsocks])
|
||||
openIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
val contentIntent: PendingIntent = PendingIntent.getActivity(this, 0, openIntent, 0)
|
||||
val builder: NotificationCompat.Builder = new NotificationCompat.Builder(this)
|
||||
val contentIntent = PendingIntent.getActivity(this, 0, openIntent, 0)
|
||||
val builder = new NotificationCompat.Builder(this)
|
||||
builder
|
||||
.setSmallIcon(R.drawable.ic_stat_shadowsocks)
|
||||
.setWhen(0)
|
||||
@@ -255,14 +255,6 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
.asInstanceOf[NotificationManager]
|
||||
}
|
||||
|
||||
override def onStartCommand(intent: Intent, flags: Int, startId: Int): Int = {
|
||||
Service.START_STICKY
|
||||
}
|
||||
|
||||
override def onTaskRemoved(intent: Intent) {
|
||||
stopRunner()
|
||||
}
|
||||
|
||||
override def onRevoke() {
|
||||
stopRunner()
|
||||
}
|
||||
@@ -363,12 +355,6 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
.set(Fields.SESSION_CONTROL, "stop")
|
||||
.build())
|
||||
|
||||
// clean up the context
|
||||
if (receiver != null) {
|
||||
unregisterReceiver(receiver)
|
||||
receiver = null
|
||||
}
|
||||
|
||||
// reset VPN
|
||||
killProcesses()
|
||||
|
||||
@@ -378,13 +364,28 @@ class ShadowsocksVpnService extends VpnService with BaseService {
|
||||
conn = null
|
||||
}
|
||||
|
||||
// reset notifications
|
||||
notificationManager.cancel(1)
|
||||
|
||||
// stop the service if no callback registered
|
||||
if (callbackCount == 0) {
|
||||
stopSelf()
|
||||
}
|
||||
|
||||
// clean up the context
|
||||
if (receiver != null) {
|
||||
unregisterReceiver(receiver)
|
||||
receiver = null
|
||||
}
|
||||
|
||||
// reset notifications
|
||||
notificationManager.cancel(1)
|
||||
}
|
||||
|
||||
override def onStartCommand(intent: Intent, flags: Int, startId: Int): Int =
|
||||
{
|
||||
Service.START_STICKY
|
||||
}
|
||||
|
||||
override def onTaskRemoved(intent: Intent) {
|
||||
stopRunner()
|
||||
}
|
||||
|
||||
override def stopBackgroundService() {
|
||||
|
||||
Reference in New Issue
Block a user