diff --git a/app/build.gradle b/app/build.gradle index fd68971..211f9f7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'com.squareup.picasso:picasso:2.71828' implementation 'com.github.ome450901:SimpleRatingBar:1.5.1' implementation 'com.cepheuen.elegant-number-button:lib:1.0.2' - implementation 'com.github.slavce14:SJ-Dialog:1.5' + implementation 'com.github.slavce14:SJ-Dialog:1.6' implementation 'com.saadahmedev.popup-dialog:popup-dialog:1.0.2' implementation 'com.github.gabriel-TheCode:AestheticDialogs:1.3.6' implementation 'io.github.pilgr:paperdb:2.7.2' diff --git a/app/src/main/java/com/capstone/foodify/API/FoodApiToken.java b/app/src/main/java/com/capstone/foodify/API/FoodApiToken.java index 5b7fe49..70f9fbc 100644 --- a/app/src/main/java/com/capstone/foodify/API/FoodApiToken.java +++ b/app/src/main/java/com/capstone/foodify/API/FoodApiToken.java @@ -71,4 +71,10 @@ public interface FoodApiToken { @POST("users/{userId}/addresses") Call createAddressUser(@Path("userId") int userId, @Body Address address); + + @PUT("users/{userId}/addresses/{addressId}") + Call editAddressUser(@Path("userId") int userId, @Path("addressId") int addressId, @Body Address address); + + @DELETE("users/{userId}/addresses/{addressId}") + Call deleteAddressUser(@Path("userId") int userId, @Path("addressId") int addressId); } diff --git a/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java b/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java index 3ed1c7e..59e7893 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java @@ -1,10 +1,5 @@ package com.capstone.foodify.Activity; -import androidx.appcompat.app.AppCompatActivity; -import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - import android.content.Context; import android.graphics.Typeface; import android.os.Bundle; @@ -14,25 +9,36 @@ import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; +import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; +import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.capstone.foodify.API.FoodApi; import com.capstone.foodify.API.FoodApiToken; +import com.capstone.foodify.Adapter.AddressAdapter; import com.capstone.foodify.Common; import com.capstone.foodify.Model.Address; -import com.capstone.foodify.Adapter.AddressAdapter; import com.capstone.foodify.Model.DistrictWardResponse; import com.capstone.foodify.Model.Response.CustomResponse; +import com.capstone.foodify.Model.User; import com.capstone.foodify.R; import com.google.android.material.textfield.TextInputLayout; +import com.sjapps.library.customdialog.BasicDialog; import com.sjapps.library.customdialog.CustomViewDialog; import com.sjapps.library.customdialog.DialogButtonEvents; +import com.sjapps.library.customdialog.SJDialog; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import retrofit2.Call; @@ -46,12 +52,13 @@ public class AddressManagerActivity extends AppCompatActivity { private AddressAdapter adapter; private Button add_address_button; private TextInputLayout textInput_address; - private ImageView back_image; + private ImageView back_image, edit_btn; private TextView txt_Address, errorTextDistrictWard; private List
listAddress = new ArrayList<>(); Spinner wardSpinner, districtSpinner; EditText edt_address; ConstraintLayout progressLayout, progressLayoutDialog; + CheckBox default_address_checkbox; private static final ArrayList wardList = new ArrayList<>(); private static final ArrayList districtList = new ArrayList<>(); String address, ward, district; @@ -67,6 +74,7 @@ public class AddressManagerActivity extends AppCompatActivity { back_image = findViewById(R.id.back_image); txt_Address = findViewById(R.id.text_view_address); progressLayout = findViewById(R.id.progress_layout); + edit_btn = findViewById(R.id.edit_button); //Set layout recyclerview LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); @@ -87,22 +95,40 @@ public class AddressManagerActivity extends AppCompatActivity { add_address_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - showAddAddressDialog(null, null, null); + showAddAndEditAddressDialog(null); + } + }); + + //Set event when user click on edit button + edit_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showAddAndEditAddressDialog(defaultAddress); } }); } private void getAddressList(){ + listAddress.clear(); + listAddress.addAll(Common.CURRENT_USER.getAddresses()); + //Remove default address in address list + for(Address tempAddress: Common.CURRENT_USER.getAddresses()){ + if(Common.CURRENT_USER.getDefaultAddress() == tempAddress.getId()){ + listAddress.remove(tempAddress); + break; + } + } + adapter.setData(listAddress); recycler_view_address.setAdapter(adapter); progressLayout.setVisibility(View.GONE); } - private void initData(){ + private void initDefaultAddress(){ //Create a full address string String fullAddress = defaultAddress.getAddress() + ", " + defaultAddress.getWard() + ", " + defaultAddress.getDistrict(); @@ -114,7 +140,7 @@ public class AddressManagerActivity extends AppCompatActivity { for(Address tempAddress: Common.CURRENT_USER.getAddresses()){ if(Common.CURRENT_USER.getDefaultAddress() == tempAddress.getId()){ defaultAddress = tempAddress; - initData(); + initDefaultAddress(); getAddressList(); break; } @@ -122,12 +148,12 @@ public class AddressManagerActivity extends AppCompatActivity { if(defaultAddress == null){ progressLayout.setVisibility(View.GONE); - Toast.makeText(this, "Đã có lỗi từ hệ thống, vui lòng thử lại sau!", Toast.LENGTH_SHORT).show(); + Toast.makeText(this, "Không lấy được default address!", Toast.LENGTH_SHORT).show(); } } - private void addAddress(String address, String ward, String district){ + private void addAddress(String address, String ward, String district, boolean isChecked){ progressLayoutDialog.setVisibility(View.VISIBLE); //Create object address @@ -135,14 +161,15 @@ public class AddressManagerActivity extends AppCompatActivity { FoodApiToken.apiService.createAddressUser(Common.CURRENT_USER.getId(), newAddress).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { - Toast.makeText(AddressManagerActivity.this, "Đã thêm địa chỉ thành công!", Toast.LENGTH_SHORT).show(); - //Add address to list address at local storage - listAddress.add(newAddress); + CustomResponse responseData = response.body(); - adapter.notifyDataSetChanged(); + if(responseData.getTitle().equals("Create address")){ + Toast.makeText(AddressManagerActivity.this, "Đã thêm địa chỉ thành công!", Toast.LENGTH_SHORT).show(); - progressLayoutDialog.setVisibility(View.GONE); + //Update data user + updateUser(isChecked); + } } @Override @@ -152,7 +179,141 @@ public class AddressManagerActivity extends AppCompatActivity { }); } - public void showAddAddressDialog(String addressUser, String wardUser, String districtUser){ + public void deleteAddress(int addressId){ + + FoodApiToken.apiService.deleteAddressUser(Common.CURRENT_USER.getId(), addressId).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + Toast.makeText(AddressManagerActivity.this, "Đã xoá địa chỉ thành công!", Toast.LENGTH_SHORT).show(); + + updateUser(false); + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(AddressManagerActivity.this, "Đã có lỗi từ hệ thống! Vui lòng thử lại sau!", Toast.LENGTH_SHORT).show(); + } + }); + } + + private void changeDefaultAddress(int idAddress){ + + Common.CURRENT_USER.setDefaultAddress(idAddress); + + FoodApiToken.apiService.updateUser(Common.CURRENT_USER.getId(), Common.CURRENT_USER).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + Toast.makeText(AddressManagerActivity.this, "Đã thay đổi địa chỉ mặc định thành công!", Toast.LENGTH_SHORT).show(); + + //Update default address + getDefaultAddress(); + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(AddressManagerActivity.this, "Đã có lỗi khi thay đổi địa chỉ mặc định, vui lòng thử lại sau!", Toast.LENGTH_SHORT).show(); + } + }); + } + + private void updateUser(boolean isChecked){ + //Get user from database + FoodApiToken.apiService.getUserFromEmail(Common.CURRENT_USER.getEmail()).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + User userData = response.body(); + if(userData != null){ + Common.CURRENT_USER = userData; + getAddressList(); + + if(isChecked){ + List
tempListAddress = Common.CURRENT_USER.getAddresses(); + Collections.sort(tempListAddress, Comparator.comparingLong(Address::getId)); + + Address newDefaultAddress = tempListAddress.get(tempListAddress.size() - 1); + + changeDefaultAddress(newDefaultAddress.getId()); + } + } + } + + @Override + public void onFailure(Call call, Throwable t) { + } + }); + } + + public void showConfirmDeleteDialog(int addressId, String message){ + BasicDialog basicDialog = new BasicDialog(); + + basicDialog.Builder(this) + .setTitle("Xác nhận xoá?") + .setMessage("Địa chỉ: \"" + message + "\"?") + .setMessageAlignment(SJDialog.TEXT_ALIGNMENT_CENTER) + .setLeftButtonText("Xoá") + .setRightButtonText("Không") + .setLeftButtonColor(getResources().getColor(R.color.primaryColor, null)) + .setRightButtonColor(getResources().getColor(R.color.gray, null)) + .setLeftButtonTextColor(getResources().getColor(R.color.white, null)) + .setRightButtonTextColor(getResources().getColor(R.color.white, null)) + .onButtonClick(new DialogButtonEvents() { + @Override + public void onLeftButtonClick() { + deleteAddress(addressId); + basicDialog.dismiss(); + } + + @Override + public void onRightButtonClick() { + basicDialog.dismiss(); + } + }).show(); + } + + private void editAddress(int userId, Address address, int oldAddressId, boolean isChecked){ + + //Change id address to 0 to call api from back-end + address.setId(0); + + FoodApiToken.apiService.editAddressUser(userId, oldAddressId, address).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + if(response.code() == 200){ + //Back-end create another address with another id + //Update user + updateUser(isChecked); + Toast.makeText(AddressManagerActivity.this, "Đã thay đổi địa chỉ thành công!", Toast.LENGTH_SHORT).show(); + } else if(response.code() == 400){ + //Address is exist in user + //Check if checkbox default address is has been checked + if(isChecked){ + + //Restore id old address + for(Address tempAddress: Common.CURRENT_USER.getAddresses()){ + if(tempAddress.getId() == 0){ + tempAddress.setId(oldAddressId); + } + } + + //Change default address + changeDefaultAddress(oldAddressId); + } else { + //Show notification address has been exist in user + Toast.makeText(AddressManagerActivity.this, "Địa chỉ đã bị trùng trong tài khoản của bạn, vui lòng kiểm tra lại!", Toast.LENGTH_SHORT).show(); + } + } + + } + + @Override + public void onFailure(Call call, Throwable t) { + + } + }); + } + + public void showAddAndEditAddressDialog(Address oldAddress){ View view = LayoutInflater.from(this).inflate(R.layout.add_address_dialog,null); //Init component @@ -162,35 +323,22 @@ public class AddressManagerActivity extends AppCompatActivity { edt_address = view.findViewById(R.id.edt_address); errorTextDistrictWard = view.findViewById(R.id.errorTextDistrictWard); progressLayoutDialog = view.findViewById(R.id.progress_layout); + default_address_checkbox = view.findViewById(R.id.checkbox_default_address); + //Set font textInput_address.setTypeface(Common.setFontOpenSans(getAssets())); - if(addressUser == null && wardUser == null && districtUser == null){ - //Load district and ward - if(districtList.size() == 0){ - getListDistrict("---Quận"); - } else { - setAdapter(districtList, "---Quận", districtSpinner); - } - getListWard(0, "---Phường"); - } else { - //Set default value ward and district depend on information from user - - edt_address.setText(addressUser); - - if(districtList.size() == 0){ - getListDistrict(districtUser); - } else { - setAdapter(districtList, districtUser, districtSpinner); - } - } - //Set event when click on district spinner districtSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView adapterView, View view, int i, long l) { - getListWard(i, wardUser); + if(oldAddress != null){ + getListWard(i, oldAddress.getWard()); + } else { + getListWard(i, null); + } + } @Override @@ -204,21 +352,48 @@ public class AddressManagerActivity extends AppCompatActivity { //Create dialog customViewDialog.Builder(this); - //Set title - if(addressUser == null && wardUser == null && districtUser == null){ + + if(oldAddress == null){ //If this is the create address form + + //Set title customViewDialog.setTitle("Thêm địa chỉ"); + //Set left button text + customViewDialog.setLeftButtonText("Thêm"); + + //Load district and ward + if(districtList.size() == 0){ + getListDistrict("---Quận"); + } else { + setAdapter(districtList, "---Quận", districtSpinner); + } + getListWard(0, "---Phường"); } else { //If this is a edit form + + //Set title customViewDialog.setTitle("Thay đổi địa chỉ"); + //Set left button text + customViewDialog.setLeftButtonText("Sửa"); + //If this is a default address, hide checkbox default address + if(oldAddress.getId() == Common.CURRENT_USER.getDefaultAddress()) + default_address_checkbox.setVisibility(View.GONE); + + //Set default value ward and district depend on information from user + edt_address.setText(oldAddress.getAddress()); + + if(districtList.size() == 0){ + getListDistrict(oldAddress.getDistrict()); + } else { + setAdapter(districtList, oldAddress.getDistrict(), districtSpinner); + } } //Create dialog width two buttons customViewDialog.dialogWithTwoButtons(); //Add custom view customViewDialog.addCustomView(view); - //Set left button text - customViewDialog.setLeftButtonText("Thêm"); + //Set right button text customViewDialog.setRightButtonText("Trở về"); //Set color for left button @@ -230,22 +405,32 @@ public class AddressManagerActivity extends AppCompatActivity { customViewDialog.onButtonClick(new DialogButtonEvents() { @Override public void onLeftButtonClick() { + //Get data + address = edt_address.getText().toString(); + ward = wardSpinner.getSelectedItem().toString(); + district = districtSpinner.getSelectedItem().toString(); - if(addressUser == null && wardUser == null && districtUser == null){ + if(oldAddress == null){ //If this is the create address form - //Get data - address = edt_address.getText().toString(); - ward = wardSpinner.getSelectedItem().toString(); - district = districtSpinner.getSelectedItem().toString(); - if(validData(address, ward, district)){ - addAddress(address, ward, district); + addAddress(address, ward, district, default_address_checkbox.isChecked()); customViewDialog.dismiss(); } } else { //If this is a edit form - //TODO Add edit address function + if(validData(oldAddress.getAddress(), oldAddress.getWard(), oldAddress.getDistrict())){ + + //Change information address + oldAddress.setAddress(address); + oldAddress.setWard(ward); + oldAddress.setDistrict(district); + + //Call api to change address + editAddress(Common.CURRENT_USER.getId(), oldAddress, oldAddress.getId(), default_address_checkbox.isChecked()); + } + + customViewDialog.dismiss(); } } @@ -272,9 +457,14 @@ public class AddressManagerActivity extends AppCompatActivity { //Check district and ward if(district.equals("---Quận") || ward.equals("---Phường")){ - errorTextDistrictWard.setVisibility(View.VISIBLE); - dataHasValidate = false; + if(!district.equals("Huyện Hoàng Sa")){ + errorTextDistrictWard.setVisibility(View.VISIBLE); + dataHasValidate = false; + } else{ + errorTextDistrictWard.setVisibility(View.GONE); + } + } else { errorTextDistrictWard.setVisibility(View.GONE); } diff --git a/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java b/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java index 26af1b9..eaeb78c 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/FavoriteFoodActivity.java @@ -1,5 +1,14 @@ package com.capstone.foodify.Activity; +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.view.View; +import android.widget.ImageView; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; @@ -9,16 +18,6 @@ import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import android.app.Dialog; -import android.content.Intent; -import android.graphics.Color; -import android.os.Bundle; -import android.view.View; -import android.widget.ImageView; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; - import com.capstone.foodify.API.FoodApiToken; import com.capstone.foodify.Adapter.FoodFavoriteAdapter; import com.capstone.foodify.Adapter.RecyclerViewItemTouchHelperFavoriteFood; @@ -28,9 +27,6 @@ import com.capstone.foodify.Model.Food; import com.capstone.foodify.Model.Response.Foods; import com.capstone.foodify.R; import com.google.android.material.snackbar.Snackbar; -import com.saadahmedsoft.popupdialog.PopupDialog; -import com.saadahmedsoft.popupdialog.Styles; -import com.saadahmedsoft.popupdialog.listener.OnDialogButtonClickListener; import java.util.ArrayList; import java.util.Collections; diff --git a/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java b/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java index b8395bf..4b656bf 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/FoodDetailActivity.java @@ -23,13 +23,13 @@ import androidx.recyclerview.widget.RecyclerView; import com.capstone.foodify.API.FoodApi; import com.capstone.foodify.API.FoodApiToken; +import com.capstone.foodify.Adapter.ReviewAdapter; import com.capstone.foodify.Common; import com.capstone.foodify.Model.Basket; import com.capstone.foodify.Model.Food; import com.capstone.foodify.Model.Image; import com.capstone.foodify.Model.Response.CustomResponse; import com.capstone.foodify.Model.Review; -import com.capstone.foodify.Adapter.ReviewAdapter; import com.capstone.foodify.R; import com.denzcoskun.imageslider.ImageSlider; import com.denzcoskun.imageslider.constants.ScaleTypes; @@ -37,8 +37,6 @@ import com.denzcoskun.imageslider.models.SlideModel; import com.mcdev.quantitizerlibrary.AnimationStyle; import com.mcdev.quantitizerlibrary.HorizontalQuantitizer; import com.mcdev.quantitizerlibrary.QuantitizerListener; -import com.saadahmedsoft.popupdialog.PopupDialog; -import com.saadahmedsoft.popupdialog.Styles; import com.willy.ratingbar.RotationRatingBar; import java.util.ArrayList; diff --git a/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java b/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java index 8268a46..a3bd620 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/MainActivity.java @@ -69,8 +69,6 @@ public class MainActivity extends AppCompatActivity { @Override public void onFailure(Call call, Throwable t) { - System.out.println("ERROR: " + t); - Common.showErrorServerNotification(MainActivity.this); } }); } else { diff --git a/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java b/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java index 4fb0ce2..941f6bd 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/SignInActivity.java @@ -11,7 +11,6 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; -import com.capstone.foodify.API.FoodApi; import com.capstone.foodify.API.FoodApiToken; import com.capstone.foodify.Common; import com.capstone.foodify.Model.User; @@ -26,11 +25,6 @@ import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; 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 java.util.regex.Matcher; import java.util.regex.Pattern; diff --git a/app/src/main/java/com/capstone/foodify/Adapter/AddressAdapter.java b/app/src/main/java/com/capstone/foodify/Adapter/AddressAdapter.java index 1ec90c4..060ad8a 100644 --- a/app/src/main/java/com/capstone/foodify/Adapter/AddressAdapter.java +++ b/app/src/main/java/com/capstone/foodify/Adapter/AddressAdapter.java @@ -52,17 +52,35 @@ public class AddressAdapter extends RecyclerView.Adapter> call, Throwable t) { //Dismiss progress bar progressLayout.setVisibility(View.GONE); - - if(getActivity() != null) - Common.showNotificationError(getContext(), getActivity()); } }); } @@ -157,6 +152,9 @@ public class HomeFragment extends Fragment { //Check internet connection if(getActivity() != null) Common.showNotificationError(getContext(), getActivity()); + + //Dismiss progress bar + progressLayout.setVisibility(View.GONE); } }); } @@ -179,8 +177,6 @@ public class HomeFragment extends Fragment { @Override public void onFailure(Call call, Throwable t) { - //Check internet connection - Common.showNotificationError(getContext(), getActivity()); } }); } @@ -202,9 +198,6 @@ public class HomeFragment extends Fragment { @Override public void onFailure(Call call, Throwable t) { - //Check internet connection - if(getActivity() != null) - Common.showNotificationError(getContext(), getActivity()); } }); } diff --git a/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java b/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java index e10b331..6dc5cef 100644 --- a/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java +++ b/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java @@ -2,16 +2,13 @@ package com.capstone.foodify.Fragment; import android.app.Dialog; import android.content.Intent; -import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; -import androidx.constraintlayout.widget.ConstraintLayout; import androidx.fragment.app.Fragment; import com.capstone.foodify.Activity.AccountAndProfileActivity; @@ -19,8 +16,6 @@ import com.capstone.foodify.Activity.AddressManagerActivity; import com.capstone.foodify.Activity.FavoriteFoodActivity; import com.capstone.foodify.Activity.MainActivity; import com.capstone.foodify.Activity.OrderActivity; -import com.capstone.foodify.Activity.SignInActivity; -import com.capstone.foodify.Activity.SignUpActivity; import com.capstone.foodify.Common; import com.capstone.foodify.R; import com.google.firebase.auth.FirebaseAuth; diff --git a/app/src/main/java/com/capstone/foodify/Model/Address.java b/app/src/main/java/com/capstone/foodify/Model/Address.java index 4251cc6..c00b7e0 100644 --- a/app/src/main/java/com/capstone/foodify/Model/Address.java +++ b/app/src/main/java/com/capstone/foodify/Model/Address.java @@ -2,7 +2,7 @@ package com.capstone.foodify.Model; import java.io.Serializable; -public class Address implements Serializable { +public class Address implements Serializable{ private int id; private String address; private String ward; @@ -14,6 +14,8 @@ public class Address implements Serializable { this.district = district; } + public Address(){} + public int getId() { return id; } diff --git a/app/src/main/java/com/capstone/foodify/Model/Response/CustomResponse.java b/app/src/main/java/com/capstone/foodify/Model/Response/CustomResponse.java index e4930d1..cd75da7 100644 --- a/app/src/main/java/com/capstone/foodify/Model/Response/CustomResponse.java +++ b/app/src/main/java/com/capstone/foodify/Model/Response/CustomResponse.java @@ -3,6 +3,7 @@ package com.capstone.foodify.Model.Response; public class CustomResponse { private String title; private boolean isTrue; + private String message; public String getTitle() { return title; @@ -12,6 +13,14 @@ public class CustomResponse { this.title = title; } + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + public boolean isTrue() { return isTrue; } diff --git a/app/src/main/res/layout/activity_address_manager.xml b/app/src/main/res/layout/activity_address_manager.xml index 3fbe244..b98af8d 100644 --- a/app/src/main/res/layout/activity_address_manager.xml +++ b/app/src/main/res/layout/activity_address_manager.xml @@ -111,22 +111,12 @@ > - - - + android:src="@drawable/baseline_edit_24" /> diff --git a/app/src/main/res/layout/add_address_dialog.xml b/app/src/main/res/layout/add_address_dialog.xml index ae603b3..5bc7a2c 100644 --- a/app/src/main/res/layout/add_address_dialog.xml +++ b/app/src/main/res/layout/add_address_dialog.xml @@ -38,8 +38,8 @@ android:id="@+id/linearLayout_district_ward" android:layout_width="match_parent" android:layout_height="60dp" - android:layout_marginRight="10dp" - android:layout_marginLeft="10dp" + android:layout_marginEnd="10dp" + android:layout_marginStart="10dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textInput_address" @@ -84,6 +84,19 @@ android:visibility="gone" /> + +