From 3e80cd431060f723b192b85319071f9f7f4a2452 Mon Sep 17 00:00:00 2001 From: jp0p Date: Mon, 31 Aug 2026 17:09:47 -0700 Subject: [PATCH 1/2] Keep quick actions available on launch Build Android shortcut intents from the package launch intent so dynamic registration does not depend on a foreground activity. Report any remaining registration failure without interrupting app startup. --- patches/expo-quick-actions+5.0.0.patch | 17 +++++++++++++++++ src/components/services/QuickActionsManager.tsx | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/patches/expo-quick-actions+5.0.0.patch b/patches/expo-quick-actions+5.0.0.patch index 1354791ecad..f57275e4300 100644 --- a/patches/expo-quick-actions+5.0.0.patch +++ b/patches/expo-quick-actions+5.0.0.patch @@ -11,6 +11,23 @@ index 4db980e..53bb319 100644 } } +diff --git a/node_modules/expo-quick-actions/android/src/main/java/expo/modules.quickactions/ExpoQuickActionsModule.kt b/node_modules/expo-quick-actions/android/src/main/java/expo/modules.quickactions/ExpoQuickActionsModule.kt +index 66dc4a0..6bda3f8 100644 +--- a/node_modules/expo-quick-actions/android/src/main/java/expo/modules.quickactions/ExpoQuickActionsModule.kt ++++ b/node_modules/expo-quick-actions/android/src/main/java/expo/modules.quickactions/ExpoQuickActionsModule.kt +@@ -3 +2,0 @@ +-import android.app.Activity +@@ -126,3 +124,0 @@ +- private val currentActivity: Activity? +- get() = appContext.currentActivity +- +@@ -229,0 +226,3 @@ ++ val launchIntent = context.packageManager ++ .getLaunchIntentForPackage(context.packageName) ++ ?: throw IllegalStateException("Unable to find the app launch intent") +@@ -232 +231 @@ +- val intent = Intent(context, currentActivity!!::class.java) ++ val intent = Intent(launchIntent) diff --git a/node_modules/expo-quick-actions/ios/ExpoQuickActionsModule.swift b/node_modules/expo-quick-actions/ios/ExpoQuickActionsModule.swift index 252da49..12a29e4 100644 --- a/node_modules/expo-quick-actions/ios/ExpoQuickActionsModule.swift diff --git a/src/components/services/QuickActionsManager.tsx b/src/components/services/QuickActionsManager.tsx index caf28c5816a..257d5bd6012 100644 --- a/src/components/services/QuickActionsManager.tsx +++ b/src/components/services/QuickActionsManager.tsx @@ -7,6 +7,7 @@ import { useAsyncEffect } from '../../hooks/useAsyncEffect' import { useHandler } from '../../hooks/useHandler' import { lstrings } from '../../locales/strings' import { config } from '../../theme/appConfig' +import { trackError } from '../../util/tracking' import { showError } from './AirshipInstance' export const QuickActionsManager: React.FC = () => { @@ -38,7 +39,7 @@ export const QuickActionsManager: React.FC = () => { } ]) } catch (error: unknown) { - showError(error) + trackError(error, 'QuickActionsManager:setItems') } }, [], From 97592052b7cd75af3eeadbab0d7fdad5eb085f9d Mon Sep 17 00:00:00 2001 From: jp0p Date: Mon, 31 Aug 2026 17:36:07 -0700 Subject: [PATCH 2/2] Document Android quick action fix --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 40c67c4be8f..1bb2c73a8c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased (develop) +- fixed: Android home screen long-press shortcuts no longer depend on a foreground activity during startup, and a shortcut registration failure no longer blocks the rest of the app. + ## 4.51.0 (staging) - added: Push info-server attestation tokens into edge-core-js via `setAttestationToken` so the login server can skip CAPTCHA for attested devices, and allow `LOGIN_SERVER` / `INFO_SERVER` env overrides for local E2E stacks.