1
0
Fork 0

For #8454 - Removes back button from the search screen

master
Sawyer Blatz 2020-02-20 15:15:47 -08:00 committed by GitHub
parent a8d3b635ba
commit f02e06afae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 6 additions and 56 deletions

View File

@ -74,7 +74,6 @@ class DefaultSearchController(
} }
override fun handleEditingCancelled() { override fun handleEditingCancelled() {
store.dispatch(SearchFragmentAction.UpdateEditingCanceled)
navController.navigateUp() navController.navigateUp()
} }

View File

@ -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

View File

@ -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)
} }
} }

View File

@ -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:" />

View File

@ -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
) )
} }

View File

@ -99,7 +99,6 @@ class SearchInteractorTest {
interactor.onEditingCanceled() interactor.onEditingCanceled()
verify { verify {
store.dispatch(SearchFragmentAction.UpdateEditingCanceled)
navController.navigateUp() navController.navigateUp()
} }
} }