mirror of
https://github.com/Nezumi-2711/Foodify.git
synced 2026-09-22 20:00:50 +00:00
Show order, add category ui product
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user