From df09d391399449d356c83441dd38a35b51abf0be Mon Sep 17 00:00:00 2001 From: Max Lv Date: Sun, 3 Jul 2016 17:27:50 +0800 Subject: [PATCH] Add apply-all action --- project/plugins.sbt | 2 +- src/main/res/drawable/ic_done_all.xml | 9 +++++++++ src/main/res/menu/app_manager_menu.xml | 10 ++++++++-- src/main/res/values-ru/strings.xml | 2 ++ src/main/res/values-zh-rCN/strings.xml | 1 + src/main/res/values-zh/strings.xml | 1 + src/main/res/values/strings.xml | 1 + .../scala/com/github/shadowsocks/AppManager.scala | 12 ++++++++++++ 8 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 src/main/res/drawable/ic_done_all.xml diff --git a/project/plugins.sbt b/project/plugins.sbt index b214e4ef..2371805a 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ -addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.5") +addSbtPlugin("org.scala-android" % "sbt-android" % "1.6.6") addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.10") diff --git a/src/main/res/drawable/ic_done_all.xml b/src/main/res/drawable/ic_done_all.xml new file mode 100644 index 00000000..3fa4edb5 --- /dev/null +++ b/src/main/res/drawable/ic_done_all.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/main/res/menu/app_manager_menu.xml b/src/main/res/menu/app_manager_menu.xml index 6eaa911d..8ff03d16 100644 --- a/src/main/res/menu/app_manager_menu.xml +++ b/src/main/res/menu/app_manager_menu.xml @@ -1,15 +1,21 @@ + + android:numericShortcut="2"/> + android:numericShortcut="3"/> diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 05ccf465..491edb37 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -100,6 +100,8 @@ Очистка кэша DNS не работает без налиичя ROOT прав Очистка Добавить Профиль + + Применить настройки для всех профилей Экспортировать в буфер обмена Импортировать из буфера обмена Успешный экспорт! diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index 997ba8c1..e1f1c025 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -113,6 +113,7 @@ 绕过局域网及中国大陆地址 + 应用设置到所有配置文件 导出至剪贴板 从剪贴板导入 导出至剪贴板成功 diff --git a/src/main/res/values-zh/strings.xml b/src/main/res/values-zh/strings.xml index fb60aad5..6e1d13e7 100644 --- a/src/main/res/values-zh/strings.xml +++ b/src/main/res/values-zh/strings.xml @@ -115,6 +115,7 @@ 略過區域網路及中國大陸位址 + 應用設置到所有配置文件 匯出至剪貼簿 從剪貼簿匯入 匯出至剪貼簿成功 diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index c1d42c21..4c2bbbb1 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -102,6 +102,7 @@ Flush DNS cache cannot proceed without ROOT permission Flushing Add Profile + Apply Settings to All Profiles Export to Clipboard Import from Clipboard Successfully export! diff --git a/src/main/scala/com/github/shadowsocks/AppManager.scala b/src/main/scala/com/github/shadowsocks/AppManager.scala index ea5b0689..9aae3f11 100644 --- a/src/main/scala/com/github/shadowsocks/AppManager.scala +++ b/src/main/scala/com/github/shadowsocks/AppManager.scala @@ -157,6 +157,18 @@ class AppManager extends AppCompatActivity with OnMenuItemClickListener { val clipboard = getSystemService(Context.CLIPBOARD_SERVICE).asInstanceOf[ClipboardManager] val prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext) item.getItemId match { + case R.id.action_apply_all => + app.profileManager.getAllProfiles match { + case Some(profiles) => + val proxiedAppString = prefs.getString(Key.proxied, "") + profiles.foreach(profile => + profile.individual = proxiedAppString + app.profileManager.updateProfile(profile) + ) + Toast.makeText(this, R.string.action_apply_all, Toast.LENGTH_SHORT).show + case _ => Toast.makeText(this, R.string.action_export_err, Toast.LENGTH_SHORT).show + } + return true case R.id.action_export => val bypass = prefs.getBoolean(Key.isBypassApps, false) val proxiedAppString = prefs.getString(Key.proxied, "")