Skip to content

Commit e9d8f7c

Browse files
committed
Stop ChatHistory fire dialog from restarting the app process
onDeleteAllClicked routed ChatHistory clears to clearSelectedDuckAiChats but left shouldRestartAfterClearing at its default true, so after a bounded chat-subset clear the dialog still called killAndRestartProcess(). Set the flag to false on that branch, mirroring onDeleteThisTabClicked.
1 parent 05f079c commit e9d8f7c

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

app/src/main/java/com/duckduckgo/app/global/view/SingleTabFireDialogViewModel.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ class SingleTabFireDialogViewModel @Inject constructor(
152152
)
153153
try {
154154
if (selectedChatUrls != null) {
155+
shouldRestartAfterClearing = false
155156
dataClearing.clearSelectedDuckAiChats(selectedChatUrls)
156157
} else {
157158
dataClearing.clearDataUsingManualFireOptions()

app/src/test/java/com/duckduckgo/app/global/view/SingleTabFireDialogViewModelTest.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,6 +1040,21 @@ class SingleTabFireDialogViewModelTest {
10401040
}
10411041
}
10421042

1043+
@Test
1044+
fun `when delete all clicked from ChatHistory origin then clearSelectedDuckAiChats is dispatched and process is not restarted`() = runTest {
1045+
val urls = setOf("https://duck.ai?chatID=a", "https://duck.ai?chatID=b")
1046+
testee = createViewModel()
1047+
testee.setOrigin(FireDialogOrigin.ChatHistory(selectedChatUrls = urls))
1048+
1049+
testee.onDeleteAllClicked()
1050+
1051+
coroutineTestRule.testScope.testScheduler.advanceUntilIdle()
1052+
1053+
verify(mockDataClearing).clearSelectedDuckAiChats(urls)
1054+
verify(mockDataClearing, never()).clearDataUsingManualFireOptions(any(), any())
1055+
assertFalse(testee.shouldRestartAfterClearing)
1056+
}
1057+
10431058
// endregion
10441059

10451060
// region onDeleteThisTabClicked

0 commit comments

Comments
 (0)