mirror of
https://github.com/shaulascr/ecommerce_serang.git
synced 2025-12-18 00:41:01 +00:00
update checkout
This commit is contained in:
@ -154,8 +154,18 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
// Observe address details
|
// Observe address details
|
||||||
viewModel.addressDetails.observe(this) { address ->
|
viewModel.addressDetails.observe(this) { address ->
|
||||||
binding.tvPlacesAddress.text = address?.recipient
|
if (address != null) {
|
||||||
binding.tvAddress.text = "${address?.street}, ${address?.subdistrict}"
|
// Show selected address
|
||||||
|
binding.containerEmptyAddress.visibility = View.GONE
|
||||||
|
binding.containerAddress.visibility = View.VISIBLE
|
||||||
|
|
||||||
|
binding.tvPlacesAddress.text = address.recipient
|
||||||
|
binding.tvAddress.text = "${address.street}, ${address.subdistrict}"
|
||||||
|
} else {
|
||||||
|
// Show empty address state
|
||||||
|
binding.containerEmptyAddress.visibility = View.VISIBLE
|
||||||
|
binding.containerAddress.visibility = View.GONE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.availablePaymentMethods.observe(this) { paymentMethods ->
|
viewModel.availablePaymentMethods.observe(this) { paymentMethods ->
|
||||||
@ -172,9 +182,7 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
// Update the adapter ONLY if it exists
|
// Update the adapter ONLY if it exists
|
||||||
paymentAdapter?.let { adapter ->
|
paymentAdapter?.let { adapter ->
|
||||||
// This line was causing issues - using setSelectedPayment instead of setSelectedPaymentName
|
|
||||||
adapter.setSelectedPaymentId(selectedPayment.id)
|
adapter.setSelectedPaymentId(selectedPayment.id)
|
||||||
|
|
||||||
Log.d("CheckoutActivity", "Updated adapter with selected payment: ${selectedPayment.id}")
|
Log.d("CheckoutActivity", "Updated adapter with selected payment: ${selectedPayment.id}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -183,13 +191,13 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
// Observe loading state
|
// Observe loading state
|
||||||
viewModel.isLoading.observe(this) { isLoading ->
|
viewModel.isLoading.observe(this) { isLoading ->
|
||||||
binding.btnPay.isEnabled = !isLoading
|
binding.btnPay.isEnabled = !isLoading
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Observe error messages
|
// Observe error messages
|
||||||
viewModel.errorMessage.observe(this) { message ->
|
viewModel.errorMessage.observe(this) { message ->
|
||||||
if (message.isNotEmpty()) {
|
if (message.isNotEmpty()) {
|
||||||
Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "Terdapat kendala di pemesanan", Toast.LENGTH_SHORT).show()
|
||||||
|
Log.e("CheckoutActivity", "Error from errorMessage: $message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -207,11 +215,16 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
if (paymentMethods.isEmpty()) {
|
if (paymentMethods.isEmpty()) {
|
||||||
Log.e("CheckoutActivity", "Payment methods list is empty")
|
Log.e("CheckoutActivity", "Payment methods list is empty")
|
||||||
Toast.makeText(this, "Tidak ditemukan metode pembayaran", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "Tidak ditemukan metode pembayaran", Toast.LENGTH_SHORT).show()
|
||||||
binding.tvEmptyPayment.visibility = View.VISIBLE
|
|
||||||
|
// Show empty payment state
|
||||||
|
binding.containerEmptyPayment.visibility = View.VISIBLE
|
||||||
|
binding.rvPaymentInfo.visibility = View.GONE
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.tvEmptyPayment.visibility = View.GONE
|
binding.containerEmptyPayment.visibility = View.GONE
|
||||||
|
binding.rvPaymentInfo.visibility = View.VISIBLE
|
||||||
|
|
||||||
// Debug logging
|
// Debug logging
|
||||||
Log.d("CheckoutActivity", "Setting up payment methods: ${paymentMethods.size} methods available")
|
Log.d("CheckoutActivity", "Setting up payment methods: ${paymentMethods.size} methods available")
|
||||||
|
|
||||||
@ -257,6 +270,16 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupProductRecyclerView(checkoutData: CheckoutData) {
|
private fun setupProductRecyclerView(checkoutData: CheckoutData) {
|
||||||
|
if (checkoutData.cartItems.isEmpty()) {
|
||||||
|
// Show empty products state
|
||||||
|
binding.containerEmptyProducts.visibility = View.VISIBLE
|
||||||
|
binding.rvProductItems.visibility = View.GONE
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.containerEmptyProducts.visibility = View.GONE
|
||||||
|
binding.rvProductItems.visibility = View.VISIBLE
|
||||||
|
|
||||||
val adapter = if (checkoutData.isBuyNow || checkoutData.cartItems.size <= 1) {
|
val adapter = if (checkoutData.isBuyNow || checkoutData.cartItems.size <= 1) {
|
||||||
CheckoutSellerAdapter(checkoutData)
|
CheckoutSellerAdapter(checkoutData)
|
||||||
} else {
|
} else {
|
||||||
@ -292,7 +315,8 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private fun updateShippingUI(shipName: String, shipService: String, shipEtd: String, shipPrice: Int) {
|
private fun updateShippingUI(shipName: String, shipService: String, shipEtd: String, shipPrice: Int) {
|
||||||
if (shipName.isNotEmpty() && shipService.isNotEmpty()) {
|
if (shipName.isNotEmpty() && shipService.isNotEmpty()) {
|
||||||
// Display shipping name and service in one line
|
// Hide empty state and show selected shipping
|
||||||
|
binding.containerEmptyShipping.visibility = View.GONE
|
||||||
binding.cardShipment.visibility = View.VISIBLE
|
binding.cardShipment.visibility = View.VISIBLE
|
||||||
|
|
||||||
binding.tvCourierName.text = "$shipName $shipService"
|
binding.tvCourierName.text = "$shipName $shipService"
|
||||||
@ -300,6 +324,8 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
binding.tvShippingPrice.text = formatCurrency(shipPrice.toDouble())
|
binding.tvShippingPrice.text = formatCurrency(shipPrice.toDouble())
|
||||||
binding.rbJne.isChecked = true
|
binding.rbJne.isChecked = true
|
||||||
} else {
|
} else {
|
||||||
|
// Show empty shipping state
|
||||||
|
binding.containerEmptyShipping.visibility = View.VISIBLE
|
||||||
binding.cardShipment.visibility = View.GONE
|
binding.cardShipment.visibility = View.GONE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,10 +338,10 @@ class CheckoutActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Shipping method selection
|
// Shipping method selection
|
||||||
binding.layoutShippingMethod.setOnClickListener {
|
binding.tvShippingOption.setOnClickListener {
|
||||||
val addressId = viewModel.addressDetails.value?.id ?: 0
|
val addressId = viewModel.addressDetails.value?.id ?: 0
|
||||||
if (addressId <= 0) {
|
if (addressId <= 0) {
|
||||||
Toast.makeText(this, "Silahkan pilih metode pengiriman dahulu", Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, "Silahkan pilih alamat dahulu", Toast.LENGTH_SHORT).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,5 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#211E1E" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||||
|
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M7,18c-1.1,0 -1.99,0.9 -1.99,2S5.9,22 7,22s2,-0.9 2,-2 -0.9,-2 -2,-2zM1,2v2h2l3.6,7.59 -1.35,2.45c-0.16,0.28 -0.25,0.61 -0.25,0.96 0,1.1 0.9,2 2,2h12v-2L7.42,15c-0.14,0 -0.25,-0.11 -0.25,-0.25l0.03,-0.12 0.9,-1.63h7.45c0.75,0 1.41,-0.41 1.75,-1.03l3.58,-6.49c0.08,-0.14 0.12,-0.31 0.12,-0.48 0,-0.55 -0.45,-1 -1,-1L5.21,4l-0.94,-2L1,2zM17,18c-1.1,0 -1.99,0.9 -1.99,2s0.89,2 1.99,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
|
||||||
|
|
||||||
|
</vector>
|
||||||
5
app/src/main/res/drawable/baseline_payment_24.xml
Normal file
5
app/src/main/res/drawable/baseline_payment_24.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#211E1E" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||||
|
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M20,4L4,4c-1.11,0 -1.99,0.89 -1.99,2L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2L22,6c0,-1.11 -0.89,-2 -2,-2zM20,18L4,18v-6h16v6zM20,8L4,8L4,6h16v2z"/>
|
||||||
|
|
||||||
|
</vector>
|
||||||
@ -34,69 +34,50 @@
|
|||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<!-- Delivery Address Section -->
|
<!-- Delivery Address Section -->
|
||||||
<androidx.cardview.widget.CardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/card_delivery_address"
|
android:id="@+id/card_delivery_address"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="0dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="0dp"
|
android:layout_marginTop="16dp"
|
||||||
app:cardElevation="0dp">
|
app:cardCornerRadius="12dp"
|
||||||
|
app:cardElevation="2dp"
|
||||||
|
app:cardBackgroundColor="@color/white"
|
||||||
|
app:strokeColor="#E0E0E0"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:padding="20dp">
|
||||||
android:padding="16dp"
|
|
||||||
android:background="@color/white">
|
|
||||||
|
|
||||||
|
<!-- Header Row -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/address_header"
|
||||||
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/iv_location_icon"
|
android:id="@+id/iv_location_icon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:src="@drawable/baseline_location_pin_24"
|
android:src="@drawable/baseline_location_pin_24"
|
||||||
android:layout_gravity="center_vertical"
|
app:tint="@color/blue_300" />
|
||||||
app:tint="#3D84FF" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Alamat Pengiriman"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:fontFamily="@font/dmsans_medium"
|
|
||||||
android:layout_marginStart="8dp" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_places_address"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="-"
|
|
||||||
android:textColor="#5A5A5A"
|
|
||||||
android:paddingHorizontal="8dp"
|
|
||||||
android:paddingVertical="2dp"
|
|
||||||
android:textSize="12sp"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_marginStart="32dp" />
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_marginTop="8dp">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_address"
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="-"
|
android:text="Alamat Pengiriman"
|
||||||
android:textSize="14sp"
|
android:textSize="16sp"
|
||||||
android:layout_marginStart="32dp" />
|
android:textColor="@android:color/black"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:layout_marginStart="12dp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_change_address"
|
android:id="@+id/tv_change_address"
|
||||||
@ -104,178 +85,441 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Pilih Alamat"
|
android:text="Pilih Alamat"
|
||||||
android:textColor="#3D84FF"
|
android:textColor="#3D84FF"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:paddingVertical="4dp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
<View
|
<!-- Empty Address State -->
|
||||||
android:layout_width="match_parent"
|
<LinearLayout
|
||||||
android:layout_height="8dp"
|
android:id="@+id/container_empty_address"
|
||||||
android:background="@color/black_50" />
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:padding="8dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/address_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:text="Belum ada alamat dipilih"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:textColor="#757575"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:text="Pilih alamat pengiriman untuk melanjutkan"
|
||||||
|
android:textColor="#BDBDBD"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Selected Address Content -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/container_address"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/address_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<!-- Address Label -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_places_address"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Rumah"
|
||||||
|
android:textColor="#3D84FF"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:background="@drawable/bg_edit_text_background"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:paddingVertical="4dp"
|
||||||
|
tools:text="Rumah" />
|
||||||
|
|
||||||
|
<!-- Full Address -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_address"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:text="Jl. Raya Serang No. 123, Kecamatan Serang, Kabupaten Serang, Banten 42111"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:lineSpacingExtra="2dp"
|
||||||
|
tools:text="Jl. Raya Serang No. 123, Kecamatan Serang, Kabupaten Serang, Banten 42111" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
|
|
||||||
<!-- Product Items Section -->
|
<!-- Product Items Section -->
|
||||||
<androidx.cardview.widget.CardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/card_product"
|
android:id="@+id/card_product"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:cardElevation="0dp">
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:cardBackgroundColor="@color/white"
|
||||||
|
app:strokeColor="#E0E0E0"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:padding="20dp">
|
||||||
android:background="@color/white"
|
|
||||||
android:padding="16dp">
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<!-- Header Row -->
|
||||||
android:id="@+id/rv_product_items"
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/product_header"
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
tools:listitem="@layout/item_order_seller" />
|
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="8dp"
|
|
||||||
android:background="#F5F5F5" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="8dp"
|
|
||||||
android:background="@color/black_50" />
|
|
||||||
|
|
||||||
<!-- Shipping Method Section -->
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/layout_shipping_method"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:background="@color/white"
|
|
||||||
android:padding="16dp">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:gravity="center_vertical">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
|
||||||
android:text="Metode Pengiriman"
|
|
||||||
android:textSize="14sp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_shipping_option"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="Opsi Pengiriman"
|
|
||||||
android:textColor="#3D84FF"
|
|
||||||
android:textSize="14sp" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:id="@+id/card_shipment"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:visibility="gone"
|
|
||||||
app:cardCornerRadius="8dp"
|
|
||||||
app:cardElevation="0dp"
|
|
||||||
app:cardBackgroundColor="#F5F5F5">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:padding="12dp">
|
android:gravity="center_vertical"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
<RadioButton
|
<ImageView
|
||||||
android:id="@+id/rb_jne"
|
android:layout_width="24dp"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="24dp"
|
||||||
android:layout_height="wrap_content"
|
android:src="@drawable/baseline_local_grocery_store_24"
|
||||||
android:checked="true" />
|
app:tint="@color/blue_300" />
|
||||||
|
|
||||||
<LinearLayout
|
<TextView
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:orientation="vertical"
|
android:text="Produk Pesanan"
|
||||||
android:layout_marginStart="8dp">
|
android:textSize="16sp"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:layout_marginStart="12dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<!-- Empty Product State -->
|
||||||
android:id="@+id/tv_courier_name"
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/container_empty_products"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:text="JNE"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="16sp"
|
android:orientation="vertical"
|
||||||
android:fontFamily="@font/dmsans_medium" />
|
android:layout_marginTop="4dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:visibility="visible"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/product_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/tv_delivery_estimate"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="3 - 4 hari kerja"
|
|
||||||
android:textSize="14sp"
|
|
||||||
android:textColor="#757575" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_shipping_price"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Rp15.000"
|
android:layout_marginTop="4dp"
|
||||||
android:textSize="16sp"
|
android:text="Tidak ada produk"
|
||||||
android:fontFamily="@font/dmsans_medium"
|
android:fontFamily="@font/dmsans_medium"
|
||||||
android:layout_gravity="center_vertical" />
|
android:textColor="#757575"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="2dp"
|
||||||
|
android:text="Keranjang belanja kosong"
|
||||||
|
android:textColor="#BDBDBD"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:gravity="center" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<View
|
<!-- Products RecyclerView -->
|
||||||
android:layout_width="match_parent"
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:layout_height="8dp"
|
android:id="@+id/rv_product_items"
|
||||||
android:background="@color/black_50" />
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/product_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
tools:listitem="@layout/item_order_seller" />
|
||||||
|
|
||||||
<!-- Payment Method Section -->
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
<LinearLayout
|
</com.google.android.material.card.MaterialCardView>
|
||||||
android:id="@+id/layout_payment_method"
|
|
||||||
|
|
||||||
|
<com.google.android.material.card.MaterialCardView
|
||||||
|
android:id="@+id/card_shipping_method"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:background="@color/white"
|
android:layout_marginTop="8dp"
|
||||||
android:padding="16dp">
|
app:cardBackgroundColor="@color/white"
|
||||||
|
app:strokeColor="#E0E0E0"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<TextView
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Metode Pembayaran"
|
android:padding="20dp">
|
||||||
android:textSize="14sp"
|
|
||||||
android:layout_marginBottom="8dp" />
|
|
||||||
|
|
||||||
<TextView
|
<!-- Header Row -->
|
||||||
android:id="@+id/tvEmptyPayment"
|
<LinearLayout
|
||||||
|
android:id="@+id/shipping_header"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="Metode Pengiriman"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:layout_marginStart="12dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_shipping_option"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Pilih"
|
||||||
|
android:textColor="#3D84FF"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:paddingVertical="4dp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Empty Shipping State -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/container_empty_shipping"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:padding="12dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/shipping_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:text="Belum ada metode pengiriman"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:textColor="#757575"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:text="Pilih alamat terlebih dahulu"
|
||||||
|
android:textColor="#BDBDBD"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Selected Shipping Content -->
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:id="@+id/card_shipment"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:cardCornerRadius="8dp"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:cardBackgroundColor="#F5F5F5"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/shipping_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="12dp">
|
||||||
|
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/rb_jne"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:checked="true" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_marginStart="8dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_courier_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="JNE"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:fontFamily="@font/dmsans_medium" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_delivery_estimate"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="3 - 4 hari kerja"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textColor="#757575" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_shipping_price"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Rp15.000"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:layout_gravity="center_vertical" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Payment Method Section -->
|
||||||
|
<com.google.android.material.card.MaterialCardView
|
||||||
|
android:id="@+id/card_payment_method"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="16dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:cardBackgroundColor="@color/white"
|
||||||
|
app:strokeColor="#E0E0E0"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:visibility="gone"
|
android:padding="20dp">
|
||||||
android:textSize="12sp"
|
|
||||||
android:text="Pilih alamat terlebih dahulu"
|
|
||||||
android:layout_marginBottom="8dp"/>
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<!-- Header Row -->
|
||||||
android:id="@+id/rv_payment_info"
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/payment_header"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="0dp"
|
||||||
tools:listitem="@layout/item_payment_method" />
|
android:layout_height="wrap_content"
|
||||||
</LinearLayout>
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:src="@drawable/baseline_payment_24"
|
||||||
|
app:tint="@color/blue_300" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="Metode Pembayaran"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:layout_marginStart="12dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_payment_option"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Pilih"
|
||||||
|
android:textColor="#3D84FF"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:background="?attr/selectableItemBackgroundBorderless"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:paddingVertical="4dp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Empty Payment State -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/container_empty_payment"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:padding="12dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/payment_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:text="Belum ada metode pembayaran"
|
||||||
|
android:fontFamily="@font/dmsans_medium"
|
||||||
|
android:textColor="#757575"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvEmptyPayment"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:text="Pilih alamat terlebih dahulu"
|
||||||
|
android:textColor="#BDBDBD"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:gravity="center" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Payment Methods RecyclerView -->
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rv_payment_info"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/payment_header"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
tools:listitem="@layout/item_payment_method" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="8dp"
|
android:layout_height="8dp"
|
||||||
|
android:layout_marginVertical="8dp"
|
||||||
android:background="@color/black_50" />
|
android:background="@color/black_50" />
|
||||||
|
|
||||||
<!-- Price Summary Section -->
|
<!-- Price Summary Section -->
|
||||||
@ -303,7 +547,7 @@
|
|||||||
android:id="@+id/tv_item_total"
|
android:id="@+id/tv_item_total"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Rp65.000"
|
android:text="Rp0"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@ -324,7 +568,7 @@
|
|||||||
android:id="@+id/tv_shipping_fee"
|
android:id="@+id/tv_shipping_fee"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Rp15.000"
|
android:text="Rp0"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@ -351,8 +595,8 @@
|
|||||||
android:id="@+id/tv_total"
|
android:id="@+id/tv_total"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Rp75.000"
|
android:text="Rp0"
|
||||||
android:textColor="#3D84FF"
|
android:textColor="@color/blue_400"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:fontFamily="@font/dmsans_bold" />
|
android:fontFamily="@font/dmsans_bold" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@ -388,7 +632,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Rp75.000"
|
android:text="Rp75.000"
|
||||||
android:textColor="#3D84FF"
|
android:textColor="@color/blue_400"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
android:fontFamily="@font/dmsans_bold" />
|
android:fontFamily="@font/dmsans_bold" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
@ -401,7 +645,7 @@
|
|||||||
android:textAllCaps="false"
|
android:textAllCaps="false"
|
||||||
android:paddingHorizontal="32dp"
|
android:paddingHorizontal="32dp"
|
||||||
app:cornerRadius="8dp"
|
app:cornerRadius="8dp"
|
||||||
android:backgroundTint="#3D84FF" />
|
android:backgroundTint="@color/blue_500" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@ -9,10 +9,9 @@
|
|||||||
android:id="@+id/content"
|
android:id="@+id/content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="start"
|
android:gravity="center"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginVertical="8dp"
|
android:layout_marginVertical="8dp"
|
||||||
android:layout_marginBottom="4dp"
|
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
<RadioButton
|
<RadioButton
|
||||||
@ -26,12 +25,14 @@
|
|||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity=""
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/courier_name_cost"
|
android:id="@+id/courier_name_cost"
|
||||||
android:fontFamily="@font/dmsans_semibold"
|
android:fontFamily="@font/dmsans_semibold"
|
||||||
android:textSize="20sp"
|
android:textSize="14sp"
|
||||||
android:padding="4dp"
|
android:paddingHorizontal="2dp"
|
||||||
|
android:paddingTop="4dp"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="JNE"/>
|
android:text="JNE"/>
|
||||||
@ -39,15 +40,15 @@
|
|||||||
android:id="@+id/est_date"
|
android:id="@+id/est_date"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="16sp"
|
android:textSize="12sp"
|
||||||
android:paddingHorizontal="8dp"
|
android:paddingHorizontal="4dp"
|
||||||
android:text="Estimasi 3-4 hari"/>
|
android:text="Estimasi 3-4 hari"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/cost_price"
|
android:id="@+id/cost_price"
|
||||||
android:textSize="16sp"
|
android:textSize="14sp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:layout_margin="16dp"
|
android:layout_margin="16dp"
|
||||||
android:fontFamily="@font/dmsans_semibold"
|
android:fontFamily="@font/dmsans_semibold"
|
||||||
|
|||||||
Reference in New Issue
Block a user