diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-01 15:04:58 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-06-01 19:03:03 +0000 |
| commit | 4361bd5a454a9cff85d5e0d85300d04242028e50 (patch) | |
| tree | 42b967ed16eb838c9219111e29d3fb02c7cdf844 /android/src | |
| parent | 28033c96a8e1a3718b5e3161506b6abc387d0ca5 (diff) | |
| download | mullvadvpn-4361bd5a454a9cff85d5e0d85300d04242028e50.tar.xz mullvadvpn-4361bd5a454a9cff85d5e0d85300d04242028e50.zip | |
Delete problem report file in the background
Diffstat (limited to 'android/src')
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt index 66a55503d6..82d213bb65 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/dataproxy/MullvadProblemReport.kt @@ -5,7 +5,9 @@ import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Deferred import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.Job import kotlinx.coroutines.async +import kotlinx.coroutines.launch const val PROBLEM_REPORT_FILE = "problem_report.txt" @@ -14,6 +16,7 @@ class MullvadProblemReport(val logDirectory: File) { private var collectJob: Deferred<Boolean>? = null private var sendJob: Deferred<Boolean>? = null + private var deleteJob: Job? = null var confirmNoEmail: CompletableDeferred<Boolean>? = null @@ -39,7 +42,7 @@ class MullvadProblemReport(val logDirectory: File) { synchronized(this) { if (!isActive) { collectJob = GlobalScope.async(Dispatchers.Default) { - deleteReportFile() + deleteReportFile().join() collectReport(logDirectory.absolutePath, problemReportPath.absolutePath) } } @@ -73,8 +76,19 @@ class MullvadProblemReport(val logDirectory: File) { } } - fun deleteReportFile() { - problemReportPath.delete() + fun deleteReportFile(): Job { + synchronized(this) { + val oldDeleteJob = deleteJob + + val job = GlobalScope.launch(Dispatchers.Default) { + oldDeleteJob?.join() + problemReportPath.delete() + } + + deleteJob = job + + return job + } } private external fun collectReport(logDirectory: String, reportPath: String): Boolean |
