diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt index 395a194..5ea1e98 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/DashboardActivity.kt @@ -1,5 +1,6 @@ package com.example.hpostesting.presentation.dashboard +import android.annotation.SuppressLint import android.app.DownloadManager import android.content.BroadcastReceiver import android.content.Context @@ -47,6 +48,7 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { var responses: String = "" lateinit var nats: NatsManager private var downloadId: Long = 0 + private var isReceiverRegistered = false // TODO: Remove hemocube viewmodel private val hemocubeViewModel: HemoCubeViewModel by viewModels() @@ -125,6 +127,7 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp() } + @SuppressLint("UnspecifiedRegisterReceiverFlag") private fun initiateUpdate(responseBody: String) { if (!isValidHttpUrl(responseBody)) { return @@ -139,7 +142,11 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { val downloadManager = getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager downloadId = downloadManager.enqueue(request) val filter = IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE) - registerReceiver(downloadReceiver, filter) + if (!isReceiverRegistered) { + val filter = IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE) + registerReceiver(downloadReceiver, filter) + isReceiverRegistered = true + } } private fun extractApkUrl(responseBody: ResponseBody): String { return responseBody.string() @@ -183,7 +190,10 @@ class DashboardActivity : AppCompatActivity(), IDataCollector { override fun onDestroy() { super.onDestroy() - unregisterReceiver(downloadReceiver) + if (isReceiverRegistered) { + unregisterReceiver(downloadReceiver) + isReceiverRegistered = false + } } override fun onResume() {