diff --git a/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/RegisterRequest.kt b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/RegisterRequest.kt
index 19581dc..d1a4482 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/RegisterRequest.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/data/api/dto/RegisterRequest.kt
@@ -12,7 +12,7 @@ data class RegisterRequest (
val birthDate: String?,
@SerializedName("userimg")
- val image: String?,
+ val image: String? = null,
val otp: String? = null
)
\ No newline at end of file
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/MainActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/MainActivity.kt
index 3877327..0500df0 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/MainActivity.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/MainActivity.kt
@@ -1,7 +1,11 @@
package com.alya.ecommerce_serang.ui
import android.os.Bundle
+import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController
@@ -25,7 +29,23 @@ class MainActivity : AppCompatActivity() {
setContentView(binding.root)
sessionManager = SessionManager(this)
- apiService = ApiConfig.getApiService(sessionManager) // Inject SessionManager
+ apiService = ApiConfig.getApiService(sessionManager)
+
+ WindowCompat.setDecorFitsSystemWindows(window, false)
+
+ enableEdgeToEdge()
+
+ // Apply insets to your root layout
+ ViewCompat.setOnApplyWindowInsetsListener(binding.root) { view, windowInsets ->
+ val systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+ view.setPadding(
+ systemBars.left,
+ systemBars.top,
+ systemBars.right,
+ 0
+ )
+ windowInsets
+ }
setupBottomNavigation()
observeDestinationChanges()
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 ec126d1..dbe2793 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
@@ -1,5 +1,6 @@
package com.alya.ecommerce_serang.ui.auth
+import android.app.DatePickerDialog
import android.content.Intent
import android.os.Bundle
import android.util.Log
@@ -7,6 +8,9 @@ import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
import com.alya.ecommerce_serang.data.api.dto.RegisterRequest
import com.alya.ecommerce_serang.data.api.retrofit.ApiConfig
import com.alya.ecommerce_serang.data.repository.Result
@@ -16,6 +20,9 @@ import com.alya.ecommerce_serang.ui.MainActivity
import com.alya.ecommerce_serang.utils.BaseViewModelFactory
import com.alya.ecommerce_serang.utils.SessionManager
import com.alya.ecommerce_serang.utils.viewmodel.RegisterViewModel
+import java.text.SimpleDateFormat
+import java.util.Calendar
+import java.util.Locale
class RegisterActivity : AppCompatActivity() {
private lateinit var binding: ActivityRegisterBinding
@@ -38,10 +45,24 @@ class RegisterActivity : AppCompatActivity() {
finish()
}
+ WindowCompat.setDecorFitsSystemWindows(window, false)
+
enableEdgeToEdge()
+
+ // Apply insets to your root layout
+ ViewCompat.setOnApplyWindowInsetsListener(binding.root) { view, windowInsets ->
+ val systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+ view.setPadding(
+ systemBars.left,
+ systemBars.top,
+ systemBars.right,
+ systemBars.bottom
+ )
+ windowInsets
+ }
+
binding = ActivityRegisterBinding.inflate(layoutInflater)
setContentView(binding.root)
-
// Observe OTP state
observeOtpState()
@@ -53,7 +74,7 @@ class RegisterActivity : AppCompatActivity() {
val phone = binding.etNumberPhone.text.toString()
val username = binding.etUsername.text.toString()
val name = binding.etFullname.text.toString()
- val image = "not yet"
+ val image = null
val userData = RegisterRequest(name, email, password, username, phone, birthDate, image)
@@ -94,6 +115,9 @@ class RegisterActivity : AppCompatActivity() {
startActivity(intent)
}
+ binding.etBirthDate.setOnClickListener{
+ showDatePicker()
+ }
}
private fun observeOtpState() {
@@ -140,4 +164,21 @@ class RegisterActivity : AppCompatActivity() {
}
}
}
+
+ private fun showDatePicker() {
+ val calendar = Calendar.getInstance()
+ val year = calendar.get(Calendar.YEAR)
+ val month = calendar.get(Calendar.MONTH)
+ val day = calendar.get(Calendar.DAY_OF_MONTH)
+
+ DatePickerDialog(
+ this,
+ { _, selectedYear, selectedMonth, selectedDay ->
+ calendar.set(selectedYear, selectedMonth, selectedDay)
+ val sdf = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault())
+ binding.etBirthDate.setText(sdf.format(calendar.time))
+ },
+ year, month, day
+ ).show()
+ }
}
\ No newline at end of file
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 b9b6fc4..381ad69 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
@@ -49,6 +49,7 @@ class HomeFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sessionManager = SessionManager(requireContext())
+
}
override fun onCreateView(
@@ -62,6 +63,7 @@ class HomeFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+
initUi()
setupRecyclerView()
observeData()
diff --git a/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt b/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt
index bb10bdb..4be3e57 100644
--- a/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt
+++ b/app/src/main/java/com/alya/ecommerce_serang/ui/product/DetailProductActivity.kt
@@ -9,8 +9,12 @@ import android.widget.Button
import android.widget.ImageButton
import android.widget.TextView
import android.widget.Toast
+import androidx.activity.enableEdgeToEdge
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowCompat
+import androidx.core.view.WindowInsetsCompat
import androidx.recyclerview.widget.LinearLayoutManager
import com.alya.ecommerce_serang.BuildConfig.BASE_URL
import com.alya.ecommerce_serang.R
@@ -57,6 +61,22 @@ class DetailProductActivity : AppCompatActivity() {
sessionManager = SessionManager(this)
apiService = ApiConfig.getApiService(sessionManager)
+ WindowCompat.setDecorFitsSystemWindows(window, false)
+
+ enableEdgeToEdge()
+
+ // Apply insets to your root layout
+ ViewCompat.setOnApplyWindowInsetsListener(binding.root) { view, windowInsets ->
+ val systemBars = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+ view.setPadding(
+ systemBars.left,
+ systemBars.top,
+ systemBars.right,
+ systemBars.bottom
+ )
+ windowInsets
+ }
+
setupUI()
setupObservers()
loadData()
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 b527fd9..d1921f9 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
@@ -39,7 +39,6 @@ class ProfileFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sessionManager = SessionManager(requireContext())
-
}
override fun onCreateView(
diff --git a/app/src/main/res/color/bottom_nav_icon_color.xml b/app/src/main/res/color/bottom_nav_icon_color.xml
new file mode 100644
index 0000000..1da8b16
--- /dev/null
+++ b/app/src/main/res/color/bottom_nav_icon_color.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/color/bottom_nav_text_color.xml b/app/src/main/res/color/bottom_nav_text_color.xml
new file mode 100644
index 0000000..481be1a
--- /dev/null
+++ b/app/src/main/res/color/bottom_nav_text_color.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bottom_nav_background.xml b/app/src/main/res/drawable/bottom_nav_background.xml
new file mode 100644
index 0000000..68362a6
--- /dev/null
+++ b/app/src/main/res/drawable/bottom_nav_background.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/outline_calendar_today_24.xml b/app/src/main/res/drawable/outline_calendar_today_24.xml
new file mode 100644
index 0000000..5ca556c
--- /dev/null
+++ b/app/src/main/res/drawable/outline_calendar_today_24.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_detail_product.xml b/app/src/main/res/layout/activity_detail_product.xml
index f9182d4..65458ad 100644
--- a/app/src/main/res/layout/activity_detail_product.xml
+++ b/app/src/main/res/layout/activity_detail_product.xml
@@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/white"
+ android:theme="@style/Theme.Ecommerce_serang"
tools:context=".ui.product.DetailProductActivity">
@@ -147,7 +147,8 @@
android:id="@+id/recyclerViewReviews"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
+ android:layout_marginTop="4dp"
+ android:layout_marginBottom="8dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="1"
tools:listitem="@layout/item_review" />
@@ -392,6 +393,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
+ android:layout_marginBottom="8dp"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="3"
@@ -419,7 +421,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
- android:backgroundTint="@color/white"
app:contentInsetStart="0dp">
-
+ app:itemIconSize="32dp"
+ app:itemPaddingBottom="4dp"
+ app:itemTextAppearanceActive="@style/BottomNavigationTextStyle"
+ app:itemTextAppearanceInactive="@style/BottomNavigationTextStyle"
+ android:elevation="8dp"
+ app:itemIconTint="@color/bottom_nav_icon_color"
+ app:itemTextColor="@color/bottom_nav_text_color" />
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_register.xml b/app/src/main/res/layout/activity_register.xml
index a23ce3e..6485770 100644
--- a/app/src/main/res/layout/activity_register.xml
+++ b/app/src/main/res/layout/activity_register.xml
@@ -5,7 +5,7 @@
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/white"
+ android:theme="@style/Theme.Ecommerce_serang"
tools:context=".ui.auth.RegisterActivity">
+
+ style="@style/SharpedBorderStyleOutline"
+ app:endIconMode="custom"
+ app:endIconDrawable="@drawable/outline_calendar_today_24">
-
+ android:hint="Pilih tanggal"
+ android:focusable="false"
+ android:clickable="true"
+ android:minHeight="50dp"/>
@@ -58,8 +61,8 @@
android:layout_marginEnd="32dp"
android:text="@string/show_all"
android:textAllCaps="false"
- android:textColor="@color/blue1"
- android:textSize="16sp"
+ android:textColor="@color/blue_600"
+ android:textSize="14sp"
app:layout_constraintBaseline_toBaselineOf="@id/categoriesText"
app:layout_constraintEnd_toEndOf="parent" />
@@ -67,7 +70,7 @@
android:id="@+id/categories"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="19dp"
+ android:layout_marginTop="8dp"
android:clipChildren="false"
android:clipToPadding="false"
android:orientation="horizontal"
@@ -77,16 +80,15 @@
tools:layout_editor_absoluteX="0dp"
tools:listitem="@layout/item_category_home" />
-
-
@@ -98,7 +100,7 @@
android:layout_marginEnd="32dp"
android:text="@string/show_all"
android:textAllCaps="false"
- android:textColor="@color/blue1"
+ android:textColor="@color/blue_600"
android:textSize="16sp"
app:layout_constraintBaseline_toBaselineOf="@id/new_products_text"
app:layout_constraintEnd_toEndOf="parent" />
diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml
index afbd7ec..22363c9 100644
--- a/app/src/main/res/layout/fragment_profile.xml
+++ b/app/src/main/res/layout/fragment_profile.xml
@@ -5,6 +5,7 @@
android:layout_height="match_parent"
android:background="@color/white"
xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:theme="@style/Theme.Ecommerce_serang"
tools:context=".ui.profile.ProfileFragment">
@@ -320,12 +321,5 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tvLogout" />
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/view_search.xml b/app/src/main/res/layout/view_search.xml
index 2a2a3c9..3f7d5b6 100644
--- a/app/src/main/res/layout/view_search.xml
+++ b/app/src/main/res/layout/view_search.xml
@@ -12,6 +12,7 @@
android:hint="@string/fragment_home_search"
android:textColor="@color/soft_gray"
android:textSize="16sp"
+ android:fontFamily="@font/dmsans_regular"
android:layout_marginStart="8dp"
android:drawablePadding="8dp"
android:paddingHorizontal="25dp"
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 8aa4f32..25b40eb 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -41,4 +41,9 @@
#E8ECF2
#7D8FAB
#489EC6
+
+ #489EC6
+ #8E8E8E
+ #489EC6
+ #8E8E8E
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 06b23b1..dcf0226 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -25,4 +25,39 @@
- 8dp
- @color/blue_500
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 0da93ba..24782af 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,16 +1,45 @@