From be79e6f80cd0f494c23f16c5e3db175c6f801630 Mon Sep 17 00:00:00 2001 From: Mygod Date: Sat, 3 Feb 2018 21:06:59 -0800 Subject: [PATCH] Suppress crash if platform does not support jobs This is apparently an issue for some HTC devices. --- mobile/src/main/java/com/github/shadowsocks/App.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mobile/src/main/java/com/github/shadowsocks/App.kt b/mobile/src/main/java/com/github/shadowsocks/App.kt index c2e90832..f3ddbfc5 100644 --- a/mobile/src/main/java/com/github/shadowsocks/App.kt +++ b/mobile/src/main/java/com/github/shadowsocks/App.kt @@ -37,8 +37,10 @@ import android.support.annotation.RequiresApi import android.support.v4.os.UserManagerCompat import android.support.v7.app.AppCompatDelegate import android.util.Log +import android.widget.Toast import com.evernote.android.job.JobConstants import com.evernote.android.job.JobManager +import com.evernote.android.job.JobManagerCreateException import com.github.shadowsocks.acl.Acl import com.github.shadowsocks.acl.AclSyncJob import com.github.shadowsocks.bg.BaseService @@ -126,7 +128,12 @@ class App : Application() { remoteConfig.fetch().addOnCompleteListener { if (it.isSuccessful) remoteConfig.activateFetched() else Log.e(TAG, "Failed to fetch config") } - JobManager.create(deviceContext).addJobCreator(AclSyncJob) + try { + JobManager.create(deviceContext).addJobCreator(AclSyncJob) + } catch (e: JobManagerCreateException) { + Toast.makeText(this, e.message, Toast.LENGTH_SHORT).show() + app.track(e) + } // handle data restored if (DataStore.directBootAware && UserManagerCompat.isUserUnlocked(this)) DirectBoot.update()