falta so o chat
This commit is contained in:
66
docs/05_EditarPerfilActivity.md
Normal file
66
docs/05_EditarPerfilActivity.md
Normal 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 32–59
|
||||
|
||||
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 71–83
|
||||
|
||||
```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 86–123
|
||||
|
||||
### Validações (Linhas 87–99)
|
||||
- Nome não pode estar vazio
|
||||
- Especialidade não pode estar vazia
|
||||
|
||||
### Gravação (Linhas 101–122)
|
||||
```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
|
||||
Reference in New Issue
Block a user