From 10e3b211e3db49064b890696ed82c8377132f94a Mon Sep 17 00:00:00 2001 From: Mygod Date: Mon, 8 Feb 2016 14:40:49 +0800 Subject: [PATCH] Ask user to refrain from further using NAT mode --- src/main/res/values-zh/strings.xml | 1 + src/main/res/values/strings.xml | 1 + src/main/scala/com/github/shadowsocks/Shadowsocks.scala | 5 +++++ 3 files changed, 7 insertions(+) diff --git a/src/main/res/values-zh/strings.xml b/src/main/res/values-zh/strings.xml index 81ac0089..ee30b407 100755 --- a/src/main/res/values-zh/strings.xml +++ b/src/main/res/values-zh/strings.xml @@ -34,6 +34,7 @@ 随系统启动后台服务 后台服务已开始运行。 无法连接远程服务器 + 警告:在 Android 5.0 及更高版本中不建议使用 NAT 模式 NAT 模式需要 ROOT 权限 切换到 VPN 模式 停止服务 diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index bc378a90..4c020eeb 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -66,6 +66,7 @@ Shadowsocks started. Failed to connect the remote server + WARNING: NAT mode has been deprecated since Android 5.0 NAT mode requires ROOT permission Switch to VPN mode Stop the service diff --git a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala index 6eb2ff04..84a8602f 100644 --- a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala +++ b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala @@ -168,6 +168,11 @@ class Shadowsocks // Update the UI if (fab != null) fab.setEnabled(true) updateState() + if (Build.VERSION.SDK_INT >= 21 && !ShadowsocksApplication.isVpnEnabled) { + val snackbar = Snackbar.make(findViewById(android.R.id.content), R.string.nat_deprecated, Snackbar.LENGTH_LONG) + snackbar.setAction(R.string.switch_to_vpn, (_ => preferences.natSwitch.setChecked(false)): View.OnClickListener) + snackbar.show + } if (!ShadowsocksApplication.settings.getBoolean(ShadowsocksApplication.getVersionName, false)) { ShadowsocksApplication.settings.edit.putBoolean(ShadowsocksApplication.getVersionName, true).apply()