Skip to content

Commit f351f6a

Browse files
committed
Move showHideAiGeneratedImages feature flag to duck ai to match other platforms
1 parent cead15b commit f351f6a

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/feature/DuckChatFeature.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,10 @@ interface DuckChatFeature {
116116
*/
117117
@Toggle.DefaultValue(DefaultFeatureValue.INTERNAL)
118118
fun duckAiVoiceSearch(): Toggle
119+
120+
/**
121+
* @return `true` when the "Hide AI Generated Images" option should be visible in AI Features Settings.
122+
*/
123+
@Toggle.DefaultValue(DefaultFeatureValue.INTERNAL)
124+
fun showHideAiGeneratedImages(): Toggle
119125
}

duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/settings/DuckChatSettingsViewModel.kt

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import com.duckduckgo.duckchat.api.DuckChatNativeSettingsNoParams
2525
import com.duckduckgo.duckchat.api.DuckChatSettingsNoParams
2626
import com.duckduckgo.duckchat.impl.DuckChatInternal
2727
import com.duckduckgo.duckchat.impl.R
28+
import com.duckduckgo.duckchat.impl.feature.DuckChatFeature
2829
import com.duckduckgo.duckchat.impl.inputscreen.ui.metrics.discovery.InputScreenDiscoveryFunnel
2930
import com.duckduckgo.duckchat.impl.pixel.DuckChatPixelName
3031
import com.duckduckgo.duckchat.impl.ui.settings.DuckChatSettingsViewModel.Command.OpenLink
@@ -53,6 +54,7 @@ class DuckChatSettingsViewModel @AssistedInject constructor(
5354
private val inputScreenDiscoveryFunnel: InputScreenDiscoveryFunnel,
5455
private val settingsPageFeature: SettingsPageFeature,
5556
private val dispatcherProvider: DispatcherProvider,
57+
private val duckChatFeature: DuckChatFeature,
5658
) : ViewModel() {
5759
private val commandChannel = Channel<Command>(capacity = 1, onBufferOverflow = DROP_OLDEST)
5860
val commands = commandChannel.receiveAsFlow()
@@ -73,15 +75,15 @@ class DuckChatSettingsViewModel @AssistedInject constructor(
7375
duckChat.observeEnableDuckChatUserSetting(),
7476
duckChat.observeInputScreenUserSettingEnabled(),
7577
duckChat.observeFullscreenModeUserSetting(),
76-
flowOf(settingsPageFeature.hideAiGeneratedImagesOption().isEnabled()).flowOn(dispatcherProvider.io()),
77-
) { isDuckChatUserEnabled, isInputScreenEnabled, isFullScreenModeEnabled, isHideAiGeneratedImagesOptionVisible ->
78+
flowOf(duckChatFeature.showHideAiGeneratedImages().isEnabled()).flowOn(dispatcherProvider.io()),
79+
) { isDuckChatUserEnabled, isInputScreenEnabled, isFullScreenModeEnabled, showHideAiGeneratedImagesOption ->
7880
ViewState(
7981
isDuckChatUserEnabled = isDuckChatUserEnabled,
8082
isInputScreenEnabled = isInputScreenEnabled,
8183
shouldShowShortcuts = isDuckChatUserEnabled,
8284
shouldShowInputScreenToggle = isDuckChatUserEnabled && duckChat.isInputScreenFeatureAvailable(),
8385
isSearchSectionVisible = isSearchSectionVisible(duckChatActivityParams),
84-
isHideGeneratedImagesOptionVisible = isHideAiGeneratedImagesOptionVisible,
86+
isHideGeneratedImagesOptionVisible = showHideAiGeneratedImagesOption,
8587
shouldShowFullScreenModeToggle = duckChat.isDuckChatFullScreenModeFeatureAvailable(),
8688
isFullScreenModeEnabled = isFullScreenModeEnabled,
8789
)
@@ -143,19 +145,19 @@ class DuckChatSettingsViewModel @AssistedInject constructor(
143145

144146
fun duckChatSearchAISettingsClicked() {
145147
viewModelScope.launch {
146-
val hideAiGeneratedImagesOptionEnabled = withContext(dispatcherProvider.io()) {
147-
settingsPageFeature.hideAiGeneratedImagesOption().isEnabled()
148+
val showHideAiGeneratedImages = withContext(dispatcherProvider.io()) {
149+
duckChatFeature.showHideAiGeneratedImages().isEnabled()
148150
}
149151

150152
if (settingsPageFeature.embeddedSettingsWebView().isEnabled()) {
151153
commandChannel.send(
152154
OpenLink(
153-
link = if (hideAiGeneratedImagesOptionEnabled) {
155+
link = if (showHideAiGeneratedImages) {
154156
DUCK_CHAT_SEARCH_AI_SETTINGS_LINK_EMBEDDED
155157
} else {
156158
LEGACY_DUCK_CHAT_SEARCH_AI_SETTINGS_LINK_EMBEDDED
157159
},
158-
titleRes = if (hideAiGeneratedImagesOptionEnabled) {
160+
titleRes = if (showHideAiGeneratedImages) {
159161
R.string.duckAiSerpSettingsTitle
160162
} else {
161163
R.string.duck_chat_assist_settings_title

settings/settings-api/src/main/java/com/duckduckgo/settings/api/SettingsPageFeature.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,6 @@ interface SettingsPageFeature {
3131
@Toggle.InternalAlwaysEnabled
3232
fun embeddedSettingsWebView(): Toggle
3333

34-
@Toggle.DefaultValue(DefaultFeatureValue.FALSE)
35-
@Toggle.InternalAlwaysEnabled
36-
fun hideAiGeneratedImagesOption(): Toggle
37-
3834
@Toggle.DefaultValue(DefaultFeatureValue.FALSE)
3935
fun serpSettingsSync(): Toggle
4036
}

0 commit comments

Comments
 (0)