Skip to content

Commit a4eab28

Browse files
authored
Merge pull request #719 from android/add-search-analytics
Add analytics for search queries
2 parents 2dd36e3 + aae307e commit a4eab28

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

core/analytics/src/main/java/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsEvent.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ data class AnalyticsEvent(
3434
class Types {
3535
companion object {
3636
const val SCREEN_VIEW = "screen_view" // (extras: SCREEN_NAME)
37+
const val VIEW_SEARCH_RESULTS = "view_search_results" // (extras: SEARCH_TERM)
3738
}
3839
}
3940

@@ -53,6 +54,7 @@ data class AnalyticsEvent(
5354
class ParamKeys {
5455
companion object {
5556
const val SCREEN_NAME = "screen_name"
57+
const val SEARCH_TERM = "search_term"
5658
}
5759
}
5860
}

feature/search/src/main/java/com/google/samples/apps/nowinandroid/feature/search/SearchViewModel.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ package com.google.samples.apps.nowinandroid.feature.search
1919
import androidx.lifecycle.SavedStateHandle
2020
import androidx.lifecycle.ViewModel
2121
import androidx.lifecycle.viewModelScope
22+
import com.google.samples.apps.nowinandroid.core.analytics.AnalyticsEvent
23+
import com.google.samples.apps.nowinandroid.core.analytics.AnalyticsEvent.Param
24+
import com.google.samples.apps.nowinandroid.core.analytics.AnalyticsHelper
2225
import com.google.samples.apps.nowinandroid.core.data.repository.RecentSearchRepository
2326
import com.google.samples.apps.nowinandroid.core.domain.GetRecentSearchQueriesUseCase
2427
import com.google.samples.apps.nowinandroid.core.domain.GetSearchContentsCountUseCase
@@ -42,6 +45,7 @@ class SearchViewModel @Inject constructor(
4245
recentSearchQueriesUseCase: GetRecentSearchQueriesUseCase,
4346
private val recentSearchRepository: RecentSearchRepository,
4447
private val savedStateHandle: SavedStateHandle,
48+
private val analyticsHelper: AnalyticsHelper,
4549
) : ViewModel() {
4650

4751
val searchQuery = savedStateHandle.getStateFlow(SEARCH_QUERY, "")
@@ -105,6 +109,14 @@ class SearchViewModel @Inject constructor(
105109
viewModelScope.launch {
106110
recentSearchRepository.insertOrReplaceRecentSearch(query)
107111
}
112+
analyticsHelper.logEvent(
113+
AnalyticsEvent(
114+
type = SEARCH_QUERY,
115+
extras = listOf(
116+
Param(SEARCH_QUERY, query),
117+
),
118+
),
119+
)
108120
}
109121

110122
fun clearRecentSearches() {

feature/search/src/test/java/com/google/samples/apps/nowinandroid/feature/search/SearchViewModelTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.google.samples.apps.nowinandroid.feature.search
1818

1919
import androidx.lifecycle.SavedStateHandle
20+
import com.google.samples.apps.nowinandroid.core.analytics.NoOpAnalyticsHelper
2021
import com.google.samples.apps.nowinandroid.core.domain.GetRecentSearchQueriesUseCase
2122
import com.google.samples.apps.nowinandroid.core.domain.GetSearchContentsCountUseCase
2223
import com.google.samples.apps.nowinandroid.core.domain.GetSearchContentsUseCase
@@ -68,6 +69,7 @@ class SearchViewModelTest {
6869
recentSearchQueriesUseCase = getRecentQueryUseCase,
6970
savedStateHandle = SavedStateHandle(),
7071
recentSearchRepository = recentSearchRepository,
72+
analyticsHelper = NoOpAnalyticsHelper(),
7173
)
7274
}
7375

0 commit comments

Comments
 (0)