Skip to content
Snippets Groups Projects
Commit 91429f1b authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fix a crash

parent 580813df
No related branches found
No related tags found
No related merge requests found
...@@ -8,7 +8,8 @@ import android.util.Printer ...@@ -8,7 +8,8 @@ import android.util.Printer
class AndroidHandlerThread(name: String) : HandlerThread(name) { class AndroidHandlerThread(name: String) : HandlerThread(name) {
@Volatile @Volatile
private var handler: Handler? = null private var handler: Handler? =
null
fun started(): AndroidHandlerThread { fun started(): AndroidHandlerThread {
onCreate() onCreate()
...@@ -41,97 +42,130 @@ class AndroidHandlerThread(name: String) : HandlerThread(name) { ...@@ -41,97 +42,130 @@ class AndroidHandlerThread(name: String) : HandlerThread(name) {
} }
} }
fun handleMessage(msg: Message) fun handleMessage(msg: Message) =
= handler?.handleMessage(msg) ?: throw RuntimeException("Thread not started") started().let { handler?.handleMessage(msg) }
?: throw RuntimeException("Thread not started")
fun dispatchMessage(msg: Message) fun dispatchMessage(msg: Message) =
= handler?.dispatchMessage(msg) ?: throw RuntimeException("Thread not started") started().let { handler?.dispatchMessage(msg) }
?: throw RuntimeException("Thread not started")
fun getMessageName(message: Message): String fun getMessageName(message: Message): String =
= handler?.getMessageName(message) ?: throw RuntimeException("Thread not started") started().let { handler?.getMessageName(message) }
?: throw RuntimeException("Thread not started")
fun obtainMessage(): Message fun obtainMessage(): Message =
= handler?.obtainMessage() ?: throw RuntimeException("Thread not started") started().let { handler?.obtainMessage() }
?: throw RuntimeException("Thread not started")
fun obtainMessage(what: Int): Message fun obtainMessage(what: Int): Message =
= handler?.obtainMessage(what) ?: throw RuntimeException("Thread not started") started().let { handler?.obtainMessage(what) }
?: throw RuntimeException("Thread not started")
fun obtainMessage(what: Int, obj: Any): Message fun obtainMessage(what: Int, obj: Any): Message =
= handler?.obtainMessage(what, obj) ?: throw RuntimeException("Thread not started") started().let { handler?.obtainMessage(what, obj) }
?: throw RuntimeException("Thread not started")
fun obtainMessage(what: Int, arg1: Int, arg2: Int): Message fun obtainMessage(what: Int, arg1: Int, arg2: Int): Message =
= handler?.obtainMessage(what, arg1, arg2) ?: throw RuntimeException("Thread not started") started().let { handler?.obtainMessage(what, arg1, arg2) }
?: throw RuntimeException("Thread not started")
fun obtainMessage(what: Int, arg1: Int, arg2: Int, obj: Any): Message fun obtainMessage(what: Int, arg1: Int, arg2: Int, obj: Any): Message =
= handler?.obtainMessage(what, arg1, arg2, obj) ?: throw RuntimeException("Thread not started") started().let { handler?.obtainMessage(what, arg1, arg2, obj) }
?: throw RuntimeException("Thread not started")
fun post(r: () -> Unit): Boolean fun post(r: () -> Unit): Boolean =
= handler?.post(r) ?: throw RuntimeException("Thread not started") started().let { handler?.post(r) }
?: throw RuntimeException("Thread not started")
fun postAtTime(r: () -> Unit, uptimeMillis: Long): Boolean fun postAtTime(r: () -> Unit, uptimeMillis: Long): Boolean =
= handler?.postAtTime(r, uptimeMillis) ?: throw RuntimeException("Thread not started") started().let { handler?.postAtTime(r, uptimeMillis) }
?: throw RuntimeException("Thread not started")
fun postAtTime(r: () -> Unit, token: Any, uptimeMillis: Long): Boolean fun postAtTime(r: () -> Unit, token: Any, uptimeMillis: Long): Boolean =
= handler?.postAtTime(r, token, uptimeMillis) ?: throw RuntimeException("Thread not started") started().let { handler?.postAtTime(r, token, uptimeMillis) }
?: throw RuntimeException("Thread not started")
fun postDelayed(r: () -> Unit, delayMillis: Long): Boolean fun postDelayed(r: () -> Unit, delayMillis: Long): Boolean =
= handler?.postDelayed(r, delayMillis) ?: throw RuntimeException("Thread not started") started().let { handler?.postDelayed(r, delayMillis) }
?: throw RuntimeException("Thread not started")
fun postAtFrontOfQueue(r: () -> Unit): Boolean fun postAtFrontOfQueue(r: () -> Unit): Boolean =
= handler?.postAtFrontOfQueue(r) ?: throw RuntimeException("Thread not started") started().let { handler?.postAtFrontOfQueue(r) }
?: throw RuntimeException("Thread not started")
fun removeCallbacks(r: () -> Unit) fun removeCallbacks(r: () -> Unit) =
= handler?.removeCallbacks(r) ?: throw RuntimeException("Thread not started") started().let { handler?.removeCallbacks(r) }
?: throw RuntimeException("Thread not started")
fun removeCallbacks(r: () -> Unit, token: Any) fun removeCallbacks(r: () -> Unit, token: Any) =
= handler?.removeCallbacks(r, token) ?: throw RuntimeException("Thread not started") started().let { handler?.removeCallbacks(r, token) }
?: throw RuntimeException("Thread not started")
fun sendMessage(msg: Message): Boolean fun sendMessage(msg: Message): Boolean =
= handler?.sendMessage(msg) ?: throw RuntimeException("Thread not started") started().let { handler?.sendMessage(msg) }
?: throw RuntimeException("Thread not started")
fun sendEmptyMessage(what: Int): Boolean fun sendEmptyMessage(what: Int): Boolean =
= handler?.sendEmptyMessage(what) ?: throw RuntimeException("Thread not started") started().let { handler?.sendEmptyMessage(what) }
?: throw RuntimeException("Thread not started")
fun sendEmptyMessageDelayed(what: Int, delayMillis: Long): Boolean fun sendEmptyMessageDelayed(what: Int, delayMillis: Long): Boolean =
= handler?.sendEmptyMessageDelayed(what, delayMillis) ?: throw RuntimeException( started().let { handler?.sendEmptyMessageDelayed(what, delayMillis) }
?: throw RuntimeException(
"Thread not started" "Thread not started"
) )
fun sendEmptyMessageAtTime(what: Int, uptimeMillis: Long): Boolean fun sendEmptyMessageAtTime(what: Int, uptimeMillis: Long): Boolean =
= handler?.sendEmptyMessageAtTime(what, uptimeMillis) ?: throw RuntimeException( started().let { handler?.sendEmptyMessageAtTime(what, uptimeMillis) }
?: throw RuntimeException(
"Thread not started" "Thread not started"
) )
fun sendMessageDelayed(msg: Message, delayMillis: Long): Boolean fun sendMessageDelayed(msg: Message, delayMillis: Long): Boolean =
= handler?.sendMessageDelayed(msg, delayMillis) ?: throw RuntimeException("Thread not started") started().let { handler?.sendMessageDelayed(msg, delayMillis) }
?: throw RuntimeException("Thread not started")
fun sendMessageAtTime(msg: Message, uptimeMillis: Long): Boolean fun sendMessageAtTime(msg: Message, uptimeMillis: Long): Boolean =
= handler?.sendMessageAtTime(msg, uptimeMillis) ?: throw RuntimeException("Thread not started") started().let { handler?.sendMessageAtTime(msg, uptimeMillis) }
?: throw RuntimeException("Thread not started")
fun sendMessageAtFrontOfQueue(msg: Message): Boolean fun sendMessageAtFrontOfQueue(msg: Message): Boolean =
= handler?.sendMessageAtFrontOfQueue(msg) ?: throw RuntimeException("Thread not started") started().let { handler?.sendMessageAtFrontOfQueue(msg) }
?: throw RuntimeException("Thread not started")
fun removeMessages(what: Int) fun removeMessages(what: Int) =
= handler?.removeMessages(what) ?: throw RuntimeException("Thread not started") started().let { handler?.removeMessages(what) }
?: throw RuntimeException("Thread not started")
fun removeMessages(what: Int, `object`: Any) fun removeMessages(what: Int, `object`: Any) =
= handler?.removeMessages(what, `object`) ?: throw RuntimeException("Thread not started") started().let { handler?.removeMessages(what, `object`) }
?: throw RuntimeException("Thread not started")
fun removeCallbacksAndMessages(token: Any) fun removeCallbacksAndMessages(token: Any) =
= handler?.removeCallbacksAndMessages(token) ?: throw RuntimeException("Thread not started") started().let { handler?.removeCallbacksAndMessages(token) }
?: throw RuntimeException("Thread not started")
fun hasMessages(what: Int): Boolean fun hasMessages(what: Int): Boolean =
= handler?.hasMessages(what) ?: throw RuntimeException("Thread not started") started().let { handler?.hasMessages(what) }
?: throw RuntimeException("Thread not started")
fun hasMessages(what: Int, `object`: Any): Boolean fun hasMessages(what: Int, `object`: Any): Boolean =
= handler?.hasMessages(what, `object`) ?: throw RuntimeException("Thread not started") started().let { handler?.hasMessages(what, `object`) }
?: throw RuntimeException("Thread not started")
val handlerLooper: Looper val handlerLooper: Looper
get() = handler?.looper ?: throw RuntimeException("Thread not started") get()
fun dump(pw: Printer, prefix: String) =
= handler?.dump(pw, prefix) ?: throw RuntimeException("Thread not started") started().let { handler?.looper }
?: throw RuntimeException("Thread not started")
override fun toString(): String fun dump(pw: Printer, prefix: String) =
= handler?.toString() ?: throw RuntimeException("Thread not started") started().let { handler?.dump(pw, prefix) }
?: throw RuntimeException("Thread not started")
override fun toString(): String =
started().let { handler?.toString() }
?: throw RuntimeException("Thread not started")
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment