From 9529c3dfa708e6a9ca2cede04d1467e3cd362dfb Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 14 Oct 2025 10:39:19 +0200 Subject: [PATCH] Feat: Update Woo POS survey URLs and add new survey types for potential and current users --- .../src/main/kotlin/com/woocommerce/android/AppUrls.kt | 5 +++-- .../com/woocommerce/android/analytics/AnalyticsTracker.kt | 2 ++ .../android/ui/feedback/FeedbackSurveyFragment.kt | 4 ++++ .../com/woocommerce/android/ui/feedback/SurveyType.kt | 4 +++- .../com/woocommerce/android/ui/main/MainActivity.kt | 7 +++---- .../woocommerce/android/ui/main/MainActivityViewModel.kt | 8 ++++---- 6 files changed, 19 insertions(+), 11 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt index 60fc6b559376..0923fa8feabf 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt @@ -35,8 +35,9 @@ 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_WOO_POS_SURVEY_POTENTIAL_USER = "https://automattic.survey.fm/pos-survey-potential-users" + const val CROWDSIGNAL_WOO_POS_SURVEY_CURRENT_USER = "https://automattic.survey.fm/pos-survey-existing-users" 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/analytics/AnalyticsTracker.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/analytics/AnalyticsTracker.kt index e07e1612b563..73d96e0ed515 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/analytics/AnalyticsTracker.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/analytics/AnalyticsTracker.kt @@ -367,6 +367,8 @@ class AnalyticsTracker private constructor( const val VALUE_PRODUCT_ADDONS_FEEDBACK = "product_addons" const val VALUE_ANALYTICS_HUB_FEEDBACK = "analytics_hub" const val VALUE_ORDER_SHIPPING_LINES_FEEDBACK = "order_shipping_lines" + const val VALUE_WOO_POS_POTENTIAL_USER_FEEDBACK = "woo_pos_potential_user" + const val VALUE_WOO_POS_CURRENT_USER_FEEDBACK = "woo_pos_current_user" const val VALUE_STATE_ON = "on" const val VALUE_STATE_OFF = "off" diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/FeedbackSurveyFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/FeedbackSurveyFragment.kt index 0caabe63091a..86d10987f2f8 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/FeedbackSurveyFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/FeedbackSurveyFragment.kt @@ -25,6 +25,8 @@ import com.woocommerce.android.analytics.AnalyticsTracker.Companion.VALUE_FEEDBA import com.woocommerce.android.analytics.AnalyticsTracker.Companion.VALUE_FEEDBACK_STORE_SETUP_CONTEXT import com.woocommerce.android.analytics.AnalyticsTracker.Companion.VALUE_ORDER_SHIPPING_LINES_FEEDBACK import com.woocommerce.android.analytics.AnalyticsTracker.Companion.VALUE_PRODUCT_ADDONS_FEEDBACK +import com.woocommerce.android.analytics.AnalyticsTracker.Companion.VALUE_WOO_POS_CURRENT_USER_FEEDBACK +import com.woocommerce.android.analytics.AnalyticsTracker.Companion.VALUE_WOO_POS_POTENTIAL_USER_FEEDBACK import com.woocommerce.android.databinding.FragmentFeedbackSurveyBinding import com.woocommerce.android.extensions.navigateSafely import com.woocommerce.android.tools.SelectedSite @@ -63,6 +65,8 @@ class FeedbackSurveyFragment : BaseFragment(R.layout.fragment_feedback_survey) { SurveyType.ADDONS -> VALUE_PRODUCT_ADDONS_FEEDBACK SurveyType.ANALYTICS_HUB -> VALUE_ANALYTICS_HUB_FEEDBACK SurveyType.ORDER_SHIPPING_LINES -> VALUE_ORDER_SHIPPING_LINES_FEEDBACK + SurveyType.WOO_POS_POTENTIAL_USER -> VALUE_WOO_POS_POTENTIAL_USER_FEEDBACK + SurveyType.WOO_POS_CURRENT_USER -> VALUE_WOO_POS_CURRENT_USER_FEEDBACK } } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/SurveyType.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/SurveyType.kt index 97c22ff977b2..376b21856bdd 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/SurveyType.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/feedback/SurveyType.kt @@ -10,7 +10,9 @@ enum class SurveyType(private val untaggedUrl: String, private val milestone: In ADDONS(AppUrls.ADDONS_SURVEY), STORE_ONBOARDING(AppUrls.CROWDSIGNAL_STORE_SETUP_SURVEY), ANALYTICS_HUB(AppUrls.CROWDSIGNAL_ANALYTICS_HUB_SURVEY), - ORDER_SHIPPING_LINES(AppUrls.CROWDSIGNAL_ORDER_SHIPPING_LINES_SURVEY); + ORDER_SHIPPING_LINES(AppUrls.CROWDSIGNAL_ORDER_SHIPPING_LINES_SURVEY), + WOO_POS_POTENTIAL_USER(AppUrls.CROWDSIGNAL_WOO_POS_SURVEY_POTENTIAL_USER), + WOO_POS_CURRENT_USER(AppUrls.CROWDSIGNAL_WOO_POS_SURVEY_CURRENT_USER); val url get() = "$untaggedUrl?$platformTag$appVersionTag$milestoneTag" 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 c97a3194dfc9..acc2cc5d944e 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 @@ -878,7 +878,7 @@ class MainActivity : event.isHandled = false } - is MainActivityViewModel.ViewSurvey -> showSurvey(event.surveyUrl) + is MainActivityViewModel.ViewSurvey -> showSurvey(event.surveyType) } } @@ -1288,10 +1288,9 @@ class MainActivity : } } - private fun showSurvey(surveyUrl: String) { + private fun showSurvey(surveyType: SurveyType) { NavGraphMainDirections.actionGlobalFeedbackSurveyFragment( - surveyType = SurveyType.MAIN, - customUrl = surveyUrl + surveyType = surveyType ).apply { navController.navigateSafely(this) } 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 685f21baa09a..42ea5314ac2b 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,7 +6,6 @@ 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 @@ -26,6 +25,7 @@ import com.woocommerce.android.notifications.push.NotificationMessageHandler import com.woocommerce.android.tools.SelectedSite import com.woocommerce.android.tools.SiteConnectionType.Jetpack import com.woocommerce.android.tools.connectionType +import com.woocommerce.android.ui.feedback.SurveyType import com.woocommerce.android.ui.main.MainActivityViewModel.MoreMenuBadgeState.Hidden import com.woocommerce.android.ui.main.MainActivityViewModel.MoreMenuBadgeState.NewFeature import com.woocommerce.android.ui.main.MainActivityViewModel.MoreMenuBadgeState.UnseenReviews @@ -291,11 +291,11 @@ class MainActivityViewModel @Inject constructor( BLAZE_ABANDONED_CAMPAIGN_REMINDER -> triggerEvent(LaunchBlazeCampaignCreation) WOO_POS_SURVEY_POTENTIAL_USER_REMINDER -> triggerEvent( - ViewSurvey(AppUrls.CROWDSIGNAL_WOO_POS_SURVEY_POTENTIAL_USER) + ViewSurvey(SurveyType.WOO_POS_POTENTIAL_USER) ) WOO_POS_SURVEY_CURRENT_USER_REMINDER -> triggerEvent( - ViewSurvey(AppUrls.CROWDSIGNAL_WOO_POS_SURVEY_CURRENT_USER) + ViewSurvey(SurveyType.WOO_POS_CURRENT_USER) ) } } @@ -344,7 +344,7 @@ class MainActivityViewModel @Inject constructor( data class ViewUrlInWebView( val url: String, ) : Event() - data class ViewSurvey(val surveyUrl: String) : Event() + data class ViewSurvey(val surveyType: SurveyType) : Event() object ShortcutOpenPayments : Event() object ShortcutOpenOrderCreation : Event()