Merge "Skip checking if a broadcastreceiver was already registered" into main

This commit is contained in:
Sumedh Sen
2025-02-25 19:03:19 -08:00
committed by Android (Google) Code Review

View File

@@ -51,7 +51,6 @@ class AppRestoreButton(packageInfoPresenter: PackageInfoPresenter) {
private val packageInstaller = userPackageManager.packageInstaller private val packageInstaller = userPackageManager.packageInstaller
private val packageName = packageInfoPresenter.packageName private val packageName = packageInfoPresenter.packageName
private val userHandle = UserHandle.of(packageInfoPresenter.userId) private val userHandle = UserHandle.of(packageInfoPresenter.userId)
private var broadcastReceiverIsCreated = false
private lateinit var coroutineScope: CoroutineScope private lateinit var coroutineScope: CoroutineScope
private lateinit var updateButtonTextJob: Job private lateinit var updateButtonTextJob: Job
private val buttonTexts = intArrayOf( private val buttonTexts = intArrayOf(
@@ -65,15 +64,13 @@ class AppRestoreButton(packageInfoPresenter: PackageInfoPresenter) {
@Composable @Composable
fun getActionButton(app: ApplicationInfo): ActionButton { fun getActionButton(app: ApplicationInfo): ActionButton {
if (!broadcastReceiverIsCreated) {
val intentFilter = IntentFilter(INTENT_ACTION) val intentFilter = IntentFilter(INTENT_ACTION)
DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent -> DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent ->
if (app.packageName == intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME)) { if (app.packageName == intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME)) {
onReceive(intent, app) onReceive(intent, app)
} }
} }
broadcastReceiverIsCreated = true
}
coroutineScope = rememberCoroutineScope() coroutineScope = rememberCoroutineScope()
if (app.isArchived && ::updateButtonTextJob.isInitialized && !updateButtonTextJob.isActive) { if (app.isArchived && ::updateButtonTextJob.isInitialized && !updateButtonTextJob.isActive) {
buttonTextIndexStateFlow.value = 0 buttonTextIndexStateFlow.value = 0