Merge "Fix app launch button not shown"

This commit is contained in:
Chaohui Wang
2022-09-29 01:40:56 +00:00
committed by Android (Google) Code Review
3 changed files with 8 additions and 8 deletions

View File

@@ -32,7 +32,7 @@ fun AppButtons(packageInfoPresenter: PackageInfoPresenter) {
} }
private class AppButtonsHolder(private val packageInfoPresenter: PackageInfoPresenter) { private class AppButtonsHolder(private val packageInfoPresenter: PackageInfoPresenter) {
private val appLaunchButton = AppLaunchButton(context = packageInfoPresenter.context) private val appLaunchButton = AppLaunchButton(packageInfoPresenter)
private val appDisableButton = AppDisableButton(packageInfoPresenter) private val appDisableButton = AppDisableButton(packageInfoPresenter)
private val appUninstallButton = AppUninstallButton(packageInfoPresenter) private val appUninstallButton = AppUninstallButton(packageInfoPresenter)
private val appForceStopButton = AppForceStopButton(packageInfoPresenter) private val appForceStopButton = AppForceStopButton(packageInfoPresenter)

View File

@@ -16,7 +16,6 @@
package com.android.settings.spa.app.appsettings package com.android.settings.spa.app.appsettings
import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo import android.content.pm.PackageInfo
@@ -26,11 +25,12 @@ import com.android.settings.R
import com.android.settingslib.spa.widget.button.ActionButton import com.android.settingslib.spa.widget.button.ActionButton
import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.model.app.userHandle
class AppLaunchButton(private val context: Context) { class AppLaunchButton(packageInfoPresenter: PackageInfoPresenter) {
private val packageManager = context.packageManager private val context = packageInfoPresenter.context
private val packageManagerAsUser = packageInfoPresenter.packageManagerAsUser
fun getActionButton(packageInfo: PackageInfo): ActionButton? = fun getActionButton(packageInfo: PackageInfo): ActionButton? =
packageManager.getLaunchIntentForPackage(packageInfo.packageName)?.let { intent -> packageManagerAsUser.getLaunchIntentForPackage(packageInfo.packageName)?.let { intent ->
launchButton(intent, packageInfo.applicationInfo) launchButton(intent, packageInfo.applicationInfo)
} }

View File

@@ -48,7 +48,7 @@ class PackageInfoPresenter(
private val coroutineScope: CoroutineScope, private val coroutineScope: CoroutineScope,
) { ) {
private val metricsFeatureProvider = FeatureFactory.getFactory(context).metricsFeatureProvider private val metricsFeatureProvider = FeatureFactory.getFactory(context).metricsFeatureProvider
private val packageManager by lazy { val packageManagerAsUser: PackageManager by lazy {
context.createContextAsUser(UserHandle.of(userId), 0).packageManager context.createContextAsUser(UserHandle.of(userId), 0).packageManager
} }
private val _flow: MutableStateFlow<PackageInfo?> = MutableStateFlow(null) private val _flow: MutableStateFlow<PackageInfo?> = MutableStateFlow(null)
@@ -85,7 +85,7 @@ class PackageInfoPresenter(
fun enable() { fun enable() {
logAction(SettingsEnums.ACTION_SETTINGS_ENABLE_APP) logAction(SettingsEnums.ACTION_SETTINGS_ENABLE_APP)
coroutineScope.launch(Dispatchers.IO) { coroutineScope.launch(Dispatchers.IO) {
packageManager.setApplicationEnabledSetting( packageManagerAsUser.setApplicationEnabledSetting(
packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0 packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0
) )
notifyChange() notifyChange()
@@ -96,7 +96,7 @@ class PackageInfoPresenter(
fun disable() { fun disable() {
logAction(SettingsEnums.ACTION_SETTINGS_DISABLE_APP) logAction(SettingsEnums.ACTION_SETTINGS_DISABLE_APP)
coroutineScope.launch(Dispatchers.IO) { coroutineScope.launch(Dispatchers.IO) {
packageManager.setApplicationEnabledSetting( packageManagerAsUser.setApplicationEnabledSetting(
packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER, 0 packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER, 0
) )
notifyChange() notifyChange()