From 94c081e839f429e4e414d910cfcdf551450d1b28 Mon Sep 17 00:00:00 2001 From: shaulascr Date: Fri, 22 Aug 2025 13:46:42 +0700 Subject: [PATCH] fix UI --- .../ecommerce_serang/ui/home/HomeFragment.kt | 8 +- .../ui/order/CheckoutActivity.kt | 20 ++--- .../ui/order/address/AddressActivity.kt | 7 +- .../storeDetail/StoreDetailActivity.kt | 3 +- .../ui/profile/ProfileFragment.kt | 6 +- .../res/layout/activity_detail_product.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 11 ++- .../main/res/layout/item_shipping_order.xml | 75 +++++++++++-------- app/src/main/res/layout/view_loading.xml | 4 +- 9 files changed, 79 insertions(+), 57 deletions(-) diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/home/HomeFragment.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/home/HomeFragment.kt index b83c4a2..f7d0c96 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/home/HomeFragment.kt @@ -33,6 +33,7 @@ import com.alya.ecommerce_serang.utils.SessionManager import com.alya.ecommerce_serang.utils.setLightStatusBar import com.alya.ecommerce_serang.utils.viewmodel.HomeUiState import com.alya.ecommerce_serang.utils.viewmodel.HomeViewModel +import kotlinx.coroutines.delay import kotlinx.coroutines.launch //@AndroidEntryPoint @@ -141,12 +142,13 @@ class HomeFragment : Fragment() { viewModel.uiState.collect { state -> when (state) { is HomeUiState.Loading -> { - binding.loadingAll.visibility = View.VISIBLE + binding.loadingAll.root.visibility = View.VISIBLE binding.error.root.isVisible = false binding.home.isVisible = false + delay(3000) } is HomeUiState.Success -> { - binding.loadingAll.visibility = View.GONE + binding.loadingAll.root.visibility = View.GONE binding.error.root.isVisible = false binding.home.isVisible = true val products = state.products @@ -155,7 +157,7 @@ class HomeFragment : Fragment() { productAdapter?.updateLimitedProducts(products) } is HomeUiState.Error -> { - binding.loadingAll.visibility = View.GONE + binding.loadingAll.root.visibility = View.GONE binding.error.root.isVisible = true binding.home.isVisible = false // binding.error.errorMessage.text = state.message diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutActivity.kt index 7b7bbfd..e6d7bc6 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutActivity.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/order/CheckoutActivity.kt @@ -270,16 +270,6 @@ class CheckoutActivity : AppCompatActivity() { } 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) { CheckoutSellerAdapter(checkoutData) } else { @@ -291,6 +281,16 @@ class CheckoutActivity : AppCompatActivity() { this.adapter = adapter isNestedScrollingEnabled = false } + + 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 } private fun updateOrderSummary() { diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/order/address/AddressActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/order/address/AddressActivity.kt index 1237eaa..8c0612d 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/order/address/AddressActivity.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/order/address/AddressActivity.kt @@ -52,12 +52,12 @@ class AddressActivity : AppCompatActivity() { windowInsets } + viewModel.fetchAddresses() setupToolbar() setupRecyclerView() setupObservers() - viewModel.fetchAddresses() } @@ -126,6 +126,11 @@ class AddressActivity : AppCompatActivity() { finish() } + override fun onResume() { + super.onResume() + viewModel.fetchAddresses() + } + companion object { const val EXTRA_ADDRESS_ID = "extra_address_id" } diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailActivity.kt index a041e87..ab00e14 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailActivity.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailActivity.kt @@ -64,10 +64,9 @@ class StoreDetailActivity : AppCompatActivity() { ) windowInsets } - + loadData() setupUI() setupObservers() - loadData() } private fun setupUI() { diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt index 0c669d8..6dce176 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/profile/ProfileFragment.kt @@ -95,12 +95,14 @@ class ProfileFragment : Fragment() { binding.cardLogout.visibility = View.GONE } + + viewModel.loadUserProfile() + viewModel.checkStoreUser() + observeUserProfile() observeStoreStatus() - viewModel.loadUserProfile() - viewModel.checkStoreUser() binding.cardBukaToko.setOnClickListener{ // if (hasStore == true) startActivity(Intent(requireContext(), MyStoreActivity::class.java)) diff --git a/app/src/main/res/layout/activity_detail_product.xml b/app/src/main/res/layout/activity_detail_product.xml index 562a3f3..5ee1000 100644 --- a/app/src/main/res/layout/activity_detail_product.xml +++ b/app/src/main/res/layout/activity_detail_product.xml @@ -500,7 +500,7 @@ android:id="@+id/empty_other_products" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="Belum ada ulasan" + android:text="Belum ada produk lainnya" android:textSize="16sp" android:textColor="@color/black_200" android:gravity="center" diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index e8641c4..2c3e32b 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -167,15 +167,14 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/searchContainer" /> - + app:layout_constraintEnd_toEndOf="parent"/> - - - - - - + android:layout_height="wrap_content" + android:orientation="horizontal" + android:gravity="center_vertical" + android:weightSum="1"> + + + + + + + + + + diff --git a/app/src/main/res/layout/view_loading.xml b/app/src/main/res/layout/view_loading.xml index d2e77cb..25c63f7 100644 --- a/app/src/main/res/layout/view_loading.xml +++ b/app/src/main/res/layout/view_loading.xml @@ -11,6 +11,8 @@ android:layout_gravity="center_horizontal" android:layout_marginBottom="8dp" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"/> + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent"/> \ No newline at end of file