package com.example.pap; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; public class RegisterActivity extends AppCompatActivity { private EditText etRegNome, etRegEmail, etRegPassword, etRegAltura, etRegPeso, etRegIdade; private RadioGroup radioGroupSexo; private Button btnRegister; private TextView tvGoToLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); etRegNome = findViewById(R.id.etRegNome); etRegEmail = findViewById(R.id.etRegEmail); etRegPassword = findViewById(R.id.etRegPassword); etRegIdade = findViewById(R.id.etRegIdade); etRegAltura = findViewById(R.id.etRegAltura); etRegPeso = findViewById(R.id.etRegPeso); radioGroupSexo = findViewById(R.id.radioGroupSexo); btnRegister = findViewById(R.id.btnRegister); tvGoToLogin = findViewById(R.id.tvGoToLogin); tvGoToLogin.setOnClickListener(v -> finish()); btnRegister.setOnClickListener(v -> { String nome = etRegNome.getText().toString().trim(); String email = etRegEmail.getText().toString().trim(); String password = etRegPassword.getText().toString().trim(); String idadeStr = etRegIdade.getText().toString().trim(); String alturaStr = etRegAltura.getText().toString().trim(); String pesoStr = etRegPeso.getText().toString().trim(); if (nome.isEmpty() || email.isEmpty() || password.isEmpty() || idadeStr.isEmpty() || alturaStr.isEmpty() || pesoStr.isEmpty()) { Toast.makeText(this, "Por favor, preenche todos os campos!", Toast.LENGTH_SHORT).show(); return; } int selectedSexoId = radioGroupSexo.getCheckedRadioButtonId(); if (selectedSexoId == -1) { Toast.makeText(this, "Por favor, escolhe o teu sexo!", Toast.LENGTH_SHORT).show(); return; } String sexoSelecionado = (selectedSexoId == R.id.radioMasculino) ? "Masculino" : "Feminino"; int idade = Integer.parseInt(idadeStr); float altura = Float.parseFloat(alturaStr); float peso = Float.parseFloat(pesoStr); // Grava no telemóvel para acesso rápido SharedPreferences prefs = getSharedPreferences("MeusDadosApp", MODE_PRIVATE); SharedPreferences.Editor editor = prefs.edit(); editor.putString("nome", nome); editor.putString("email", email); editor.putString("sexo", sexoSelecionado); editor.putInt("idade", idade); editor.putFloat("altura", altura); editor.putFloat("peso", peso); editor.apply(); // Empacota tudo para enviar para o Supabase UserCredentials credentials = new UserCredentials(email, password, nome, idade, altura, peso, sexoSelecionado); SupabaseApi api = SupabaseConfig.getRetrofit().create(SupabaseApi.class); api.signUp(SupabaseConfig.SUPABASE_KEY, credentials).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { Toast.makeText(RegisterActivity.this, "Conta criada no Supabase! Verifica o teu email.", Toast.LENGTH_LONG).show(); Intent intent = new Intent(RegisterActivity.this, VerificacaoActivity.class); intent.putExtra("email_registo", email); intent.putExtra("password_registo", password); startActivity(intent); finish(); } else { Toast.makeText(RegisterActivity.this, "Erro ao criar conta online.", Toast.LENGTH_LONG).show(); } } @Override public void onFailure(Call call, Throwable t) { Toast.makeText(RegisterActivity.this, "Falha na ligação à internet.", Toast.LENGTH_LONG).show(); } }); }); } }