corrigir os novos erros amnhã e adicionar qual tipo de sexo a pessoa é no register
This commit is contained in:
93
app/src/main/java/com/example/pap/MudarPasswordActivity.java
Normal file
93
app/src/main/java/com/example/pap/MudarPasswordActivity.java
Normal file
@@ -0,0 +1,93 @@
|
||||
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 MudarPasswordActivity extends AppCompatActivity {
|
||||
|
||||
private EditText etPasswordAntiga, etNovaPassword1, etNovaPassword2;
|
||||
private Button btnConfirmarPassword;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_mudar_password);
|
||||
|
||||
etPasswordAntiga = findViewById(R.id.etPasswordAntiga);
|
||||
etNovaPassword1 = findViewById(R.id.etNovaPassword1);
|
||||
etNovaPassword2 = findViewById(R.id.etNovaPassword2);
|
||||
btnConfirmarPassword = findViewById(R.id.btnConfirmarPassword);
|
||||
|
||||
findViewById(R.id.btnVoltarMudarPassword).setOnClickListener(v -> finish());
|
||||
|
||||
SharedPreferences dadosPrefs = getSharedPreferences("MeusDadosApp", MODE_PRIVATE);
|
||||
|
||||
btnConfirmarPassword.setOnClickListener(v -> {
|
||||
String passAntiga = etPasswordAntiga.getText().toString().trim();
|
||||
String novaPass1 = etNovaPassword1.getText().toString().trim();
|
||||
String novaPass2 = etNovaPassword2.getText().toString().trim();
|
||||
|
||||
if (passAntiga.isEmpty() || novaPass1.isEmpty() || novaPass2.isEmpty()) {
|
||||
Toast.makeText(this, "Preenche todos os campos!", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
// Confirma se as duas passwords novas são iguais
|
||||
if (!novaPass1.equals(novaPass2)) {
|
||||
Toast.makeText(this, "As passwords novas não coincidem!", Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
// Confirma se a password antiga escrita bate certo com a guardada no telemóvel
|
||||
String passwordReal = dadosPrefs.getString("password", "");
|
||||
if (!passwordReal.isEmpty() && !passAntiga.equals(passwordReal)) {
|
||||
Toast.makeText(this, "A password antiga 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_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
// Atualizar na nuvem
|
||||
Map<String, String> updates = new HashMap<>();
|
||||
updates.put("password", novaPass1);
|
||||
|
||||
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()) {
|
||||
// Guardar a nova password na memória para os próximos testes
|
||||
SharedPreferences.Editor editor = dadosPrefs.edit();
|
||||
editor.putString("password", novaPass1);
|
||||
editor.apply();
|
||||
|
||||
Toast.makeText(MudarPasswordActivity.this, "Password alterada com sucesso!", Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
} else {
|
||||
Toast.makeText(MudarPasswordActivity.this, "Erro ao mudar password.", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<Void> call, Throwable t) {
|
||||
Toast.makeText(MudarPasswordActivity.this, "Falha na internet.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user