From 56565ecad4fc551e0b814b019cd81f1f027356d3 Mon Sep 17 00:00:00 2001 From: roel Date: Wed, 29 Oct 2025 13:28:26 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[FEAT/#424]=20=ED=83=90=EC=83=89=20?= =?UTF-8?q?=EB=B7=B0=20exploreFilterApplied=20tracker=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=20=EB=B0=8F=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/analytics/events/ExploreEvents.kt | 15 +++++++++++++++ .../explore/component/ExploreFilterSection.kt | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt b/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt index eb83e1f23..fdcc3a014 100644 --- a/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt +++ b/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt @@ -28,4 +28,19 @@ class ExploreEvents @Inject constructor( } ) } + + fun exploreFilterApplied( + categoryFilters: List, + regionFilters: List, + ageGroupFilters: List + ) { + tracker.track( + eventName = "explore_filter_applied", + properties = JSONObject().apply { + put("category_filters", categoryFilters) + put("region_filters", regionFilters) + put("age_group_filters", ageGroupFilters) + } + ) + } } diff --git a/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt b/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt index a3966cd61..f1abaafcc 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt @@ -86,6 +86,25 @@ fun ExploreFilterSection( onFilterReset = { tempFilterState.reset() }, onSave = { isFilterBottomSheetVisible = false + + val categoryFilters = filterItems.categories.filter { tempFilterState.categories[it.id] == true }.map { it.name } + val regionFilters = filterItems.regions.filter { tempFilterState.regions[it.id] == true }.map { it.name } + val ageGroupFilters = filterItems.ages.filter { tempFilterState.ages[it.id] == true }.map { it.name } + val isLocalReviewEnabled = filterItems.properties.firstOrNull()?.let { tempFilterState.properties[it.id] == true } ?: false + + tracker.commonEvents.filterApplied( + pageApplied = "explore", + localReviewFilter = isLocalReviewEnabled + ) + + if (categoryFilters.isNotEmpty() || regionFilters.isNotEmpty() || ageGroupFilters.isNotEmpty() || isLocalReviewEnabled) { + tracker.exploreEvents.exploreFilterApplied( + categoryFilters = categoryFilters, + regionFilters = regionFilters, + ageGroupFilters = ageGroupFilters + ) + } + onAction(ExploreAction.ApplyFilter(tempFilterState.toPersistent())) }, onToggleFilter = { id, type -> From 7cb52cc84bc79c68c071782d8ffe82ecfc3fd40f Mon Sep 17 00:00:00 2001 From: roel Date: Wed, 29 Oct 2025 13:37:20 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[FEAT/#424]=20=EC=A1=B0=EA=B1=B4=EB=AC=B8?= =?UTF-8?q?=EC=97=90=20isLocalReviewEnabled=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/explore/component/ExploreFilterSection.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt b/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt index f1abaafcc..95a12bb06 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt @@ -97,7 +97,7 @@ fun ExploreFilterSection( localReviewFilter = isLocalReviewEnabled ) - if (categoryFilters.isNotEmpty() || regionFilters.isNotEmpty() || ageGroupFilters.isNotEmpty() || isLocalReviewEnabled) { + if (categoryFilters.isNotEmpty() || regionFilters.isNotEmpty() || ageGroupFilters.isNotEmpty()) { tracker.exploreEvents.exploreFilterApplied( categoryFilters = categoryFilters, regionFilters = regionFilters, From 0c312d1347f1bba370221bef5487024c3d2364de Mon Sep 17 00:00:00 2001 From: roel Date: Mon, 24 Nov 2025 21:22:33 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[FEAT/#424]=20exploreFilterApplied=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0=20=ED=9B=84=20commonEvents.filterApplied=20?= =?UTF-8?q?=EB=A1=9C=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spoony/core/analytics/events/ExploreEvents.kt | 15 --------------- .../explore/component/ExploreFilterSection.kt | 11 ++++------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt b/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt index fdcc3a014..eb83e1f23 100644 --- a/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt +++ b/app/src/main/java/com/spoony/spoony/core/analytics/events/ExploreEvents.kt @@ -28,19 +28,4 @@ class ExploreEvents @Inject constructor( } ) } - - fun exploreFilterApplied( - categoryFilters: List, - regionFilters: List, - ageGroupFilters: List - ) { - tracker.track( - eventName = "explore_filter_applied", - properties = JSONObject().apply { - put("category_filters", categoryFilters) - put("region_filters", regionFilters) - put("age_group_filters", ageGroupFilters) - } - ) - } } diff --git a/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt b/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt index 95a12bb06..56bdac03e 100644 --- a/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt +++ b/app/src/main/java/com/spoony/spoony/presentation/explore/component/ExploreFilterSection.kt @@ -92,13 +92,10 @@ fun ExploreFilterSection( val ageGroupFilters = filterItems.ages.filter { tempFilterState.ages[it.id] == true }.map { it.name } val isLocalReviewEnabled = filterItems.properties.firstOrNull()?.let { tempFilterState.properties[it.id] == true } ?: false - tracker.commonEvents.filterApplied( - pageApplied = "explore", - localReviewFilter = isLocalReviewEnabled - ) - - if (categoryFilters.isNotEmpty() || regionFilters.isNotEmpty() || ageGroupFilters.isNotEmpty()) { - tracker.exploreEvents.exploreFilterApplied( + if (categoryFilters.isNotEmpty() || regionFilters.isNotEmpty() || ageGroupFilters.isNotEmpty() || isLocalReviewEnabled) { + tracker.commonEvents.filterApplied( + pageApplied = "explore", + localReviewFilter = isLocalReviewEnabled, categoryFilters = categoryFilters, regionFilters = regionFilters, ageGroupFilters = ageGroupFilters