diff --git a/build.sbt b/build.sbt index a237e2d3..32e3ca64 100644 --- a/build.sbt +++ b/build.sbt @@ -20,7 +20,7 @@ lazy val commonSettings = Seq( resConfigs := Seq("ja", "ko", "ru", "zh-rCN", "zh-rTW") ) -val supportLibsVersion = "25.2.0" +val supportLibsVersion = "25.3.1" lazy val root = Project(id = "shadowsocks-android", base = file(".")) .settings(commonSettings) .aggregate(plugin, mobile) diff --git a/mobile/build.sbt b/mobile/build.sbt index 98043473..fc17f4ab 100644 --- a/mobile/build.sbt +++ b/mobile/build.sbt @@ -4,8 +4,8 @@ enablePlugins(AndroidGms) android.useSupportVectors name := "shadowsocks" -version := "4.1.5" -versionCode := Some(185) +version := "4.1.6" +versionCode := Some(186) proguardOptions ++= "-dontwarn com.evernote.android.job.gcm.**" :: diff --git a/mobile/src/main/res/xml/default_configs.xml b/mobile/src/main/res/xml/default_configs.xml new file mode 100644 index 00000000..2f71ea5e --- /dev/null +++ b/mobile/src/main/res/xml/default_configs.xml @@ -0,0 +1,7 @@ + + + + proxy_url + https://www.socks123.pw/get.php + + diff --git a/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala b/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala index 3462aa46..4b7df91e 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala @@ -126,6 +126,7 @@ trait BaseService extends Service { def connect() { profile.name = profile.getName // save original name before it's (possibly) overwritten by IP addresses + if (profile.host == "198.199.101.152") { val client = new OkHttpClient.Builder() .dns(hostname => Utils.resolve(hostname, enableIPv6 = false) match { @@ -353,7 +354,7 @@ trait BaseService extends Service { .put("PrimaryDNS", new JSONArray().put(makeDns("Primary", "119.29.29.29"))) .put("AlternativeDNS", remoteDns) case _ => config - .put("PrimaryDNS", new JSONArray(remoteDns)) + .put("PrimaryDNS", remoteDns) // no need to setup AlternativeDNS in Acl.ALL/BYPASS_LAN mode .put("OnlyPrimaryDNS", true) } diff --git a/mobile/src/main/scala/com/github/shadowsocks/MainActivity.scala b/mobile/src/main/scala/com/github/shadowsocks/MainActivity.scala index 7f4745fe..ab815924 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/MainActivity.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/MainActivity.scala @@ -384,12 +384,14 @@ class MainActivity extends Activity with ServiceBoundContext with Drawer.OnDrawe displayFragment(new AboutFragment) case DRAWER_FAQ => launchUrl(getString(R.string.faq_url)) case DRAWER_CUSTOM_RULES => displayFragment(new CustomRulesFragment) + case _ => // ignore } true // unexpected cases will throw exception } protected override def onResume() { super.onResume() + app.remoteConfig.fetch() state match { case State.STOPPING | State.CONNECTING => case _ => hideCircle() diff --git a/mobile/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala b/mobile/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala index 631cadce..47dfa13c 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/ShadowsocksApplication.scala @@ -148,6 +148,7 @@ class ShadowsocksApplication extends Application { checkChineseLocale(getResources.getConfiguration) FirebaseApp.initializeApp(this) + remoteConfig.setDefaults(R.xml.default_configs); remoteConfig.fetch().addOnCompleteListener(task => if (task.isSuccessful) remoteConfig.activateFetched()) JobManager.create(this).addJobCreator(DonaldTrump)