89 lines
3.6 KiB
Java
89 lines
3.6 KiB
Java
package com.example.pap;
|
|
|
|
import android.content.SharedPreferences;
|
|
import android.os.Bundle;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.Toast;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
|
|
import retrofit2.Call;
|
|
import retrofit2.Callback;
|
|
import retrofit2.Response;
|
|
|
|
public class MudarEmailActivity extends AppCompatActivity {
|
|
|
|
private EditText etAlterarEmail, etAlterarPassword1, etAlterarPassword2;
|
|
private Button btnConfirmarEmailNovo;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_mudar_email);
|
|
|
|
etAlterarEmail = findViewById(R.id.etAlterarEmail);
|
|
etAlterarPassword1 = findViewById(R.id.etAlterarPassword1);
|
|
etAlterarPassword2 = findViewById(R.id.etAlterarPassword2);
|
|
btnConfirmarEmailNovo = findViewById(R.id.btnConfirmarEmailNovo);
|
|
|
|
findViewById(R.id.btnVoltarMudarEmail).setOnClickListener(v -> finish());
|
|
|
|
SharedPreferences dadosPrefs = getSharedPreferences("MeusDadosApp", MODE_PRIVATE);
|
|
|
|
btnConfirmarEmailNovo.setOnClickListener(v -> {
|
|
String novoEmail = etAlterarEmail.getText().toString().trim();
|
|
String pass1 = etAlterarPassword1.getText().toString().trim();
|
|
String pass2 = etAlterarPassword2.getText().toString().trim();
|
|
|
|
if (novoEmail.isEmpty() || pass1.isEmpty() || pass2.isEmpty()) {
|
|
Toast.makeText(this, "Preenche todos os campos!", Toast.LENGTH_SHORT).show();
|
|
return;
|
|
}
|
|
|
|
// 1. Validação: Verifica se os dois campos de password antiga coincidem
|
|
if (!pass1.equals(pass2)) {
|
|
Toast.makeText(this, "As confirmações de password não coincidem!", Toast.LENGTH_SHORT).show();
|
|
return;
|
|
}
|
|
|
|
// 2. Validação: Verifica se a password escrita é mesmo a senha correta da conta
|
|
String passwordReal = dadosPrefs.getString("password", "");
|
|
if (!passwordReal.isEmpty() && !pass1.equals(passwordReal)) {
|
|
Toast.makeText(this, "A password atual introduzida está errada!", Toast.LENGTH_SHORT).show();
|
|
return;
|
|
}
|
|
|
|
String token = dadosPrefs.getString("access_token", "");
|
|
if (token.isEmpty()) {
|
|
Toast.makeText(this, "Erro: Faz login novamente.", Toast.LENGTH_LONG).show();
|
|
return;
|
|
}
|
|
|
|
// Envia as alterações para o Supabase
|
|
Map<String, String> updates = new HashMap<>();
|
|
updates.put("email", novoEmail);
|
|
|
|
SupabaseApi api = SupabaseConfig.getRetrofit().create(SupabaseApi.class);
|
|
api.updateUserData(SupabaseConfig.SUPABASE_KEY, "Bearer " + token, updates).enqueue(new Callback<Void>() {
|
|
@Override
|
|
public void onResponse(Call<Void> call, Response<Void> response) {
|
|
if (response.isSuccessful()) {
|
|
Toast.makeText(MudarEmailActivity.this, "Vai à caixa do novo email confirmar!", Toast.LENGTH_LONG).show();
|
|
finish();
|
|
} else {
|
|
Toast.makeText(MudarEmailActivity.this, "Erro ao mudar o email no Supabase.", Toast.LENGTH_LONG).show();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<Void> call, Throwable t) {
|
|
Toast.makeText(MudarEmailActivity.this, "Falha na internet.", Toast.LENGTH_SHORT).show();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|