Add sign in method

This commit is contained in:
Nezumi
2023-03-15 16:30:21 +07:00
parent 92484ff1d5
commit a68c26fd65
7 changed files with 84 additions and 21 deletions
@@ -16,14 +16,16 @@ import java.util.List;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
public interface FoodApi {
Gson gson = new GsonBuilder().setDateFormat("HH:mm:ss dd-MM-yyyy").create();
Gson gson = new GsonBuilder().setDateFormat("HH:mm:ss dd-MM-yyyy").setLenient().create();
FoodApi apiService = new Retrofit.Builder()
.baseUrl("http://192.168.1.183:8080/api/").addConverterFactory(GsonConverterFactory.create(gson))
@@ -69,6 +71,7 @@ public interface FoodApi {
@GET("sliders")
Call<List<Slider>> listSlider();
@POST("api/auth/signup")
Call<User> register(User user);
@Headers({"accept: */*", "Content-Type: application/json"})
@POST("auth/signup")
Call<User> register(@Body User user);
}
@@ -10,7 +10,9 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.capstone.foodify.API.FoodApi;
import com.capstone.foodify.Common;
import com.capstone.foodify.Model.User;
import com.capstone.foodify.R;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
@@ -25,7 +27,13 @@ import com.google.firebase.auth.GetTokenResult;
import com.saadahmedsoft.popupdialog.PopupDialog;
import com.saadahmedsoft.popupdialog.Styles;
import org.json.JSONException;
import org.json.JSONObject;
import io.paperdb.Paper;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class SignInActivity extends AppCompatActivity {
@@ -24,6 +24,7 @@ import android.widget.Toast;
import com.capstone.foodify.API.FoodApi;
import com.capstone.foodify.Common;
import com.capstone.foodify.Model.Address;
import com.capstone.foodify.Model.DistrictWardResponse;
import com.capstone.foodify.Model.User;
import com.capstone.foodify.R;
@@ -157,6 +158,7 @@ public class SignUpActivity extends AppCompatActivity {
signUpButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO Check user have exits in database before sign up
if(validateData()){
loading();
signUp();
@@ -288,8 +290,19 @@ public class SignUpActivity extends AppCompatActivity {
loadCompleted();
//Create user object
User user = new User();
user.setAddress(new Address(address, ward, district));
user.setDateOfBirth(dateOfBirth);
user.setEmail(email);
user.setFullName(name);
user.setIdentifiedCode("");
user.setImageUrl("");
user.setLocked(false);
user.setPhoneNumber(phone);
user.setRoleName("ROLE_USER");
Intent intent = new Intent(SignUpActivity.this, VerifyAccountActivity.class);
intent.putExtra("user", user);
intent.putExtra("phone", edt_phone.getText().toString());
intent.putExtra("verificationId", verificationId);
intent.putExtra("token", forceResendingToken);
@@ -17,6 +17,8 @@ import android.widget.TextView;
import android.widget.Toast;
import com.capstone.foodify.API.FoodApi;
import com.capstone.foodify.Common;
import com.capstone.foodify.Model.User;
import com.capstone.foodify.R;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
@@ -32,6 +34,10 @@ import com.saadahmedsoft.popupdialog.Styles;
import java.util.concurrent.TimeUnit;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class VerifyAccountActivity extends AppCompatActivity {
private static final String PHONE_CODE = "+84";
@@ -41,6 +47,7 @@ public class VerifyAccountActivity extends AppCompatActivity {
String verificationId, phone = null;
ConstraintLayout progressLayout;
TextView resendCodeText, resendCodeTextButton, countDown, errorText;
User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -53,6 +60,7 @@ public class VerifyAccountActivity extends AppCompatActivity {
if(getIntent() != null){
verificationId = getIntent().getStringExtra("verificationId");
phone = getIntent().getStringExtra("phone");
user = (User) getIntent().getSerializableExtra("user");
}
@@ -176,10 +184,19 @@ public class VerifyAccountActivity extends AppCompatActivity {
if(task.isSuccessful()) {
//Add information user to server
// FoodApi.apiService.register()
FoodApi.apiService.register(user).enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
//Create user success;
Toast.makeText(VerifyAccountActivity.this, "Tạo tài khoản thành công!", Toast.LENGTH_SHORT).show();
startActivity(new Intent(VerifyAccountActivity.this, SignInActivity.class));
}
@Override
public void onFailure(Call<User> call, Throwable t) {
Common.showErrorServerNotification(VerifyAccountActivity.this);
}
});
} else {
Toast.makeText(VerifyAccountActivity.this, "Mã code không đúng. Vui lòng kiểm tra lại!", Toast.LENGTH_SHORT).show();
}
@@ -106,7 +106,7 @@ public class Common {
}
}
private static void showErrorServerNotification(Activity activity){
public static void showErrorServerNotification(Activity activity){
PopupDialog.getInstance(activity)
.setStyle(Styles.FAILED)
.setHeading("Lỗi")
@@ -1,11 +1,19 @@
package com.capstone.foodify.Model;
public class Address {
import java.io.Serializable;
public class Address implements Serializable {
private int id;
private String address;
private String ward;
private String district;
public Address(String address, String ward, String district) {
this.address = address;
this.ward = ward;
this.district = district;
}
public Address(int id, String address, String ward, String district) {
this.id = id;
this.address = address;
@@ -1,24 +1,38 @@
package com.capstone.foodify.Model;
public class User {
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
public class User implements Serializable {
@SerializedName("addressDto")
private Address address;
private String dateOfBirth;
private String email;
private String fullName;
private String identifiedCode;
private String imageUrl;
private String isLocked;
private boolean isLocked;
private String phoneNumber;
private String roleName;
public User(String dateOfBirth, String email, String fullName, String identifiedCode, String imageUrl, String isLocked, String phoneNumber, String roleName) {
this.dateOfBirth = dateOfBirth;
this.email = email;
this.fullName = fullName;
this.identifiedCode = identifiedCode;
this.imageUrl = imageUrl;
this.isLocked = isLocked;
this.phoneNumber = phoneNumber;
this.roleName = roleName;
public User() {
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public boolean isLocked() {
return isLocked;
}
public void setLocked(boolean locked) {
isLocked = locked;
}
public String getDateOfBirth() {
@@ -61,11 +75,11 @@ public class User {
this.imageUrl = imageUrl;
}
public String getIsLocked() {
public boolean getIsLocked() {
return isLocked;
}
public void setIsLocked(String isLocked) {
public void setIsLocked(boolean isLocked) {
this.isLocked = isLocked;
}