From f0374a08c7f6b54d95179d1f045d27a648ba2472 Mon Sep 17 00:00:00 2001 From: leekleak <142348248+leekleak@users.noreply.github.com> Date: Thu, 24 Jul 2025 21:13:46 +0300 Subject: [PATCH] fix widget duplicates (#1536) --- .../mm20/launcher2/services/widgets/WidgetsService.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/services/widgets/src/main/java/de/mm20/launcher2/services/widgets/WidgetsService.kt b/services/widgets/src/main/java/de/mm20/launcher2/services/widgets/WidgetsService.kt index b4184257..34b652c0 100644 --- a/services/widgets/src/main/java/de/mm20/launcher2/services/widgets/WidgetsService.kt +++ b/services/widgets/src/main/java/de/mm20/launcher2/services/widgets/WidgetsService.kt @@ -4,6 +4,7 @@ import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetProviderInfo import android.content.Context import android.content.pm.LauncherApps +import android.os.Build import androidx.core.content.getSystemService import de.mm20.launcher2.widgets.CalendarWidget import de.mm20.launcher2.widgets.FavoritesWidget @@ -32,7 +33,15 @@ class WidgetsService( for (profile in profiles) { widgets.addAll(appWidgetManager.getInstalledProvidersForProfile(profile)) } - widgets + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + // Ignore widgets that the launcher is not supposed to access + widgets.filter { + it.widgetFeatures and AppWidgetProviderInfo.WIDGET_FEATURE_HIDE_FROM_PICKER == 0 + } + } else { + widgets + } } fun getAvailableBuiltInWidgets(): Flow> {