diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt index 398d65b..8d4d7b6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt @@ -584,7 +584,7 @@ class MainActivity : SimpleActivity(), FlingListener { menu.findItem(R.id.hide_icon).isVisible = gridItem.type == ITEM_TYPE_ICON && isOnAllAppsFragment menu.findItem(R.id.resize).isVisible = gridItem.type == ITEM_TYPE_WIDGET menu.findItem(R.id.app_info).isVisible = gridItem.type == ITEM_TYPE_ICON - menu.findItem(R.id.uninstall).isVisible = gridItem.type == ITEM_TYPE_ICON + menu.findItem(R.id.uninstall).isVisible = gridItem.type == ITEM_TYPE_ICON && isUninstallable(gridItem.packageName) menu.findItem(R.id.remove).isVisible = !isOnAllAppsFragment setOnMenuItemClickListener { item -> resetFragmentTouches() diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Activity.kt index 39ae65a..4cfa6ab 100644 --- a/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Activity.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.launcher.extensions import android.app.Activity import android.content.ComponentName import android.content.Intent +import android.content.pm.ApplicationInfo import android.net.Uri import android.provider.Settings import com.simplemobiletools.commons.extensions.showErrorToast @@ -41,6 +42,14 @@ fun Activity.launchAppInfo(packageName: String) { } } +fun Activity.isUninstallable(packageName: String): Boolean { + return try { + (packageManager.getApplicationInfo(packageName, 0).flags and ApplicationInfo.FLAG_SYSTEM) == 0 + } catch (ignored: Exception) { + false + } +} + fun Activity.uninstallApp(packageName: String) { Intent(Intent.ACTION_DELETE).apply { data = Uri.fromParts("package", packageName, null)