For #8454 - Removes back button from the search screen
parent
a8d3b635ba
commit
f02e06afae
|
@ -74,7 +74,6 @@ class DefaultSearchController(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun handleEditingCancelled() {
|
override fun handleEditingCancelled() {
|
||||||
store.dispatch(SearchFragmentAction.UpdateEditingCanceled)
|
|
||||||
navController.navigateUp()
|
navController.navigateUp()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,7 @@ import android.view.ViewGroup
|
||||||
import android.view.ViewStub
|
import android.view.ViewStub
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.view.marginStart
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.interpolator.view.animation.FastOutSlowInInterpolator
|
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import androidx.navigation.fragment.navArgs
|
import androidx.navigation.fragment.navArgs
|
||||||
import androidx.transition.TransitionInflater
|
import androidx.transition.TransitionInflater
|
||||||
|
@ -108,8 +106,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
||||||
showBookmarkSuggestions = requireContext().settings().shouldShowBookmarkSuggestions,
|
showBookmarkSuggestions = requireContext().settings().shouldShowBookmarkSuggestions,
|
||||||
session = session,
|
session = session,
|
||||||
pastedText = pastedText,
|
pastedText = pastedText,
|
||||||
searchAccessPoint = searchAccessPoint,
|
searchAccessPoint = searchAccessPoint
|
||||||
isAnimatingOut = false
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -196,10 +193,6 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
||||||
qrFeature.get()?.scan(R.id.container)
|
qrFeature.get()?.scan(R.id.container)
|
||||||
}
|
}
|
||||||
|
|
||||||
view.back_button.setOnClickListener {
|
|
||||||
searchInteractor.onEditingCanceled()
|
|
||||||
}
|
|
||||||
|
|
||||||
val stubListener = ViewStub.OnInflateListener { _, inflated ->
|
val stubListener = ViewStub.OnInflateListener { _, inflated ->
|
||||||
inflated.learn_more.setOnClickListener {
|
inflated.learn_more.setOnClickListener {
|
||||||
(activity as HomeActivity)
|
(activity as HomeActivity)
|
||||||
|
@ -251,7 +244,6 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
||||||
updateSearchWithLabel(it)
|
updateSearchWithLabel(it)
|
||||||
updateClipboardSuggestion(it, requireContext().components.clipboardHandler.url)
|
updateClipboardSuggestion(it, requireContext().components.clipboardHandler.url)
|
||||||
updateSearchSuggestionsHintVisibility(it)
|
updateSearchSuggestionsHintVisibility(it)
|
||||||
updateBackButton(it)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
startPostponedEnterTransition()
|
startPostponedEnterTransition()
|
||||||
|
@ -315,13 +307,6 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
||||||
clipboard_url.text = clipboardUrl
|
clipboard_url.text = clipboardUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateBackButton(searchState: SearchFragmentState) {
|
|
||||||
if (searchState.isAnimatingOut) {
|
|
||||||
searchStore.dispatch(SearchFragmentAction.ConsumeEditingCancelled)
|
|
||||||
animateBackButtonAway()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onRequestPermissionsResult(
|
override fun onRequestPermissionsResult(
|
||||||
requestCode: Int,
|
requestCode: Int,
|
||||||
permissions: Array<String>,
|
permissions: Array<String>,
|
||||||
|
@ -358,18 +343,6 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun animateBackButtonAway() {
|
|
||||||
val backButton = requireView().back_button
|
|
||||||
val xTranslation = with(backButton) {
|
|
||||||
-(width + marginStart + paddingStart).toFloat()
|
|
||||||
}
|
|
||||||
|
|
||||||
backButton
|
|
||||||
.animate()
|
|
||||||
.translationX(xTranslation)
|
|
||||||
.interpolator = FastOutSlowInInterpolator()
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val SHARED_TRANSITION_MS = 200L
|
private const val SHARED_TRANSITION_MS = 200L
|
||||||
private const val REQUEST_CODE_CAMERA_PERMISSIONS = 1
|
private const val REQUEST_CODE_CAMERA_PERMISSIONS = 1
|
||||||
|
|
|
@ -57,16 +57,13 @@ data class SearchFragmentState(
|
||||||
val showBookmarkSuggestions: Boolean,
|
val showBookmarkSuggestions: Boolean,
|
||||||
val session: Session?,
|
val session: Session?,
|
||||||
val pastedText: String? = null,
|
val pastedText: String? = null,
|
||||||
val searchAccessPoint: Event.PerformedSearch.SearchAccessPoint?,
|
val searchAccessPoint: Event.PerformedSearch.SearchAccessPoint?
|
||||||
val isAnimatingOut: Boolean
|
|
||||||
) : State
|
) : State
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Actions to dispatch through the `SearchStore` to modify `SearchState` through the reducer.
|
* Actions to dispatch through the `SearchStore` to modify `SearchState` through the reducer.
|
||||||
*/
|
*/
|
||||||
sealed class SearchFragmentAction : Action {
|
sealed class SearchFragmentAction : Action {
|
||||||
object UpdateEditingCanceled : SearchFragmentAction()
|
|
||||||
object ConsumeEditingCancelled : SearchFragmentAction()
|
|
||||||
data class SearchShortcutEngineSelected(val engine: SearchEngine) : SearchFragmentAction()
|
data class SearchShortcutEngineSelected(val engine: SearchEngine) : SearchFragmentAction()
|
||||||
data class SelectNewDefaultSearchEngine(val engine: SearchEngine) : SearchFragmentAction()
|
data class SelectNewDefaultSearchEngine(val engine: SearchEngine) : SearchFragmentAction()
|
||||||
data class ShowSearchShortcutEnginePicker(val show: Boolean) : SearchFragmentAction()
|
data class ShowSearchShortcutEnginePicker(val show: Boolean) : SearchFragmentAction()
|
||||||
|
@ -94,9 +91,5 @@ private fun searchStateReducer(state: SearchFragmentState, action: SearchFragmen
|
||||||
)
|
)
|
||||||
is SearchFragmentAction.AllowSearchSuggestionsInPrivateModePrompt ->
|
is SearchFragmentAction.AllowSearchSuggestionsInPrivateModePrompt ->
|
||||||
state.copy(showSearchSuggestionsHint = action.show)
|
state.copy(showSearchSuggestionsHint = action.show)
|
||||||
is SearchFragmentAction.UpdateEditingCanceled ->
|
|
||||||
state.copy(isAnimatingOut = true)
|
|
||||||
is SearchFragmentAction.ConsumeEditingCancelled ->
|
|
||||||
state.copy(isAnimatingOut = false)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,19 +32,6 @@
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/back_button"
|
|
||||||
android:layout_width="40dp"
|
|
||||||
android:layout_height="40dp"
|
|
||||||
android:layout_margin="8dp"
|
|
||||||
android:background="?selectableItemBackground"
|
|
||||||
android:contentDescription="@string/browser_menu_back"
|
|
||||||
android:tint="?primaryText"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@id/toolbar_wrapper"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/toolbar_wrapper"
|
|
||||||
app:srcCompat="@drawable/mozac_ic_back" />
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/toolbar_wrapper"
|
android:id="@+id/toolbar_wrapper"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
@ -53,7 +40,7 @@
|
||||||
android:outlineProvider="paddedBounds"
|
android:outlineProvider="paddedBounds"
|
||||||
android:transitionName="toolbar_wrapper_transition"
|
android:transitionName="toolbar_wrapper_transition"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toEndOf="@id/back_button"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
@ -80,7 +67,7 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintBottom_toBottomOf="@id/awesomeBar_barrier"
|
app:layout_constraintBottom_toBottomOf="@id/awesomeBar_barrier"
|
||||||
app:layout_constraintEnd_toEndOf="@id/toolbar_wrapper"
|
app:layout_constraintEnd_toEndOf="@id/toolbar_wrapper"
|
||||||
app:layout_constraintStart_toStartOf="@id/back_button"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/toolbar_wrapper">
|
app:layout_constraintTop_toBottomOf="@id/toolbar_wrapper">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
@ -138,7 +125,7 @@
|
||||||
android:layout_marginTop="@dimen/search_fragment_shortcuts_label_margin_vertical"
|
android:layout_marginTop="@dimen/search_fragment_shortcuts_label_margin_vertical"
|
||||||
android:layout_marginEnd="@dimen/search_fragment_shortcuts_label_margin_horizontal"
|
android:layout_marginEnd="@dimen/search_fragment_shortcuts_label_margin_horizontal"
|
||||||
android:text="@string/search_shortcuts_search_with_2"
|
android:text="@string/search_shortcuts_search_with_2"
|
||||||
app:layout_constraintStart_toStartOf="@id/back_button"
|
app:layout_constraintStart_toStartOf="@id/toolbar_wrapper"
|
||||||
app:layout_constraintTop_toBottomOf="@id/awesomeBar_barrier"
|
app:layout_constraintTop_toBottomOf="@id/awesomeBar_barrier"
|
||||||
tools:text="This time, search with:" />
|
tools:text="This time, search with:" />
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,6 @@ class SearchFragmentStoreTest {
|
||||||
showHistorySuggestions = false,
|
showHistorySuggestions = false,
|
||||||
showBookmarkSuggestions = false,
|
showBookmarkSuggestions = false,
|
||||||
session = null,
|
session = null,
|
||||||
searchAccessPoint = Event.PerformedSearch.SearchAccessPoint.NONE,
|
searchAccessPoint = Event.PerformedSearch.SearchAccessPoint.NONE
|
||||||
isAnimatingOut = false
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,6 @@ class SearchInteractorTest {
|
||||||
interactor.onEditingCanceled()
|
interactor.onEditingCanceled()
|
||||||
|
|
||||||
verify {
|
verify {
|
||||||
store.dispatch(SearchFragmentAction.UpdateEditingCanceled)
|
|
||||||
navController.navigateUp()
|
navController.navigateUp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue