From ff384b7e14aa3dae7c5359a7bb4c6e1aff63084c Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 9 Oct 2025 16:05:47 +0200 Subject: [PATCH 1/2] Feat: Implement click action on notifications to show user surveys --- .../main/kotlin/com/woocommerce/android/AppUrls.kt | 2 ++ .../com/woocommerce/android/ui/main/MainActivity.kt | 11 +++++++++++ .../android/ui/main/MainActivityViewModel.kt | 11 +++++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt index 8891c69df6e7..60fc6b559376 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt @@ -35,6 +35,8 @@ object AppUrls { const val CROWDSIGNAL_MAIN_SURVEY = "https://automattic.survey.fm/woo-app-general-feedback-user-survey" const val CROWDSIGNAL_PRODUCT_SURVEY = "https://automattic.survey.fm/woo-app-feature-feedback-products" + const val CROWDSIGNAL_WOO_POS_SURVEY_POTENTIAL_USER = "https://automattic.survey.fm/woo-pos-potential-user-survey" + const val CROWDSIGNAL_WOO_POS_SURVEY_CURRENT_USER = "https://automattic.survey.fm/woo-pos-current-user-survey" const val CROWDSIGNAL_ANALYTICS_HUB_SURVEY = "https://automattic.survey.fm/woo-app-analytics-hub-production" diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivity.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivity.kt index 7b1761f9636e..c97a3194dfc9 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivity.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivity.kt @@ -877,6 +877,8 @@ class MainActivity : // Propagate it to the DashboardBlazeCard event.isHandled = false } + + is MainActivityViewModel.ViewSurvey -> showSurvey(event.surveyUrl) } } @@ -1286,6 +1288,15 @@ class MainActivity : } } + private fun showSurvey(surveyUrl: String) { + NavGraphMainDirections.actionGlobalFeedbackSurveyFragment( + surveyType = SurveyType.MAIN, + customUrl = surveyUrl + ).apply { + navController.navigateSafely(this) + } + } + override fun updateOfflineStatusBar(isConnected: Boolean) { if (isConnected) binding.offlineBar.hide() else binding.offlineBar.show() } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivityViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivityViewModel.kt index e52ee91e2c02..685f21baa09a 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivityViewModel.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/main/MainActivityViewModel.kt @@ -6,6 +6,7 @@ import android.os.Build.VERSION_CODES import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.asLiveData import com.woocommerce.android.AppPrefs +import com.woocommerce.android.AppUrls import com.woocommerce.android.R import com.woocommerce.android.analytics.AnalyticsEvent import com.woocommerce.android.analytics.AnalyticsEvent.REVIEW_OPEN @@ -289,8 +290,13 @@ class MainActivityViewModel @Inject constructor( BLAZE_NO_CAMPAIGN_REMINDER, BLAZE_ABANDONED_CAMPAIGN_REMINDER -> triggerEvent(LaunchBlazeCampaignCreation) - WOO_POS_SURVEY_POTENTIAL_USER_REMINDER, - WOO_POS_SURVEY_CURRENT_USER_REMINDER -> error("POS Survey notifications are not implemented yet") + WOO_POS_SURVEY_POTENTIAL_USER_REMINDER -> triggerEvent( + ViewSurvey(AppUrls.CROWDSIGNAL_WOO_POS_SURVEY_POTENTIAL_USER) + ) + + WOO_POS_SURVEY_CURRENT_USER_REMINDER -> triggerEvent( + ViewSurvey(AppUrls.CROWDSIGNAL_WOO_POS_SURVEY_CURRENT_USER) + ) } } } @@ -338,6 +344,7 @@ class MainActivityViewModel @Inject constructor( data class ViewUrlInWebView( val url: String, ) : Event() + data class ViewSurvey(val surveyUrl: String) : Event() object ShortcutOpenPayments : Event() object ShortcutOpenOrderCreation : Event() From ec669d9a8ecd94d69e973f60b04d3b1ac8bc8c68 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 9 Oct 2025 16:14:54 +0200 Subject: [PATCH 2/2] Feat: Add filter button visibility and update survey notification descriptions --- .../android/ui/bookings/list/BookingListScreen.kt | 6 ++++-- WooCommerce/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt index 4164c0bbc491..018ec85bac80 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/bookings/list/BookingListScreen.kt @@ -491,7 +491,8 @@ private fun EmptyViewPreview() { controlsState = BookingListControlsState( selectedSortOption = BookingListSortOption.NewestToOldest, onSortClick = {}, - onFilterClick = {} + onFilterClick = {}, + isFilterButtonVisible = true ), sortBottomSheetState = null, searchState = BookingListSearchState( @@ -523,7 +524,8 @@ private fun EmptySearchResultsViewPreview() { controlsState = BookingListControlsState( selectedSortOption = BookingListSortOption.NewestToOldest, onSortClick = {}, - onFilterClick = {} + onFilterClick = {}, + isFilterButtonVisible = true ), sortBottomSheetState = null, searchState = BookingListSearchState( diff --git a/WooCommerce/src/main/res/values/strings.xml b/WooCommerce/src/main/res/values/strings.xml index dd6de93e8b92..51f78df0067e 100644 --- a/WooCommerce/src/main/res/values/strings.xml +++ b/WooCommerce/src/main/res/values/strings.xml @@ -3211,9 +3211,9 @@ Thinking about boosting your sales? Get your products seen by millions with Blaze and boost your sales Thinking about in-person sales? - Help us build tools you\'d actually use. 2-minute survey to build tools you\'ll love. + Take a quick 2-minute survey to help us shape features you\'ll love. How\'s POS working for you? - Share your experience in 2 minutes and help us improve. + Share your experience in a quick 2-minute survey and help us improve.