From 45fddf6116372899a0b2d1da0d5327798d0c1212 Mon Sep 17 00:00:00 2001 From: shaulascr Date: Fri, 22 Aug 2025 19:34:11 +0700 Subject: [PATCH] add splash screen --- app/src/main/AndroidManifest.xml | 3 ++- .../ecommerce_serang/ui/auth/RegisterActivity.kt | 3 +++ .../alya/ecommerce_serang/ui/home/HomeFragment.kt | 10 +++------- .../ui/product/storeDetail/StoreDetailActivity.kt | 2 +- .../ui/product/storeDetail/StoreDetailViewModel.kt | 12 ++++++------ app/src/main/res/values/themes.xml | 8 +++++++- 6 files changed, 22 insertions(+), 16 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d69e8bc..71f298e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -173,7 +173,8 @@ + android:windowSoftInputMode="adjustResize" + android:theme="@style/Theme.App.SplashScreen"> diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterActivity.kt index 5948017..b240ac4 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterActivity.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/auth/RegisterActivity.kt @@ -6,6 +6,7 @@ import android.util.Log import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.ViewCompat import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat @@ -39,6 +40,8 @@ class RegisterActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + Thread.sleep(3000) + installSplashScreen() binding = ActivityRegisterBinding.inflate(layoutInflater) setContentView(binding.root) sessionManager = SessionManager(this) 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 25f5704..935d601 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 @@ -69,12 +69,10 @@ class HomeFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - initUi() setupRecyclerView() observeData() setupSearchView() - } private fun setupRecyclerView() { @@ -145,15 +143,14 @@ class HomeFragment : Fragment() { binding.loadingAll.root.visibility = View.VISIBLE binding.error.root.isVisible = false binding.home.isVisible = false - delay(5000) } is HomeUiState.Success -> { + val products = state.products + viewModel.loadStoresForProducts(products) + delay(2000) binding.loadingAll.root.visibility = View.GONE binding.error.root.isVisible = false binding.home.isVisible = true - val products = state.products - viewModel.loadStoresForProducts(products) // << add this here - productAdapter?.updateLimitedProducts(products) } is HomeUiState.Error -> { @@ -171,7 +168,6 @@ class HomeFragment : Fragment() { } } - } viewLifecycleOwner.lifecycleScope.launch { 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 ab00e14..97725af 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 @@ -151,7 +151,7 @@ class StoreDetailActivity : AppCompatActivity() { .into(binding.ivStoreImage) val ratingStr = it.storeRating - val ratingValue = ratingStr.toFloatOrNull() + val ratingValue = ratingStr?.toFloatOrNull() ?: 0f if (ratingValue != null && ratingValue > 0f) { binding.tvStoreRating.text = String.format("%.1f", ratingValue) diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailViewModel.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailViewModel.kt index 201df5f..d8ed85b 100644 --- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailViewModel.kt +++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/storeDetail/StoreDetailViewModel.kt @@ -45,11 +45,11 @@ class StoreDetailViewModel (private val repository: ProductRepository } // Filter by storeId and exclude current product _otherProducts.value = filteredProducts // Update LiveData } else if (result is Result.Error) { - Log.e("ProductViewModel", "Error loading other products: ${result.exception.message}") + Log.e("StoreDetailViewModel", "Error loading other products: ${result.exception.message}") _otherProducts.value = emptyList() // Set empty list on failure } } catch (e: Exception) { - Log.e("ProductViewModel", "Exception loading other products: ${e.message}") + Log.e("StoreDetailViewModel", "Exception loading other products: ${e.message}") _otherProducts.value = emptyList() } } @@ -67,7 +67,7 @@ class StoreDetailViewModel (private val repository: ProductRepository loadStoreDetail(storeId) } } catch (e: Exception) { - Log.e("ProductViewModel", "Error loading product details: ${e.message}") + Log.e("StoreDetailViewModel", "Error loading product details: ${e.message}") _error.value = "Failed to load product details: ${e.message}" } finally { _isLoading.value = false @@ -82,7 +82,7 @@ class StoreDetailViewModel (private val repository: ProductRepository val result = repository.fetchStoreDetail(storeId) _storeDetail.value = result } catch (e: Exception) { - Log.e("ProductViewModel", "Error loading store details: ${e.message}") + Log.e("StoreDetailViewModel", "Error loading store details: ${e.message}") _storeDetail.value = Result.Error(e) } } @@ -99,10 +99,10 @@ class StoreDetailViewModel (private val repository: ProductRepository if (result is Result.Success) { map[storeId] = result.data } else if (result is Result.Error) { - Log.e("ProductViewModel", "Failed to load storeId $storeId", result.exception) + Log.e("StoreDetailViewModel", "Failed to load storeId $storeId", result.exception) } } catch (e: Exception) { - Log.e("ProductViewModel", "Exception fetching storeId $storeId", e) + Log.e("StoreDetailViewModel", "Exception fetching storeId $storeId", e) } } diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index c0a2cc1..6ec5b1b 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -330,4 +330,10 @@ 5dp - \ No newline at end of file + + + \ No newline at end of file