Merge remote-tracking branch 'upstream/master' into fork

pull/35/head
Adam Novak 4 years ago
commit be26c10ffe

@ -67,6 +67,8 @@ private fun collectionCreationReducer(
is CollectionCreationAction.RemoveAllTabs -> prevState.copy(selectedTabs = emptySet())
is CollectionCreationAction.TabAdded -> prevState.copy(selectedTabs = prevState.selectedTabs + action.tab)
is CollectionCreationAction.TabRemoved -> prevState.copy(selectedTabs = prevState.selectedTabs - action.tab)
is CollectionCreationAction.StepChanged -> prevState.copy(saveCollectionStep = action.saveCollectionStep,
defaultCollectionNumber = action.defaultCollectionNumber)
is CollectionCreationAction.StepChanged -> prevState.copy(
saveCollectionStep = action.saveCollectionStep,
defaultCollectionNumber = action.defaultCollectionNumber
)
}

@ -30,7 +30,7 @@ class WebAppSiteControlsBuilder(
if (!isPrivateSession) { return }
builder.setSmallIcon(R.drawable.ic_pbm_notification)
builder.setSmallIcon(R.drawable.ic_private_browsing)
builder.setContentTitle(context.getString(R.string.pwa_site_controls_title_private, manifest.name))
}

@ -30,7 +30,7 @@ class PrivateNotificationService : AbstractPrivateNotificationService() {
override val store: BrowserStore by lazy { components.core.store }
override fun NotificationCompat.Builder.buildNotification() {
setSmallIcon(R.drawable.ic_pbm_notification)
setSmallIcon(R.drawable.ic_private_browsing)
setContentTitle(getString(R.string.app_name_private_4, getString(R.string.app_name)))
setContentText(getString(R.string.notification_pbm_delete_text_2))
color = ContextCompat.getColor(this@PrivateNotificationService, R.color.pbm_notification_color)

@ -8,6 +8,7 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import mozilla.components.ui.widgets.WidgetSiteItemView
import org.mozilla.fenix.R
data class TabHistoryItem(
@ -23,7 +24,7 @@ class TabHistoryAdapter(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TabHistoryViewHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.tab_history_list_item, parent, false)
.inflate(R.layout.site_list_item, parent, false) as WidgetSiteItemView
return TabHistoryViewHolder(view, interactor)
}

@ -4,40 +4,38 @@
package org.mozilla.fenix.tabhistory
import android.view.View
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.tab_history_list_item.*
import androidx.recyclerview.widget.RecyclerView
import mozilla.components.browser.icons.BrowserIcons
import mozilla.components.support.ktx.android.content.getColorFromAttr
import mozilla.components.ui.widgets.WidgetSiteItemView
import org.mozilla.fenix.R
import org.mozilla.fenix.library.LibrarySiteItemView
import org.mozilla.fenix.utils.view.ViewHolder
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.loadIntoView
class TabHistoryViewHolder(
view: View,
private val interactor: TabHistoryViewInteractor
) : ViewHolder(view) {
private val view: WidgetSiteItemView,
private val interactor: TabHistoryViewInteractor,
private val icons: BrowserIcons = view.context.components.core.icons
) : RecyclerView.ViewHolder(view) {
private lateinit var item: TabHistoryItem
init {
history_layout.setOnClickListener { interactor.goToHistoryItem(item) }
view.setOnClickListener { interactor.goToHistoryItem(item) }
}
fun bind(item: TabHistoryItem) {
this.item = item
history_layout.displayAs(LibrarySiteItemView.ItemType.SITE)
history_layout.overflowView.isVisible = false
history_layout.titleView.text = item.title
history_layout.urlView.text = item.url
history_layout.loadFavicon(item.url)
view.setText(label = item.title, caption = item.url)
icons.loadIntoView(view.iconView, item.url)
if (item.isSelected) {
history_layout.setBackgroundColor(
history_layout.context.getColorFromAttr(R.attr.tabHistoryItemSelectedBackground)
view.setBackgroundColor(
view.context.getColorFromAttr(R.attr.tabHistoryItemSelectedBackground)
)
} else {
history_layout.background = null
view.background = null
}
}
}

@ -1,16 +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/.
-->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="#FFFFFF">
<path
android:fillColor="#FF000000"
android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
</vector>

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="150" android:exitFadeDuration="150">
<item android:state_selected="false"
android:drawable="@drawable/bookmarks_circle_background_outline" />
<item android:state_selected="true"
android:drawable="@drawable/bookmarks_circle_background_filled" />
</selector>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/bookmarks_icon_background_filled" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/bookmarks_icon_filled"
android:pathData="M6.749,21.248C6.4234,21.2471 6.1142,21.1054 5.9008,20.8595C5.6875,20.6136 5.5909,20.2874 5.636,19.965L6.414,14.4L2.674,10.38C2.3928,10.0785 2.2991,9.6474 2.4296,9.2564C2.5601,8.8654 2.8941,8.5771 3.3,8.505L8.529,7.57L10.993,2.624C11.1833,2.242 11.5733,2.0006 12,2.0006C12.4267,2.0006 12.8167,2.242 13.007,2.624L15.471,7.57L20.7,8.5C21.1057,8.5724 21.4394,8.8608 21.5697,9.2518C21.7,9.6427 21.6062,10.0737 21.325,10.375L17.586,14.4L18.364,19.968C18.4229,20.3853 18.2434,20.8005 17.8991,21.0434C17.5547,21.2864 17.1034,21.3164 16.73,21.121L12,18.654L7.269,21.119C7.1087,21.2035 6.9302,21.2478 6.749,21.248Z" />
</vector>
</item>
</layer-list>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/bookmarks_icon_background_outline" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/bookmarks_icon_outline"
android:pathData="M12,2a1,1 0,0 1,0.87 0.507l2.768,4.884 5.536,0.977a1,1 0,0 1,0.624 1.588l-3.744,4.955 0.934,5.934a1,1 0,0 1,-1.456 1.039L12,18.955l-5.532,2.929a1,1 0,0 1,-1.456 -1.04l0.934,-5.933 -3.744,-4.955a1,1 0,0 1,0.624 -1.588l5.536,-0.977 2.768,-4.884A1,1 0,0 1,12 2zM12,5.028l-2.13,3.76a1,1 0,0 1,-0.696 0.49l-4.391,0.776 3.015,3.99a1,1 0,0 1,0.19 0.759l-0.69,4.378 4.234,-2.241a1,1 0,0 1,0.936 0l4.232,2.24 -0.689,-4.378a1,1 0,0 1,0.19 -0.759l3.015,-3.99 -4.39,-0.775a1,1 0,0 1,-0.697 -0.492L12,5.028z" />
</vector>
</item>
</layer-list>

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/collection_circle_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/collection_circle_icon_foreground"
android:pathData="M19 9H5v9c0 0.5 0.5 1 1 1h12c0.5 0 1-0.5 1-1V9zm-1-2l-2-2H8L6 7h12zM3 18V8c0-0.7 0.5-1.5 1-2l2-2c0.5-0.5 1.3-1 2-1h8c0.8 0 1.5 0.4 2 1l2 2c0.4 0.5 1 1.3 1 2v10c0 1.5-1.5 3-3 3H6c-1.5 0-3-1.5-3-3z" />
<path
android:fillColor="@color/collection_circle_icon_foreground"
android:pathData="M16.5 11h-9a0.5 0.5 0 0 0 0 1h9a0.5 0.5 0 0 0 0-1zM16.5 16h-9a0.5 0.5 0 0 0 0 1h9a0.5 0.5 0 0 0 0-1zM16.5 13.5h-9a0.5 0.5 0 0 0 0 1h9a0.5 0.5 0 0 0 0-1z" />
</vector>
</item>
</layer-list>

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?primaryText"
android:pathData="M5,4a1,1 0,1 0,-2 0v16a1,1 0,1 0,2 0L5,4zM9,7a1,1 0,1 0,-2 0v13a1,1 0,1 0,2 0L9,7zM12,5a1,1 0,0 1,1 1v14a1,1 0,1 1,-2 0L11,6a1,1 0,0 1,1 -1zM16.452,5.694a1,1 0,1 0,-1.904 0.612l4.5,14a1,1 0,1 0,1.904 -0.612l-4.5,-14z" />
</vector>

@ -8,6 +8,6 @@
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?attr/accent"
android:fillColor="?primaryText"
android:pathData="M4.47 7.5l3-3c0.3-0.3 0.7-0.3 1 0l4.2 4.2c0.8-1 0.7-2.4-0.2-3.3L9.84 2.7a2.5 2.5 0 0 0-3.53 0L2.77 6.28a2.5 2.5 0 0 0 0 3.52l2.66 2.67c0.9 0.9 2.25 1 3.2 0.2l-4.2-4.2a0.7 0.7 0 0 1 0-1zm16.8 6.63a2.5 2.5 0 0 1 0 3.53l-3.55 3.54a2.5 2.5 0 0 1-3.53 0l-2.7-2.7a2.49 2.49 0 0 1-0.2-3.24l4.2 4.2a0.7 0.7 0 0 0 1 0l3.04-3.05a0.7 0.7 0 0 0 0-1l-4.2-4.2c1-0.8 2.4-0.7 3.3 0.2l2.66 2.66zm-5.1 0.56a1 1 0 0 1-1.42 1.41L7.8 9.2A1 1 0 1 1 9.24 7.8l6.9 6.9z" />
</vector>

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/accent_normal_theme"
android:pathData="M14,6a2,2 0,1 1,-4 0,2 2,0 0,1 4,0zM14,12a2,2 0,1 1,-4 0,2 2,0 0,1 4,0zM12,20a2,2 0,1 0,0 -4,2 2,0 0,0 0,4z" />
</vector>

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M17.5 17c-2.1 0-3.5-2.5-5.5-2.5S8.4 17 6.5 17C3.9 17 2 14.6 2 10.4 2 7.8 2.8 7 6.1 7s4.3 1.4 5.9 1.4c1.6 0 2.6-1.4 5.9-1.4 3.3 0 4.1 0.8 4.1 3.4 0 4.2-1.9 6.6-4.5 6.6zm-9.8-6.8c-2 0.1-2.9 1.3-2.9 1.6 0 0.3 1.3 1.1 2.7 1.1 1.3 0 2.9-0.5 2.9-0.9 0-0.5-0.8-1.9-2.7-1.8zm8.6 0c-1.9-0.1-2.7 1.3-2.7 1.8 0 0.4 1.5 0.9 2.9 0.9s2.7-0.8 2.7-1.1c-0.1-0.3-0.9-1.5-2.9-1.6z" />
</vector>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/tab_circle_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/tab_circle_icon_foreground"
android:pathData="M15.22 22H5.78A3.78 3.78 0 0 1 2 18.22V8.78C2 6.69 3.7 5 5.78 5h9.44C17.31 5 19 6.7 19 8.78v9.44c0 2-1.7 3.78-3.78 3.78zM5.86 7C4.83 7 4 7.83 4 8.86v9.28C4 19.17 4.83 20 5.86 20h9.28c1 0 1.86-0.83 1.86-1.86V8.86C17 8 16.17 7 15 7H6zM6 4c0-1.1 1-2 2-2h8a6 6 0 0 1 6 6v0L22 16a2 2 0 0 1-2 2L20 8V8a4 4 0 0 0-4-4H6z"/>
</vector>
</item>
</layer-list>

@ -3,17 +3,17 @@
- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_whats_new" />
<item
android:left="200dp"
android:bottom="200dp">
<shape
android:shape="oval">
<item android:drawable="@drawable/ic_whats_new" />
<item
android:left="200dp"
android:bottom="200dp">
<shape
android:shape="oval">
<solid android:color="@color/whats_new_notification_color" />
<size
android:width="48dp"
android:height="48dp"/>
</shape>
</item>
</layer-list>
<solid android:color="@color/whats_new_notification_color" />
<size
android:width="48dp"
android:height="48dp"/>
</shape>
</item>
</layer-list>

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/library_app_links_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/library_app_links_icon"
android:pathData="M4.5,7C3.12,7 2,5.88 2,4.5S3.12,2 4.5,2 7,3.12 7,4.5 5.88,7 4.5,7zM4.5,22C3.12,22 2,20.88 2,19.5S3.12,17 4.5,17 7,18.12 7,19.5 5.88,22 4.5,22zM4.5,14.5C3.12,14.5 2,13.38 2,12s1.12,-2.5 2.5,-2.5S7,10.62 7,12s-1.12,2.5 -2.5,2.5zM19.5,7C18.12,7 17,5.88 17,4.5S18.12,2 19.5,2 22,3.12 22,4.5 20.88,7 19.5,7zM19.5,22c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5zM19.5,14.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5S22,10.62 22,12s-1.12,2.5 -2.5,2.5zM12,7c-1.38,0 -2.5,-1.12 -2.5,-2.5S10.62,2 12,2s2.5,1.12 2.5,2.5S13.38,7 12,7zM12,22c-1.38,0 -2.5,-1.12 -2.5,-2.5S10.62,17 12,17s2.5,1.12 2.5,2.5S13.38,22 12,22zM12,14.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5z"
/>
</vector>
</item>
</layer-list>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/library_downloads_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/library_downloads_icon"
android:pathData="M11.3 17.7l-6-6a1 1 0 0 1 1.4-1.4l4.3 4.3V3a1 1 0 0 1 2 0v11.6l4.3-4.3a1 1 0 0 1 1.4 1.4l-6 6a1 1 0 0 1-1.4 0zM18 20a1 1 0 0 1 0 2H6a1 1 0 0 1 0-2h12z"/>
</vector>
</item>
</layer-list>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/library_history_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/library_history_icon"
android:pathData="M12 22a10 10 0 1 1 0-20 10 10 0 0 1 0 20zm0-18a8 8 0 1 0 0 16 8 8 0 0 0 0-16zm4.5 9h-5a0.5 0.5 0 0 1-0.5-0.5v-5a0.5 0.5 0 0 1 1 0V12h4.5a0.5 0.5 0 0 1 0 1z"/>
</vector>
</item>
</layer-list>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/library_screenshots_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/library_screenshots_icon"
android:pathData="M10.4 13.6l4.5-3.2c1.2-0.7 2.7-0.5 3.5 0.7L8 18.3l0.1 0.7a3 3 0 1 1-1.6-2.6L8.3 15l-1.9-1.4a3 3 0 1 1 1.5-2l2.5 1.9zm3.2 2.5l5.2 4c-0.9 1-2.4 1.2-3.5 0.4l-3.8-3 2.1-1.4zM5 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zm0 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM5 7a1 1 0 0 1-1-1V5a3 3 0 0 1 3-3h4a1 1 0 0 1 0 2H7a1 1 0 0 0-1 1v1c0 0.6-0.4 1-1 1zm10-3a1 1 0 0 1 0-2h4a3 3 0 0 1 3 3v2a1 1 0 0 1-2 0V5c0-0.6-0.4-1-1-1h-4zm2 10h2c0.6 0 1-0.4 1-1v-2a1 1 0 0 1 2 0v2a3 3 0 0 1-3 3h-2a1 1 0 0 1 0-2z"/>
</vector>
</item>
</layer-list>

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:autoMirrored="true"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M2,1h20c1.1,0 2,0.9 2,2v18c0,1.1 -0.9,2 -2,2H2c-1.1,0 -2,-0.9 -2,-2V3c0,-1.1 0.9,-2 2,-2z" />
<path
android:fillColor="#FFF"
android:pathData="M12,3h9c0.6,0 1,0.4 1,1v16c0,0.6 -0.4,1 -1,1h-9L12,3zM5.5,12.5l2.7,-3.7c0.2,-0.3 0.6,-0.3 0.8,-0.1l0.7,0.5c0.2,0.2 0.2,0.5 0,0.7L5.8,15c-0.2,0.2 -0.5,0.3 -0.8,0.1l-2.2,-2.2c-0.2,-0.2 -0.2,-0.5 0,-0.7l0.8,-0.8c0.2,-0.2 0.5,-0.2 0.7,0l1.2,1.1z" />
<path
android:fillColor="#FF000000"
android:pathData="M15,9l-1,1 2,2 -2,2 1,1 2,-2 2,2 1,-1 -2,-2 2,-2 -1,-1 -2,2.01L15,9z" />
</vector>

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp"/>
<solid android:color="#ECBCFB"/>
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M18.9,16.1c-0.5,0.4 -1,0.6 -1.5,0.8 -0.4,0.2 -0.9,0.3 -1.3,0.3 -0.6,0 -1.1,-0.2 -1.5,-0.6 -0.4,-0.4 -0.6,-0.9 -0.6,-1.6 0,-0.8 0.3,-1.3 0.9,-1.8 0.6,-0.5 1.9,-0.9 4.1,-1.3v-0.4c0,-0.6 -0.1,-1 -0.4,-1.3 -0.2,-0.3 -0.6,-0.4 -1.2,-0.4L17,9.8c-0.1,0 -0.3,0 -0.4,0.1v1.5h-1.5c-0.3,0 -0.4,0 -0.6,-0.1 -0.1,-0.1 -0.2,-0.2 -0.2,-0.5 0,-0.5 0.3,-0.9 1,-1.3s1.5,-0.6 2.5,-0.6c1.1,0 1.9,0.2 2.4,0.6 0.5,0.4 0.7,1.2 0.7,2.2L20.9,16l0.2,0.2 0.9,0.1v0.7h-2.9l-0.2,-0.9zM18.9,15.4v-2.6c-1.1,0.2 -1.8,0.5 -2.2,0.8 -0.4,0.3 -0.6,0.7 -0.6,1.1 0,0.4 0.1,0.7 0.3,0.9 0.2,0.2 0.5,0.3 0.9,0.3 0.2,0 0.4,0 0.7,-0.1 0.3,-0.1 0.6,-0.2 0.9,-0.4zM6.6,6h1.7L12,16l1,0.2v0.8L8.7,17v-0.8l1,-0.1 0.1,-0.2 -1,-2.8L5.3,13.1l-1,2.7 0.2,0.2 1,0.1v0.9L2,17v-0.8l1,-0.2L6.6,6zM7,8.2l-1.4,4h2.9L7,8.2z"
android:fillColor="#482166"
android:fillAlpha=".8"/>
</vector>
</item>
</layer-list>

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:width="40dp"
android:height="40dp" />
<solid android:color="@color/quick_action_read_icon_background" />
</shape>
</item>
<item
android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@color/quick_action_read_icon"
android:pathData="M16.7 21H7.3A3.3 3.3 0 0 1 4 17.7V6.3C4 4.5 5.5 3 7.3 3h9.4C18.5 3 20 4.5 20 6.3v11.4c0 1.8-1.5 3.3-3.3 3.3zM7.3 5C6.6 5 6 5.6 6 6.3v11.4c0 0.7 0.6 1.3 1.3 1.3h9.4c0.7 0 1.3-0.6 1.3-1.3V6.3c0-0.7-0.6-1.3-1.3-1.3H7.3zM15 8H9a0.5 0.5 0 0 1 0-1h6a0.5 0.5 0 0 1 0 1zm0 3H9a0.5 0.5 0 0 1 0-1h6a0.5 0.5 0 0 1 0 1zm0 3H9a0.5 0.5 0 0 1 0-1h6a0.5 0.5 0 0 1 0 1zm-3.4 3H9a0.5 0.5 0 0 1 0-1h2.6a0.5 0.5 0 0 1 0 1z"/>
</vector>
</item>
</layer-list>

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size android:width="40dp"
android:height="40dp" />
<solid android:color="@color/quick_action_share_icon_background"/>
</shape>
</item>
<item android:bottom="8dp"
android:left="8dp"
android:right="8dp"
android:top="8dp">
<vector android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="@color/quick_action_share_icon"
android:pathData="M17 14a3.99 3.99 0 0 0-2.91 1.27L9.87 13c0.17-0.63 0.17-1.3 0-1.94l4.22-2.3A4 4 0 1 0 13.13 7L8.91 9.27a4 4 0 1 0 0 5.46L13.13 17A4 4 0 1 0 17 14zm0-10a2 2 0 1 1 0 4 2 2 0 0 1 0-4zM6 14a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm11 6a2 2 0 1 1 0-4 2 2 0 0 1 0 4z"/>
</vector>
</item>
</layer-list>

@ -149,10 +149,11 @@
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/open_tabs_menu"
android:visibility="visible"
app:tint="@color/accent_normal_theme"
app:layout_constraintBottom_toBottomOf="@id/tab_layout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tab_layout"
app:srcCompat="@drawable/ic_menu_tab_tray" />
app:srcCompat="@drawable/ic_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View

@ -74,6 +74,9 @@
android:transitionGroup="false"
android:importantForAccessibility="no"
android:overScrollMode="never"
tools:listheader="@layout/collection_header"
tools:listitem="@layout/collection_home_list_row"
tools:itemCount="3"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"/>
<androidx.constraintlayout.widget.ConstraintLayout
@ -170,4 +173,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

@ -304,7 +304,8 @@
<fragment
android:id="@+id/bookmarkAddFolderFragment"
android:name="org.mozilla.fenix.library.bookmarks.addfolder.AddBookmarkFolderFragment"
android:label="@string/bookmark_add_folder_fragment_label">
android:label="@string/bookmark_add_folder_fragment_label"
tools:layout="@layout/fragment_edit_bookmark">
<action
android:id="@+id/action_bookmarkAddFolderFragment_to_bookmarkSelectFolderFragment"
app:destination="@id/bookmarkSelectFolderFragment" />
@ -388,7 +389,8 @@
<fragment
android:id="@+id/editLoginFragment"
android:name="org.mozilla.fenix.settings.logins.fragment.EditLoginFragment"
android:label="@string/edit">
android:label="@string/edit"
tools:layout="@layout/fragment_edit_login">
<argument
android:name="savedLoginItem"
app:argType="org.mozilla.fenix.settings.logins.SavedLogin"
@ -567,7 +569,8 @@
<fragment
android:id="@+id/turnOnSyncFragment"
android:name="org.mozilla.fenix.settings.account.TurnOnSyncFragment"
android:label="@string/preferences_sync">
android:label="@string/preferences_sync"
tools:layout="@layout/fragment_turn_on_sync">
<argument
android:name="padSnackbar"
android:defaultValue="false"
@ -580,7 +583,8 @@
<fragment
android:id="@+id/pairFragment"
android:name="org.mozilla.fenix.settings.PairFragment"
android:label="@string/preferences_sync" />
android:label="@string/preferences_sync"
tools:layout="@layout/fragment_pair" />
<fragment
android:id="@+id/aboutFragment"
@ -600,7 +604,8 @@
android:label="@string/preferences_debug_settings" />
<fragment
android:id="@+id/crashReporterFragment"
android:name="org.mozilla.fenix.crashes.CrashReporterFragment">
android:name="org.mozilla.fenix.crashes.CrashReporterFragment"
tools:layout="@layout/fragment_crash_reporter">
<argument
android:name="crashIntent"
app:argType="android.content.Intent" />
@ -638,11 +643,13 @@
<fragment
android:id="@+id/deleteBrowsingDataFragment"
android:name="org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataFragment"
android:label="@string/preferences_delete_browsing_data" />
android:label="@string/preferences_delete_browsing_data"
tools:layout="@layout/fragment_delete_browsing_data" />
<fragment
android:id="@+id/trackingProtectionExceptionsFragment"
android:name="org.mozilla.fenix.exceptions.trackingprotection.TrackingProtectionExceptionsFragment"
android:label="@string/preference_exceptions" />
android:label="@string/preference_exceptions"
tools:layout="@layout/fragment_exceptions" />
<dialog
android:id="@+id/collectionCreationFragment"
android:name="org.mozilla.fenix.collections.CollectionCreationFragment"
@ -704,7 +711,8 @@
</dialog>
<dialog
android:id="@+id/quickSettingsSheetDialogFragment"
android:name="org.mozilla.fenix.settings.quicksettings.QuickSettingsSheetDialogFragment">
android:name="org.mozilla.fenix.settings.quicksettings.QuickSettingsSheetDialogFragment"
tools:layout="@layout/fragment_quick_settings_dialog_sheet">
<argument
android:name="sessionId"
app:argType="string" />
@ -739,10 +747,12 @@
</fragment>
<dialog
android:id="@+id/signOutFragment"
android:name="org.mozilla.fenix.settings.account.SignOutFragment" />
android:name="org.mozilla.fenix.settings.account.SignOutFragment"
tools:layout="@layout/fragment_sign_out" />
<dialog
android:id="@+id/trackingProtectionPanelDialogFragment"
android:name="org.mozilla.fenix.trackingprotection.TrackingProtectionPanelDialogFragment">
android:name="org.mozilla.fenix.trackingprotection.TrackingProtectionPanelDialogFragment"
tools:layout="@layout/fragment_tracking_protection">
<argument
android:name="sessionId"
app:argType="string" />
@ -771,17 +781,20 @@
<fragment
android:id="@+id/addNewDeviceFragment"
android:name="org.mozilla.fenix.share.AddNewDeviceFragment" />
android:name="org.mozilla.fenix.share.AddNewDeviceFragment"
tools:layout="@layout/fragment_add_new_device" />
<fragment
android:id="@+id/localeSettingsFragment"
android:name="org.mozilla.fenix.settings.advanced.LocaleSettingsFragment" />
android:name="org.mozilla.fenix.settings.advanced.LocaleSettingsFragment"
tools:layout="@layout/fragment_locale_settings" />
<fragment
android:id="@+id/saveLoginSettingFragment"
android:name="org.mozilla.fenix.settings.logins.fragment.SavedLoginsSettingFragment"
android:label="SaveLoginSettingFragment" />
<fragment
android:id="@+id/webExtensionActionPopupFragment"
android:name="org.mozilla.fenix.addons.WebExtensionActionPopupFragment">
android:name="org.mozilla.fenix.addons.WebExtensionActionPopupFragment"
tools:layout="@layout/fragment_add_on_internal_settings">
<argument
android:name="webExtensionId"
app:argType="string" />
@ -792,7 +805,8 @@
</fragment>
<dialog
android:id="@+id/tabHistoryDialogFragment"
android:name="org.mozilla.fenix.tabhistory.TabHistoryDialogFragment" />
android:name="org.mozilla.fenix.tabhistory.TabHistoryDialogFragment"
tools:layout="@layout/fragment_tab_history_dialog" />
<navigation android:id="@+id/site_permissions_exceptions_graph"
app:startDestination="@id/sitePermissionsExceptionsFragment">

@ -79,6 +79,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Nid nawr</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Gallwch osod Firefox i agor dolenni mewn apiaun awtomatig.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Mynd i gosodiadau</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Cau</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Mae angen mynediad ir camera. Ewch i osodiadau Android, tapiwch Permissions, a thapio Allow.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Mynd ir gosodiadau</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Cau</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Gosodwch dabiau agored sydd heb eu darllen yn ystod y diwrnod, yr wythnos neur mis diwethaf i gaun awtomatig.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Gweld y dewisiadau</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Cau</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Tab newydd</string>
@ -308,6 +330,9 @@
<!-- Preference for add_ons -->
<string name="preferences_addons">Ychwanegion</string>
<!-- Preference for notifications -->
<string name="preferences_notifications">Hysbysiadau</string>
<!-- Account Preferences -->
<!-- Preference for triggering sync -->
<string name="preferences_sync_now">Cydweddu nawr</string>
@ -531,6 +556,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Tynnu</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Dileu or hanes</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Modd Preifat)</string>
@ -575,6 +602,13 @@
<!-- Text shown when no history exists -->
<string name="history_empty_message">Dim hanes yma</string>
<!-- Downloads -->
<!-- Text shown when no download exists -->
<string name="download_empty_message">Dim llwythi yma</string>
<!-- History multi select title in app bar
The first parameter is the number of downloads selected -->
<string name="download_multi_select_title">%1$d wediu dewis</string>
<!-- Crashes -->
<!-- Title text displayed on the tab crash page. This first parameter is the name of the application (For example: Fenix) -->
<string name="tab_crash_title_2">Ymddiheuriadau, nid yw %1$s yn gallu llwythor dudalen honno.</string>
@ -730,10 +764,8 @@
<string name="collections_header">Casgliadau</string>
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Dewislen casgliadau</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Casglwch y pethau syn bwysig i chi</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Grwpiwch chwiliadau, gwefannau a thabiau tebyg ar gyfer mynediad cyflym yn y dyfodol.</string>
<string name="no_collections_description2">Casglwch y pethau sydd o bwys i chi.\nCrynhowch ynghyd chwiliadau, gwefannau a thabiau tebyg i gael mynediad cyflym yn hwyrach.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Dewis Tabiau</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -980,9 +1012,10 @@ Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr Beta i gael profiad
<string name="onboarding_whats_new_description">Oes gennych gwestiynau am y %s wediu hailgynllunio? Eisiau gwybod beth sydd wedi newid?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Cewch atebion yma</string>
<!-- text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Cael y gorau o %s.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">Cychwynnwch gydweddu nodau tudalen, cyfrineiriau, a rhagor gydach cyfrif Firefox.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Dysgu rhagor</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
another Firefox browser. (The word `Firefox` should not be translated)
The first parameter is the email of the detected user's account -->
@ -1472,6 +1505,9 @@ Fodd bynnag, gall fod yn llai sefydlog. Llwythwch ein porwr Beta i gael profiad
<!-- Text displayed on a button in the synced tabs screen to link users to sign in when a user is not signed in to Firefox Sync -->
<string name="synced_tabs_sign_in_button">Mewngofnodi i gydweddu</string>
<!-- The text displayed when a synced device has no tabs to show in the list of Synced Tabs. -->
<string name="synced_tabs_no_open_tabs">Dim tabiau agored</string>
<!-- Top Sites -->
<!-- Title text displayed in the dialog when top sites limit is reached. -->
<string name="top_sites_max_limit_title">Wedi cyrraedd terfyn nifer eich hoff wefannau</string>
@ -1480,4 +1516,15 @@ 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>
</resources>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Tynnu</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Cael y gorau o %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Casglwch y pethau syn bwysig i chi</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Grwpiwch chwiliadau, gwefannau a thabiau tebyg ar gyfer mynediad cyflym yn y dyfodol.</string>
</resources>

@ -78,6 +78,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Ikke nu</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Du kan sætte Firefox til automatisk at åbne links i apps.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Gå til indstillinger</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Afvis</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Adgang til kamera er nødvendig. Gå til Indstillinger i Android, tryk på Tilladelser, og tryk så på Tillad.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Gå til indstillinger</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Afvis</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Luk automatisk åbne faneblade, hvis de ikke har været vist den seneste dag, uge eller måned.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Vis indstillinger</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Afvis</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Nyt faneblad</string>
@ -298,10 +320,15 @@
<!-- Preference for account settings -->
<string name="preferences_account_settings">Kontoindstillinger</string>
<!-- Preference for open links in third party apps -->
<string name="preferences_open_links_in_apps">Åbn links i app</string>
<string name="preferences_open_links_in_apps">Åbn links i apps</string>
<!-- Preference for open download with an external download manager app -->
<string name="preferences_external_download_manager">Ekstern håndtering af filhentning</string>
<!-- Preference for add_ons -->
<string name="preferences_addons">Tilføjelser</string>
<!-- Preference for notifications -->
<string name="preferences_notifications">Meddelelser</string>
<!-- Account Preferences -->
<!-- Preference for triggering sync -->
<string name="preferences_sync_now">Synkroniser nu</string>
@ -341,7 +368,7 @@
<!-- Name of the "receive tabs" notification channel. Displayed in the "App notifications" system settings for the app -->
<string name="fxa_received_tab_channel_name">Modtagne faneblade</string>
<!-- Description of the "receive tabs" notification channel. Displayed in the "App notifications" system settings for the app -->
<string name="fxa_received_tab_channel_description">Notifikationer for faneblade modtaget fra andre Firefox-enheder.</string>
<string name="fxa_received_tab_channel_description">Meddelelser for faneblade modtaget fra andre Firefox-enheder.</string>
<!-- The body for these is the URL of the tab received -->
<string name="fxa_tab_received_notification_name">Modtaget faneblad</string>
<!-- When multiple tabs have been received -->
@ -524,6 +551,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Fjern</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Slet fra historik</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Privat tilstand)</string>
@ -568,6 +597,13 @@
<!-- Text shown when no history exists -->
<string name="history_empty_message">Ingen historik</string>
<!-- Downloads -->
<!-- Text shown when no download exists -->
<string name="download_empty_message">Ingen filhentninger her</string>
<!-- History multi select title in app bar
The first parameter is the number of downloads selected -->
<string name="download_multi_select_title">%1$d valgt</string>
<!-- Crashes -->
<!-- Title text displayed on the tab crash page. This first parameter is the name of the application (For example: Fenix) -->
<string name="tab_crash_title_2">%1$s kan ikke indlæse siden.</string>
@ -686,7 +722,7 @@
<!-- Preference for altering the location access for all websites -->
<string name="preference_phone_feature_location">Position</string>
<!-- Preference for altering the notification access for all websites -->
<string name="preference_phone_feature_notification">Notifikation</string>
<string name="preference_phone_feature_notification">Meddelelser</string>
<!-- Label that indicates that a permission must be asked always -->
<string name="preference_option_phone_feature_ask_to_allow">Spørg om tilladelse</string>
<!-- Label that indicates that a permission must be blocked -->
@ -721,10 +757,8 @@
<string name="collections_header">Samlinger</string>
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Samlings-menu</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Saml de ting, der betyder noget for dig</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Saml relaterede søgninger, websteder og faneblade i grupper. Så kan du hurtigt finde dem igen.</string>
<string name="no_collections_description2">Saml de ting, der betyder noget for dig.\nSaml relaterede søgninger, websteder og faneblade i grupper. Så kan du hurtigt finde dem igen.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Vælg faneblade</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -878,7 +912,7 @@
<string name="preference_accessibility_auto_size_summary">Skriftstørrelsen vil være den samme som i dine Android-indstillinger. Deaktiver for selv at indstille skriftstørrelse her.</string>
<!-- Title for the Delete browsing data preference -->
<string name="preferences_delete_browsing_data">Slet browser-data</string>
<string name="preferences_delete_browsing_data">Slet browserdata</string>
<!-- Title for the tabs item in Delete browsing data -->
<string name="preferences_delete_browsing_data_tabs_title_2">Åbne faneblade</string>
<!-- Subtitle for the tabs item in Delete browsing data, parameter will be replaced with the number of open tabs -->
@ -971,9 +1005,10 @@
<string name="onboarding_whats_new_description">Har du spørgsmål om den nye version af %s? Vil du vide, hvad der er ændret?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Få svar her</string>
<!-- text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Få det meste ud af %s.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">Begynd at synkronisere bogmærker, adgangskoder m.m. med din Firefox-konto.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Læs mere</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
another Firefox browser. (The word `Firefox` should not be translated)
The first parameter is the email of the detected user's account -->
@ -1458,6 +1493,9 @@
<!-- Text displayed on a button in the synced tabs screen to link users to sign in when a user is not signed in to Firefox Sync -->
<string name="synced_tabs_sign_in_button">Log ind på Sync</string>
<!-- The text displayed when a synced device has no tabs to show in the list of Synced Tabs. -->
<string name="synced_tabs_no_open_tabs">Ingen åbne faneblade</string>
<!-- Top Sites -->
<!-- Title text displayed in the dialog when top sites limit is reached. -->
<string name="top_sites_max_limit_title">Grænsen for Mest besøgte websider er nået</string>
@ -1466,4 +1504,15 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">Ok, forstået</string>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Fjern</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Få det meste ud af %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Saml de ting, der betyder noget for dig</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Saml relaterede søgninger, websteder og faneblade i grupper. Så kan du hurtigt finde dem igen.</string>
</resources>

@ -82,6 +82,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Jetzt nicht</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Sie können Firefox so einstellen, dass Links automatisch in Apps geöffnet werden.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Einstellungen öffnen</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Schließen</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Kamerazugriff erforderlich. Öffnen Sie die Android-Einstellungen, tippen Sie auf Berechtigungen und tippen Sie auf Erlauben.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Einstellungen öffnen</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Schließen</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Stellen Sie geöffnete Tabs so ein, dass sie automatisch geschlossen werden, die am letzten Tag, in der letzten Woche oder im letzten Monat nicht angesehen wurden.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Optionen anzeigen</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Schließen</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Neuer Tab</string>
@ -545,6 +567,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Entfernen</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Aus Chronik löschen</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Privater Modus)</string>
@ -1527,4 +1551,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Entfernen</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Machen Sie das Beste aus %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Sammeln Sie die Dinge, die Ihnen wichtig sind</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Gruppieren Sie ähnliche Suchanfragen, Websites und Tabs, um später schnell darauf zugreifen zu können.</string>
</resources>

@ -79,6 +79,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Not now</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">You can set Firefox to automatically open links in apps.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Go to settings</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Dismiss</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Camera access needed. Go to Android settings, tap permissions, and tap allow.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Go to settings</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Dismiss</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Set open tabs to close automatically that havent been viewed in the past day, week, or month.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">View options</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Dismiss</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">New tab</string>
@ -531,6 +553,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Remove</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Delete from history</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Private Mode)</string>
@ -1484,4 +1508,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Remove</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Get the most out of %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Collect the things that matter to you</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Group together similar searches, sites, and tabs for quick access later.</string>
</resources>

@ -80,6 +80,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Ahora no</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Podés configurar Firefox para que abra automáticamente enlaces en aplicaciones.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Ir a Ajustes</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Descartar</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Se necesita acceso a la cámara. Andá a la configuración de Android, pulsá permisos y permitir.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Ir a Ajustes</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Descartar</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Configurar las pestañas abiertas para que se cierren automáticamente las que no se hayan visto en el último día, semana o mes.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Ver opciones</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Descartar</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Nueva pestaña</string>
@ -550,6 +572,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Eliminar</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Eliminar del historial</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (modo privado)</string>
@ -759,10 +783,8 @@
<string name="collections_header">Colecciones</string>
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Menú de colecciones</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Recolectá lo que te importa</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Agrupar búsquedas, sitios y pestañas similares para acceder rápidamente más tarde.</string>
<string name="no_collections_description2">Recolectá lo que te importa.\nAgrupá búsquedas, sitios y pestañas similares para un acceso rápido más tarde.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Seleccionar pestañas</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -1010,8 +1032,8 @@
<string name="onboarding_whats_new_description">¿Tenés preguntas sobre el rediseño de %s? ¿Querés saber qué cambió?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Las respuestas están aquí</string>
<!-- text for the firefox account onboarding card header -->
<string name="onboarding_firefox_account_header">Aprovechá %s al máximo.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">Empezá a sincronizar marcadores, contraseñas y más con tu Cuenta de Firefox.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Conocer más</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
@ -1515,4 +1537,15 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">Listo, lo entendí.</string>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Eliminar</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Aprovechá %s al máximo.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Recolectá lo que te importa</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Agrupar búsquedas, sitios y pestañas similares para acceder rápidamente más tarde.</string>
</resources>

@ -80,6 +80,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Ei nyt</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Voit asettaa Firefoxin avaamaan linkit automaattisesti sovelluksissa.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Siirry asetuksiin</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Hylkää</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Kameran käyttöoikeus vaaditaan. Siirry Androidin asetuksiin, napauta käyttöoikeudet ja napauta salli.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Siirry asetuksiin</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Hylkää</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Aseta avoimet välilehdet sulkeutumaan automaattisesti, jos niitä ei ole katsottu viimeisen päivän, viikon tai kuukauden aikana.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Näytä valinnat</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Hylkää</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Uusi välilehti</string>
@ -542,6 +564,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Poista</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Poista historiasta</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (yksityinen tila)</string>
@ -1510,4 +1534,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Poista</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Ota kaikki irti %sista.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Kerää yhteen sinulle tärkeät asiat</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Kokoa yhteen samanlaiset haut, sivustot ja välilehdet nopeaa käyttöä varten.</string>
</resources>

@ -80,6 +80,21 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Nic nětko</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">K nastajenjam</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Zaćisnyć</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">K nastajenjam</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Zaćisnyć</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Nastajenja pokazać</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Zaćisnyć</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Nowy rajtark</string>
@ -536,6 +551,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Wotstronić</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Z historije zhašeć</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (priwatny modus)</string>
@ -1497,4 +1514,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Wotstronić</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Wućehńće najlěpše z %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Zběrajće wěcy, kotrež su wam wažne</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Zeskupće podobne pytanja, sydła a rajtarki za pozdźiši spěšny přistup.</string>
</resources>

@ -79,6 +79,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Most nem</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Beállíthatja, hogy a Firefox automatikusan alkalmazásokban nyisson meg hivatkozásokat.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Ugrás a beállításokhoz</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Eltüntetés</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Kamera-hozzáférés szükséges. Ugorjon az Android beállításokhoz, koppintson az engedélyekre, majd az engedélyezésre.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Ugrás a beállításokhoz</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Eltüntetés</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Beállíthatja, hogy a nyitott lapok automatikusan bezáródjanak, ha nem nézte meg azokat az elmúlt napon, héten vagy hónapban.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Beállítások megtekintése</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Eltüntetés</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Új lap</string>
@ -539,6 +561,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Eltávolítás</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Törlés az előzményekből</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (privát mód)</string>
@ -1507,4 +1531,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Eltávolítás</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Hozza ki a legtöbbet a %s böngészőből.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Gyűjtse össze az Önnek fontos dolgokat</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Csoportosítsa a hasonló kereséseket, webhelyeket és lapokat a későbbi gyors elérés érdekében.</string>
</resources>

@ -757,10 +757,8 @@
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Menu raccolta</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Raggruppa i tuoi interessi</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Raggruppa ricerche, siti e schede simili tra loro per potervi accedere più rapidamente in un secondo tempo.</string>
<string name="no_collections_description2">Raccogli gli argomenti che ti interessano.\nRaggruppa ricerche, siti e schede simili per accedervi rapidamente in seguito.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Seleziona schede</string>
@ -1027,8 +1025,8 @@
<string name="onboarding_whats_new_description">Hai domande sul nuovo %s? Vuoi scoprire che cosa è cambiato?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Trova tutte le risposte qui</string>
<!-- text for the firefox account onboarding card header -->
<string name="onboarding_firefox_account_header">Ottieni il massimo da %s.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">Inizia a sincronizzare segnalibri, password e molto altro ancora con il tuo account Firefox.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Ulteriori informazioni</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
@ -1530,4 +1528,6 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">OK, tutto chiaro</string>
</resources>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Elimina</string>
</resources>

@ -78,6 +78,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">לא כעת</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">באפשרותך להגדיר ש־Firefox יפתח קישורים ביישומים באופן אוטומטי.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">מעבר להגדרות</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">סגירה</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">דרושה גישה למצלמה. יש לעבור להגדרות ה־Android, להקיש על הרשאות ולאחר מכן על ״לאפשר״.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">מעבר להגדרות</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">סגירה</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">ניתן להגדיר שלשוניות פתוחות ייסגרו באופן אוטומטי אם לא נצפו ביממה, שבוע או חודש האחרון.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">הצגת אפשרויות</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">סגירה</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">לשונית חדשה</string>
@ -526,6 +548,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">הסרה</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">מחיקה מההיסטוריה</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (מצב פרטי)</string>
@ -1472,4 +1496,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">הסרה</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">להוציא את המיטב מ־%s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">לאסוף את הדברים החשובים לך</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">ניתן לקבץ חיפושים, אתרים ולשוניות דומים יחד כדי לגשת אליהם מהר יותר בהמשך.</string>
</resources>

@ -77,6 +77,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">ახლა არა</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">თუ მიუთითებთ, Firefox თავადვე გახსნის ბმულებს სხვა აპებში.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">პარამეტრებზე გადასვლა</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">გამოტოვება</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">კამერასთან წვდომაა საჭირო. გადადით Android-პარამეტრებში, შეეხეთ ნებართვებს და შემდეგ დაშვებას.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">პარამეტრებზე გადასვლა</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">გამოტოვება</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">მიუთითეთ, დაიხუროს გახსნილი ჩანართები, რომლებიც არ მოგინახულებიათ წინა დღეს, წინა კვირას ან წინა თვეს.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">პარამეტრების გახსნა</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">გამოტოვება</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">ახალი ჩანართი</string>
@ -306,6 +328,9 @@
<!-- Preference for add_ons -->
<string name="preferences_addons">დამატებები</string>
<!-- Preference for notifications -->
<string name="preferences_notifications">შეტყობინებები</string>
<!-- Account Preferences -->
<!-- Preference for triggering sync -->
<string name="preferences_sync_now">დასინქრონება ახლავე</string>
@ -529,6 +554,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">მოცილება</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">ისტორიიდან ამოშლა</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (პირადი რეჟიმი)</string>
@ -574,6 +601,13 @@
<!-- Text shown when no history exists -->
<string name="history_empty_message">ისტორია არ არის</string>
<!-- Downloads -->
<!-- Text shown when no download exists -->
<string name="download_empty_message">ჩამოტვირთვები არაა</string>
<!-- History multi select title in app bar
The first parameter is the number of downloads selected -->
<string name="download_multi_select_title">შერჩეულია %1$d</string>
<!-- Crashes -->
<!-- Title text displayed on the tab crash page. This first parameter is the name of the application (For example: Fenix) -->
<string name="tab_crash_title_2">ვწუხვართ. %1$s ვერ ტვირთავს ამ გვერდს.</string>
@ -729,10 +763,8 @@
<string name="collections_header">კრებულები</string>
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">კრებულის მენიუ</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">შეაგროვეთ, რაც თქვენთვის მნიშვნელოვანია</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">თავი მოუყარეთ მოძიებულ მასალებს, საიტებს, ჩანართებს, სწრაფი წვდომისთვის.</string>
<string name="no_collections_description2">შეაგროვეთ, რაც თქვენთვის ღირებულია.\nთავი მოუყარეთ მოძიებულ მასალებს, საიტებს და ჩანართებს, მომავალში სწრაფი წვდომისთვის.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">ჩანართების შერჩევა</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -979,9 +1011,10 @@
<string name="onboarding_whats_new_description">გაინტერესებთ როგორ შეიცვალა %s გარეგნულად? გსურთ გაეცნოთ ცვლილებებს?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">მიიღეთ პასუხები აქ</string>
<!-- text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">სრულყოფილად გამოიყენეთ %s.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">დაიწყეთ დასინქრონება სანიშნების, პაროლებისა და სხვა მონაცემების, თქვენი Firefox-ანგარიშის მეშვეობით.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">ვრცლად</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
another Firefox browser. (The word `Firefox` should not be translated)
The first parameter is the email of the detected user's account -->
@ -1475,6 +1508,9 @@
<!-- Text displayed on a button in the synced tabs screen to link users to sign in when a user is not signed in to Firefox Sync -->
<string name="synced_tabs_sign_in_button">სინქრონიზაციაში შესვლა</string>
<!-- The text displayed when a synced device has no tabs to show in the list of Synced Tabs. -->
<string name="synced_tabs_no_open_tabs">გახსნილი ჩანართები არაა</string>
<!-- Top Sites -->
<!-- Title text displayed in the dialog when top sites limit is reached. -->
<string name="top_sites_max_limit_title">რჩეული საიტების ზღვარი მიღწეულია</string>
@ -1483,4 +1519,15 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">კარგი, გასაგებია</string>
</resources>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">მოცილება</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">სრულყოფილად გამოიყენეთ %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">შეაგროვეთ, რაც თქვენთვის ღირებულია</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">თავი მოუყარეთ მოძიებულ მასალებს, საიტებს, ჩანართებს, სწრაფი წვდომისთვის.</string>
</resources>

@ -82,6 +82,28 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Mačči tura</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Tzemreḍ ad tesbaduḍ akken ad yeldi iseɣwan s wudem awurman deg isnasen.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Ddu ɣer iɣewwaṛen</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Zgel</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Isɛa anekcum ɣer tkamiṛat. Ddu ɣer iɣewwaṛen Android, sit ɣef tisirag, sakin senned sireg.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Ddu ɣer iɣewwaṛen</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Zgel</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Sbadu amdel awurman n icarren yeldin ur twalaḍ ara deg ussan, imalasen, agguren ineggura.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Wali iɣewwaṛen</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Zgel</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Iccer amaynut</string>
@ -540,6 +562,8 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Kkes</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Kkes seg umazray</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (askar uslig)</string>
@ -1509,4 +1533,13 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Kkes</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Awi %s amaynut akk.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Lqeḍ tiɣawsiwin i tḥemmleḍ</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Segrew akk akken inadiyen, ismal d waccaren yemṣadan akken ad yishil unekcum ɣer-sen mbeεd.</string>
</resources>

@ -86,6 +86,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">나중에</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">앱에서 링크를 자동으로 열도록 Firefox를 설정할 수 있습니다.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">설정으로 이동</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">닫기</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">카메라 액세스가 필요합니다. Android 설정으로 이동하여 권한을 누른 다음 허용을 누르세요.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">설정으로 이동</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">닫기</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">지난 일, 주 또는 월 동안 보지 않은 열린 탭을 자동으로 닫도록 설정하세요.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">옵션 보기</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">닫기</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">새 탭</string>
@ -551,6 +573,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">삭제</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">기록에서 삭제</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (사생활 보호 모드)</string>
@ -1545,4 +1569,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">삭제</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">%s를 최대한 활용해 보세요.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">중요한 것들 수집하기</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">나중에 빠르게 접근할 수 있도록 유사한 검색, 사이트 및 탭을 모아 보세요.</string>
</resources>

@ -81,6 +81,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Ikke nå</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Du kan sette Firefox til automatisk å åpne lenker i apper.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Gå til innstillinger</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Ignorer</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Kameratilgang er nødvendig. Gå til Android-innstillinger, trykk på tillatelser, og trykk på tillat.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Gå til innstillinger</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Ignorer</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Angi at åpne faner som ikke har blitt sett den siste dagen, uken eller måneden skal lukke automatisk.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Vis alternativer</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Ignorer</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Ny fane</string>
@ -540,6 +562,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Fjern</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Slett fra historikk</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (privatmodus)</string>
@ -1518,4 +1542,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Fjern</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Få mest mulig ut av %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Samle tingene som betyr noe for deg</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Grupper sammen lignende søk, nettsteder og faner for rask tilgang senere.</string>
</resources>

@ -78,6 +78,29 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Agora não</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Você pode configurar o Firefox para abrir links automaticamente em aplicativos.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Ir para configurações</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Descartar</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">É necessário acesso à câmera. Use as configurações do Android para mudar as permissões para permitir acesso.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Ir para configurações</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Descartar</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Defina fechar automaticamente as abas abertas que não foram vistas no último dia, semana ou mês.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Ver opções</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Descartar</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Nova aba</string>
@ -534,6 +557,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Remover</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Excluir do histórico</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (modo privativo)</string>
@ -1497,4 +1522,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Remover</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Aproveite ao máximo o %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Reúna o que é importante para você</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Agrupe pesquisas, sites e abas semelhantes para acesso rápido mais tarde.</string>
</resources>

@ -313,6 +313,9 @@
<!-- Preference for add_ons -->
<string name="preferences_addons">Doplnky</string>
<!-- Preference for notifications -->
<string name="preferences_notifications">Upozornenia</string>
<!-- Account Preferences -->
<!-- Preference for triggering sync -->
<string name="preferences_sync_now">Synchronizovať</string>
@ -584,6 +587,13 @@
<!-- Text shown when no history exists -->
<string name="history_empty_message">Nemáte žiadnu históriu prehliadania</string>
<!-- Downloads -->
<!-- Text shown when no download exists -->
<string name="download_empty_message">Žiadne prevzaté súbory</string>
<!-- History multi select title in app bar
The first parameter is the number of downloads selected -->
<string name="download_multi_select_title">Počet vybraných položiek: %1$d</string>
<!-- Crashes -->
<!-- Title text displayed on the tab crash page. This first parameter is the name of the application (For example: Fenix) -->
<string name="tab_crash_title_2">Ospravedlňujeme sa. %1$s nedokáže načítať túto stránku.</string>
@ -739,10 +749,8 @@
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Ponuka kolekcií</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Zbierajte veci, na ktorých vám záleží</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Zoskupte podobné vyhľadávania, weby a karty, aby ste k nim mali rýchly prístup neskôr.</string>
<string name="no_collections_description2">Zbierajte veci, ktoré máte radi.\nZoskupujte podobné vyhľadávania, stránky či karty.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Výber kariet</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -991,9 +999,10 @@
<string name="onboarding_whats_new_description">Máte otázky o vynovenej aplikácii %s? Chcete vedieť, čo sa zmenilo?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Získajte odpovede tu</string>
<!-- text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Využite %s naplno.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">S účtom Firefox môžete synchronizovať záložky, históriu prehliadania a omnoho viac.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Ďalšie informácie</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
another Firefox browser. (The word `Firefox` should not be translated)
The first parameter is the email of the detected user's account -->
@ -1482,6 +1491,9 @@
<!-- Text displayed on a button in the synced tabs screen to link users to sign in when a user is not signed in to Firefox Sync -->
<string name="synced_tabs_sign_in_button">Prihlásiť sa k službe Sync</string>
<!-- The text displayed when a synced device has no tabs to show in the list of Synced Tabs. -->
<string name="synced_tabs_no_open_tabs">Žiadne otvorené karty</string>
<!-- Top Sites -->
<!-- Title text displayed in the dialog when top sites limit is reached. -->
<string name="top_sites_max_limit_title">Bol dosiahnutý limit top stránok</string>
@ -1490,4 +1502,6 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">Ok, rozumiem</string>
</resources>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Odstrániť</string>
</resources>

@ -739,10 +739,8 @@
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Мени са збиркама</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Сакупљајте ствари које су вам важне</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Групишите сличне претраге, странице и језичке за брз приступ касније.</string>
<string name="no_collections_description2">Скупите ствари које су вам битне.\nГрупишите сличне претраге, веб странице и језичке за брз приступ касније.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Изабери језичке</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -991,8 +989,8 @@
<string name="onboarding_whats_new_description">Имате питање о новом дизајну апликације %s? Желите ли да знате шта је промењено?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Овде потражите одговоре</string>
<!-- text for the firefox account onboarding card header -->
<string name="onboarding_firefox_account_header">Искористите %s у потпуности.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">Почните са синхронизовањем забелешки, лозинки и других делова са вашим Firefox налогом.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Сазнајте више</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
@ -1500,4 +1498,6 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">Важи, разумем</string>
</resources>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Уклони</string>
</resources>

@ -79,6 +79,23 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Inte nu</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Gå till Inställningar</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Ignorera</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Gå till Inställningar</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Ignorera</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Visa alternativ</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Ignorera</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Ny flik</string>
@ -542,6 +559,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Ta bort</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Ta bort från historik</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Privat läge)</string>
@ -1510,4 +1529,9 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Ta bort</string>
</resources>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Få ut det mesta av %s.</string>
</resources>

@ -79,6 +79,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Daha sonra</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Firefoxu, bağlantıları otomatik olarak uygulamalarda açacak şekilde ayarlayabilirsiniz.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Ayarlara git</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Kapat</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Kamera erişimi gerekiyor. Android ayarlarına gidin, izinlere girin ve izin verin.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Ayarlara git</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Kapat</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Bir gün, hafta veya ay boyunca bakmadığınız açık sekmelerin otomatik kapanmasını sağlayabilirsiniz.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Seçeneklere git</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Kapat</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Yeni sekme</string>
@ -536,6 +558,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Kaldır</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Geçmişten sil</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Gizli Mod)</string>
@ -741,10 +765,8 @@
<string name="collections_header">Koleksiyonlar</string>
<!-- Content description (not visible, for screen readers etc.): Opens the collection menu when pressed -->
<string name="collection_menu_button_content_description">Koleksiyon menüsü</string>
<!-- No Open Tabs Message Header -->
<string name="no_collections_header1">Sizin için önemli olan şeyleri toplayın</string>
<!-- Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Benzer aramaları, siteleri ve sekmeleri gruplandırarak daha sonra onlara hızlıca erişebilirsiniz.</string>
<string name="no_collections_description2">Sizin için önemli olan şeyleri toplayın.\nHızlıca erişmek istediğiniz benzer aramaları, siteleri ve sekmeleri bir araya getirin.</string>
<!-- Title for the "select tabs" step of the collection creator -->
<string name="create_collection_select_tabs">Sekmeleri seç</string>
<!-- Title for the "select collection" step of the collection creator -->
@ -992,8 +1014,8 @@
<string name="onboarding_whats_new_description">Yeni %s hakkında sorularınız mı var? Nelerin değiştiğini bilmek ister misiniz?</string>
<!-- text for underlined clickable link that is part of "what's new" onboarding card description that links to an FAQ -->
<string name="onboarding_whats_new_description_linktext">Yanıtlar burada</string>
<!-- text for the firefox account onboarding card header -->
<string name="onboarding_firefox_account_header">%s tarayıcınızdan en iyi şekilde yararlanın.</string>
<!-- text for the Firefox account onboarding sign in card header -->
<string name="onboarding_account_sign_in_header">Firefox hesabınızla yer imlerinizi, parolalarınızı ve daha fazlasını eşitlemeye başlayın.</string>
<!-- Text for the button to learn more about signing in to your Firefox account -->
<string name="onboarding_manual_sign_in_learn_more">Daha fazla bilgi al</string>
<!-- text for the firefox account onboarding card header when we detect you're already signed in to
@ -1493,4 +1515,15 @@
<!-- Confirmation dialog button text when top sites limit is reached. -->
<string name="top_sites_max_limit_confirmation_button">Tamam</string>
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Kaldır</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">%s tarayıcınızdan en iyi şekilde yararlanın.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Sizin için önemli olan şeyleri toplayın</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Benzer aramaları, siteleri ve sekmeleri gruplandırarak daha sonra onlara hızlıca erişebilirsiniz.</string>
</resources>

@ -79,6 +79,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">Не зараз</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">Ви можете використати Firefox для автоматичного відкриття посилань у програмах.</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">Перейти до налаштувань</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">Відхилити</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">Необхідний доступ до камери. Перейдіть до налаштувань Android, торкніться дозволів та торкніться дозволити.</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">Перейти до налаштувань</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">Закрити</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">Налаштуйте автоматичне закривання відкритих вкладок, які не переглядалися попереднього дня, тижня чи місяця.</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">Перейти до параметрів</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">Закрити</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">Нова вкладка</string>
@ -542,6 +564,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">Вилучити</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">Видалити з історії</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s (Приватний режим)</string>
@ -1510,4 +1534,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">Вилучити</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">Отримайте якнайбільше від %s.</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">Зберігайте важливе для вас</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">Групуйте подібні пошуки, сайти та вкладки для швидкого доступу.</string>
</resources>

@ -83,6 +83,21 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">现在不要</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">知道了</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">需要访问相机。转到 Android 设置,点按权限,然后点按允许。</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">转至设置</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">知道了</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">查看选项</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">知道了</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">新建标签页</string>
@ -550,6 +565,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">移除</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">删除历史记录</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s隐私模式</string>
@ -1532,4 +1549,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">移除</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">全面体验 %s。</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">有用的东西收藏在这</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">将相似的搜索查询、网站和标签页归入一组,方便以后快速访问。</string>
</resources>

@ -80,6 +80,28 @@
<!-- Text for the negative button -->
<string name="search_widget_cfr_neg_button_text">現在不要</string>
<!-- Open in App "contextual feature recommendation" (CFR) -->
<!-- Text for the info message. 'Firefox' intentionally hardcoded here.-->
<string name="open_in_app_cfr_info_message">您可以設定使用 Firefox 自動開啟各應用程式當中的鏈結。</string>
<!-- Text for the positive action button -->
<string name="open_in_app_cfr_positive_button_text">開啟設定</string>
<!-- Text for the negative action button -->
<string name="open_in_app_cfr_negative_button_text">知道了!</string>
<!-- Text for the info dialog when camera permissions have been denied but user tries to access a camera feature. -->
<string name="camera_permissions_needed_message">需要相機使用權限。請到 Android 系統設定點擊「權限」,然後點擊「允許」。</string>
<!-- Text for the positive action button to go to Android Settings to grant permissions. -->
<string name="camera_permissions_needed_positive_button_text">開啟設定</string>
<!-- Text for the negative action button to dismiss the dialog. -->
<string name="camera_permissions_needed_negative_button_text">知道了!</string>
<!-- Text for the banner message to tell users about our auto close feature. -->
<string name="tab_tray_close_tabs_banner_message">設定自動關閉超過幾天、幾週或幾個月都沒有閱讀過的開啟分頁。</string>
<!-- Text for the positive action button to go to Settings for auto close tabs. -->
<string name="tab_tray_close_tabs_banner_positive_button_text">檢視選項</string>
<!-- Text for the negative action button to dismiss the Close Tabs Banner. -->
<string name="tab_tray_close_tabs_banner_negative_button_text">知道了!</string>
<!-- Home screen icons - Long press shortcuts -->
<!-- Shortcut action to open new tab -->
<string name="home_screen_shortcut_open_new_tab_2">開新分頁</string>
@ -544,6 +566,8 @@
<!-- Text for the menu button to remove a top site -->
<string name="remove_top_site">移除</string>
<!-- Text for the menu button to delete a top site from history -->
<string name="delete_from_history">從瀏覽紀錄刪除</string>
<!-- Postfix for private WebApp titles, placeholder is replaced with app name -->
<string name="pwa_site_controls_title_private">%1$s隱私瀏覽模式</string>
@ -1521,4 +1545,13 @@
<!-- Content description for close button in collection placeholder. -->
<string name="remove_home_collection_placeholder_content_description">移除</string>
<!-- depcrecated: text for the firefox account onboarding card header
The first parameter is the name of the app (e.g. Firefox Preview) -->
<string name="onboarding_firefox_account_header">發揮 %s 的最大威力。</string>
<!-- Deprecated: No Open Tabs Message Header -->
<string name="no_collections_header1">收集對您而言重要的東西</string>
<!-- Deprecated: Label to describe what collections are to a new user without any collections -->
<string name="no_collections_description1">將類似的搜尋、網站、分頁放在一起,方便之後快速使用。</string>
</resources>

@ -0,0 +1,76 @@
/* 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.collections
import io.mockk.mockk
import mozilla.components.support.test.ext.joinBlocking
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
import org.mozilla.fenix.home.Tab
@RunWith(FenixRobolectricTestRunner::class)
class CollectionCreationStoreTest {
@Test
fun `select and deselect all tabs`() {
val tabs = listOf<Tab>(mockk(), mockk())
val store = CollectionCreationStore(
CollectionCreationState(
tabs = tabs,
selectedTabs = emptySet()
)
)
store.dispatch(CollectionCreationAction.AddAllTabs).joinBlocking()
assertEquals(tabs.toSet(), store.state.selectedTabs)
store.dispatch(CollectionCreationAction.RemoveAllTabs).joinBlocking()
assertEquals(emptySet<Tab>(), store.state.selectedTabs)
}
@Test
fun `select and deselect individual tabs`() {
val tab1 = mockk<Tab>()
val tab2 = mockk<Tab>()
val tab3 = mockk<Tab>()
val store = CollectionCreationStore(
CollectionCreationState(
tabs = listOf(tab1, tab2),
selectedTabs = setOf(tab2)
)
)
store.dispatch(CollectionCreationAction.TabAdded(tab2)).joinBlocking()
assertEquals(setOf(tab2), store.state.selectedTabs)
store.dispatch(CollectionCreationAction.TabAdded(tab1)).joinBlocking()
assertEquals(setOf(tab1, tab2), store.state.selectedTabs)
store.dispatch(CollectionCreationAction.TabAdded(tab3)).joinBlocking()
assertEquals(setOf(tab1, tab2, tab3), store.state.selectedTabs)
store.dispatch(CollectionCreationAction.TabRemoved(tab2)).joinBlocking()
assertEquals(setOf(tab1, tab3), store.state.selectedTabs)
}
@Test
fun `change the current step`() {
val store = CollectionCreationStore(
CollectionCreationState(
saveCollectionStep = SaveCollectionStep.SelectTabs,
defaultCollectionNumber = 1
)
)
store.dispatch(CollectionCreationAction.StepChanged(
saveCollectionStep = SaveCollectionStep.RenameCollection,
defaultCollectionNumber = 3
)).joinBlocking()
assertEquals(SaveCollectionStep.RenameCollection, store.state.saveCollectionStep)
assertEquals(3, store.state.defaultCollectionNumber)
}
}

@ -28,11 +28,18 @@ class CollectionCreationTabListAdapterTest {
private lateinit var interactor: CollectionCreationInteractor
private lateinit var adapter: CollectionCreationTabListAdapter
private lateinit var mozillaTab: Tab
@Before
fun setup() {
interactor = mockk()
adapter = CollectionCreationTabListAdapter(interactor)
mozillaTab = mockk {
every { sessionId } returns "abc"
every { title } returns "Mozilla"
every { hostname } returns "mozilla.org"
every { url } returns "https://mozilla.org"
}
every { interactor.selectCollection(any(), any()) } just Runs
}
@ -52,15 +59,10 @@ class CollectionCreationTabListAdapterTest {
@Test
fun `creates and binds viewholder`() {
val tab = mockk<Tab> {
every { sessionId } returns "abc"
every { title } returns "Mozilla"
every { hostname } returns "mozilla.org"
every { url } returns "https://mozilla.org"
}
adapter.updateData(
tabs = listOf(tab),
selectedTabs = emptySet()
tabs = listOf(mozillaTab),
selectedTabs = emptySet(),
hideCheckboxes = false
)
val holder = adapter.createViewHolder(FrameLayout(testContext), 0)
@ -70,6 +72,35 @@ class CollectionCreationTabListAdapterTest {
assertEquals("mozilla.org", holder.hostname.text)
assertFalse(holder.tab_selected_checkbox.isInvisible)
assertTrue(holder.itemView.isClickable)
every { interactor.addTabToSelection(mozillaTab) } just Runs
every { interactor.removeTabFromSelection(mozillaTab) } just Runs
assertFalse(holder.tab_selected_checkbox.isChecked)
holder.tab_selected_checkbox.isChecked = true
verify { interactor.addTabToSelection(mozillaTab) }
holder.tab_selected_checkbox.isChecked = false
verify { interactor.removeTabFromSelection(mozillaTab) }
}
@Test
fun `creates and binds viewholder for selected tab`() {
every { interactor.addTabToSelection(mozillaTab) } just Runs
adapter.updateData(
tabs = listOf(mozillaTab),
selectedTabs = setOf(mozillaTab),
hideCheckboxes = true
)
val holder = adapter.createViewHolder(FrameLayout(testContext), 0)
adapter.bindViewHolder(holder, 0)
assertEquals("Mozilla", holder.tab_title.text)
assertEquals("mozilla.org", holder.hostname.text)
assertTrue(holder.tab_selected_checkbox.isInvisible)
assertFalse(holder.itemView.isClickable)
}
@Test

@ -5,15 +5,13 @@
package org.mozilla.fenix.tabhistory
import android.content.Context
import android.graphics.drawable.ColorDrawable
import android.widget.FrameLayout
import androidx.appcompat.view.ContextThemeWrapper
import io.mockk.MockKAnnotations
import io.mockk.impl.annotations.MockK
import kotlinx.android.synthetic.main.history_list_item.*
import mozilla.components.support.ktx.android.content.getColorFromAttr
import io.mockk.spyk
import io.mockk.verify
import mozilla.components.support.test.robolectric.testContext
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
@ -56,18 +54,13 @@ class TabHistoryAdapterTest {
fun `creates and binds view holder`() {
adapter.submitList(listOf(selectedItem, unselectedItem))
val holder = adapter.createViewHolder(parent, 0)
val holder = spyk(adapter.createViewHolder(parent, 0))
adapter.bindViewHolder(holder, 0)
assertEquals("Mozilla", holder.history_layout.titleView.text)
assertEquals(
context.getColorFromAttr(R.attr.tabHistoryItemSelectedBackground),
(holder.history_layout.background as ColorDrawable).color
)
verify { holder.bind(selectedItem) }
adapter.bindViewHolder(holder, 1)
assertEquals("Firefox", holder.history_layout.titleView.text)
assertEquals(null, holder.history_layout.background)
verify { holder.bind(unselectedItem) }
}
@Test

@ -10,28 +10,42 @@ import io.mockk.just
import io.mockk.mockk
import io.mockk.slot
import io.mockk.verify
import mozilla.components.browser.icons.BrowserIcons
import mozilla.components.browser.icons.IconRequest
import mozilla.components.ui.widgets.WidgetSiteItemView
import org.junit.Before
import org.junit.Test
import org.mozilla.fenix.R
import org.mozilla.fenix.library.LibrarySiteItemView
class TabHistoryViewHolderTest {
@MockK private lateinit var view: View
@MockK(relaxed = true) private lateinit var view: WidgetSiteItemView
@MockK private lateinit var interactor: TabHistoryViewInteractor
@MockK(relaxed = true) private lateinit var siteItemView: LibrarySiteItemView
@MockK private lateinit var icons: BrowserIcons
private lateinit var holder: TabHistoryViewHolder
private lateinit var onClick: CapturingSlot<View.OnClickListener>
private val selectedItem = TabHistoryItem(
title = "Mozilla",
url = "https://mozilla.org",
index = 0,
isSelected = true
)
private val unselectedItem = TabHistoryItem(
title = "Firefox",
url = "https://firefox.com",
index = 1,
isSelected = false
)
@Before
fun setup() {
MockKAnnotations.init(this)
onClick = slot()
every { siteItemView.setOnClickListener(capture(onClick)) } just Runs
every { view.findViewById<LibrarySiteItemView>(R.id.history_layout) } returns siteItemView
every { view.setOnClickListener(capture(onClick)) } just Runs
every { icons.loadIntoView(view.iconView, any()) } returns mockk()
holder = TabHistoryViewHolder(view, interactor)
holder = TabHistoryViewHolder(view, interactor, icons)
}
@Test
@ -46,17 +60,18 @@ class TabHistoryViewHolderTest {
@Test
fun `binds title and url`() {
val item = TabHistoryItem(
title = "Firefox",
url = "https://firefox.com",
index = 1,
isSelected = false
)
holder.bind(item)
holder.bind(unselectedItem)
verify { view.setText(label = "Firefox", caption = "https://firefox.com") }
verify { icons.loadIntoView(view.iconView, IconRequest("https://firefox.com")) }
}
@Test
fun `binds background`() {
holder.bind(selectedItem)
verify { view.setBackgroundColor(any()) }
verify { siteItemView.displayAs(LibrarySiteItemView.ItemType.SITE) }
verify { siteItemView.titleView.text = "Firefox" }
verify { siteItemView.urlView.text = "https://firefox.com" }
verify { siteItemView.loadFavicon("https://firefox.com") }
holder.bind(unselectedItem)
verify { view.background = null }
}
}

@ -37,6 +37,7 @@ locales = [
"fy-NL",
"ga-IE",
"gd",
"gl",
"gn",
"gu-IN",
"he",

Loading…
Cancel
Save