diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/Cart.java b/Foodify/app/src/main/java/com/waterbase/foodify/Cart.java index 59c826c..6adb614 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Cart.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Cart.java @@ -122,16 +122,15 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio setContentView(R.layout.activity_cart); //Runtime permission - if(checkLocatePermission()) - { + if (checkLocatePermission()) { ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION }, LOCATION_REQUEST_CODE - ); + ); } else { - if(checkPlayServices()) { + if (checkPlayServices()) { buildGoogleApiClient(); createLocationRequest(); } @@ -178,10 +177,9 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { - case LOCATION_REQUEST_CODE: - { - if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - if(checkPlayServices()) { + case LOCATION_REQUEST_CODE: { + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + if (checkPlayServices()) { buildGoogleApiClient(); createLocationRequest(); } @@ -210,11 +208,10 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio private boolean checkPlayServices() { int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); - if(resultCode != ConnectionResult.SUCCESS) { - if(GooglePlayServicesUtil.isUserRecoverableError(resultCode)) + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) GooglePlayServicesUtil.getErrorDialog(resultCode, this, PLAY_SERVICES_REQUEST).show(); - else - { + else { Toast.makeText(this, "Thiết bị này chưa được hỗ trợ!", Toast.LENGTH_SHORT).show(); finish(); } @@ -236,12 +233,27 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio //Radio - RadioButton rdiShipToAddress = (RadioButton) order_address_comment.findViewById(R.id.rdiShipToAddress); - RadioButton rdiAddress = (RadioButton) order_address_comment.findViewById(R.id.rdiAdress); + RadioButton rdiShipToAddress = order_address_comment.findViewById(R.id.rdiShipToAddress); + RadioButton rdiAddress = order_address_comment.findViewById(R.id.rdiAddress); + RadioButton rdiHomeAddress = order_address_comment.findViewById(R.id.rdiHomeAddress); + + rdiHomeAddress.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if(isChecked){ + if(!TextUtils.isEmpty(Common.currentUser.getHomeAddress()) || Common.currentUser.getHomeAddress() != null) { + edtAddress.setText(Common.currentUser.getHomeAddress()); + } else + Toast.makeText(Cart.this, "Vui lòng điền địa chỉ mặc định của bạn!", Toast.LENGTH_SHORT).show(); + + } + } + }); rdiAddress.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if(isChecked) edtAddress.setText(""); } }); @@ -250,35 +262,33 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio rdiShipToAddress.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if(isChecked) { - if(isChecked){ - mGoogleMapService.getAddressName(String.format("https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&key=AIzaSyCqmoLlawoQzmwjZI2_Yo_V33An_nNZADs", - mLastLocation.getLatitude(), - mLastLocation.getLongitude())) - .enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - try { - JSONObject jsonObject = new JSONObject(response.body()); + if (isChecked) { + mGoogleMapService.getAddressName(String.format("https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&key=AIzaSyCqmoLlawoQzmwjZI2_Yo_V33An_nNZADs", + mLastLocation.getLatitude(), + mLastLocation.getLongitude())) + .enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + try { + JSONObject jsonObject = new JSONObject(response.body()); - JSONArray resultsArray = jsonObject.getJSONArray("results"); + JSONArray resultsArray = jsonObject.getJSONArray("results"); - JSONObject firstObject = resultsArray.getJSONObject(0); + JSONObject firstObject = resultsArray.getJSONObject(0); - address = firstObject.getString("formatted_address"); - edtAddress.setText(address); - } catch (JSONException e) { - e.printStackTrace(); - } + address = firstObject.getString("formatted_address"); + edtAddress.setText(address); + } catch (JSONException e) { + e.printStackTrace(); } + } - @Override - public void onFailure(Call call, Throwable t) { - Toast.makeText(Cart.this, "Error to get location: " + t.getMessage(), Toast.LENGTH_SHORT).show(); - Log.i("LOCATION", "" + t.getMessage()); - } - }); - } + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(Cart.this, "Error to get location: " + t.getMessage(), Toast.LENGTH_SHORT).show(); + Log.i("LOCATION", "" + t.getMessage()); + } + }); } } }); @@ -291,7 +301,7 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio @Override public void onClick(DialogInterface dialog, int which) { - if(TextUtils.isEmpty(address)){ + if (TextUtils.isEmpty(edtAddress.getText().toString())) { Toast.makeText(Cart.this, "Vui lòng nhập địa chỉ giao hàng!", Toast.LENGTH_SHORT).show(); return; } @@ -429,20 +439,19 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio } private void startLocationUpdates() { - if(checkLocatePermission()){ + if (checkLocatePermission()) { return; } LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); } private void displayLocation() { - if(checkLocatePermission()) + if (checkLocatePermission()) return; mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); - if(mLastLocation != null) { + if (mLastLocation != null) { Log.d("LOCATION", "Your location: " + mLastLocation.getLatitude() + ", " + mLastLocation.getLongitude()); - } - else { + } else { Log.d("LOCATION", "Could not get your location!"); } } @@ -456,7 +465,7 @@ public class Cart extends AppCompatActivity implements GoogleApiClient.Connectio public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { } - + private boolean checkLocatePermission() { return ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED; diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/Home.java b/Foodify/app/src/main/java/com/waterbase/foodify/Home.java index 0726310..36ed5ef 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Home.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Home.java @@ -234,6 +234,8 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati startActivity(orderIntent); } else if (id == R.id.nav_change_pwd) { showChangePasswordDialog(); + } else if (id == R.id.nav_home_address) { + showHomeAddressDialog(); } else if (id == R.id.nav_log_out) { @@ -253,6 +255,41 @@ public class Home extends AppCompatActivity implements NavigationView.OnNavigati return true; } + private void showHomeAddressDialog() { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(Home.this); + alertDialog.setTitle("Đặt địa chỉ mặc định"); + alertDialog.setMessage("Vui lòng điền đầy đủ thông tin"); + + LayoutInflater inflater = LayoutInflater.from(this); + View layout_home_address = inflater.inflate(R.layout.home_address_layout, null); + + final MaterialEditText edtHomeAddress = layout_home_address.findViewById(R.id.edtHomeAddress); + + alertDialog.setView(layout_home_address); + + alertDialog.setPositiveButton("Cập nhật", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + + //Set new Home Address + Common.currentUser.setHomeAddress(edtHomeAddress.getText().toString()); + + FirebaseDatabase.getInstance().getReference("User") + .child(Common.currentUser.getPhone()) + .setValue(Common.currentUser) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + Toast.makeText(Home.this, "Cập nhật địa chỉ thành công!", Toast.LENGTH_SHORT).show(); + } + }); + } + }); + + alertDialog.show(); + } + private void showChangePasswordDialog() { AlertDialog.Builder alertDialog = new AlertDialog.Builder(Home.this); alertDialog.setTitle("Đổi mật khẩu"); diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/Model/User.java b/Foodify/app/src/main/java/com/waterbase/foodify/Model/User.java index cf2ea0e..84b0bdf 100644 --- a/Foodify/app/src/main/java/com/waterbase/foodify/Model/User.java +++ b/Foodify/app/src/main/java/com/waterbase/foodify/Model/User.java @@ -8,6 +8,7 @@ public class User implements Serializable { private String Password; private String Phone; private String IsStaff; + private String homeAddress; public User(){} @@ -48,4 +49,12 @@ public class User implements Serializable { public void setPhone(String phone) { Phone = phone; } + + public String getHomeAddress() { + return homeAddress; + } + + public void setHomeAddress(String homeAddress) { + this.homeAddress = homeAddress; + } } diff --git a/Foodify/app/src/main/res/drawable/ic_baseline_home_24.xml b/Foodify/app/src/main/res/drawable/ic_baseline_home_24.xml new file mode 100644 index 0000000..5a870f5 --- /dev/null +++ b/Foodify/app/src/main/res/drawable/ic_baseline_home_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/Foodify/app/src/main/res/layout/home_address_layout.xml b/Foodify/app/src/main/res/layout/home_address_layout.xml new file mode 100644 index 0000000..89506b1 --- /dev/null +++ b/Foodify/app/src/main/res/layout/home_address_layout.xml @@ -0,0 +1,32 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Foodify/app/src/main/res/layout/order_address_comment.xml b/Foodify/app/src/main/res/layout/order_address_comment.xml index f2ce134..5006397 100644 --- a/Foodify/app/src/main/res/layout/order_address_comment.xml +++ b/Foodify/app/src/main/res/layout/order_address_comment.xml @@ -9,67 +9,74 @@ app:cardElevation="4dp" > - + + + + + + - - - - - - - + /> - - + + \ No newline at end of file diff --git a/Foodify/app/src/main/res/menu/activity_main_drawer.xml b/Foodify/app/src/main/res/menu/activity_main_drawer.xml index 334329b..84638f1 100644 --- a/Foodify/app/src/main/res/menu/activity_main_drawer.xml +++ b/Foodify/app/src/main/res/menu/activity_main_drawer.xml @@ -4,6 +4,12 @@ tools:showIn="navigation_view"> +