From 7860230e88a85dd3b69aa0898fdc7a301c606776 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Sun, 16 Jun 2024 17:31:31 +0200 Subject: [PATCH] Use RoleManager API to request shortcut permission --- .../mm20/launcher2/permissions/PermissionsManager.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/permissions/src/main/java/de/mm20/launcher2/permissions/PermissionsManager.kt b/core/permissions/src/main/java/de/mm20/launcher2/permissions/PermissionsManager.kt index e554e468..527098bd 100644 --- a/core/permissions/src/main/java/de/mm20/launcher2/permissions/PermissionsManager.kt +++ b/core/permissions/src/main/java/de/mm20/launcher2/permissions/PermissionsManager.kt @@ -1,6 +1,7 @@ package de.mm20.launcher2.permissions import android.Manifest +import android.app.role.RoleManager import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent @@ -142,7 +143,15 @@ internal class PermissionsManagerImpl( } PermissionGroup.AppShortcuts -> { - context.tryStartActivity(Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)) + if (isAtLeastApiLevel(29)) { + val roleManager = context.getSystemService() + context.startActivityForResult( + roleManager!!.createRequestRoleIntent(RoleManager.ROLE_HOME), + permissionGroup.ordinal + ) + } else { + context.tryStartActivity(Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)) + } pendingPermissionRequests.add(PermissionGroup.AppShortcuts) }