diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt index a233ea129922..30e48d400189 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/AppUrls.kt @@ -11,6 +11,8 @@ object AppUrls { const val AUTOMATTIC_PRIVACY_POLICY = "https://www.automattic.com/privacy" const val AUTOMATTIC_PRIVACY_POLICY_CA = "https://automattic.com/privacy/#california-consumer-privacy-act-ccpa" const val AUTOMATTIC_COOKIE_POLICY = "https://www.automattic.com/cookies" + const val AUTOMATTIC_ADVERTISING_OPTIONS = "https://wordpress.com/support/tracking-opt-outs/" + const val AUTOMATTIC_USAGE_TRACKER = "https://woocommerce.com/usage-tracking/" const val AUTOMATTIC_HIRING = "https://automattic.com/work-with-us" const val WOOCOMMERCE_UPGRADE = "https://docs.woocommerce.com/document/how-to-update-woocommerce/" diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsFragment.kt index bd79f53f6c3d..2ff9c9a801b3 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsFragment.kt @@ -1,6 +1,5 @@ package com.woocommerce.android.ui.prefs -import android.content.Context import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -14,8 +13,9 @@ import com.woocommerce.android.analytics.AnalyticsTracker import com.woocommerce.android.extensions.navigateSafely import com.woocommerce.android.ui.base.BaseFragment import com.woocommerce.android.ui.compose.theme.WooThemeWithBackground -import com.woocommerce.android.ui.prefs.PrivacySettingsViewModel.PrivacySettingsEvent.ShowCookiePolicy -import com.woocommerce.android.ui.prefs.PrivacySettingsViewModel.PrivacySettingsEvent.ShowPrivacyPolicy +import com.woocommerce.android.ui.prefs.PrivacySettingsViewModel.PrivacySettingsEvent.OpenPolicies +import com.woocommerce.android.ui.prefs.PrivacySettingsViewModel.PrivacySettingsEvent.ShowAdvertisingOptions +import com.woocommerce.android.ui.prefs.PrivacySettingsViewModel.PrivacySettingsEvent.ShowUsageTracker import com.woocommerce.android.util.ChromeCustomTabUtils import dagger.hilt.android.AndroidEntryPoint @@ -50,11 +50,11 @@ class PrivacySettingsFragment : BaseFragment() { private fun observeEvents() { viewModel.event.observe(viewLifecycleOwner) { event -> when (event) { - is PrivacySettingsViewModel.PrivacySettingsEvent.OpenPolicies -> findNavController().navigateSafely( + is ShowAdvertisingOptions -> showAdvertisingOptions() + is ShowUsageTracker -> showUsageTracker() + is OpenPolicies -> findNavController().navigateSafely( PrivacySettingsFragmentDirections.actionPrivacySettingsFragmentToPrivacySettingsPolicesFragment() ) - is ShowCookiePolicy -> showCookiePolicy() - is ShowPrivacyPolicy -> showPrivacyPolicy() } } } @@ -64,25 +64,11 @@ class PrivacySettingsFragment : BaseFragment() { AnalyticsTracker.trackViewShown(this) } - override fun onStart() { - super.onStart() - ChromeCustomTabUtils.connectAndStartSession( - activity as Context, - AppUrls.AUTOMATTIC_PRIVACY_POLICY, - arrayOf(AppUrls.AUTOMATTIC_COOKIE_POLICY) - ) + private fun showAdvertisingOptions() { + ChromeCustomTabUtils.launchUrl(requireActivity(), AppUrls.AUTOMATTIC_ADVERTISING_OPTIONS) } - override fun onStop() { - super.onStop() - ChromeCustomTabUtils.disconnect(activity as Context) - } - - private fun showCookiePolicy() { - ChromeCustomTabUtils.launchUrl(activity as Context, AppUrls.AUTOMATTIC_COOKIE_POLICY) - } - - private fun showPrivacyPolicy() { - ChromeCustomTabUtils.launchUrl(activity as Context, AppUrls.AUTOMATTIC_PRIVACY_POLICY) + private fun showUsageTracker() { + ChromeCustomTabUtils.launchUrl(requireActivity(), AppUrls.AUTOMATTIC_USAGE_TRACKER) } } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPolicesFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPolicesFragment.kt index 3415c7270b31..69ed250c2d8b 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPolicesFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPolicesFragment.kt @@ -5,9 +5,13 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.compose.ui.platform.ComposeView +import com.woocommerce.android.AppUrls import com.woocommerce.android.R +import com.woocommerce.android.analytics.AnalyticsEvent +import com.woocommerce.android.analytics.AnalyticsTracker import com.woocommerce.android.ui.base.BaseFragment import com.woocommerce.android.ui.compose.theme.WooThemeWithBackground +import com.woocommerce.android.util.ChromeCustomTabUtils import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint @@ -25,7 +29,24 @@ class PrivacySettingsPolicesFragment : BaseFragment() { return ComposeView(requireContext()).apply { setContent { WooThemeWithBackground { - PrivacySettingsPolicesScreen() + PrivacySettingsPolicesScreen( + onPrivacyPolicyClicked = { + AnalyticsTracker.track(AnalyticsEvent.PRIVACY_SETTINGS_PRIVACY_POLICY_LINK_TAPPED) + ChromeCustomTabUtils.launchUrl( + requireActivity(), + AppUrls.AUTOMATTIC_PRIVACY_POLICY + ) + }, + onCookiePolicyClicked = { + AnalyticsTracker.track( + AnalyticsEvent.PRIVACY_SETTINGS_THIRD_PARTY_TRACKING_INFO_LINK_TAPPED + ) + ChromeCustomTabUtils.launchUrl( + requireActivity(), + AppUrls.AUTOMATTIC_COOKIE_POLICY + ) + } + ) } } } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPoliciesScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPoliciesScreen.kt index a8f6bcb6509a..883903ce6c80 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPoliciesScreen.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsPoliciesScreen.kt @@ -14,7 +14,10 @@ import com.woocommerce.android.R import com.woocommerce.android.ui.icons.OpenInNew @Composable -fun PrivacySettingsPolicesScreen() { +fun PrivacySettingsPolicesScreen( + onPrivacyPolicyClicked: () -> Unit, + onCookiePolicyClicked: () -> Unit, +) { Scaffold(backgroundColor = MaterialTheme.colors.surface) { paddingValues -> Column( modifier = Modifier.padding(paddingValues) @@ -22,31 +25,33 @@ fun PrivacySettingsPolicesScreen() { OptionRow( sectionTitle = stringResource(R.string.settings_policies_privacy_policy), sectionDescription = stringResource(R.string.settings_policies_privacy_policy_description), - onRowClicked = { /*TODO*/ }, - actionContent = { - IconButton(modifier = Modifier.padding(horizontal = 8.dp), onClick = { /*TODO*/ - }) { - Icon( - imageVector = OpenInNew, - contentDescription = stringResource(id = R.string.settings_privacy_policy) - ) - } + onRowClicked = onPrivacyPolicyClicked + ) { + IconButton( + modifier = Modifier.padding(horizontal = 8.dp), + onClick = onPrivacyPolicyClicked + ) { + Icon( + imageVector = OpenInNew, + contentDescription = stringResource(id = R.string.settings_privacy_policy) + ) } - ) + } OptionRow( sectionTitle = stringResource(R.string.settings_policies_cookie_policy), sectionDescription = stringResource(R.string.settings_policies_cookie_policy_description), - onRowClicked = { /*TODO*/ }, - actionContent = { - IconButton(modifier = Modifier.padding(horizontal = 8.dp), onClick = { /*TODO*/ - }) { - Icon( - imageVector = OpenInNew, - contentDescription = stringResource(id = R.string.settings_privacy_cookies_polices) - ) - } + onRowClicked = onCookiePolicyClicked + ) { + IconButton( + modifier = Modifier.padding(horizontal = 8.dp), + onClick = onCookiePolicyClicked + ) { + Icon( + imageVector = OpenInNew, + contentDescription = stringResource(id = R.string.settings_privacy_cookies_polices) + ) } - ) + } } } } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsScreen.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsScreen.kt index 8b5a15aa59f8..0d9ac6cd478c 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsScreen.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsScreen.kt @@ -47,6 +47,8 @@ fun PrivacySettingsScreen( state, onAnalyticsSettingChanged = viewModel::onSendStatsSettingChanged, onReportCrashesChanged = viewModel::onCrashReportingSettingChanged, + onAdvertisingOptionsClicked = viewModel::onAdvertisingOptionsClicked, + onUsageTrackerClicked = viewModel::onUsageTrackerClicked, onPoliciesClicked = viewModel::onPoliciesClicked, ) } @@ -56,6 +58,8 @@ fun PrivacySettingsScreen( state: PrivacySettingsViewModel.State, onAnalyticsSettingChanged: (Boolean) -> Unit, onReportCrashesChanged: (Boolean) -> Unit, + onAdvertisingOptionsClicked: () -> Unit, + onUsageTrackerClicked: () -> Unit, onPoliciesClicked: () -> Unit, ) { Scaffold(backgroundColor = MaterialTheme.colors.surface) { paddingValues -> @@ -100,12 +104,11 @@ fun PrivacySettingsScreen( sectionHeader = stringResource(R.string.settings_more_privacy_options_header), sectionTitle = stringResource(R.string.settings_advertising_options), sectionDescription = stringResource(R.string.settings_advertising_options_description), - onRowClicked = {} + onRowClicked = onAdvertisingOptionsClicked ) { IconButton( modifier = Modifier.padding(horizontal = 8.dp), - onClick = { /*TODO*/ - } + onClick = onAdvertisingOptionsClicked ) { Icon( imageVector = OpenInNew, @@ -114,14 +117,13 @@ fun PrivacySettingsScreen( } } OptionRow( - onRowClicked = {}, + onRowClicked = onUsageTrackerClicked, sectionTitle = stringResource(R.string.settings_usage_tracker), sectionDescription = stringResource(R.string.settings_usage_tracker_description), ) { IconButton( modifier = Modifier.padding(horizontal = 8.dp), - onClick = { /*TODO*/ - } + onClick = onUsageTrackerClicked, ) { Icon( imageVector = OpenInNew, @@ -248,10 +250,9 @@ private fun Default() { WooThemeWithBackground { PrivacySettingsScreen( state = PrivacySettingsViewModel.State( - sendUsageStats = true, - crashReportingEnabled = false + sendUsageStats = true, crashReportingEnabled = false ), - {}, {}, {} + {}, {}, {}, {}, {} ) } } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsViewModel.kt index 7ebfee32705b..b61eb32bc55d 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsViewModel.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/prefs/PrivacySettingsViewModel.kt @@ -107,19 +107,12 @@ class PrivacySettingsViewModel @Inject constructor( } } - fun onLearnMoreShareInfoClicked() { - AnalyticsTracker.track(AnalyticsEvent.PRIVACY_SETTINGS_SHARE_INFO_LINK_TAPPED) - triggerEvent(PrivacySettingsEvent.ShowCookiePolicy) + fun onAdvertisingOptionsClicked() { + triggerEvent(PrivacySettingsEvent.ShowAdvertisingOptions) } - fun onPrivacyPolicyClicked() { - AnalyticsTracker.track(AnalyticsEvent.PRIVACY_SETTINGS_PRIVACY_POLICY_LINK_TAPPED) - triggerEvent(PrivacySettingsEvent.ShowPrivacyPolicy) - } - - fun onLearnMoreThirdPartyClicked() { - AnalyticsTracker.track(AnalyticsEvent.PRIVACY_SETTINGS_THIRD_PARTY_TRACKING_INFO_LINK_TAPPED) - triggerEvent(PrivacySettingsEvent.ShowCookiePolicy) + fun onUsageTrackerClicked() { + triggerEvent(PrivacySettingsEvent.ShowUsageTracker) } fun onCrashReportingSettingChanged(checked: Boolean) { @@ -151,8 +144,8 @@ class PrivacySettingsViewModel @Inject constructor( ) sealed class PrivacySettingsEvent : MultiLiveEvent.Event() { - object ShowCookiePolicy : PrivacySettingsEvent() - object ShowPrivacyPolicy : PrivacySettingsEvent() object OpenPolicies : PrivacySettingsEvent() + object ShowAdvertisingOptions : PrivacySettingsEvent() + object ShowUsageTracker : PrivacySettingsEvent() } }