diff options
Diffstat (limited to 'ui/src/main/java')
-rw-r--r-- | ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt b/ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt index da1618f3..456ad6ce 100644 --- a/ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt +++ b/ui/src/main/java/com/wireguard/android/activity/LogViewerActivity.kt @@ -147,7 +147,8 @@ class LogViewerActivity : AppCompatActivity() { true } R.id.save_log -> { - lifecycleScope.launch(Dispatchers.IO) { saveLog() } + saveButton?.isEnabled = false + lifecycleScope.launch { saveLog() } true } else -> super.onOptionsItemSelected(item) @@ -155,31 +156,26 @@ class LogViewerActivity : AppCompatActivity() { } private suspend fun saveLog() { - withContext(Dispatchers.Main.immediate) { - saveButton?.isEnabled = false - withContext(Dispatchers.IO) { - var exception: Throwable? = null - var outputFile: DownloadsFileSaver.DownloadsFile? = null - try { - outputFile = DownloadsFileSaver.save(this@LogViewerActivity, "wireguard-log.txt", "text/plain", true) - outputFile.outputStream.use { - it.write(rawLogLines.toString().toByteArray(Charsets.UTF_8)) - } - } catch (e: Throwable) { - outputFile?.delete() - exception = e - } - withContext(Dispatchers.Main.immediate) { - saveButton?.isEnabled = true - Snackbar.make(findViewById(android.R.id.content), - if (exception == null) getString(R.string.log_export_success, outputFile?.fileName) - else getString(R.string.log_export_error, ErrorMessages[exception]), - if (exception == null) Snackbar.LENGTH_SHORT else Snackbar.LENGTH_LONG) - .setAnchorView(binding.shareFab) - .show() + var exception: Throwable? = null + var outputFile: DownloadsFileSaver.DownloadsFile? = null + withContext(Dispatchers.IO) { + try { + outputFile = DownloadsFileSaver.save(this@LogViewerActivity, "wireguard-log.txt", "text/plain", true) + outputFile?.outputStream.use { + it?.write(rawLogLines.toString().toByteArray(Charsets.UTF_8)) } + } catch (e: Throwable) { + outputFile?.delete() + exception = e } } + saveButton?.isEnabled = true + Snackbar.make(findViewById(android.R.id.content), + if (exception == null) getString(R.string.log_export_success, outputFile?.fileName) + else getString(R.string.log_export_error, ErrorMessages[exception]), + if (exception == null) Snackbar.LENGTH_SHORT else Snackbar.LENGTH_LONG) + .setAnchorView(binding.shareFab) + .show() } private suspend fun streamingLog() = withContext(Dispatchers.IO) { |