No Issue - Adds the fill with clipboard button

pull/35/head
Jeff Boek 4 years ago
parent 8f25c984a8
commit e92cf50a1c

@ -28,13 +28,11 @@ import androidx.core.view.isVisible
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import kotlinx.android.synthetic.main.fragment_search_dialog.*
import kotlinx.android.synthetic.main.fragment_search_dialog.fill_link_from_clipboard
import kotlinx.android.synthetic.main.fragment_search_dialog.pill_wrapper
import kotlinx.android.synthetic.main.fragment_search_dialog.qr_scan_button
import kotlinx.android.synthetic.main.fragment_search_dialog.toolbar
import kotlinx.android.synthetic.main.fragment_search_dialog.view.*
import kotlinx.android.synthetic.main.fragment_search_dialog.view.search_engines_shortcut_button
import kotlinx.android.synthetic.main.fragment_search_dialog.view.qr_scan_button
import kotlinx.android.synthetic.main.fragment_search_dialog.view.toolbar
import kotlinx.android.synthetic.main.search_suggestions_onboarding.view.*
import kotlinx.coroutines.ExperimentalCoroutinesApi
import mozilla.components.browser.toolbar.BrowserToolbar
@ -53,6 +51,7 @@ import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.components.searchengine.CustomSearchEngineStore
import org.mozilla.fenix.components.searchengine.FenixSearchEngineProvider
import org.mozilla.fenix.components.toolbar.ToolbarPosition
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.search.SearchFragmentAction
@ -186,6 +185,15 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler {
qrFeature.get()?.scan(R.id.search_wrapper)
}
fill_link_from_clipboard.setOnClickListener {
(activity as HomeActivity)
.openToBrowserAndLoad(
searchTermOrURL = requireContext().components.clipboardHandler.url ?: "",
newTab = store.state.tabId == null,
from = BrowserDirection.FromSearchDialog
)
}
qrFeature.set(
createQrFeature(),
owner = this,
@ -236,6 +244,7 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler {
awesome_bar?.visibility = if (shouldShowAwesomebar) View.VISIBLE else View.INVISIBLE
updateSearchSuggestionsHintVisibility(it)
updateClipboardSuggestion(it, requireContext().components.clipboardHandler.url)
toolbarView.update(it)
awesomeBarView.update(it)
firstUpdate = false
@ -319,6 +328,9 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler {
connect(awesome_bar.id, TOP, PARENT_ID, TOP)
connect(pill_wrapper.id, BOTTOM, toolbar.id, TOP)
clear(fill_link_from_clipboard.id, TOP)
connect(fill_link_from_clipboard.id, BOTTOM, pill_wrapper.id, TOP)
applyTo(search_wrapper)
}
}
@ -372,6 +384,19 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler {
}
}
private fun updateClipboardSuggestion(searchState: SearchFragmentState, clipboardUrl: String?) {
val visibility =
if (searchState.showClipboardSuggestions && searchState.query.isEmpty() && !clipboardUrl.isNullOrEmpty())
View.VISIBLE else View.GONE
fill_link_from_clipboard.visibility = visibility
clipboard_url.text = clipboardUrl
if (clipboardUrl != null && !((activity as HomeActivity).browsingModeManager.mode.isPrivate)) {
requireComponents.core.engine.speculativeConnect(clipboardUrl)
}
}
companion object {
private const val REQUEST_CODE_CAMERA_PERMISSIONS = 1
}

@ -66,6 +66,57 @@
app:layout_constraintBottom_toBottomOf="@id/search_suggestions_onboarding"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/fill_link_from_clipboard"
android:layout_width="0dp"
android:layout_height="@dimen/search_fragment_clipboard_item_height"
android:paddingStart="@dimen/search_fragment_clipboard_item_horizontal_margin"
android:paddingEnd="@dimen/search_fragment_clipboard_item_horizontal_margin"
android:background="?foundation"
android:clickable="true"
android:focusable="true"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar">
<ImageView
android:id="@+id/link_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
app:tint="?primaryText"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_link" />
<TextView
android:id="@+id/clipboard_title"
style="@style/SearchClipboardTitleStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/search_fragment_clipboard_item_title_margin_start"
android:text="@string/awesomebar_clipboard_title"
app:layout_constraintBottom_toTopOf="@id/clipboard_url"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/link_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/clipboard_url"
style="@style/SearchClipboardUrlStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/clipboard_title"
app:layout_constraintTop_toBottomOf="@id/clipboard_title"
app:layout_constraintVertical_chainStyle="packed" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/pill_wrapper"
android:layout_width="0dp"

Loading…
Cancel
Save