falta so o chat

This commit is contained in:
2026-04-22 12:41:12 +01:00
parent 96d1985998
commit 2f3b03fe05
444 changed files with 22203 additions and 20079 deletions

44
docs/03_ChatActivity.md Normal file
View File

@@ -0,0 +1,44 @@
# 💬 ChatActivity.java — Chat em Tempo Real
> **Ficheiro:** `app/src/main/java/com/example/medcuida/pro/ChatActivity.java`
> **Layout:** `activity_chat.xml` | **Linhas:** 120
---
## Descrição Geral
Sistema de **chat em tempo real** entre médico e paciente. As mensagens ficam numa **sub-coleção** do Firestore: `consultas/{consultaId}/mensagens/`.
---
## Inicialização (`onCreate`) — Linhas 3978
1. **Verifica autenticação** — se não há utilizador, fecha a Activity
2. **Obtém dados via Intent:**
- `currentUserId` → UID do médico autenticado
- `consultaId` → ID da consulta (recebido da Activity anterior)
3. **Configura RecyclerView** com `setStackFromEnd(true)` (mensagens começam de baixo, como WhatsApp)
4. **Botão enviar** → chama `enviarMensagem()`
---
## `carregarMensagens()` — Linhas 80103
```java
db.collection("consultas").document(consultaId).collection("mensagens")
.orderBy("timestamp", Query.Direction.ASCENDING)
.addSnapshotListener(...)
```
- Escuta em **tempo real** a sub-coleção `mensagens`
- Ordena por `timestamp` (mais antigas primeiro)
- Faz **scroll automático** para a última mensagem
---
## `enviarMensagem()` — Linhas 106118
1. Lê o texto e valida (não envia se vazio)
2. Cria `Mensagem(texto, currentUserId, timestamp)`
3. Adiciona ao Firestore via `.add()`
4. Sucesso → limpa campo | Erro → mostra toast