This commit is contained in:
2026-04-23 16:04:35 +01:00
parent 350f0bcdad
commit 4955629a30
324 changed files with 6607 additions and 9908 deletions

View File

@@ -1,11 +1,13 @@
#Thu Apr 23 10:27:31 WEST 2026
#Thu Apr 23 16:03:33 WEST 2026
com.example.medcuida.pro.app-main-56\:/drawable-v26/ic_launcher_final.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable-v26_ic_launcher_final.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/bg_bubble_receive.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_bubble_receive.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/bg_bubble_send.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_bubble_send.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/bg_chat_input.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_chat_input.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/bg_gradient_header.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_gradient_header.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/btn_outline_error.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_btn_outline_error.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/btn_outline_primary.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_btn_outline_primary.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/circle_bg.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_circle_bg.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/circle_bg_large.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_circle_bg_large.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/ic_arrow_back.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_arrow_back.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/ic_chat.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_chat.xml.flat
com.example.medcuida.pro.app-main-56\:/drawable/ic_launcher.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_launcher.xml.flat

File diff suppressed because one or more lines are too long

View File

@@ -1,143 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".DetalhePacienteActivity">
<ImageButton
android:id="@+id/btn_sair_detalhe"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_arrow_back"
app:tint="@color/text_primary"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:contentDescription="Sair"
android:elevation="4dp" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/btn_sair_detalhe"
app:layout_constraintBottom_toBottomOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<!-- Card Pessoal -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
app:cardCornerRadius="12dp"
app:cardElevation="2dp"
app:strokeWidth="1dp"
app:strokeColor="#E0E0E0">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Informação Pessoal"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="16dp"/>
<TextView
android:id="@+id/tv_nome_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_idade_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Idade: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_numero_utente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nº Utente: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_sexo_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sexo: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_email_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email: A carregar..."
android:textSize="16sp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!-- Card Clínica -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardElevation="2dp"
app:strokeWidth="1dp"
app:strokeColor="#E0E0E0">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medicação Atual"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="16dp"/>
<TextView
android:id="@+id/tv_medicacao_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A carregar medicação..."
android:textSize="16sp"
android:lineSpacingExtra="4dp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:background="#FAFAFA">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<ImageButton
android:id="@+id/btn_voltar"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_arrow_back"
android:background="?attr/selectableItemBackgroundBorderless"
app:tint="?attr/colorPrimary"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Editar Dados Pessoais"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="#000000"
android:layout_marginTop="16dp"
android:layout_marginBottom="32dp"/>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Nome"
android:inputType="textPersonName"
android:imeOptions="actionNext"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_specialty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Especialidade"
android:inputType="text"
android:imeOptions="actionNext"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Sexo">
<AutoCompleteTextView
android:id="@+id/edit_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="16dp">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="8dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_horario_inicio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Início"
android:focusable="false"
android:clickable="true"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_horario_fim"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Fim"
android:focusable="false"
android:clickable="true"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:hint="Email (Não editável)"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_guardar_alteracoes"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="GUARDAR ALTERAÇÕES"
android:textSize="14sp"
android:textStyle="bold"
app:cornerRadius="28dp"
app:backgroundTint="#000000"
android:textColor="@color/white"/>
</LinearLayout>
</ScrollView>

View File

@@ -0,0 +1,305 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color">
<LinearLayout
android:id="@+id/lay_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingTop="56dp"
android:paddingBottom="40dp"
android:paddingHorizontal="28dp"
android:background="@drawable/bg_gradient_header"
android:elevation="12dp">
<TextView
android:id="@+id/tv_greeting_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Olá"
android:textSize="38sp"
android:fontFamily="sans-serif-black"
android:textColor="@color/white"/>
</LinearLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/lay_top"
android:layout_above="@id/bottom_navigation">
<!-- AGENDA VIEW -->
<LinearLayout
android:id="@+id/view_agenda"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="24dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="24dp"
app:cardElevation="0dp"
app:strokeWidth="1dp"
app:strokeColor="#E5E7EB">
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Widget.CalendarView.Custom"
android:background="@color/white" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/text_agenda_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="As tuas consultas planeadas"
android:textStyle="bold"
android:textSize="20sp"
android:paddingVertical="12dp"
android:textColor="@color/text_primary"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_agenda"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="80dp" />
<TextView
android:id="@+id/text_agenda_vazia"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Não tens consultas agendadas para este dia."
android:gravity="center"
android:visibility="gone"
android:textSize="16sp"
android:textColor="@color/text_secondary"
android:paddingBottom="40dp"/>
</FrameLayout>
</LinearLayout>
<!-- PACIENTES VIEW -->
<LinearLayout
android:id="@+id/view_pacientes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nomes dos Pacientes"
android:textStyle="bold"
android:textSize="26sp"
android:fontFamily="sans-serif-black"
android:paddingVertical="24dp"
android:paddingHorizontal="24dp"
android:textColor="@color/text_primary"/>
<TextView
android:id="@+id/text_empty_state"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Nenhuma consulta marcada."
android:gravity="center"
android:visibility="gone"
android:textSize="18sp"
android:textColor="#9E9E9E" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_consultas"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:clipToPadding="false"
android:paddingTop="8dp"
android:paddingBottom="16dp" />
</LinearLayout>
<!-- ACEITES VIEW -->
<LinearLayout
android:id="@+id/view_aceites"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Consultas"
android:textStyle="bold"
android:textSize="26sp"
android:fontFamily="sans-serif-black"
android:paddingVertical="24dp"
android:paddingHorizontal="24dp"
android:textColor="@color/text_primary"/>
<TextView
android:id="@+id/text_aceites_empty"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Nenhuma consulta encontrada."
android:gravity="center"
android:visibility="gone"
android:textSize="18sp"
android:textColor="@color/text_secondary" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_aceites"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:clipToPadding="false"
android:paddingTop="8dp"
android:paddingBottom="16dp" />
</LinearLayout>
<!-- PERFIL VIEW -->
<LinearLayout
android:id="@+id/view_perfil"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="32dp"
android:paddingVertical="24dp"
android:gravity="center"
android:background="@color/background_color"
android:visibility="gone">
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/ic_user"
android:layout_marginBottom="24dp"
android:background="@drawable/circle_bg_large"
android:padding="24dp"
app:tint="?attr/colorPrimary"/>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
app:cardElevation="0dp"
app:strokeWidth="1dp"
app:strokeColor="#E5E7EB"
app:cardCornerRadius="24dp"
app:cardBackgroundColor="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="32dp"
android:paddingBottom="32dp"
android:paddingHorizontal="24dp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/tv_nome_medico"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome do Utilizador"
android:textSize="22sp"
android:fontFamily="sans-serif-black"
android:textColor="@color/text_primary"
android:layout_marginBottom="4dp"/>
<TextView
android:id="@+id/tv_email_medico"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="email@exemplo.com"
android:textColor="@color/text_secondary"
android:textSize="16sp"
android:layout_marginBottom="24dp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#F3F4F6"
android:layout_marginBottom="24dp"
android:layout_marginHorizontal="16dp"/>
<TextView
android:id="@+id/tv_especialidade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Especialidade: --"
android:textColor="@color/text_primary"
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_cedula"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Género: --"
android:textColor="@color/text_primary"
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_horario_perfil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Horário: --"
android:textColor="@color/text_primary"
android:textSize="16sp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_editar_dados"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="EDITAR DADOS"
android:textSize="15sp"
android:textStyle="bold"
app:cornerRadius="30dp"
app:backgroundTint="?attr/colorPrimary"
android:textColor="@color/white"
android:layout_marginBottom="16dp"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_logout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="TERMINAR SESSÃO"
android:textSize="15sp"
android:textStyle="bold"
app:cornerRadius="30dp"
app:strokeColor="@color/error_color"
app:strokeWidth="1.5dp"
app:backgroundTint="@color/background_color"
android:textColor="@color/error_color"/>
</LinearLayout>
</FrameLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="?android:attr/windowBackground"
app:menu="@menu/menu_bottom"
app:labelVisibilityMode="labeled" />
</RelativeLayout>

View File

@@ -1,11 +1,13 @@
#Thu Apr 23 10:27:31 WEST 2026
#Thu Apr 23 16:03:33 WEST 2026
com.example.medcuida.pro.app-main-6\:/drawable-v26/ic_launcher_final.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable-v26/ic_launcher_final.xml
com.example.medcuida.pro.app-main-6\:/drawable/bg_bubble_receive.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/bg_bubble_receive.xml
com.example.medcuida.pro.app-main-6\:/drawable/bg_bubble_send.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/bg_bubble_send.xml
com.example.medcuida.pro.app-main-6\:/drawable/bg_chat_input.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/bg_chat_input.xml
com.example.medcuida.pro.app-main-6\:/drawable/bg_gradient_header.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/bg_gradient_header.xml
com.example.medcuida.pro.app-main-6\:/drawable/btn_outline_error.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/btn_outline_error.xml
com.example.medcuida.pro.app-main-6\:/drawable/btn_outline_primary.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/btn_outline_primary.xml
com.example.medcuida.pro.app-main-6\:/drawable/circle_bg.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/circle_bg.xml
com.example.medcuida.pro.app-main-6\:/drawable/circle_bg_large.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/circle_bg_large.xml
com.example.medcuida.pro.app-main-6\:/drawable/ic_arrow_back.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_arrow_back.xml
com.example.medcuida.pro.app-main-6\:/drawable/ic_chat.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_chat.xml
com.example.medcuida.pro.app-main-6\:/drawable/ic_launcher.xml=/Users/230405/Desktop/med Cuida+/app/build/intermediates/packaged_res/debug/packageDebugResources/drawable/ic_launcher.xml

File diff suppressed because one or more lines are too long

View File

@@ -1,143 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".DetalhePacienteActivity">
<ImageButton
android:id="@+id/btn_sair_detalhe"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_margin="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_arrow_back"
app:tint="@color/text_primary"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:contentDescription="Sair"
android:elevation="4dp" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/btn_sair_detalhe"
app:layout_constraintBottom_toBottomOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<!-- Card Pessoal -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
app:cardCornerRadius="12dp"
app:cardElevation="2dp"
app:strokeWidth="1dp"
app:strokeColor="#E0E0E0">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Informação Pessoal"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="16dp"/>
<TextView
android:id="@+id/tv_nome_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_idade_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Idade: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_numero_utente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nº Utente: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_sexo_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sexo: A carregar..."
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_email_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email: A carregar..."
android:textSize="16sp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<!-- Card Clínica -->
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardElevation="2dp"
app:strokeWidth="1dp"
app:strokeColor="#E0E0E0">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Medicação Atual"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="?attr/colorPrimary"
android:layout_marginBottom="16dp"/>
<TextView
android:id="@+id/tv_medicacao_paciente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A carregar medicação..."
android:textSize="16sp"
android:lineSpacingExtra="4dp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:background="#FAFAFA">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<ImageButton
android:id="@+id/btn_voltar"
android:layout_width="48dp"
android:layout_height="48dp"
android:src="@drawable/ic_arrow_back"
android:background="?attr/selectableItemBackgroundBorderless"
app:tint="?attr/colorPrimary"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Editar Dados Pessoais"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="#000000"
android:layout_marginTop="16dp"
android:layout_marginBottom="32dp"/>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Nome"
android:inputType="textPersonName"
android:imeOptions="actionNext"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_specialty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Especialidade"
android:inputType="text"
android:imeOptions="actionNext"
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Sexo">
<AutoCompleteTextView
android:id="@+id/edit_gender"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="16dp">
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="8dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_horario_inicio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Início"
android:focusable="false"
android:clickable="true"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_horario_fim"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Fim"
android:focusable="false"
android:clickable="true"
android:inputType="none" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/edit_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:hint="Email (Não editável)"
android:inputType="textEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_guardar_alteracoes"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="GUARDAR ALTERAÇÕES"
android:textSize="14sp"
android:textStyle="bold"
app:cornerRadius="28dp"
app:backgroundTint="#000000"
android:textColor="@color/white"/>
</LinearLayout>
</ScrollView>

View File

@@ -0,0 +1,305 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color">
<LinearLayout
android:id="@+id/lay_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingTop="56dp"
android:paddingBottom="40dp"
android:paddingHorizontal="28dp"
android:background="@drawable/bg_gradient_header"
android:elevation="12dp">
<TextView
android:id="@+id/tv_greeting_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Olá"
android:textSize="38sp"
android:fontFamily="sans-serif-black"
android:textColor="@color/white"/>
</LinearLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/lay_top"
android:layout_above="@id/bottom_navigation">
<!-- AGENDA VIEW -->
<LinearLayout
android:id="@+id/view_agenda"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="24dp">
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="24dp"
app:cardElevation="0dp"
app:strokeWidth="1dp"
app:strokeColor="#E5E7EB">
<CalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/Widget.CalendarView.Custom"
android:background="@color/white" />
</com.google.android.material.card.MaterialCardView>
<TextView
android:id="@+id/text_agenda_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="As tuas consultas planeadas"
android:textStyle="bold"
android:textSize="20sp"
android:paddingVertical="12dp"
android:textColor="@color/text_primary"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_agenda"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="80dp" />
<TextView
android:id="@+id/text_agenda_vazia"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Não tens consultas agendadas para este dia."
android:gravity="center"
android:visibility="gone"
android:textSize="16sp"
android:textColor="@color/text_secondary"
android:paddingBottom="40dp"/>
</FrameLayout>
</LinearLayout>
<!-- PACIENTES VIEW -->
<LinearLayout
android:id="@+id/view_pacientes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Nomes dos Pacientes"
android:textStyle="bold"
android:textSize="26sp"
android:fontFamily="sans-serif-black"
android:paddingVertical="24dp"
android:paddingHorizontal="24dp"
android:textColor="@color/text_primary"/>
<TextView
android:id="@+id/text_empty_state"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Nenhuma consulta marcada."
android:gravity="center"
android:visibility="gone"
android:textSize="18sp"
android:textColor="#9E9E9E" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_consultas"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:clipToPadding="false"
android:paddingTop="8dp"
android:paddingBottom="16dp" />
</LinearLayout>
<!-- ACEITES VIEW -->
<LinearLayout
android:id="@+id/view_aceites"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Consultas"
android:textStyle="bold"
android:textSize="26sp"
android:fontFamily="sans-serif-black"
android:paddingVertical="24dp"
android:paddingHorizontal="24dp"
android:textColor="@color/text_primary"/>
<TextView
android:id="@+id/text_aceites_empty"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Nenhuma consulta encontrada."
android:gravity="center"
android:visibility="gone"
android:textSize="18sp"
android:textColor="@color/text_secondary" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_aceites"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:clipToPadding="false"
android:paddingTop="8dp"
android:paddingBottom="16dp" />
</LinearLayout>
<!-- PERFIL VIEW -->
<LinearLayout
android:id="@+id/view_perfil"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="32dp"
android:paddingVertical="24dp"
android:gravity="center"
android:background="@color/background_color"
android:visibility="gone">
<ImageView
android:layout_width="120dp"
android:layout_height="120dp"
android:src="@drawable/ic_user"
android:layout_marginBottom="24dp"
android:background="@drawable/circle_bg_large"
android:padding="24dp"
app:tint="?attr/colorPrimary"/>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
app:cardElevation="0dp"
app:strokeWidth="1dp"
app:strokeColor="#E5E7EB"
app:cardCornerRadius="24dp"
app:cardBackgroundColor="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="32dp"
android:paddingBottom="32dp"
android:paddingHorizontal="24dp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/tv_nome_medico"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome do Utilizador"
android:textSize="22sp"
android:fontFamily="sans-serif-black"
android:textColor="@color/text_primary"
android:layout_marginBottom="4dp"/>
<TextView
android:id="@+id/tv_email_medico"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="email@exemplo.com"
android:textColor="@color/text_secondary"
android:textSize="16sp"
android:layout_marginBottom="24dp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#F3F4F6"
android:layout_marginBottom="24dp"
android:layout_marginHorizontal="16dp"/>
<TextView
android:id="@+id/tv_especialidade"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Especialidade: --"
android:textColor="@color/text_primary"
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_cedula"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Género: --"
android:textColor="@color/text_primary"
android:textSize="16sp"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tv_horario_perfil"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Horário: --"
android:textColor="@color/text_primary"
android:textSize="16sp"/>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_editar_dados"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="EDITAR DADOS"
android:textSize="15sp"
android:textStyle="bold"
app:cornerRadius="30dp"
app:backgroundTint="?attr/colorPrimary"
android:textColor="@color/white"
android:layout_marginBottom="16dp"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_logout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="TERMINAR SESSÃO"
android:textSize="15sp"
android:textStyle="bold"
app:cornerRadius="30dp"
app:strokeColor="@color/error_color"
app:strokeWidth="1.5dp"
app:backgroundTint="@color/background_color"
android:textColor="@color/error_color"/>
</LinearLayout>
</FrameLayout>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="?android:attr/windowBackground"
app:menu="@menu/menu_bottom"
app:labelVisibilityMode="labeled" />
</RelativeLayout>

View File

@@ -1,4 +1,4 @@
#Thu Apr 23 10:28:32 WEST 2026
#Thu Apr 23 16:03:34 WEST 2026
base.0=/Users/230405/Desktop/med Cuida+/app/build/intermediates/dex/debug/mergeExtDexDebug/classes.dex
base.1=/Users/230405/Desktop/med Cuida+/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex
base.2=/Users/230405/Desktop/med Cuida+/app/build/intermediates/dex/debug/mergeProjectDexDebug/11/classes.dex

File diff suppressed because one or more lines are too long