Skip to content

Commit

Permalink
Add clickabe lik for Learn More
Browse files Browse the repository at this point in the history
  • Loading branch information
CrisBarreiro committed Aug 8, 2024
1 parent dcc9104 commit 4330616
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 1 deletion.
1 change: 1 addition & 0 deletions duckplayer/duckplayer-impl/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies {
implementation project(":duckplayer-api")
implementation project(':feature-toggles-api')
implementation project(':common-utils')
implementation project(':browser-api')

anvil project(path: ':anvil-compiler')
implementation project(path: ':anvil-annotations')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.duckduckgo.anvil.annotations.ContributeToActivityStarter
import com.duckduckgo.anvil.annotations.InjectWith
import com.duckduckgo.browser.api.ui.BrowserScreens.WebViewActivityWithParams
import com.duckduckgo.common.ui.DuckDuckGoActivity
import com.duckduckgo.common.ui.view.addClickableLink
import com.duckduckgo.common.ui.view.dialog.RadioListAlertDialogBuilder
import com.duckduckgo.common.ui.viewbinding.viewBinding
import com.duckduckgo.di.scopes.ActivityScope
Expand All @@ -32,6 +34,8 @@ import com.duckduckgo.duckplayer.api.PrivatePlayerMode.AlwaysAsk
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.Disabled
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.Enabled
import com.duckduckgo.duckplayer.impl.databinding.ActivityDuckPlayerSettingsBinding
import com.duckduckgo.navigation.api.GlobalActivityStarter
import javax.inject.Inject
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach

Expand All @@ -42,10 +46,20 @@ class DuckPlayerSettingsActivity : DuckDuckGoActivity() {
private val viewModel: DuckPlayerSettingsViewModel by bindViewModel()
private val binding: ActivityDuckPlayerSettingsBinding by viewBinding()

@Inject
lateinit var globalActivityStarter: GlobalActivityStarter

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setContentView(binding.root)

binding.duckPlayerSettingsText.addClickableLink(
annotation = "learn_more_link",
textSequence = getText(R.string.duck_player_settings_activity_description),
onClick = { viewModel.duckPlayerLearnMoreClicked() },
)

setupToolbar(binding.includeToolbar.toolbar)

configureUiEventHandlers()
Expand Down Expand Up @@ -75,6 +89,15 @@ class DuckPlayerSettingsActivity : DuckDuckGoActivity() {
is DuckPlayerSettingsViewModel.Command.OpenPlayerModeSelector -> {
launchPlayerModeSelector(it.current)
}
is DuckPlayerSettingsViewModel.Command.OpenLearnMore -> {
globalActivityStarter.start(
this,
WebViewActivityWithParams(
url = it.learnMoreLink,
screenTitle = getString(R.string.duck_player_setting_title),
),
)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import com.duckduckgo.di.scopes.ActivityScope
import com.duckduckgo.duckplayer.api.DuckPlayer
import com.duckduckgo.duckplayer.api.PrivatePlayerMode
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.AlwaysAsk
import com.duckduckgo.duckplayer.impl.DuckPlayerSettingsViewModel.Command.OpenLearnMore
import com.duckduckgo.duckplayer.impl.DuckPlayerSettingsViewModel.Command.OpenPlayerModeSelector
import javax.inject.Inject
import kotlinx.coroutines.channels.BufferOverflow.DROP_OLDEST
Expand Down Expand Up @@ -53,6 +54,7 @@ class DuckPlayerSettingsViewModel @Inject constructor(

sealed class Command {
data class OpenPlayerModeSelector(val current: PrivatePlayerMode) : Command()
data class OpenLearnMore(val learnMoreLink: String) : Command()
}

data class ViewState(val privatePlayerMode: PrivatePlayerMode = AlwaysAsk)
Expand All @@ -67,4 +69,10 @@ class DuckPlayerSettingsViewModel @Inject constructor(
duckPlayer.setUserPreferences(overlayInteracted = false, privatePlayerMode = selectedPlayerMode.value)
}
}

fun duckPlayerLearnMoreClicked() {
viewModelScope.launch {
commandChannel.send(OpenLearnMore("https://duckduckgo.com/duckduckgo-help-pages/duck-player/"))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<string name="duck_player_cancel">Cancel</string>
<string name="duck_player_setting_title">Duck Player</string>
<string name="duck_player_settings_activity_title">Duck Player</string>
<string name="duck_player_settings_activity_description">Duck Player provides a clean viewing experience without personalized ads and prevents viewing activity from influencing your YouTube recommendations. \nLearn More</string>
<string name="duck_player_settings_activity_description">Duck Player provides a clean viewing experience without personalized ads and prevents viewing activity from influencing your YouTube recommendations.\n<annotation type="learn_more_link">Learn More</annotation></string>
<string name="duck_player_mode_always">Always</string>
<string name="duck_player_mode_never">Never</string>
<string name="duck_player_mode_always_ask">Always Ask</string>
Expand Down

0 comments on commit 4330616

Please sign in to comment.