Loading src/com/android/settings/spa/app/appinfo/AppUninstallButton.kt +20 −3 Original line number Original line Diff line number Diff line Loading @@ -16,14 +16,21 @@ package com.android.settings.spa.app.appinfo package com.android.settings.spa.app.appinfo import android.app.settings.SettingsEnums import android.content.Intent; import android.content.om.OverlayManager import android.content.om.OverlayManager import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo import android.os.UserHandle import android.os.UserHandle import android.os.UserManager import android.os.UserManager import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Delete import androidx.compose.material.icons.outlined.Delete import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAdd import com.android.settings.R import com.android.settings.R import com.android.settings.spa.SpaActivity import com.android.settings.Utils import com.android.settingslib.spa.widget.button.ActionButton import com.android.settingslib.spa.widget.button.ActionButton import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager import com.android.settingslib.spaprivileged.model.app.hasFlag import com.android.settingslib.spaprivileged.model.app.hasFlag import com.android.settingslib.spaprivileged.model.app.isActiveAdmin import com.android.settingslib.spaprivileged.model.app.isActiveAdmin import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.model.app.userHandle Loading @@ -43,8 +50,8 @@ class AppUninstallButton(private val packageInfoPresenter: PackageInfoPresenter) private fun isUninstallButtonEnabled(app: ApplicationInfo): Boolean = when { private fun isUninstallButtonEnabled(app: ApplicationInfo): Boolean = when { !app.hasFlag(ApplicationInfo.FLAG_INSTALLED) -> false !app.hasFlag(ApplicationInfo.FLAG_INSTALLED) -> false // Not allow to uninstall DO/PO. Utils.isProfileOrDeviceOwner( app.isActiveAdmin(context) -> false context.devicePolicyManager, app.packageName, packageInfoPresenter.userId) -> false appButtonRepository.isDisallowControl(app) -> false appButtonRepository.isDisallowControl(app) -> false Loading Loading @@ -90,7 +97,17 @@ class AppUninstallButton(private val packageInfoPresenter: PackageInfoPresenter) ) { onUninstallClicked(app) } ) { onUninstallClicked(app) } private fun onUninstallClicked(app: ApplicationInfo) { private fun onUninstallClicked(app: ApplicationInfo) { if (appButtonRepository.isUninstallBlockedByAdmin(app)) return if (appButtonRepository.isUninstallBlockedByAdmin(app)) { return } else if (app.isActiveAdmin(context)) { var uninstallDaIntent = Intent(context, DeviceAdminAdd::class.java) uninstallDaIntent.putExtra(DeviceAdminAdd.EXTRA_DEVICE_ADMIN_PACKAGE_NAME, app.packageName) packageInfoPresenter.logAction( SettingsEnums.ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN) context.startActivityAsUser(uninstallDaIntent, app.userHandle) return } packageInfoPresenter.startUninstallActivity() packageInfoPresenter.startUninstallActivity() } } Loading Loading
src/com/android/settings/spa/app/appinfo/AppUninstallButton.kt +20 −3 Original line number Original line Diff line number Diff line Loading @@ -16,14 +16,21 @@ package com.android.settings.spa.app.appinfo package com.android.settings.spa.app.appinfo import android.app.settings.SettingsEnums import android.content.Intent; import android.content.om.OverlayManager import android.content.om.OverlayManager import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo import android.os.UserHandle import android.os.UserHandle import android.os.UserManager import android.os.UserManager import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Delete import androidx.compose.material.icons.outlined.Delete import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAdd import com.android.settings.R import com.android.settings.R import com.android.settings.spa.SpaActivity import com.android.settings.Utils import com.android.settingslib.spa.widget.button.ActionButton import com.android.settingslib.spa.widget.button.ActionButton import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager import com.android.settingslib.spaprivileged.model.app.hasFlag import com.android.settingslib.spaprivileged.model.app.hasFlag import com.android.settingslib.spaprivileged.model.app.isActiveAdmin import com.android.settingslib.spaprivileged.model.app.isActiveAdmin import com.android.settingslib.spaprivileged.model.app.userHandle import com.android.settingslib.spaprivileged.model.app.userHandle Loading @@ -43,8 +50,8 @@ class AppUninstallButton(private val packageInfoPresenter: PackageInfoPresenter) private fun isUninstallButtonEnabled(app: ApplicationInfo): Boolean = when { private fun isUninstallButtonEnabled(app: ApplicationInfo): Boolean = when { !app.hasFlag(ApplicationInfo.FLAG_INSTALLED) -> false !app.hasFlag(ApplicationInfo.FLAG_INSTALLED) -> false // Not allow to uninstall DO/PO. Utils.isProfileOrDeviceOwner( app.isActiveAdmin(context) -> false context.devicePolicyManager, app.packageName, packageInfoPresenter.userId) -> false appButtonRepository.isDisallowControl(app) -> false appButtonRepository.isDisallowControl(app) -> false Loading Loading @@ -90,7 +97,17 @@ class AppUninstallButton(private val packageInfoPresenter: PackageInfoPresenter) ) { onUninstallClicked(app) } ) { onUninstallClicked(app) } private fun onUninstallClicked(app: ApplicationInfo) { private fun onUninstallClicked(app: ApplicationInfo) { if (appButtonRepository.isUninstallBlockedByAdmin(app)) return if (appButtonRepository.isUninstallBlockedByAdmin(app)) { return } else if (app.isActiveAdmin(context)) { var uninstallDaIntent = Intent(context, DeviceAdminAdd::class.java) uninstallDaIntent.putExtra(DeviceAdminAdd.EXTRA_DEVICE_ADMIN_PACKAGE_NAME, app.packageName) packageInfoPresenter.logAction( SettingsEnums.ACTION_SETTINGS_UNINSTALL_DEVICE_ADMIN) context.startActivityAsUser(uninstallDaIntent, app.userHandle) return } packageInfoPresenter.startUninstallActivity() packageInfoPresenter.startUninstallActivity() } } Loading