aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/commands/Executor.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/commands/Executor.kt')
-rw-r--r--app/src/main/java/org/pacien/tincapp/commands/Executor.kt7
1 files changed, 6 insertions, 1 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/commands/Executor.kt b/app/src/main/java/org/pacien/tincapp/commands/Executor.kt
index eccd2f9..38c2cb5 100644
--- a/app/src/main/java/org/pacien/tincapp/commands/Executor.kt
+++ b/app/src/main/java/org/pacien/tincapp/commands/Executor.kt
@@ -1,6 +1,8 @@
1package org.pacien.tincapp.commands 1package org.pacien.tincapp.commands
2 2
3import android.os.AsyncTask
3import java8.util.concurrent.CompletableFuture 4import java8.util.concurrent.CompletableFuture
5import java8.util.function.Supplier
4import java.io.BufferedReader 6import java.io.BufferedReader
5import java.io.IOException 7import java.io.IOException
6import java.io.InputStream 8import java.io.InputStream
@@ -35,10 +37,13 @@ internal object Executor {
35 throw CommandExecutionException(e.message ?: "Could not start process.") 37 throw CommandExecutionException(e.message ?: "Could not start process.")
36 } 38 }
37 39
38 return CompletableFuture.supplyAsync<List<String>> { 40 return supplyAsyncTask<List<String>> {
39 if (proc.waitFor() == 0) read(proc.inputStream) 41 if (proc.waitFor() == 0) read(proc.inputStream)
40 else throw CommandExecutionException(read(proc.errorStream).lastOrNull() ?: "Non-zero exit status.") 42 else throw CommandExecutionException(read(proc.errorStream).lastOrNull() ?: "Non-zero exit status.")
41 } 43 }
42 } 44 }
43 45
46 fun runAsyncTask(r: () -> Unit) = CompletableFuture.runAsync(Runnable(r), AsyncTask.THREAD_POOL_EXECUTOR)!!
47 fun <U> supplyAsyncTask(s: () -> U) = CompletableFuture.supplyAsync(Supplier(s), AsyncTask.THREAD_POOL_EXECUTOR)!!
48
44} 49}