LogViewerActivity: simplify scoping

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2020-09-16 16:16:54 +02:00
parent 746ab00794
commit eebeece856

View File

@ -147,7 +147,8 @@ class LogViewerActivity : AppCompatActivity() {
true true
} }
R.id.save_log -> { R.id.save_log -> {
lifecycleScope.launch(Dispatchers.IO) { saveLog() } saveButton?.isEnabled = false
lifecycleScope.launch { saveLog() }
true true
} }
else -> super.onOptionsItemSelected(item) else -> super.onOptionsItemSelected(item)
@ -155,31 +156,26 @@ class LogViewerActivity : AppCompatActivity() {
} }
private suspend fun saveLog() { private suspend fun saveLog() {
withContext(Dispatchers.Main.immediate) { var exception: Throwable? = null
saveButton?.isEnabled = false var outputFile: DownloadsFileSaver.DownloadsFile? = null
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
var exception: Throwable? = null try {
var outputFile: DownloadsFileSaver.DownloadsFile? = null outputFile = DownloadsFileSaver.save(this@LogViewerActivity, "wireguard-log.txt", "text/plain", true)
try { outputFile?.outputStream.use {
outputFile = DownloadsFileSaver.save(this@LogViewerActivity, "wireguard-log.txt", "text/plain", true) it?.write(rawLogLines.toString().toByteArray(Charsets.UTF_8))
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()
} }
} 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) { private suspend fun streamingLog() = withContext(Dispatchers.IO) {