Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@ package org.mozilla.reference.browser.browser

import android.os.Bundle
import android.view.View
import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceManager
import com.google.android.material.floatingactionbutton.FloatingActionButton
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import mozilla.components.browser.thumbnails.BrowserThumbnails
import mozilla.components.browser.toolbar.BrowserToolbar
import mozilla.components.concept.awesomebar.AwesomeBar.Suggestion
import mozilla.components.concept.engine.EngineView
import mozilla.components.feature.awesomebar.AwesomeBarFeature
import mozilla.components.feature.awesomebar.provider.SearchSuggestionProvider
Expand Down Expand Up @@ -88,6 +93,10 @@ class BrowserFragment :
requireComponents.core.icons,
),
)
awesomeBar.setOnRemoveSuggestionButtonClicked {
awesomeBar.addHiddenSuggestion(it)
deleteHistorySuggestion(it.suggestion)
}

TabsToolbarFeature(
toolbar = toolbar,
Expand Down Expand Up @@ -150,6 +159,15 @@ class BrowserFragment :
}
}

@OptIn(DelicateCoroutinesApi::class)
private fun deleteHistorySuggestion(suggestion: Suggestion) {
lifecycleScope.launch(Dispatchers.IO) {
suggestion.description?.let {
requireComponents.core.historyStorage.deleteHistoryMetadataForUrl(it)
}
}
}

override fun onBackPressed(): Boolean = readerViewFeature.onBackPressed() || super.onBackPressed()

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import mozilla.components.compose.browser.awesomebar.AwesomeBar
import mozilla.components.compose.browser.awesomebar.AwesomeBarDefaults
import mozilla.components.compose.browser.awesomebar.AwesomeBarOrientation
import mozilla.components.concept.awesomebar.AwesomeBar
import mozilla.components.concept.awesomebar.AwesomeBar.GroupedSuggestion
import mozilla.components.support.ktx.android.view.hideKeyboard
import org.mozilla.reference.browser.ext.components

Expand All @@ -32,8 +33,10 @@ class AwesomeBarWrapper
AwesomeBar {
private val providers = mutableStateOf(emptyList<AwesomeBar.SuggestionProvider>())
private val text = mutableStateOf("")
private val hiddenSuggestions = mutableStateOf(emptySet<GroupedSuggestion>())
private var onEditSuggestionListener: ((String) -> Unit)? = null
private var onStopListener: (() -> Unit)? = null
private var onSuggestionRemovedListener: ((GroupedSuggestion) -> Unit)? = null

@Composable
@Suppress("MagicNumber")
Expand All @@ -45,6 +48,7 @@ class AwesomeBarWrapper
AwesomeBar(
text = text.value,
providers = providers.value,
hiddenSuggestions = hiddenSuggestions.value,
orientation = AwesomeBarOrientation.BOTTOM,
colors = AwesomeBarDefaults.colors(
background = Color(0xff222222),
Expand All @@ -60,6 +64,9 @@ class AwesomeBarWrapper
onEditSuggestionListener?.invoke(suggestion.editSuggestion!!)
},
onScroll = { hideKeyboard() },
onRemoveClicked = {
onSuggestionRemovedListener?.invoke(it)
},
profiler = context.components.core.engine.profiler,
)
}
Expand All @@ -74,6 +81,7 @@ class AwesomeBarWrapper
providers.value.any { current -> current.id == provider.id }

override fun onInputChanged(text: String) {
hiddenSuggestions.value = emptySet()
this.text.value = text
}

Expand All @@ -94,4 +102,21 @@ class AwesomeBarWrapper
override fun setOnStopListener(listener: () -> Unit) {
onStopListener = listener
}

override fun setOnRemoveSuggestionButtonClicked(listener: (GroupedSuggestion) -> Unit) {
onSuggestionRemovedListener = listener
}

override fun updateHiddenSuggestions(hiddenSuggestions: Set<GroupedSuggestion>) {
this.hiddenSuggestions.value = hiddenSuggestions
}

/**
* Hide a new search suggestion.
*
* @param suggestion The new suggestion to hide.
*/
fun addHiddenSuggestion(suggestion: GroupedSuggestion) {
this.hiddenSuggestions.value += suggestion
}
}
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
# Android Components
android-components = "149.0.20260113093356"
android-components = "149.0.20260114211245"

# AGP
android-gradle-plugin = "9.0.0-rc01"
Expand Down