Show order, add category ui product

This commit is contained in:
Nezumi
2023-03-30 17:14:22 +07:00
parent fe6836d8df
commit bedfc013ba
26 changed files with 945 additions and 134 deletions
@@ -1,30 +1,52 @@
package com.capstone.foodify.Activity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.capstone.foodify.API.FoodApiToken;
import com.capstone.foodify.Common;
import com.capstone.foodify.Model.Basket;
import com.capstone.foodify.Model.Order;
import com.capstone.foodify.Model.OrderDetail;
import com.capstone.foodify.Adapter.OrderDetailAdapter;
import com.capstone.foodify.Model.Response.CustomResponse;
import com.capstone.foodify.Model.User;
import com.capstone.foodify.R;
import com.sjapps.library.customdialog.BasicDialog;
import com.sjapps.library.customdialog.DialogButtonEvents;
import com.thecode.aestheticdialogs.AestheticDialog;
import com.thecode.aestheticdialogs.DialogStyle;
import com.thecode.aestheticdialogs.DialogType;
import com.thecode.aestheticdialogs.OnDialogClickListener;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
public class OrderDetailActivity extends AppCompatActivity {
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class OrderDetailActivity extends AppCompatActivity {
private static final String AWAITING = "AWAITING";
private TextView order_tracking_number, user_name, phone, address, orderTime, total;
private ImageView back_image;
public List<OrderDetail> listOrderDetails = new ArrayList<>();
private List<Basket> listOrderDetails = new ArrayList<>();
OrderDetailAdapter adapter;
RecyclerView recyclerView;
private Order order;
private Button btn_cancel_order;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -32,6 +54,109 @@ public class OrderDetailActivity extends AppCompatActivity {
setContentView(R.layout.activity_order_detail);
//Init Component
initComponent();
//Get data from previous fragment
if(getIntent() != null)
order = (Order) getIntent().getSerializableExtra("order");
if(order.getStatus().equals(AWAITING))
btn_cancel_order.setVisibility(View.VISIBLE);
//Init data
order_tracking_number.setText("Order Id: #" + order.getOrderTrackingNumber());
user_name.setText("Họ và tên: " + Common.CURRENT_USER.getFullName());
phone.setText("Số điện thoại: " + Common.CURRENT_USER.getPhoneNumber());
address.setText("Địa chỉ: " + order.getAddress());
orderTime.setText("Thời gian đặt: " + order.getOrderTime());
total.setText("Tổng: " + Common.changeCurrencyUnit(order.getTotal()));
for(OrderDetail tempFood: order.getOrderDetails()){
Basket food = new Basket(tempFood.getFood().getId(), tempFood.getFood().getImages().get(0).getImageUrl(),
tempFood.getFood().getName(), tempFood.getFood().getCost() ,tempFood.getFood().getShop().getName(), tempFood.getQuantity(),
tempFood.getFood().getDiscountPercent());
listOrderDetails.add(food);
}
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
recyclerView.setLayoutManager(linearLayoutManager);
adapter.setData(listOrderDetails);
recyclerView.setAdapter(adapter);
back_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
//Set event for delete order button
btn_cancel_order.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDeleteDialogConfirm();
}
});
}
private void showDeleteDialogConfirm(){
BasicDialog dialog = new BasicDialog();
dialog.Builder(this)
.setTitle("Xác nhận huỷ đơn hàng này?")
.setLeftButtonText("Xác nhận")
.setRightButtonText("Không")
.setDialogBackgroundColor(getResources().getColor(R.color.white, null))
.setLeftButtonColor(getResources().getColor(R.color.primaryColor, null))
.setRightButtonColor(getResources().getColor(R.color.gray, null))
.onButtonClick(new DialogButtonEvents() {
@Override
public void onLeftButtonClick() {
deleteOrderUser();
dialog.dismiss();
}
@Override
public void onRightButtonClick() {
dialog.dismiss();
}
})
.show();
}
private void deleteOrderUser(){
FoodApiToken.apiService.deleteOrder(Common.CURRENT_USER.getId(), order.getId()).enqueue(new Callback<CustomResponse>() {
@Override
public void onResponse(Call<CustomResponse> call, Response<CustomResponse> response) {
if(response.code() == 200){
new AestheticDialog.Builder(OrderDetailActivity.this, DialogStyle.RAINBOW, DialogType.SUCCESS)
.setTitle("Thông báo!")
.setMessage("Đã xoá đơn thành công!")
.setCancelable(false)
.setOnClickListener(new OnDialogClickListener() {
@Override
public void onClick(@NonNull AestheticDialog.Builder builder) {
startActivity(new Intent(OrderDetailActivity.this, OrderActivity.class));
builder.dismiss();
finish();
}
})
.show();
} else {
Toast.makeText(OrderDetailActivity.this, "Đã có lỗi hệ thống! Mã lỗi: " + response.code(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<CustomResponse> call, Throwable t) {
Toast.makeText(OrderDetailActivity.this, "Đã có lỗi kết nối đến hệ thống! Vui lòng thử lại sau!", Toast.LENGTH_SHORT).show();
}
});
}
private void initComponent(){
order_tracking_number = findViewById(R.id.order_tracking_number);
user_name = findViewById(R.id.user_name);
phone = findViewById(R.id.phone);
@@ -41,34 +166,6 @@ public class OrderDetailActivity extends AppCompatActivity {
adapter = new OrderDetailAdapter();
recyclerView = findViewById(R.id.recycler_view_order_detail);
back_image = findViewById(R.id.back_image);
//Init temp data
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss dd/MM/yyyy");
LocalDateTime now = LocalDateTime.now();
int b = (int)(Math.random()*(999999-100000+1)+100000);
order_tracking_number.setText("Order Id: #" + b);
user_name.setText("Tên: Nguyễn Văn A");
phone.setText("0987654321");
address.setText("Phạm Như Xương, Hoà Khánh Nam, Liên Chiểu");
orderTime.setText(dtf.format(now));
total.setText("Tổng: 1.200.000đ");
for(int i = 0; i < 5; i++){
listOrderDetails.add(new OrderDetail());
}
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);
recyclerView.setLayoutManager(linearLayoutManager);
// adapter.setData(listOrderDetails);
recyclerView.setAdapter(adapter);
back_image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
btn_cancel_order = findViewById(R.id.cancel_order_button);
}
}