Merge "Fix app launch button not shown"
This commit is contained in:
@@ -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)
|
||||||
|
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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()
|
||||||
|
Reference in New Issue
Block a user