From da8e41d7bb2fee8d24b6b3e0a63ac8d689d54e24 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Wed, 30 Mar 2016 17:46:05 +0800 Subject: [PATCH] Handle exceptions when parsing per-app config string --- .../com/github/shadowsocks/AppManager.scala | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/AppManager.scala b/src/main/scala/com/github/shadowsocks/AppManager.scala index 85427dd4..318dab8d 100644 --- a/src/main/scala/com/github/shadowsocks/AppManager.scala +++ b/src/main/scala/com/github/shadowsocks/AppManager.scala @@ -160,16 +160,20 @@ class AppManager extends AppCompatActivity with OnCheckedChangeListener with OnC if (!proxiedAppString.isEmpty) { val editor = prefs.edit val i = proxiedAppString.indexOf('\n') - if (i < 0) - editor.putBoolean(Key.isBypassApps, proxiedAppString.toBoolean).putString(Key.proxied, "").apply() - else editor.putBoolean(Key.isBypassApps, proxiedAppString.substring(0, i).toBoolean) - .putString(Key.proxied, proxiedAppString.substring(i + 1)).apply() - Toast.makeText(this, R.string.action_import_msg, Toast.LENGTH_SHORT).show() - // Restart activity - appListView.setVisibility(View.GONE) - loadingView.setVisibility(View.VISIBLE) - reloadApps() - return true + try { + if (i < 0) + editor.putBoolean(Key.isBypassApps, proxiedAppString.toBoolean).putString(Key.proxied, "").apply() + else editor.putBoolean(Key.isBypassApps, proxiedAppString.substring(0, i).toBoolean) + .putString(Key.proxied, proxiedAppString.substring(i + 1)).apply() + Toast.makeText(this, R.string.action_import_msg, Toast.LENGTH_SHORT).show() + // Restart activity + appListView.setVisibility(View.GONE) + loadingView.setVisibility(View.VISIBLE) + reloadApps() + return true + } catch { + case _: java.lang.IllegalArgumentException => // ignore + } } } }