From 3dba966355161e5f40d61d4a0b86c09b8bb7dfc2 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Mon, 1 Dec 2014 14:04:21 +0800 Subject: [PATCH] fix two potential FCs --- .../com/github/shadowsocks/AppManager.scala | 16 +++++----- .../com/github/shadowsocks/utils/Utils.scala | 30 +++++++++++-------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/AppManager.scala b/src/main/scala/com/github/shadowsocks/AppManager.scala index 3df85df0..4e478901 100644 --- a/src/main/scala/com/github/shadowsocks/AppManager.scala +++ b/src/main/scala/com/github/shadowsocks/AppManager.scala @@ -61,6 +61,7 @@ import com.nostra13.universalimageloader.core.{DisplayImageOptions, ImageLoader, import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer import com.github.shadowsocks.utils.{Utils, Scheme, Key} +import scala.concurrent.ops._ import scala.language.implicitConversions case class ProxiedApp(uid: Int, name: String, packageName: String, var proxied: Boolean) @@ -245,18 +246,17 @@ class AppManager extends Activity with OnCheckedChangeListener with OnClickListe } }) bypassSwitch.setChecked(prefs.getBoolean(Key.isBypassApps, false)) + + appListView = findViewById(R.id.applistview).asInstanceOf[ListView] } protected override def onResume() { super.onResume() - new Thread { - override def run() { - handler.post(loadStartRunnable) - appListView = findViewById(R.id.applistview).asInstanceOf[ListView] - if (!appsLoaded) loadApps() - handler.post(loadFinishRunnable) - } - }.start() + spawn { + handler.post(loadStartRunnable) + if (!appsLoaded) loadApps() + handler.post(loadFinishRunnable) + } } def saveAppSettings(context: Context) { diff --git a/src/main/scala/com/github/shadowsocks/utils/Utils.scala b/src/main/scala/com/github/shadowsocks/utils/Utils.scala index a9e78647..6ce7183d 100644 --- a/src/main/scala/com/github/shadowsocks/utils/Utils.scala +++ b/src/main/scala/com/github/shadowsocks/utils/Utils.scala @@ -181,20 +181,24 @@ object Utils { } def resolve(host: String, addrType: Int): Option[String] = { - val lookup = new Lookup(host, addrType) - val resolver = new SimpleResolver("114.114.114.114") - resolver.setTimeout(5) - lookup.setResolver(resolver) - val result = lookup.run() - if (result == null) return None - val records = scala.util.Random.shuffle(result.toList) - for (r <- records) { - addrType match { - case Type.A => - return Some(r.asInstanceOf[ARecord].getAddress.getHostAddress) - case Type.AAAA => - return Some(r.asInstanceOf[AAAARecord].getAddress.getHostAddress) + try { + val lookup = new Lookup(host, addrType) + val resolver = new SimpleResolver("114.114.114.114") + resolver.setTimeout(5) + lookup.setResolver(resolver) + val result = lookup.run() + if (result == null) return None + val records = scala.util.Random.shuffle(result.toList) + for (r <- records) { + addrType match { + case Type.A => + return Some(r.asInstanceOf[ARecord].getAddress.getHostAddress) + case Type.AAAA => + return Some(r.asInstanceOf[AAAARecord].getAddress.getHostAddress) + } } + } catch { + case e: Exception => None } None }