Commit f36a0adf authored by Mygod's avatar Mygod

Allow ACL sync to be cancelled

parent d3bedfb5
......@@ -32,6 +32,8 @@ android {
targetCompatibility javaVersion
}
kotlinOptions.jvmTarget = javaVersion
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
......@@ -56,7 +58,7 @@ dependencies {
api "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
api 'androidx.preference:preference:1.1.0-rc01'
api "androidx.room:room-runtime:$roomVersion"
api 'androidx.work:work-runtime-ktx:2.1.0-rc01'
api 'androidx.work:work-runtime-ktx:2.1.0'
api 'com.crashlytics.sdk.android:crashlytics:2.10.1'
api 'com.google.code.gson:gson:2.8.5'
api 'com.google.firebase:firebase-config:18.0.0'
......
......@@ -23,8 +23,9 @@ package com.github.shadowsocks.acl
import android.content.Context
import androidx.work.*
import com.github.shadowsocks.Core
import kotlinx.coroutines.Dispatchers
import com.github.shadowsocks.utils.useCancellable
import java.io.IOException
import java.net.HttpURLConnection
import java.net.URL
import java.util.concurrent.TimeUnit
......@@ -44,12 +45,10 @@ class AclSyncer(context: Context, workerParams: WorkerParameters) : CoroutineWor
})
}
override val coroutineContext get() = Dispatchers.IO
override suspend fun doWork(): Result = try {
val route = inputData.getString(KEY_ROUTE)!!
val acl = URL("https://shadowsocks.org/acl/android/v1/$route.acl").openStream().bufferedReader()
.use { it.readText() }
val connection = URL("https://shadowsocks.org/acl/android/v1/$route.acl").openConnection() as HttpURLConnection
val acl = connection.useCancellable { inputStream.bufferedReader().use { it.readText() } }
Acl.getFile(route).printWriter().use { it.write(acl) }
Result.success()
} catch (e: IOException) {
......
......@@ -42,6 +42,7 @@ android {
sourceCompatibility javaVersion
targetCompatibility javaVersion
}
kotlinOptions.jvmTarget = javaVersion
packagingOptions.exclude '**/*.kotlin_*'
splits {
abi {
......
......@@ -30,6 +30,8 @@ android {
targetCompatibility javaVersion
}
kotlinOptions.jvmTarget = javaVersion
buildTypes {
release {
minifyEnabled false
......
......@@ -41,6 +41,7 @@ android {
sourceCompatibility javaVersion
targetCompatibility javaVersion
}
kotlinOptions.jvmTarget = javaVersion
packagingOptions.exclude '**/*.kotlin_*'
splits {
abi {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment