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

View File

@@ -0,0 +1,66 @@
# ✏️ EditarPerfilActivity.java — Edição do Perfil
> **Ficheiro:** `app/src/main/java/com/example/medcuida/pro/EditarPerfilActivity.java`
> **Layout:** `activity_editar_perfil.xml` | **Linhas:** 125
---
## Descrição Geral
Permite ao médico **editar os seus dados pessoais**: nome, especialidade e género. As alterações são guardadas **simultaneamente** nas coleções `utilizadores` e `medicos` do Firestore.
---
## Campos Editáveis
| Campo | Tipo de Input | Obrigatório |
|---|---|---|
| Nome completo | `TextInputEditText` | ✅ Sim |
| Especialidade | `TextInputEditText` | ✅ Sim |
| Género | `AutoCompleteTextView` (dropdown) | Não |
| Email | `TextInputEditText` (só leitura) | — |
---
## Inicialização (`onCreate`) — Linhas 3259
1. Verifica autenticação — se não há utilizador, fecha a Activity
2. Associa as views do layout
3. Configura o **dropdown de género** com 3 opções: `Masculino`, `Feminino`, `Outro`
4. **Botão Voltar**`finish()`
5. **Botão Guardar**`guardarAlteracoes()`
6. Chama `carregarDados()` para preencher os campos atuais
---
## `carregarDados()` — Linhas 7183
```java
db.collection("utilizadores").document(currentUserId).get()
```
- Lê o documento do médico na coleção `utilizadores`
- Preenche os campos: `nome_completo`, `especialidade`, `email`, `sexo`
- Em caso de erro → mostra toast
---
## `guardarAlteracoes()` — Linhas 86123
### Validações (Linhas 8799)
- Nome não pode estar vazio
- Especialidade não pode estar vazia
### Gravação (Linhas 101122)
```java
Map<String, Object> updates = new HashMap<>();
updates.put("nome_completo", name);
updates.put("especialidade", specialty);
updates.put("sexo", gender);
```
1. Desativa o botão para evitar duplo clique
2. Atualiza na coleção `utilizadores`
3. **Também atualiza em `medicos`** para manter sincronizado
4. Sucesso → mostra toast + `finish()`
5. Erro → reativa o botão