Commit 59062a52 authored by Wahyu Wibowo's avatar Wahyu Wibowo

create detail order, and on transaction click move to order detail

parent ef3d72f2
......@@ -20,11 +20,14 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme2">
<activity android:name=".activities.OrderDetailActivity"></activity>
<receiver android:name=".activities.InetChecker">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<activity android:name=".activities.OrderActivity" />
<activity
android:name=".activities.SkActivity"
......
......@@ -17,10 +17,12 @@ import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityCartBinding;
import com.example.yourcashiertest.databinding.CartItemBinding;
import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.utils.Convert;
import com.example.yourcashiertest.viewmodels.CartViewModel;
import com.example.yourcashiertest.viewmodels.OrderDetailVM;
import com.example.yourcashiertest.viewmodels.ProductViewModel;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
......@@ -38,6 +40,7 @@ public class CartActivity extends AppCompatActivity {
ProductViewModel productViewModel;
TransaksiViewModel transaksiViewModel;
CartViewModel cartViewModel;
OrderDetailVM orderDetailVM;
List<Cart> cartList = new ArrayList<>();
......@@ -54,7 +57,7 @@ public class CartActivity extends AppCompatActivity {
product = new Product();
transaksiViewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
orderDetailVM = new ViewModelProvider(this).get(OrderDetailVM.class);
cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
cartViewModel.getCarts().observe(this, carts -> {
adapter.setCartList(carts);
......@@ -118,16 +121,43 @@ public class CartActivity extends AppCompatActivity {
}
public void saveTransaction(int amount) {
Transaksi transaksi = new Transaksi(0, "");
Transaksi transaksi = new Transaksi(0, "", "", "");
transaksi.setAmount(amount);
transaksi.setStatus("Pending");
transaksi.setPaymentType("");
transaksi.setCreatedAt(Convert.DateNow());
transaksiViewModel.insertTransaksi(transaksi);
getOrderList();
cartViewModel.clear();
finish();
startActivity(new Intent(CartActivity.this, OrderActivity.class));
Toast.makeText(getApplicationContext(), "Please Continue Payment", Toast.LENGTH_LONG).show();
}
private void getOrderList() {
cartViewModel.getCarts().observe(this, this::createOrderDetail);
}
private void createOrderDetail(List<Cart> carts) {
for (int i = 0; i < carts.size(); i++){
OrderDetail orderDetail = new OrderDetail(0, 0, 0, 0);
orderDetail.setOrderId(getIdOrder());
orderDetail.setPrice(carts.get(i).getPrice());
orderDetail.setProductId(carts.get(i).getIdProduct());
orderDetail.setQty(carts.get(i).getQty());
orderDetailVM.insertOrderDetail(orderDetail);
}
}
private long getIdOrder(){
List<Transaksi> orders = DBHelper.getAllTransaksi(getApplicationContext());
Transaksi order;
if (orders.size() == 0) order = orders.get(0);
else order = orders.get(orders.size() - 1);
Log.d("OrderId", String.valueOf(order.getOrderId()));
return order.getOrderId();
}
@Override
protected void onDestroy() {
super.onDestroy();
......
......@@ -59,7 +59,6 @@ public class MainActivity extends AppCompatActivity {
CartViewModel cartViewModel;
boolean added = false;
@RequiresApi(api = Build.VERSION_CODES.N)
@SuppressLint("WrongConstant")
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -73,8 +72,6 @@ public class MainActivity extends AppCompatActivity {
cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
Log.d("size transaksi", String.valueOf(DBHelper.getAllTransaksi(getApplicationContext()).size()));
cartViewModel.getCarts().observe(this, carts -> {
if (carts.size() != 0) {
binding.tvCount.setText(String.valueOf(carts.size()));
......
......@@ -17,6 +17,7 @@ import com.example.yourcashiertest.R;
import com.example.yourcashiertest.adapters.OrderAdapter;
import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityOrderBinding;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
......@@ -75,6 +76,12 @@ public class OrderActivity extends AppCompatActivity {
startActivity(new Intent(OrderActivity.this, PaymentActivity.class)
.putExtra(PaymentActivity.DATA_PENDING, transaksi));
}
@Override
public void onClickItem(Transaksi transaksi) {
startActivity(new Intent(OrderActivity.this, OrderDetailActivity.class)
.putExtra(OrderDetailActivity.ORDER_ID, transaksi.getOrderId()));
}
});
}
......
package com.example.yourcashiertest.activities;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import android.os.Bundle;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.adapters.OrderDetailAdapter;
import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityOrderDetailBinding;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Product;
import java.util.List;
public class OrderDetailActivity extends AppCompatActivity {
ActivityOrderDetailBinding binding;
OrderDetailAdapter adapter;
static final String ORDER_ID = "order_id";
static Product productDetail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_order_detail);
adapter = new OrderDetailAdapter();
binding.rvDetailOrder.setLayoutManager(new LinearLayoutManager(this));
binding.rvDetailOrder.setAdapter(adapter);
long orderId = getIntent().getLongExtra(ORDER_ID, 0);
List<OrderDetail> orderDetails = DBHelper.getDetailOrders(getApplicationContext(), orderId);
adapter.setOrderDetails(orderDetails);
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.example.yourcashiertest.activities;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import android.annotation.SuppressLint;
......@@ -20,12 +21,14 @@ import com.example.yourcashiertest.adapters.PaymentAdapter;
import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.ActivityPaymentBinding;
import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.models.ResponsePayment;
import com.example.yourcashiertest.utils.Convert;
import com.example.yourcashiertest.utils.ViewUtil;
import com.example.yourcashiertest.viewmodels.CartViewModel;
import com.example.yourcashiertest.viewmodels.OrderDetailVM;
import com.example.yourcashiertest.viewmodels.ProductViewModel;
import com.example.yourcashiertest.viewmodels.TransaksiViewModel;
......@@ -33,7 +36,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
//@RequiresApi(api = Build.VERSION_CODES.N)
public class PaymentActivity extends AppCompatActivity {
ActivityPaymentBinding binding;
......@@ -44,6 +46,7 @@ public class PaymentActivity extends AppCompatActivity {
CartViewModel cartViewModel;
ProductViewModel viewModel;
TransaksiViewModel payViewModel;
OrderDetailVM orderDetailVM;
public static final String PAY_WITH = "pay_with";
private ArrayList<ResponsePayment> responsePayments = new ArrayList<>();
static final String DATA_PENDING = "data_pending";
......@@ -58,7 +61,10 @@ public class PaymentActivity extends AppCompatActivity {
payViewModel = new ViewModelProvider(this).get(TransaksiViewModel.class);
cartViewModel = new ViewModelProvider(this).get(CartViewModel.class);
orderDetailVM = new ViewModelProvider(this).get(OrderDetailVM.class);
viewModel = new ViewModelProvider(this).get(ProductViewModel.class);
amount = getIntent().getIntExtra(CartActivity.PRICE, 0);
responsePayments.add(new ResponsePayment("https://i.ibb.co/yfcFMHc/undraw-wallet-aym5.png", "Cash"));
responsePayments.add(new ResponsePayment("https://i.ibb.co/qNnKh5n/undraw-Credit-card-re-blml.png", "Card"));
......@@ -128,18 +134,31 @@ public class PaymentActivity extends AppCompatActivity {
}
private void createTransaksi(int amount) {
Transaksi transaksi = new Transaksi(0, "");
Transaksi transaksi = new Transaksi(0, "", "", "");
transaksi.setAmount(amount);
transaksi.setStatus("Success");
transaksi.setPaymentType(paymentMethod);
transaksi.setCreatedAt(Convert.DateNow());
payViewModel.insertTransaksi(transaksi);
// createDetailOrder();
getOrderList();
}
private void createDetailOrder() {
Toast.makeText(getApplicationContext(), String.valueOf(getOrderId()), Toast.LENGTH_LONG).show();
private void getOrderList() {
cartViewModel.getCarts().observe(this, this::createOrderDetail);
}
private void createOrderDetail(List<Cart> carts) {
for (int i = 0; i < carts.size(); i++){
OrderDetail orderDetail = new OrderDetail(0, 0, 0, 0);
orderDetail.setOrderId(getIdOrder());
orderDetail.setPrice(carts.get(i).getPrice());
orderDetail.setProductId(carts.get(i).getIdProduct());
orderDetail.setQty(carts.get(i).getQty());
orderDetailVM.insertOrderDetail(orderDetail);
}
}
private long getOrderId(){
private long getIdOrder(){
List<Transaksi> orders = DBHelper.getAllTransaksi(getApplicationContext());
Transaksi order;
if (orders.size() == 0) order = orders.get(0);
......
package com.example.yourcashiertest.adapters;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
......@@ -23,6 +22,7 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
public interface TransaksiListener{
void onCancel(Transaksi transaksi);
void onContinue(Transaksi transaksi);
void onClickItem(Transaksi transaksi);
}
private TransaksiListener listener;
......@@ -78,6 +78,7 @@ public class OrderAdapter extends RecyclerView.Adapter<OrderAdapter.ViewHolder>
}else binding.setVisibility(true);
binding.btnCancel.setOnClickListener(view -> listener.onCancel(transaksi));
binding.btnContinue.setOnClickListener(view -> listener.onContinue(transaksi));
binding.getRoot().setOnClickListener(view -> listener.onClickItem(transaksi));
}
}
}
package com.example.yourcashiertest.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;
import com.example.yourcashiertest.R;
import com.example.yourcashiertest.databases.DBHelper;
import com.example.yourcashiertest.databinding.OrderDetailItemBinding;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.utils.Convert;
import java.util.ArrayList;
import java.util.List;
public class OrderDetailAdapter extends RecyclerView.Adapter<OrderDetailAdapter.ViewHolder> {
List<OrderDetail> orderDetails = new ArrayList<>();
private Context context;
public void setOrderDetails(List<OrderDetail> orderDetails) {
this.orderDetails = orderDetails;
notifyDataSetChanged();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
context = parent.getContext();
return new OrderDetailAdapter.ViewHolder(
DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext()),
R.layout.order_detail_item,
parent,
false
)
);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.bindData(orderDetails.get(position));
}
@Override
public int getItemCount() {
return orderDetails.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
OrderDetailItemBinding binding;
public ViewHolder(@NonNull OrderDetailItemBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
public void bindData(OrderDetail orderDetail){
binding.setOrderDetail(orderDetail);
Product productDetail = DBHelper.getProductById(context, (int) orderDetail.getProductId());
binding.setProductDetail(productDetail);
binding.setPrice(Convert.changeToCurrency(orderDetail.getPrice()));
}
}
}
......@@ -3,12 +3,18 @@ package com.example.yourcashiertest.daos;
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.OnConflictStrategy;
import androidx.room.Query;
import com.example.yourcashiertest.entities.OrderDetail;
import java.util.List;
@Dao
public interface OrderDetailDao {
@Query("SELECT * FROM OrderDetail WHERE orderId =:orderId")
List<OrderDetail> getOrderDetail(long orderId);
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insertOrderDetail(OrderDetail orderDetail);
......
......@@ -2,13 +2,12 @@ package com.example.yourcashiertest.databases;
import android.content.Context;
import androidx.lifecycle.LiveData;
import com.example.yourcashiertest.entities.Cart;
import com.example.yourcashiertest.entities.OrderDetail;
import com.example.yourcashiertest.entities.Product;
import com.example.yourcashiertest.entities.Transaksi;
import com.example.yourcashiertest.utils.Convert;
import java.util.ArrayList;
import java.util.List;
public class DBHelper {
......@@ -38,4 +37,11 @@ public class DBHelper {
list = db.transaksiDao().getTransaksi();
return list;
}
public static List<OrderDetail> getDetailOrders(Context context, long orderId){
List<OrderDetail> list;
LocalDatabase db = LocalDatabase.getDatabase(context);
list = db.orderDetail().getOrderDetail(orderId);
return list;
}
}
......@@ -24,7 +24,7 @@ import com.example.yourcashiertest.entities.Transaksi;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Database(entities = {Product.class, Cart.class, Transaksi.class, OrderDetail.class}, version = 6, exportSchema = false)
@Database(entities = {Product.class, Cart.class, Transaksi.class, OrderDetail.class}, version = 7, exportSchema = false)
public abstract class LocalDatabase extends RoomDatabase {
public abstract ProductDao productDao();
......@@ -77,6 +77,13 @@ public abstract class LocalDatabase extends RoomDatabase {
}
};
public static final Migration MIGRATION_6_7 = new Migration(6, 7) {
@Override
public void migrate(@NonNull SupportSQLiteDatabase database) {
database.execSQL("ALTER TABLE Transaksi ADD COLUMN paymentType TEXT NOT NULL DEFAULT '' ");
database.execSQL("ALTER TABLE Transaksi ADD COLUMN createdAt TEXT NOT NULL DEFAULT '' ");
}
};
public static LocalDatabase getDatabase(Context context) {
if (INSTANCE == null) {
......@@ -84,7 +91,8 @@ public abstract class LocalDatabase extends RoomDatabase {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
LocalDatabase.class, "yourcashier_database")
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4, MIGRATION_4_5, MIGRATION_5_6)
.addMigrations(MIGRATION_1_2, MIGRATION_2_3, MIGRATION_3_4,
MIGRATION_4_5, MIGRATION_5_6, MIGRATION_6_7)
.allowMainThreadQueries()
.build();
}
......
......@@ -23,15 +23,27 @@ public class Transaksi implements Parcelable {
@ColumnInfo(name = "status")
private String status;
@NonNull
@ColumnInfo(name = "paymentType")
private String paymentType;
@NonNull
@ColumnInfo(name = "createdAt")
private String createdAt;
protected Transaksi(Parcel in) {
orderId = in.readLong();
amount = in.readLong();
status = in.readString();
paymentType = in.readString();
createdAt = in.readString();
}
public Transaksi(long amount, String status){
public Transaksi(long amount, String status, String paymentType, String createdAt){
this.amount = amount;
this.status = status;
this.paymentType = paymentType;
this.createdAt = createdAt;
}
public static final Creator<Transaksi> CREATOR = new Creator<Transaksi>() {
......@@ -71,6 +83,22 @@ public class Transaksi implements Parcelable {
this.status = status;
}
public void setPaymentType(String paymentType) {
this.paymentType = paymentType;
}
public String getPaymentType() {
return paymentType;
}
public void setCreatedAt(String createdAt) {
this.createdAt = createdAt;
}
public String getCreatedAt() {
return createdAt;
}
@Override
public int describeContents() {
return 0;
......@@ -81,5 +109,7 @@ public class Transaksi implements Parcelable {
parcel.writeLong(orderId);
parcel.writeLong(amount);
parcel.writeString(status);
parcel.writeString(paymentType);
parcel.writeString(createdAt);
}
}
......@@ -38,5 +38,9 @@ public class ProductRepository {
return productDao.getFilteredProducts(s);
}
public Product getProductByid(long id){
return productDao.getProductById((int) id);
}
}
package com.example.yourcashiertest.utils;
import android.annotation.SuppressLint;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Convert {
public static String changeToCurrency(long totalPrice){
......@@ -16,4 +20,9 @@ public class Convert {
return priceRupiah;
}
@SuppressLint("SimpleDateFormat")
public static String DateNow(){
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
}
}
......@@ -72,4 +72,8 @@ public class ProductViewModel extends AndroidViewModel {
public MutableLiveData<Product> getProduct() {
return product;
}
public Product getProductById(long id){
return repository.getProductByid(id);
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
tools:context=".activities.OrderDetailActivity">
<TextView
android:id="@+id/tvDetailOrder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/wellfleet"
android:gravity="top"
android:text="Order Detail"
android:textAppearance="@style/payment"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_detail_order"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvDetailOrder"
tools:layout_editor_absoluteX="10dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -30,7 +30,7 @@
<!-- Burger Medium -->
<ImageView
android:id="@+id/imageView"
android:id="@+id/img_product_detail"
android:layout_width="107dp"
android:layout_height="0dp"
android:layout_margin="5dp"
......@@ -54,7 +54,7 @@
android:gravity="top"
android:text="@{cartProduct.nameProduct}"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintStart_toEndOf="@+id/img_product_detail"
android:textAppearance="@style/burger_medi" />
<TextView
......@@ -68,7 +68,7 @@
android:gravity="top"
tools:text="@{price}"
android:textAppearance="@style/some_id"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintStart_toEndOf="@+id/img_product_detail"
app:layout_constraintTop_toBottomOf="@+id/burger_medi"/>
<View
......
......@@ -33,8 +33,8 @@
<TextView
android:id="@+id/tvOrderNumber"
android:layout_width="136dp"
android:layout_height="41dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:text="Order Number : "
......@@ -45,22 +45,24 @@
<TextView
android:id="@+id/tvOrderId"
android:layout_width="250dp"
android:layout_height="41dp"
android:layout_width="wrap_content"
android:layout_height="14dp"
android:layout_marginStart="4dp"
android:text="@{transaction.orderId + ``}"
android:textAppearance="@style/some_id"
app:layout_constraintBottom_toBottomOf="@+id/tvOrderNumber"
app:layout_constraintEnd_toStartOf="@+id/date"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@id/tvOrderNumber"
app:layout_constraintTop_toTopOf="@+id/tvOrderNumber" />
<TextView
android:id="@+id/tvTotal"
android:layout_width="136dp"
android:layout_height="41dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:text="Total : "
android:text="Total :"
android:textAppearance="@style/burger_medi"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvOrderNumber" />
......@@ -68,7 +70,7 @@
<TextView
android:id="@+id/tvAmount"
android:layout_width="250dp"
android:layout_height="41dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@{amount}"
android:textAppearance="@style/some_id"
......@@ -117,6 +119,17 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btnContinue"
app:layout_constraintTop_toBottomOf="@id/tvAmount" />
<TextView
android:id="@+id/date"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{transaction.createdAt}"
android:layout_marginStart="50dp"
app:layout_constraintStart_toEndOf="@+id/tvOrderId"
app:layout_constraintBottom_toBottomOf="@+id/tvOrderId"
app:layout_constraintEnd_toEndOf="@id/btnCancel"
app:layout_constraintTop_toTopOf="@+id/tvOrderId" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="orderDetail"
type="com.example.yourcashiertest.entities.OrderDetail" />
<variable
name="productDetail"
type="com.example.yourcashiertest.entities.Product" />
<variable
name="price"
type="String" />
</data>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
app:cardElevation="3dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:padding="10dp"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img_product_detail"
android:layout_width="120dp"
android:layout_height="130dp"
android:layout_margin="5dp"
android:scaleType="fitXY"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:file="@{productDetail.photo}"
tools:srcCompat="@tools:sample/avatars" />
<TextView
android:id="@+id/name_product"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{productDetail.name}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.163"
app:layout_constraintStart_toEndOf="@id/img_product_detail"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.106" />
<TextView
android:id="@+id/qty_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{orderDetail.qty + ``}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/name_product"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/name_product"
app:layout_constraintTop_toBottomOf="@+id/name_product"
app:layout_constraintVertical_bias="0.209" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{price}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/qty_order"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="@+id/qty_order"
app:layout_constraintTop_toBottomOf="@+id/qty_order"
app:layout_constraintVertical_bias="0.29000002" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</layout>
\ No newline at end of file
......@@ -18,7 +18,7 @@
<style name="burger_medi">
<item name="android:textSize">
18sp
15sp
</item>
<item name="android:textColor">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment