Merge branch 'master' into cccc

This commit is contained in:
Marcos Rodriguez Vélez 2026-02-22 13:32:14 -05:00 committed by GitHub
commit 70dc1e2f5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 39 additions and 27 deletions

View File

@ -62,17 +62,21 @@ export const checkNotificationPermissionStatus = async () => {
// Listener to monitor notification permission status changes while app is running
let currentPermissionStatus = 'unavailable';
const handleAppStateChange = async (nextAppState: AppStateStatus) => {
if (nextAppState === 'active') {
const isDisabledByUser = (await AsyncStorage.getItem(NOTIFICATIONS_NO_AND_DONT_ASK_FLAG)) === 'true';
if (!isDisabledByUser) {
const newPermissionStatus = await checkNotificationPermissionStatus();
if (newPermissionStatus !== currentPermissionStatus) {
currentPermissionStatus = newPermissionStatus;
if (newPermissionStatus === 'granted') {
await initializeNotifications();
try {
if (nextAppState === 'active') {
const isDisabledByUser = (await AsyncStorage.getItem(NOTIFICATIONS_NO_AND_DONT_ASK_FLAG)) === 'true';
if (!isDisabledByUser) {
const newPermissionStatus = await checkNotificationPermissionStatus();
if (newPermissionStatus !== currentPermissionStatus) {
currentPermissionStatus = newPermissionStatus;
if (newPermissionStatus === 'granted') {
await initializeNotifications();
}
}
}
}
} catch (error) {
console.error('Failed handling app state notification refresh:', error);
}
};

View File

@ -51,7 +51,11 @@ const useDeviceQuickActions = () => {
useEffect(() => {
if (walletsInitialized) {
DeviceEventEmitter.addListener('quickActionShortcut', walletQuickActions);
popInitialShortcutAction().then(popInitialAction);
popInitialShortcutAction()
.then(popInitialAction)
.catch(error => {
console.error('Failed to process initial quick action:', error);
});
return () => DeviceEventEmitter.removeAllListeners('quickActionShortcut');
}
// eslint-disable-next-line react-hooks/exhaustive-deps
@ -74,26 +78,28 @@ const useDeviceQuickActions = () => {
};
const popInitialAction = async (data: any): Promise<void> => {
if (data) {
const wallet = wallets.find(w => w.getID() === data.userInfo.url.split('wallet/')[1]);
if (wallet) {
NavigationService.dispatch(
CommonActions.navigate({
name: 'WalletTransactions',
params: {
walletID: wallet.getID(),
walletType: wallet.type,
},
}),
);
}
} else {
const url = await Linking.getInitialURL();
if (url) {
if (DeeplinkSchemaMatch.hasSchema(url)) {
try {
if (data) {
const wallet = wallets.find(w => w.getID() === data.userInfo.url.split('wallet/')[1]);
if (wallet) {
NavigationService.dispatch(
CommonActions.navigate({
name: 'WalletTransactions',
params: {
walletID: wallet.getID(),
walletType: wallet.type,
},
}),
);
}
} else {
const url = await Linking.getInitialURL();
if (url && DeeplinkSchemaMatch.hasSchema(url)) {
handleOpenURL({ url });
}
}
} catch (error) {
console.error('Failed to handle initial quick action/deeplink:', error);
}
};

View File

@ -23,7 +23,9 @@ LogBox.ignoreLogs([
const BlueAppComponent = () => {
useEffect(() => {
restoreSavedPreferredFiatCurrencyAndExchangeFromStorage();
restoreSavedPreferredFiatCurrencyAndExchangeFromStorage().catch(error => {
console.error('Failed to restore preferred currency and exchange rates on startup:', error);
});
}, []);
return <App />;