mirror of
https://github.com/shaulascr/ecommerce_serang.git
synced 2025-08-10 09:22:21 +00:00
test
This commit is contained in:
@ -94,6 +94,8 @@ dependencies {
|
||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||
implementation("de.hdodenhof:circleimageview:3.1.0")
|
||||
|
||||
//maps
|
||||
implementation("org.osmdroid:osmdroid-android:6.0.3")
|
||||
|
||||
// implementation(libs.hilt.android)
|
||||
// kapt("com.google.dagger:hilt-compiler:2.48")
|
||||
|
@ -8,9 +8,12 @@
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
|
||||
<application
|
||||
android:allowBackup="true"
|
||||
android:enableOnBackInvokedCallback="true"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
@ -46,7 +49,7 @@
|
||||
android:name=".ui.profile.mystore.profile.payment_info.PaymentInfoActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.profile.mystore.profile.address.StoreAddressActivity"
|
||||
android:name=".ui.profile.mystore.profile.address.DetailStoreAddressActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.profile.mystore.product.ProductActivity"
|
||||
@ -70,7 +73,7 @@
|
||||
android:name=".ui.profile.mystore.balance.BalanceTopUpActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.profile.mystore.product.StoreProductDetailActivity"
|
||||
android:name=".ui.profile.mystore.product.DetailStoreProductActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".ui.profile.mystore.profile.DetailStoreProfileActivity"
|
||||
|
@ -20,7 +20,7 @@ import com.alya.ecommerce_serang.data.api.dto.Product
|
||||
import com.alya.ecommerce_serang.data.api.retrofit.ApiConfig
|
||||
import com.alya.ecommerce_serang.data.repository.ProductRepository
|
||||
import com.alya.ecommerce_serang.data.repository.Result
|
||||
import com.alya.ecommerce_serang.databinding.ActivityStoreProductDetailBinding
|
||||
import com.alya.ecommerce_serang.databinding.ActivityDetailStoreProductBinding
|
||||
import com.alya.ecommerce_serang.utils.viewmodel.ProductViewModel
|
||||
import com.alya.ecommerce_serang.utils.BaseViewModelFactory
|
||||
import com.alya.ecommerce_serang.utils.SessionManager
|
||||
@ -33,9 +33,9 @@ import java.io.FileOutputStream
|
||||
import kotlin.getValue
|
||||
import androidx.core.net.toUri
|
||||
|
||||
class StoreProductDetailActivity : AppCompatActivity() {
|
||||
class DetailStoreProductActivity : AppCompatActivity() {
|
||||
|
||||
private lateinit var binding: ActivityStoreProductDetailBinding
|
||||
private lateinit var binding: ActivityDetailStoreProductBinding
|
||||
private lateinit var sessionManager: SessionManager
|
||||
private lateinit var categoryList: List<CategoryItem>
|
||||
private var imageUri: Uri? = null
|
||||
@ -81,7 +81,7 @@ class StoreProductDetailActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = ActivityStoreProductDetailBinding.inflate(layoutInflater)
|
||||
binding = ActivityDetailStoreProductBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
val isEditing = intent.getBooleanExtra("is_editing", false)
|
@ -73,7 +73,7 @@ class ProductActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
binding.header.headerRightText.setOnClickListener {
|
||||
val intent = Intent(this, StoreProductDetailActivity::class.java)
|
||||
val intent = Intent(this, DetailStoreProductActivity::class.java)
|
||||
intent.putExtra("is_editing", false)
|
||||
startActivity(intent)
|
||||
}
|
||||
|
@ -3,13 +3,11 @@ package com.alya.ecommerce_serang.ui.profile.mystore.product
|
||||
import android.app.AlertDialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.alya.ecommerce_serang.R
|
||||
import com.alya.ecommerce_serang.data.api.dto.ProductsItem
|
||||
import com.alya.ecommerce_serang.databinding.FragmentProductOptionsBottomSheetBinding
|
||||
import com.alya.ecommerce_serang.utils.viewmodel.ProductViewModel
|
||||
@ -32,7 +30,7 @@ class ProductOptionsBottomSheetFragment(private val product: ProductsItem) : Bot
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
binding.btnEditProduct.setOnClickListener {
|
||||
val intent = Intent(requireContext(), StoreProductDetailActivity::class.java)
|
||||
val intent = Intent(requireContext(), DetailStoreProductActivity::class.java)
|
||||
intent.putExtra("product_id", product.id)
|
||||
intent.putExtra("is_editing", true)
|
||||
startActivity(intent)
|
||||
|
@ -7,11 +7,11 @@ import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import com.alya.ecommerce_serang.R
|
||||
|
||||
class StoreAddressActivity : AppCompatActivity() {
|
||||
class DetailStoreAddressActivity : AppCompatActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
enableEdgeToEdge()
|
||||
setContentView(R.layout.activity_store_address)
|
||||
setContentView(R.layout.activity_detail_store_address)
|
||||
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
|
||||
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
|
@ -0,0 +1,152 @@
|
||||
package com.alya.ecommerce_serang.ui.profile.mystore.sells
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.alya.ecommerce_serang.R
|
||||
import com.alya.ecommerce_serang.data.api.dto.OrdersItem
|
||||
|
||||
class SellsAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
|
||||
private var orderList: List<OrdersItem?> = emptyList()
|
||||
|
||||
// View Types for different statuses
|
||||
private val TYPE_PENDING = 0
|
||||
private val TYPE_PAYMENT = 1
|
||||
private val TYPE_SHIPMENT = 2
|
||||
private val TYPE_COMPLETED = 3
|
||||
private val TYPE_FAILED_PAYMENT = 4
|
||||
private val TYPE_FAILED_SHIPMENT = 5
|
||||
|
||||
// Method to submit list to the adapter
|
||||
fun submitList(orders: List<OrdersItem?>?) {
|
||||
orderList = orders ?: emptyList()
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||
return when (viewType) {
|
||||
TYPE_PENDING -> {
|
||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_order, parent, false)
|
||||
OrderViewHolder(view)
|
||||
}
|
||||
TYPE_PAYMENT -> {
|
||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_payment, parent, false)
|
||||
PaymentViewHolder(view)
|
||||
}
|
||||
TYPE_SHIPMENT -> {
|
||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_shipment, parent, false)
|
||||
ShipmentViewHolder(view)
|
||||
}
|
||||
// TYPE_COMPLETED -> {
|
||||
// val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_completed, parent, false)
|
||||
// CompletedViewHolder(view)
|
||||
// }
|
||||
// TYPE_FAILED_PAYMENT -> {
|
||||
// val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_failed_payment, parent, false)
|
||||
// FailedPaymentViewHolder(view)
|
||||
// }
|
||||
// TYPE_FAILED_SHIPMENT -> {
|
||||
// val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_failed_shipment, parent, false)
|
||||
// FailedShipmentViewHolder(view)
|
||||
// }
|
||||
else -> {
|
||||
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sells_order, parent, false)
|
||||
OrderViewHolder(view)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Determine the view type based on the order status
|
||||
override fun getItemViewType(position: Int): Int {
|
||||
val order = orderList[position]
|
||||
return when (order?.status) {
|
||||
"pending" -> TYPE_PENDING
|
||||
"paid" -> TYPE_PAYMENT
|
||||
"shipped" -> TYPE_SHIPMENT
|
||||
"completed" -> TYPE_COMPLETED
|
||||
"failedPayment" -> TYPE_FAILED_PAYMENT
|
||||
"failedShipment" -> TYPE_FAILED_SHIPMENT
|
||||
else -> TYPE_PENDING // Default to pending if no status is matched
|
||||
}
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
|
||||
val order = orderList[position]
|
||||
when (holder) {
|
||||
is OrderViewHolder -> holder.bind(order)
|
||||
is PaymentViewHolder -> holder.bind(order)
|
||||
is ShipmentViewHolder -> holder.bind(order)
|
||||
is CompletedViewHolder -> holder.bind(order)
|
||||
is FailedPaymentViewHolder -> holder.bind(order)
|
||||
is FailedShipmentViewHolder -> holder.bind(order)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getItemCount(): Int = orderList.size
|
||||
|
||||
// ViewHolder for 'pending' status (Order)
|
||||
class OrderViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
private val tvOrderNumber: TextView = itemView.findViewById(R.id.tv_order_number)
|
||||
private val tvOrderCustomer: TextView = itemView.findViewById(R.id.tv_order_customer)
|
||||
private val tvOrderPrice: TextView = itemView.findViewById(R.id.tv_order_price)
|
||||
|
||||
fun bind(order: OrdersItem?) {
|
||||
tvOrderNumber.text = "Order #${order?.orderId}"
|
||||
tvOrderCustomer.text = order?.username
|
||||
tvOrderPrice.text = "Total: ${order?.totalAmount}"
|
||||
}
|
||||
}
|
||||
|
||||
// ViewHolder for 'paid' status (Payment)
|
||||
class PaymentViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
private val tvPaymentNumber: TextView = itemView.findViewById(R.id.tv_payment_number)
|
||||
private val tvPaymentCustomer: TextView = itemView.findViewById(R.id.tv_payment_customer)
|
||||
private val tvPaymentPrice: TextView = itemView.findViewById(R.id.tv_payment_price)
|
||||
|
||||
fun bind(order: OrdersItem?) {
|
||||
tvPaymentNumber.text = "Order #${order?.orderId}"
|
||||
tvPaymentCustomer.text = order?.username
|
||||
tvPaymentPrice.text = "Paid: ${order?.totalAmount}"
|
||||
}
|
||||
}
|
||||
|
||||
// ViewHolder for 'shipped' status (Shipment)
|
||||
class ShipmentViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
private val tvShipmentNumber: TextView = itemView.findViewById(R.id.tv_shipment_number)
|
||||
private val tvShipmentLocation: TextView = itemView.findViewById(R.id.tv_shipment_location)
|
||||
|
||||
fun bind(order: OrdersItem?) {
|
||||
tvShipmentNumber.text = "Shipment #${order?.orderId}"
|
||||
tvShipmentLocation.text = "Location: ${order?.address?.subdistrict}"
|
||||
}
|
||||
}
|
||||
|
||||
// ViewHolder for 'completed' status
|
||||
class CompletedViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
//private val tvCompletedNumber: TextView = itemView.findViewById(R.id.tv_completed_number)
|
||||
|
||||
fun bind(order: OrdersItem?) {
|
||||
// tvCompletedNumber.text = "Completed Order #${order?.orderId}"
|
||||
}
|
||||
}
|
||||
|
||||
// ViewHolder for 'failedPayment' status
|
||||
class FailedPaymentViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
//private val tvFailedPaymentNumber: TextView = itemView.findViewById(R.id.tv_failed_payment_number)
|
||||
|
||||
fun bind(order: OrdersItem?) {
|
||||
//tvFailedPaymentNumber.text = "Failed Payment Order #${order?.orderId}"
|
||||
}
|
||||
}
|
||||
|
||||
// ViewHolder for 'failedShipment' status
|
||||
class FailedShipmentViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||
//private val tvFailedShipmentNumber: TextView = itemView.findViewById(R.id.tv_failed_shipment_number)
|
||||
|
||||
fun bind(order: OrdersItem?) {
|
||||
//tvFailedShipmentNumber.text = "Failed Shipment Order #${order?.orderId}"
|
||||
}
|
||||
}
|
||||
}
|
@ -24,6 +24,8 @@ class SellsFragment : Fragment() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
// val repository = OrderRepository(ApiService.create())
|
||||
viewModel = ViewModelProvider(this)[SellsViewModel::class.java]
|
||||
|
||||
val tabs = listOf(
|
||||
|
@ -8,8 +8,8 @@ import android.view.ViewGroup
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alya.ecommerce_serang.R
|
||||
import com.alya.ecommerce_serang.databinding.FragmentAllSellsBinding
|
||||
import com.alya.ecommerce_serang.ui.profile.mystore.sells.SellsAdapter
|
||||
import com.alya.ecommerce_serang.utils.viewmodel.SellsViewModel
|
||||
|
||||
class AllSellsFragment : Fragment() {
|
||||
@ -29,13 +29,13 @@ class AllSellsFragment : Fragment() {
|
||||
|
||||
viewModel = ViewModelProvider(this).get(SellsViewModel::class.java)
|
||||
|
||||
// val adapter = SellsAdapter()
|
||||
// binding.rvAllSells.layoutManager = LinearLayoutManager(context)
|
||||
// binding.rvAllSells.adapter = adapter
|
||||
//
|
||||
// viewModel.loadAllSells()
|
||||
// viewModel.sellsList.observe(viewLifecycleOwner, Observer { sells ->
|
||||
// adapter.submitList(sells)
|
||||
// })
|
||||
val adapter = SellsAdapter()
|
||||
binding.rvAllSells.layoutManager = LinearLayoutManager(context)
|
||||
binding.rvAllSells.adapter = adapter
|
||||
|
||||
viewModel.loadOrdersByStatus("all")
|
||||
viewModel.sellsList.observe(viewLifecycleOwner, Observer { sells ->
|
||||
adapter.submitList(sells)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
285
app/src/main/res/layout/activity_detail_store_address.xml
Normal file
285
app/src/main/res/layout/activity_detail_store_address.xml
Normal file
@ -0,0 +1,285 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout 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"
|
||||
android:fitsSystemWindows="true"
|
||||
android:id="@+id/main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".ui.profile.mystore.profile.address.DetailStoreAddressActivity">
|
||||
|
||||
<include
|
||||
android:id="@+id/header"
|
||||
layout="@layout/header" />
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingVertical="@dimen/vertical_safe_area"
|
||||
android:paddingHorizontal="@dimen/horizontal_safe_area"
|
||||
android:layout_marginTop="19dp">
|
||||
|
||||
<!-- Nama Lokasi -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Nama Lokasi"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edt_nama_lokasi"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_text_field_disabled"
|
||||
android:text="Alamat Toko"
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:layout_marginTop="10dp"
|
||||
android:enabled="false"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Jalan -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Jalan"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edt_street"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_text_field"
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:layout_marginTop="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Kecamatan -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Kecamatan"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edt_subdistrict"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_text_field"
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:layout_marginTop="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Kota/Kabupaten -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Kota atau Kabupaten"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<!-- Spinner Dropdown dengan Chevron -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@drawable/bg_text_field"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginTop="10dp">
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/spinner_city"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:background="@null"/>
|
||||
|
||||
<!-- Chevron Down Icon -->
|
||||
<ImageView
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:src="@drawable/ic_down"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:contentDescription="Chevron Down" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Provinsi -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Provinsi"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<!-- Spinner Dropdown dengan Chevron -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@drawable/bg_text_field"
|
||||
android:gravity="center_vertical"
|
||||
android:layout_marginTop="10dp">
|
||||
|
||||
<Spinner
|
||||
android:id="@+id/spinner_province"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:background="@null"/>
|
||||
|
||||
<!-- Chevron Down Icon -->
|
||||
<ImageView
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:src="@drawable/ic_down"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:contentDescription="Chevron Down" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Kode Pos -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Kode Pos"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edt_postal_code"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bg_text_field"
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:layout_marginTop="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Detail Alamat -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Detail Alamat"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/edt_detail_address"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="70dp"
|
||||
android:background="@drawable/bg_text_field"
|
||||
android:hint="Isi detail alamat di sini, contoh: Blok, No. Kavling, dsb."
|
||||
android:padding="8dp"
|
||||
style="@style/body_small"
|
||||
android:inputType="text|textMultiLine"
|
||||
android:gravity="top"
|
||||
android:layout_marginTop="10dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Pinpoint Lokasi -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginBottom="24dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Pinpoint Lokasi"
|
||||
style="@style/body_medium"
|
||||
android:layout_marginEnd="4dp"/>
|
||||
|
||||
<!-- Map -->
|
||||
<org.osmdroid.views.MapView android:id="@+id/map"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="220dp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_location_display"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Lokasi: Tidak dipilih"
|
||||
style="@style/body_medium"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn_save_address"
|
||||
android:text="Simpan Perubahan"
|
||||
style="@style/button.large.disabled.long"
|
||||
android:enabled="false"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</LinearLayout>
|
@ -7,7 +7,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".ui.profile.mystore.product.StoreProductDetailActivity">
|
||||
tools:context=".ui.profile.mystore.product.DetailStoreProductActivity">
|
||||
|
||||
<include
|
||||
android:id="@+id/header"
|
@ -142,6 +142,36 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Toko Aktif -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="Toko Aktif"
|
||||
style="@style/label_large"/>
|
||||
|
||||
<Switch
|
||||
android:id="@+id/switch_is_active"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
tools:ignore="UseSwitchCompatOrMaterialXml" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Alamat Toko -->
|
||||
@ -170,32 +200,6 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Status Toko -->
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_status"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:paddingVertical="10dp"
|
||||
android:paddingHorizontal="@dimen/horizontal_safe_area"
|
||||
android:gravity="center">
|
||||
|
||||
<TextView
|
||||
style="@style/label_large"
|
||||
android:id="@+id/tv_status"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="Atur Status Toko" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_status"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:src="@drawable/ic_navigate_next"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Metode Pembayaran -->
|
||||
<LinearLayout
|
||||
android:id="@+id/layout_payment_method"
|
||||
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout 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"
|
||||
android:fitsSystemWindows="true"
|
||||
android:id="@+id/main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.profile.mystore.profile.address.StoreAddressActivity">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -20,6 +20,8 @@ lifecycleViewmodelKtx = "2.8.7"
|
||||
fragmentKtx = "1.5.6"
|
||||
navigationFragmentKtx = "2.8.5"
|
||||
navigationUiKtx = "2.8.5"
|
||||
playServicesLocation = "21.3.0"
|
||||
playServicesMaps = "19.2.0"
|
||||
recyclerview = "1.4.0"
|
||||
|
||||
[libraries]
|
||||
@ -40,6 +42,8 @@ androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifec
|
||||
androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "fragmentKtx" }
|
||||
androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigationFragmentKtx" }
|
||||
androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigationUiKtx" }
|
||||
play-services-location = { module = "com.google.android.gms:play-services-location", version.ref = "playServicesLocation" }
|
||||
play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "playServicesMaps" }
|
||||
|
||||
[plugins]
|
||||
android-application = { id = "com.android.application", version.ref = "agp" }
|
||||
|
Reference in New Issue
Block a user