falta so o chat
This commit is contained in:
44
docs/03_ChatActivity.md
Normal file
44
docs/03_ChatActivity.md
Normal 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 39–78
|
||||
|
||||
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 80–103
|
||||
|
||||
```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 106–118
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user