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

156
docs/11_Layouts_XML.md Normal file
View File

@@ -0,0 +1,156 @@
# 🎨 Layouts XML — Interfaces Visuais
> **Pasta:** `app/src/main/res/layout/`
---
## Layouts de Activity (ecrãs completos)
### `activity_main.xml` (243 linhas)
**Usado por:** `MainActivity.java`
Estrutura principal com 3 secções controladas pela BottomNav:
| Secção | ID | Descrição |
|---|---|---|
| Header | `lay_top` | Saudação "Olá, [Nome]" (`tv_greeting_main`) |
| Agenda | `view_agenda` | CalendarView num MaterialCard + RecyclerView de consultas + texto "agenda vazia" |
| Pacientes | `view_pacientes` | RecyclerView de pacientes (`recycler_consultas`) + texto "vazio" |
| Perfil | `view_perfil` | Ícone de utilizador + MaterialCard com dados + botões "Editar" e "Logout" |
| Nav | `bottom_navigation` | BottomNavigationView com menu `menu_bottom` |
**Layout raiz:** `RelativeLayout` com fundo `#F5F5F5`
---
### `activity_agenda.xml` (53 linhas)
**Usado por:** `AgendaActivity.java`
Layout vertical simples:
1. `CalendarView` — calendário nativo
2. `TextView` — título "Consultas agendadas:"
3. `RecyclerView` (`recycler_agenda`) — lista de consultas
4. `TextView` (`text_agenda_vazia`) — mensagem quando vazio (visibility: gone)
5. `BottomNavigationView` — navegação inferior
---
### `activity_chat.xml` (57 linhas)
**Usado por:** `ChatActivity.java`
**Layout:** `ConstraintLayout`
| Elemento | ID | Descrição |
|---|---|---|
| RecyclerView | `recycler_mensagens` | Ocupa o espaço todo acima do input |
| Barra de input | `layout_input` | LinearLayout horizontal no fundo |
| Campo de texto | `et_mensagem_input` | EditText com hint "Escrever mensagem..." |
| Botão enviar | `btn_enviar` | ImageButton com ícone `ic_send` |
---
### `activity_login.xml` (127 linhas)
**Usado por:** `LoginActivity.java`
Layout num `ScrollView` centrado:
1. **Logo** — ImageView 250×250dp (`logo_app`)
2. **Card de login** — MaterialCardView contendo:
- Título "Iniciar Sessão"
- Campo email (`email_edit_text`)
- Campo password (`password_edit_text`)
- Checkbox "Lembrar-me"
- Botão "Entrar" (`login_button`)
- Link "Esqueceu a palavra-passe" (`forgot_password_link`)
3. **Link de registo** — "Não tem conta? Registar" (`register_link`)
---
### `activity_register_medico.xml` (153 linhas)
**Usado por:** `RegisterActivity.java`
Layout num `ScrollView`:
1. **Logo** — ImageView 200×200dp (`ic_logo`)
2. **Card de registo** — MaterialCardView contendo:
- Título "Registar"
- Campo nome (`name_edit_text`)
- Campo especialidade (`specialty_edit_text`)
- Dropdown género (`gender_auto_complete`)
- Campo email (`email_edit_text`)
- Campo password (`password_edit_text`)
- Botão "Registar" (`register_button`)
- Link "Já tem conta? Entrar" (`login_link`)
---
### `activity_detalhe_paciente.xml` (158 linhas)
**Usado por:** `DetalhePacienteActivity.java`
**Layout:** `ConstraintLayout`
| Secção | Conteúdo |
|---|---|
| Topo | Botão voltar (`btn_sair_detalhe`) com ícone seta |
| Card "Informação Pessoal" | Nome, idade, nº utente, sexo, email |
| Card "Medicação Atual" | Lista de medicação (`tv_medicacao_paciente`) |
| Fundo | Botão "Conversar com Paciente" (`btn_chat_paciente`) com ícone chat |
---
### `activity_editar_perfil.xml` (103 linhas)
**Usado por:** `EditarPerfilActivity.java`
Layout num `ScrollView`:
1. Botão voltar (`btn_voltar`)
2. Título "Editar Dados Pessoais"
3. Campo nome (`edit_name`)
4. Campo especialidade (`edit_specialty`)
5. Dropdown sexo (`edit_gender`) — `ExposedDropdownMenu`
6. Campo email (`edit_email`) — **desativado** (não editável)
7. Botão "GUARDAR ALTERAÇÕES" (`btn_guardar_alteracoes`)
---
### `activity_perfil_medico.xml` (125 linhas)
**Usado por:** `PerfilMedicoActivity.java`
Layout vertical com:
1. Ícone de utilizador (100×100dp)
2. MaterialCard com dados do médico (nome, email, especialidade, cédula)
3. Botão "EDITAR DADOS" (preto)
4. Botão "TERMINAR SESSÃO" (contorno vermelho)
5. BottomNavigationView
---
## Layouts de Item (para RecyclerView)
### `item_consulta_medico.xml` (101 linhas)
**Usado por:** `ConsultaAdapter.java`
MaterialCard com cantos arredondados (16dp):
- **Linha superior:** Ícone do utente (circle_bg) + nome + data/hora + status
- **Linha inferior:** Botão "Eliminar" (vermelho, outlined) + Botão "Aceitar" (preenchido)
---
### `item_mensagem.xml` (51 linhas)
**Usado por:** `MensagemAdapter.java`
Cada item tem **dois layouts** (apenas um visível de cada vez):
| Layout | ID | Posição | Estilo |
|---|---|---|---|
| Recebida | `layout_msg_recebida` | Esquerda | `bg_bubble_receive` (texto preto) |
| Enviada | `layout_msg_enviada` | Direita | `bg_bubble_send` (texto branco) |
Largura máxima: 280dp (para não ocupar o ecrã todo)
---
### `item_paciente.xml` (59 linhas)
**Usado por:** `PacienteAdapter.java`
MaterialCard simples com:
- Ícone do paciente (circle_bg, 56×56dp)
- Nome em negrito (18sp)
- Email em cinza (14sp)