diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index 6c97d3ee9a..a2d7564c1f 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.library.history +import android.content.DialogInterface import android.graphics.PorterDuff import android.graphics.PorterDuffColorFilter import android.os.Bundle @@ -14,7 +15,9 @@ import android.view.MenuInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.view.ContextThemeWrapper import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.navigation.Navigation @@ -136,9 +139,28 @@ class HistoryFragment : Fragment(), CoroutineScope, BackHandler { .onNext(HistoryChange.RemoveItemForRemoval(it.item)) is HistoryAction.BackPressed -> getManagedEmitter() .onNext(HistoryChange.ExitEditMode) - is HistoryAction.Delete.All -> launch(Dispatchers.IO) { - requireComponents.core.historyStorage.deleteEverything() - reloadData() + is HistoryAction.Delete.All -> { + activity?.let { + AlertDialog.Builder( + ContextThemeWrapper( + it, + R.style.DialogStyle + ) + ).apply { + setMessage(R.string.history_delete_all_dialog) + setNegativeButton(android.R.string.cancel) { dialog: DialogInterface, _ -> + dialog.cancel() + } + setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _ -> + launch(Dispatchers.IO) { + requireComponents.core.historyStorage.deleteEverything() + reloadData() + } + dialog.dismiss() + } + create() + }.show() + } } is HistoryAction.Delete.One -> launch(Dispatchers.IO) { requireComponents.core.historyStorage.deleteVisit(it.item.url, it.item.visitedAt) diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt index 7272aedd81..861bde682f 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt @@ -11,6 +11,7 @@ import android.graphics.Typeface.BOLD import android.graphics.Typeface.ITALIC import android.os.Bundle import android.text.style.StyleSpan +import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -112,7 +113,12 @@ class SearchFragment : Fragment(), BackHandler { onScanResult = { result -> search_scan_button.isChecked = false activity?.let { - AlertDialog.Builder(it).apply { + AlertDialog.Builder( + ContextThemeWrapper( + it, + R.style.DialogStyle + ) + ).apply { val spannable = resources.getSpannable( R.string.qr_scanner_confirmation_dialog_message, listOf( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f70ea9018e..aad23c36a5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -299,6 +299,8 @@ Delete history + + Are you sure you want to clear your history? Delete @style/WindowAnimationTransition