diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e190b63..3b4535c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -64,6 +64,7 @@ dependencies { // AndroidX Security implementation(libs.androidx.security.crypto) + implementation(libs.androidx.room.runtime.android) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) diff --git a/app/src/main/java/com/example/livingai_lg/ui/screens/BuyScreen.kt b/app/src/main/java/com/example/livingai_lg/ui/screens/BuyScreen.kt index b281169..7eb094e 100644 --- a/app/src/main/java/com/example/livingai_lg/ui/screens/BuyScreen.kt +++ b/app/src/main/java/com/example/livingai_lg/ui/screens/BuyScreen.kt @@ -1,5 +1,6 @@ package com.example.livingai_lg.ui.screens +import android.util.Log import androidx.compose.foundation.Indication import androidx.compose.foundation.LocalIndication import androidx.compose.foundation.background @@ -20,6 +21,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp +import androidx.room.util.copy import com.example.livingai_lg.ui.components.AdSpaceBanner import com.example.livingai_lg.ui.components.AnimalTypeSelector import com.example.livingai_lg.ui.components.BuyAnimalCard @@ -39,11 +41,14 @@ import com.example.livingai_lg.ui.components.FilterOverlay import com.example.livingai_lg.ui.components.InfoOverlay import com.example.livingai_lg.ui.components.NotificationsOverlay import com.example.livingai_lg.ui.components.SortOverlay +import com.example.livingai_lg.ui.models.FiltersState +import com.example.livingai_lg.ui.models.TextFilter import com.example.livingai_lg.ui.models.sampleNotifications import com.example.livingai_lg.ui.navigation.AppScreen @Composable fun BuyScreen( + initialFilters: FiltersState = FiltersState(), onProductClick: (productId: String) -> Unit = {}, onBackClick: () -> Unit = {}, onNavClick: (route: String) -> Unit = {}, @@ -51,7 +56,9 @@ fun BuyScreen( onSortClick: () -> Unit = {}, onSellerClick: (sellerId: String) -> Unit = {}, ) { - val selectedAnimalType = remember { mutableStateOf(null) } + var activeFilters by remember { + mutableStateOf(initialFilters) + } val isSaved = remember { mutableStateOf(false) } var showAddressSelector by remember { mutableStateOf(false) } var selectedAddressId by remember { mutableStateOf(userProfile.addresses.find { address -> address.isPrimary }?.id) } @@ -138,8 +145,18 @@ fun BuyScreen( // Animal type filter buttons AnimalTypeSelector( animalTypes = animalTypes, - selectedAnimalType = - ) { } + selectedAnimalType = activeFilters.animal.value, + onAnimalTypeSelected = { animal-> + activeFilters = activeFilters.copy( + animal = TextFilter( + value = animal, + filterSet = true + ) + + ) + + } + ) // Ad space banner AdSpaceBanner( @@ -212,9 +229,12 @@ fun BuyScreen( ) FilterOverlay( + appliedFilters = activeFilters, visible = showFilterOverlay.value, onDismiss = { showFilterOverlay.value = false }, - onSubmitClick = { + onSubmitClick = { filters -> + Log.d("Filters", "$filters") + activeFilters = filters // apply filters } ) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2121c01..6aef9ad 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,6 +13,7 @@ ktor = "2.3.12" kotlinxSerialization = "1.6.3" securityCrypto = "1.1.0-alpha06" navigationComposeJvmstubs = "2.9.6" +roomRuntimeAndroid = "2.8.4" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -44,6 +45,7 @@ kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx- # AndroidX Security androidx-security-crypto = { group = "androidx.security", name = "security-crypto", version.ref = "securityCrypto" } androidx-navigation-compose-jvmstubs = { group = "androidx.navigation", name = "navigation-compose-jvmstubs", version.ref = "navigationComposeJvmstubs" } +androidx-room-runtime-android = { group = "androidx.room", name = "room-runtime-android", version.ref = "roomRuntimeAndroid" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" }