From 531bce281d4c158265e2feac662c7d959e2d0c80 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Thu, 6 Jun 2013 18:00:37 +0800 Subject: [PATCH] update status prefs --- .../com/github/shadowsocks/Shadowsocks.scala | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala index 4a04bbc0..3dec002e 100644 --- a/src/main/scala/com/github/shadowsocks/Shadowsocks.scala +++ b/src/main/scala/com/github/shadowsocks/Shadowsocks.scala @@ -136,11 +136,13 @@ object Shadowsocks { val pref: Preference = findPreference(name) if (pref != null) { val settings = PreferenceManager.getDefaultSharedPreferences(getActivity) - if ((name == Key.isBypassApps) || (name == Key.proxyedApps)) { + val status = getActivity.getSharedPreferences(Key.status, Context.MODE_PRIVATE) + val isRoot = status.getBoolean(Key.isRoot, false) + if (name == Key.isAutoConnect || name == Key.isGlobalProxy) { + pref.setEnabled(isRoot) + } else if ((name == Key.isBypassApps) || (name == Key.proxyedApps)) { val isGlobalProxy: Boolean = settings.getBoolean(Key.isGlobalProxy, false) - pref.setEnabled(enabled && !isGlobalProxy) - } else if (name == Key.isAutoConnect) { - pref.setEnabled(settings.getBoolean(Key.isRoot, false)) + pref.setEnabled(enabled && isRoot && !isGlobalProxy) } else { pref.setEnabled(enabled) } @@ -378,7 +380,7 @@ class Shadowsocks progressDialog = ProgressDialog.show(this, "", getString(R.string.initializing), true, true) } spawn { - settings.edit().putBoolean(Key.isRoot, Utils.getRoot).commit() + status.edit().putBoolean(Key.isRoot, Utils.getRoot).commit() if (!status.getBoolean(getVersionName, false)) { status.edit.putBoolean(getVersionName, true).apply() reset() @@ -483,11 +485,12 @@ class Shadowsocks for (name <- Shadowsocks.FEATRUE_PREFS) { val pref: Preference = findPreference(name) if (pref != null) { - if ((name == Key.isBypassApps) || (name == Key.proxyedApps)) { - val isGlobalProxy: Boolean = settings.getBoolean("isGlobalProxy", false) - pref.setEnabled(enabled && !isGlobalProxy) - } else if (name == Key.isAutoConnect) { - pref.setEnabled(settings.getBoolean(Key.isRoot, false)) + val isRoot = status.getBoolean(Key.isRoot, false) + if (name == Key.isAutoConnect || name == Key.isGlobalProxy) { + pref.setEnabled(isRoot) + } else if ((name == Key.isBypassApps) || (name == Key.proxyedApps)) { + val isGlobalProxy: Boolean = settings.getBoolean(Key.isGlobalProxy, false) + pref.setEnabled(enabled && isRoot && !isGlobalProxy) } else { pref.setEnabled(enabled) }