From 7a49ddc0457b133fe894c3b54abff68934330fd6 Mon Sep 17 00:00:00 2001 From: Mygod Date: Sun, 28 Jan 2018 00:09:01 -0800 Subject: [PATCH] Fix #1612 --- mobile/src/main/java/com/github/shadowsocks/MainActivity.kt | 5 +++++ .../java/com/github/shadowsocks/bg/ServiceNotification.kt | 3 +-- mobile/src/main/java/com/github/shadowsocks/bg/VpnService.kt | 2 ++ 3 files changed, 8 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 86d72d8d1c..34506e4b44 100644 --- a/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt +++ b/mobile/src/main/java/com/github/shadowsocks/MainActivity.kt @@ -21,8 +21,10 @@ package com.github.shadowsocks import android.app.Activity +import android.app.PendingIntent import android.app.backup.BackupManager import android.content.ActivityNotFoundException +import android.content.Context import android.content.Intent import android.net.Uri import android.net.VpnService @@ -78,6 +80,9 @@ class MainActivity : AppCompatActivity(), ShadowsocksConnection.Interface, Drawe private const val DRAWER_FAQ = 4L private const val DRAWER_CUSTOM_RULES = 5L + fun pendingIntent(context: Context) = PendingIntent.getActivity(context, 0, + Intent(context, MainActivity::class.java).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), 0) + var stateListener: ((Int) -> Unit)? = null } diff --git a/mobile/src/main/java/com/github/shadowsocks/bg/ServiceNotification.kt b/mobile/src/main/java/com/github/shadowsocks/bg/ServiceNotification.kt index cd16d74a6c..08d9f1a1e0 100644 --- a/mobile/src/main/java/com/github/shadowsocks/bg/ServiceNotification.kt +++ b/mobile/src/main/java/com/github/shadowsocks/bg/ServiceNotification.kt @@ -73,8 +73,7 @@ class ServiceNotification(private val service: BaseService.Interface, profileNam .setColor(ContextCompat.getColor(service, R.color.material_primary_500)) .setTicker(service.getString(R.string.forward_success)) .setContentTitle(profileName) - .setContentIntent(PendingIntent.getActivity(service, 0, Intent(service, MainActivity::class.java) - .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), 0)) + .setContentIntent(MainActivity.pendingIntent(service)) .setSmallIcon(R.drawable.ic_service_active) private val style = NotificationCompat.BigTextStyle(builder) private var isVisible = true diff --git a/mobile/src/main/java/com/github/shadowsocks/bg/VpnService.kt b/mobile/src/main/java/com/github/shadowsocks/bg/VpnService.kt index ca3055f390..c1f9470a89 100644 --- a/mobile/src/main/java/com/github/shadowsocks/bg/VpnService.kt +++ b/mobile/src/main/java/com/github/shadowsocks/bg/VpnService.kt @@ -29,6 +29,7 @@ import android.os.ParcelFileDescriptor import android.util.Log import com.github.shadowsocks.App.Companion.app import com.github.shadowsocks.JniHelper +import com.github.shadowsocks.MainActivity import com.github.shadowsocks.R import com.github.shadowsocks.VpnRequestActivity import com.github.shadowsocks.acl.Acl @@ -128,6 +129,7 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { private fun startVpn(): Int { val profile = data.profile!! val builder = Builder() + .setConfigureIntent(MainActivity.pendingIntent(this)) .setSession(profile.formattedName) .setMtu(VPN_MTU) .addAddress(PRIVATE_VLAN.format(Locale.ENGLISH, "1"), 24)