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