diff --git a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt index 359aeb9..6213a80 100644 --- a/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/applauncher/activities/MainActivity.kt @@ -54,6 +54,7 @@ class MainActivity : SimpleActivity(), AddAppDialog.AddLaunchersInterface, Recyc private fun setupLaunchers() { launchers = dbHelper.getLaunchers() + checkInvalidApps() launchers_holder.adapter = RecyclerAdapter(this, launchers) { val launchIntent = packageManager.getLaunchIntentForPackage(it.pkgName) if (launchIntent != null) { @@ -84,6 +85,18 @@ class MainActivity : SimpleActivity(), AddAppDialog.AddLaunchersInterface, Recyc return filtered as ArrayList } + private fun checkInvalidApps() { + val invalidIds = ArrayList() + for ((id, name, pkgName) in launchers) { + val launchIntent = packageManager.getLaunchIntentForPackage(pkgName) + if (launchIntent == null && !pkgName.startsWith("com.simplemobiletools")) { + invalidIds.add(id.toString()) + } + } + dbHelper.deleteLaunchers(invalidIds) + launchers = launchers.filter { !invalidIds.contains(it.id.toString()) } as ArrayList + } + override fun selectedLaunchers(launchers: ArrayList) { for ((id, name, pkgName) in launchers) { dbHelper.addLauncher(name, pkgName)