Add edit address for user

This commit is contained in:
Nezumi
2023-03-18 15:32:37 +07:00
parent ac603fe941
commit 084c2ce9f7
4 changed files with 53 additions and 113 deletions
-11
View File
@@ -1,17 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="deploymentTargetDropDown"> <component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\phanh\.android\avd\Pixel_5_API_31.avd" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<targetSelectedWithDropDown> <targetSelectedWithDropDown>
<Target> <Target>
<type value="QUICK_BOOT_TARGET" /> <type value="QUICK_BOOT_TARGET" />
@@ -87,7 +87,7 @@ public class AddressManagerActivity extends AppCompatActivity {
add_address_button.setOnClickListener(new View.OnClickListener() { add_address_button.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
showAddAddressDialog(); showAddAddressDialog(null, null, null);
} }
}); });
@@ -152,7 +152,7 @@ public class AddressManagerActivity extends AppCompatActivity {
}); });
} }
private void showAddAddressDialog(){ public void showAddAddressDialog(String addressUser, String wardUser, String districtUser){
View view = LayoutInflater.from(this).inflate(R.layout.add_address_dialog,null); View view = LayoutInflater.from(this).inflate(R.layout.add_address_dialog,null);
//Init component //Init component
@@ -166,19 +166,31 @@ public class AddressManagerActivity extends AppCompatActivity {
//Set font //Set font
textInput_address.setTypeface(Common.setFontOpenSans(getAssets())); textInput_address.setTypeface(Common.setFontOpenSans(getAssets()));
if(addressUser == null && wardUser == null && districtUser == null){
//Load district and ward //Load district and ward
if(districtList.size() == 0){ if(districtList.size() == 0){
getListDistrict(); getListDistrict("---Quận");
} else { } else {
setAdapter(districtList, "---Quận", districtSpinner); setAdapter(districtList, "---Quận", districtSpinner);
} }
getListWard(0); 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 //Set event when click on district spinner
districtSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { districtSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
getListWard(i); getListWard(i, wardUser);
} }
@Override @Override
@@ -191,8 +203,16 @@ public class AddressManagerActivity extends AppCompatActivity {
//Create dialog //Create dialog
customViewDialog.Builder(this); customViewDialog.Builder(this);
//Set title //Set title
if(addressUser == null && wardUser == null && districtUser == null){
//If this is the create address form
customViewDialog.setTitle("Thêm địa chỉ"); customViewDialog.setTitle("Thêm địa chỉ");
} else {
//If this is a edit form
customViewDialog.setTitle("Thay đổi địa chỉ");
}
//Create dialog width two buttons //Create dialog width two buttons
customViewDialog.dialogWithTwoButtons(); customViewDialog.dialogWithTwoButtons();
//Add custom view //Add custom view
@@ -211,6 +231,9 @@ public class AddressManagerActivity extends AppCompatActivity {
@Override @Override
public void onLeftButtonClick() { public void onLeftButtonClick() {
if(addressUser == null && wardUser == null && districtUser == null){
//If this is the create address form
//Get data //Get data
address = edt_address.getText().toString(); address = edt_address.getText().toString();
ward = wardSpinner.getSelectedItem().toString(); ward = wardSpinner.getSelectedItem().toString();
@@ -220,6 +243,10 @@ public class AddressManagerActivity extends AppCompatActivity {
addAddress(address, ward, district); addAddress(address, ward, district);
customViewDialog.dismiss(); customViewDialog.dismiss();
} }
} else {
//If this is a edit form
//TODO Add edit address function
}
} }
@Override @Override
@@ -255,7 +282,7 @@ public class AddressManagerActivity extends AppCompatActivity {
return dataHasValidate; return dataHasValidate;
} }
private void getListDistrict() { private void getListDistrict(String defaultValue) {
districtList.add("---Quận"); districtList.add("---Quận");
@@ -269,7 +296,7 @@ public class AddressManagerActivity extends AppCompatActivity {
} }
} }
setAdapter(districtList, "---Quận", districtSpinner); setAdapter(districtList, defaultValue, districtSpinner);
} }
@Override @Override
@@ -279,7 +306,7 @@ public class AddressManagerActivity extends AppCompatActivity {
}); });
} }
private void getListWard(int districtCode) { private void getListWard(int districtCode, String defaultValue) {
if(wardList.size() > 1) if(wardList.size() > 1)
wardList.clear(); wardList.clear();
@@ -306,7 +333,7 @@ public class AddressManagerActivity extends AppCompatActivity {
} else { } else {
wardSpinner.setEnabled(true); wardSpinner.setEnabled(true);
} }
setAdapter(wardList, "---Phường", wardSpinner); setAdapter(wardList, defaultValue, wardSpinner);
} }
@Override @Override
@@ -15,6 +15,7 @@ import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.capstone.foodify.Activity.AddressManagerActivity;
import com.capstone.foodify.Common; import com.capstone.foodify.Common;
import com.capstone.foodify.Model.Address; import com.capstone.foodify.Model.Address;
import com.capstone.foodify.R; import com.capstone.foodify.R;
@@ -60,7 +61,9 @@ public class AddressAdapter extends RecyclerView.Adapter<AddressAdapter.AddressV
holder.edit_btn.setOnClickListener(new View.OnClickListener() { holder.edit_btn.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
showAddAddressDialog(); if(context instanceof AddressManagerActivity){
((AddressManagerActivity)context).showAddAddressDialog(address.getAddress(), address.getWard(), address.getDistrict());
}
} }
}); });
@@ -73,85 +76,6 @@ public class AddressAdapter extends RecyclerView.Adapter<AddressAdapter.AddressV
return 0; return 0;
} }
private void showAddAddressDialog(){
View view = LayoutInflater.from(context).inflate(R.layout.add_address_dialog,null);
//Init component
TextInputLayout textInput_address = view.findViewById(R.id.textInput_address);
Spinner wardSpinner = view.findViewById(R.id.ward);
Spinner districtSpinner = view.findViewById(R.id.district);
EditText edt_address = view.findViewById(R.id.edt_address);
TextView errorTextDistrictWard = view.findViewById(R.id.errorTextDistrictWard);
ConstraintLayout progressLayoutDialog = view.findViewById(R.id.progress_layout);
//Set font
// textInput_address.setTypeface(Common.setFontOpenSans(getAssets()));
//Load district and ward
// if(districtList.size() == 0){
// getListDistrict();
// } else {
// setAdapter(districtList, "---Quận", districtSpinner);
// }
// getListWard(0);
//
// //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);
// }
//
// @Override
// public void onNothingSelected(AdapterView<?> adapterView) {
//
// }
// });
CustomViewDialog customViewDialog = new CustomViewDialog();
//Create dialog
customViewDialog.Builder(context);
//Set title
customViewDialog.setTitle("Thêm địa chỉ");
//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
// customViewDialog.setLeftButtonColor(getResources().getColor(R.color.primaryColor, null));
// //Set color for right button
// customViewDialog.setRightButtonColor(getResources().getColor(R.color.gray, null));
//Set event button
customViewDialog.onButtonClick(new DialogButtonEvents() {
@Override
public void onLeftButtonClick() {
//Get data
// address = edt_address.getText().toString();
// ward = wardSpinner.getSelectedItem().toString();
// district = districtSpinner.getSelectedItem().toString();
//
// if(validData(address, ward, district)){
// addAddress(address, ward, district);
// customViewDialog.dismiss();
// }
}
@Override
public void onRightButtonClick() {
customViewDialog.dismiss();
}
});
customViewDialog.show();
}
public class AddressViewHolder extends RecyclerView.ViewHolder{ public class AddressViewHolder extends RecyclerView.ViewHolder{
private TextView text_view_address, default_text_view, blank_text_view; private TextView text_view_address, default_text_view, blank_text_view;
@@ -54,7 +54,7 @@
android:gravity="end" android:gravity="end"
android:paddingEnd="25dp" android:paddingEnd="25dp"
android:contentDescription="district" android:contentDescription="district"
android:layout_weight="0.4" android:layout_weight="0.43"
/> />
<Spinner <Spinner
@@ -65,7 +65,7 @@
android:gravity="end" android:gravity="end"
android:paddingEnd="25dp" android:paddingEnd="25dp"
android:contentDescription="ward" android:contentDescription="ward"
android:layout_weight="0.6" android:layout_weight="0.57"
/> />
</LinearLayout> </LinearLayout>