From 43e63a9452cdc65ab5949e2629d78f00b10aa6dd Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Thu, 2 May 2024 14:27:15 +0530 Subject: [PATCH] InstallActivity: Unregister session callback onDestroy Also finish activity if a valid download is not present Signed-off-by: Aayush Gupta --- .../aurora/store/data/activity/InstallActivity.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/aurora/store/data/activity/InstallActivity.kt b/app/src/main/java/com/aurora/store/data/activity/InstallActivity.kt index 860670491..3a4b9ee3e 100644 --- a/app/src/main/java/com/aurora/store/data/activity/InstallActivity.kt +++ b/app/src/main/java/com/aurora/store/data/activity/InstallActivity.kt @@ -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 {