InstallActivity: Unregister session callback onDestroy

Also finish activity if a valid download is not present

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-05-02 14:27:15 +05:30
parent 65fc2a2dbd
commit 43e63a9452

View File

@@ -1,6 +1,6 @@
package com.aurora.store.data.activity package com.aurora.store.data.activity
import android.content.pm.PackageInstaller import android.content.pm.PackageInstaller.SessionCallback
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
@@ -16,6 +16,7 @@ class InstallActivity : AppCompatActivity() {
private val TAG = InstallActivity::class.java.simpleName private val TAG = InstallActivity::class.java.simpleName
private lateinit var sessionInstaller: SessionInstaller private lateinit var sessionInstaller: SessionInstaller
private lateinit var sessionCallback: SessionCallback
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@@ -24,7 +25,7 @@ class InstallActivity : AppCompatActivity() {
IntentCompat.getParcelableExtra(intent, Constants.PARCEL_DOWNLOAD, Download::class.java) IntentCompat.getParcelableExtra(intent, Constants.PARCEL_DOWNLOAD, Download::class.java)
if (download != null) { if (download != null) {
val callback = object : PackageInstaller.SessionCallback() { sessionCallback = object : SessionCallback() {
override fun onCreated(sessionId: Int) {} override fun onCreated(sessionId: Int) {}
override fun onBadgingChanged(sessionId: Int) {} override fun onBadgingChanged(sessionId: Int) {}
@@ -40,11 +41,19 @@ class InstallActivity : AppCompatActivity() {
} }
} }
} }
packageManager.packageInstaller.registerSessionCallback(callback) packageManager.packageInstaller.registerSessionCallback(sessionCallback)
install(download) install(download)
} else {
Log.e(TAG, "InstallActivity triggered without a valid download, bailing out!")
finish()
} }
} }
override fun onDestroy() {
packageManager.packageInstaller.unregisterSessionCallback(sessionCallback)
super.onDestroy()
}
private fun install(download: Download) { private fun install(download: Download) {
sessionInstaller = SessionInstaller(this) sessionInstaller = SessionInstaller(this)
try { try {