Início de turno no mobile
Quando um técnico abre o app móvel, a aba inicial mostra um único botão Iniciar turno. O que acontece ao tocá-lo depende de ele já ter dado consentimento para o rastreamento por GPS antes.
Primeira vez — o aviso de consentimento
- Toque em Iniciar turno.
- Aparece um aviso com o texto da política de rastreamento por GPS da organização. Ele explica o intervalo, o período de retenção, quem vê os dados e como revogar.
- Dois botões: Agora não (fecha o aviso — nenhum turno começa) e Concordo, iniciar turno (envia o consentimento e inicia o turno imediatamente).
Todo turno seguinte
Toque em Iniciar turno. O app:
- Verifica a configuração de rastreamento por GPS da organização (
enabled+intervalSeconds). - Confirma que há consentimento registrado.
- Pede ao sistema a permissão de localização em primeiro plano + segundo plano (uma vez por dispositivo).
- Registra o turno no backend.
- Inicia a tarefa de localização em segundo plano no intervalo configurado pela organização.
O indicador de estado vira Turno ativo com um contador de duração ao vivo. A dica diz "Sua localização está sendo compartilhada a cada ~{N}s" com o intervalo real.
O que o sistema mostra
- iOS: uma barra azul no topo da tela ("O app está usando sua localização").
- Android: uma notificação persistente de serviço em primeiro plano ("Roldesk — Turno ativo").
Ambas são intencionais — as regulamentações de privacidade esperam um indicador visual claro enquanto o rastreamento está ligado.
Fim do turno
Toque em Encerrar turno. O app para a tarefa em segundo plano, envia o horário de término do turno e a barra do sistema desaparece.
E se o app travar / eu forçar o fechamento?
O turno ativo é persistido no AsyncStorage. Na próxima abertura, o app o lê de volta e retoma — a tarefa de localização é registrada de novo, o contador de duração retoma do horário de início original e a barra reaparece. Forçar o fechamento não perde o turno.
E se não houver sinal?
Os pings ficam em buffer local e são enviados em lotes quando a conectividade volta. O backoffice vê uma lacuna durante a janela offline, e depois a recuperação chega em uma rajada.
Armadilhas comuns
- "Falha na requisição de rede" em toda tela — normalmente uma URL de dev obsoleta. Devs: rodem
npm run set-apiem apps/mobile para atualizar. - O aviso de consentimento não fecha — aceitar a política é uma ação de mão única. Para revogar, encerre o turno, vá ao perfil e toque em Revogar consentimento de GPS.
- O sistema negou a permissão em segundo plano — conceda de novo em Configurações do dispositivo → Roldesk → Localização → Sempre.