diff --git a/mobile/build.sbt b/mobile/build.sbt index e467678d..98043473 100644 --- a/mobile/build.sbt +++ b/mobile/build.sbt @@ -8,11 +8,18 @@ version := "4.1.5" versionCode := Some(185) proguardOptions ++= - "-keep class com.github.shadowsocks.JniHelper { *; }" :: + "-dontwarn com.evernote.android.job.gcm.**" :: + "-dontwarn com.evernote.android.job.util.GcmAvailableHelper" :: "-dontwarn com.google.android.gms.internal.**" :: "-dontwarn com.j256.ormlite.**" :: "-dontwarn okio.**" :: "-dontwarn org.xbill.**" :: + "-keep public class com.evernote.android.job.v21.PlatformJobService" :: + "-keep public class com.evernote.android.job.v14.PlatformAlarmService" :: + "-keep public class com.evernote.android.job.v14.PlatformAlarmReceiver" :: + "-keep public class com.evernote.android.job.JobBootReceiver" :: + "-keep public class com.evernote.android.job.JobRescheduleService" :: + "-keep class com.github.shadowsocks.JniHelper { *; }" :: Nil val playServicesVersion = "10.2.1" diff --git a/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala b/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala index 439c1c19..3462aa46 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/BaseService.scala @@ -271,7 +271,6 @@ trait BaseService extends Service { override def onCreate() { super.onCreate() - app.remoteConfig.fetch() app.updateAssets() } diff --git a/mobile/src/main/scala/com/github/shadowsocks/acl/AclSyncJob.scala b/mobile/src/main/scala/com/github/shadowsocks/acl/AclSyncJob.scala index 54129aef..8dcc6749 100644 --- a/mobile/src/main/scala/com/github/shadowsocks/acl/AclSyncJob.scala +++ b/mobile/src/main/scala/com/github/shadowsocks/acl/AclSyncJob.scala @@ -34,6 +34,7 @@ import scala.io.Source */ object AclSyncJob { final val TAG = "AclSyncJob" + final val MAX_RESCHEDULE = 3 def schedule(route: String): Int = new JobRequest.Builder(AclSyncJob.TAG + ':' + route) .setExecutionWindow(TimeUnit.SECONDS.toMillis(10), TimeUnit.DAYS.toMillis(28)) @@ -45,6 +46,8 @@ object AclSyncJob { } class AclSyncJob(route: String) extends Job { + var rescheduled = 0 + override def onRunJob(params: Params): Result = { try { //noinspection JavaAccessorMethodCalledAsEmptyParen @@ -54,7 +57,11 @@ class AclSyncJob(route: String) extends Job { } catch { case e: IOException => e.printStackTrace() - Result.RESCHEDULE + rescheduled += 1 + if (rescheduled < AclSyncJob.MAX_RESCHEDULE) + Result.RESCHEDULE + else + Result.FAILURE case e: Exception => // unknown failures, probably shouldn't retry e.printStackTrace() Result.FAILURE