Correção de bugs e melhoramento de design

This commit is contained in:
2026-05-11 17:17:56 +01:00
parent 53c5839750
commit 57372a5379
27 changed files with 1657 additions and 935 deletions

View File

@@ -0,0 +1,153 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 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/fundo_app"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="32dp">
<ImageView
android:id="@+id/btnVoltarPassword"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_arrow_back"
app:tint="@color/texto_principal"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Segurança"
android:textColor="@color/texto_principal"
android:textSize="28sp"
android:textStyle="bold"/>
</LinearLayout>
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_lock"
app:tint="@color/tech_accent_cyan"
android:layout_marginBottom="16dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Muda a tua palavra-passe regularmente para manteres a tua conta Finzora segura."
android:textAlignment="center"
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:layout_marginBottom="32dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Palavra-passe Atual"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
android:layout_marginBottom="24dp">
<EditText
android:id="@+id/editPasswordAtual"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:padding="16dp"
android:hint="••••••••"
android:textColorHint="@color/text_secondary"
android:inputType="textPassword"/>
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nova Palavra-passe"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
android:layout_marginBottom="16dp">
<EditText
android:id="@+id/editPasswordNova"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:padding="16dp"
android:hint="Pelo menos 6 caracteres"
android:textColorHint="@color/text_secondary"
android:inputType="textPassword"/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
android:layout_marginBottom="32dp">
<EditText
android:id="@+id/editPasswordConfirmar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:padding="16dp"
android:hint="Repetir nova palavra-passe"
android:textColorHint="@color/text_secondary"
android:inputType="textPassword"/>
</androidx.cardview.widget.CardView>
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="16dp"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnGuardarPassword"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="Atualizar Palavra-passe"
android:textColor="@color/texto_dinamico"
android:textSize="16sp"
android:textStyle="bold"
app:cornerRadius="16dp"
app:backgroundTint="@color/tech_accent_cyan" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -1,117 +1,352 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<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:orientation="vertical"
android:padding="24dp"
android:background="@color/fundo_app">
android:background="@color/fundo_app"
tools:context=".DefinicoesActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbarDefinicoes"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/fundo_app"
android:elevation="0dp"
app:layout_constraintTop_toTopOf="parent"
app:navigationIcon="@drawable/ic_arrow_back"
app:title="Definições"
app:titleTextColor="@color/texto_principal" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintBottom_toTopOf="@+id/buttonContainer"
app:layout_constraintTop_toBottomOf="@+id/toolbarDefinicoes">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:text="A Tua Conta"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/itemEditarPerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_edit_profile"
app:tint="@color/texto_principal" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Editar Perfil"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alterar nome, email..."
android:textColor="@color/text_secondary"
android:textSize="12sp" />
</LinearLayout>
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/ic_chevron_right"
app:tint="@color/text_secondary" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:text="Preferências e Segurança"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_moon"
app:tint="@color/texto_principal" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:text="Modo Escuro"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switchModoEscuro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:thumbTint="@color/tech_accent_cyan"
app:trackTint="@color/tech_accent_cyan" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/linha_separadora" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_fingerprint"
app:tint="@color/texto_principal" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:text="Bloqueio Biométrico"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switchBiometria"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:thumbTint="@color/tech_accent_cyan"
app:trackTint="@color/tech_accent_cyan" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/linha_separadora" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_bell"
app:tint="@color/texto_principal" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:text="Ativar Notificações"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switchNotificacoes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:thumbTint="@color/tech_accent_cyan"
app:trackTint="@color/tech_accent_cyan" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:text="Ajuda"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/itemCentroSuporte"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_support"
app:tint="@color/texto_principal" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:text="Centro de Suporte"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@drawable/ic_chevron_right"
app:tint="@color/text_secondary" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:id="@+id/buttonContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="32dp">
android:background="@color/fundo_app"
android:orientation="vertical"
android:paddingHorizontal="20dp"
android:paddingTop="8dp"
android:paddingBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent">
<TextView
android:id="@+id/btnVoltarDefinicoes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="←"
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginBottom="16dp"
android:background="@color/linha_separadora" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnTerminarSessao"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginBottom="12dp"
android:text="Terminar Sessão"
android:textAllCaps="false"
android:textColor="@color/texto_principal"
android:textSize="32sp"
android:textSize="16sp"
android:textStyle="bold"
android:paddingEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"/>
app:cornerRadius="16dp"
app:icon="@drawable/ic_logout"
app:iconGravity="textStart"
app:iconTint="@color/texto_principal"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Definições"
android:textColor="@color/texto_principal"
android:textSize="28sp"
android:textStyle="bold"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnApagarConta"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="Apagar Conta e Dados"
android:textAllCaps="false"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
app:backgroundTint="@color/tech_accent_red"
app:cornerRadius="16dp"
app:icon="@drawable/ic_delete_forever"
app:iconGravity="textStart"
app:iconTint="@color/white"
app:rippleColor="@color/white" />
</LinearLayout>
<TextView
android:id="@+id/btnEditarPerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Editar Perfil"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:paddingVertical="16dp"
android:background="?attr/selectableItemBackground"/>
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/linha_separadora" />
<Switch
android:id="@+id/switchModoEscuro"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Modo Escuro"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:paddingVertical="16dp" />
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/linha_separadora" />
<Switch
android:id="@+id/switchBiometria"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Bloqueio por Biometria"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:paddingVertical="16dp" />
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/linha_separadora" />
<Switch
android:id="@+id/switchNotificacoes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ativar Notificações"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:paddingVertical="16dp" />
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/linha_separadora" />
<TextView
android:id="@+id/btnSuporte"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Centro de Suporte"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:paddingVertical="16dp"
android:background="?attr/selectableItemBackground"/>
<View android:layout_width="match_parent" android:layout_height="1dp" android:background="@color/linha_separadora" android:layout_marginBottom="32dp" />
<Button
android:id="@+id/btnTerminarSessao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Terminar Sessão"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:padding="16dp"
app:cornerRadius="8dp"
android:backgroundTint="#424242" />
<Button
android:id="@+id/btnEliminarConta"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Apagar Conta e Dados"
android:textColor="#FFFFFF"
android:textStyle="bold"
android:padding="16dp"
android:layout_marginTop="12dp"
app:cornerRadius="8dp"
android:backgroundTint="#FF1744" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,96 +1,177 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.core.widget.NestedScrollView 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:orientation="vertical"
android:padding="24dp"
android:background="@color/bg_dinamico">
android:background="@color/fundo_app"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="40dp">
android:orientation="vertical"
android:padding="24dp">
<TextView
android:id="@+id/btnVoltarEditarPerfil"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="32dp">
<ImageView
android:id="@+id/btnVoltarEditarPerfil"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_arrow_back"
app:tint="@color/texto_principal"
android:layout_marginEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Editar Perfil"
android:textColor="@color/texto_principal"
android:textSize="28sp"
android:textStyle="bold"/>
</LinearLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="←"
android:textColor="@color/texto_dinamico"
android:textSize="32sp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="32dp">
<ImageView
android:id="@+id/imgFotoPerfil"
android:layout_width="120dp"
android:layout_height="120dp"
android:background="@drawable/bg_circle_icon"
android:src="@android:drawable/ic_menu_camera"
android:scaleType="centerCrop" />
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="bottom|end"
android:background="@drawable/bg_circle_icon"
android:backgroundTint="@color/tech_accent_cyan"
android:src="@android:drawable/ic_menu_camera"
android:padding="8dp"
app:tint="@color/texto_dinamico"
android:elevation="4dp"/>
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dados Pessoais"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:paddingEnd="16dp"
android:background="?attr/selectableItemBackgroundBorderless"/>
android:layout_marginBottom="12dp"/>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
android:layout_marginBottom="16dp">
<EditText
android:id="@+id/editNomePerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:padding="16dp"
android:hint="O teu nome"
android:textColorHint="@color/text_secondary"/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
android:layout_marginBottom="16dp">
<EditText
android:id="@+id/editEmailPerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:padding="16dp"
android:hint="O teu email"
android:textColorHint="@color/text_secondary"
android:inputType="textEmailAddress"/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
android:layout_marginBottom="32dp">
<EditText
android:id="@+id/editTelemovelPerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:padding="16dp"
android:hint="Telemóvel (Opcional)"
android:textColorHint="@color/text_secondary"
android:inputType="phone"/>
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Editar Perfil"
android:text="Segurança"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="12dp"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnAlterarPassword"
style="@style/Widget.Material3.Button.OutlinedButton"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginBottom="32dp"
android:text="Alterar Palavra-passe"
android:textAllCaps="false"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"
app:cornerRadius="12dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp" />
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="16dp"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/btnGuardarPerfil"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="Guardar Alterações"
android:textColor="@color/texto_dinamico"
android:textSize="28sp"
android:textStyle="bold"/>
android:textSize="16sp"
android:textStyle="bold"
app:cornerRadius="16dp"
app:backgroundTint="@color/tech_accent_cyan" />
</LinearLayout>
<ImageView
android:id="@+id/imgFotoPerfil"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_circle_icon"
android:src="@android:drawable/ic_menu_camera"
android:scaleType="centerCrop"
android:layout_marginBottom="32dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Nome"
android:textColor="@color/texto_dinamico"
android:textSize="14sp"
android:layout_marginBottom="8dp"/>
<EditText
android:id="@+id/editNomePerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#2D3748"
android:textColor="#FFFFFF"
android:padding="16dp"
android:hint="O teu nome"
android:textColorHint="#718096"
android:layout_marginBottom="24dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email"
android:textColor="@color/texto_dinamico"
android:textSize="14sp"
android:layout_marginBottom="8dp"/>
<EditText
android:id="@+id/editEmailPerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#2D3748"
android:textColor="#FFFFFF"
android:padding="16dp"
android:hint="O teu email"
android:textColorHint="#718096"
android:inputType="textEmailAddress"
android:layout_marginBottom="40dp"/>
<Button
android:id="@+id/btnGuardarPerfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Guardar Alterações"
android:textColor="#1A202C"
android:textStyle="bold"
android:padding="16dp"
app:cornerRadius="8dp"
android:backgroundTint="#00E676" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -11,38 +11,40 @@
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp">
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingHorizontal="24dp"
android:paddingTop="32dp"
android:paddingBottom="24dp">
<ImageView
android:id="@+id/imgLogo"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/bg_circle_icon"
android:padding="8dp"
android:backgroundTint="@color/tech_accent_cyan"
android:padding="12dp"
android:src="@android:drawable/ic_menu_gallery"
app:tint="@color/white"
android:scaleType="centerCrop" />
app:tint="#1A202C" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:layout_toEndOf="@id/imgLogo"
android:layout_centerVertical="true"
android:layout_marginStart="12dp">
android:layout_marginStart="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FINZORA"
android:textColor="@color/tech_accent_cyan"
android:textSize="18sp"
android:textStyle="bold"/>
android:textSize="12sp"
android:textStyle="bold"
android:letterSpacing="0.1"/>
<TextView
android:id="@+id/tvNomeUsuario"
@@ -50,52 +52,40 @@
android:layout_height="wrap_content"
android:text="Olá, Investidor"
android:textColor="@color/texto_principal"
android:textSize="14sp"/>
android:textSize="22sp"
android:textStyle="bold"/>
</LinearLayout>
<ImageView
android:id="@+id/btnAbrirDefinicoes"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_toStartOf="@id/btnExportarPDF"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
android:src="@drawable/ic_settings_pap"
app:tint="@color/tech_accent_cyan"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Definições" />
<ImageView
android:id="@+id/btnExportarPDF"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_toStartOf="@id/btnSair"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
android:layout_width="44dp"
android:layout_height="44dp"
android:padding="10dp"
android:layout_marginEnd="8dp"
android:src="@android:drawable/ic_menu_save"
app:tint="@color/tech_accent_cyan"
app:tint="@color/texto_principal"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Exportar Relatório" />
<Button
android:id="@+id/btnSair"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:text="Sair"
android:textColor="#FFFFFF"
android:backgroundTint="#FF1744"
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
app:cornerRadius="8dp"/>
</RelativeLayout>
<ImageView
android:id="@+id/btnAbrirDefinicoes"
android:layout_width="44dp"
android:layout_height="44dp"
android:padding="10dp"
android:src="@drawable/ic_settings_pap"
app:tint="@color/texto_principal"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Definições" />
</LinearLayout>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="20dp"
android:paddingEnd="20dp"
android:clipToPadding="false">
android:paddingStart="24dp"
android:paddingEnd="24dp"
android:clipToPadding="false"
android:scrollbars="none">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -110,18 +100,21 @@
android:id="@+id/tabLayoutDashboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginTop="24dp"
android:layout_marginHorizontal="24dp"
android:background="@android:color/transparent"
app:tabTextColor="@color/texto_principal"
app:tabTextColor="@color/text_secondary"
app:tabSelectedTextColor="@color/tech_accent_cyan"
app:tabIndicatorColor="@color/tech_accent_cyan"
app:tabMode="scrollable"/>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
app:tabIndicatorHeight="3dp"
app:tabIndicatorFullWidth="false"
app:tabGravity="fill"
app:tabMode="scrollable"/> <androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="8dp"/>
</LinearLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
@@ -132,7 +125,9 @@
android:layout_margin="24dp"
android:src="@android:drawable/ic_input_add"
app:backgroundTint="@color/tech_accent_cyan"
app:tint="@color/black"
app:elevation="6dp"/>
app:tint="#1A202C"
app:elevation="4dp"
app:fabSize="normal"
android:contentDescription="Adicionar Transação"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -1,313 +1,324 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.core.widget.NestedScrollView 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="?android:attr/windowBackground">
android:background="@color/fundo_app"
android:fillViewport="true">
<LinearLayout
android:id="@+id/layoutEstadoVazioDicas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone">
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="📊"
android:textSize="60sp" />
android:text="Conselheiro Inteligente"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="12dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Sem dados para analisar"
android:textColor="?android:attr/textColorPrimary"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:gravity="center"
android:paddingHorizontal="32dp"
android:text="Adiciona transações para receberes conselhos da nossa Inteligência Artificial."
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp" />
</LinearLayout>
<ScrollView
android:id="@+id/layoutConteudoDicas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:padding="16dp"
android:scrollbars="none">
<LinearLayout
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="20dp"
app:cardElevation="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="🤖 Finzora AI Coach"
android:textColor="@color/tech_accent_cyan"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvRespostaAI"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Olá! Já analisei os teus dados. Pergunta-me qualquer coisa sobre como poupar ou investir."
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/bg_search_bar"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="12dp"
android:paddingVertical="4dp">
<EditText
android:id="@+id/editPerguntaAI"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@null"
android:hint="Pede uma dica tática..."
android:textColor="?android:attr/textColorPrimary"
android:textColorHint="?android:attr/textColorSecondary"
android:textSize="14sp" />
<ImageButton
android:id="@+id/btnEnviarAI"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@android:drawable/ic_menu_send"
app:tint="@color/tech_accent_cyan" />
</LinearLayout>
<ProgressBar
android:id="@+id/pbCarregandoAI"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:visibility="gone" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="16dp"
app:cardElevation="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Taxa de Poupança"
android:textColor="?android:attr/textColorPrimary"
android:textStyle="bold" />
<TextView
android:id="@+id/tvTaxaPoupanca"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0%"
android:textColor="#00E676"
android:textStyle="bold" />
</LinearLayout>
<ProgressBar
android:id="@+id/progressPoupanca"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_marginTop="8dp"
android:max="100"
android:progress="0"
android:progressTint="#00E676" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tvDicasReceitas"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="€ 0.00"
android:textColor="#00E676"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDicasDespesas"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="€ 0.00"
android:textColor="#FF1744"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tvTituloDica1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A Regra 50/30/20 ⚖️"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDescDica1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="A calcular a tua distribuição de riqueza..."
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tvTituloDica2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Radar de Orçamentos 🎯"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDescDica2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="A verificar limites..."
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tvTituloDica3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ritmo de Gastos 🏃‍♂️"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDescDica3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="A calcular a tua velocidade de gastos..."
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:text="Top Despesas"
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp"
android:textStyle="bold" />
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
app:strokeColor="@color/tech_accent_cyan"
app:strokeWidth="1dp"
android:layout_marginBottom="24dp">
<LinearLayout
android:id="@+id/layoutDistribuicao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
android:orientation="vertical"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="12dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@drawable/ic_support"
app:tint="@color/tech_accent_cyan" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Finzora AI Coach"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginStart="8dp"/>
<View android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1"/>
<ImageView
android:layout_width="10dp"
android:layout_height="10dp"
android:src="@drawable/bg_circle_icon"
app:tint="#00E676"/>
</LinearLayout>
<TextView
android:id="@+id/tvRespostaAI"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Olá! Já analisei os teus dados de hoje. Pergunta-me qualquer coisa sobre como otimizar o teu dinheiro."
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:lineSpacingExtra="4dp"
android:layout_marginBottom="16dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal"
android:background="@drawable/bg_search_bar"
android:gravity="center_vertical"
android:paddingHorizontal="12dp">
<EditText
android:id="@+id/editPerguntaAI"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:hint="Pede uma dica tática..."
android:textColorHint="@color/text_secondary"
android:textColor="@color/texto_principal"
android:textSize="14sp"/>
<ImageView
android:id="@+id/btnEnviarAI"
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_send"
app:tint="@color/tech_accent_cyan"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"/>
</LinearLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Diagnóstico da Máquina"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="12dp"/>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
android:layout_marginBottom="12dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Taxa de Poupança"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"/>
<View android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1"/>
<TextView
android:id="@+id/tvTaxaPoupancaValor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.0%"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"/>
</LinearLayout>
<ProgressBar
android:id="@+id/progressPoupanca"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="8dp"
android:max="100"
android:progress="0"
android:progressTint="#00E676"
android:progressBackgroundTint="@color/linha_separadora"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tvReceitasResumo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="€ 0.00"
android:textColor="#00E676"
android:textSize="12sp"
android:textStyle="bold"/>
<View android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1"/>
<TextView
android:id="@+id/tvDespesasResumo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="€ 0.00"
android:textColor="#FF1744"
android:textSize="12sp"
android:textStyle="bold"/>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
android:layout_marginBottom="12dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tvTituloDica1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A calcular..."
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tvDescDica1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Aguarde enquanto analisamos os teus movimentos."
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:lineSpacingExtra="4dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
android:layout_marginBottom="12dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tvTituloDica2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A calcular..."
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tvDescDica2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="A analisar limites estabelecidos..."
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:lineSpacingExtra="4dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
android:layout_marginBottom="24dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/tvTituloDica3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A calcular..."
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/tvDescDica3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="A prever gastos até ao fim do mês..."
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:lineSpacingExtra="4dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Top Despesas"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="12dp"/>
<LinearLayout
android:id="@+id/layoutDistribuicao"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="20dp">
</LinearLayout>
</ScrollView>
</FrameLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -3,111 +3,170 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_dinamico">
android:background="@color/fundo_app">
<ScrollView
<androidx.core.widget.NestedScrollView
android:id="@+id/scrollviewGraficos"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="20dp">
<androidx.cardview.widget.CardView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Terminal de Análise"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="16dp"/>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:layout_marginBottom="20dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Distribuição de Despesas"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginBottom="16dp"/>
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="24dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_compass"
app:tint="@color/tech_accent_cyan" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="Distribuição de Despesas"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/pieChartDespesas"
android:layout_width="match_parent"
android:layout_height="300dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>
<androidx.cardview.widget.CardView
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:layout_marginBottom="20dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Orçamento vs Gasto"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginBottom="16dp"/>
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="24dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_sort_by_size"
app:tint="@color/tech_accent_cyan" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="Orçamento vs Gasto Real"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barChartOrcamento"
android:layout_width="match_parent"
android:layout_height="300dp"/>
android:layout_height="280dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>
<androidx.cardview.widget.CardView
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:layout_marginBottom="80dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="16dp"
app:cardElevation="2dp">
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Tendência de Gastos"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginBottom="16dp"/>
android:orientation="horizontal"
android:gravity="center_vertical"
android:layout_marginBottom="24dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:src="@android:drawable/ic_menu_month"
app:tint="@color/tech_accent_cyan" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="Balanço (Tendência)"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barChartTendencia"
android:layout_width="match_parent"
android:layout_height="300dp"/>
android:layout_height="250dp"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</ScrollView>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:id="@+id/layoutEstadoVazioGraficos"
@@ -116,32 +175,32 @@
android:orientation="vertical"
android:gravity="center"
android:visibility="gone"
android:padding="32dp">
android:padding="40dp">
<com.airbnb.lottie.LottieAnimationView
android:layout_width="250dp"
android:layout_height="250dp"
app:lottie_rawRes="@raw/anim_grafico_vazio"
app:lottie_autoPlay="true"
app:lottie_loop="true"/>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@android:drawable/ic_menu_sort_by_size"
app:tint="@color/text_secondary"
android:alpha="0.3"
android:layout_marginBottom="24dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="À espera de dados! 📊"
android:text="Terminal inativo"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="@color/texto_principal"
android:layout_marginTop="16dp"/>
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regista as tuas primeiras transações para veres a magia dos gráficos acontecer."
android:textSize="15sp"
android:text="A aguardar a introdução de dados financeiros para gerar análises e projeções."
android:textSize="14sp"
android:textAlignment="center"
android:textColor="?android:attr/textColorSecondary"
android:layout_marginTop="8dp"/>
android:textColor="@color/text_secondary"/>
</LinearLayout>
</FrameLayout>

View File

@@ -3,18 +3,17 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_dinamico">
android:background="@color/fundo_app">
<!-- Lista onde vão aparecer os Cofres -->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerObjetivos"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"
android:paddingHorizontal="16dp"
android:paddingTop="16dp"
android:clipToPadding="false"
android:paddingBottom="80dp"/>
android:paddingBottom="100dp"/>
<!-- Mensagem quando não há objetivos -->
<LinearLayout
android:id="@+id/layoutObjetivosVazios"
android:layout_width="wrap_content"
@@ -22,25 +21,35 @@
android:layout_centerInParent="true"
android:orientation="vertical"
android:gravity="center"
android:visibility="gone">
android:visibility="gone"
android:padding="32dp">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/ic_lazer"
app:tint="#A0AEC0"
android:layout_marginBottom="16dp"/>
app:tint="@color/text_secondary"
android:layout_marginBottom="16dp"
android:alpha="0.4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sem objetivos definidos."
android:textColor="#A0AEC0"
android:textSize="16sp"
android:text="Sem objetivos definidos"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:textStyle="bold"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cria o teu primeiro cofre financeiro e começa a poupar para os teus sonhos."
android:textColor="@color/text_secondary"
android:textSize="14sp"
android:textAlignment="center"
android:layout_marginTop="8dp"/>
</LinearLayout>
<!-- Botão de Adicionar Objetivo -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fabAdicionarObjetivo"
android:layout_width="wrap_content"
@@ -49,8 +58,8 @@
android:layout_alignParentEnd="true"
android:layout_margin="24dp"
android:src="@android:drawable/ic_input_add"
app:tint="#FFFFFF"
app:backgroundTint="#00B8D4"
app:elevation="6dp"/>
app:tint="#1A202C"
app:backgroundTint="@color/tech_accent_cyan"
app:elevation="4dp"/>
</RelativeLayout>

View File

@@ -4,31 +4,34 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?android:attr/windowBackground"
android:padding="16dp">
android:background="@color/fundo_app"
android:padding="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Planeamento de Orçamento"
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp"
android:text="Planeamento Estratégico"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="12dp"/>
<androidx.cardview.widget.CardView
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="16dp"
app:cardElevation="2dp"
android:layout_marginBottom="16dp">
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp"
android:layout_marginBottom="24dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="20dp">
<LinearLayout
android:layout_width="match_parent"
@@ -41,79 +44,86 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:layout_marginEnd="8dp">
android:layout_marginEnd="12dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Categoria"
android:textColor="?android:attr/textColorSecondary"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:layout_marginBottom="4dp"/>
android:layout_marginBottom="8dp"/>
<TextView
android:id="@+id/txtCategoriaOrcamento"
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_height="50dp"
android:text="Selecionar..."
android:textColor="?android:attr/textColorPrimary"
android:textColor="@color/texto_principal"
android:textSize="14sp"
android:gravity="center_vertical"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:background="@drawable/bg_coach_input_rect" />
android:paddingHorizontal="16dp"
android:background="@drawable/bg_search_bar" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:layout_marginStart="8dp">
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Limite (€)"
android:textColor="?android:attr/textColorSecondary"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:layout_marginBottom="4dp"/>
android:layout_marginBottom="8dp"/>
<EditText
android:id="@+id/editLimiteOrcamento"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:hint="0.00"
android:textColor="?android:attr/textColorPrimary"
android:textColorHint="?android:attr/textColorSecondary"
android:inputType="numberDecimal"
android:backgroundTint="@color/tech_accent_cyan"
android:paddingStart="4dp"
android:textSize="16sp" />
android:layout_height="50dp"
android:background="@drawable/bg_search_bar"
android:gravity="center_vertical"
android:paddingHorizontal="12dp">
<EditText
android:id="@+id/editLimiteOrcamento"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="0.00"
android:background="@android:color/transparent"
android:textColor="@color/texto_principal"
android:textColorHint="@color/text_secondary"
android:inputType="numberDecimal"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btnDefinirOrcamento"
android:layout_width="match_parent"
android:layout_height="45dp"
android:text="Definir Orçamento"
android:textColor="#1A202C"
android:layout_height="56dp"
android:text="Ativar Orçamento"
android:textColor="@color/texto_dinamico"
android:textSize="14sp"
android:textStyle="bold"
android:layout_marginTop="16dp"
app:cornerRadius="8dp"
android:layout_marginTop="20dp"
app:cornerRadius="16dp"
app:backgroundTint="@color/tech_accent_cyan" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Orçamentos Ativos"
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp"
android:textAllCaps="true"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
android:layout_marginBottom="12dp"/>
<FrameLayout
android:layout_width="match_parent"
@@ -123,7 +133,9 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerOrcamentos"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="80dp"/>
<LinearLayout
android:id="@+id/layoutEstadoVazioOrcamento"
@@ -132,33 +144,32 @@
android:orientation="vertical"
android:gravity="center"
android:visibility="gone"
android:padding="16dp">
android:padding="32dp">
<com.airbnb.lottie.LottieAnimationView
android:layout_width="150dp"
android:layout_height="150dp"
app:lottie_rawRes="@raw/anim_vazio"
app:lottie_autoPlay="true"
app:lottie_loop="true"/>
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/ic_alimentacao"
app:tint="@color/text_secondary"
android:alpha="0.3"
android:layout_marginBottom="16dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sem limites definidos!"
android:textSize="16sp"
android:text="Sem limites definidos"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="?android:attr/textColorPrimary"
android:layout_marginTop="8dp"/>
android:textColor="@color/texto_principal"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Usa o cartão acima para definir objetivos."
android:text="Usa o painel acima para definir limites de gastos por categoria."
android:textSize="14sp"
android:textAlignment="center"
android:textColor="?android:attr/textColorSecondary"
android:layout_marginTop="4dp"/>
android:textColor="@color/text_secondary"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>

View File

@@ -4,38 +4,45 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/bg_dinamico">
android:background="@color/fundo_app">
<LinearLayout
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
android:background="@drawable/bg_search_bar"
android:orientation="horizontal"
android:padding="12dp"
android:gravity="center_vertical">
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@android:drawable/ic_menu_search"
app:tint="#A0AEC0" />
<EditText
android:id="@+id/editPesquisar"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:background="@android:color/transparent"
android:hint="Pesquisar transação..."
android:textColorHint="#718096"
android:textColor="@color/texto_principal"
android:textSize="14sp"
android:inputType="text"
android:maxLines="1"/>
</LinearLayout>
android:orientation="horizontal"
android:padding="12dp"
android:gravity="center_vertical">
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@android:drawable/ic_menu_search"
app:tint="@color/text_secondary" />
<EditText
android:id="@+id/editPesquisar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:background="@android:color/transparent"
android:hint="Pesquisar transação..."
android:textColorHint="@color/text_secondary"
android:textColor="@color/texto_principal"
android:textSize="14sp"
android:inputType="text"
android:maxLines="1"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
<FrameLayout
android:layout_width="match_parent"
@@ -80,7 +87,7 @@
android:text="Clica no botão + para começares a registar os teus movimentos."
android:textSize="14sp"
android:textAlignment="center"
android:textColor="?android:attr/textColorSecondary"
android:textColor="@color/text_secondary"
android:layout_marginTop="8dp"/>
</LinearLayout>
</FrameLayout>

View File

@@ -1,15 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cardObjetivo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginHorizontal="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:cardCornerRadius="16dp"
app:cardElevation="2dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating">
android:layout_marginBottom="12dp"
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp"
app:cardBackgroundColor="@color/fundo_cartao">
<LinearLayout
android:layout_width="match_parent"
@@ -17,74 +19,74 @@
android:orientation="vertical"
android:padding="20dp">
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical">
<ImageView
android:id="@+id/imgIconeObjetivo"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_centerVertical="true"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/bg_circle_icon"
android:src="@drawable/ic_lazer"
app:tint="#00B8D4" />
android:padding="8dp"
app:tint="@color/tech_accent_cyan" />
<TextView
android:id="@+id/tvNomeObjetivo"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="12dp"
android:layout_toEndOf="@id/imgIconeObjetivo"
android:layout_toStartOf="@id/layoutBotoesAcao"
android:layout_marginStart="16dp"
android:text="Nome do Objetivo"
android:textColor="?android:attr/textColorPrimary"
android:textColor="@color/texto_principal"
android:textSize="18sp"
android:textStyle="bold" />
<!-- Zona dos Botões de Ação -->
<LinearLayout
android:id="@+id/layoutBotoesAcao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:orientation="horizontal">
<!-- ✏️ Novo Botão Editar -->
<ImageView
android:id="@+id/btnEditarObjetivo"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginEnd="12dp"
android:padding="4dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@android:drawable/ic_menu_edit"
app:tint="#ECC94B" />
app:tint="@color/text_secondary" />
<!-- 🗑️ Botão Eliminar -->
<ImageView
android:id="@+id/btnEliminarObjetivo"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_width="28dp"
android:layout_height="28dp"
android:padding="4dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@android:drawable/ic_menu_delete"
app:tint="#F56565" />
app:tint="@color/text_secondary" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<TextView
android:id="@+id/tvValoresObjetivo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginTop="16dp"
android:text="Guardado: € 0.00 / Alvo: € 0.00"
android:textColor="?android:attr/textColorSecondary"
android:textSize="14sp" />
android:textColor="@color/text_secondary"
android:textSize="13sp"
android:fontFamily="sans-serif-medium"
android:letterSpacing="0.02"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginTop="8dp"
android:gravity="center_vertical"
android:orientation="horizontal">
@@ -92,20 +94,22 @@
android:id="@+id/progressObjetivo"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="8dp"
android:layout_height="6dp"
android:layout_weight="1"
android:max="100"
android:progress="0"
android:progressTint="#00B8D4" />
android:progressTint="@color/tech_accent_cyan"
android:progressBackgroundTint="@color/linha_separadora" />
<TextView
android:id="@+id/tvPercentagemObjetivo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginStart="16dp"
android:text="0%"
android:textColor="#00B8D4"
android:textColor="@color/tech_accent_cyan"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>

View File

@@ -1,19 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
<com.google.android.material.card.MaterialCardView 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="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="8dp"
app:cardBackgroundColor="?android:attr/colorBackgroundFloating"
app:cardCornerRadius="16dp"
app:cardElevation="4dp">
android:layout_marginBottom="12dp"
app:cardBackgroundColor="@color/fundo_cartao"
app:cardCornerRadius="20dp"
app:cardElevation="0dp"
app:strokeColor="@color/linha_separadora"
app:strokeWidth="1dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
android:padding="20dp">
<LinearLayout
android:layout_width="match_parent"
@@ -25,6 +26,8 @@
android:id="@+id/imgIconeOrcamento"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/bg_circle_icon"
android:padding="8dp"
android:src="@drawable/ic_alimentacao"
app:tint="@color/tech_accent_cyan" />
@@ -33,20 +36,21 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="12dp"
android:layout_marginStart="16dp"
android:text="Alimentação"
android:textColor="?android:attr/textColorPrimary"
android:textSize="18sp"
android:textColor="@color/texto_principal"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/btnEliminarOrcamento"
android:layout_width="28dp"
android:layout_height="28dp"
android:layout_marginEnd="12dp"
android:layout_marginEnd="16dp"
android:padding="4dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@android:drawable/ic_menu_delete"
app:tint="#F56565" />
app:tint="@color/text_secondary" />
<TextView
android:id="@+id/tvPercentagemOrcamento"
@@ -54,6 +58,7 @@
android:layout_height="wrap_content"
android:text="75%"
android:textColor="@color/tech_accent_cyan"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
@@ -61,19 +66,22 @@
android:id="@+id/progressOrcamento"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="8dp"
android:layout_height="6dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
android:progress="75"
android:progressDrawable="@drawable/custom_progress_bar" />
android:progressTint="@color/tech_accent_cyan"
android:progressBackgroundTint="@color/linha_separadora" />
<TextView
android:id="@+id/tvValoresOrcamento"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Gasto: € 150.00 / Limite: € 200.00"
android:textColor="?android:attr/textColorSecondary"
android:textColor="@color/text_secondary"
android:textSize="12sp"
android:fontFamily="sans-serif-medium"
android:letterSpacing="0.02"
android:textAlignment="viewEnd" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</com.google.android.material.card.MaterialCardView>