From 074252ad1cc98194228a397ffd7ba9c25c7d14b3 Mon Sep 17 00:00:00 2001 From: Mygod Date: Sat, 26 Jan 2019 01:33:35 +0800 Subject: [PATCH] Deprecate thread helper --- .../mygod/vpnhotspot/net/monitor/IpMonitor.kt | 10 +++++----- .../main/java/be/mygod/vpnhotspot/util/Utils.kt | 17 ----------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/IpMonitor.kt b/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/IpMonitor.kt index 08010eeb..6ec8c373 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/IpMonitor.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/net/monitor/IpMonitor.kt @@ -5,7 +5,6 @@ import android.system.OsConstants import be.mygod.vpnhotspot.App.Companion.app import be.mygod.vpnhotspot.DebugHelper import be.mygod.vpnhotspot.R -import be.mygod.vpnhotspot.util.thread import be.mygod.vpnhotspot.widget.SmartSnackbar import timber.log.Timber import java.io.IOException @@ -13,6 +12,7 @@ import java.io.InterruptedIOException import java.util.concurrent.Executors import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.TimeUnit +import kotlin.concurrent.thread abstract class IpMonitor : Runnable { companion object { @@ -41,7 +41,7 @@ abstract class IpMonitor : Runnable { return } monitor = process - val err = thread("${javaClass.simpleName}-error") { + val err = thread(name = "${javaClass.simpleName}-error") { try { process.errorStream.bufferedReader().forEachLine { Timber.e(it) } } catch (_: InterruptedIOException) { } catch (e: IOException) { @@ -65,7 +65,7 @@ abstract class IpMonitor : Runnable { } init { - thread("${javaClass.simpleName}-input") { + thread(name = "${javaClass.simpleName}-input") { val mode = Mode.valueOf(app.pref.getString(KEY, Mode.Poll.toString()) ?: "") if (mode != Mode.Poll) { if (mode != Mode.MonitorRoot) { @@ -83,14 +83,14 @@ abstract class IpMonitor : Runnable { } } - fun flush() = thread("${javaClass.simpleName}-flush") { run() } + fun flush() = thread(name = "${javaClass.simpleName}-flush") { run() } override fun run() { val process = ProcessBuilder("ip", monitoredObject) .redirectErrorStream(true) .start() process.waitFor() - thread("${javaClass.simpleName}-flush-error") { + thread(name = "${javaClass.simpleName}-flush-error") { val err = process.errorStream.bufferedReader().readText() if (err.isNotBlank()) { Timber.e(err) diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt b/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt index d127bf8d..f72b02d0 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/util/Utils.kt @@ -7,9 +7,6 @@ import android.widget.ImageView import androidx.annotation.DrawableRes import androidx.core.view.isVisible import androidx.databinding.BindingAdapter -import be.mygod.vpnhotspot.R -import be.mygod.vpnhotspot.widget.SmartSnackbar -import timber.log.Timber import java.net.InetAddress import java.net.NetworkInterface import java.net.SocketException @@ -62,20 +59,6 @@ private val parseNumericAddress by lazy { } fun parseNumericAddress(address: String) = parseNumericAddress.invoke(null, address) as InetAddress -/** - * Wrapper for kotlin.concurrent.thread that silences uncaught exceptions. - */ -fun thread(name: String? = null, start: Boolean = true, isDaemon: Boolean = false, - contextClassLoader: ClassLoader? = null, priority: Int = -1, block: () -> Unit): Thread { - val thread = kotlin.concurrent.thread(false, isDaemon, contextClassLoader, name, priority, block) - thread.setUncaughtExceptionHandler { _, e -> - SmartSnackbar.make(R.string.noisy_su_failure).show() - Timber.w(e) - } - if (start) thread.start() - return thread -} - fun Context.stopAndUnbind(connection: ServiceConnection) { connection.onServiceDisconnected(null) unbindService(connection)