Skip to content

Commit f777c5c

Browse files
authored
Fix favorites displayed underneath Dax dialog (#4778)
Task/Issue URL: https://app.asana.com/0/488551667048375/1207845944313951/f ### Description Fix for not showing favorites displayed underneath the 'visit site' Dax dialog ### Steps to test this PR On each step, wait for searches and sites to fully load in the browser - [x] Fresh install - [x] Perform a search - [x] Save bookmark → Add favorite - [x] Visit a site → ⚠️ Don't dismiss the trackers onboarding CTA - [x] Save bookmark → Add favorite - [x] Open a new tab - [x] Perform a search - [x] Open a new tab - [x] Check favorites are not displayed underneath Dax dialog - [x] Tap on a site suggestion - [x] Check favorites are not displayed underneath Dax dialog before site is loaded ### UI changes | Before | After | | ------ | ----- | ![Screenshot_20240718_140440](https://github.com/user-attachments/assets/e812d811-9f02-4a87-8ae6-80948f2ff2ab)|![Screenshot 2024-07-19 at 12 37 48](https://github.com/user-attachments/assets/4f683010-0599-4380-b0ce-e420a7097d53)|
1 parent 2572ea7 commit f777c5c

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ import com.duckduckgo.app.browser.viewstate.LoadingViewState
105105
import com.duckduckgo.app.browser.webview.SslWarningLayout.Action
106106
import com.duckduckgo.app.cta.db.DismissedCtaDao
107107
import com.duckduckgo.app.cta.model.CtaId
108+
import com.duckduckgo.app.cta.model.CtaId.DAX_DIALOG_NETWORK
109+
import com.duckduckgo.app.cta.model.CtaId.DAX_DIALOG_TRACKERS_FOUND
108110
import com.duckduckgo.app.cta.model.CtaId.DAX_END
109111
import com.duckduckgo.app.cta.model.DismissedCta
110112
import com.duckduckgo.app.cta.ui.Cta
@@ -2366,6 +2368,7 @@ class BrowserTabViewModelTest {
23662368
whenever(mockWidgetCapabilities.supportsAutomaticWidgetAdd).thenReturn(false)
23672369
whenever(mockWidgetCapabilities.hasInstalledWidgets).thenReturn(true)
23682370
whenever(mockDismissedCtaDao.exists(DAX_END)).thenReturn(true)
2371+
whenever(mockDismissedCtaDao.exists(DAX_DIALOG_TRACKERS_FOUND)).thenReturn(true)
23692372
testee.refreshCta()
23702373
assertNull(testee.ctaViewState.value!!.cta)
23712374
assertTrue(testee.ctaViewState.value!!.daxOnboardingComplete)
@@ -2378,6 +2381,7 @@ class BrowserTabViewModelTest {
23782381
whenever(mockWidgetCapabilities.supportsAutomaticWidgetAdd).thenReturn(false)
23792382
whenever(mockWidgetCapabilities.hasInstalledWidgets).thenReturn(true)
23802383
whenever(mockDismissedCtaDao.exists(DAX_END)).thenReturn(true)
2384+
whenever(mockDismissedCtaDao.exists(DAX_DIALOG_NETWORK)).thenReturn(true)
23812385
testee.refreshCta()
23822386
assertNull(testee.ctaViewState.value!!.cta)
23832387
assertTrue(testee.ctaViewState.value!!.daxOnboardingComplete)

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteEntity
113113
import com.duckduckgo.app.fire.fireproofwebsite.data.FireproofWebsiteRepository
114114
import com.duckduckgo.app.fire.fireproofwebsite.ui.AutomaticFireproofSetting.ALWAYS
115115
import com.duckduckgo.app.fire.fireproofwebsite.ui.AutomaticFireproofSetting.ASK_EVERY_TIME
116-
import com.duckduckgo.app.global.*
117116
import com.duckduckgo.app.global.events.db.UserEventKey
118117
import com.duckduckgo.app.global.events.db.UserEventsStore
119118
import com.duckduckgo.app.global.model.PrivacyShield
@@ -2442,7 +2441,7 @@ class BrowserTabViewModel @Inject constructor(
24422441
)
24432442
}
24442443
val isOnboardingComplete = withContext(dispatchers.io()) {
2445-
ctaViewModel.daxDialogEndShown()
2444+
ctaViewModel.areBubbleDaxDialogsCompleted()
24462445
}
24472446
if (isBrowserShowing && cta != null) hasCtaBeenShownForCurrentPage.set(true)
24482447
ctaViewState.value = currentCtaViewState().copy(

app/src/main/java/com/duckduckgo/app/cta/ui/CtaViewModel.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,10 @@ class CtaViewModel @Inject constructor(
288288

289289
// We only want to show New Tab when the Home CTAs from Onboarding has finished
290290
// https://app.asana.com/0/1157893581871903/1207769731595075/f
291-
fun daxDialogEndShown(): Boolean = dismissedCtaDao.exists(CtaId.DAX_END)
291+
fun areBubbleDaxDialogsCompleted(): Boolean {
292+
val bubbleCtasShown = daxDialogEndShown() && (daxDialogNetworkShown() || daxDialogOtherShown() || daxDialogTrackersFoundShown())
293+
return bubbleCtasShown || hideTips()
294+
}
292295

293296
private fun daxDialogSerpShown(): Boolean = dismissedCtaDao.exists(CtaId.DAX_DIALOG_SERP)
294297

@@ -300,6 +303,8 @@ class CtaViewModel @Inject constructor(
300303

301304
private fun daxDialogFireEducationShown(): Boolean = dismissedCtaDao.exists(CtaId.DAX_FIRE_BUTTON)
302305

306+
private fun daxDialogEndShown(): Boolean = dismissedCtaDao.exists(CtaId.DAX_END)
307+
303308
private fun pulseFireButtonShown(): Boolean = dismissedCtaDao.exists(CtaId.DAX_FIRE_BUTTON_PULSE)
304309

305310
private fun isSerpUrl(url: String): Boolean = url.contains(OnboardingDaxDialogCta.SERP)

0 commit comments

Comments
 (0)