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
import android.content.pm.PackageInstaller
import android.content.pm.PackageInstaller.SessionCallback
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
@@ -16,6 +16,7 @@ class InstallActivity : AppCompatActivity() {
private val TAG = InstallActivity::class.java.simpleName
private lateinit var sessionInstaller: SessionInstaller
private lateinit var sessionCallback: SessionCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -24,7 +25,7 @@ class InstallActivity : AppCompatActivity() {
IntentCompat.getParcelableExtra(intent, Constants.PARCEL_DOWNLOAD, Download::class.java)
if (download != null) {
val callback = object : PackageInstaller.SessionCallback() {
sessionCallback = object : SessionCallback() {
override fun onCreated(sessionId: Int) {}
override fun onBadgingChanged(sessionId: Int) {}
@@ -40,11 +41,19 @@ class InstallActivity : AppCompatActivity() {
}
}
}
packageManager.packageInstaller.registerSessionCallback(callback)
packageManager.packageInstaller.registerSessionCallback(sessionCallback)
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) {
sessionInstaller = SessionInstaller(this)
try {