primeiro commit

This commit is contained in:
2026-04-15 12:46:50 +01:00
commit fa1accd4bb
961 changed files with 124535 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp"
android:gravity="center"
android:background="@color/white">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fluxup"
android:textColor="@color/purple_500"
android:textSize="32sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Recuperar palavrapasse"
android:textColor="#999999"
android:textSize="16sp"
android:layout_marginBottom="24dp"/>
<EditText
android:id="@+id/etForgotEmail"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="Email"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="15dp"
android:layout_marginBottom="15dp"
android:inputType="textEmailAddress"/>
<Button
android:id="@+id/btnSendReset"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="Enviar"
android:backgroundTint="@color/purple_500"
android:textColor="@color/white"
android:textAllCaps="false"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginBottom="20dp"/>
<TextView
android:id="@+id/tvForgotBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Voltar"
android:textColor="@color/purple_500"
android:padding="10dp"/>
</LinearLayout>

View File

@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp"
android:gravity="center"
android:background="@color/white">
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fluxup"
android:textColor="@color/purple_500"
android:textSize="32sp"
android:textStyle="bold"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Entre na sua conta"
android:textColor="#666666"
android:textSize="16sp"
android:layout_marginBottom="24dp"/>
<EditText
android:id="@+id/etEmail"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="Email"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="15dp"
android:layout_marginBottom="15dp"
android:inputType="textEmailAddress"/>
<EditText
android:id="@+id/etPassword"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="Palavra Passe"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="15dp"
android:layout_marginBottom="15dp"
android:inputType="textPassword"/>
<EditText
android:id="@+id/etUsuario"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="Usuário"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="15dp"
android:layout_marginBottom="20dp"/>
<Button
android:id="@+id/btnLogin"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="Entrar"
android:backgroundTint="@color/purple_500"
android:textColor="@color/white"
android:textAllCaps="false"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginBottom="20dp"/>
<TextView
android:id="@+id/tvGoToRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Não tem conta? Registe-se"
android:textColor="@color/purple_500"
android:padding="10dp"/>
<TextView
android:id="@+id/tvForgotPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Esqueci a palavrapasse"
android:textColor="@color/purple_500"
android:padding="10dp"/>
</LinearLayout>

View File

@@ -0,0 +1,28 @@
<?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/background_purple">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/bottom_navigation"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/windowBackground"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_nav_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="20dp"
android:background="#80000000"> <!-- Semi-transparent background -->
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="16dp"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a modal"
android:textSize="20sp"
android:textStyle="bold"
android:layout_marginBottom="16dp"/>
<Button
android:id="@+id/btnModalBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to home screen"
android:backgroundTint="@color/purple_500"
android:textColor="@color/white"
android:textAllCaps="false"/>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="24dp"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fluxup"
android:textColor="@color/purple_500"
android:textSize="32sp"
android:textStyle="bold"
android:layout_marginTop="20dp"
android:layout_marginBottom="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Registar nova conta"
android:textColor="#999999"
android:textSize="16sp"
android:layout_marginBottom="30dp"/>
<EditText
android:id="@+id/etRegUsername"
android:layout_width="match_parent"
android:layout_height="56dp"
android:hint="Nome de utilizador"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="16dp"
android:layout_marginBottom="16dp"/>
<EditText
android:id="@+id/etRegEmail"
android:layout_width="match_parent"
android:layout_height="56dp"
android:hint="Email"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="16dp"
android:layout_marginBottom="16dp"
android:inputType="textEmailAddress"/>
<EditText
android:id="@+id/etRegPhone"
android:layout_width="match_parent"
android:layout_height="56dp"
android:hint="Número de telemóvel"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="16dp"
android:layout_marginBottom="16dp"
android:inputType="phone"/>
<EditText
android:id="@+id/etRegPassword"
android:layout_width="match_parent"
android:layout_height="56dp"
android:hint="Palavra-passe"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="16dp"
android:layout_marginBottom="16dp"
android:inputType="textPassword"/>
<EditText
android:id="@+id/etRegConfirmPassword"
android:layout_width="match_parent"
android:layout_height="56dp"
android:hint="Confirmar palavra-passe"
android:background="@drawable/edit_text_bg"
android:paddingHorizontal="16dp"
android:layout_marginBottom="16dp"
android:inputType="textPassword"/>
<Button
android:id="@+id/btnRegister"
android:layout_width="match_parent"
android:layout_height="56dp"
android:text="Registar"
android:backgroundTint="@color/purple_500"
android:textColor="@color/white"
android:textAllCaps="false"
android:textSize="18sp"
android:textStyle="bold"
android:layout_marginTop="10dp"
android:layout_marginBottom="16dp"/>
<ProgressBar
android:id="@+id/pbRegister"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:visibility="gone"
android:indeterminateTint="@color/purple_500"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginBottom="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Já tens conta? "
android:textColor="#999999"
android:textSize="16sp"/>
<TextView
android:id="@+id/tvBackToLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Entrar"
android:textColor="@color/purple_500"
android:textSize="16sp"
android:textStyle="bold"/>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -0,0 +1,150 @@
<?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/background_purple">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<!-- Header -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/greeting"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@string/subtitle"
android:textColor="#EEEEEE"
android:textSize="14sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="👋"
android:textSize="28sp" />
</RelativeLayout>
<!-- Desafios do Dia Card -->
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
app:cardCornerRadius="24dp"
app:cardElevation="0dp">
<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:layout_marginBottom="12dp"
android:text="Desafios do Dia"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<!-- Task List Placeholder (In Java we use RecyclerView) -->
<LinearLayout
android:id="@+id/tasksContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
<Button
android:id="@+id/btnAddTasks"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:backgroundTint="@color/purple_500"
android:text="+ Adicionar desafios diários"
android:textAllCaps="false"
android:textColor="@color/white" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Modo Foco Card -->
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="24dp"
app:cardElevation="0dp">
<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:layout_marginBottom="12dp"
android:text="Modo Foco"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/timerBlock"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginEnd="12dp"
android:background="@drawable/rounded_timer_bg">
<TextView
android:id="@+id/tvTimer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="25:00"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
</FrameLayout>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Produtividade é o segredo do sucesso"
android:textColor="@color/black"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -0,0 +1,359 @@
<?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/background_purple"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- HEADER AZUL -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:paddingBottom="20dp">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="top|end"
android:layout_marginEnd="16dp"
android:layout_marginTop="8dp"
android:src="@android:drawable/ic_menu_manage"
app:tint="@color/white" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical">
<FrameLayout
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@drawable/circle_bg">
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:src="@drawable/ic_nav_profile"
app:tint="@color/purple_500"/>
</FrameLayout>
</LinearLayout>
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<!-- INFO DO UTILIZADOR -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Jvitor"
android:textColor="@color/white"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@usuario"
android:textColor="#888888"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:text="🇬🇧 1 Curso"
android:textColor="#bbbbbb"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:text="13 Seguindo"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="8 Seguidores"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:backgroundTint="#ffffff"
android:text="+ ADICIONAR AMIGOS"
android:textColor="@color/purple_500"
android:textStyle="bold" />
<!-- VISÃO GERAL -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginBottom="12dp"
android:text="Visão Geral"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnCount="2"
android:rowCount="2">
<!-- CARD OFENSIVA -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_margin="6dp"
android:background="@drawable/dark_card_bg"
android:orientation="horizontal"
android:padding="16dp"
android:gravity="center_vertical">
<TextView
android:layout_width="32dp"
android:layout_height="32dp"
android:text="🔥"
android:textSize="24sp"
android:gravity="center"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="21"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ofensiva"
android:textColor="#888888"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<!-- CARD XP -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_margin="6dp"
android:background="@drawable/dark_card_bg"
android:orientation="horizontal"
android:padding="16dp"
android:gravity="center_vertical">
<TextView
android:layout_width="32dp"
android:layout_height="32dp"
android:text="⚡"
android:textSize="24sp"
android:gravity="center"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1433"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Total de XP"
android:textColor="#888888"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<!-- CARD LIGA -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_margin="6dp"
android:background="@drawable/dark_card_bg"
android:orientation="horizontal"
android:padding="16dp"
android:gravity="center_vertical">
<TextView
android:layout_width="32dp"
android:layout_height="32dp"
android:text="🏆"
android:textSize="24sp"
android:gravity="center"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Esmeralda"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Liga Atual"
android:textColor="#888888"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<!-- CARD TOP 3 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_columnWeight="1"
android:layout_margin="6dp"
android:background="@drawable/dark_card_bg"
android:orientation="horizontal"
android:padding="16dp"
android:gravity="center_vertical">
<TextView
android:layout_width="32dp"
android:layout_height="32dp"
android:text="🏅"
android:textSize="24sp"
android:gravity="center"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pódios no Top 3"
android:textColor="#888888"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</GridLayout>
<!-- AMIGOS -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_marginBottom="12dp"
android:text="Ofensivas dos Amigos"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- Amigo Vazio (Adicionar) -->
<LinearLayout
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:gravity="center"
android:orientation="vertical">
<FrameLayout
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/circle_dashed_bg">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="+"
android:textColor="@color/white"
android:textSize="32sp" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Convidar"
android:textColor="#888888"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</HorizontalScrollView>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>