Copione merged onto master
continuous-integration/drone/push Build encountered an error
Details
continuous-integration/drone/push Build encountered an error
Details
commit
773ed88171
|
@ -35,7 +35,6 @@ android {
|
|||
def deepLinkSchemeValue = "fenix-dev"
|
||||
buildConfigField "String", "DEEP_LINK_SCHEME", "\"$deepLinkSchemeValue\""
|
||||
manifestPlaceholders = [
|
||||
"isRaptorEnabled": "false",
|
||||
"deepLinkScheme": deepLinkSchemeValue
|
||||
]
|
||||
}
|
||||
|
@ -56,12 +55,10 @@ android {
|
|||
shrinkResources false
|
||||
minifyEnabled false
|
||||
applicationIdSuffix ".fenix.debug"
|
||||
manifestPlaceholders.isRaptorEnabled = "true"
|
||||
resValue "bool", "IS_DEBUG", "true"
|
||||
pseudoLocalesEnabled true
|
||||
}
|
||||
forPerformanceTest releaseTemplate >> { // the ">>" concatenates the raptor-specific options with the template
|
||||
manifestPlaceholders.isRaptorEnabled = "true"
|
||||
applicationIdSuffix ".fenix.performancetest"
|
||||
debuggable true
|
||||
manifestPlaceholders = [
|
||||
|
@ -556,17 +553,15 @@ dependencies {
|
|||
lintChecks project(":mozilla-lint-rules")
|
||||
}
|
||||
|
||||
if (project.hasProperty("raptor")) {
|
||||
android.defaultConfig.manifestPlaceholders.isRaptorEnabled = "true"
|
||||
}
|
||||
|
||||
if (project.hasProperty("coverage")) {
|
||||
tasks.withType(Test) {
|
||||
jacoco.includeNoLocationClasses = true
|
||||
}
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
task "jacoco${variant.name.capitalize()}TestReport"(type: JacocoReport, dependsOn: "test${variant.name.capitalize()}UnitTest") {
|
||||
tasks.register("jacoco${variant.name.capitalize()}TestReport", JacocoReport) {
|
||||
dependsOn "test${variant.name.capitalize()}UnitTest"
|
||||
|
||||
reports {
|
||||
xml.enabled = true
|
||||
html.enabled = true
|
||||
|
@ -579,11 +574,12 @@ if (project.hasProperty("coverage")) {
|
|||
excludes: fileFilter)
|
||||
def mainSrc = "$project.projectDir/src/main/java"
|
||||
|
||||
sourceDirectories = files([mainSrc])
|
||||
classDirectories = files([kotlinDebugTree, javaDebugTree])
|
||||
executionData = fileTree(dir: project.buildDir, includes: [
|
||||
"jacoco/test${variant.name.capitalize()}UnitTest.exec", 'outputs/code-coverage/connected/*coverage.ec'
|
||||
])
|
||||
sourceDirectories.setFrom(files([mainSrc]))
|
||||
classDirectories.setFrom(files([kotlinDebugTree, javaDebugTree]))
|
||||
executionData.setFrom(fileTree(dir: project.buildDir, includes: [
|
||||
"jacoco/test${variant.name.capitalize()}UnitTest.exec",
|
||||
'outputs/code-coverage/connected/*coverage.ec'
|
||||
]))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import okhttp3.mockwebserver.MockWebServer
|
|||
import org.junit.Rule
|
||||
import org.junit.Before
|
||||
import org.junit.After
|
||||
import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
||||
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
|
||||
|
@ -68,7 +69,7 @@ class SettingsAboutTest {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
@Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/13219")
|
||||
@Test
|
||||
fun verifyAboutFirefoxPreview() {
|
||||
homeScreen {
|
||||
|
|
|
@ -44,6 +44,7 @@ class SettingsAddonsTest {
|
|||
}
|
||||
|
||||
// Walks through settings add-ons menu to ensure all items are present
|
||||
@Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/13218")
|
||||
@Test
|
||||
fun settingsAddonsItemsTest() {
|
||||
homeScreen {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import mozilla.components.browser.engine.gecko.autofill.GeckoLoginDelegateWrapper
|
||||
import mozilla.components.browser.engine.gecko.ext.toContentBlockingSetting
|
||||
import mozilla.components.browser.engine.gecko.glean.GeckoAdapter
|
||||
|
@ -17,7 +16,6 @@ import org.mozilla.geckoview.GeckoRuntime
|
|||
import org.mozilla.geckoview.GeckoRuntimeSettings
|
||||
|
||||
object GeckoProvider {
|
||||
var testConfig: Bundle? = null
|
||||
private var runtime: GeckoRuntime? = null
|
||||
|
||||
@Synchronized
|
||||
|
@ -40,11 +38,6 @@ object GeckoProvider {
|
|||
): GeckoRuntime {
|
||||
val builder = GeckoRuntimeSettings.Builder()
|
||||
|
||||
testConfig?.let {
|
||||
builder.extras(it)
|
||||
.remoteDebuggingEnabled(true)
|
||||
}
|
||||
|
||||
val runtimeSettings = builder
|
||||
.crashHandler(CrashHandlerService::class.java)
|
||||
.telemetryDelegate(GeckoAdapter())
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import mozilla.components.browser.engine.gecko.autofill.GeckoLoginDelegateWrapper
|
||||
import mozilla.components.browser.engine.gecko.ext.toContentBlockingSetting
|
||||
import mozilla.components.browser.engine.gecko.glean.GeckoAdapter
|
||||
|
@ -17,7 +16,6 @@ import org.mozilla.geckoview.GeckoRuntime
|
|||
import org.mozilla.geckoview.GeckoRuntimeSettings
|
||||
|
||||
object GeckoProvider {
|
||||
var testConfig: Bundle? = null
|
||||
private var runtime: GeckoRuntime? = null
|
||||
|
||||
@Synchronized
|
||||
|
@ -40,11 +38,6 @@ object GeckoProvider {
|
|||
): GeckoRuntime {
|
||||
val builder = GeckoRuntimeSettings.Builder()
|
||||
|
||||
testConfig?.let {
|
||||
builder.extras(it)
|
||||
.remoteDebuggingEnabled(true)
|
||||
}
|
||||
|
||||
val runtimeSettings = builder
|
||||
.crashHandler(CrashHandlerService::class.java)
|
||||
.telemetryDelegate(GeckoAdapter())
|
||||
|
|
|
@ -217,11 +217,6 @@
|
|||
|
||||
<activity android:name=".widget.VoiceSearchActivity" />
|
||||
|
||||
<activity
|
||||
android:name=".browser.BrowserPerformanceTestActivity"
|
||||
android:enabled="${isRaptorEnabled}"
|
||||
android:exported="${isRaptorEnabled}" />
|
||||
|
||||
<activity
|
||||
android:name=".settings.account.AuthCustomTabActivity"
|
||||
android:autoRemoveFromRecents="false"
|
||||
|
|
|
@ -47,5 +47,5 @@ object FeatureFlags {
|
|||
/**
|
||||
* Enables wait til first contentful paint
|
||||
*/
|
||||
val waitUntilPaintToDraw = Config.channel.isDebug
|
||||
val waitUntilPaintToDraw = Config.channel.isNightlyOrDebug
|
||||
}
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.fenix.browser
|
||||
|
||||
import GeckoProvider
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import mozilla.components.support.utils.SafeIntent
|
||||
import org.mozilla.fenix.IntentReceiverActivity
|
||||
|
||||
/**
|
||||
* This activity is used for performance testing with Raptor/tp6:
|
||||
* https://wiki.mozilla.org/Performance_sheriffing/Raptor
|
||||
*/
|
||||
class BrowserPerformanceTestActivity : Activity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
GeckoProvider.testConfig = SafeIntent(intent).extras
|
||||
|
||||
val intent = Intent(intent)
|
||||
|
||||
intent.setClassName(applicationContext, IntentReceiverActivity::class.java.name)
|
||||
|
||||
startActivity(intent)
|
||||
|
||||
finish()
|
||||
}
|
||||
}
|
|
@ -45,6 +45,8 @@ interface BookmarkController {
|
|||
fun handleBookmarkFolderDeletion(nodes: Set<BookmarkNode>)
|
||||
fun handleRequestSync()
|
||||
fun handleBackPressed()
|
||||
fun handleStartSwipingItem()
|
||||
fun handleStopSwipingItem()
|
||||
}
|
||||
|
||||
@Suppress("TooManyFunctions")
|
||||
|
@ -169,6 +171,14 @@ class DefaultBookmarkController(
|
|||
}
|
||||
}
|
||||
|
||||
override fun handleStartSwipingItem() {
|
||||
store.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(false))
|
||||
}
|
||||
|
||||
override fun handleStopSwipingItem() {
|
||||
store.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(true))
|
||||
}
|
||||
|
||||
private fun openInNewTab(
|
||||
searchTermOrURL: String,
|
||||
newTab: Boolean,
|
||||
|
|
|
@ -120,4 +120,12 @@ class BookmarkFragmentInteractor(
|
|||
override fun onRequestSync() {
|
||||
bookmarksController.handleRequestSync()
|
||||
}
|
||||
|
||||
override fun onStartSwipingItem() {
|
||||
bookmarksController.handleStartSwipingItem()
|
||||
}
|
||||
|
||||
override fun onStopSwipingItem() {
|
||||
bookmarksController.handleStopSwipingItem()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,12 +23,14 @@ class BookmarkFragmentStore(
|
|||
* @property guidBackstack A set of guids for bookmark nodes we have visited. Used to traverse back
|
||||
* up the tree after a sync.
|
||||
* @property isLoading true if bookmarks are still being loaded from disk
|
||||
* @property isSwipeToRefreshEnabled true if swipe to refresh should be enabled
|
||||
*/
|
||||
data class BookmarkFragmentState(
|
||||
val tree: BookmarkNode?,
|
||||
val mode: Mode = Mode.Normal(),
|
||||
val guidBackstack: List<String> = emptyList(),
|
||||
val isLoading: Boolean = true
|
||||
val isLoading: Boolean = true,
|
||||
val isSwipeToRefreshEnabled: Boolean = true
|
||||
) : State {
|
||||
sealed class Mode {
|
||||
open val selectedItems = emptySet<BookmarkNode>()
|
||||
|
@ -49,6 +51,7 @@ sealed class BookmarkFragmentAction : Action {
|
|||
object DeselectAll : BookmarkFragmentAction()
|
||||
object StartSync : BookmarkFragmentAction()
|
||||
object FinishSync : BookmarkFragmentAction()
|
||||
data class SwipeRefreshAvailabilityChanged(val enabled: Boolean) : BookmarkFragmentAction()
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -71,31 +74,37 @@ private fun bookmarkFragmentStateReducer(
|
|||
} + action.tree.guid
|
||||
|
||||
val items = state.mode.selectedItems.filter { it in action.tree }
|
||||
val mode = when {
|
||||
state.mode is BookmarkFragmentState.Mode.Syncing -> {
|
||||
BookmarkFragmentState.Mode.Syncing
|
||||
}
|
||||
items.isEmpty() -> {
|
||||
BookmarkFragmentState.Mode.Normal(shouldShowMenu(action.tree.guid))
|
||||
}
|
||||
else -> BookmarkFragmentState.Mode.Selecting(items.toSet())
|
||||
}
|
||||
state.copy(
|
||||
tree = action.tree,
|
||||
mode = when {
|
||||
state.mode is BookmarkFragmentState.Mode.Syncing -> {
|
||||
BookmarkFragmentState.Mode.Syncing
|
||||
}
|
||||
items.isEmpty() -> {
|
||||
BookmarkFragmentState.Mode.Normal(shouldShowMenu(action.tree.guid))
|
||||
}
|
||||
else -> BookmarkFragmentState.Mode.Selecting(items.toSet())
|
||||
},
|
||||
mode = mode,
|
||||
guidBackstack = backstack,
|
||||
isLoading = false
|
||||
isLoading = false,
|
||||
isSwipeToRefreshEnabled = mode !is BookmarkFragmentState.Mode.Selecting
|
||||
)
|
||||
}
|
||||
is BookmarkFragmentAction.Select ->
|
||||
state.copy(mode = BookmarkFragmentState.Mode.Selecting(state.mode.selectedItems + action.item))
|
||||
is BookmarkFragmentAction.Select -> state.copy(
|
||||
mode = BookmarkFragmentState.Mode.Selecting(state.mode.selectedItems + action.item),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
is BookmarkFragmentAction.Deselect -> {
|
||||
val items = state.mode.selectedItems - action.item
|
||||
val mode = if (items.isEmpty()) {
|
||||
BookmarkFragmentState.Mode.Normal()
|
||||
} else {
|
||||
BookmarkFragmentState.Mode.Selecting(items)
|
||||
}
|
||||
state.copy(
|
||||
mode = if (items.isEmpty()) {
|
||||
BookmarkFragmentState.Mode.Normal()
|
||||
} else {
|
||||
BookmarkFragmentState.Mode.Selecting(items)
|
||||
}
|
||||
mode = mode,
|
||||
isSwipeToRefreshEnabled = mode !is BookmarkFragmentState.Mode.Selecting
|
||||
)
|
||||
}
|
||||
is BookmarkFragmentAction.DeselectAll ->
|
||||
|
@ -104,18 +113,22 @@ private fun bookmarkFragmentStateReducer(
|
|||
BookmarkFragmentState.Mode.Syncing
|
||||
} else {
|
||||
BookmarkFragmentState.Mode.Normal()
|
||||
}
|
||||
)
|
||||
is BookmarkFragmentAction.StartSync ->
|
||||
state.copy(
|
||||
mode = BookmarkFragmentState.Mode.Syncing
|
||||
)
|
||||
is BookmarkFragmentAction.FinishSync ->
|
||||
state.copy(
|
||||
mode = BookmarkFragmentState.Mode.Normal(
|
||||
showMenu = shouldShowMenu(state.tree?.guid)
|
||||
)
|
||||
},
|
||||
isSwipeToRefreshEnabled = true
|
||||
)
|
||||
is BookmarkFragmentAction.StartSync -> state.copy(
|
||||
mode = BookmarkFragmentState.Mode.Syncing,
|
||||
isSwipeToRefreshEnabled = true
|
||||
)
|
||||
is BookmarkFragmentAction.FinishSync -> state.copy(
|
||||
mode = BookmarkFragmentState.Mode.Normal(
|
||||
showMenu = shouldShowMenu(state.tree?.guid)
|
||||
),
|
||||
isSwipeToRefreshEnabled = true
|
||||
)
|
||||
is BookmarkFragmentAction.SwipeRefreshAvailabilityChanged -> state.copy(
|
||||
isSwipeToRefreshEnabled = action.enabled && state.mode !is BookmarkFragmentState.Mode.Selecting
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import android.graphics.drawable.Drawable
|
|||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import mozilla.components.concept.storage.BookmarkNodeType
|
||||
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||
import mozilla.components.support.ktx.android.content.getDrawableWithTint
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
|
@ -21,8 +22,9 @@ import org.mozilla.fenix.library.bookmarks.viewholders.BookmarkSeparatorViewHold
|
|||
class BookmarkTouchHelper(interactor: BookmarkViewInteractor) :
|
||||
ItemTouchHelper(BookmarkTouchCallback(interactor))
|
||||
|
||||
class BookmarkTouchCallback(private val interactor: BookmarkViewInteractor) :
|
||||
ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT) {
|
||||
class BookmarkTouchCallback(
|
||||
private val interactor: BookmarkViewInteractor
|
||||
) : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT or ItemTouchHelper.RIGHT) {
|
||||
|
||||
override fun getSwipeDirs(
|
||||
recyclerView: RecyclerView,
|
||||
|
@ -41,7 +43,14 @@ class BookmarkTouchCallback(private val interactor: BookmarkViewInteractor) :
|
|||
*/
|
||||
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
|
||||
val item = (viewHolder as BookmarkNodeViewHolder).item
|
||||
item?.let { interactor.onDelete(setOf(it)) }
|
||||
item?.let {
|
||||
interactor.onDelete(setOf(it))
|
||||
// We need to notify the adapter of a change if we swipe a folder to prevent
|
||||
// visual bugs when cancelling deletion of a folder
|
||||
if (item.type == BookmarkNodeType.FOLDER) {
|
||||
viewHolder.bindingAdapter?.notifyItemChanged(viewHolder.bindingAdapterPosition)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onChildDraw(
|
||||
|
@ -107,6 +116,15 @@ class BookmarkTouchCallback(private val interactor: BookmarkViewInteractor) :
|
|||
target: RecyclerView.ViewHolder
|
||||
): Boolean = false
|
||||
|
||||
override fun onSelectedChanged(viewHolder: RecyclerView.ViewHolder?, actionState: Int) {
|
||||
super.onSelectedChanged(viewHolder, actionState)
|
||||
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
|
||||
interactor.onStartSwipingItem()
|
||||
} else {
|
||||
interactor.onStopSwipingItem()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setBounds(
|
||||
background: Drawable,
|
||||
backgroundBounds: Rect,
|
||||
|
|
|
@ -98,6 +98,16 @@ interface BookmarkViewInteractor : SelectionInteractor<BookmarkNode> {
|
|||
*
|
||||
*/
|
||||
fun onRequestSync()
|
||||
|
||||
/**
|
||||
* Handles the start of a swipe on a bookmark.
|
||||
*/
|
||||
fun onStartSwipingItem()
|
||||
|
||||
/**
|
||||
* Handles the end of a swipe on a bookmark.
|
||||
*/
|
||||
fun onStopSwipingItem()
|
||||
}
|
||||
|
||||
class BookmarkView(
|
||||
|
@ -112,11 +122,10 @@ class BookmarkView(
|
|||
private var mode: BookmarkFragmentState.Mode = BookmarkFragmentState.Mode.Normal()
|
||||
private var tree: BookmarkNode? = null
|
||||
|
||||
private val bookmarkAdapter: BookmarkAdapter
|
||||
private val bookmarkAdapter = BookmarkAdapter(view.bookmarks_empty_view, interactor)
|
||||
|
||||
init {
|
||||
view.bookmark_list.apply {
|
||||
bookmarkAdapter = BookmarkAdapter(view.bookmarks_empty_view, interactor)
|
||||
adapter = bookmarkAdapter
|
||||
}
|
||||
view.bookmark_folders_sign_in.setOnClickListener {
|
||||
|
@ -153,8 +162,7 @@ class BookmarkView(
|
|||
}
|
||||
}
|
||||
view.bookmarks_progress_bar.isVisible = state.isLoading
|
||||
view.swipe_refresh.isEnabled =
|
||||
state.mode is BookmarkFragmentState.Mode.Normal || state.mode is BookmarkFragmentState.Mode.Syncing
|
||||
view.swipe_refresh.isEnabled = state.isSwipeToRefreshEnabled
|
||||
view.swipe_refresh.isRefreshing = state.mode is BookmarkFragmentState.Mode.Syncing
|
||||
}
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
|
|||
searchController
|
||||
)
|
||||
|
||||
awesomeBarView = AwesomeBarView(view.scrollable_area, searchInteractor,
|
||||
awesomeBarView = AwesomeBarView(requireContext(), searchInteractor,
|
||||
view.findViewById(R.id.awesomeBar))
|
||||
setShortcutsChangedListener(CustomSearchEngineStore.PREF_FILE_SEARCH_ENGINES)
|
||||
setShortcutsChangedListener(FenixSearchEngineProvider.PREF_FILE_SEARCH_ENGINES)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package org.mozilla.fenix.search.awesomebar
|
||||
|
||||
import android.view.ViewGroup
|
||||
import android.content.Context
|
||||
import androidx.appcompat.content.res.AppCompatResources.getDrawable
|
||||
import androidx.core.graphics.BlendModeColorFilterCompat.createBlendModeColorFilterCompat
|
||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||
|
@ -34,11 +34,10 @@ import org.mozilla.fenix.search.SearchFragmentState
|
|||
* View that contains and configures the BrowserAwesomeBar
|
||||
*/
|
||||
class AwesomeBarView(
|
||||
private val container: ViewGroup,
|
||||
private val context: Context,
|
||||
val interactor: AwesomeBarInteractor,
|
||||
val view: BrowserAwesomeBar
|
||||
) {
|
||||
|
||||
private val sessionProvider: SessionSuggestionProvider
|
||||
private val historyStorageProvider: HistoryStorageSuggestionProvider
|
||||
private val shortcutsEnginePickerProvider: ShortcutsSuggestionProvider
|
||||
|
@ -91,7 +90,6 @@ class AwesomeBarView(
|
|||
init {
|
||||
view.itemAnimator = null
|
||||
|
||||
val context = container.context
|
||||
val components = context.components
|
||||
val primaryTextColor = context.getColorFromAttr(R.attr.primaryText)
|
||||
|
||||
|
@ -255,7 +253,7 @@ class AwesomeBarView(
|
|||
}
|
||||
|
||||
private fun isBrowsingModePrivate(): Boolean {
|
||||
return (container.context.asActivity() as? HomeActivity)?.browsingModeManager?.mode?.isPrivate
|
||||
return (context.asActivity() as? HomeActivity)?.browsingModeManager?.mode?.isPrivate
|
||||
?: false
|
||||
}
|
||||
|
||||
|
@ -280,7 +278,6 @@ class AwesomeBarView(
|
|||
|
||||
private fun getSuggestionProviderForEngine(engine: SearchEngine): List<AwesomeBar.SuggestionProvider> {
|
||||
return searchSuggestionProviderMap.getOrPut(engine) {
|
||||
val context = container.context
|
||||
val components = context.components
|
||||
val primaryTextColor = context.getColorFromAttr(R.attr.primaryText)
|
||||
|
||||
|
|
|
@ -9,12 +9,116 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatDialogFragment
|
||||
import kotlinx.android.synthetic.main.fragment_search.view.*
|
||||
import mozilla.components.browser.search.SearchEngine
|
||||
import mozilla.components.browser.session.Session
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.ext.logDebug
|
||||
import org.mozilla.fenix.ext.requireComponents
|
||||
import org.mozilla.fenix.search.SearchEngineSource
|
||||
import org.mozilla.fenix.search.SearchFragmentState
|
||||
import org.mozilla.fenix.search.awesomebar.AwesomeBarInteractor
|
||||
import org.mozilla.fenix.search.awesomebar.AwesomeBarView
|
||||
import org.mozilla.fenix.search.toolbar.ToolbarInteractor
|
||||
import org.mozilla.fenix.search.toolbar.ToolbarView
|
||||
|
||||
class TempSearchInteractor(val onTextChangedCallback: (String) -> Unit) : ToolbarInteractor, AwesomeBarInteractor {
|
||||
override fun onUrlCommitted(url: String) {
|
||||
logDebug("boek", "onUrlCommitted $url")
|
||||
}
|
||||
|
||||
override fun onEditingCanceled() {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onTextChanged(text: String) {
|
||||
onTextChangedCallback.invoke(text)
|
||||
}
|
||||
|
||||
override fun onUrlTapped(url: String) {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onSearchTermsTapped(searchTerms: String) {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onSearchShortcutEngineSelected(searchEngine: SearchEngine) {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onClickSearchEngineSettings() {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onExistingSessionSelected(session: Session) {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onExistingSessionSelected(tabId: String) {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
|
||||
override fun onSearchShortcutsButtonClicked() {
|
||||
logDebug("boek", "onEditingCanceled")
|
||||
}
|
||||
}
|
||||
|
||||
class SearchDialogFragment : AppCompatDialogFragment() {
|
||||
|
||||
private lateinit var toolbarView: ToolbarView
|
||||
private lateinit var awesomeBarView: AwesomeBarView
|
||||
private val tempInteractor = TempSearchInteractor {
|
||||
view?.awesomeBar?.visibility = if (it.isEmpty()) View.INVISIBLE else View.VISIBLE
|
||||
|
||||
awesomeBarView.update(
|
||||
SearchFragmentState(
|
||||
query = it,
|
||||
url = "",
|
||||
searchTerms = "",
|
||||
searchEngineSource = SearchEngineSource.Default(requireComponents.search.provider.getDefaultEngine(requireContext())),
|
||||
defaultEngineSource = SearchEngineSource.Default(requireComponents.search.provider.getDefaultEngine(requireContext())),
|
||||
showSearchSuggestions = true,
|
||||
showSearchSuggestionsHint = false,
|
||||
showSearchShortcuts = false,
|
||||
areShortcutsAvailable = false,
|
||||
showClipboardSuggestions = true,
|
||||
showHistorySuggestions = true,
|
||||
showBookmarkSuggestions = true,
|
||||
tabId = null,
|
||||
pastedText = null,
|
||||
searchAccessPoint = null
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setStyle(STYLE_NO_TITLE, R.style.SearchDialogStyle)
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? = inflater.inflate(R.layout.fragment_search_dialog, container, false)
|
||||
): View? {
|
||||
val view = inflater.inflate(R.layout.fragment_search_dialog, container, false)
|
||||
|
||||
toolbarView = ToolbarView(
|
||||
requireContext(),
|
||||
tempInteractor,
|
||||
null,
|
||||
false,
|
||||
view.toolbar,
|
||||
requireComponents.core.engine
|
||||
)
|
||||
|
||||
awesomeBarView = AwesomeBarView(
|
||||
requireContext(),
|
||||
tempInteractor,
|
||||
view.awesomeBar
|
||||
)
|
||||
|
||||
return view
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ import android.os.Bundle
|
|||
import mozilla.components.support.utils.RunWhenReadyQueue
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.IntentReceiverActivity
|
||||
import org.mozilla.fenix.browser.BrowserPerformanceTestActivity
|
||||
import org.mozilla.fenix.settings.account.AuthIntentReceiverActivity
|
||||
import org.mozilla.fenix.widget.VoiceSearchActivity
|
||||
|
||||
|
@ -37,8 +36,7 @@ class PerformanceActivityLifecycleCallbacks(
|
|||
return isTransientActivityInMigrationVariant(activity) ||
|
||||
(activity is IntentReceiverActivity) ||
|
||||
(activity is VoiceSearchActivity) ||
|
||||
(activity is AuthIntentReceiverActivity) ||
|
||||
(activity is BrowserPerformanceTestActivity)
|
||||
(activity is AuthIntentReceiverActivity)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -61,6 +61,7 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), UserInteractionHandler
|
|||
|
||||
private val tabsFeature = ViewBoundFeatureWrapper<TabsFeature>()
|
||||
private var _tabTrayView: TabTrayView? = null
|
||||
private var currentOrientation: Int? = null
|
||||
private val tabTrayView: TabTrayView
|
||||
get() = _tabTrayView!!
|
||||
private lateinit var tabTrayDialogStore: TabTrayDialogFragmentStore
|
||||
|
@ -154,9 +155,10 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), UserInteractionHandler
|
|||
val isLandscape = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE
|
||||
tabTrayView.setTopOffset(isLandscape)
|
||||
|
||||
if (isLandscape) {
|
||||
if (newConfig.orientation != currentOrientation) {
|
||||
tabTrayView.dismissMenu()
|
||||
tabTrayView.expand()
|
||||
currentOrientation = newConfig.orientation
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -168,6 +170,7 @@ class TabTrayDialogFragment : AppCompatDialogFragment(), UserInteractionHandler
|
|||
|
||||
val thumbnailLoader = ThumbnailLoader(requireContext().components.core.thumbnailStorage)
|
||||
val adapter = FenixTabsAdapter(requireContext(), thumbnailLoader)
|
||||
currentOrientation = resources.configuration.orientation
|
||||
|
||||
_tabTrayView = TabTrayView(
|
||||
view.tabLayout,
|
||||
|
|
|
@ -5,14 +5,49 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
<mozilla.components.browser.toolbar.BrowserToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/browser_toolbar_height"
|
||||
android:background="@drawable/toolbar_background_top"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
app:layout_scrollFlags="scroll|enterAlways|snap|exitUntilCollapsed"
|
||||
app:browserToolbarClearColor="?primaryText"
|
||||
app:browserToolbarInsecureColor="?primaryText"
|
||||
app:browserToolbarMenuColor="?primaryText"
|
||||
app:browserToolbarProgressBarGravity="bottom"
|
||||
app:browserToolbarSecureColor="?primaryText"
|
||||
app:browserToolbarTrackingProtectionAndSecurityIndicatorSeparatorColor="?toolbarDivider"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:text="Hello World"
|
||||
/>
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"/>
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:id="@+id/scrollView"
|
||||
android:background="?attr/scrimBackground"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/toolbar"
|
||||
android:scrollbars="vertical">
|
||||
<mozilla.components.browser.awesomebar.BrowserAwesomeBar
|
||||
xmlns:mozac="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/awesomeBar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fadingEdge="horizontal"
|
||||
android:fadingEdgeLength="40dp"
|
||||
android:nestedScrollingEnabled="false"
|
||||
android:requiresFadingEdge="vertical"
|
||||
android:background="?attr/foundation"
|
||||
android:visibility="invisible"
|
||||
mozac:awesomeBarChipBackgroundColor="@color/photonGreen50"
|
||||
mozac:awesomeBarDescriptionTextColor="?secondaryText"
|
||||
mozac:awesomeBarTitleTextColor="?primaryText" />
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
@ -170,8 +170,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Sganio</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Peiriant Chwilio</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Peiriant chwilio</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Gosodiadau peiriannau chwilio</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1456,9 +1456,7 @@ Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr Beta i gael profiad
|
|||
<string name="saved_login_duplicate">Mae mewngofnod gyda’r enw defnyddiwr yna eisoes yn bodoli</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Cysylltu gyda Chyfrif Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Cysylltu dyfais arall</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Ail-ddilyswch, os gwelwch yn dda.</string>
|
||||
|
@ -1480,13 +1478,4 @@ Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr Beta i gael profiad
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">Iawn, Wedi deall!</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Llwybrau byr</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Chwilio gyda</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Y tro hwn, chwilio gyda:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Dangos llwybrau byr chwilio</string>
|
||||
</resources>
|
||||
|
|
|
@ -170,8 +170,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Scan</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Search Engine</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Search engine</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Search engine settings</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1447,9 +1447,7 @@
|
|||
<string name="saved_login_duplicate">A login with that username already exists</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Connect with a Firefox Account.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Connect another device.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Please re-authenticate.</string>
|
||||
|
@ -1470,13 +1468,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK, Got It</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Shortcuts</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Search with</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">This time, search with:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Show search shortcuts</string>
|
||||
</resources>
|
||||
|
|
|
@ -169,8 +169,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Escanear</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Motor de búsqueda</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Motor de búsqueda</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Ajustes del motor de búsqueda</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1456,9 +1456,7 @@
|
|||
<string name="saved_login_duplicate">Ya existe una credencial con ese nombre de usuario</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Conectarse con una cuenta de Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Conectar otro dispositivo.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Por favor, vuelve a autentificarte.</string>
|
||||
|
@ -1479,14 +1477,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">Ok, ¡ya caché!</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Atajos</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Buscar con</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Esta vez, buscar con:</string>
|
||||
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Mostrar atajos de búsqueda</string>
|
||||
</resources>
|
||||
|
|
|
@ -172,8 +172,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Scanner</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Moteur de recherche</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Moteur de recherche</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Paramètres du moteur de recherche</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1490,9 +1490,7 @@ Cependant, il peut être moins stable. Téléchargez la version bêta de notre n
|
|||
<string name="saved_login_duplicate">Un identifiant avec ce nom d’utilisateur existe déjà</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Connectez-vous avec un compte Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Connectez un autre appareil.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Veuillez vous authentifier à nouveau.</string>
|
||||
|
@ -1513,14 +1511,4 @@ Cependant, il peut être moins stable. Téléchargez la version bêta de notre n
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">J’ai compris</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Raccourcis</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Rechercher avec</string>
|
||||
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Pour cette fois, rechercher avec :</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Afficher les raccourcis de recherche</string>
|
||||
</resources>
|
||||
|
|
|
@ -175,8 +175,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Moha’ãnga</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Hekaha mongu’eha</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Hekaha mongu’eha</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Hekaha ñemboheko</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1484,9 +1484,7 @@
|
|||
<string name="saved_login_duplicate">Oĩma tembiapo ñepyrũ puruhára réra peichagua</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Eike Firefox Account ndive.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Emoinge ambue mba’e’oka.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Ikatúpiko emoneĩjey.</string>
|
||||
|
@ -1508,13 +1506,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">Oĩma, aikumby</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Mbopya’eha</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Eheka amo</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Ko’ág̃a, eheka hendive:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Ehechauka jeheka mbopya’eha</string>
|
||||
</resources>
|
||||
|
|
|
@ -800,7 +800,7 @@
|
|||
<!-- An option from the share dialog to reconnect to sync -->
|
||||
<string name="sync_reconnect">Ponovo se poveži za sinkronizaciju</string>
|
||||
<!-- Text displayed when sync is offline and cannot be accessed -->
|
||||
<string name="sync_offline">Neumreženo</string>
|
||||
<string name="sync_offline">Izvanmrežno</string>
|
||||
<!-- An option to connect additional devices -->
|
||||
<string name="sync_connect_device">Poveži jedan drugi uređaj</string>
|
||||
<!-- The dialog text shown when additional devices are not available -->
|
||||
|
|
|
@ -173,8 +173,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Leggi</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Motore di ricerca</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Motore di ricerca</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Impostazioni motori di ricerca</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1492,9 +1492,7 @@
|
|||
<string name="saved_login_duplicate">Esistono già credenziali con questo nome utente</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Connetti un account Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Connetti un altro dispositivo.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Esegui nuovamente l’accesso.</string>
|
||||
|
@ -1516,14 +1514,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK, tutto chiaro</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Scelte rapide</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Cerca con</string>
|
||||
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Adesso cerca con:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Mostra le scorciatoie di ricerca</string>
|
||||
</resources>
|
||||
|
|
|
@ -30,6 +30,17 @@
|
|||
<!-- Tab tray multi select title in app bar. The first parameter is the number of tabs selected -->
|
||||
<string name="tab_tray_multi_select_title">%1$d geselecteerd</string>
|
||||
|
||||
<!-- Label of button in create collection dialog for creating a new collection -->
|
||||
<string name="tab_tray_add_new_collection">Nieuwe collectie toevoegen</string>
|
||||
<!-- Label of editable text in create collection dialog for naming a new collection -->
|
||||
<string name="tab_tray_add_new_collection_name">Naam</string>
|
||||
<!-- Label of button in save to collection dialog for selecting a current collection -->
|
||||
<string name="tab_tray_select_collection">Collectie selecteren</string>
|
||||
<!-- Content description for checkmark while tab is selected while in multiselect mode in tab tray. The first parameter is the title of the tab selected -->
|
||||
<string name="tab_tray_item_selected_multiselect_content_description">%1$s geselecteerd</string>
|
||||
<!-- Content description on checkmark while tab is selected in multiselect mode in tab tray -->
|
||||
<string name="tab_tray_multiselect_selected_content_description">Geselecteerd</string>
|
||||
|
||||
<!-- About content. The first parameter is the name of the application. (For example: Fenix) -->
|
||||
<string name="about_content">%1$s is gemaakt door Mozilla.</string>
|
||||
|
||||
|
@ -156,8 +167,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Scannen</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Zoekmachine</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Zoekmachine</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Instellingen zoekmachine</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -520,6 +531,9 @@
|
|||
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
|
||||
<string name="pwa_site_controls_title_private">%1$s (privémodus)</string>
|
||||
|
||||
<!-- Button in the current tab tray header in multiselect mode. Saved the selected tabs to a collection when pressed. -->
|
||||
<string name="tab_tray_save_to_collection">Opslaan</string>
|
||||
|
||||
<!-- History -->
|
||||
<!-- Text for the button to clear all history -->
|
||||
<string name="history_delete_all">Geschiedenis verwijderen</string>
|
||||
|
@ -1444,9 +1458,7 @@
|
|||
<string name="saved_login_duplicate">Er bestaat al een aanmelding met die gebruikersnaam</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Verbinden met een Firefox-account.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Een ander apparaat verbinden.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Gelieve opnieuw te authenticeren.</string>
|
||||
|
@ -1468,13 +1480,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK, begrepen</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Snelkoppelingen</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Zoeken met</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Deze keer zoeken met:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Zoeksnelkoppelingen tonen</string>
|
||||
</resources>
|
||||
|
|
|
@ -173,8 +173,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Skanuj</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Wyszukiwarka</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Wyszukiwarka</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Ustawienia wyszukiwarki</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1466,9 +1466,7 @@
|
|||
<string name="saved_login_duplicate">Dane logowania z tą nazwą użytkownika już istnieją</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Połącz się z kontem Firefoksa.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Połącz inne urządzenie.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Proszę uwierzytelnić się ponownie.</string>
|
||||
|
@ -1490,13 +1488,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Skróty</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Szukaj w</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Tym razem szukaj w:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Skróty wyszukiwania</string>
|
||||
</resources>
|
||||
|
|
|
@ -171,8 +171,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Digitalizar</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Mecanismo de pesquisa</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Mecanismo de pesquisa</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Configurações de mecanismos de pesquisa</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1461,9 +1461,7 @@
|
|||
<string name="saved_login_duplicate">Já existe uma conta com este nome de usuário</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Conecte-se com uma Conta Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Conecte outro dispositivo.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Autentique novamente.</string>
|
||||
|
@ -1485,13 +1483,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK, entendi</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Atalhos</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Pesquisar com</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Desta vez, pesquisar com:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Mostrar atalhos de pesquisa</string>
|
||||
</resources>
|
||||
|
|
|
@ -173,8 +173,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Skenovať</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Vyhľadávací modul</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Vyhľadávací modul</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Nastavenia vyhľadávacieho modulu</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1466,9 +1466,7 @@
|
|||
<string name="saved_login_duplicate">Prihlasovacie údaje s týmto používateľským menom už existujú</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Prepojiť s účtom Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Pripojiť ďalšie zariadenie.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Prosím, znova overte totožnosť.</string>
|
||||
|
@ -1490,14 +1488,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">Ok, rozumiem</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Skratky</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Hľadať pomocou</string>
|
||||
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Vyhľadať pomocou:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Zobrazovať skratky vyhľadávania</string>
|
||||
</resources>
|
||||
|
|
|
@ -169,8 +169,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Pinday</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Mesin Pamaluruh</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Mesin pamaluruh</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Setélan mesin pamaluruh</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1471,9 +1471,7 @@
|
|||
<string name="saved_login_duplicate">Login maké éta sandiasma geus aya</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Sambungkeun maké Firefox Account.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Sambungkeun séjén paranti.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Mangga oténtikasi ulang.</string>
|
||||
|
@ -1494,13 +1492,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">Okéh, Ngarti</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Takulan</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Paluruh maké</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Saayeunaeun, paluruh maké:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Témbongkeun takulan pamaluruhan</string>
|
||||
</resources>
|
||||
|
|
|
@ -169,8 +169,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">స్కాన్ చేయి</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">శోధన యంత్రం</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">శోధన యంత్రం</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">శోధన యంత్ర అమరికలు</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1479,9 +1479,7 @@
|
|||
<string name="saved_login_duplicate">ఆ వాడుకరి పేరుతో ఒక ప్రవేశం ఇప్పటికే ఉంది</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Firefox ఖాతాతో అనుసంధానమవ్వండి.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">మరొక పరికరాన్ని అనుసంధానించండి.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">దయచేసి పునరధీకరణ చేయండి.</string>
|
||||
|
@ -1502,13 +1500,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">సరే, అర్థమయ్యింది</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">సత్వరమార్గాలు</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">దీనితో వెతుకు</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">ఈసారి దీనితో వెతుకు:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">శోధన సత్వరమార్గాలను చూపించు</string>
|
||||
</resources>
|
||||
|
|
|
@ -169,8 +169,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">สแกน</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">เครื่องมือค้นหา</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">เครื่องมือค้นหา</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">การตั้งค่าเครื่องมือค้นหา</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1454,9 +1454,7 @@
|
|||
<string name="saved_login_duplicate">การเข้าสู่ระบบที่มีชื่อผู้ใช้นี้มีอยู่แล้ว</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">เชื่อมต่อกับบัญชี Firefox</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">เชื่อมต่ออุปกรณ์อื่น</string>
|
||||
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
|
@ -1478,13 +1476,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">ตกลง เข้าใจแล้ว</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">ทางลัด</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">ค้นหาด้วย</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">คราวนี้ค้นหาด้วย:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">แสดงทางลัดการค้นหา</string>
|
||||
</resources>
|
||||
|
|
|
@ -171,8 +171,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Tara</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Arama motoru</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Arama motoru</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Arama motoru ayarları</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1456,9 +1456,7 @@
|
|||
<string name="saved_login_duplicate">Bu kullanıcı adına sahip bir hesap zaten var</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Firefox Hesabınıza giriş yapın.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Başka bir cihaz bağlayın.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Lütfen yeniden giriş yapın.</string>
|
||||
|
@ -1479,13 +1477,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">Tamam</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Kısayollar</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Bununla ara:</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Bir de bununla aramayı deneyin:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Arama kısayollarını göster</string>
|
||||
</resources>
|
||||
|
|
|
@ -166,8 +166,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Tekshirish</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Qidiruv tizimi</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Qidiruv tizimi</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Qidiruv tizimi sozlamalari</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -378,6 +378,11 @@
|
|||
<!-- Preference switch for usage and technical data collection -->
|
||||
<string name="preference_usage_data">Texnik va foydalanishga oid maʼlumotlar</string>
|
||||
|
||||
<!-- Preference description for usage and technical data collection -->
|
||||
<string name="preferences_usage_data_description">Samaradorlik, foydalanish statistikasi va moslash maʼlumotlarini Mozillaga ulashish orqali siz %1$s brauzerini yaxshilashda yordam berasiz</string>
|
||||
<!-- Preference switch for marketing data collection -->
|
||||
<string name="preferences_marketing_data">Marketing maʼlumotlari</string>
|
||||
|
||||
<!-- Content description (not visible, for screen readers etc.): Add tab button. Adds a news tab when pressed -->
|
||||
<string name="add_private_tab">Maxfiy varaq qoʻshish</string>
|
||||
<!-- Text for the new tab button to indicate adding a new private tab in the tab -->
|
||||
|
@ -809,9 +814,7 @@
|
|||
<string name="saved_login_duplicate">Shu nomdagi login oldindan bor</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Firefox hisobi bilan ulanish</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Boshqa qurilmani ulash</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Qaytadan haqiqiylikni tekshiring.</string>
|
||||
|
@ -832,11 +835,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK, tushundim</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Yorliqlar</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Izlash:</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Bu safar quyidagi bilan izlash:</string>
|
||||
</resources>
|
||||
|
|
|
@ -171,8 +171,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">Quét</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">Công cụ tìm kiếm</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">Công cụ tìm kiếm</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">Cài đặt công cụ tìm kiếm</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1450,9 +1450,7 @@
|
|||
<string name="saved_login_duplicate">Một thông tin đăng nhập với tên người dùng đó đã tồn tại</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">Kết nối với tài khoản Firefox.</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">Kết nối thiết bị khác.</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">Vui lòng xác thực lại.</string>
|
||||
|
@ -1473,13 +1471,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">OK, đã hiểu</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">Tìm kiếm</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">Tìm kiếm với</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">Lần này, tìm kiếm với:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">Hiển thị các lối tắt tìm kiếm</string>
|
||||
</resources>
|
||||
|
|
|
@ -178,8 +178,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">扫码</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">搜索引擎</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">搜索引擎</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">搜索引擎设置</string>
|
||||
|
||||
|
@ -1495,9 +1495,7 @@
|
|||
<string name="saved_login_duplicate">已有同用户名的登录信息存在</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">绑定 Firefox 账户</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">绑定其他设备</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">请重新验证。</string>
|
||||
|
@ -1518,14 +1516,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">我知道了</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">快捷操作</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">可选用下列引擎搜索</string>
|
||||
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">更多搜索引擎:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">显示搜索快捷操作</string>
|
||||
</resources>
|
||||
|
|
|
@ -174,8 +174,8 @@
|
|||
<!-- Search Fragment -->
|
||||
<!-- Button in the search view that lets a user search by scanning a QR code -->
|
||||
<string name="search_scan_button">掃描</string>
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_engines_shortcut_button">搜尋引擎</string>
|
||||
<!-- Button in the search view that lets a user change their search engine -->
|
||||
<string name="search_engine_button">搜尋引擎</string>
|
||||
<!-- Button in the search view when shortcuts are displayed that takes a user to the search engine settings -->
|
||||
<string name="search_shortcuts_engine_settings">搜尋引擎設定</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
|
@ -1484,9 +1484,7 @@
|
|||
<string name="saved_login_duplicate">已有該使用者名稱的登入資訊</string>
|
||||
|
||||
<!-- Synced Tabs -->
|
||||
<!-- Text displayed when user is not logged into a Firefox Account -->
|
||||
<string name="synced_tabs_connect_to_sync_account">連結 Firefox 帳號。</string>
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<!-- Text displayed to ask user to connect another device as no devices found with account -->
|
||||
<string name="synced_tabs_connect_another_device">連結另一部裝置。</string>
|
||||
<!-- Text displayed asking user to re-authenticate -->
|
||||
<string name="synced_tabs_reauth">請重新登入。</string>
|
||||
|
@ -1507,13 +1505,4 @@
|
|||
<!-- Confirmation dialog button text when top sites limit is reached. -->
|
||||
<string name="top_sites_max_limit_confirmation_button">好,知道了!</string>
|
||||
|
||||
<!-- DEPRECATED STRINGS -->
|
||||
<!-- Button in the search view that lets a user search by using a shortcut -->
|
||||
<string name="search_shortcuts_button">捷徑</string>
|
||||
<!-- DEPRECATED: Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with">使用下列引擎搜尋</string>
|
||||
<!-- Header displayed when selecting a shortcut search engine -->
|
||||
<string name="search_shortcuts_search_with_2">這次使用下列搜尋引擎搜尋:</string>
|
||||
<!-- Preference title for switch preference to show search shortcuts -->
|
||||
<string name="preferences_show_search_shortcuts">顯示搜尋捷徑</string>
|
||||
</resources>
|
||||
|
|
|
@ -614,4 +614,9 @@
|
|||
<item name="elevation">90dp</item>
|
||||
<item name="android:stateListAnimator">@null</item>
|
||||
</style>
|
||||
|
||||
<style name="SearchDialogStyle" parent="DialogStyleBase">
|
||||
<item name="android:windowIsFloating">false</item>
|
||||
<item name="android:windowAnimationStyle">@null</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -337,4 +337,22 @@ class BookmarkControllerTest {
|
|||
navController.popBackStack()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `handleStartSwipingItem disables swipe to refresh`() {
|
||||
controller.handleStartSwipingItem()
|
||||
|
||||
verify {
|
||||
bookmarkStore.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(false))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `handleStopSwipingItem attempts to enable swipe to refresh`() {
|
||||
controller.handleStopSwipingItem()
|
||||
|
||||
verify {
|
||||
bookmarkStore.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(true))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -210,4 +210,22 @@ class BookmarkFragmentInteractorTest {
|
|||
bookmarkController.handleRequestSync()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `start swiping an item`() {
|
||||
interactor.onStartSwipingItem()
|
||||
|
||||
verify {
|
||||
bookmarkController.handleStartSwipingItem()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `stop swiping an item`() {
|
||||
interactor.onStopSwipingItem()
|
||||
|
||||
verify {
|
||||
bookmarkController.handleStopSwipingItem()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,32 +80,63 @@ class BookmarkFragmentStoreTest {
|
|||
|
||||
@Test
|
||||
fun `ensure selected items remain selected after a tree change`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(tree, BookmarkFragmentState.Mode.Selecting(setOf(item, subfolder)))
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Selecting(setOf(item, subfolder)),
|
||||
isLoading = false,
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.Change(newTree)).join()
|
||||
|
||||
assertEquals(store.state.tree, newTree)
|
||||
assertEquals(store.state.mode, BookmarkFragmentState.Mode.Selecting(setOf(subfolder)))
|
||||
assertEquals(
|
||||
store.state,
|
||||
BookmarkFragmentState(
|
||||
newTree,
|
||||
BookmarkFragmentState.Mode.Selecting(setOf(subfolder)),
|
||||
guidBackstack = listOf(tree.guid),
|
||||
isLoading = false,
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `select and deselect bookmarks changes the mode`() = runBlocking {
|
||||
fun `select and deselect a single bookmark changes the mode and swipe to refresh state`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(tree)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.Select(childItem)).join()
|
||||
|
||||
assertEquals(store.state, BookmarkFragmentState(tree, BookmarkFragmentState.Mode.Selecting(setOf(childItem))))
|
||||
assertEquals(
|
||||
store.state,
|
||||
BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Selecting(setOf(childItem)),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.Deselect(childItem)).join()
|
||||
|
||||
assertEquals(store.state, BookmarkFragmentState(tree, BookmarkFragmentState.Mode.Normal()))
|
||||
assertEquals(
|
||||
store.state,
|
||||
BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Normal(),
|
||||
isSwipeToRefreshEnabled = true
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `selecting the same item twice does nothing`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(tree, BookmarkFragmentState.Mode.Selecting(setOf(item, subfolder)))
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Selecting(setOf(item, subfolder)),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.Select(item)).join()
|
||||
|
@ -115,7 +146,11 @@ class BookmarkFragmentStoreTest {
|
|||
|
||||
@Test
|
||||
fun `deselecting an unselected bookmark does nothing`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(tree, BookmarkFragmentState.Mode.Selecting(setOf(childItem)))
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Selecting(setOf(childItem)),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.Deselect(item)).join()
|
||||
|
@ -134,14 +169,25 @@ class BookmarkFragmentStoreTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
fun `deselect all bookmarks changes the mode`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(tree, BookmarkFragmentState.Mode.Selecting(setOf(item, childItem)))
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
fun `deselect all bookmarks changes the mode and updates swipe to refresh state`() =
|
||||
runBlocking {
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Selecting(setOf(item, childItem)),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.DeselectAll).join()
|
||||
store.dispatch(BookmarkFragmentAction.DeselectAll).join()
|
||||
|
||||
assertEquals(store.state, initialState.copy(mode = BookmarkFragmentState.Mode.Normal()))
|
||||
}
|
||||
assertEquals(
|
||||
store.state,
|
||||
initialState.copy(
|
||||
mode = BookmarkFragmentState.Mode.Normal(),
|
||||
isSwipeToRefreshEnabled = true
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `deselect all bookmarks when none are selected`() = runBlocking {
|
||||
|
@ -214,6 +260,45 @@ class BookmarkFragmentStoreTest {
|
|||
assertEquals(BookmarkFragmentState.Mode.Syncing, store.state.mode)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `enabling swipe to refresh in Normal mode works`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Normal(),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(true)).join()
|
||||
assertEquals(true, store.state.isSwipeToRefreshEnabled)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `enabling swipe to refresh in Syncing mode works`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Syncing,
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(true)).join()
|
||||
assertEquals(true, store.state.isSwipeToRefreshEnabled)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `enabling swipe to refresh in Selecting mode does not work`() = runBlocking {
|
||||
val initialState = BookmarkFragmentState(
|
||||
tree,
|
||||
BookmarkFragmentState.Mode.Selecting(emptySet()),
|
||||
isSwipeToRefreshEnabled = false
|
||||
)
|
||||
val store = BookmarkFragmentStore(initialState)
|
||||
|
||||
store.dispatch(BookmarkFragmentAction.SwipeRefreshAvailabilityChanged(true)).join()
|
||||
assertEquals(false, store.state.isSwipeToRefreshEnabled)
|
||||
}
|
||||
|
||||
private val item = BookmarkNode(BookmarkNodeType.ITEM, "456", "123", 0, "Mozilla", "http://mozilla.org", null)
|
||||
private val separator = BookmarkNode(BookmarkNodeType.SEPARATOR, "789", "123", 1, null, null, null)
|
||||
private val subfolder = BookmarkNode(BookmarkNodeType.FOLDER, "987", "123", 0, "Subfolder", null, listOf())
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.fenix.library.bookmarks
|
||||
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import io.mockk.MockKAnnotations
|
||||
import io.mockk.every
|
||||
import io.mockk.impl.annotations.RelaxedMockK
|
||||
import io.mockk.mockk
|
||||
import io.mockk.verify
|
||||
import mozilla.components.concept.storage.BookmarkNode
|
||||
import mozilla.components.concept.storage.BookmarkNodeType
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.mozilla.fenix.library.bookmarks.viewholders.BookmarkNodeViewHolder
|
||||
|
||||
class BookmarkTouchHelperTest {
|
||||
|
||||
@RelaxedMockK private lateinit var interactor: BookmarkViewInteractor
|
||||
@RelaxedMockK private lateinit var viewHolder: BookmarkNodeViewHolder
|
||||
@RelaxedMockK private lateinit var item: BookmarkNode
|
||||
private lateinit var touchCallback: BookmarkTouchCallback
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
MockKAnnotations.init(this)
|
||||
touchCallback = BookmarkTouchCallback(interactor)
|
||||
|
||||
every { viewHolder.item } returns item
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `swiping an item calls onDelete`() {
|
||||
touchCallback.onSwiped(viewHolder, ItemTouchHelper.LEFT)
|
||||
|
||||
verify {
|
||||
interactor.onDelete(setOf(item))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `swiping a folder calls onDelete and notifies the adapter of the change`() {
|
||||
val adapter: RecyclerView.Adapter<BookmarkNodeViewHolder> = mockk(relaxed = true)
|
||||
|
||||
every { item.type } returns BookmarkNodeType.FOLDER
|
||||
every { viewHolder.bindingAdapter } returns adapter
|
||||
every { viewHolder.bindingAdapterPosition } returns 0
|
||||
|
||||
touchCallback.onSwiped(viewHolder, ItemTouchHelper.LEFT)
|
||||
|
||||
verify {
|
||||
interactor.onDelete(setOf(item))
|
||||
adapter.notifyItemChanged(0)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
Loading…
Reference in New Issue