diff options
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.kt | 7 |
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 @@ | |||
1 | package org.pacien.tincapp.commands | 1 | package org.pacien.tincapp.commands |
2 | 2 | ||
3 | import android.os.AsyncTask | ||
3 | import java8.util.concurrent.CompletableFuture | 4 | import java8.util.concurrent.CompletableFuture |
5 | import java8.util.function.Supplier | ||
4 | import java.io.BufferedReader | 6 | import java.io.BufferedReader |
5 | import java.io.IOException | 7 | import java.io.IOException |
6 | import java.io.InputStream | 8 | import 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 | } |