139 lines
5.4 KiB
Java
139 lines
5.4 KiB
Java
package com.example.gallery;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
import com.example.gallery.api.ApiClient;
|
|
import com.example.gallery.api.ApiService;
|
|
import com.example.gallery.models.RegisterRequest;
|
|
import com.example.gallery.models.RegisterResponse;
|
|
|
|
import retrofit2.Call;
|
|
import retrofit2.Callback;
|
|
import retrofit2.Response;
|
|
|
|
public class RegisterActivity extends AppCompatActivity {
|
|
|
|
EditText username, email, ime, prezime, index, password;
|
|
Button btnRegister;
|
|
TextView loginTV;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_register);
|
|
|
|
username = findViewById(R.id.usernameEditText);
|
|
email = findViewById(R.id.emailEditText);
|
|
ime = findViewById(R.id.imeEditText);
|
|
prezime = findViewById(R.id.prezimeEditText);
|
|
index = findViewById(R.id.indexEditText);
|
|
password = findViewById(R.id.passwordEditText);
|
|
btnRegister = findViewById(R.id.btnRegister);
|
|
loginTV = findViewById(R.id.loginTV);
|
|
|
|
Toast.makeText(this, "RegisterActivity loaded", Toast.LENGTH_SHORT).show();
|
|
|
|
loginTV.setOnClickListener(v -> {
|
|
startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
|
|
});
|
|
|
|
btnRegister.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
String u = username.getText().toString().trim();
|
|
String e = email.getText().toString().trim();
|
|
String f = ime.getText().toString().trim();
|
|
String l = prezime.getText().toString().trim();
|
|
String s = index.getText().toString().trim();
|
|
String p = password.getText().toString().trim();
|
|
|
|
|
|
if (u.isEmpty() || u.length() > 150) {
|
|
username.setError("Username must be 1-150 characters");
|
|
return;
|
|
}
|
|
|
|
if (e.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(e).matches()) {
|
|
email.setError("Enter a valid email");
|
|
return;
|
|
}
|
|
|
|
if (f.isEmpty() || f.length() > 30) {
|
|
ime.setError("First name must be 1-30 characters");
|
|
return;
|
|
}
|
|
|
|
if (l.isEmpty() || l.length() > 30) {
|
|
prezime.setError("Last name must be 1-30 characters");
|
|
return;
|
|
}
|
|
|
|
if (s.isEmpty() || s.length() > 8) {
|
|
index.setError("School index must be 1-8 characters");
|
|
return;
|
|
}
|
|
|
|
if (p.isEmpty() || p.length() < 8) {
|
|
password.setError("Password must be at least 8 characters");
|
|
return;
|
|
}
|
|
|
|
// ---------------------------
|
|
// 🔹 API CALL
|
|
// ---------------------------
|
|
ApiService apiService = ApiClient.getClient().create(ApiService.class);
|
|
RegisterRequest request = new RegisterRequest(u, e, f, l, s, p);
|
|
|
|
apiService.register(request).enqueue(new Callback<RegisterResponse>() {
|
|
@Override
|
|
public void onResponse(Call<RegisterResponse> call, Response<RegisterResponse> response) {
|
|
|
|
Toast.makeText(RegisterActivity.this,
|
|
"HTTP code: " + response.code(),
|
|
Toast.LENGTH_SHORT).show();
|
|
|
|
if (response.isSuccessful() && response.body() != null) {
|
|
Toast.makeText(RegisterActivity.this,
|
|
response.body().getMessage(),
|
|
Toast.LENGTH_SHORT).show();
|
|
// Go to login
|
|
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
|
|
startActivity(intent); // go back to previous activity
|
|
} else {
|
|
try {
|
|
String errorBody = response.errorBody() != null
|
|
? response.errorBody().string()
|
|
: "No error body";
|
|
|
|
Toast.makeText(RegisterActivity.this,
|
|
errorBody,
|
|
Toast.LENGTH_LONG).show();
|
|
|
|
} catch (Exception e) {
|
|
Toast.makeText(RegisterActivity.this,
|
|
"Error reading errorBody",
|
|
Toast.LENGTH_SHORT).show();
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<RegisterResponse> call, Throwable t) {
|
|
Toast.makeText(RegisterActivity.this,
|
|
"Server error: " + t.getMessage(),
|
|
Toast.LENGTH_SHORT).show();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
}
|