Skip to content

Commit cd5fc17

Browse files
authored
Update the implementation to ensure it matches the latest design (#6522)
Task/Issue URL: https://app.asana.com/1/137249556945/project/1200581511062568/task/1210823544400071?focus=true ### Description This commit refactors the Set as Default Browser message interactions, UI and associated pixel events. Key changes include: - Added a "Do Not Ask Again" button to replace the "Not Now" button in the default browser dialog - Updated the dialog UI with a close button and improved styling - Renamed methods and pixels to reflect the new "Do Not Ask Again" functionality - Improved user type detection (new vs existing users) with different prompt flows for each - Simplified stage progression logic with separate paths for new and existing users - Updated menu item styling and icons to match design guidelines - Fixed message visibility logic to prevent showing low priority messages when remote messages are active ### Steps to test this PR Code review only. ### UI changes | Updated Menu Item | Updated prompt | | ------ | ----- | |<img width="1080" height="2400" alt="updated_menu_item_portrait" src="https://github.com/user-attachments/assets/5a8c7bc0-e839-4d13-a4cc-0190fc54e624" />|<img width="1080" height="2400" alt="prompt_on_tab_showing_website" src="https://github.com/user-attachments/assets/d714f211-d162-469d-bf56-cbd8dbbf3aeb" />|
1 parent f66a71b commit cd5fc17

23 files changed

+519
-415
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,7 @@ open class BrowserActivity : DuckDuckGoActivity() {
712712
is Command.OpenSavedSite -> currentTab?.openSavedSite(command.url)
713713
is Command.ShowSetAsDefaultBrowserDialog -> showSetAsDefaultBrowserDialog()
714714
is Command.DismissSetAsDefaultBrowserDialog -> dismissSetAsDefaultBrowserDialog()
715+
is Command.DoNotAskAgainSetAsDefaultBrowserDialog -> dismissSetAsDefaultBrowserDialog()
715716
is Command.ShowSystemDefaultAppsActivity -> showSystemDefaultAppsActivity(command.intent)
716717
is Command.ShowSystemDefaultBrowserDialog -> showSystemDefaultBrowserDialog(command.intent)
717718
is Command.ShowUndoDeleteTabsMessage -> showTabsDeletedSnackbar(command.tabIds)
@@ -1262,8 +1263,8 @@ open class BrowserActivity : DuckDuckGoActivity() {
12621263
viewModel.onSetDefaultBrowserConfirmationButtonClicked()
12631264
}
12641265

1265-
override fun onNotNowButtonClicked() {
1266-
viewModel.onSetDefaultBrowserNotNowButtonClicked()
1266+
override fun onDoNotAskAgainButtonClicked() {
1267+
viewModel.onSetDefaultBrowserDoNotAskAgainButtonClicked()
12671268
}
12681269
}
12691270
dialog.show()

app/src/main/java/com/duckduckgo/app/browser/BrowserViewModel.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import androidx.lifecycle.viewModelScope
2525
import com.duckduckgo.anvil.annotations.ContributesRemoteFeature
2626
import com.duckduckgo.anvil.annotations.ContributesViewModel
2727
import com.duckduckgo.app.browser.BrowserViewModel.Command.DismissSetAsDefaultBrowserDialog
28+
import com.duckduckgo.app.browser.BrowserViewModel.Command.DoNotAskAgainSetAsDefaultBrowserDialog
2829
import com.duckduckgo.app.browser.BrowserViewModel.Command.LaunchTabSwitcher
2930
import com.duckduckgo.app.browser.BrowserViewModel.Command.OpenDuckChat
3031
import com.duckduckgo.app.browser.BrowserViewModel.Command.ShowUndoDeleteTabsMessage
@@ -129,6 +130,7 @@ class BrowserViewModel @Inject constructor(
129130
data class OpenSavedSite(val url: String) : Command()
130131
data object ShowSetAsDefaultBrowserDialog : Command()
131132
data object DismissSetAsDefaultBrowserDialog : Command()
133+
data object DoNotAskAgainSetAsDefaultBrowserDialog : Command()
132134
data class ShowSystemDefaultBrowserDialog(val intent: Intent) : Command()
133135
data class ShowSystemDefaultAppsActivity(val intent: Intent) : Command()
134136
data class ShowUndoDeleteTabsMessage(val tabIds: List<String>) : Command()
@@ -399,6 +401,7 @@ class BrowserViewModel @Inject constructor(
399401
}
400402

401403
fun onSetDefaultBrowserDialogCanceled() {
404+
command.value = DismissSetAsDefaultBrowserDialog
402405
additionalDefaultBrowserPrompts.onMessageDialogCanceled()
403406
}
404407

@@ -407,9 +410,9 @@ class BrowserViewModel @Inject constructor(
407410
additionalDefaultBrowserPrompts.onMessageDialogConfirmationButtonClicked()
408411
}
409412

410-
fun onSetDefaultBrowserNotNowButtonClicked() {
411-
command.value = DismissSetAsDefaultBrowserDialog
412-
additionalDefaultBrowserPrompts.onMessageDialogNotNowButtonClicked()
413+
fun onSetDefaultBrowserDoNotAskAgainButtonClicked() {
414+
command.value = DoNotAskAgainSetAsDefaultBrowserDialog
415+
additionalDefaultBrowserPrompts.onMessageDialogDoNotAskAgainButtonClicked()
413416
}
414417

415418
fun onSystemDefaultBrowserDialogShown() {

app/src/main/java/com/duckduckgo/app/browser/defaultbrowsing/prompts/AdditionalDefaultBrowserPrompts.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,16 @@ interface AdditionalDefaultBrowserPrompts {
3333
fun onMessageDialogShown()
3434
fun onMessageDialogCanceled()
3535
fun onMessageDialogConfirmationButtonClicked()
36-
fun onMessageDialogNotNowButtonClicked()
36+
fun onMessageDialogDoNotAskAgainButtonClicked()
3737

3838
fun onSystemDefaultBrowserDialogShown()
3939
fun onSystemDefaultBrowserDialogSuccess(trigger: SetAsDefaultActionTrigger)
4040
fun onSystemDefaultBrowserDialogCanceled(trigger: SetAsDefaultActionTrigger)
4141

4242
fun onSystemDefaultAppsActivityClosed(trigger: SetAsDefaultActionTrigger)
4343

44+
fun onUserMessageInteraction(doNotShowAgain: Boolean = false)
45+
4446
sealed class Command {
4547
data object OpenMessageDialog : Command()
4648
data class OpenSystemDefaultBrowserDialog(
@@ -55,8 +57,9 @@ interface AdditionalDefaultBrowserPrompts {
5557
}
5658

5759
enum class SetAsDefaultActionTrigger {
58-
DIALOG,
60+
PROMPT,
5961
MENU,
62+
MESSAGE,
6063
UNKNOWN,
6164
}
6265
}

0 commit comments

Comments
 (0)