mirror of
https://github.com/Nezumi-2711/Foodify.git
synced 2026-09-23 04:09:52 +00:00
Improve UI
This commit is contained in:
@@ -48,7 +48,7 @@ public interface FoodApi {
|
||||
@GET("products/search/enable")
|
||||
Call<Foods> searchFoodByName(@Query("productName") String name, @Query("pageNo") int pageNo, @Query("pageSize") int pageSize, @Query("sortBy") String sortBy, @Query("sortDir") String sortDir);
|
||||
|
||||
@GET("products")
|
||||
@GET("products/random")
|
||||
Call<Foods> listFood(@Query("pageNo") int pageNo, @Query("pageSize") int pageSize, @Query("sortBy") String sortBy, @Query("sortDir") String sortDir);
|
||||
|
||||
@GET("categories/randoms?pageNo=0&pageSize=7")
|
||||
|
||||
@@ -58,7 +58,7 @@ public class AddressManagerActivity extends AppCompatActivity {
|
||||
private Button add_address_button;
|
||||
private TextInputLayout textInput_address;
|
||||
private ImageView back_image, edit_btn;
|
||||
private TextView txt_Address, errorTextDistrictWard;
|
||||
private TextView txt_Address, errorTextDistrict, errorTextWard;
|
||||
private List<Address> listAddress = new ArrayList<>();
|
||||
private Spinner wardSpinner, districtSpinner;
|
||||
private EditText edt_address;
|
||||
@@ -490,7 +490,8 @@ public class AddressManagerActivity extends AppCompatActivity {
|
||||
wardSpinner = view.findViewById(R.id.ward);
|
||||
districtSpinner = view.findViewById(R.id.district);
|
||||
edt_address = view.findViewById(R.id.edt_address);
|
||||
errorTextDistrictWard = view.findViewById(R.id.errorTextDistrictWard);
|
||||
errorTextDistrict = view.findViewById(R.id.errorTextDistrict);
|
||||
errorTextWard = view.findViewById(R.id.errorTextWard);
|
||||
progressLayoutDialog = view.findViewById(R.id.progress_layout);
|
||||
default_address_checkbox = view.findViewById(R.id.checkbox_default_address);
|
||||
}
|
||||
@@ -507,18 +508,22 @@ public class AddressManagerActivity extends AppCompatActivity {
|
||||
textInput_address.setErrorEnabled(false);
|
||||
}
|
||||
|
||||
//Check district and ward
|
||||
if(district.equals("---Quận") || ward.equals("---Phường")){
|
||||
|
||||
if(!district.equals("Huyện Hoàng Sa")){
|
||||
errorTextDistrictWard.setVisibility(View.VISIBLE);
|
||||
dataHasValidate = false;
|
||||
} else{
|
||||
errorTextDistrictWard.setVisibility(View.GONE);
|
||||
}
|
||||
//Check ward
|
||||
if(ward.equals("---Phường")){
|
||||
errorTextWard.setVisibility(View.VISIBLE);
|
||||
|
||||
dataHasValidate = false;
|
||||
} else {
|
||||
errorTextDistrictWard.setVisibility(View.GONE);
|
||||
errorTextWard.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
//Check district
|
||||
if(district.equals("---Quận")){
|
||||
errorTextDistrict.setVisibility(View.VISIBLE);
|
||||
|
||||
dataHasValidate = false;
|
||||
} else {
|
||||
errorTextDistrict.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
return dataHasValidate;
|
||||
@@ -589,7 +594,7 @@ public class AddressManagerActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void setAdapter(ArrayList<String> data, String defaultItem, Spinner dataSpinner){
|
||||
MySpinnerAdapter adapterWard = new MySpinnerAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, data);
|
||||
MySpinnerAdapter adapterWard = new MySpinnerAdapter(getApplicationContext(), R.layout.spinner_text_view, data);
|
||||
dataSpinner.setAdapter(adapterWard); // this will set list of values to spinner
|
||||
dataSpinner.setSelection(data.indexOf(defaultItem));//set selected value in spinner
|
||||
}
|
||||
|
||||
@@ -49,11 +49,13 @@ import com.denzcoskun.imageslider.constants.ScaleTypes;
|
||||
import com.denzcoskun.imageslider.models.SlideModel;
|
||||
import com.google.android.material.chip.Chip;
|
||||
import com.google.android.material.chip.ChipGroup;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.mcdev.quantitizerlibrary.AnimationStyle;
|
||||
import com.mcdev.quantitizerlibrary.HorizontalQuantitizer;
|
||||
import com.mcdev.quantitizerlibrary.QuantitizerListener;
|
||||
import com.sjapps.library.customdialog.BasicDialog;
|
||||
import com.sjapps.library.customdialog.DialogButtonEvents;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.thecode.aestheticdialogs.DialogStyle;
|
||||
import com.thecode.aestheticdialogs.DialogType;
|
||||
import com.willy.ratingbar.RotationRatingBar;
|
||||
@@ -83,6 +85,7 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
private Food food;
|
||||
private TextView foodName_txt, shopName_txt, discount_txt, price_txt, countRating_txt, description_content_txt, endOfListText,
|
||||
userNameComment, contentComment, count_sold_txt;
|
||||
private RoundedImageView profile_avatar;
|
||||
private ConstraintLayout content_view;
|
||||
private Button add_to_basket_button;
|
||||
private float totalPrice, price;
|
||||
@@ -147,6 +150,7 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
list_category = findViewById(R.id.list_category);
|
||||
count_sold_txt = findViewById(R.id.count_sold);
|
||||
swipeRefreshLayout = findViewById(R.id.swipe_refresh);
|
||||
profile_avatar = findViewById(R.id.profile_avatar);
|
||||
}
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -537,6 +541,13 @@ public class FoodDetailActivity extends AppCompatActivity {
|
||||
description_content_txt.setText(food.getDescription());
|
||||
ratingBar.setRating(food.getAverageRating());
|
||||
|
||||
//Set image for user
|
||||
if(Common.CURRENT_USER.getImageUrl().isEmpty()){
|
||||
profile_avatar.setImageResource(R.drawable.profile_avatar);
|
||||
} else {
|
||||
Picasso.get().load(Common.CURRENT_USER.getImageUrl()).into(profile_avatar);
|
||||
}
|
||||
|
||||
if(food.getReviewCount() == null || Integer.parseInt(food.getReviewCount()) == 0){
|
||||
countRating_txt.setText("Chưa có bình luận nào!");
|
||||
} else {
|
||||
|
||||
@@ -44,8 +44,8 @@ import com.capstone.foodify.Fragment.HomeFragment;
|
||||
import com.capstone.foodify.Model.Response.CustomResponse;
|
||||
import com.capstone.foodify.Model.User;
|
||||
import com.capstone.foodify.R;
|
||||
import com.capstone.foodify.RefreshTokenService;
|
||||
import com.capstone.foodify.ViewPagerAdapter;
|
||||
import com.capstone.foodify.Service.RefreshTokenService;
|
||||
import com.capstone.foodify.Fragment.ViewPagerAdapter;
|
||||
import com.google.android.gms.common.api.ApiException;
|
||||
import com.google.android.gms.common.api.ResolvableApiException;
|
||||
import com.google.android.gms.location.FusedLocationProviderClient;
|
||||
@@ -230,6 +230,17 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
getLocation();
|
||||
|
||||
|
||||
|
||||
final Handler handler = new Handler();
|
||||
handler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if(!slider || !shop || !recentFood || !recommendFood){
|
||||
Common.showErrorServerNotification(MainActivity.this, "Đã có lỗi từ hệ thống, vui lòng thử lại sau!");
|
||||
}
|
||||
}
|
||||
}, 10000);
|
||||
}
|
||||
|
||||
private void startRefreshTokenService() {
|
||||
|
||||
@@ -86,7 +86,7 @@ public class OrderCheckOutActivity extends AppCompatActivity {
|
||||
private ImageView back_image;
|
||||
private OrderDetailAdapter adapter;
|
||||
private RecyclerView recyclerView;
|
||||
private TextView txt_userName, txt_phone, edt_address_detect, errorTextDistrictWard, txt_total, txt_distance, txt_ship_cost;
|
||||
private TextView txt_userName, txt_phone, edt_address_detect, errorTextDistrict, errorTextWard, txt_total, txt_distance, txt_ship_cost;
|
||||
private TextInputLayout textInput_address;
|
||||
private EditText edt_address;
|
||||
private Spinner spn_list_address, spn_district, spn_ward;
|
||||
@@ -117,7 +117,8 @@ public class OrderCheckOutActivity extends AppCompatActivity {
|
||||
manual_input_address = findViewById(R.id.manual_input_address);
|
||||
edt_address = findViewById(R.id.edt_address);
|
||||
address_option = findViewById(R.id.address_option);
|
||||
errorTextDistrictWard = findViewById(R.id.errorTextDistrictWard);
|
||||
errorTextDistrict = findViewById(R.id.errorTextDistrict);
|
||||
errorTextWard = findViewById(R.id.errorTextWard);
|
||||
textInput_address = findViewById(R.id.textInput_address);
|
||||
txt_total = findViewById(R.id.txt_total);
|
||||
take_food_from_shop = findViewById(R.id.take_food_from_shop);
|
||||
@@ -607,18 +608,22 @@ public class OrderCheckOutActivity extends AppCompatActivity {
|
||||
textInput_address.setErrorEnabled(false);
|
||||
}
|
||||
|
||||
//Check district and ward
|
||||
if(spn_district.getSelectedItem().toString().equals("---Quận") || spn_ward.getSelectedItem().toString().equals("---Phường")){
|
||||
|
||||
if(!spn_district.getSelectedItem().toString().equals("Huyện Hoàng Sa")){
|
||||
errorTextDistrictWard.setVisibility(View.VISIBLE);
|
||||
dataHasValidate = false;
|
||||
} else{
|
||||
errorTextDistrictWard.setVisibility(View.GONE);
|
||||
}
|
||||
//Check ward
|
||||
if(spn_ward.getSelectedItem().toString().equals("---Phường")){
|
||||
errorTextWard.setVisibility(View.VISIBLE);
|
||||
|
||||
dataHasValidate = false;
|
||||
} else {
|
||||
errorTextDistrictWard.setVisibility(View.GONE);
|
||||
errorTextWard.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
//Check district
|
||||
if(spn_district.getSelectedItem().toString().equals("---Quận")){
|
||||
errorTextDistrict.setVisibility(View.VISIBLE);
|
||||
|
||||
dataHasValidate = false;
|
||||
} else {
|
||||
errorTextDistrict.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
return dataHasValidate;
|
||||
@@ -832,7 +837,7 @@ public class OrderCheckOutActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void setAdapter(ArrayList<String> data, String defaultItem, Spinner dataSpinner){
|
||||
OrderCheckOutActivity.MySpinnerAdapter adapterWard = new OrderCheckOutActivity.MySpinnerAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, data);
|
||||
OrderCheckOutActivity.MySpinnerAdapter adapterWard = new OrderCheckOutActivity.MySpinnerAdapter(getApplicationContext(), R.layout.spinner_text_view, data);
|
||||
dataSpinner.setAdapter(adapterWard); // this will set list of values to spinner
|
||||
dataSpinner.setSelection(data.indexOf(defaultItem));//set selected value in spinner
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class SignUpActivity extends AppCompatActivity {
|
||||
textInput_address, textInput_confirmPassword, textInput_fullName, textInput_birthDay;
|
||||
final Calendar myCalendar= Calendar.getInstance();
|
||||
private EditText edt_birthday, edt_phone, edt_passWord, edt_confirmPassword, edt_fullName, edt_address, edt_email, edt_id_card;
|
||||
private TextView signIn_textView, errorText, errorTextDistrictWard;
|
||||
private TextView signIn_textView, errorText, errorTextDistrict, errorTextWard;
|
||||
private Spinner wardSpinner, districtSpinner;
|
||||
private ImageView back_image;
|
||||
private MaterialButton signUpButton;
|
||||
@@ -102,7 +102,8 @@ public class SignUpActivity extends AppCompatActivity {
|
||||
|
||||
signIn_textView = (TextView) findViewById(R.id.signIn_textView);
|
||||
errorText = findViewById(R.id.errorText);
|
||||
errorTextDistrictWard = findViewById(R.id.errorTextDistrictWard);
|
||||
errorTextDistrict = findViewById(R.id.errorTextDistrict);
|
||||
errorTextWard = findViewById(R.id.errorTextWard);
|
||||
|
||||
back_image = (ImageView) findViewById(R.id.back_image);
|
||||
|
||||
@@ -383,15 +384,23 @@ public class SignUpActivity extends AppCompatActivity {
|
||||
textInput_address.setErrorEnabled(false);
|
||||
}
|
||||
|
||||
//Check district and ward
|
||||
if(district.equals("---Quận") || ward.equals("---Phường")){
|
||||
errorTextDistrictWard.setVisibility(View.VISIBLE);
|
||||
//Check ward
|
||||
if(ward.equals("---Phường")){
|
||||
errorTextWard.setVisibility(View.VISIBLE);
|
||||
|
||||
dataHasValidate = false;
|
||||
} else {
|
||||
errorTextDistrictWard.setVisibility(View.GONE);
|
||||
errorTextWard.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
//Check district
|
||||
if(district.equals("---Quận")){
|
||||
errorTextDistrict.setVisibility(View.VISIBLE);
|
||||
|
||||
dataHasValidate = false;
|
||||
} else {
|
||||
errorTextDistrict.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
//Check password
|
||||
@@ -560,7 +569,7 @@ public class SignUpActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
private void setAdapter(ArrayList<String> data, String defaultItem, Spinner dataSpinner){
|
||||
MySpinnerAdapter adapterWard = new MySpinnerAdapter(getApplicationContext(), android.R.layout.simple_spinner_item, data);
|
||||
MySpinnerAdapter adapterWard = new MySpinnerAdapter(getApplicationContext(), R.layout.spinner_text_view, data);
|
||||
dataSpinner.setAdapter(adapterWard); // this will set list of values to spinner
|
||||
dataSpinner.setSelection(data.indexOf(defaultItem));//set selected value in spinner
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@ import android.os.CountDownTimer;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.Log;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
@@ -35,7 +34,7 @@ import com.capstone.foodify.API.FoodApi;
|
||||
import com.capstone.foodify.Common;
|
||||
import com.capstone.foodify.Model.User;
|
||||
import com.capstone.foodify.R;
|
||||
import com.capstone.foodify.SmsBroadcastReceiver;
|
||||
import com.capstone.foodify.Service.SmsBroadcastReceiver;
|
||||
import com.google.android.gms.auth.api.phone.SmsRetriever;
|
||||
import com.google.android.gms.auth.api.phone.SmsRetrieverClient;
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
|
||||
@@ -9,8 +9,11 @@ import android.widget.TextView;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.capstone.foodify.Common;
|
||||
import com.capstone.foodify.Model.Comment;
|
||||
import com.capstone.foodify.R;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.squareup.picasso.Picasso;
|
||||
import com.willy.ratingbar.ScaleRatingBar;
|
||||
|
||||
import java.util.List;
|
||||
@@ -43,6 +46,13 @@ public class CommentAdapter extends RecyclerView.Adapter<CommentAdapter.CommentV
|
||||
holder.name.setText(comment.getUser().getFullName());
|
||||
holder.ratingScore.setRating(comment.getRating());
|
||||
holder.content.setText(comment.getContent());
|
||||
|
||||
//Bind image avatar user
|
||||
if(comment.getUser().getImageUrl() == null){
|
||||
holder.profile_avatar.setImageResource(R.drawable.profile_avatar);
|
||||
} else {
|
||||
Picasso.get().load(Common.CURRENT_USER.getImageUrl()).into(holder.profile_avatar);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -54,8 +64,9 @@ public class CommentAdapter extends RecyclerView.Adapter<CommentAdapter.CommentV
|
||||
|
||||
public class CommentViewHolder extends RecyclerView.ViewHolder{
|
||||
|
||||
private TextView name, content;
|
||||
private ScaleRatingBar ratingScore;
|
||||
private final TextView name, content;
|
||||
private final ScaleRatingBar ratingScore;
|
||||
private final RoundedImageView profile_avatar;
|
||||
|
||||
public CommentViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
@@ -63,6 +74,8 @@ public class CommentAdapter extends RecyclerView.Adapter<CommentAdapter.CommentV
|
||||
name = itemView.findViewById(R.id.user_name_text_view);
|
||||
ratingScore = itemView.findViewById(R.id.rating_bar);
|
||||
content = itemView.findViewById(R.id.comment_user);
|
||||
|
||||
profile_avatar = itemView.findViewById(R.id.profile_avatar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.capstone.foodify.Adapter;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -148,7 +149,9 @@ public class FoodFavoriteAdapter extends RecyclerView.Adapter<FoodFavoriteAdapt
|
||||
FoodApiToken.apiService.removeFoodFromFavorite(Common.CURRENT_USER.getId(), Integer.parseInt(food.getId())).enqueue(new Callback<Food>() {
|
||||
@Override
|
||||
public void onResponse(Call<Food> call, Response<Food> response) {
|
||||
Toast.makeText(context, "Đã xoá " + food.getName() + " khỏi danh sách yêu thích!", Toast.LENGTH_SHORT).show();
|
||||
if(response.code() != 200){
|
||||
Log.e("Food favorite", "Error remove favorite food. Error code: " + response.code());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.capstone.foodify;
|
||||
package com.capstone.foodify.Fragment;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
+3
-1
@@ -1,4 +1,4 @@
|
||||
package com.capstone.foodify;
|
||||
package com.capstone.foodify.Service;
|
||||
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
@@ -17,7 +17,9 @@ import androidx.core.app.NotificationCompat;
|
||||
|
||||
import com.capstone.foodify.API.FoodApiToken;
|
||||
import com.capstone.foodify.Activity.MainActivity;
|
||||
import com.capstone.foodify.Common;
|
||||
import com.capstone.foodify.Model.Response.CustomResponse;
|
||||
import com.capstone.foodify.R;
|
||||
import com.google.firebase.messaging.FirebaseMessagingService;
|
||||
import com.google.firebase.messaging.RemoteMessage;
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
package com.capstone.foodify;
|
||||
package com.capstone.foodify.Service;
|
||||
|
||||
import android.app.job.JobParameters;
|
||||
import android.app.job.JobService;
|
||||
@@ -6,6 +6,7 @@ import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.capstone.foodify.Common;
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.GetTokenResult;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.capstone.foodify;
|
||||
package com.capstone.foodify.Service;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
@@ -31,5 +31,5 @@ public class Helpers {
|
||||
@NotNull
|
||||
public static String getMac(@NotNull String key, @NotNull String data) throws NoSuchAlgorithmException, InvalidKeyException {
|
||||
return Objects.requireNonNull(HMacUtil.HMacHexStringEncode(HMacUtil.HMACSHA256, key, data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user