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:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user