From f8cc655f74c9d7925a8d223399db5d0bcac04b6a Mon Sep 17 00:00:00 2001
From: 230421 <230421@epvc.pt>
Date: Wed, 3 Dec 2025 21:44:55 +0000
Subject: [PATCH] melhorias
---
app/src/main/AndroidManifest.xml | 2 +-
.../example/vdcscore/CriarContaActivity.java | 21 +---
.../com/example/vdcscore/LoginActivity.java | 24 ++---
...ty.java => RecuperarPasswordActivity.java} | 39 ++++----
...{bg_gradient_login.xml => bg_gradient.xml} | 0
app/src/main/res/drawable/button_modern.xml | 2 +-
app/src/main/res/drawable/ic_arrow_back.xml | 11 +++
app/src/main/res/drawable/ic_email.xml | 12 ---
app/src/main/res/drawable/ic_lock.xml | 12 ---
.../main/res/layout/activity_criarconta.xml | 98 ++++++++++---------
app/src/main/res/layout/activity_login.xml | 82 ++++++++--------
...ha.xml => activity_recuperar_password.xml} | 88 ++++++++++-------
12 files changed, 186 insertions(+), 205 deletions(-)
rename app/src/main/java/com/example/vdcscore/{RecuperarSenhaActivity.java => RecuperarPasswordActivity.java} (53%)
rename app/src/main/res/drawable/{bg_gradient_login.xml => bg_gradient.xml} (100%)
create mode 100644 app/src/main/res/drawable/ic_arrow_back.xml
delete mode 100644 app/src/main/res/drawable/ic_email.xml
delete mode 100644 app/src/main/res/drawable/ic_lock.xml
rename app/src/main/res/layout/{activity_recuperar_senha.xml => activity_recuperar_password.xml} (65%)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8741f3a..087c54b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -32,7 +32,7 @@
diff --git a/app/src/main/java/com/example/vdcscore/CriarContaActivity.java b/app/src/main/java/com/example/vdcscore/CriarContaActivity.java
index af4e9d1..5b42287 100644
--- a/app/src/main/java/com/example/vdcscore/CriarContaActivity.java
+++ b/app/src/main/java/com/example/vdcscore/CriarContaActivity.java
@@ -45,7 +45,7 @@ public class CriarContaActivity extends AppCompatActivity {
btnCreateAccount.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- String email = editEmail.getText().toString().trim();
+ String email = editEmail.getText().toString();
String pass = editPassword2.getText().toString();
String conf = editConfirmPassword.getText().toString();
@@ -54,16 +54,6 @@ public class CriarContaActivity extends AppCompatActivity {
return;
}
- if (!android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
- Toast.makeText(CriarContaActivity.this, "Por favor, insira um email válido", Toast.LENGTH_SHORT).show();
- return;
- }
-
- if (pass.length() < 6) {
- Toast.makeText(CriarContaActivity.this, "A senha deve ter pelo menos 6 caracteres", Toast.LENGTH_SHORT).show();
- return;
- }
-
if (!pass.equals(conf)) {
Toast.makeText(CriarContaActivity.this, "As passwords não coincidem!", Toast.LENGTH_SHORT).show();
return;
@@ -72,17 +62,12 @@ public class CriarContaActivity extends AppCompatActivity {
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.createUserWithEmailAndPassword(email, pass).addOnCompleteListener(CriarContaActivity.this, task -> {
if (task.isSuccessful()) {
- Toast.makeText(CriarContaActivity.this, "Conta criada com sucesso!", Toast.LENGTH_SHORT).show();
+
Intent intent= new Intent(CriarContaActivity.this, MainActivity.class);
startActivity(intent);
finish();
} else {
- String errorMessage = task.getException().getMessage();
- if (errorMessage != null && errorMessage.contains("email")) {
- Toast.makeText(CriarContaActivity.this, "Este email já está em uso", Toast.LENGTH_SHORT).show();
- } else {
- Toast.makeText(CriarContaActivity.this, "Erro ao criar conta: " + errorMessage, Toast.LENGTH_SHORT).show();
- }
+ Toast.makeText(CriarContaActivity.this, "Erro ao criar conta!", Toast.LENGTH_SHORT).show();
}
});
diff --git a/app/src/main/java/com/example/vdcscore/LoginActivity.java b/app/src/main/java/com/example/vdcscore/LoginActivity.java
index 579a462..c2f3d11 100644
--- a/app/src/main/java/com/example/vdcscore/LoginActivity.java
+++ b/app/src/main/java/com/example/vdcscore/LoginActivity.java
@@ -35,7 +35,7 @@ public class LoginActivity extends AppCompatActivity {
btnLogin.setOnClickListener(v -> loginUser());
criarContaTextView.setOnClickListener(view -> criarConta());
- txtForgotPassword.setOnClickListener(view -> recuperarSenha());
+ txtForgotPassword.setOnClickListener(view -> recuperarPassword());
}
private void criarConta() {
@@ -43,8 +43,8 @@ public class LoginActivity extends AppCompatActivity {
startActivity(intent);
}
- private void recuperarSenha() {
- Intent intent = new Intent(LoginActivity.this, RecuperarSenhaActivity.class);
+ private void recuperarPassword() {
+ Intent intent = new Intent(LoginActivity.this, RecuperarPasswordActivity.class);
startActivity(intent);
}
@@ -57,11 +57,6 @@ public class LoginActivity extends AppCompatActivity {
return;
}
- if (!android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
- Toast.makeText(this, "Por favor, insira um email válido", Toast.LENGTH_SHORT).show();
- return;
- }
-
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(task -> {
if (task.isSuccessful()) {
@@ -73,16 +68,9 @@ public class LoginActivity extends AppCompatActivity {
finish();
} else {
- String errorMessage = task.getException().getMessage();
- if (errorMessage != null && errorMessage.contains("password")) {
- Toast.makeText(this,
- "Senha incorreta. Esqueceu a senha?",
- Toast.LENGTH_LONG).show();
- } else {
- Toast.makeText(this,
- "Erro: " + errorMessage,
- Toast.LENGTH_LONG).show();
- }
+ Toast.makeText(this,
+ "Erro: " + task.getException().getMessage(),
+ Toast.LENGTH_LONG).show();
}
});
}
diff --git a/app/src/main/java/com/example/vdcscore/RecuperarSenhaActivity.java b/app/src/main/java/com/example/vdcscore/RecuperarPasswordActivity.java
similarity index 53%
rename from app/src/main/java/com/example/vdcscore/RecuperarSenhaActivity.java
rename to app/src/main/java/com/example/vdcscore/RecuperarPasswordActivity.java
index 3b8d7fc..c4c904f 100644
--- a/app/src/main/java/com/example/vdcscore/RecuperarSenhaActivity.java
+++ b/app/src/main/java/com/example/vdcscore/RecuperarPasswordActivity.java
@@ -4,6 +4,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
+import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;
@@ -12,38 +13,41 @@ import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.auth.FirebaseAuth;
-public class RecuperarSenhaActivity extends AppCompatActivity {
+public class RecuperarPasswordActivity extends AppCompatActivity {
- private TextInputEditText editEmailRecover;
- private Button btnSendRecovery;
- private TextView txtBackToLogin;
+ private TextInputEditText editEmailRecuperar;
+ private Button btnRecuperar;
+ private ImageButton btnBack;
+ private TextView txtVoltarLogin;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_recuperar_senha);
+ setContentView(R.layout.activity_recuperar_password);
- editEmailRecover = findViewById(R.id.editEmailRecover);
- btnSendRecovery = findViewById(R.id.btnSendRecovery);
- txtBackToLogin = findViewById(R.id.txtBackToLogin);
+ editEmailRecuperar = findViewById(R.id.editEmailRecuperar);
+ btnRecuperar = findViewById(R.id.btnRecuperar);
+ btnBack = findViewById(R.id.btnBack);
+ txtVoltarLogin = findViewById(R.id.txtVoltarLogin);
mAuth = FirebaseAuth.getInstance();
- btnSendRecovery.setOnClickListener(v -> sendRecoveryEmail());
- txtBackToLogin.setOnClickListener(v -> backToLogin());
+ btnRecuperar.setOnClickListener(v -> recuperarPassword());
+ btnBack.setOnClickListener(v -> voltarLogin());
+ txtVoltarLogin.setOnClickListener(v -> voltarLogin());
}
- private void sendRecoveryEmail() {
- String email = editEmailRecover.getText().toString().trim();
+ private void recuperarPassword() {
+ String email = editEmailRecuperar.getText().toString().trim();
if (email.isEmpty()) {
- Toast.makeText(this, "Por favor, insira o seu email", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, "Por favor, introduza o seu email", Toast.LENGTH_SHORT).show();
return;
}
if (!android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
- Toast.makeText(this, "Por favor, insira um email válido", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, "Por favor, introduza um email válido", Toast.LENGTH_SHORT).show();
return;
}
@@ -53,8 +57,7 @@ public class RecuperarSenhaActivity extends AppCompatActivity {
Toast.makeText(this,
"Email de recuperação enviado! Verifique a sua caixa de entrada.",
Toast.LENGTH_LONG).show();
- // Voltar ao login após enviar
- backToLogin();
+ voltarLogin();
} else {
Toast.makeText(this,
"Erro: " + task.getException().getMessage(),
@@ -63,8 +66,8 @@ public class RecuperarSenhaActivity extends AppCompatActivity {
});
}
- private void backToLogin() {
- Intent intent = new Intent(RecuperarSenhaActivity.this, LoginActivity.class);
+ private void voltarLogin() {
+ Intent intent = new Intent(RecuperarPasswordActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}
diff --git a/app/src/main/res/drawable/bg_gradient_login.xml b/app/src/main/res/drawable/bg_gradient.xml
similarity index 100%
rename from app/src/main/res/drawable/bg_gradient_login.xml
rename to app/src/main/res/drawable/bg_gradient.xml
diff --git a/app/src/main/res/drawable/button_modern.xml b/app/src/main/res/drawable/button_modern.xml
index fe0cba6..a73c25e 100644
--- a/app/src/main/res/drawable/button_modern.xml
+++ b/app/src/main/res/drawable/button_modern.xml
@@ -2,7 +2,7 @@
diff --git a/app/src/main/res/drawable/ic_arrow_back.xml b/app/src/main/res/drawable/ic_arrow_back.xml
new file mode 100644
index 0000000..b35c135
--- /dev/null
+++ b/app/src/main/res/drawable/ic_arrow_back.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_email.xml b/app/src/main/res/drawable/ic_email.xml
deleted file mode 100644
index ef99fad..0000000
--- a/app/src/main/res/drawable/ic_email.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_lock.xml b/app/src/main/res/drawable/ic_lock.xml
deleted file mode 100644
index c6c2682..0000000
--- a/app/src/main/res/drawable/ic_lock.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
diff --git a/app/src/main/res/layout/activity_criarconta.xml b/app/src/main/res/layout/activity_criarconta.xml
index 16e24bf..99af520 100644
--- a/app/src/main/res/layout/activity_criarconta.xml
+++ b/app/src/main/res/layout/activity_criarconta.xml
@@ -5,16 +5,16 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/bg_gradient_login"
+ android:background="@drawable/bg_gradient"
android:id="@+id/main">
-
+
-
+
+ app:layout_constraintTop_toBottomOf="@+id/textView4" />
+ app:layout_constraintTop_toBottomOf="@+id/textView">
+ android:orientation="vertical">
-
+
@@ -84,15 +83,15 @@
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Email"
- app:boxStrokeColor="#667eea"
- app:hintTextColor="#667eea"
- app:startIconDrawable="@drawable/ic_email"
- app:startIconTint="#667eea"
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:boxCornerRadiusTopStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
- app:boxCornerRadiusBottomEnd="12dp">
+ app:boxCornerRadiusBottomEnd="12dp"
+ app:boxStrokeWidth="0dp"
+ app:boxStrokeWidthFocused="0dp"
+ app:startIconDrawable="@android:drawable/ic_dialog_email"
+ app:startIconTint="#667eea"
+ style="@style/Widget.Material3.TextInputLayout.OutlinedBox">
+ android:textColorHint="#90A4AE"
+ android:padding="16dp" />
@@ -110,17 +110,16 @@
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Password"
- app:boxStrokeColor="#667eea"
- app:hintTextColor="#667eea"
- app:startIconDrawable="@drawable/ic_lock"
- app:startIconTint="#667eea"
- app:endIconMode="password_toggle"
- app:endIconTint="#667eea"
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:boxCornerRadiusTopStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
- app:boxCornerRadiusBottomEnd="12dp">
+ app:boxCornerRadiusBottomEnd="12dp"
+ app:boxStrokeWidth="0dp"
+ app:boxStrokeWidthFocused="0dp"
+ app:startIconDrawable="@android:drawable/ic_lock_lock"
+ app:startIconTint="#667eea"
+ app:endIconMode="password_toggle"
+ style="@style/Widget.Material3.TextInputLayout.OutlinedBox">
+ android:textColorHint="#90A4AE"
+ android:padding="16dp" />
@@ -138,17 +138,16 @@
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:hint="Confirmar Password"
- app:boxStrokeColor="#667eea"
- app:hintTextColor="#667eea"
- app:startIconDrawable="@drawable/ic_lock"
- app:startIconTint="#667eea"
- app:endIconMode="password_toggle"
- app:endIconTint="#667eea"
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:boxCornerRadiusTopStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
- app:boxCornerRadiusBottomEnd="12dp">
+ app:boxCornerRadiusBottomEnd="12dp"
+ app:boxStrokeWidth="0dp"
+ app:boxStrokeWidthFocused="0dp"
+ app:startIconDrawable="@android:drawable/ic_lock_lock"
+ app:startIconTint="#667eea"
+ app:endIconMode="password_toggle"
+ style="@style/Widget.Material3.TextInputLayout.OutlinedBox">
+ android:textColorHint="#90A4AE"
+ android:padding="16dp" />
@@ -182,8 +182,9 @@
@@ -206,7 +207,8 @@
android:textSize="14sp"
android:clickable="true"
android:focusable="true"
- android:padding="4dp" />
+ android:padding="4dp"
+ android:background="?attr/selectableItemBackground" />
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index c4e92a1..1cde3e3 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -5,9 +5,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/bg_gradient_login">
+ android:background="@drawable/bg_gradient">
-
+
-
+
+ app:layout_constraintTop_toBottomOf="@+id/textSubtitle">
+ android:orientation="vertical">
-
+
@@ -83,15 +82,15 @@
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:hint="Email"
- app:boxStrokeColor="#667eea"
- app:hintTextColor="#667eea"
- app:startIconDrawable="@drawable/ic_email"
- app:startIconTint="#667eea"
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:boxCornerRadiusTopStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
- app:boxCornerRadiusBottomEnd="12dp">
+ app:boxCornerRadiusBottomEnd="12dp"
+ app:boxStrokeWidth="0dp"
+ app:boxStrokeWidthFocused="0dp"
+ app:startIconDrawable="@android:drawable/ic_dialog_email"
+ app:startIconTint="#667eea"
+ style="@style/Widget.Material3.TextInputLayout.OutlinedBox">
+ android:textColorHint="#90A4AE"
+ android:padding="16dp" />
@@ -109,17 +109,16 @@
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:hint="Password"
- app:boxStrokeColor="#667eea"
- app:hintTextColor="#667eea"
- app:startIconDrawable="@drawable/ic_lock"
- app:startIconTint="#667eea"
- app:endIconMode="password_toggle"
- app:endIconTint="#667eea"
- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
app:boxCornerRadiusTopStart="12dp"
app:boxCornerRadiusTopEnd="12dp"
app:boxCornerRadiusBottomStart="12dp"
- app:boxCornerRadiusBottomEnd="12dp">
+ app:boxCornerRadiusBottomEnd="12dp"
+ app:boxStrokeWidth="0dp"
+ app:boxStrokeWidthFocused="0dp"
+ app:startIconDrawable="@android:drawable/ic_lock_lock"
+ app:startIconTint="#667eea"
+ app:endIconMode="password_toggle"
+ style="@style/Widget.Material3.TextInputLayout.OutlinedBox">
+ android:textColorHint="#90A4AE"
+ android:padding="16dp" />
-
+
+ android:padding="4dp" />
diff --git a/app/src/main/res/layout/activity_recuperar_senha.xml b/app/src/main/res/layout/activity_recuperar_password.xml
similarity index 65%
rename from app/src/main/res/layout/activity_recuperar_senha.xml
rename to app/src/main/res/layout/activity_recuperar_password.xml
index 26d760d..dfcccbb 100644
--- a/app/src/main/res/layout/activity_recuperar_senha.xml
+++ b/app/src/main/res/layout/activity_recuperar_password.xml
@@ -5,63 +5,74 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@drawable/bg_gradient_login">
+ android:background="@drawable/bg_gradient">
-
+
+
+
+
-
+
+ app:layout_constraintTop_toBottomOf="@+id/textSubtitle">
+ android:orientation="vertical">
+ app:boxCornerRadiusBottomEnd="12dp"
+ app:boxStrokeWidth="0dp"
+ app:boxStrokeWidthFocused="0dp"
+ app:startIconDrawable="@android:drawable/ic_dialog_email"
+ app:startIconTint="#667eea"
+ style="@style/Widget.Material3.TextInputLayout.OutlinedBox">
+ android:textColorHint="#90A4AE"
+ android:padding="16dp" />