From 1b1661ce02430abc07c0b379e4b29df5ff8c3411 Mon Sep 17 00:00:00 2001 From: GCyganek Date: Fri, 13 Mar 2026 15:50:32 +0100 Subject: [PATCH 1/4] [GPS] Change GPS in progress FAB to floating pill --- .../FloatingGPSButton/index.native.tsx | 34 ++++++------------- src/languages/de.ts | 2 +- src/languages/en.ts | 2 +- src/languages/es.ts | 2 +- src/languages/fr.ts | 2 +- src/languages/it.ts | 2 +- src/languages/ja.ts | 2 +- src/languages/nl.ts | 2 +- src/languages/pl.ts | 2 +- src/languages/pt-BR.ts | 2 +- src/languages/zh-hans.ts | 2 +- src/styles/index.ts | 6 ++-- 12 files changed, 22 insertions(+), 38 deletions(-) diff --git a/src/components/FloatingGPSButton/index.native.tsx b/src/components/FloatingGPSButton/index.native.tsx index 99178516eb6e..0ac7f98c67e4 100644 --- a/src/components/FloatingGPSButton/index.native.tsx +++ b/src/components/FloatingGPSButton/index.native.tsx @@ -1,15 +1,11 @@ import React from 'react'; -import {View} from 'react-native'; -import Icon from '@components/Icon'; -import {PressableWithoutFeedback} from '@components/Pressable'; +import Button from '@components/Button'; import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; -import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import Navigation from '@libs/Navigation/Navigation'; import {generateReportID} from '@libs/ReportUtils'; -import variables from '@styles/variables'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; @@ -18,8 +14,7 @@ function FloatingGpsButton() { const [gpsDraftDetails] = useOnyx(ONYXKEYS.GPS_DRAFT_DETAILS); const {translate} = useLocalize(); - const icons = useMemoizedLazyExpensifyIcons(['Location'] as const); - const {textMutedReversed} = useTheme(); + const icons = useMemoizedLazyExpensifyIcons(['Crosshair'] as const); const styles = useThemeStyles(); if (!gpsDraftDetails?.isTracking) { @@ -32,26 +27,17 @@ function FloatingGpsButton() { }; return ( - - - - - + /> ); } diff --git a/src/languages/de.ts b/src/languages/de.ts index ac5090cf337a..42c51d86d16f 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -7826,7 +7826,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und confirm: 'Einstellungen öffnen', prompt: 'Bitte erlaube den Standortzugriff in den Einstellungen deines Geräts, um die GPS‑Streckenverfolgung zu starten.', }, - fabGpsTripExplained: 'Zum GPS-Bildschirm wechseln (Schnellaktion)', + gpsFloatingPillText: 'GPS-Tracking läuft...', liveActivity: {subtitle: 'Entfernungserfassung', button: 'Fortschritt anzeigen'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/en.ts b/src/languages/en.ts index 2f7e97db1d28..1fa40f946c88 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -7791,7 +7791,7 @@ const translations = { confirm: 'Open settings', prompt: 'Please allow location access in your device settings to start GPS distance tracking.', }, - fabGpsTripExplained: 'Go to GPS screen (Floating action)', + gpsFloatingPillText: 'GPS tracking in progress...', liveActivity: { subtitle: 'Tracking distance', button: 'View progress', diff --git a/src/languages/es.ts b/src/languages/es.ts index be67749dfcd5..d1a978cc5494 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -8997,7 +8997,7 @@ ${amount} para ${merchant} - ${date}`, confirm: 'Abrir ajustes', prompt: 'Por favor, permite el acceso a la ubicación en los ajustes de tu dispositivo para iniciar el seguimiento de distancia por GPS.', }, - fabGpsTripExplained: 'Ir a la pantalla de GPS (Acción flotante)', + gpsFloatingPillText: 'Seguimiento GPS en curso...', liveActivity: { subtitle: 'Seguimiento de distancia', button: 'Ver progreso', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 3a34c0c1947c..bf710456f578 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -7849,7 +7849,7 @@ Rendez obligatoires des informations de dépense comme les reçus et les descrip confirm: 'Ouvrir les paramètres', prompt: 'Veuillez autoriser l’accès à la localisation dans les réglages de votre appareil pour commencer le suivi de distance GPS.', }, - fabGpsTripExplained: 'Aller à l’écran GPS (action flottante)', + gpsFloatingPillText: 'Suivi GPS en cours...', liveActivity: {subtitle: 'Suivi de la distance', button: 'Voir la progression'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/it.ts b/src/languages/it.ts index e65e7db28213..f1150951057c 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -7812,7 +7812,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo confirm: 'Apri impostazioni', prompt: 'Consenti l’accesso alla posizione nelle impostazioni del dispositivo per iniziare il tracciamento della distanza GPS.', }, - fabGpsTripExplained: 'Vai alla schermata GPS (azione flottante)', + gpsFloatingPillText: 'Monitoraggio GPS in corso...', liveActivity: {subtitle: 'Rilevamento distanza', button: 'Visualizza avanzamento'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 9ab90d2d8dd3..096f8aa98e79 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -7725,7 +7725,7 @@ ${reportName} confirm: '設定を開く', prompt: 'GPSで距離の追跡を開始するには、端末の設定で位置情報へのアクセスを許可してください。', }, - fabGpsTripExplained: 'GPS画面へ移動(フローティングアクション)', + gpsFloatingPillText: 'GPS追跡を実行中...', liveActivity: {subtitle: '距離の記録', button: '進捗を表示'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 1ade218c60df..f5173546ad78 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -7791,7 +7791,7 @@ Vereis onkostendetails zoals bonnen en beschrijvingen, stel limieten en standaar confirm: 'Instellingen openen', prompt: 'Sta locatiestoegang toe in de instellingen van je apparaat om GPS-afstandsregistratie te starten.', }, - fabGpsTripExplained: 'Ga naar GPS-scherm (zwevende actie)', + gpsFloatingPillText: 'GPS-tracking bezig...', liveActivity: {subtitle: 'Afstand bijhouden', button: 'Voortgang bekijken'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/pl.ts b/src/languages/pl.ts index dea6dcd3a6ea..c656f4296467 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -7779,7 +7779,7 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i confirm: 'Otwórz ustawienia', prompt: 'Zezwól na dostęp do lokalizacji w ustawieniach urządzenia, aby rozpocząć śledzenie dystansu GPS.', }, - fabGpsTripExplained: 'Przejdź do ekranu GPS (działanie pływające)', + gpsFloatingPillText: 'Trwa śledzenie GPS...', liveActivity: {subtitle: 'Śledzenie dystansu', button: 'Zobacz postęp'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index be11c98aa086..ebe10a6e03b2 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -7783,7 +7783,7 @@ Exija dados de despesas como recibos e descrições, defina limites e padrões e confirm: 'Abrir configurações', prompt: 'Permita o acesso à localização nas configurações do seu dispositivo para iniciar o rastreamento de distância por GPS.', }, - fabGpsTripExplained: 'Ir para a tela de GPS (Ação flutuante)', + gpsFloatingPillText: 'Rastreamento por GPS em andamento...', liveActivity: {subtitle: 'Rastreamento de distância', button: 'Ver progresso'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index f87e2bac4758..0f1c8db24b25 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -7591,7 +7591,7 @@ ${reportName} confirm: '打开设置', prompt: '请在设备设置中允许访问位置信息,以开始使用 GPS 距离跟踪。', }, - fabGpsTripExplained: '前往 GPS 页面(浮动操作)', + gpsFloatingPillText: '正在进行 GPS 追踪...', liveActivity: {subtitle: '跟踪距离', button: '查看进度'}, }, reportCardLostOrDamaged: { diff --git a/src/styles/index.ts b/src/styles/index.ts index ed4e012c6510..c0cee3cef3eb 100644 --- a/src/styles/index.ts +++ b/src/styles/index.ts @@ -1703,10 +1703,8 @@ const staticStyles = (theme: ThemeColors) => floatingGpsButton: { position: 'absolute', - // floatingActionButton top property value (componentSizeLarge + 16) + - // + floatingCameraButton height (componentSizeLarge) + gap (12) + floatingGpsButton height (componentSizeLarge) + gap (12) = 3 * variables.componentSizeLarge + 40 - top: 3 * -variables.componentSizeLarge - 40, - right: 16, + top: -variables.componentSizeSmall - 16, + alignSelf: 'center', zIndex: 10, }, From cbed37e1a6dad131ce21ea2c58f1458bb0741996 Mon Sep 17 00:00:00 2001 From: GCyganek Date: Fri, 13 Mar 2026 16:09:44 +0100 Subject: [PATCH 2/4] Re-run spell check From 67c5cbb47a9bbe8ed57c68565957fb1def9f5873 Mon Sep 17 00:00:00 2001 From: GCyganek Date: Fri, 13 Mar 2026 16:20:43 +0100 Subject: [PATCH 3/4] Re-run jest tests From 7fbce4c3fb1f173fb29dbe114c8f32afe384a23f Mon Sep 17 00:00:00 2001 From: GCyganek Date: Fri, 13 Mar 2026 16:29:56 +0100 Subject: [PATCH 4/4] Translations --- src/languages/de.ts | 2 +- src/languages/it.ts | 2 +- src/languages/ja.ts | 2 +- src/languages/zh-hans.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 42c51d86d16f..597760bf7382 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -7826,7 +7826,7 @@ Fordern Sie Spesendetails wie Belege und Beschreibungen an, legen Sie Limits und confirm: 'Einstellungen öffnen', prompt: 'Bitte erlaube den Standortzugriff in den Einstellungen deines Geräts, um die GPS‑Streckenverfolgung zu starten.', }, - gpsFloatingPillText: 'GPS-Tracking läuft...', + gpsFloatingPillText: 'GPS-Verfolgung läuft...', liveActivity: {subtitle: 'Entfernungserfassung', button: 'Fortschritt anzeigen'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/it.ts b/src/languages/it.ts index f1150951057c..fe5847badb87 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -7812,7 +7812,7 @@ Richiedi dettagli sulle spese come ricevute e descrizioni, imposta limiti e valo confirm: 'Apri impostazioni', prompt: 'Consenti l’accesso alla posizione nelle impostazioni del dispositivo per iniziare il tracciamento della distanza GPS.', }, - gpsFloatingPillText: 'Monitoraggio GPS in corso...', + gpsFloatingPillText: 'Tracciamento GPS in corso...', liveActivity: {subtitle: 'Rilevamento distanza', button: 'Visualizza avanzamento'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 096f8aa98e79..1dad42fe67f6 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -7725,7 +7725,7 @@ ${reportName} confirm: '設定を開く', prompt: 'GPSで距離の追跡を開始するには、端末の設定で位置情報へのアクセスを許可してください。', }, - gpsFloatingPillText: 'GPS追跡を実行中...', + gpsFloatingPillText: 'GPS 追跡を実行中です…', liveActivity: {subtitle: '距離の記録', button: '進捗を表示'}, }, reportCardLostOrDamaged: { diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 0f1c8db24b25..735516f1152b 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -7591,7 +7591,7 @@ ${reportName} confirm: '打开设置', prompt: '请在设备设置中允许访问位置信息,以开始使用 GPS 距离跟踪。', }, - gpsFloatingPillText: '正在进行 GPS 追踪...', + gpsFloatingPillText: '正在进行 GPS 跟踪…', liveActivity: {subtitle: '跟踪距离', button: '查看进度'}, }, reportCardLostOrDamaged: {