From c7249d5e78da9dc7bf83635dbca604b33512997e Mon Sep 17 00:00:00 2001 From: gitstart Date: Wed, 9 Aug 2023 15:17:08 +0000 Subject: [PATCH 001/209] Bug 1812730 - Prevent collections with empty name from being created --- .../collections/CollectionCreationView.kt | 6 +++--- .../fenix/collections/CollectionsDialog.kt | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt index fa907471f..7d3dccd2b 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionCreationView.kt @@ -65,8 +65,8 @@ class CollectionCreationView( COLLECTION_NAME_MAX_LENGTH, ) binding.nameCollectionEdittext.setOnEditorActionListener { view, actionId, _ -> - val text = view.text.toString() - if (actionId == EditorInfo.IME_ACTION_DONE && text.isNotBlank()) { + val text = view.text.toString().trim() + if (actionId == EditorInfo.IME_ACTION_DONE && text.isNotEmpty()) { when (step) { SaveCollectionStep.NameCollection -> interactor.onNewCollectionNameSaved(selectedTabs.toList(), text) @@ -76,7 +76,7 @@ class CollectionCreationView( } } } - false + actionId == EditorInfo.IME_ACTION_DONE && text.isEmpty() } binding.tabList.run { diff --git a/app/src/main/java/org/mozilla/fenix/collections/CollectionsDialog.kt b/app/src/main/java/org/mozilla/fenix/collections/CollectionsDialog.kt index 683d45862..05df70995 100644 --- a/app/src/main/java/org/mozilla/fenix/collections/CollectionsDialog.kt +++ b/app/src/main/java/org/mozilla/fenix/collections/CollectionsDialog.kt @@ -5,9 +5,12 @@ package org.mozilla.fenix.collections import android.content.Context +import android.content.DialogInterface import android.view.LayoutInflater +import android.view.inputmethod.EditorInfo import android.widget.EditText import androidx.appcompat.app.AlertDialog +import androidx.core.widget.doOnTextChanged import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import kotlinx.coroutines.MainScope @@ -109,13 +112,13 @@ internal fun CollectionsDialog.showAddNewDialog( ), ) - AlertDialog.Builder(context) + val dialog = AlertDialog.Builder(context) .setTitle(R.string.tab_tray_add_new_collection) .setView(layout).setPositiveButton(R.string.create_collection_positive) { dialog, _ -> MainScope().launch { val id = storage.createCollection( - collectionNameEditText.text.toString(), + collectionNameEditText.text.toString().trim(), sessionList, ) onPositiveButtonClick.invoke(id, true) @@ -128,8 +131,18 @@ internal fun CollectionsDialog.showAddNewDialog( dialog.cancel() } .create().withCenterAlignedButtons() - .show() + + collectionNameEditText.doOnTextChanged { text, _, _, _ -> + dialog.getButton(DialogInterface.BUTTON_POSITIVE).isClickable = text.toString().isNotBlank() + } + + dialog.show() collectionNameEditText.setSelection(0, collectionNameEditText.text.length) collectionNameEditText.showKeyboard() + + collectionNameEditText.setOnEditorActionListener { _, actionId, _ -> + val text = collectionNameEditText.text.toString() + actionId == EditorInfo.IME_ACTION_DONE && text.isBlank() + } } From 876b9038b27e937c591bb92280305a179398190a Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 29 Aug 2023 00:03:17 +0000 Subject: [PATCH 002/209] Import translations from android-l10n --- app/src/main/res/values-be/strings.xml | 62 ++++++++++-------- app/src/main/res/values-cs/strings.xml | 14 +++- app/src/main/res/values-cy/strings.xml | 9 ++- app/src/main/res/values-de/strings.xml | 14 +++- app/src/main/res/values-el/strings.xml | 14 +++- app/src/main/res/values-es-rAR/strings.xml | 14 +++- app/src/main/res/values-gn/strings.xml | 28 ++++---- app/src/main/res/values-hsb/strings.xml | 12 +++- app/src/main/res/values-it/strings.xml | 14 +++- app/src/main/res/values-iw/strings.xml | 14 +++- app/src/main/res/values-ko/strings.xml | 15 ++++- app/src/main/res/values-nb-rNO/strings.xml | 24 ++++++- app/src/main/res/values-nn-rNO/strings.xml | 75 ++++++++++++++-------- app/src/main/res/values-pa-rIN/strings.xml | 64 ++++++++++-------- app/src/main/res/values-sk/strings.xml | 14 +++- app/src/main/res/values-sv-rSE/strings.xml | 14 +++- app/src/main/res/values-zh-rCN/strings.xml | 6 +- 17 files changed, 280 insertions(+), 127 deletions(-) diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index d154e7748..ac70d5d7f 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -375,6 +375,8 @@ Прадвызначаны пашукавік Пошук + + Пошукавыя сістэмы Адрасны радок @@ -1368,12 +1370,16 @@ Карткі: %d - Гісторыя аглядання і дадзеныя сайтаў + Гісторыя аглядання і дадзеныя сайтаў + + Гісторыя аглядання Адрасы: %d - Кукі + Кукі + + Кукі і дадзеныя сайтаў Вы выйдзеце з большасці сайтаў @@ -1430,61 +1436,61 @@ - Сардэчна запрашаем у лепшы Інтэрнэт + Сардэчна запрашаем у лепшы Інтэрнэт - Браўзер, створаны для людзей, а не для прыбытку. + Браўзер, створаны для людзей, а не для прыбытку. - Працягвайце з таго месца, дзе спыніліся + Працягвайце з таго месца, дзе спыніліся - Сінхранізуйце карткі і паролі на ўсіх прыладах для лёгкага пераключэння экрана. + Сінхранізуйце карткі і паролі на ўсіх прыладах для лёгкага пераключэння экрана. - Увайсці + Увайсці Сінхранізацыя ўключана - Прадвызначаная ахова прыватнасці + Прадвызначаная ахова прыватнасці - %1$s аўтаматычна спыняе таемнае сачэнне кампаній за вамі ў Інтэрнэце. + %1$s аўтаматычна спыняе таемнае сачэнне кампаній за вамі ў Інтэрнэце. - Поўная ахова кукаў перашкаджае трэкерам выкарыстоўваць файлы кукі для сачэння за вамі на розных сайтах. + Поўная ахова кукаў перашкаджае трэкерам выкарыстоўваць файлы кукі для сачэння за вамі на розных сайтах. - Стандартная (прадвызначана) + Стандартная (прадвызначана) - Збалансаваная прыватнасць і прадукцыйнасць. Старонкі загружаюцца нармальна. + Збалансаваная прыватнасць і прадукцыйнасць. Старонкі загружаюцца нармальна. - Строгая + Строгая - Блакуе больш трэкераў, так што старонкі атрымліваюцца хутчэй, але частка іх функцый можа парушыцца. + Блакуе больш трэкераў, так што старонкі атрымліваюцца хутчэй, але частка іх функцый можа парушыцца. - Выберыце размяшчэнне панэлі інструментаў + Выберыце размяшчэнне панэлі інструментаў - Пакіньце яе ўнізе або перамясціце наверх. + Пакіньце яе ўнізе або перамясціце наверх. - Вы распараджаецеся сваімі звесткамі + Вы распараджаецеся сваімі звесткамі - Firefox дае вам кантроль над тым, чым вы дзеліцеся ў Інтэрнэце і чым вы дзеліцеся з намі. + Firefox дае вам кантроль над тым, чым вы дзеліцеся ў Інтэрнэце і чым вы дзеліцеся з намі. - Паведамленне аб прыватнасці + Паведамленне аб прыватнасці - Гатовы адкрыць дзіўны Інтэрнэт? + Гатовы адкрыць дзіўны Інтэрнэт? - Пачаць агляданне + Пачаць агляданне - Выберыце тэму + Выберыце тэму - Зберажыце зарад батарэі і свой зрок з цёмным рэжымам. + Зберажыце зарад батарэі і свой зрок з цёмным рэжымам. - Аўтаматычна + Аўтаматычна - Адаптуецца да налад вашай прылады + Адаптуецца да налад вашай прылады - Цёмная тэма + Цёмная тэма - Светлая тэма + Светлая тэма Карткі адпраўлены! @@ -1941,7 +1947,7 @@ URL-адрас API пошукавых прапаноў - Замяніце запыт на «%s». Прыклад:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Замяніце запыт на «%s». Прыклад:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s Захаваць diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 22368bc94..1e78428bb 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -638,6 +638,16 @@ Doplněk je již nainstalován + + + Doplňky jsou dočasně zakázány. + + Jeden nebo více doplňků přestalo fungovat a systém se tak stal nestabilním. %1$s se neúspěšně pokusil restartovat doplňky.\n\nDoplňky nebudou restartovány během vaší aktuální relace.\n\nOdstranění nebo zakázání doplňků může tento problém vyřešit. + + Zkuste restartovat doplňky + + Pokračovat s vypnutými doplňky + Správa účtu @@ -1372,14 +1382,14 @@ Počet panelů: %d - Historie prohlížení a data stránek + Historie prohlížení a data stránek Historie prohlížení Počet adres: %d - Cookies + Cookies Cookies a data stránek diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 0814119e8..54a37d827 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -637,6 +637,11 @@ Mae’r ychwanegyn eisoes wedi’i osod + + Rhoddodd un neu fwy o ategion y gorau i weithio, gan wneud eich system yn ansefydlog. Ceisiodd %1$s ailgychwyn yr ychwanegiad(au) yn aflwyddiannus.\n\nNi fydd ychwanegion yn cael eu hailddechrau yn ystod eich sesiwn gyfredol.\n\nGallai dileu neu analluogi ychwanegion ddatrys y broblem hon. + + Ceisiwch ailgychwyn ychwanegion + Rheoli cyfrif @@ -1357,14 +1362,14 @@ %d tab - Hanes pori a data gwefan + Hanes pori a data gwefan Hanes pori %d cyfeiriad - Cwcis + Cwcis Cwcis a data gwefan diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 20223f87a..e60bd4aa7 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -642,6 +642,16 @@ Add-on ist bereits installiert + + + Add-ons sind temporär deaktiviert + + Ein oder mehrere Add-ons funktionieren nicht mehr und machen Ihr System instabil. %1$s hat erfolglos versucht, das Add-on oder die Add-ons neu zu starten.\n\nAdd-ons werden während Ihrer aktuellen Sitzung nicht neu gestartet.\n\nEntfernen oder Deaktivieren von Add-ons kann dieses Problem beheben. + + Versuchen, die Add-ons neu zu starten + + Mit deaktivierten Add-ons fortfahren + Benutzerkonto verwalten @@ -1391,14 +1401,14 @@ %d Tabs - Browser-Chronik und Website-Daten + Browser-Chronik und Website-Daten Chronik %d Adressen - Cookies + Cookies Cookies und Website-Daten diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 99a48ca37..1c8cac0ab 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -384,6 +384,8 @@ Προεπιλεγμένη μηχανή αναζήτησης Αναζήτηση + + Γραμμή διευθύνσεων @@ -1369,12 +1371,16 @@ %d καρτέλες - Ιστορικό περιήγησης και δεδομένα ιστοτόπων + Ιστορικό περιήγησης και δεδομένα ιστοτόπων + + Ιστορικό περιήγησης %d διευθύνσεις - Cookies + Cookies + + Cookies και δεδομένα ιστοτόπων Θα αποσυνδεθείτε από τους περισσότερους ιστοτόπους @@ -1937,7 +1943,9 @@ URL API προτάσεων αναζήτησης - Αντικαταστήστε τον όρο αναζήτησης με «%s». Παρα΄δειγμα:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Αντικαταστήστε τον όρο αναζήτησης με «%s». Παρα΄δειγμα:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Αντικαταστήστε τον όρο αναζήτησης με «%s». Παράδειγμα:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Αποθήκευση diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index 4aadf8815..0b45573cf 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -642,6 +642,14 @@ El complemento ya está instalado + + + Los complementos están deshabilitados temporalmente + + Probá reiniciar los complementos + + Continuar con los complementos deshabilitados + Administrar cuenta @@ -1379,14 +1387,14 @@ %d pestañas - Historial de navegación y datos del sitio + Historial de navegación y datos del sitio Historial de navegación %d direcciones - Cookies + Cookies Cookies y datos del sitio @@ -1948,6 +1956,8 @@ URL de la API de sugerencias de búsqueda Reemplazar la consulta con “%s”. Ejemplo:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Reemplazar la consulta con “%s”. Ejemplo:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Guardar diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index d99f2d63c..39eedc0e6 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -62,7 +62,7 @@ - %1$s omopotĩ nde jeheka ha kundahára rembiasakue tendayke ñemiguápe emboty térã esẽenguévo ko tembipuru’ígui. Kóva nande kuaukáiramo jepe ñanduti rendápe térã ne ñanduti me’ẽhárape, nombohasýi eime ñemi hag̃ua opaite tapicha oipurúva ko mba’e’oka renondépe. + %1$s omopotĩ nde jeheka ha kundahára rembiasakue tendayke ñemiguápe emboty térã esẽenguévo ko tembiporu’ígui. Kóva nande kuaukáiramo jepe ñanduti rendápe térã ne ñanduti me’ẽhárape, nombohasýi eime ñemi hag̃ua opaite tapicha oipurúva ko mba’e’oka renondépe. Mombe’ugua’u kundahára ñemi rehegua @@ -77,7 +77,7 @@ - Embohekokuaa %1$s ombojuruja hag̃ua ijehegui juajuha tembipuru’ípe. + Embohekokuaa %1$s ombojuruja hag̃ua ijehegui juajuha tembiporu’ípe. Eho ñembohekópe @@ -211,7 +211,7 @@ Moñe’ẽrã rechahágui ñesẽ - Embojuruja tembipuru’i + Embojuruja tembiporu’i Emboava moñe’ẽhára rechaha @@ -404,7 +404,7 @@ Emoneĩ mba’erechaha japyhy kundaha ñemíme - Oñemoneĩrõ, umi tendayke ñemigua ojehecháta oĩ vove heta tembipuru’i ijurujáva + Oñemoneĩrõ, umi tendayke ñemigua ojehecháta oĩ vove heta tembiporu’i ijurujáva Embojuaju jeike pya’eha tendayke ñemiguáre @@ -489,7 +489,7 @@ Mohendahavusu Sync momba’etepyre - Account/Sync mba’ete moambuepyre. Esẽnguévo pe tembipuru’ígui emoambue hag̃ua… + Account/Sync mba’ete moambuepyre. Esẽnguévo pe tembiporu’ígui emoambue hag̃ua… Mba’ete @@ -537,7 +537,7 @@ Moĩmbajehegui URLs - Embojuruja juajuha tembipuru’ípe + Embojuruja juajuha tembiporu’ípe Tapiaite @@ -550,7 +550,7 @@ Embojuruja Gecko jehaikue - Asẽma tembipuru’ígui iñambuekuaa hag̃ua… + Asẽma tembiporu’ígui iñambuekuaa hag̃ua… Moĩmbaha @@ -576,7 +576,7 @@ Ñembyatyha jára (puruhára ID) - Moĩmbaha aty moambuepyre. Embotyhína tembipuru’i emoambuekuaa hag̃ua… + Moĩmbaha aty moambuepyre. Embotyhína tembiporu’i emoambuekuaa hag̃ua… @@ -885,14 +885,14 @@ Kuaave - Ko tembipuru’i oñembotýta hekopyahu hag̃ua + Ko tembiporu’i oñembotýta hekopyahu hag̃ua MONEĨ Heja - Esẽke tembipuru’ígui iñambuekuaa hag̃ua… + Esẽke tembiporu’ígui iñambuekuaa hag̃ua… @@ -1267,7 +1267,7 @@ Kumbypyre - Ndaikatúi emoherakuã ko tembipuru’i ndive + Ndaikatúi emoherakuã ko tembiporu’i ndive Emondo mba’e’okápe @@ -1477,7 +1477,7 @@ Ejoko tapykuehoha kuatiarogue henyhẽ pya’évape g̃uarã, hákatu ojavykuaáva peteĩva kuatiarogue rembiapoite. - Eiporavo tembipuru renda oĩha + Eiporavo tembiporu renda oĩha Ereko yvy gotyo térã emogu’e yvate gotyo. @@ -1697,7 +1697,7 @@ Jeike pya’eha réra - Ikatu embojuaju ko ñanduti renda ne mba’e’oka mba’erechaha ñepyrũgua rehe eike hag̃ua ha eikundaha pya’eve, peteĩ tembipuru’ícharamo. + Ikatu embojuaju ko ñanduti renda ne mba’e’oka mba’erechaha ñepyrũgua rehe eike hag̃ua ha eikundaha pya’eve, peteĩ tembiporu’ícharamo. Tembiapo ñepyrũ ha ñe’ẽñemi @@ -1716,7 +1716,7 @@ Emyanyhẽjey ambue apps-pe - Emoĩmba ha eñongatu puruhára réra ha ñe’ẽñemi ambue tembipuru’ípe ne mba’e’oka pegua. + Emoĩmba ha eñongatu puruhára réra ha ñe’ẽñemi ambue tembiporu’ípe ne mba’e’oka pegua. Embojuaju jeike diff --git a/app/src/main/res/values-hsb/strings.xml b/app/src/main/res/values-hsb/strings.xml index 2782b2bba..b811e0b1b 100644 --- a/app/src/main/res/values-hsb/strings.xml +++ b/app/src/main/res/values-hsb/strings.xml @@ -635,6 +635,14 @@ Přidatk je hižo instalowany. + + + Přidatki su nachwilu znjemóžnjene + + Spytajće přidatki znowa startować + + Ze znjemóžnjenymi přidatkami pokročować + Konto rjadować @@ -1362,14 +1370,14 @@ Rajtarki: %d - Přehladowanska historija a sydłowe daty + Přehladowanska historija a sydłowe daty Přehladowanska historija Adresy: %d - Placki + Placki Placki a sydłowe daty diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2b6b00adc..b21b089c3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -644,6 +644,16 @@ Il componente aggiuntivo è già installato + + + I componenti aggiuntivi sono temporaneamente disattivati + + Uno o più componenti aggiuntivi hanno smesso di funzionare, rendendo il sistema instabile. %1$s ha tentato di riavviare i componenti aggiuntivi senza successo.\n\nI componenti aggiuntivi non verranno riavviati durante la sessione corrente.\n\nLa rimozione o la disattivazione dei componenti aggiuntivi potrebbe risolvere il problema. + + Prova a riavviare i componenti aggiuntivi + + Continua con i componenti aggiuntivi disattivati + Gestisci account @@ -1393,14 +1403,14 @@ %d schede - Cronologia di navigazione e dati dei siti web + Cronologia di navigazione e dati dei siti web Cronologia di navigazione %d indirizzi - Cookie + Cookie Cookie e dati dei siti web diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index b1eb905f0..71d7240a5 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -566,6 +566,16 @@ התוספת כבר מותקנת + + + התוספות מושבתות באופן זמני + + תוספת אחת או יותר הפסיקו לעבוד, מה שהפך את המערכת שלך לבלתי יציבה. %1$s ניסתה להפעיל מחדש את התוספות ללא הצלחה.\n\nתוספות לא יופעלו מחדש במהלך ההפעלה הנוכחית שלך.\n\nהסרה או השבתה של תוספות עשויה לפתור בעיה זו. + + לנסות להפעיל מחדש את התוספות + + המשך עם התוספות מושבתות + ניהול חשבון @@ -1292,14 +1302,14 @@ %d לשוניות - היסטוריית גלישה ונתוני אתרים + היסטוריית גלישה ונתוני אתרים היסטוריית גלישה %d כתובות - עוגיות + עוגיות עוגיות ונתוני אתרים diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index e03cc9bee..cbf0c9368 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -647,6 +647,17 @@ 부가 기능이 이미 설치됨 + + + 부가 기능이 일시적으로 비활성화됨 + + 하나 이상의 부가 기능이 작동을 중지하여 시스템이 불안정해졌습니다. %1$s가 부가 기능을 다시 시작하지 못했습니다.\n\n현재 세션 중에는 부가 기능이 다시 시작되지 않습니다.\n\n부가 기능을 제거하거나 비활성화하면 이 문제가 해결될 수도 있습니다. + + 부가 기능을 다시 시작해 보기 + + + 부가 기능을 비활성화하고 계속 + 계정 관리 @@ -1399,7 +1410,7 @@ %d개 탭 - 방문 기록 및 사이트 데이터 + 방문 기록 및 사이트 데이터 방문 기록 @@ -1407,7 +1418,7 @@ number of history items the user has --> %d 주소 - 쿠키 + 쿠키 쿠키 및 사이트 데이터 diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 53222f45e..b5e0b3a53 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -378,6 +378,8 @@ Standard søkemotor Søk + + Søkemotorer Adresselinje @@ -635,6 +637,16 @@ Tillegget er allerede installert + + + Tillegg er midlertidig deaktivert + + Ett eller flere tillegg sluttet å virke, noe som gjorde systemet ditt ustabilt. %1$s forsøkte uten hell å starte tillegget/tilleggene på nytt.\n\nTillegg vil ikke bli startet på nytt under den nåværende økten.\n\nHvis du fjerner eller deaktiverer tillegg, kan dette løse problemet. + + Prøv å starte tilleggene på nytt + + Fortsett med tillegg deaktivert + Behandle konto @@ -1359,12 +1371,16 @@ %d faner - Nettlesingshistorikk og nettstedsdata + Nettlesingshistorikk og nettstedsdata + + Nettleserhistorikk %d adresser - Infokapsler + Infokapsler + + Infokapsler og nettstedsdata Du blir logget ut fra de fleste nettsteder @@ -1931,7 +1947,9 @@ Søkeforslag-API nettadresse - Erstatt spørringen med «%s». Eksempel:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Erstatt spørringen med «%s». Eksempel:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Erstatt spørringen med «%s». Eksempel:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Lagre diff --git a/app/src/main/res/values-nn-rNO/strings.xml b/app/src/main/res/values-nn-rNO/strings.xml index b2895a42a..6d79dda99 100644 --- a/app/src/main/res/values-nn-rNO/strings.xml +++ b/app/src/main/res/values-nn-rNO/strings.xml @@ -381,6 +381,8 @@ Standardsøkjemotor Søk + + Søkjemotorar Adresselinje @@ -639,6 +641,17 @@ Tillegget er allereie installert + + + Tillegg er mellombels deaktivert + + Eitt eller fleire tillegg slutta å fungere, noko som gjorde systemet ditt ustabilt. %1$s prøvde utan hell å starte tillegget/tillegga på nytt.\n\nTillegg vil ikkje bli starta på nytt under gjeldande økt.\n\nDersom du fjernar eller deaktiverer tillegg, kan dette løyse problemet. + + Prøv å starte tillegga på nytt + + + Hald fram med deaktiverte tillegg + Handsam kontoen @@ -1367,12 +1380,16 @@ %d faner - Nettlesarhistorikk og nettstad-data + Nettlesarhistorikk og nettstad-data + + Nettlesarhistorikk %d adresser - Infokapslar + Infokapslar + + Infokapslar og nettstad-data Du blir logga ut frå dei fleste nettstadar @@ -1428,62 +1445,62 @@ - Velkomen til eit betre internett + Velkomen til eit betre internett - Ein nettlesar bygd for personar, ikkje profitt. + Ein nettlesar bygd for personar, ikkje profitt. - Hald fram der du slutta + Hald fram der du slutta - Synkroniser faner og passord på tvers av einingar for saumlaus byte av skjerm. + Synkroniser faner og passord på tvers av einingar for saumlaus byte av skjerm. - Logg inn + Logg inn Synkronisering er på - Personvernsikring som standard + Personvernsikring som standard - %1$s stoppar selskap automatisk frå å spore aktivitetane dine på nettet i det skjulte. + %1$s stoppar selskap automatisk frå å spore aktivitetane dine på nettet i det skjulte. - Totalt vern mot infokapslar stoppar sporarar frå å bruke infokapslar til å forfølgje deg på tvers av nettstadar. + Totalt vern mot infokapslar stoppar sporarar frå å bruke infokapslar til å forfølgje deg på tvers av nettstadar. - Standard (standard) + Standard (standard) - Balansert mellom privatliv og yting. Sider vert lasta inn normalt. + Balansert mellom privatliv og yting. Sider vert lasta inn normalt. - Streng + Streng - Blokkerer fleire sporings-mekanismar. Sider vert leste inn raskare, men enkelte sider fungerer kanskje ikkje. + Blokkerer fleire sporings-mekanismar. Sider vert leste inn raskare, men enkelte sider fungerer kanskje ikkje. - Vel plassering for verktøylinja + Vel plassering for verktøylinja - Behald i botnen, eller flytt til toppen. + Behald i botnen, eller flytt til toppen. - Du kontrollerer dine data + Du kontrollerer dine data - Firefox gir deg kontroll over kva du deler på nettet og kva du deler med oss. + Firefox gir deg kontroll over kva du deler på nettet og kva du deler med oss. - Les personvernmerknaden vår + Les personvernmerknaden vår - Klar til å oppdage eit fantastisk internett? + Klar til å oppdage eit fantastisk internett? - Start nettlesinga + Start nettlesinga - Vel tema + Vel tema - Skån batteriet og augene dine med eit mørkt tema. + Skån batteriet og augene dine med eit mørkt tema. - Automatisk + Automatisk - Tilpassar seg til einingsinnstillingane dine + Tilpassar seg til einingsinnstillingane dine - Mørkt tema + Mørkt tema - Lyst tema + Lyst tema Faner sende! @@ -1934,7 +1951,9 @@ Søkjeforslag-API nettadresse - Erstatt spørjinga med «%s». Døme:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Erstatt spørjinga med «%s». Døme:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Erstatt spørjinga med «%s». Eksempel:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Lagre diff --git a/app/src/main/res/values-pa-rIN/strings.xml b/app/src/main/res/values-pa-rIN/strings.xml index 009ab813f..ca845fec2 100644 --- a/app/src/main/res/values-pa-rIN/strings.xml +++ b/app/src/main/res/values-pa-rIN/strings.xml @@ -385,6 +385,8 @@ ਮੂਲ ਖੋਜ ਇੰਜਣ ਖੋਜੋ + + ਖੋਜ ਇੰਜਣ ਸਿਰਨਾਵਾਂ ਪੱਟੀ @@ -1377,13 +1379,17 @@ %d ਟੈਬਾਂ - ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ ਅਤੇ ਸਾਈਟ ਡਾਟਾ + ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ ਅਤੇ ਸਾਈਟ ਡਾਟਾ + + ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ %d ਸਿਰਨਾਵੇਂ - ਕੂਕੀਜ਼ + ਕੂਕੀਜ਼ + + ਕੂਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ ਤੁਹਾਨੂੰ ਬਹੁਤੀਆਂ ਵੈੱਬਸਾਈਟਾਂ ਤੋਂ ਲਾਗ ਆਉਟ ਕੀਤਾ ਜਾਵੇਗਾ @@ -1440,61 +1446,61 @@ - ਬੇਹਤਰ ਇੰਟਰਨੈੱਟ ਲਈ ਜੀ ਆਇਆਂ ਨੂੰ + ਬੇਹਤਰ ਇੰਟਰਨੈੱਟ ਲਈ ਜੀ ਆਇਆਂ ਨੂੰ - ਲੋਕਾਂ ਲਈ, ਨਾ ਕਿ ਫਾਇਦੇ ਲਈ ਬਣਾਇਆ ਬਰਾਊਜ਼ਰ। + ਲੋਕਾਂ ਲਈ, ਨਾ ਕਿ ਫਾਇਦੇ ਲਈ ਬਣਾਇਆ ਬਰਾਊਜ਼ਰ। - ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ, ਉੱਥੋਂ ਸ਼ੁਰੂ ਕਰੋ + ਜਿੱਥੇ ਤੁਸੀਂ ਛੱਡਿਆ ਸੀ, ਉੱਥੋਂ ਸ਼ੁਰੂ ਕਰੋ - ਸਹਿਜ ਨਾਲ ਸਕਰੀਨਾਂ ਬਦਲਣ ਵਾਸਤੇ ਵੱਖ-ਵੱਖ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਟੈਬਾਂ ਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸਿੰਕ ਕਰੋ। + ਸਹਿਜ ਨਾਲ ਸਕਰੀਨਾਂ ਬਦਲਣ ਵਾਸਤੇ ਵੱਖ-ਵੱਖ ਡਿਵਾਈਸਾਂ ਵਿਚਾਲੇ ਟੈਬਾਂ ਤੇ ਪਾਸਵਰਡਾਂ ਨੂੰ ਸਿੰਕ ਕਰੋ। - ਸਾਇਨ ਇਨ + ਸਾਇਨ ਇਨ ਸਿੰਕ ਚਾਲੂ ਹੈ - ਮੂਲ ਰੂਪ ਵਿੱਚ ਪਰਦੇਦਾਰੀ ਸੁਰੱਖਿਆ + ਮੂਲ ਰੂਪ ਵਿੱਚ ਪਰਦੇਦਾਰੀ ਸੁਰੱਖਿਆ - ਤੁਹਾਡੇ ਵਲੋਂ ਵੈਬ ਵਰਤਣ ਦੇ ਦੌਰਾਨ ਕੰਪਨੀਆਂ ਨੂੰ ਚੋਰੀ-ਛੁਪੇ ਤੁਹਾਡਾ ਪਿੱਛਾ ਕਰਨ ਤੋਂ %1$s ਆਪਣੇ-ਆਪ ਰੋਕਦਾ ਹੈ। + ਤੁਹਾਡੇ ਵਲੋਂ ਵੈਬ ਵਰਤਣ ਦੇ ਦੌਰਾਨ ਕੰਪਨੀਆਂ ਨੂੰ ਚੋਰੀ-ਛੁਪੇ ਤੁਹਾਡਾ ਪਿੱਛਾ ਕਰਨ ਤੋਂ %1$s ਆਪਣੇ-ਆਪ ਰੋਕਦਾ ਹੈ। - ਪੇਸ਼ ਕੀਤੀ ਪੂਰੀ ਕੂਕੀਜ਼ ਸੁਰੱਖਿਆ ਨਾਲ ਤੁਹਾਡੇ ਵਲੋਂ ਖੋਲ੍ਹੀਆਂ ਸਾਈਟਾਂ ਵਿਚਾਲੇ ਟਰੈਕਰਾਂ ਨੂੰ ਕੂਕੀਜ਼ ਵਰਤਣ ਤੋਂ ਰੋਕੋ। + ਪੇਸ਼ ਕੀਤੀ ਪੂਰੀ ਕੂਕੀਜ਼ ਸੁਰੱਖਿਆ ਨਾਲ ਤੁਹਾਡੇ ਵਲੋਂ ਖੋਲ੍ਹੀਆਂ ਸਾਈਟਾਂ ਵਿਚਾਲੇ ਟਰੈਕਰਾਂ ਨੂੰ ਕੂਕੀਜ਼ ਵਰਤਣ ਤੋਂ ਰੋਕੋ। - ਸਟੈਂਡਰਡ (ਮੂਲ) + ਸਟੈਂਡਰਡ (ਮੂਲ) - ਪਰਦੇਦਾਰੀ ਅਤੇ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿਚਾਲੇ ਸੰਤੁਲਨ ਹੈ। ਸਫ਼ੇ ਆਮ ਨਾਲੋਂ ਤੇਜ਼ ਨਾਲ ਲੋਡ ਹੁੰਦੇ ਹਨ। + ਪਰਦੇਦਾਰੀ ਅਤੇ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿਚਾਲੇ ਸੰਤੁਲਨ ਹੈ। ਸਫ਼ੇ ਆਮ ਨਾਲੋਂ ਤੇਜ਼ ਨਾਲ ਲੋਡ ਹੁੰਦੇ ਹਨ। - ਸਖ਼ਤ + ਸਖ਼ਤ - ਹੋਰ ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸਫ਼ੇ ਤੇਜ਼ੀ ਨਾਲ ਲੋਡ ਹੁੰਦੇ ਹਨ, ਪਰ ਕੁਝ ਸਫ਼ੇ ਸ਼ਾਇਦ ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਨਾ ਕਰਨ। + ਹੋਰ ਟਰੈਕਰਾਂ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸਫ਼ੇ ਤੇਜ਼ੀ ਨਾਲ ਲੋਡ ਹੁੰਦੇ ਹਨ, ਪਰ ਕੁਝ ਸਫ਼ੇ ਸ਼ਾਇਦ ਠੀਕ ਤਰ੍ਹਾਂ ਕੰਮ ਨਾ ਕਰਨ। - ਆਪਣੇ ਟੂਲਬਾਰ ਦੀ ਥਾਂ ਚੁਣੋ + ਆਪਣੇ ਟੂਲਬਾਰ ਦੀ ਥਾਂ ਚੁਣੋ - ਇਸ ਨੂੰ ਹੇਠਾਂ ਰੱਕੋ ਜਾਂ ਉੱਤੇ ਲੈ ਜਾਓ। + ਇਸ ਨੂੰ ਹੇਠਾਂ ਰੱਕੋ ਜਾਂ ਉੱਤੇ ਲੈ ਜਾਓ। - ਆਪਣੇ ਡਾਟਾ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ + ਆਪਣੇ ਡਾਟਾ ਨੂੰ ਕੰਟਰੋਲ ਕਰੋ - Firefox ਤੁਹਾਡੇ ਹੱਥ ਕੰਟਰੋਲ ਦਿੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਆਨਲਾਈਨ ਕੀ ਸਾਂਝਾ ਕਰਨਾ ਹੈ ਅਤੇ ਕੀ ਸਾਡੇ ਨਾਲ ਸਾਂਝਾ ਕਰਨਾ ਹੈ। + Firefox ਤੁਹਾਡੇ ਹੱਥ ਕੰਟਰੋਲ ਦਿੰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਆਨਲਾਈਨ ਕੀ ਸਾਂਝਾ ਕਰਨਾ ਹੈ ਅਤੇ ਕੀ ਸਾਡੇ ਨਾਲ ਸਾਂਝਾ ਕਰਨਾ ਹੈ। - ਸਾਡੀ ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ ਨੂੰ ਪੜ੍ਹੋ + ਸਾਡੀ ਪਰਦੇਦਾਰੀ ਸੂਚਨਾ ਨੂੰ ਪੜ੍ਹੋ - ਸ਼ਾਨਾਦਰ ਇੰਟਰਨੈੱਟ ਵਰਤਣ ਲਈ ਤਿਆਰ ਹੋ? + ਸ਼ਾਨਾਦਰ ਇੰਟਰਨੈੱਟ ਵਰਤਣ ਲਈ ਤਿਆਰ ਹੋ? - ਬਰਾਊਜ਼ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰੋ + ਬਰਾਊਜ਼ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰੋ - ਆਪਣਾ ਸਰੂਪ ਚੁਣੋ + ਆਪਣਾ ਸਰੂਪ ਚੁਣੋ - ਗੂੜ੍ਹੇ ਢੰਗ ਨਾਲ ਕੁਝ ਬੈਟਰੀ ਅਤੇ ਤੁਹਾਡੀ ਨਿਗ੍ਹਾ ਬਚਦੀ ਹੈ। + ਗੂੜ੍ਹੇ ਢੰਗ ਨਾਲ ਕੁਝ ਬੈਟਰੀ ਅਤੇ ਤੁਹਾਡੀ ਨਿਗ੍ਹਾ ਬਚਦੀ ਹੈ। - ਆਪਣੇ-ਆਪ + ਆਪਣੇ-ਆਪ - ਆਪਣੇ ਡਿਵਾਈਸ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਮੁਆਫ਼ਕ ਬਣਾਓ + ਆਪਣੇ ਡਿਵਾਈਸ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਨੂੰ ਮੁਆਫ਼ਕ ਬਣਾਓ - ਗੂੜ੍ਹਾ ਥੀਮ + ਗੂੜ੍ਹਾ ਥੀਮ - ਹਲਕਾ ਥੀਮ + ਹਲਕਾ ਥੀਮ ਟੈਬਾਂ ਭੇਜੀਆਂ! @@ -1938,7 +1944,9 @@ ਖੋਜ ਸੁਝਾਅ API URL - ਖੋਜ ਨੂੰ “%s” ਨਾਲ ਬਦਲੋ। ਜਿਵੇਂ:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + ਖੋਜ ਨੂੰ “%s” ਨਾਲ ਬਦਲੋ। ਜਿਵੇਂ:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + ਖੋਜ ਨੂੰ “%s” ਨਾਲ ਬਦਲੋ। ਜਿਵੇਂ:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s ਸੰਭਾਲੋ diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index a85faa02e..c69ff993a 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -645,6 +645,16 @@ Doplnok je už nainštalovaný + + + Doplnky sú dočasne zakázané + + Jeden alebo viac doplnkov prestal fungovať, čo spôsobilo, že váš systém je nestabilný. %1$s sa neúspešne pokúsil reštartovať tieto doplnky.\n\nDoplnky sa počas vašej aktuálnej relácie nereštartujú.\n\nTento problém môžete vyriešiť odstránením alebo zakázaním doplnkov. + + Skúsiť reštartovať doplnky + + Pokračovať so zakázanými doplnkami + Spravovať účet @@ -1368,14 +1378,14 @@ Počet kariet: %d - História prehliadania a údaje stránok + História prehliadania a údaje stránok História prehliadania Počet adries: %d - Cookies + Cookies Cookies a údaje stránok diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 33f404c8d..7b379f933 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -644,6 +644,16 @@ Tillägget är redan installerat + + + Tillägg är tillfälligt inaktiverade + + Ett eller flera tillägg slutade fungera, vilket gjorde ditt system instabilt. %1$s försökte inte starta om tillägget/tilläggen utan framgång.\n\nTillägg kommer inte att startas om under din nuvarande session.\n\nOm du tar bort eller inaktiverar tillägg kan det här problemet lösas. + + Testa att starta om tillägg + + Fortsätt med tillägg inaktiverade + Hantera konto @@ -1371,7 +1381,7 @@ %d flikar - Webbläsarhistorik och platsinformation + Webbläsarhistorik och platsinformation Webbläsarhistorik - Kakor + Kakor Kakor och webbplatsdata diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 12f038f0d..5cd89b78b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1400,14 +1400,14 @@ %d 个标签页 - 浏览历史和网站数据 + 浏览历史和网站数据 浏览历史 %d 条地址 - Cookie + Cookie Cookie 和网站数据 @@ -2113,7 +2113,7 @@ 设置 - 我们的赞助商﹠您的隐私 + 我们的赞助商&您的隐私 赞助项目 From 7019fb7654df6470aa426d54a22f940d48a29a6e Mon Sep 17 00:00:00 2001 From: iorgamgabriel Date: Thu, 17 Aug 2023 17:40:53 +0300 Subject: [PATCH 003/209] Bug 1844960 - Bookmark suggestions should appear unconcerned with the search suggestions setting. --- .../org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt | 5 ++--- .../mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt index 2286fa723..3c56c0b15 100644 --- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt @@ -188,6 +188,7 @@ class AwesomeBarView( title = R.string.search_engine_suggestions_title, description = activity.getString(R.string.search_engine_suggestions_description), searchIcon = searchWithBitmap, + suggestionsHeader = getSearchEngineSuggestionsHeader(), ) searchSuggestionProviderMap = HashMap() @@ -318,9 +319,7 @@ class AwesomeBarView( providersToAdd.add(getLocalTabsProvider(state.searchEngineSource, true)) } - if (!activity.settings().showUnifiedSearchFeature) { - providersToAdd.add(searchEngineSuggestionProvider) - } + providersToAdd.add(searchEngineSuggestionProvider) return providersToAdd } diff --git a/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt b/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt index 3cbc2a0aa..00570df98 100644 --- a/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt @@ -765,7 +765,7 @@ class AwesomeBarViewTest { } @Test - fun `GIVEN unified search feature is enabled WHEN configuring providers THEN don't add the engine suggestions provider`() { + fun `GIVEN unified search feature is enabled WHEN configuring providers THEN add the engine suggestions provider`() { val settings: Settings = mockk(relaxed = true) { every { showUnifiedSearchFeature } returns true } @@ -776,7 +776,7 @@ class AwesomeBarViewTest { val result = awesomeBarView.getProvidersToAdd(state) - assertEquals(0, result.filterIsInstance().size) + assertEquals(1, result.filterIsInstance().size) } @Test @@ -834,7 +834,7 @@ class AwesomeBarViewTest { } @Test - fun `GIVEN a search from the default engine with no suggestions asked WHEN configuring providers THEN don't add any provider`() { + fun `GIVEN a search from the default engine with no suggestions asked WHEN configuring providers THEN add any provider`() { val settings: Settings = mockk(relaxed = true) { every { showUnifiedSearchFeature } returns true } @@ -862,7 +862,7 @@ class AwesomeBarViewTest { assertEquals(0, result.filterIsInstance().size) assertEquals(0, result.filterIsInstance().size) assertEquals(0, result.filterIsInstance().size) - assertEquals(0, result.filterIsInstance().size) + assertEquals(1, result.filterIsInstance().size) } @Test From 2c16a785bde2545cdbb47e289dd7f214124a3c7d Mon Sep 17 00:00:00 2001 From: t-p-white Date: Fri, 25 Aug 2023 11:51:41 +0100 Subject: [PATCH 004/209] Bug 1849966 - Compose Top Sites has unwanted recompositions on scrolling --- .../sessioncontrol/SessionControlAdapter.kt | 6 +--- .../mozilla/fenix/home/topsites/TopSites.kt | 7 +++- .../fenix/home/topsites/TopSitesViewHolder.kt | 35 ++++++++++--------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt index cc7add983..258ded268 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt @@ -324,6 +324,7 @@ class SessionControlAdapter( is PocketCategoriesViewHolder, is PocketRecommendationsHeaderViewHolder, is PocketStoriesViewHolder, + is TopSitesViewHolder, -> { // no op // This previously called "composeView.disposeComposition" which would have the @@ -331,11 +332,6 @@ class SessionControlAdapter( // This View already listens and maps store updates. Avoid creating and binding new Views. // The composition will live until the ViewTreeLifecycleOwner to which it's attached to is destroyed. } - is TopSitesViewHolder -> { - // Dispose the underlying composition immediately. - // This ViewHolder can be removed / re-added and we need it to show a fresh new composition. - holder.composeView.disposeComposition() - } is CollectionViewHolder -> { // Dispose the underlying composition immediately. // This ViewHolder can be removed / re-added and we need it to show a fresh new composition. diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt index 197df834a..318dc1298 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt @@ -384,8 +384,13 @@ private fun FaviconBitmap(topSite: TopSite.Provided) { } when (val uiState = faviconBitmapUiState) { - is FaviconBitmapUiState.Loading, FaviconBitmapUiState.Error -> FaviconDefault(topSite.url) is FaviconBitmapUiState.Data -> FaviconImage(BitmapPainter(uiState.imageBitmap)) + is FaviconBitmapUiState.Error -> FaviconDefault(topSite.url) + is FaviconBitmapUiState.Loading -> { + // no-op + // Don't update the icon while loading else the top site icon could have a 'flashing' effect + // caused by the 'place holder letter' icon being immediately updated with the desired bitmap. + } } } diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesViewHolder.kt index ee8322643..74e67ef26 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesViewHolder.kt @@ -8,7 +8,7 @@ import android.view.View import androidx.compose.runtime.Composable import androidx.compose.ui.platform.ComposeView import androidx.lifecycle.LifecycleOwner -import mozilla.components.lib.state.ext.observeAsState +import mozilla.components.lib.state.ext.observeAsComposableState import org.mozilla.fenix.components.components import org.mozilla.fenix.compose.ComposeViewHolder import org.mozilla.fenix.home.sessioncontrol.TopSiteInteractor @@ -31,23 +31,26 @@ class TopSitesViewHolder( @Composable override fun Content() { val topSites = - components.appStore.observeAsState(emptyList()) { state -> state.topSites }.value + components.appStore.observeAsComposableState { state -> state.topSites }.value val wallpaperState = components.appStore - .observeAsState(WallpaperState.default) { state -> state.wallpaperState }.value + .observeAsComposableState { state -> state.wallpaperState }.value + ?: WallpaperState.default - TopSites( - topSites = topSites, - topSiteColors = TopSiteColors.colors(wallpaperState = wallpaperState), - onTopSiteClick = { topSite -> - interactor.onSelectTopSite(topSite, topSites.indexOf(topSite)) - }, - onTopSiteLongClick = interactor::onTopSiteLongClicked, - onOpenInPrivateTabClicked = interactor::onOpenInPrivateTabClicked, - onRenameTopSiteClicked = interactor::onRenameTopSiteClicked, - onRemoveTopSiteClicked = interactor::onRemoveTopSiteClicked, - onSettingsClicked = interactor::onSettingsClicked, - onSponsorPrivacyClicked = interactor::onSponsorPrivacyClicked, - ) + topSites?.let { + TopSites( + topSites = it, + topSiteColors = TopSiteColors.colors(wallpaperState = wallpaperState), + onTopSiteClick = { topSite -> + interactor.onSelectTopSite(topSite, it.indexOf(topSite)) + }, + onTopSiteLongClick = interactor::onTopSiteLongClicked, + onOpenInPrivateTabClicked = interactor::onOpenInPrivateTabClicked, + onRenameTopSiteClicked = interactor::onRenameTopSiteClicked, + onRemoveTopSiteClicked = interactor::onRemoveTopSiteClicked, + onSettingsClicked = interactor::onSettingsClicked, + onSponsorPrivacyClicked = interactor::onSponsorPrivacyClicked, + ) + } } companion object { From d2ff0bb65d36aa2b20b0a99039b11597c9cafeab Mon Sep 17 00:00:00 2001 From: William Durand Date: Mon, 21 Aug 2023 13:58:22 +0200 Subject: [PATCH 005/209] Bug 1849329 - Update local GV docs We do not need to patch the build system to read the GeckoView version anymore. --- docs/substituting-local-gv.md | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/docs/substituting-local-gv.md b/docs/substituting-local-gv.md index 868e7d716..27605c3ca 100644 --- a/docs/substituting-local-gv.md +++ b/docs/substituting-local-gv.md @@ -1,26 +1,8 @@ # Substituting local GeckoView ### 1. Manually publish local GeckoView to local Maven -First, to get the version that we are locally publishing (which will be used in later steps) please add the following: -*geckoview/build.gradle* -```diff -diff --git a/mobile/android/geckoview/build.gradle b/mobile/android/geckoview/build.gradle -index 731026796921b..81cc6782be291 100644 ---- a/mobile/android/geckoview/build.gradle -+++ b/mobile/android/geckoview/build.gradle -@@ -398,6 +398,7 @@ android.libraryVariants.all { variant -> - apply plugin: 'maven-publish' - - version = getVersionNumber() -+println("version = " + version) - group = 'org.mozilla.geckoview' - - def getArtifactId() { - -``` - -We can now publish our local GeckoView to our local maven. +Publish our local GeckoView to our local maven: ```sh ./mach build && ./mach gradle \ geckoview:publishWithGeckoBinariesDebugPublicationToMavenLocal \ @@ -29,17 +11,17 @@ We can now publish our local GeckoView to our local maven. :warning: **This needs to be run every time you make changes.** :warning: -You need to copy the version in the logs or run +You need to copy the version in the logs or run: ```sh ./mach build | grep version -``` +``` (ex. `115.0.20230511122045-SNAPSHOT`) ### 2. Modify Fenix to consume local GV Update the build.gradle and Gecko.kt file in Fenix (see the diffs below). Remember to update the GV version with the version you found in step 2! *fenix/build.gradle* -```diff +```diff diff --git a/fenix/build.gradle b/fenix/build.gradle index 6a635a4818..4c8cc28995 100644 --- a/fenix/build.gradle @@ -73,7 +55,7 @@ index bed3fb0161..2d3a19a96e 100644 */ - const val version = "115.0.20230511131014" + const val version = "115.0.20230511122045-SNAPSHOT" - + /** * GeckoView channel @@ -23,7 +23,7 @@ object Gecko { @@ -89,6 +71,6 @@ index bed3fb0161..2d3a19a96e 100644 ``` ### 3. Build fenix with local GV -Now sync your gradle changes and build! +Now sync your gradle changes and build! An easy way to confirm you are using a local GV is switching your Android Studio project tool window to "Project" and looking in the root directory called "External Libraries" for "GeckoView". You should see something like `Gradle: org.mozilla.geckoview-default-omni:115.0.20230511122045-SNAPSHOT@aar` From 816dbfdeadb104a47918811b54e99dd1cf17fdae Mon Sep 17 00:00:00 2001 From: Matthew Tighe Date: Fri, 18 Aug 2023 14:43:48 -0400 Subject: [PATCH 006/209] Bug 1842250 - Refactor the remaining HistoryController functions to lib-state --- .../fenix/library/history/HistoryFragment.kt | 19 ++++- .../library/history/HistoryFragmentStore.kt | 18 +++++ .../fenix/library/history/HistoryView.kt | 8 ++- .../state/HistoryNavigationMiddleware.kt | 13 ++++ .../state/HistoryTelemetryMiddleware.kt | 4 ++ .../history/state/bindings/MenuBinding.kt | 24 +++++++ .../viewholders/HistoryListItemViewHolder.kt | 6 +- .../history/HistoryFragmentStoreTest.kt | 24 +++++++ .../state/HistoryNavigationMiddlewareTest.kt | 70 +++++++++++++++++++ .../state/HistoryTelemetryMiddlewareTest.kt | 13 ++++ .../history/state/bindings/MenuBindingTest.kt | 34 +++++++++ 11 files changed, 228 insertions(+), 5 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/library/history/state/bindings/MenuBinding.kt create mode 100644 app/src/test/java/org/mozilla/fenix/library/history/state/bindings/MenuBindingTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index 6ca7ed709..35018c5db 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -63,6 +63,7 @@ import org.mozilla.fenix.library.history.state.HistoryNavigationMiddleware import org.mozilla.fenix.library.history.state.HistoryStorageMiddleware import org.mozilla.fenix.library.history.state.HistorySyncMiddleware import org.mozilla.fenix.library.history.state.HistoryTelemetryMiddleware +import org.mozilla.fenix.library.history.state.bindings.MenuBinding import org.mozilla.fenix.library.history.state.bindings.PendingDeletionBinding import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.utils.allowUndo @@ -95,6 +96,13 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandler, PendingDeletionBinding(requireContext().components.appStore, historyView) } + private val menuBinding by lazy { + MenuBinding( + store = historyStore, + invalidateOptionsMenu = { activity?.invalidateOptionsMenu() }, + ) + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -110,6 +118,7 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandler, HistoryNavigationMiddleware( navController = findNavController(), openToBrowser = ::openItem, + onBackPressed = requireActivity().onBackPressedDispatcher::onBackPressed, ), HistoryTelemetryMiddleware( isInPrivateMode = requireComponents.appStore.state.mode == Mode.Private, @@ -263,10 +272,12 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandler, private fun startStateBindings() { pendingDeletionBinding.start() + menuBinding.start() } private fun stopStateBindings() { pendingDeletionBinding.stop() + menuBinding.stop() } private fun updateDeleteMenuItemView(isEnabled: Boolean) { @@ -414,8 +425,12 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandler, } } - override fun onBackPressed(): Boolean { - return historyView.onBackPressed() + override fun onBackPressed() = if (FeatureFlags.historyFragmentLibStateRefactor) { + // The state needs to be updated accordingly if Edit mode is active + historyStore.dispatch(HistoryFragmentAction.BackPressed) + true + } else { + historyView.onBackPressed() } override fun onDestroyView() { diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt index 00d727fcd..6927a4f53 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragmentStore.kt @@ -149,6 +149,16 @@ sealed class HistoryFragmentAction : Action { */ data class DeleteItems(val items: Set) : HistoryFragmentAction() + /** + * The user has clicked to enter the Recently Closed fragment. + */ + object EnterRecentlyClosed : HistoryFragmentAction() + + /** + * A back press event has been dispatched. + */ + object BackPressed : HistoryFragmentAction() + /** * Updates the empty state of [org.mozilla.fenix.library.history.HistoryView]. */ @@ -259,10 +269,18 @@ private fun historyStateReducer( ) } } + is HistoryFragmentAction.BackPressed -> { + if (state.mode is HistoryFragmentState.Mode.Editing) { + state.copy(mode = HistoryFragmentState.Mode.Normal) + } else { + state + } + } // For deletion actions: the item list is handled through storage. // Updates from storage are dispatched directly to the view. is HistoryFragmentAction.DeleteItems, is HistoryFragmentAction.DeleteTimeRange, + is HistoryFragmentAction.EnterRecentlyClosed, -> state } } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt index d454027c8..1a958fd57 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryView.kt @@ -99,7 +99,7 @@ class HistoryView( val last = layoutManager.findLastVisibleItemPosition() + 1 historyAdapter.notifyItemRangeChanged(first, last - first) - if (state.mode::class != oldMode::class) { + if (state.mode::class != oldMode::class && !FeatureFlags.historyFragmentLibStateRefactor) { interactor.onModeSwitched() } @@ -135,7 +135,11 @@ class HistoryView( with(binding.recentlyClosedNavEmpty) { recentlyClosedNav.setOnClickListener { - interactor.onRecentlyClosedClicked() + if (FeatureFlags.historyFragmentLibStateRefactor) { + store.dispatch(HistoryFragmentAction.EnterRecentlyClosed) + } else { + interactor.onRecentlyClosedClicked() + } } val numRecentTabs = recentlyClosedNav.context.components.core.store.state.closedTabs.size recentlyClosedTabsDescription.text = String.format( diff --git a/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt b/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt index b492cd936..13fd0386a 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddleware.kt @@ -27,6 +27,7 @@ import org.mozilla.fenix.library.history.HistoryFragmentState class HistoryNavigationMiddleware( private val navController: NavController, private val openToBrowser: (item: History.Regular) -> Unit, + private val onBackPressed: () -> Unit, private val scope: CoroutineScope = CoroutineScope(Dispatchers.Main), ) : Middleware { override fun invoke( @@ -40,6 +41,18 @@ class HistoryNavigationMiddleware( next(action) scope.launch { when (action) { + is HistoryFragmentAction.EnterRecentlyClosed -> { + navController.navigate( + HistoryFragmentDirections.actionGlobalRecentlyClosed(), + NavOptions.Builder().setPopUpTo(R.id.recentlyClosedFragment, true).build(), + ) + } + is HistoryFragmentAction.BackPressed -> { + // When editing, we override the back pressed event to update the mode. + if (currentState.mode !is HistoryFragmentState.Mode.Editing) { + onBackPressed() + } + } is HistoryFragmentAction.HistoryItemClicked -> { if (currentState.mode.selectedItems.isEmpty()) { when (val item = action.item) { diff --git a/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddleware.kt b/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddleware.kt index 8ac7b7905..3d4f4fe91 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddleware.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.library.history.state import mozilla.components.lib.state.Middleware import mozilla.components.lib.state.MiddlewareContext import mozilla.components.service.glean.private.NoExtras +import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.library.history.History import org.mozilla.fenix.library.history.HistoryFragmentAction import org.mozilla.fenix.library.history.HistoryFragmentState @@ -30,6 +31,9 @@ class HistoryTelemetryMiddleware( val currentState = context.state next(action) when (action) { + is HistoryFragmentAction.EnterRecentlyClosed -> { + Events.recentlyClosedTabsOpened.record(NoExtras()) + } is HistoryFragmentAction.HistoryItemClicked -> { if (currentState.mode.selectedItems.isEmpty()) { when (val item = action.item) { diff --git a/app/src/main/java/org/mozilla/fenix/library/history/state/bindings/MenuBinding.kt b/app/src/main/java/org/mozilla/fenix/library/history/state/bindings/MenuBinding.kt new file mode 100644 index 000000000..dd792a727 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/library/history/state/bindings/MenuBinding.kt @@ -0,0 +1,24 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.library.history.state.bindings + +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.distinctUntilChangedBy +import mozilla.components.lib.state.helpers.AbstractBinding +import org.mozilla.fenix.library.history.HistoryFragmentState +import org.mozilla.fenix.library.history.HistoryFragmentStore + +/** + * A binding to map state updates to menu updates. + */ +class MenuBinding( + store: HistoryFragmentStore, + val invalidateOptionsMenu: () -> Unit, +) : AbstractBinding(store) { + override suspend fun onState(flow: Flow) { + flow.distinctUntilChangedBy { it.mode } + .collect { invalidateOptionsMenu() } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt index 3da3aeaf1..9842cd9c7 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/viewholders/HistoryListItemViewHolder.kt @@ -33,7 +33,11 @@ class HistoryListItemViewHolder( init { binding.recentlyClosedNavEmpty.recentlyClosedNav.setOnClickListener { - historyInteractor.onRecentlyClosedClicked() + if (FeatureFlags.historyFragmentLibStateRefactor) { + store.dispatch(HistoryFragmentAction.EnterRecentlyClosed) + } else { + historyInteractor.onRecentlyClosedClicked() + } } binding.historyLayout.overflowView.apply { diff --git a/app/src/test/java/org/mozilla/fenix/library/history/HistoryFragmentStoreTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/HistoryFragmentStoreTest.kt index 40c259bf1..dae2a0598 100644 --- a/app/src/test/java/org/mozilla/fenix/library/history/HistoryFragmentStoreTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/history/HistoryFragmentStoreTest.kt @@ -185,6 +185,30 @@ class HistoryFragmentStoreTest { assertTrue(store.state.mode.selectedItems.contains(historyItem)) } + @Test + fun `GIVEN mode is editing WHEN back pressed THEN mode becomes normal`() { + val store = HistoryFragmentStore( + emptyDefaultState().copy( + mode = HistoryFragmentState.Mode.Editing( + setOf(), + ), + ), + ) + + store.dispatch(HistoryFragmentAction.BackPressed).joinBlocking() + + assertEquals(HistoryFragmentState.Mode.Normal, store.state.mode) + } + + @Test + fun `GIVEN mode is not editing WHEN back pressed THEN does not change`() { + val store = HistoryFragmentStore(emptyDefaultState().copy(mode = HistoryFragmentState.Mode.Syncing)) + + store.dispatch(HistoryFragmentAction.BackPressed).joinBlocking() + + assertEquals(HistoryFragmentState.Mode.Syncing, store.state.mode) + } + private fun emptyDefaultState(): HistoryFragmentState = HistoryFragmentState( items = listOf(), mode = HistoryFragmentState.Mode.Normal, diff --git a/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt index d2d5c38f1..42d6e2488 100644 --- a/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryNavigationMiddlewareTest.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.library.history.state import androidx.navigation.NavController +import androidx.navigation.NavOptions import kotlinx.coroutines.test.advanceUntilIdle import kotlinx.coroutines.test.runTest import mozilla.components.support.test.any @@ -17,8 +18,10 @@ import org.junit.Assert.assertTrue import org.junit.Rule import org.junit.Test import org.mockito.Mockito.verify +import org.mozilla.fenix.R import org.mozilla.fenix.library.history.History import org.mozilla.fenix.library.history.HistoryFragmentAction +import org.mozilla.fenix.library.history.HistoryFragmentDirections import org.mozilla.fenix.library.history.HistoryFragmentState import org.mozilla.fenix.library.history.HistoryFragmentStore import org.mozilla.fenix.library.history.HistoryItemTimeGroup @@ -39,6 +42,7 @@ class HistoryNavigationMiddlewareTest { openedInBrowser = true } }, + onBackPressed = { }, scope = this, ) val store = @@ -62,6 +66,7 @@ class HistoryNavigationMiddlewareTest { openedInBrowser = true } }, + onBackPressed = { }, scope = this, ) val state = HistoryFragmentState.initial.copy( @@ -85,6 +90,7 @@ class HistoryNavigationMiddlewareTest { val middleware = HistoryNavigationMiddleware( navController = navController, openToBrowser = { }, + onBackPressed = { }, scope = this, ) val store = @@ -98,4 +104,68 @@ class HistoryNavigationMiddlewareTest { navOptions = any(), ) } + + @Test + fun `WHEN recently closed is requested to be entered THEN nav controller navigates to it`() = runTest { + val navController = mock() + val middleware = HistoryNavigationMiddleware( + navController = navController, + openToBrowser = { }, + onBackPressed = { }, + scope = this, + ) + val store = + HistoryFragmentStore(HistoryFragmentState.initial, middleware = listOf(middleware)) + + store.dispatch(HistoryFragmentAction.EnterRecentlyClosed).joinBlocking() + advanceUntilIdle() + + verify(navController).navigate( + HistoryFragmentDirections.actionGlobalRecentlyClosed(), + NavOptions.Builder().setPopUpTo(R.id.recentlyClosedFragment, true).build(), + ) + } + + @Test + fun `GIVEN mode is editing WHEN back pressed THEN no navigation happens`() = runTest { + var onBackPressed = false + val middleware = HistoryNavigationMiddleware( + navController = mock(), + openToBrowser = { }, + onBackPressed = { onBackPressed = true }, + scope = this, + ) + val store = + HistoryFragmentStore( + HistoryFragmentState.initial.copy( + mode = HistoryFragmentState.Mode.Editing( + setOf(), + ), + ), + middleware = listOf(middleware), + ) + + store.dispatch(HistoryFragmentAction.BackPressed).joinBlocking() + advanceUntilIdle() + + assertFalse(onBackPressed) + } + + @Test + fun `GIVEN mode is not editing WHEN back pressed THEN onBackPressed callback invoked`() = runTest { + var onBackPressed = false + val middleware = HistoryNavigationMiddleware( + navController = mock(), + openToBrowser = { }, + onBackPressed = { onBackPressed = true }, + scope = this, + ) + val store = + HistoryFragmentStore(HistoryFragmentState.initial, middleware = listOf(middleware)) + + store.dispatch(HistoryFragmentAction.BackPressed).joinBlocking() + advanceUntilIdle() + + assertTrue(onBackPressed) + } } diff --git a/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddlewareTest.kt index 4872d471c..d4f5a02a1 100644 --- a/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddlewareTest.kt +++ b/app/src/test/java/org/mozilla/fenix/library/history/state/HistoryTelemetryMiddlewareTest.kt @@ -12,6 +12,7 @@ import org.junit.Assert.assertNull import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith +import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.library.history.History import org.mozilla.fenix.library.history.HistoryFragmentAction import org.mozilla.fenix.library.history.HistoryFragmentState @@ -108,4 +109,16 @@ class HistoryTelemetryMiddlewareTest { assertNotNull(GleanHistory.removedAll.testGetValue()) } + + @Test + fun `GIVEN recently closed is requested to be entered THEN telemetry recorded`() { + val store = HistoryFragmentStore( + initialState = HistoryFragmentState.initial, + middleware = listOf(middleware), + ) + + store.dispatch(HistoryFragmentAction.EnterRecentlyClosed).joinBlocking() + + assertNotNull(Events.recentlyClosedTabsOpened.testGetValue()) + } } diff --git a/app/src/test/java/org/mozilla/fenix/library/history/state/bindings/MenuBindingTest.kt b/app/src/test/java/org/mozilla/fenix/library/history/state/bindings/MenuBindingTest.kt new file mode 100644 index 000000000..4ea81c20f --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/library/history/state/bindings/MenuBindingTest.kt @@ -0,0 +1,34 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.library.history.state.bindings + +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.rule.MainCoroutineRule +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.mozilla.fenix.library.history.HistoryFragmentAction +import org.mozilla.fenix.library.history.HistoryFragmentState +import org.mozilla.fenix.library.history.HistoryFragmentStore + +class MenuBindingTest { + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + + @Test + fun `WHEN the mode is updated THEN the menu is invalidated`() { + var menuInvalidated = false + val store = HistoryFragmentStore(HistoryFragmentState.initial.copy(mode = HistoryFragmentState.Mode.Syncing)) + val binding = MenuBinding( + store = store, + invalidateOptionsMenu = { menuInvalidated = true }, + ) + + binding.start() + store.dispatch(HistoryFragmentAction.FinishSync).joinBlocking() + + assertTrue(menuInvalidated) + } +} From b1c9094d5f81985f8d04c30a52abccf267ffb870 Mon Sep 17 00:00:00 2001 From: t-p-white Date: Tue, 29 Aug 2023 18:21:19 +0100 Subject: [PATCH 007/209] Revert "Bug 1837325 - Use alternative ways to get backQueue elements." This reverts commit 9313f7c23ab029b816616bb37fac337279967827. --- app/src/main/java/org/mozilla/fenix/ext/NavController.kt | 2 +- .../java/org/mozilla/fenix/search/SearchDialogFragment.kt | 2 +- .../org/mozilla/fenix/search/SearchDialogFragmentTest.kt | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/ext/NavController.kt b/app/src/main/java/org/mozilla/fenix/ext/NavController.kt index e768d72f2..07e9713b9 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/NavController.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/NavController.kt @@ -68,7 +68,7 @@ fun NavController.navigateWithBreadcrumb( */ @SuppressLint("RestrictedApi") fun NavController.hasTopDestination(fragmentClassName: String): Boolean { - return this.currentBackStackEntry?.destination?.displayName?.contains( + return this.backQueue.lastOrNull()?.destination?.displayName?.contains( fragmentClassName, true, ) == true diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt index 34e8c7c0d..9eade22c5 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchDialogFragment.kt @@ -1021,7 +1021,7 @@ class SearchDialogFragment : AppCompatDialogFragment(), UserInteractionHandler { internal fun getPreviousDestination(): NavBackStackEntry? { // This duplicates the platform functionality for "previousBackStackEntry" but additionally skips this entry. - val descendingEntries = findNavController().currentBackStack.value.reversed().iterator() + val descendingEntries = findNavController().backQueue.reversed().iterator() // Throw the topmost destination away. if (descendingEntries.hasNext()) { descendingEntries.next() diff --git a/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt index ff71df0ff..c7aa3e72b 100644 --- a/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/SearchDialogFragmentTest.kt @@ -50,14 +50,14 @@ internal class SearchDialogFragmentTest { @Test fun `GIVEN this is the only visible fragment WHEN asking for the previous destination THEN return null`() { - every { navController.currentBackStack.value } returns ArrayDeque(listOf(getDestination(fragmentName))) + every { navController.backQueue } returns ArrayDeque(listOf(getDestination(fragmentName))) assertNull(fragment.getPreviousDestination()) } @Test fun `GIVEN this and FragmentB on top of this are visible WHEN asking for the previous destination THEN return null`() { - every { navController.currentBackStack.value } returns ArrayDeque( + every { navController.backQueue } returns ArrayDeque( listOf( getDestination(fragmentName), getDestination("FragmentB"), @@ -70,7 +70,7 @@ internal class SearchDialogFragmentTest { @Test fun `GIVEN FragmentA, this and FragmentB are visible WHEN asking for the previous destination THEN return FragmentA`() { val fragmentADestination = getDestination("FragmentA") - every { navController.currentBackStack.value } returns ArrayDeque( + every { navController.backQueue } returns ArrayDeque( listOf( fragmentADestination, getDestination(fragmentName), @@ -84,7 +84,7 @@ internal class SearchDialogFragmentTest { @Test fun `GIVEN FragmentA and this on top of it are visible WHEN asking for the previous destination THEN return FragmentA`() { val fragmentADestination = getDestination("FragmentA") - every { navController.currentBackStack.value } returns ArrayDeque( + every { navController.backQueue } returns ArrayDeque( listOf( fragmentADestination, getDestination(fragmentName), From d743c46919328c1342b50de0724db1633186a191 Mon Sep 17 00:00:00 2001 From: t-p-white Date: Tue, 29 Aug 2023 18:22:31 +0100 Subject: [PATCH 008/209] Revert "Bug 1837325 - Remove navigation library duplication from FenixDependencies." This reverts commit bcfdc61d --- app/build.gradle | 4 ++-- build.gradle | 2 +- .../src/main/java/FenixDependenciesPlugin.kt | 4 ++++ 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 37ffadb74..78d698dad 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -596,8 +596,8 @@ dependencies { implementation ComponentsDependencies.androidx_paging implementation ComponentsDependencies.androidx_preferences implementation ComponentsDependencies.androidx_fragment - implementation ComponentsDependencies.androidx_navigation_fragment - implementation ComponentsDependencies.androidx_navigation_ui + implementation FenixDependencies.androidx_navigation_fragment + implementation FenixDependencies.androidx_navigation_ui implementation ComponentsDependencies.androidx_recyclerview implementation FenixDependencies.androidx_lifecycle_common implementation ComponentsDependencies.androidx_lifecycle_livedata diff --git a/build.gradle b/build.gradle index c13ee82c9..4a0b37a79 100644 --- a/build.gradle +++ b/build.gradle @@ -71,7 +71,7 @@ buildscript { classpath ComponentsDependencies.tools_androidgradle classpath ComponentsDependencies.tools_kotlingradle classpath FenixDependencies.tools_benchmarkgradle - classpath ComponentsDependencies.androidx_safeargs + classpath FenixDependencies.androidx_safeargs classpath FenixDependencies.osslicenses_plugin classpath "org.mozilla.telemetry:glean-gradle-plugin:${Versions.mozilla_glean}" classpath "${ApplicationServicesConfig.groupId}:tooling-nimbus-gradle:${ApplicationServicesConfig.version}" diff --git a/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt b/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt index 781c2df16..fff754c09 100644 --- a/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt +++ b/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt @@ -23,6 +23,7 @@ object FenixVersions { const val androidx_profileinstaller = "1.3.1" const val androidx_legacy = "1.0.0" const val androidx_lifecycle = "2.6.1" + const val androidx_navigation = "2.5.3" const val androidx_splash_screen = "1.0.1" const val androidx_transition = "1.4.1" const val androidx_datastore = "1.0.0" @@ -58,6 +59,9 @@ object FenixDependencies { const val androidx_activity_ktx = "androidx.activity:activity-ktx:${FenixVersions.androidx_activity}" const val androidx_legacy = "androidx.legacy:legacy-support-v4:${FenixVersions.androidx_legacy}" const val androidx_lifecycle_common = "androidx.lifecycle:lifecycle-common:${FenixVersions.androidx_lifecycle}" + const val androidx_safeargs = "androidx.navigation:navigation-safe-args-gradle-plugin:${FenixVersions.androidx_navigation}" + const val androidx_navigation_fragment = "androidx.navigation:navigation-fragment-ktx:${FenixVersions.androidx_navigation}" + const val androidx_navigation_ui = "androidx.navigation:navigation-ui:${FenixVersions.androidx_navigation}" const val androidx_transition = "androidx.transition:transition:${FenixVersions.androidx_transition}" const val androidx_datastore = "androidx.datastore:datastore:${FenixVersions.androidx_datastore}" From 9fd7b0f27b1310363d2d0c9fb7b5e2f2e455d35c Mon Sep 17 00:00:00 2001 From: William Durand Date: Tue, 8 Aug 2023 15:45:48 +0200 Subject: [PATCH 009/209] Bug 1796189 - List extensions installed outside the list of featured extensions Co-authored-by: William Durand Co-authored-by: Arturo Mejia --- .../fenix/addons/AddonsManagementFragment.kt | 2 - .../fenix/browser/BaseBrowserFragment.kt | 13 ---- .../extension/WebExtensionPromptFeature.kt | 47 ++++---------- .../WebExtensionPromptFeatureTest.kt | 63 ------------------- 4 files changed, 12 insertions(+), 113 deletions(-) delete mode 100644 app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt index 9d03a0389..aa6f4332c 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt @@ -78,10 +78,8 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) webExtensionPromptFeature.set( feature = WebExtensionPromptFeature( store = requireComponents.core.store, - provideAddons = { addons }, context = requireContext(), fragmentManager = parentFragmentManager, - snackBarParentView = view, onAddonChanged = { runIfFragmentIsAttached { adapter?.updateAddon(it) diff --git a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt index b6eb3ecbe..93756465e 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BaseBrowserFragment.kt @@ -62,7 +62,6 @@ import mozilla.components.concept.engine.permission.SitePermissions import mozilla.components.concept.engine.prompt.ShareData import mozilla.components.feature.accounts.FxaCapability import mozilla.components.feature.accounts.FxaWebChannelFeature -import mozilla.components.feature.addons.Addon import mozilla.components.feature.app.links.AppLinksFeature import mozilla.components.feature.contextmenu.ContextMenuCandidate import mozilla.components.feature.contextmenu.ContextMenuFeature @@ -138,7 +137,6 @@ import org.mozilla.fenix.downloads.ThirdPartyDownloadDialog import org.mozilla.fenix.ext.accessibilityManager import org.mozilla.fenix.ext.breadcrumb import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.getFenixAddons import org.mozilla.fenix.ext.getPreferenceKey import org.mozilla.fenix.ext.hideToolbar import org.mozilla.fenix.ext.nav @@ -918,10 +916,8 @@ abstract class BaseBrowserFragment : webExtensionPromptFeature.set( feature = WebExtensionPromptFeature( store = requireComponents.core.store, - provideAddons = ::provideAddons, context = requireContext(), fragmentManager = parentFragmentManager, - snackBarParentView = binding.dynamicSnackbarContainer, ), owner = this, view = view, @@ -1653,13 +1649,4 @@ abstract class BaseBrowserFragment : return isValidStatus && isSameTab } - - private suspend fun provideAddons(): List { - return withContext(IO) { - // We deactivated the cache to get the most up-to-date list of add-ons to match against. - // as this will be used to install add-ons from AMO. - val addons = requireContext().components.addonManager.getFenixAddons(allowCache = false) - addons - } - } } diff --git a/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt b/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt index 7108d35bb..de69be0ff 100644 --- a/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt +++ b/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt @@ -6,7 +6,6 @@ package org.mozilla.fenix.extension import android.content.Context import android.view.Gravity -import android.view.View import androidx.annotation.VisibleForTesting import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope @@ -23,8 +22,6 @@ import mozilla.components.feature.addons.ui.PermissionsDialogFragment import mozilla.components.lib.state.ext.flowScoped import mozilla.components.support.base.feature.LifecycleAwareFeature import org.mozilla.fenix.R -import org.mozilla.fenix.addons.showSnackBar -import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.ext.components import org.mozilla.fenix.theme.ThemeManager import java.lang.ref.WeakReference @@ -34,9 +31,7 @@ import java.lang.ref.WeakReference */ class WebExtensionPromptFeature( private val store: BrowserStore, - private val provideAddons: suspend () -> List, private val context: Context, - private val snackBarParentView: View, private val fragmentManager: FragmentManager, private val onAddonChanged: (Addon) -> Unit = {}, ) : LifecycleAwareFeature { @@ -56,9 +51,11 @@ class WebExtensionPromptFeature( flow.mapNotNull { state -> state.webExtensionPromptRequest }.distinctUntilChanged().collect { promptRequest -> - val addon = provideAddons().find { addon -> - addon.id == promptRequest.extension.id - } + // The install flow in Fenix relies on an [Addon] object so let's convert the (GeckoView) + // extension into a minimal add-on. The missing metadata will be fetched when the user + // opens the add-ons manager. + val addon = Addon.newFromWebExtension(promptRequest.extension) + when (promptRequest) { is WebExtensionPromptRequest.Permissions -> handlePermissionRequest( addon, @@ -66,7 +63,7 @@ class WebExtensionPromptFeature( ) is WebExtensionPromptRequest.PostInstallation -> handlePostInstallationRequest( - addon?.copy(installedState = promptRequest.extension.toInstalledState()), + addon.copy(installedState = promptRequest.extension.toInstalledState()), ) } } @@ -75,31 +72,20 @@ class WebExtensionPromptFeature( } private fun handlePostInstallationRequest( - addon: Addon?, + addon: Addon, ) { - if (addon == null) { - consumePromptRequest() - return - } showPostInstallationDialog(addon) } private fun handlePermissionRequest( - addon: Addon?, + addon: Addon, promptRequest: WebExtensionPromptRequest.Permissions, ) { - if (hasExistingPermissionDialogFragment()) return - - if (addon == null) { - promptRequest.onConfirm(false) - consumePromptRequest() - showUnsupportedError() - } else { - showPermissionDialog( - addon, - promptRequest, - ) + if (hasExistingPermissionDialogFragment()) { + return } + + showPermissionDialog(addon, promptRequest) } /** @@ -145,15 +131,6 @@ class WebExtensionPromptFeature( } } - @VisibleForTesting - internal fun showUnsupportedError() { - showSnackBar( - snackBarParentView, - context.getString(R.string.addon_not_supported_error), - FenixSnackbar.LENGTH_LONG, - ) - } - private fun tryToReAttachButtonHandlersToPreviousDialog() { findPreviousPermissionDialogFragment()?.let { dialog -> dialog.onPositiveButtonClicked = { addon -> diff --git a/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt b/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt deleted file mode 100644 index c109deab8..000000000 --- a/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt +++ /dev/null @@ -1,63 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.extension - -import io.mockk.every -import io.mockk.just -import io.mockk.mockk -import io.mockk.runs -import io.mockk.spyk -import io.mockk.verify -import mozilla.components.browser.state.action.WebExtensionAction.UpdatePromptRequestWebExtensionAction -import mozilla.components.browser.state.state.extension.WebExtensionPromptRequest.Permissions -import mozilla.components.browser.state.store.BrowserStore -import mozilla.components.support.test.ext.joinBlocking -import mozilla.components.support.test.robolectric.testContext -import mozilla.components.support.test.rule.MainCoroutineRule -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.junit.runner.RunWith -import org.mozilla.fenix.helpers.FenixRobolectricTestRunner - -@RunWith(FenixRobolectricTestRunner::class) -class WebExtensionPromptFeatureTest { - - private lateinit var webExtensionPromptFeature: WebExtensionPromptFeature - private lateinit var store: BrowserStore - - @get:Rule - val coroutinesTestRule = MainCoroutineRule() - - @Before - fun setup() { - store = BrowserStore() - webExtensionPromptFeature = spyk( - WebExtensionPromptFeature( - store = store, - provideAddons = { emptyList() }, - context = testContext, - snackBarParentView = mockk(relaxed = true), - fragmentManager = mockk(relaxed = true), - ), - ) - } - - @Test - fun `WHEN add-on is not found THEN unsupported error message is shown`() { - val onConfirm = mockk<(Boolean) -> Unit>(relaxed = true) - every { webExtensionPromptFeature.consumePromptRequest() } just runs - every { webExtensionPromptFeature.showUnsupportedError() } returns mockk() - - webExtensionPromptFeature.start() - - // Passing a mocked WebExtension instance here will result in no add-on being found. - store.dispatch(UpdatePromptRequestWebExtensionAction(Permissions(mockk(), onConfirm))).joinBlocking() - - verify { onConfirm(false) } - verify { webExtensionPromptFeature.consumePromptRequest() } - verify { webExtensionPromptFeature.showUnsupportedError() } - } -} From cfd309d8b7acbd514f0eadc02fa3f93551cc6e3c Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Wed, 16 Aug 2023 15:09:05 -0700 Subject: [PATCH 010/209] Bug 1845231 - Adds a mask to the tab counter in private mode --- .../org/mozilla/fenix/home/TabCounterView.kt | 8 +++- app/src/main/res/layout/fragment_home.xml | 1 + .../mozilla/fenix/home/TabCounterViewTest.kt | 45 +++++++++++++++++++ 3 files changed, 53 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/TabCounterView.kt b/app/src/main/java/org/mozilla/fenix/home/TabCounterView.kt index 07eef8357..a5eb2e49b 100644 --- a/app/src/main/java/org/mozilla/fenix/home/TabCounterView.kt +++ b/app/src/main/java/org/mozilla/fenix/home/TabCounterView.kt @@ -20,6 +20,7 @@ import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager import org.mozilla.fenix.components.toolbar.FenixTabCounterMenu import org.mozilla.fenix.ext.nav +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.tabstray.Page /** @@ -82,13 +83,18 @@ class TabCounterView( * browsing mode. */ fun update(browserState: BrowserState) { - val tabCount = if (browsingModeManager.mode.isPrivate) { + val isPrivate = browsingModeManager.mode.isPrivate + val tabCount = if (isPrivate) { browserState.privateTabs.size } else { browserState.normalTabs.size } tabCounter.setCountWithAnimation(tabCount) + + if (context.settings().feltPrivateBrowsingEnabled) { + tabCounter.toggleCounterMask(isPrivate) + } } /** diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index b58ebb34c..ce70a3eae 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -178,6 +178,7 @@ android:id="@+id/tab_button" android:layout_width="48dp" android:layout_height="48dp" + android:clipChildren="false" app:layout_constraintTop_toTopOf="@id/bottom_bar" app:layout_constraintBottom_toBottomOf="@id/bottom_bar" app:layout_constraintEnd_toStartOf="@+id/menuButton" diff --git a/app/src/test/java/org/mozilla/fenix/home/TabCounterViewTest.kt b/app/src/test/java/org/mozilla/fenix/home/TabCounterViewTest.kt index b6de27749..14f176c8e 100644 --- a/app/src/test/java/org/mozilla/fenix/home/TabCounterViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/home/TabCounterViewTest.kt @@ -9,6 +9,7 @@ import io.mockk.every import io.mockk.mockk import io.mockk.spyk import io.mockk.verify +import io.mockk.verifyOrder import mozilla.components.browser.state.selector.normalTabs import mozilla.components.browser.state.selector.privateTabs import mozilla.components.browser.state.state.BrowserState @@ -31,6 +32,7 @@ import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager import org.mozilla.fenix.browser.browsingmode.DefaultBrowsingModeManager import org.mozilla.fenix.ext.nav +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.utils.Settings @@ -103,6 +105,8 @@ class TabCounterViewTest { @Test fun `WHEN tab counter is updated THEN set the tab counter to the correct number of tabs`() { + every { testContext.settings() } returns settings + val browserState = BrowserState( tabs = listOf( createTab(url = "https://www.mozilla.org", id = "mozilla"), @@ -126,4 +130,45 @@ class TabCounterViewTest { tabCounter.setCountWithAnimation(browserState.privateTabs.size) } } + + @Test + fun `WHEN state updated while in private mode THEN call toggleCounterMask(true)`() { + every { settings.feltPrivateBrowsingEnabled } returns true + every { testContext.settings() } returns settings + val browserState = BrowserState( + tabs = listOf( + createTab(url = "https://www.mozilla.org", id = "mozilla"), + createTab(url = "https://www.firefox.com", id = "firefox"), + createTab(url = "https://getpocket.com", private = true, id = "getpocket"), + ), + selectedTabId = "mozilla", + ) + + browsingModeManager.mode = BrowsingMode.Private + tabCounterView.update(browserState) + + verifyOrder { + tabCounter.toggleCounterMask(true) + } + } + + @Test + fun `WHEN state updated while in normal mode THEN call toggleCounterMask(false)`() { + every { settings.feltPrivateBrowsingEnabled } returns true + every { testContext.settings() } returns settings + val browserState = BrowserState( + tabs = listOf( + createTab(url = "https://www.mozilla.org", id = "mozilla"), + createTab(url = "https://www.firefox.com", id = "firefox"), + createTab(url = "https://getpocket.com", private = true, id = "getpocket"), + ), + selectedTabId = "mozilla", + ) + + tabCounterView.update(browserState) + + verifyOrder { + tabCounter.toggleCounterMask(false) + } + } } From 733b535876e3f57c625502a8df84f6d9636e5aa3 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 30 Aug 2023 00:03:11 +0000 Subject: [PATCH 011/209] Import translations from android-l10n --- app/src/main/res/values-am/strings.xml | 14 +++- app/src/main/res/values-cy/strings.xml | 10 ++- app/src/main/res/values-dsb/strings.xml | 14 +++- app/src/main/res/values-el/strings.xml | 14 +++- app/src/main/res/values-en-rGB/strings.xml | 14 +++- app/src/main/res/values-es-rAR/strings.xml | 2 + app/src/main/res/values-es-rCL/strings.xml | 14 +++- app/src/main/res/values-eu/strings.xml | 14 +++- app/src/main/res/values-fi/strings.xml | 14 +++- app/src/main/res/values-fur/strings.xml | 15 ++++- app/src/main/res/values-gn/strings.xml | 14 +++- app/src/main/res/values-hr/strings.xml | 74 ++++++++++++++-------- app/src/main/res/values-hsb/strings.xml | 2 + app/src/main/res/values-hu/strings.xml | 14 +++- app/src/main/res/values-ia/strings.xml | 12 +++- app/src/main/res/values-kk/strings.xml | 15 ++++- app/src/main/res/values-nl/strings.xml | 8 ++- app/src/main/res/values-pt-rBR/strings.xml | 15 ++++- app/src/main/res/values-tg/strings.xml | 12 +++- app/src/main/res/values-vi/strings.xml | 14 +++- app/src/main/res/values-zh-rCN/strings.xml | 11 ++++ app/src/main/res/values-zh-rTW/strings.xml | 14 +++- 22 files changed, 266 insertions(+), 64 deletions(-) diff --git a/app/src/main/res/values-am/strings.xml b/app/src/main/res/values-am/strings.xml index ccb16ff97..a297ac7e4 100644 --- a/app/src/main/res/values-am/strings.xml +++ b/app/src/main/res/values-am/strings.xml @@ -631,6 +631,16 @@ ተጨማሪ አስቀድሞ ተጭኗል + + + ተጨማሪዎች ለጊዜው ተሰናክለዋል + + አንድ ወይም ከዚያ በላይ ተጨማሪዎች መስራት አቁመዋል፣ይህም ስርዓትዎ ያልተረጋጋ እንዲሆን አድርጎታል። %1$s ተጨማሪውን እንደገና ለማስጀመር ሞክሯል አልተሳካም።\n\nተጨማሪዎች በአሁኑ ክፍለ ጊዜዎ እንደገና አይጀመሩም።\n\nተጨማሪዎችን ማስወገድ ወይም ማሰናከል ይህንን ችግር ሊፈታው ይችላል። + + ተጨማሪዎችን እንደገና ለማስጀመር ይሞክሩ + + ተጨማሪዎችን በማሰናከል ይቀጥሉ + መለያ ያስተዳድሩ @@ -1344,14 +1354,14 @@ %d ትሮች - የአሰሳ ታሪክ እና የድረ-ገፅ ውሂብ + የአሰሳ ታሪክ እና የድረ-ገፅ ውሂብ የአሰሳ ታሪክ %d አድራሻዎች - ኩኪዎች + ኩኪዎች ኩኪዎች እና የድረ-ገፅ ውሂብ diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 54a37d827..1363c0d50 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -637,11 +637,17 @@ Mae’r ychwanegyn eisoes wedi’i osod + + + Mae ychwanegion wedi’u hanalluogi dros dro - Rhoddodd un neu fwy o ategion y gorau i weithio, gan wneud eich system yn ansefydlog. Ceisiodd %1$s ailgychwyn yr ychwanegiad(au) yn aflwyddiannus.\n\nNi fydd ychwanegion yn cael eu hailddechrau yn ystod eich sesiwn gyfredol.\n\nGallai dileu neu analluogi ychwanegion ddatrys y broblem hon. + Rhoddodd un neu fwy o ategion y gorau i weithio, gan wneud eich system yn ansefydlog. Ceisiodd %1$s ailgychwyn yr ychwanegyn(ion) yn aflwyddiannus.\n\nNi fydd ychwanegion yn cael eu hailddechrau yn ystod eich sesiwn gyfredol.\n\nGallai dileu neu analluogi ychwanegion ddatrys y broblem hon. Ceisiwch ailgychwyn ychwanegion + + Parhau gydag ychwanegion wedi’u hanalluogi + Rheoli cyfrif @@ -1927,7 +1933,7 @@ Amnewid yr ymholiad gyda “%s”. Enghraifft:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s - Disodli ymholiad gyda "%s". Enghraifft:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s + Disodli ymholiad gyda “%s”. Enghraifft:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Cadw diff --git a/app/src/main/res/values-dsb/strings.xml b/app/src/main/res/values-dsb/strings.xml index 03c91b849..fc53e8f16 100644 --- a/app/src/main/res/values-dsb/strings.xml +++ b/app/src/main/res/values-dsb/strings.xml @@ -634,6 +634,16 @@ Dodank jo južo zainstalowany. + + + Dodanki su nachylu znjemóžnjone + + Jaden dodank abo někotare dodanki su pśestali funkcioněrowaś a destabilizěruju waš system. %1$s jo njewuspěšnje wopytał, dodanki znowego startowaś.\n\nDodanki se za wašo aktualne pósejźenje znowego njestartuju.\n\nGaž dodanki wótwónoźujośo abo znjemóžnjaśo, buźo se toś ten problem snaź rozwězaś. + + Wopytajśo dodanki znowego startowaś + + Ze znjemóžnjonymi dodankami pókšacowaś + Konto zastojaś @@ -1356,14 +1366,14 @@ Rejtariki: %d - Pśeglědowańska historija a sedłowe daty + Pśeglědowańska historija a sedłowe daty Pśeglědowańska historija Adrese: %d - Cookieje + Cookieje Cookieje a sedłowe daty diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 1c8cac0ab..48db34d08 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -646,6 +646,16 @@ Το πρόσθετο είναι ήδη εγκατεστημένο + + + Τα πρόσθετα έχουν απενεργοποιηθεί προσωρινά + + Ένα ή περισσότερα πρόσθετα σταμάτησαν να λειτουργούν, καθιστώντας το σύστημά σας ασταθές. Το %1$s προσπάθησε ανεπιτυχώς να επανεκκινήσει τα πρόσθετα.\n\nΤα πρόσθετα δεν θα επανεκκινηθούν κατά τη διάρκεια της τρέχουσας συνεδρίας σας.\n\nΗ αφαίρεση ή η απενεργοποίηση των προσθέτων ενδέχεται να διορθώσει αυτό το ζήτημα. + + Δοκιμάστε να επανεκκινήσετε τα πρόσθετα + + Συνέχεια με ανενεργά πρόσθετα + Διαχείριση λογαριασμού @@ -1371,14 +1381,14 @@ %d καρτέλες - Ιστορικό περιήγησης και δεδομένα ιστοτόπων + Ιστορικό περιήγησης και δεδομένα ιστοτόπων Ιστορικό περιήγησης %d διευθύνσεις - Cookies + Cookies Cookies και δεδομένα ιστοτόπων diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml index 8e3b9a09f..bb64a4b61 100644 --- a/app/src/main/res/values-en-rGB/strings.xml +++ b/app/src/main/res/values-en-rGB/strings.xml @@ -634,6 +634,16 @@ Add-on is already installed + + + Add-ons are temporarily disabled + + One or more add-ons stopped working, making your system unstable. %1$s unsuccessfully tried to restart the add-on(s).\n\nAdd-ons won’t be restarted during your current session.\n\nRemoving or disabling add-ons may fix this issue. + + Try restarting add-ons + + Continue with add-ons disabled + Manage account @@ -1352,14 +1362,14 @@ %d tabs - Browsing history and site data + Browsing history and site data Browsing history %d addresses - Cookies + Cookies Cookies and site data diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index 0b45573cf..fc06c0ebc 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -645,6 +645,8 @@ Los complementos están deshabilitados temporalmente + + Uno o más complementos dejaron de funcionar, haciendo que el sistema sea inestable. %1$s intentó reiniciar el(los) complemento(s) sin éxito.\n\nLos complementos no se reiniciarán durante la sesión actual.\n\nQuitar o deshabilitar los complementos puede solucionar este problema. Probá reiniciar los complementos diff --git a/app/src/main/res/values-es-rCL/strings.xml b/app/src/main/res/values-es-rCL/strings.xml index aa94b26b8..9a9282c3e 100644 --- a/app/src/main/res/values-es-rCL/strings.xml +++ b/app/src/main/res/values-es-rCL/strings.xml @@ -636,6 +636,16 @@ Complemento ya está instalado + + + Los complementos están temporalmente deshabilitados + + Uno o más complementos dejaron de funcionar, lo que hizo que tu sistema fuera inestable. %1$s intentó reiniciar los complementos sin éxito.\n\nLos complementos no se reiniciarán durante tu sesión actual.\n\nQuitar o deshabilitar los complementos puede solucionar este problema. + + Intenta reiniciando los complementos + + Continuar con los complementos deshabilitados + Administrar cuenta @@ -1355,14 +1365,14 @@ %d pestañas - Historial de navegación y datos de sitio + Historial de navegación y datos de sitio Historial de navegación %d direcciones - Cookies + Cookies Cookies y datos de sitio diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index eeb9c2a46..87bc64e07 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -640,6 +640,16 @@ Gehigarria instalatuta dago jada + + + Gehigarriak aldi baterako desgaitu dira + + Gehigarri bat edo gehiago ez dabil eta zure sistema desegonkortzen ari da. %1$s saiatu da gehigarriak berrabiarazten, arrakastarik gabe.\n\nEz da gehigarririk berrabiaraziko zure uneko saioan.\n\nGeghiarriak kendu edo desgaitzeak arazoa konpon lezake. + + Probatu gehigarriak berrabiarazten + + Jarraitu gehigarriak desgaituta + Kudeatu kontua @@ -1367,14 +1377,14 @@ %d fitxa - Nabigatze-historia eta guneetako datuak + Nabigatze-historia eta guneetako datuak Nabigatze-historia %d helbide - Cookieak + Cookieak Cookieak eta guneetako datuak diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index de46f857c..0d693cdad 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -644,6 +644,16 @@ Lisäosa on jo asennettu + + + Lisäosat on väliaikaisesti poistettu käytöstä + + Yksi tai useampi lisäosa lakkasi toimimasta, mikä teki järjestelmästä epävakaan. %1$s ei onnistunut käynnistämään lisäosia uudelleen.\n\nLisäosia ei käynnistetä uudelleen nykyisen istunnon aikana.\n\nLisäosien poistaminen tai poistaminen käytöstä saattaa korjata tämän ongelman. + + Yritä käynnistää lisäosat uudelleen + + Jatka lisäosien ollessa poistettu käytöstä + Hallitse tiliä @@ -1373,14 +1383,14 @@ %d välilehteä - Selaushistoria ja sivustotiedot + Selaushistoria ja sivustotiedot Selaushistoria %d osoitetta - Evästeet + Evästeet Evästeet ja sivustotiedot diff --git a/app/src/main/res/values-fur/strings.xml b/app/src/main/res/values-fur/strings.xml index 68eb9dd04..cbe1c409a 100644 --- a/app/src/main/res/values-fur/strings.xml +++ b/app/src/main/res/values-fur/strings.xml @@ -639,6 +639,17 @@ Il component adizionâ al è za instalât + + + I components adizionâi a son disativâts in mût temporani + + + Un o plui components adizionâi a àn fermât di funzionâ, rindint instabil il sisteme. %1$s al à cirût di tornâ a inviâ i components adizionâi cence sucès.\n\nDilunc cheste session no si tornarà a inviâ i components adizionâi.\n\nLa rimozion o la disativazion dai components adizionâi e podarès risolvi chest probleme. + + Prove a tornâ a inviâ i components adizionâi + + Continue cui components adizionâi disativâts + Gjestìs account @@ -1363,14 +1374,14 @@ %d schedis - Cronologjie di navigazion e dâts dai sîts + Cronologjie di navigazion e dâts dai sîts Cronologjie di navigazion %d direzions - Cookies + Cookies Cookies e dâts dai sîts web diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 39eedc0e6..406ee31a4 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -645,6 +645,16 @@ Pe moĩmbaha oñemohendáma + + + Umi tembiporu’i ojejoko sapy’ami + + Peteĩ térã hetave tembiporu’i ndoikoéima, péicha rupi apopyvusu ndoku’eporãi. %1$s omoñepyrũsejey tembiporu’i ha ndaikatúi.\n\nUmi tembiporu’i ndoku’emo’ãi ko tembiapo aja.\n\nEipe’a térã embotývo umi tembiporu’i ikatu omyatyrõ ko apañuãi. + + Emoñepyrũ umi tembiporu’i + + Eku’ejey tembiporu’i jokopyréva ndive + Mba’ete ñangareko @@ -1384,14 +1394,14 @@ %d tendayke - Kundahára rembiasakue ha tenda mba’ekuaarã + Kundahára rembiasakue ha tenda mba’ekuaarã Kundaha rembiasakue %d kundaharape - Kookie + Kookie Kookie ha tenda mba’ekuaarã diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index b2fb0c7da..eebbb7a4d 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -373,6 +373,8 @@ Standardna tražilica Tražilica + + Tražilice Traka adrese @@ -631,6 +633,16 @@ Dodatak je već instaliran + + + Dodaci su privremeno onemogućeni + + Jedan ili više dodataka prestalo je raditi, što je vaš sustav učinilo nestabilnim. %1$s je bezuspješno pokušao ponovno pokrenuti dodatke.\n\nDodaci se neće ponovno pokrenuti tijekom vaše trenutačne sesije.\n\nUklanjanje ili onemogućavanje dodataka može riješiti ovaj problem. + + Pokušajte ponovno pokrenuti dodatke + + Nastavite s onemogućenim dodacima + Upravljanje računom @@ -1357,12 +1369,16 @@ %d kartica(e) - Povijest pregledavanja i podaci web-stranica + Povijest pregledavanja i podaci web-stranica + + Povijest pregledavanja %d adresa(e) - Kolačići + Kolačići + + Kolačići i podaci web stranice Odjavit ćeš se na većini web-stranica @@ -1417,63 +1433,63 @@ - Dobrodošli na bolji Internet + Dobrodošli na bolji Internet - Preglednik napravljen za ljude, ne za profit. + Preglednik napravljen za ljude, ne za profit. - Nastavite tamo gdje ste stali + Nastavite tamo gdje ste stali - Sinkronizirajte kartice i lozinke na svim uređajima za besprijekorno prebacivanje između uređaja. + Sinkronizirajte kartice i lozinke na svim uređajima za besprijekorno prebacivanje između uređaja. - Prijavi se + Prijavi se Sinkronizacija je uključena - Zaštita privatnosti kao standard + Zaštita privatnosti kao standard - %1$s automatski sprječava tvrtke da te potajno prate širom weba. + %1$s automatski sprječava tvrtke da te potajno prate širom weba. - Sadrži potpunu zaštitu od kolačića kako bi spriječio programe za praćenje u korištenju kolačića da vas prate između web stranica. + Sadrži potpunu zaštitu od kolačića kako bi spriječio programe za praćenje u korištenju kolačića da vas prate između web stranica. - Standardno (zadano) + Standardno (zadano) - Uravnotežena privatnost i performanse. Stranice se normalno učitavaju. + Uravnotežena privatnost i performanse. Stranice se normalno učitavaju. - Strogo + Strogo - Blokira više programa za praćenje pa se stranice učitavaju brže, ali neke funkcionalnosti stranica možda će se slomiti. + Blokira više programa za praćenje pa se stranice učitavaju brže, ali neke funkcionalnosti stranica možda će se slomiti. - Odaberi položaj alatne trake + Odaberi položaj alatne trake - Držite ga na dnu ili ga premjestite na vrh. + Držite ga na dnu ili ga premjestite na vrh. - Vi kontrolirate svoje podatke + Vi kontrolirate svoje podatke - Firefox vam daje kontrolu nad onim što dijelite na mreži i nad onim što dijelite s nama. + Firefox vam daje kontrolu nad onim što dijelite na mreži i nad onim što dijelite s nama. - Pročitaj naša pravila privatnosti + Pročitaj naša pravila privatnosti - Jeste li spremni otkriti nevjerojatan Internet? + Jeste li spremni otkriti nevjerojatan Internet? - Započni surfati + Započni surfati - Odaberi modus + Odaberi modus - Štedi bateriju i zaštiti oči pomoću tamne teme. + Štedi bateriju i zaštiti oči pomoću tamne teme. - Automatski + Automatski - Prilagođava se postavkama uređaja + Prilagođava se postavkama uređaja - Tamna tema + Tamna tema - Svijetla tema + Svijetla tema Kartice su poslane! @@ -1925,7 +1941,9 @@ URL API za prijedloge pretraživanja - Zamijenite upit s “%s”. Na primjer:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Zamijenite upit s “%s”. Na primjer:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Zamijenite upit s “%s”. Na primjer:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Spremi diff --git a/app/src/main/res/values-hsb/strings.xml b/app/src/main/res/values-hsb/strings.xml index b811e0b1b..0ad8c2106 100644 --- a/app/src/main/res/values-hsb/strings.xml +++ b/app/src/main/res/values-hsb/strings.xml @@ -638,6 +638,8 @@ Přidatki su nachwilu znjemóžnjene + + Jedyn přidatk abo wjacore přidatki su přestali fungować a destabilizuja waš system. %1$s je njewuspěšnje spytał, přidatki znowa startować.\n\nPřidatki so za waše aktualne posedźenje znowa njestartuja.\n\nHdyž přidatki wotstronjeće abo znjemóžnjeće, budźe so tutón problem snano rozrisać. Spytajće přidatki znowa startować diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 13dc49aef..7964033f2 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -640,6 +640,16 @@ A kiegészítő már telepítve van. + + + + + Egy vagy több kiegészítő működése leállt, ami instabillá teszi a rendszert. A %1$s sikertelenül próbálta újraindítani a kiegészítőt.\n\nA kiegészítők nem fognak újraindulni a jelenlegi munkamenet alatt.\n\nA kiegészítők eltávolítása vagy letiltása megoldhatja a problémát. + + Próbálja meg újraindítani a kiegészítőket + + Folytatás letiltott kiegészítőkkel + Fiók kezelése @@ -1366,14 +1376,14 @@ %d lap - Böngészési előzmények és oldaladatok + Böngészési előzmények és oldaladatok Böngészési előzmények %d cím - Sütik + Sütik Sütik és oldaladatok diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index a836813d7..1d2aea420 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -646,6 +646,14 @@ Additivo jam installate + + + Additivos temporarimente disactivate + + Tentar reinitiar additivos + + Continuar con additivos disactivate + Gerer le conto @@ -1399,14 +1407,14 @@ %d schedas - Datos de chronologia de navigation e de sitos + Datos de chronologia de navigation e de sitos Chronologia de navigation %d adresses - Cookies + Cookies Cookies e datos de sitos diff --git a/app/src/main/res/values-kk/strings.xml b/app/src/main/res/values-kk/strings.xml index 88adf162b..fd874e6a8 100644 --- a/app/src/main/res/values-kk/strings.xml +++ b/app/src/main/res/values-kk/strings.xml @@ -634,6 +634,17 @@ Қосымша орнатылған болып тұр + + + Қосымшалар уақытша сөндірілген + + + Бір немесе бірнеше қосымша жұмысын тоқтатып, жүйені тұрақсыз етті. %1$s қосымша(лар)ды қайта іске қосуды талабын сәтсіз жасады.\n\nҚосымшалар ағымдағы сеанс кезінде қайта іске қосылмайды.\n\nҚосымшаларды өшіру немесе сөндіру бұл мәселені шешуі мүмкін. + + Қосымшаларды қайта іске қосып көру + + Сөндірілген кеңейтулермен жалғастыру + Тіркелгіні басқару @@ -1351,14 +1362,14 @@ %d бет - Шолу тарихы және сайт деректері + Шолу тарихы және сайт деректері Шолу тарихы %d адрес - Cookies файлдары + Cookies файлдары Cookies файлдары және сайт деректері diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 06c603217..c56ccc409 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -644,6 +644,10 @@ Add-on is al geïnstalleerd + + + Add-ons zijn tijdelijk uitgeschakeld + Account beheren @@ -1368,14 +1372,14 @@ %d tabbladen - Navigatiegeschiedenis en websitegegevens + Navigatiegeschiedenis en websitegegevens Navigatiegeschiedenis %d adressen - Cookies + Cookies Cookies en websitegegevens diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index db6dd3656..499884c09 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -640,6 +640,17 @@ Extensão já instalada + + + As extensões estão temporariamente desativadas + + + Uma ou mais extensões pararam de funcionar, tornando o sistema instável. O %1$s tentou reiniciar as extensões sem sucesso.\n\nAs extensões não serão reiniciados durante a sessão atual.\n\nRemover ou desativar extensões pode resolver esse problema. + + Tentar reiniciar as extensões + + Continuar com extensões desativadas + Gerenciar conta @@ -1361,7 +1372,7 @@ %d abas - Histórico de navegação e dados de sites + Histórico de navegação e dados de sites Histórico de navegação - Cookies + Cookies Cookies e dados de sites diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index d2e290a7e..5fee15f92 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -638,6 +638,14 @@ Ҷузъи иловагӣ аллакай насб карда шуд + + + Ҷузъҳои иловагӣ муваққатан ғайрифаъол шудаанд + + Кӯшиш кунед, ки ҷузъҳои иловагиро аз нав оғоз намоед + + Идома додан бо ҷузъҳои иловагии ғайрифаъолшуда + Идоракунии ҳисобҳо @@ -1366,14 +1374,14 @@ %d варақа - Таърихи тамошокунӣ ва маълумоти сомонаҳо + Таърихи тамошокунӣ ва маълумоти сомонаҳо Таърихи тамошо %d нишонӣ - Кукиҳо + Кукиҳо Кукиҳо ва иттилооти сомона diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 4ef210829..e193f10e1 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -634,6 +634,16 @@ Tiện ích mở rộng đã được cài đặt trước đó + + + Tiện ích mở rộng tạm thời bị vô hiệu hóa + + Một hoặc nhiều tiện ích mở rộng ngừng hoạt động khiến hệ thống của bạn không ổn định. %1$s thất bại khi thử khởi động lại (các) tiện ích.\n\nTiện ích mở rộng sẽ không được khởi động lại trong phiên hiện tại của bạn.\n\nXóa hoặc vô hiệu hóa các tiện ích có thể khắc phục được sự cố này. + + Thử khởi động lại tiện ích + + Tiếp tục với tiện ích bị vô hiệu hóa + Quản lý tài khoản @@ -1351,14 +1361,14 @@ %d thẻ - Lịch sử duyệt web và dữ liệu trang web + Lịch sử duyệt web và dữ liệu trang web Lịch sử duyệt web %d địa chỉ - Cookie + Cookie Cookie và dữ liệu trang diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 5cd89b78b..6f8e89a2a 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -648,6 +648,17 @@ 附加组件已安装 + + + 附加组件已暂时被禁用 + + + 一个或多个附加组件已停止运行,影响系统稳定。%1$s 曾尝试重启附加组件,但未能起效。\n\n当前会话中将不会再重启附加组件。\n\n移除或禁用附加组件也许可以解决此问题。 + + 尝试重启附加组件 + + 禁用附加组件并继续 + 管理账户 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index dd94c9509..61e2c6402 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -644,6 +644,16 @@ 已經安裝的附加元件 + + + 已暫時停用附加元件 + + 有一套以上的附加元件停止運作,造成您的系統不穩定。%1$s 嘗試重新啟動這些附加元件卻失敗了。\n\n將不會再於目前的使用階段重新啟動附加元件。\n\n移除或停用造成問題的附加元件,可能可以解決此問題。 + + 嘗試重新啟動附加元件 + + 繼續使用,但停用附加元件 + 管理帳號 @@ -1391,14 +1401,14 @@ %d 個分頁 - 瀏覽紀錄與網站資料 + 瀏覽紀錄與網站資料 瀏覽紀錄 %d 筆網址 - Cookie + Cookie Cookie 與網站資料 From df945af9b2db3c15d94007e408dff7f399f7d43e Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Tue, 29 Aug 2023 10:18:25 +0300 Subject: [PATCH 012/209] Bug 1850473 - Provide pageCount through pagerState. --- .../java/org/mozilla/fenix/compose/PagerIndicator.kt | 12 ++++-------- .../java/org/mozilla/fenix/home/topsites/TopSites.kt | 9 ++++----- .../fenix/onboarding/view/JunoOnboardingScreen.kt | 9 +++++---- .../main/java/org/mozilla/fenix/tabstray/TabsTray.kt | 4 ++-- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/compose/PagerIndicator.kt b/app/src/main/java/org/mozilla/fenix/compose/PagerIndicator.kt index 301e8cb25..0493d69de 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/PagerIndicator.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/PagerIndicator.kt @@ -49,7 +49,6 @@ import org.mozilla.fenix.theme.FirefoxTheme @Composable fun PagerIndicator( pagerState: PagerState, - pageCount: Int, modifier: Modifier = Modifier, activeColor: Color = FirefoxTheme.colors.indicatorActive, inactiveColor: Color = FirefoxTheme.colors.indicatorInactive, @@ -68,7 +67,7 @@ fun PagerIndicator( { it == pagerState.currentPage } } - repeat(pageCount) { + repeat(pagerState.pageCount) { Box( modifier = Modifier .size(6.dp) @@ -104,8 +103,7 @@ private fun PagerIndicatorPreview() { Spacer(modifier = Modifier.height(8.dp)) PagerIndicator( - pagerState = rememberPagerState(1), - pageCount = 3, + pagerState = rememberPagerState(1, pageCount = { 3 }), activeColor = FirefoxTheme.colors.actionPrimary, inactiveColor = FirefoxTheme.colors.actionSecondary, modifier = Modifier.align(Alignment.CenterHorizontally), @@ -122,8 +120,7 @@ private fun PagerIndicatorPreview() { Spacer(modifier = Modifier.height(8.dp)) PagerIndicator( - pagerState = rememberPagerState(1), - pageCount = 3, + pagerState = rememberPagerState(1, pageCount = { 3 }), activeColor = FirefoxTheme.colors.actionPrimary, inactiveColor = FirefoxTheme.colors.actionSecondary, leaveTrail = true, @@ -141,8 +138,7 @@ private fun PagerIndicatorPreview() { Spacer(modifier = Modifier.height(8.dp)) PagerIndicator( - pagerState = rememberPagerState(1), - pageCount = 3, + pagerState = rememberPagerState(1, pageCount = { 3 }), modifier = Modifier.align(Alignment.CenterHorizontally), ) } diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt index 318dc1298..58f822b79 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt @@ -105,15 +105,15 @@ fun TopSites( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, ) { - val pagerState = rememberPagerState() - val pageCount = ceil((topSites.size.toDouble() / TOP_SITES_PER_PAGE)).toInt() + val pagerState = rememberPagerState( + pageCount = { ceil((topSites.size.toDouble() / TOP_SITES_PER_PAGE)).toInt() }, + ) Box( modifier = Modifier.fillMaxWidth(), contentAlignment = Alignment.Center, ) { HorizontalPager( - pageCount = pageCount, state = pagerState, ) { page -> Column { @@ -150,12 +150,11 @@ fun TopSites( } } - if (pageCount > 1) { + if (pagerState.pageCount > 1) { Spacer(modifier = Modifier.height(8.dp)) PagerIndicator( pagerState = pagerState, - pageCount = pageCount, modifier = Modifier.padding(horizontal = 16.dp), spacing = 4.dp, ) diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt index 3f97e6fb1..fa86aabd9 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt @@ -68,7 +68,7 @@ fun JunoOnboardingScreen( onImpression: (pageType: OnboardingPageUiData) -> Unit, ) { val coroutineScope = rememberCoroutineScope() - val pagerState = rememberPagerState() + val pagerState = rememberPagerState(pageCount = { pagesToDisplay.size }) val isSignedIn: State = components.backgroundServices.syncStore .observeAsComposableState { it.account != null } @@ -155,7 +155,6 @@ private fun JunoOnboardingContent( .navigationBarsPadding(), ) { HorizontalPager( - pageCount = pagesToDisplay.size, state = pagerState, key = { pagesToDisplay[it].type }, modifier = Modifier @@ -178,7 +177,6 @@ private fun JunoOnboardingContent( PagerIndicator( pagerState = pagerState, - pageCount = pagesToDisplay.size, activeColor = FirefoxTheme.colors.actionPrimary, inactiveColor = FirefoxTheme.colors.actionSecondary, leaveTrail = true, @@ -213,10 +211,13 @@ private class DisableForwardSwipeNestedScrollConnection( @LightDarkPreview @Composable private fun JunoOnboardingScreenPreview() { + val pageCount = defaultPreviewPages().size FirefoxTheme { JunoOnboardingContent( pagesToDisplay = defaultPreviewPages(), - pagerState = PagerState(0), + pagerState = rememberPagerState(initialPage = 0) { + pageCount + }, onMakeFirefoxDefaultClick = {}, onMakeFirefoxDefaultSkipClick = {}, onPrivacyPolicyClick = {}, diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt index f084a6a98..d2f3334d3 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt @@ -138,7 +138,8 @@ fun TabsTray( .observeAsComposableState { state -> state.mode }.value ?: TabsTrayState.Mode.Normal val selectedPage = tabsTrayStore .observeAsComposableState { state -> state.selectedPage }.value ?: Page.NormalTabs - val pagerState = rememberPagerState(initialPage = selectedPage.ordinal) + val pagerState = + rememberPagerState(initialPage = selectedPage.ordinal, pageCount = { Page.values().size }) val isInMultiSelectMode = multiselectMode is TabsTrayState.Mode.Select val shapeModifier = if (isInMultiSelectMode) { @@ -185,7 +186,6 @@ fun TabsTray( Box(modifier = Modifier.fillMaxSize()) { HorizontalPager( - pageCount = Page.values().size, modifier = Modifier.fillMaxSize(), state = pagerState, beyondBoundsPageCount = 2, From 87430ace118b01f54d9192a7e5b298746a29b7d7 Mon Sep 17 00:00:00 2001 From: William Durand Date: Wed, 30 Aug 2023 10:09:09 +0200 Subject: [PATCH 013/209] Bug 1850673 - Enable the `mozAddonManager` web API on Fenix Beta builds --- app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt b/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt index 4651c9d58..c4db53660 100644 --- a/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt @@ -61,7 +61,7 @@ object GeckoProvider { .consoleOutput(context.components.settings.enableGeckoLogs) .debugLogging(Config.channel.isDebug || context.components.settings.enableGeckoLogs) .aboutConfigEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) - .extensionsWebAPIEnabled(Config.channel.isNightlyOrDebug) + .extensionsWebAPIEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) .build() val settings = context.components.settings From ca7934715eab06c049d1d9c259b745aacf1a13af Mon Sep 17 00:00:00 2001 From: JohanLorenzo Date: Wed, 30 Aug 2023 16:02:56 +0000 Subject: [PATCH 014/209] Update Fenix initial_experiments.json based on the current first-run experiments in experimenter --- app/src/main/res/raw/initial_experiments.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/raw/initial_experiments.json b/app/src/main/res/raw/initial_experiments.json index bdeb826de..ba977a8f5 100644 --- a/app/src/main/res/raw/initial_experiments.json +++ b/app/src/main/res/raw/initial_experiments.json @@ -142,7 +142,7 @@ "channel": "release", "userFacingName": "Felt Privacy - Android", "userFacingDescription": "Copy focused on privacy", - "isEnrollmentPaused": false, + "isEnrollmentPaused": true, "isRollout": false, "bucketConfig": { "randomizationUnit": "nimbus_id", @@ -216,7 +216,7 @@ ], "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('116.!') >= 0) && (language in ['en'])))", "startDate": "2023-08-09", - "enrollmentEndDate": "2023-08-29", + "enrollmentEndDate": "2023-08-30", "endDate": null, "proposedDuration": 28, "proposedEnrollment": 14, From 26f92d8590af42f9ff749e69905bc243d7b2d985 Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 31 Aug 2023 00:03:13 +0000 Subject: [PATCH 015/209] Import translations from android-l10n --- app/src/main/res/values-fy-rNL/strings.xml | 14 +++- app/src/main/res/values-ia/strings.xml | 2 + app/src/main/res/values-nl/strings.xml | 7 ++ app/src/main/res/values-tg/strings.xml | 2 + app/src/main/res/values-tr/strings.xml | 12 +++- app/src/main/res/values-trs/strings.xml | 75 ++++++++++++++-------- app/src/main/res/values-uk/strings.xml | 14 +++- 7 files changed, 92 insertions(+), 34 deletions(-) diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml index b59b7fc29..ae65f30d6 100644 --- a/app/src/main/res/values-fy-rNL/strings.xml +++ b/app/src/main/res/values-fy-rNL/strings.xml @@ -638,6 +638,16 @@ Add-on is al ynstallearre + + + Add-ons binne tydlik útskeakele + + Ien of mear add-ons wurkje net mear, wêrtroch jo systeem ynstabyl wurdt. It is %1$s net slagge om de add-on(s) opnij te starten.\n\nAdd-ons sille net opnij starte wurden wylst jo aktuele sesje.\n\nIt fuortsmiten of útskeakeljen fan add-ons kin dit probleem oplosse. + + Probearje add-ons opnij te starten + + Trochgean mei útskeakele add-ons + Account beheare @@ -1354,14 +1364,14 @@ %d ljepblêden - Navigaasjeskiednis en websitegegevens + Navigaasjeskiednis en websitegegevens Navigaasjeskiednis %d adressen - Cookies + Cookies Cookies en websitegegevens diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index 1d2aea420..d33eb415b 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -649,6 +649,8 @@ Additivos temporarimente disactivate + + Un o plus additivos cessava de functionar, rendente tu systema instabile. %1$s sin successo probava a reinitiar le additivo(s).\n\nLe additivos non sera reinitiate durante tu actual session.\n\nRemover o disactivar additivos pote remediar iste problema. Tentar reinitiar additivos diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index c56ccc409..62fa1cfc0 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -648,6 +648,13 @@ Add-ons zijn tijdelijk uitgeschakeld + + Een of meer add-ons werken niet meer, waardoor uw systeem instabiel wordt. %1$s heeft tevergeefs geprobeerd de add-on(s) opnieuw te starten.\n\nAdd-ons zullen tijdens uw huidige sessie niet opnieuw worden gestart.\n\nHet verwijderen of uitschakelen van add-ons kan dit probleem oplossen. + + Probeer add-ons opnieuw te starten + + Doorgaan met uitgeschakelde add-ons + Account beheren diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index 5fee15f92..ff6c6719e 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -641,6 +641,8 @@ Ҷузъҳои иловагӣ муваққатан ғайрифаъол шудаанд + + Фаъолияти як ё якчанд ҷузъи иловагӣ қатъ карда шуд, ва ба ҳамин сабаб низоми шумо ноустувор кор мекунад. «%1$s» кӯшиш карда, ҷузъ(ҳо)и иловагиро аз нав оғоз карда натавонист.\n\nҶузъҳои иловагӣ ҳангоми фаъол будани ҷаласаи ҷорӣ аз нав оғоз карда намешаванд.\n\nЭҳтимол аст, ки агар шумо ҷузъҳои иловагиро тоза ё ғайрифаъол созед, ин мушкилӣ метавонад ҳал карда шавад. Кӯшиш кунед, ки ҷузъҳои иловагиро аз нав оғоз намоед diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 49fd624e1..1e1663a1b 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -638,6 +638,14 @@ Eklenti zaten yüklenmiş + + + Eklentiler geçici olarak devre dışı bırakıldı + + Eklentileri yeniden başlatmayı dene + + Eklentileri devre dışı bırakarak devam et + Hesabı yönet @@ -1361,14 +1369,14 @@ %d sekme - Gezinti geçmişi ve site verileri + Gezinti geçmişi ve site verileri Gezinti geçmişi %d adres - Çerezler + Çerezler Çerezler ve site verileri diff --git a/app/src/main/res/values-trs/strings.xml b/app/src/main/res/values-trs/strings.xml index 2657d840b..e8e8bc6b0 100644 --- a/app/src/main/res/values-trs/strings.xml +++ b/app/src/main/res/values-trs/strings.xml @@ -378,6 +378,8 @@ Nānà\'uì\' + + Nej sa rugûñu’ūnj nana’huî’ Dukuán direksion @@ -641,6 +643,17 @@ Ngà nanun sa nutâ’t riña aga’ nan + + + Narán akuan’ riña nej sa nutâ’t + + + Na’hue gī’hiaj sun hue’ê si āgâ’t, dadin’ giyichin’ si ‘hiaj sun dā’āj nej sa nutâ’t. %1$s ginûn huin dūnayi’ìj nej sa nutâ’t sanī nu gā’hue.\n\nSê sī gā’hue nāyi’ì nej sa nutâ’t ngà sesiûn nan.\n\nGūxūn asi dūyichin’ akuan’ nej sa nutâ’t nī gi’hiaj sun hue’ê man doj. + + Ginùn huin dūnayi’ìt nej sa nutâ’t + + Gūij ne’ ñāan nùnj si yichin’ riñan nej sa nutâ’t + Si Kuendâ administrador @@ -1376,12 +1389,16 @@ %d nej rakïj ñanj - Sa gini\'iājt ngà gaché nunt nī si datô nej sîtio + Sa gini\'iājt ngà gaché nunt nī si datô nej sîtio + + Nej sa gini\'iājt ngà gaché nunt %d nej direksiûn - Nej kôki + Nej kôki + + Nej kôki ni nej si datô sîtio Gānarán sēsiûn riña gà\'ì nej sîtio @@ -1439,62 +1456,62 @@ - Guruhuât gunumânt riña internêt ‘hiaj sun hue’ê doj nan + Guruhuât gunumânt riña internêt ‘hiaj sun hue’ê doj nan - Guendâ guìi gurugui’ sa nana’hui’ nan, sê guendâ gīrij san’ānj an huin man. + Guendâ guìi gurugui’ sa nana’hui’ nan, sê guendâ gīrij san’ānj an huin man. - Nakāj danè’ gudunâjt + Nakāj danè’ gudunâjt - Nāgi’hiaj nūguan’àn nej rakïj ñanj nī nej da’nga’ huì huā riña nej si āgâ’t da’ gā’hue nādunāt pāntâya. + Nāgi’hiaj nūguan’àn nej rakïj ñanj nī nej da’nga’ huì huā riña nej si āgâ’t da’ gā’hue nādunāt pāntâya. - Gāyi\'ì sēsiûn + Gāyi\'ì sēsiûn Ngà nanûn Sync - Sa ‘na’ niñā da’ dūgumîn sò’ da’ gāchē nun huìt + Sa ‘na’ niñā da’ dūgumîn sò’ da’ gāchē nun huìt - Rugûñu’ūnj %1$s narán man riña nej hue’ yīru’hue nikò’ sò’ riña web. + Rugûñu’ūnj %1$s narán man riña nej hue’ yīru’hue nikò’ sò’ riña web. - Nīka nej san arán riña nej kôki da’ nāran riña nej kôki gā’hue nāga’nāj sò’ riña nej sîtio. + Nīka nej san arán riña nej kôki da’ nāran riña nej kôki gā’hue nāga’nāj sò’ riña nej sîtio. - Sa huā chre\' (dàj huaj \'naj) + Sa huā chre\' (dàj huaj \'naj) - Nda hue\'ê chre huaj da\' gī\hiaj sunj nī dūguminj da\’ gāchē nun huìt. Nej pâjina nī nayi\'nïn riña man dàj rû\' \'hiaj yitïn. + Nda hue\'ê chre huaj da\' gī\hiaj sunj nī dūguminj da\’ gāchē nun huìt. Nej pâjina nī nayi\'nïn riña man dàj rû\' \'hiaj yitïn. - Sa nùkuaj doj + Sa nùkuaj doj - Naran riña nej sa naga’nāj a da’ nāyi’nï̄n hìo doj riña nej pâjina, sanī huā da’āj nej suun gā’hue gāhui a’nan’. + Naran riña nej sa naga’nāj a da’ nāyi’nï̄n hìo doj riña nej pâjina, sanī huā da’āj nej suun gā’hue gāhui a’nan’. - Nānà’huì’ riña ginun dukuá ‘na’ nej rasūun + Nānà’huì’ riña ginun dukuá ‘na’ nej rasūun - Dūnâj man ginùn man ne’ rīki asi dūguachîn man gān’an ne’ ràa. + Dūnâj man ginùn man ne’ rīki asi dūguachîn man gān’an ne’ ràa. - Sò’ ni’in dàj gī’hiaj sunt ngà nej si datôt + Sò’ ni’in dàj gī’hiaj sunt ngà nej si datôt - Narikî Firefox da’ gi’nï̄nj ra’ât nej sa duyingâ’t riña aché nunt nī nej sa duyingâ’t ngà nej ñûnj. + Narikî Firefox da’ gi’nï̄nj ra’ât nej sa duyingâ’t riña aché nunt nī nej sa duyingâ’t ngà nej ñûnj. - Gahiā sa atāj na\'ānj ñûnj guendâ sa huìi + Gahiā sa atāj na\'ānj ñûnj guendâ sa huìi - Ngà huā yūguît da’ gāyi’ìt gī’hiaj sunt ngà ‘ngō internet nākàa bè’ej. + Ngà huā yūguît da’ gāyi’ìt gī’hiaj sunt ngà ‘ngō internet nākàa bè’ej. - Gāyi\'ì gāchē nunt + Gāyi\'ì gāchē nunt - Nāguī si temât + Nāguī si temât - Dūgumî dòj ña\'an arâj sun si āgâ\'t ngà rune ñant si nāchrūnt gā rūmī\' riña si āgâ\'t. + Dūgumî dòj ña\'an arâj sun si āgâ\'t ngà rune ñant si nāchrūnt gā rūmī\' riña si āgâ\'t. - Sa nañû ma\'an + Sa nañû ma\'an - Nakāj dugui\'ij ngà daj hua riña si āgâ\'t + Nakāj dugui\'ij ngà daj hua riña si āgâ\'t - Temâ huā rūmin\'in + Temâ huā rūmin\'in - Temâ huā yigiïn + Temâ huā yigiïn Nej rakïj ñanj ngà gan\'ānj @@ -1954,7 +1971,9 @@ Si URL API atāj nùhuin sa gā’hue nāna’huì’t - Nādunā sa nana\’huî\’t ngà “%s”. Dàj rû\':\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Nādunā sa nana\’huî\’t ngà “%s”. Dàj rû\':\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Nādunā sa gachrûnt dan ngà “%s”. Dàj rû\':\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Nā\'nïnj sà\' diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c71caea66..fccce2064 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -644,6 +644,16 @@ Додаток вже встановлено + + + Додаток тимчасово вимкнено + + Один або кілька додатків припинили роботу, внаслідок цього ваша система працює нестабільно. %1$s безуспішно намагався перезапустити додатки.\n\nДодатки не буде перезапущено під час вашого поточного сеансу.\n\nЦю проблему може усунути вилучення або вимкнення додатків. + + Спробувати перезапустити додатки + + Продовжити з вимкненими додатками + Керувати обліковим записом @@ -1367,7 +1377,7 @@ Вкладок: %d - Історія перегляду і дані сайтів + Історія перегляду і дані сайтів Історія перегляду @@ -1375,7 +1385,7 @@ number of history items the user has --> Адрес: %d - Куки + Куки Куки і дані сайтів From ed303f68140ec2d1b68b0f7fa2306176340b2bb3 Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Mon, 7 Aug 2023 10:43:58 +0300 Subject: [PATCH 016/209] Bug 1810780 - Add reorder gesture to composed tabs tray --- .../fenix/compose/tabstray/TabGridItem.kt | 48 ++- .../fenix/compose/tabstray/TabListItem.kt | 48 ++- .../org/mozilla/fenix/tabstray/TabsTray.kt | 15 + .../fenix/tabstray/TabsTrayFragment.kt | 1 + .../fenix/tabstray/TabsTrayTabLayouts.kt | 164 ++++++++-- .../browser/compose/ComposeGridViewHolder.kt | 5 - .../browser/compose/ComposeListViewHolder.kt | 5 - .../browser/compose/ReorderableGrid.kt | 294 ++++++++++++++++++ .../browser/compose/ReorderableList.kt | 271 ++++++++++++++++ 9 files changed, 780 insertions(+), 71 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt create mode 100644 app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt diff --git a/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabGridItem.kt b/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabGridItem.kt index 6f7bc0fe2..c1105498f 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabGridItem.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabGridItem.kt @@ -9,6 +9,7 @@ import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.border +import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.isSystemInDarkTheme @@ -82,12 +83,13 @@ import org.mozilla.fenix.theme.FirefoxTheme * enabled. * @param multiSelectionSelected Indicates if the item should be render as multi selection selected * option. + * @param shouldClickListen Whether or not the item should stop listening to click events. * @param onCloseClick Callback to handle the click event of the close button. * @param onMediaClick Callback to handle when the media item is clicked. * @param onClick Callback to handle when item is clicked. - * @param onLongClick Callback to handle when item is long clicked. + * @param onLongClick Optional callback to handle when item is long clicked. */ -@OptIn(ExperimentalFoundationApi::class, ExperimentalMaterialApi::class) +@OptIn(ExperimentalMaterialApi::class, ExperimentalFoundationApi::class) @Composable @Suppress("MagicNumber", "LongParameterList", "LongMethod") fun TabGridItem( @@ -97,10 +99,11 @@ fun TabGridItem( isSelected: Boolean = false, multiSelectionEnabled: Boolean = false, multiSelectionSelected: Boolean = false, + shouldClickListen: Boolean = true, onCloseClick: (tab: TabSessionState) -> Unit, onMediaClick: (tab: TabSessionState) -> Unit, onClick: (tab: TabSessionState) -> Unit, - onLongClick: (tab: TabSessionState) -> Unit, + onLongClick: ((tab: TabSessionState) -> Unit)? = null, ) { val tabBorderModifier = if (isSelected) { Modifier.border( @@ -143,6 +146,26 @@ fun TabGridItem( .wrapContentSize() .testTag(TabsTrayTestTag.tabItemRoot), ) { + val clickableModifier = if (onLongClick == null) { + Modifier.clickable( + enabled = shouldClickListen, + interactionSource = interactionSource, + indication = rememberRipple( + color = clickableColor(), + ), + onClick = { onClick(tab) }, + ) + } else { + Modifier.combinedClickable( + enabled = shouldClickListen, + interactionSource = interactionSource, + indication = rememberRipple( + color = clickableColor(), + ), + onLongClick = { onLongClick(tab) }, + onClick = { onClick(tab) }, + ) + } Card( modifier = Modifier .fillMaxWidth() @@ -150,17 +173,7 @@ fun TabGridItem( .padding(4.dp) .then(tabBorderModifier) .padding(4.dp) - .combinedClickable( - interactionSource = interactionSource, - indication = rememberRipple( - color = when (isSystemInDarkTheme()) { - true -> PhotonColors.White - false -> PhotonColors.Black - }, - ), - onLongClick = { onLongClick(tab) }, - onClick = { onClick(tab) }, - ), + .then(clickableModifier), elevation = 0.dp, shape = RoundedCornerShape(dimensionResource(id = R.dimen.tab_tray_grid_item_border_radius)), border = BorderStroke(1.dp, FirefoxTheme.colors.borderPrimary), @@ -251,6 +264,12 @@ fun TabGridItem( } } +@Composable +private fun clickableColor() = when (isSystemInDarkTheme()) { + true -> PhotonColors.White + false -> PhotonColors.Black +} + /** * Thumbnail specific for the [TabGridItem], which can be selected. * @@ -320,7 +339,6 @@ private fun TabGridItemPreview() { onCloseClick = {}, onMediaClick = {}, onClick = {}, - onLongClick = {}, ) } } diff --git a/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt b/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt index 0bb1f1548..437c251e1 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.compose.tabstray import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background +import androidx.compose.foundation.clickable import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.isSystemInDarkTheme @@ -67,10 +68,11 @@ import org.mozilla.fenix.theme.FirefoxTheme * enabled. * @param multiSelectionSelected Indicates if the item should be render as multi selection selected * option. + * @param shouldClickListen Whether or not the item should stop listening to click events. * @param onCloseClick Callback to handle the click event of the close button. * @param onMediaClick Callback to handle when the media item is clicked. * @param onClick Callback to handle when item is clicked. - * @param onLongClick Callback to handle when item is long clicked. + * @param onLongClick Optional callback to handle when item is long clicked. */ @OptIn(ExperimentalFoundationApi::class, ExperimentalMaterialApi::class) @Composable @@ -82,10 +84,11 @@ fun TabListItem( isSelected: Boolean = false, multiSelectionEnabled: Boolean = false, multiSelectionSelected: Boolean = false, + shouldClickListen: Boolean = true, onCloseClick: (tab: TabSessionState) -> Unit, onMediaClick: (tab: TabSessionState) -> Unit, onClick: (tab: TabSessionState) -> Unit, - onLongClick: (tab: TabSessionState) -> Unit, + onLongClick: ((tab: TabSessionState) -> Unit)? = null, ) { val contentBackgroundColor = if (isSelected) { FirefoxTheme.colors.layerAccentNonOpaque @@ -107,6 +110,27 @@ fun TabListItem( // Used to propagate the ripple effect to the whole tab val interactionSource = remember { MutableInteractionSource() } + val clickableModifier = if (onLongClick == null) { + Modifier.clickable( + enabled = shouldClickListen, + interactionSource = interactionSource, + indication = rememberRipple( + color = clickableColor(), + ), + onClick = { onClick(tab) }, + ) + } else { + Modifier.combinedClickable( + enabled = shouldClickListen, + interactionSource = interactionSource, + indication = rememberRipple( + color = clickableColor(), + ), + onLongClick = { onLongClick(tab) }, + onClick = { onClick(tab) }, + ) + } + SwipeToDismiss( state = dismissState, enabled = !multiSelectionEnabled, @@ -119,17 +143,7 @@ fun TabListItem( .fillMaxWidth() .background(FirefoxTheme.colors.layer3) .background(contentBackgroundColor) - .combinedClickable( - interactionSource = interactionSource, - indication = rememberRipple( - color = when (isSystemInDarkTheme()) { - true -> PhotonColors.White - false -> PhotonColors.Black - }, - ), - onLongClick = { onLongClick(tab) }, - onClick = { onClick(tab) }, - ) + .then(clickableModifier) .padding(start = 16.dp, top = 8.dp, bottom = 8.dp) .testTag(TabsTrayTestTag.tabItemRoot), verticalAlignment = Alignment.CenterVertically, @@ -191,6 +205,12 @@ fun TabListItem( } } +@Composable +private fun clickableColor() = when (isSystemInDarkTheme()) { + true -> PhotonColors.White + false -> PhotonColors.Black +} + @Composable @Suppress("LongParameterList") private fun Thumbnail( @@ -263,7 +283,6 @@ private fun TabListItemPreview() { onCloseClick = {}, onMediaClick = {}, onClick = {}, - onLongClick = {}, ) } } @@ -279,7 +298,6 @@ private fun SelectedTabListItemPreview() { onCloseClick = {}, onMediaClick = {}, onClick = {}, - onLongClick = {}, multiSelectionEnabled = true, multiSelectionSelected = true, ) diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt index d2f3334d3..64e7c9365 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt @@ -94,7 +94,9 @@ import mozilla.components.browser.storage.sync.Tab as SyncTab * @param onTabAutoCloseBannerViewOptionsClick Invoked when the user clicks to view the auto close options. * @param onTabAutoCloseBannerDismiss Invoked when the user clicks to dismiss the auto close banner. * @param onTabAutoCloseBannerShown Invoked when the auto close banner has been shown to the user. + * @param onMove Invoked after the drag and drop gesture completed. Swaps positions of two tabs. */ +@OptIn(ExperimentalFoundationApi::class) @Suppress("LongMethod", "LongParameterList", "ComplexMethod") @Composable fun TabsTray( @@ -133,6 +135,7 @@ fun TabsTray( onTabAutoCloseBannerViewOptionsClick: () -> Unit, onTabAutoCloseBannerDismiss: () -> Unit, onTabAutoCloseBannerShown: () -> Unit, + onMove: (String, String?, Boolean) -> Unit, ) { val multiselectMode = tabsTrayStore .observeAsComposableState { state -> state.mode }.value ?: TabsTrayState.Mode.Normal @@ -211,6 +214,7 @@ fun TabsTray( onEnableInactiveTabAutoCloseClick = onEnableInactiveTabAutoCloseClick, onInactiveTabClick = onInactiveTabClick, onInactiveTabClose = onInactiveTabClose, + onMove = onMove, ) } @@ -224,6 +228,7 @@ fun TabsTray( onTabMediaClick = onTabMediaClick, onTabClick = onTabClick, onTabLongClick = onTabLongClick, + onMove = onMove, ) } @@ -259,6 +264,7 @@ private fun NormalTabsPage( onEnableInactiveTabAutoCloseClick: () -> Unit, onInactiveTabClick: (TabSessionState) -> Unit, onInactiveTabClose: (TabSessionState) -> Unit, + onMove: (String, String?, Boolean) -> Unit, ) { val inactiveTabsExpanded = appStore .observeAsComposableState { state -> state.inactiveTabsExpanded }.value ?: false @@ -316,6 +322,8 @@ private fun NormalTabsPage( onTabClick = onTabClick, onTabLongClick = onTabLongClick, header = optionalInactiveTabsHeader, + onTabDragStart = { tabsTrayStore.dispatch(TabsTrayAction.ExitSelectMode) }, + onMove = onMove, ) } else { EmptyTabPage(isPrivate = false) @@ -333,6 +341,7 @@ private fun PrivateTabsPage( onTabMediaClick: (TabSessionState) -> Unit, onTabClick: (TabSessionState) -> Unit, onTabLongClick: (TabSessionState) -> Unit, + onMove: (String, String?, Boolean) -> Unit, ) { val selectedTabId = browserStore .observeAsComposableState { state -> state.selectedTabId }.value @@ -353,6 +362,11 @@ private fun PrivateTabsPage( onTabMediaClick = onTabMediaClick, onTabClick = onTabClick, onTabLongClick = onTabLongClick, + onTabDragStart = { + // Because we don't currently support selection mode for private tabs, + // there's no need to exit selection mode when dragging tabs. + }, + onMove = onMove, ) } else { EmptyTabPage(isPrivate = true) @@ -577,6 +591,7 @@ private fun TabsTrayPreviewRoot( onTabAutoCloseBannerViewOptionsClick = {}, onTabAutoCloseBannerDismiss = {}, onTabAutoCloseBannerShown = {}, + onMove = { _, _, _ -> }, ) } } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt index b21a2f462..10445b802 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayFragment.kt @@ -304,6 +304,7 @@ class TabsTrayFragment : AppCompatDialogFragment() { onTabAutoCloseBannerShown = { requireContext().settings().lastCfrShownTimeInMillis = System.currentTimeMillis() }, + onMove = tabsTrayInteractor::onTabsMove, ) } } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt index 8276b8b4f..76211adf3 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.tabstray +import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Spacer @@ -18,7 +19,11 @@ import androidx.compose.foundation.lazy.grid.rememberLazyGridState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.runtime.toMutableStateList import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext @@ -31,10 +36,21 @@ import org.mozilla.fenix.R import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.tabstray.TabGridItem import org.mozilla.fenix.compose.tabstray.TabListItem +import org.mozilla.fenix.tabstray.browser.compose.DragItemContainer +import org.mozilla.fenix.tabstray.browser.compose.createGridReorderState +import org.mozilla.fenix.tabstray.browser.compose.createListReorderState +import org.mozilla.fenix.tabstray.browser.compose.detectGridPressAndDragGestures +import org.mozilla.fenix.tabstray.browser.compose.detectVerticalPressAndDrag import org.mozilla.fenix.tabstray.ext.MIN_COLUMN_WIDTH_DP import org.mozilla.fenix.theme.FirefoxTheme import kotlin.math.max +// Key for the span item at the bottom of the tray, used to make the item not reorderable. +const val SPAN_ITEM_KEY = "span" + +// Key for the header item at the top of the tray, used to make the item not reorderable. +const val HEADER_ITEM_KEY = "header" + /** * Top-level UI for displaying a list of tabs. * @@ -49,6 +65,8 @@ import kotlin.math.max * @param onTabMediaClick Invoked when the user interacts with a tab's media controls. * @param onTabClick Invoked when the user clicks on a tab. * @param onTabLongClick Invoked when the user long clicks a tab. + * @param onMove Invoked when the user moves a tab. + * @param onTabDragStart Invoked when starting to drag a tab. * @param header Optional layout to display before [tabs]. */ @Suppress("LongParameterList") @@ -64,6 +82,8 @@ fun TabLayout( onTabMediaClick: (TabSessionState) -> Unit, onTabClick: (TabSessionState) -> Unit, onTabLongClick: (TabSessionState) -> Unit, + onMove: (String, String?, Boolean) -> Unit, + onTabDragStart: () -> Unit, header: (@Composable () -> Unit)? = null, ) { var selectedTabIndex = 0 @@ -87,6 +107,8 @@ fun TabLayout( onTabMediaClick = onTabMediaClick, onTabClick = onTabClick, onTabLongClick = onTabLongClick, + onMove = onMove, + onTabDragStart = onTabDragStart, header = header, ) } else { @@ -101,11 +123,14 @@ fun TabLayout( onTabMediaClick = onTabMediaClick, onTabClick = onTabClick, onTabLongClick = onTabLongClick, + onMove = onMove, + onTabDragStart = onTabDragStart, header = header, ) } } +@OptIn(ExperimentalFoundationApi::class) @Suppress("LongParameterList") @Composable private fun TabGrid( @@ -119,6 +144,8 @@ private fun TabGrid( onTabMediaClick: (TabSessionState) -> Unit, onTabClick: (TabSessionState) -> Unit, onTabLongClick: (TabSessionState) -> Unit, + onMove: (String, String?, Boolean) -> Unit, + onTabDragStart: () -> Unit, header: (@Composable () -> Unit)? = null, ) { val state = rememberLazyGridState(initialFirstVisibleItemIndex = selectedTabIndex) @@ -129,13 +156,43 @@ private fun TabGrid( ) val isInMultiSelectMode = selectionMode is TabsTrayState.Mode.Select + val reorderState = createGridReorderState( + gridState = state, + onMove = { initialTab, newTab -> + onMove( + (initialTab.key as String), + (newTab.key as String), + initialTab.index < newTab.index, + ) + }, + onLongPress = { itemInfo -> + tabs.firstOrNull { tab -> tab.id == itemInfo.key }?.let { tab -> + onTabLongClick(tab) + } + }, + onExitLongPress = onTabDragStart, + ignoredItems = listOf(HEADER_ITEM_KEY, SPAN_ITEM_KEY), + ) + var shouldLongPress by remember { mutableStateOf(!isInMultiSelectMode) } + LaunchedEffect(selectionMode, reorderState.draggingItemKey) { + if (reorderState.draggingItemKey == null) { + shouldLongPress = selectionMode == TabsTrayState.Mode.Normal + } + } + LazyVerticalGrid( columns = GridCells.Adaptive(minSize = MIN_COLUMN_WIDTH_DP.dp), - modifier = modifier.fillMaxSize(), + modifier = modifier + .fillMaxSize() + .detectGridPressAndDragGestures( + gridState = state, + reorderState = reorderState, + shouldLongPressToDrag = shouldLongPress, + ), state = state, ) { header?.let { - item(span = { GridItemSpan(maxLineSpan) }) { + item(key = HEADER_ITEM_KEY, span = { GridItemSpan(maxLineSpan) }) { header() } } @@ -144,26 +201,29 @@ private fun TabGrid( items = tabs, key = { tab -> tab.id }, ) { tab -> - TabGridItem( - tab = tab, - thumbnailSize = tabThumbnailSize, - storage = storage, - isSelected = tab.id == selectedTabId, - multiSelectionEnabled = isInMultiSelectMode, - multiSelectionSelected = selectionMode.selectedTabs.contains(tab), - onCloseClick = onTabClose, - onMediaClick = onTabMediaClick, - onClick = onTabClick, - onLongClick = onTabLongClick, - ) + DragItemContainer(state = reorderState, key = tab.id) { + TabGridItem( + tab = tab, + thumbnailSize = tabThumbnailSize, + storage = storage, + isSelected = tab.id == selectedTabId, + multiSelectionEnabled = isInMultiSelectMode, + multiSelectionSelected = selectionMode.selectedTabs.contains(tab), + shouldClickListen = reorderState.draggingItemKey != tab.id, + onCloseClick = onTabClose, + onMediaClick = onTabMediaClick, + onClick = onTabClick, + ) + } } - item(span = { GridItemSpan(maxLineSpan) }) { + item(key = SPAN_ITEM_KEY, span = { GridItemSpan(maxLineSpan) }) { Spacer(modifier = Modifier.height(tabListBottomPadding)) } } } +@OptIn(ExperimentalFoundationApi::class) @Suppress("LongParameterList") @Composable private fun TabList( @@ -177,7 +237,9 @@ private fun TabList( onTabMediaClick: (TabSessionState) -> Unit, onTabClick: (TabSessionState) -> Unit, onTabLongClick: (TabSessionState) -> Unit, + onMove: (String, String?, Boolean) -> Unit, header: (@Composable () -> Unit)? = null, + onTabDragStart: () -> Unit = {}, ) { val state = rememberLazyListState(initialFirstVisibleItemIndex = selectedTabIndex) val tabListBottomPadding = dimensionResource(id = R.dimen.tab_tray_list_bottom_padding) @@ -186,13 +248,42 @@ private fun TabList( LocalContext.current.resources.getDimensionPixelSize(R.dimen.tab_tray_list_item_thumbnail_width), ) val isInMultiSelectMode = selectionMode is TabsTrayState.Mode.Select + val reorderState = createListReorderState( + listState = state, + onMove = { initialTab, newTab -> + onMove( + (initialTab.key as String), + (newTab.key as String), + initialTab.index < newTab.index, + ) + }, + onLongPress = { + tabs.firstOrNull { tab -> tab.id == it.key }?.let { tab -> + onTabLongClick(tab) + } + }, + onExitLongPress = onTabDragStart, + ignoredItems = listOf(HEADER_ITEM_KEY, SPAN_ITEM_KEY), + ) + var shouldLongPress by remember { mutableStateOf(!isInMultiSelectMode) } + LaunchedEffect(selectionMode, reorderState.draggingItemKey) { + if (reorderState.draggingItemKey == null) { + shouldLongPress = selectionMode == TabsTrayState.Mode.Normal + } + } LazyColumn( - modifier = modifier.fillMaxSize(), + modifier = modifier + .fillMaxSize() + .detectVerticalPressAndDrag( + listState = state, + reorderState = reorderState, + shouldLongPressToDrag = shouldLongPress, + ), state = state, ) { header?.let { - item { + item(key = HEADER_ITEM_KEY) { header() } } @@ -201,21 +292,23 @@ private fun TabList( items = tabs, key = { tab -> tab.id }, ) { tab -> - TabListItem( - tab = tab, - thumbnailSize = tabThumbnailSize, - storage = storage, - isSelected = tab.id == selectedTabId, - multiSelectionEnabled = isInMultiSelectMode, - multiSelectionSelected = selectionMode.selectedTabs.contains(tab), - onCloseClick = onTabClose, - onMediaClick = onTabMediaClick, - onClick = onTabClick, - onLongClick = onTabLongClick, - ) + DragItemContainer(state = reorderState, key = tab.id) { + TabListItem( + tab = tab, + thumbnailSize = tabThumbnailSize, + storage = storage, + isSelected = tab.id == selectedTabId, + multiSelectionEnabled = isInMultiSelectMode, + multiSelectionSelected = selectionMode.selectedTabs.contains(tab), + shouldClickListen = reorderState.draggingItemKey != tab.id, + onCloseClick = onTabClose, + onMediaClick = onTabMediaClick, + onClick = onTabClick, + ) + } } - item { + item(key = SPAN_ITEM_KEY) { Spacer(modifier = Modifier.height(tabListBottomPadding)) } } @@ -242,6 +335,8 @@ private fun TabListPreview() { onTabMediaClick = {}, onTabClick = {}, onTabLongClick = {}, + onTabDragStart = {}, + onMove = { _, _, _ -> }, ) } } @@ -268,6 +363,8 @@ private fun TabGridPreview() { onTabMediaClick = {}, onTabClick = {}, onTabLongClick = {}, + onTabDragStart = {}, + onMove = { _, _, _ -> }, ) } } @@ -302,12 +399,17 @@ private fun TabGridMultiSelectPreview() { } }, onTabLongClick = {}, + onTabDragStart = {}, + onMove = { _, _, _ -> }, ) } } } -private fun generateFakeTabsList(tabCount: Int = 10, isPrivate: Boolean = false): List = +private fun generateFakeTabsList( + tabCount: Int = 10, + isPrivate: Boolean = false, +): List = List(tabCount) { index -> TabSessionState( id = "tabId$index-$isPrivate", diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeGridViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeGridViewHolder.kt index 9592dfd59..49d28f597 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeGridViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeGridViewHolder.kt @@ -69,10 +69,6 @@ class ComposeGridViewHolder( interactor.onTabSelected(tab, featureName) } - private fun onLongClick(tab: TabSessionState) { - interactor.onTabLongClicked(tab) - } - @Composable override fun Content(tab: TabSessionState) { val multiSelectionEnabled = store.observeAsComposableState { state -> @@ -91,7 +87,6 @@ class ComposeGridViewHolder( onCloseClick = ::onCloseClicked, onMediaClick = interactor::onMediaClicked, onClick = ::onClick, - onLongClick = ::onLongClick, ) } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeListViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeListViewHolder.kt index 40c42ffb3..acfe9e1b3 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeListViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ComposeListViewHolder.kt @@ -72,10 +72,6 @@ class ComposeListViewHolder( interactor.onTabSelected(tab, featureName) } - private fun onLongClick(tab: TabSessionState) { - interactor.onTabLongClicked(tab) - } - @Composable override fun Content(tab: TabSessionState) { val multiSelectionEnabled = tabsTrayStore.observeAsComposableState { @@ -95,7 +91,6 @@ class ComposeListViewHolder( onCloseClick = ::onCloseClicked, onMediaClick = interactor::onMediaClicked, onClick = ::onClick, - onLongClick = ::onLongClick, ) } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt new file mode 100644 index 000000000..5c5ce2cf8 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt @@ -0,0 +1,294 @@ +/* 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.tabstray.browser.compose + +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.VectorConverter +import androidx.compose.animation.core.VisibilityThreshold +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.gestures.detectDragGestures +import androidx.compose.foundation.gestures.detectDragGesturesAfterLongPress +import androidx.compose.foundation.gestures.scrollBy +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.lazy.grid.LazyGridItemInfo +import androidx.compose.foundation.lazy.grid.LazyGridItemScope +import androidx.compose.foundation.lazy.grid.LazyGridState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.hapticfeedback.HapticFeedback +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.platform.LocalViewConfiguration +import androidx.compose.ui.unit.IntOffset +import androidx.compose.ui.unit.toOffset +import androidx.compose.ui.unit.toSize +import androidx.compose.ui.zIndex +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch + +/** + * Remember the reordering state for reordering grid items. + * + * @param gridState State of the grid. + * @param onMove Callback to be invoked when switching between two items. + * @param ignoredItems List of keys for non-draggable items. + * @param onLongPress Optional callback to be invoked when long pressing an item. + * @param onExitLongPress Optional callback to be invoked when the item is dragged after long press. + */ +@Composable +fun createGridReorderState( + gridState: LazyGridState, + onMove: (LazyGridItemInfo, LazyGridItemInfo) -> Unit, + ignoredItems: List, + onLongPress: (LazyGridItemInfo) -> Unit = {}, + onExitLongPress: () -> Unit = {}, +): GridReorderState { + val scope = rememberCoroutineScope() + val touchSlop = LocalViewConfiguration.current.touchSlop + val hapticFeedback = LocalHapticFeedback.current + val state = remember(gridState) { + GridReorderState( + gridState = gridState, + onMove = onMove, + scope = scope, + touchSlop = touchSlop, + ignoredItems = ignoredItems, + onLongPress = onLongPress, + hapticFeedback = hapticFeedback, + onExitLongPress = onExitLongPress, + ) + } + return state +} + +/** + * Class containing details about the current state of dragging in grid. + * + * @param gridState State of the grid. + * @param scope [CoroutineScope] used for scrolling to the target item. + * @param hapticFeedback [HapticFeedback] used for performing haptic feedback on item long press. + * @param touchSlop Distance in pixels the user can wander until we consider they started dragging. + * @param onMove Callback to be invoked when switching between two items. + * @param onLongPress Optional callback to be invoked when long pressing an item. + * @param onExitLongPress Optional callback to be invoked when the item is dragged after long press. + * @param ignoredItems List of keys for non-draggable items. + */ +class GridReorderState internal constructor( + private val gridState: LazyGridState, + private val scope: CoroutineScope, + private val hapticFeedback: HapticFeedback, + private val touchSlop: Float, + private val onMove: (LazyGridItemInfo, LazyGridItemInfo) -> Unit, + private val onLongPress: (LazyGridItemInfo) -> Unit = {}, + private val onExitLongPress: () -> Unit = {}, + private val ignoredItems: List = emptyList(), +) { + internal var draggingItemKey by mutableStateOf(null) + private set + + private var draggingItemCumulatedOffset by mutableStateOf(Offset.Zero) + private var draggingItemInitialOffset by mutableStateOf(Offset.Zero) + internal var moved by mutableStateOf(false) + internal val draggingItemOffset: Offset + get() = draggingItemLayoutInfo?.let { item -> + draggingItemInitialOffset + draggingItemCumulatedOffset - item.offset.toOffset() + } ?: Offset.Zero + + private val draggingItemLayoutInfo: LazyGridItemInfo? + get() = gridState.layoutInfo.visibleItemsInfo.firstOrNull { it.key == draggingItemKey } + + internal var previousKeyOfDraggedItem by mutableStateOf(null) + private set + internal var previousItemOffset = Animatable(Offset.Zero, Offset.VectorConverter) + private set + + internal fun onTouchSlopPassed(offset: Offset, shouldLongPress: Boolean) { + gridState.findItem(offset)?.also { + draggingItemKey = it.key + if (shouldLongPress) { + hapticFeedback.performHapticFeedback(HapticFeedbackType.LongPress) + onLongPress(it) + } + draggingItemInitialOffset = it.offset.toOffset() + moved = !shouldLongPress + } + } + + internal fun onDragInterrupted() { + if (draggingItemKey != null) { + previousKeyOfDraggedItem = draggingItemKey + val startOffset = draggingItemOffset + scope.launch { + previousItemOffset.snapTo(startOffset) + previousItemOffset.animateTo( + Offset.Zero, + spring( + stiffness = Spring.StiffnessMediumLow, + visibilityThreshold = Offset.VisibilityThreshold, + ), + ) + previousKeyOfDraggedItem = null + } + } + draggingItemCumulatedOffset = Offset.Zero + draggingItemKey = null + draggingItemInitialOffset = Offset.Zero + } + + internal fun onDrag(offset: Offset) { + draggingItemCumulatedOffset += offset + + if (draggingItemLayoutInfo == null) { + moved = false + } + val draggingItem = draggingItemLayoutInfo ?: return + + if (!moved && draggingItemCumulatedOffset.getDistance() > touchSlop) { + onExitLongPress() + } + val startOffset = draggingItem.offset.toOffset() + draggingItemOffset + val endOffset = Offset( + startOffset.x + draggingItem.size.toSize().width, + startOffset.y + draggingItem.size.toSize().height, + ) + val middleOffset = startOffset + (endOffset - startOffset) / 2f + + val targetItem = gridState.layoutInfo.visibleItemsInfo.find { item -> + middleOffset.x.toInt() in item.offset.x..item.endOffset.x && + middleOffset.y.toInt() in item.offset.y..item.endOffset.y && + draggingItemKey != item.key + } + if (targetItem != null && targetItem.key !in ignoredItems) { + if (draggingItem.index == gridState.firstVisibleItemIndex) { + scope.launch { + gridState.scrollBy(-draggingItem.size.height.toFloat()) + } + } + onMove.invoke(draggingItem, targetItem) + } else { + val overscroll = when { + draggingItemCumulatedOffset.y > 0 -> + (endOffset.y - gridState.layoutInfo.viewportEndOffset).coerceAtLeast(0f) + + draggingItemCumulatedOffset.y < 0 -> + (startOffset.y - gridState.layoutInfo.viewportStartOffset).coerceAtMost(0f) + + else -> 0f + } + if (overscroll != 0f) { + scope.launch { + gridState.scrollBy(overscroll) + } + } + } + } +} + +/** + * Container for draggable grid item. + * + * @param state State of the lazy grid. + * @param key Key of the item to be displayed. + * @param content Content of the item to be displayed. + */ +@ExperimentalFoundationApi +@Composable +fun LazyGridItemScope.DragItemContainer( + state: GridReorderState, + key: Any, + content: @Composable () -> Unit, +) { + val modifier = when (key) { + state.draggingItemKey -> { + Modifier + .zIndex(1f) + .graphicsLayer { + translationX = state.draggingItemOffset.x + translationY = state.draggingItemOffset.y + } + } + + state.previousKeyOfDraggedItem -> { + Modifier + .zIndex(1f) + .graphicsLayer { + translationX = state.previousItemOffset.value.x + translationY = state.previousItemOffset.value.y + } + } + + else -> { + Modifier + .zIndex(0f) + .animateItemPlacement(tween()) + } + } + + Box(modifier = modifier, propagateMinConstraints = true) { + content() + } +} + +/** + * Calculate the offset of an item taking its width and height into account. + */ +private val LazyGridItemInfo.endOffset: IntOffset + get() = IntOffset(offset.x + size.width, offset.y + size.height) + +/** + * Find item based on position on screen. + * + * @param offset Position on screen used to find the item. + */ +private fun LazyGridState.findItem(offset: Offset) = + layoutInfo.visibleItemsInfo.firstOrNull { item -> + offset.x.toInt() in item.offset.x..item.endOffset.x && offset.y.toInt() in item.offset.y..item.endOffset.y + } + +/** + * Detects press, long press and drag gestures. + * + * @param gridState State of the grid. + * @param reorderState Grid reordering state used for dragging callbacks. + * @param shouldLongPressToDrag Whether or not an item should be long pressed to start the dragging gesture. + */ +fun Modifier.detectGridPressAndDragGestures( + gridState: LazyGridState, + reorderState: GridReorderState, + shouldLongPressToDrag: Boolean, +): Modifier = pointerInput(gridState, shouldLongPressToDrag) { + if (shouldLongPressToDrag) { + detectDragGesturesAfterLongPress( + onDragStart = { offset -> reorderState.onTouchSlopPassed(offset, true) }, + onDrag = { change, dragAmount -> + change.consume() + reorderState.onDrag(dragAmount) + }, + onDragEnd = reorderState::onDragInterrupted, + onDragCancel = reorderState::onDragInterrupted, + ) + } else { + detectDragGestures( + onDragStart = { offset -> reorderState.onTouchSlopPassed(offset, false) }, + onDrag = { change, dragAmount -> + change.consume() + reorderState.onDrag(dragAmount) + }, + onDragEnd = reorderState::onDragInterrupted, + onDragCancel = reorderState::onDragInterrupted, + ) + } +} diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt new file mode 100644 index 000000000..da2c0b857 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt @@ -0,0 +1,271 @@ +/* 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.tabstray.browser.compose + +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.Spring +import androidx.compose.animation.core.spring +import androidx.compose.animation.core.tween +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.gestures.detectDragGesturesAfterLongPress +import androidx.compose.foundation.gestures.scrollBy +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.lazy.LazyItemScope +import androidx.compose.foundation.lazy.LazyListItemInfo +import androidx.compose.foundation.lazy.LazyListState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.hapticfeedback.HapticFeedback +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.platform.LocalHapticFeedback +import androidx.compose.ui.platform.LocalViewConfiguration +import androidx.compose.ui.zIndex +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch + +/** + * Remember the reordering state for reordering list items. + * + * @param listState State of the list. + * @param onMove Callback to be invoked when switching between two items. + * @param ignoredItems List of keys for non-draggable items. + * @param onLongPress Callback to be invoked when long pressing an item. + * @param onExitLongPress Callback to be invoked when the item is dragged after long press. + */ +@Composable +fun createListReorderState( + listState: LazyListState, + onMove: (LazyListItemInfo, LazyListItemInfo) -> Unit, + ignoredItems: List, + onLongPress: (LazyListItemInfo) -> Unit = {}, + onExitLongPress: () -> Unit = {}, +): ListReorderState { + val scope = rememberCoroutineScope() + val touchSlop = LocalViewConfiguration.current.touchSlop + val hapticFeedback = LocalHapticFeedback.current + val state = remember(listState) { + ListReorderState( + listState = listState, + onMove = onMove, + scope = scope, + touchSlop = touchSlop, + hapticFeedback = hapticFeedback, + ignoredItems = ignoredItems, + onLongPress = onLongPress, + onExitLongPress = onExitLongPress, + ) + } + return state +} + +/** + * Class containing details about the current state of dragging in list. + * + * @param listState State of the list. + * @param scope [CoroutineScope] used for scrolling to the target item. + * @param hapticFeedback [HapticFeedback] used for performing haptic feedback on item long press. + * @param touchSlop Distance in pixels the user can wander until we consider they started dragging. + * @param onMove Callback to be invoked when switching between two items. + * @param onLongPress Optional callback to be invoked when long pressing an item. + * @param onExitLongPress Optional callback to be invoked when the item is dragged after long press. + * @param ignoredItems List of keys for non-draggable items. + */ +@Suppress("LongParameterList") +class ListReorderState internal constructor( + private val listState: LazyListState, + private val scope: CoroutineScope, + private val hapticFeedback: HapticFeedback, + private val touchSlop: Float, + private val onMove: (LazyListItemInfo, LazyListItemInfo) -> Unit, + private val ignoredItems: List, + private val onLongPress: (LazyListItemInfo) -> Unit, + private val onExitLongPress: () -> Unit, +) { + var draggingItemKey by mutableStateOf(null) + private set + + private var draggingItemCumulatedOffset by mutableStateOf(0f) + private var draggingItemInitialOffset by mutableStateOf(0f) + internal var moved by mutableStateOf(false) + internal val draggingItemOffset: Float + get() = draggingItemLayoutInfo?.let { item -> + draggingItemInitialOffset + draggingItemCumulatedOffset - item.offset + } ?: 0f + + private val draggingItemLayoutInfo: LazyListItemInfo? + get() = listState.layoutInfo.visibleItemsInfo.firstOrNull { it.key == draggingItemKey } + + internal var previousKeyOfDraggedItem by mutableStateOf(null) + private set + internal var previousItemOffset = Animatable(0f) + private set + + internal fun onTouchSlopPassed(offset: Float, shouldLongPress: Boolean) { + listState.findItem(offset)?.also { + draggingItemKey = it.key + if (shouldLongPress) { + hapticFeedback.performHapticFeedback(HapticFeedbackType.LongPress) + onLongPress(it) + } + draggingItemInitialOffset = it.offset.toFloat() + moved = !shouldLongPress + } + } + + internal fun onDragInterrupted() { + if (draggingItemKey != null) { + previousKeyOfDraggedItem = draggingItemKey + val startOffset = draggingItemOffset + scope.launch { + previousItemOffset.snapTo(startOffset) + previousItemOffset.animateTo( + 0f, + spring( + stiffness = Spring.StiffnessMediumLow, + visibilityThreshold = 1f, + ), + ) + previousKeyOfDraggedItem = null + } + } + draggingItemCumulatedOffset = 0f + draggingItemKey = null + draggingItemInitialOffset = 0f + } + + internal fun onDrag(offset: Float) { + draggingItemCumulatedOffset += offset + + if (draggingItemLayoutInfo == null) { + moved = false + } + val draggingItem = draggingItemLayoutInfo ?: return + + if (!moved && draggingItemCumulatedOffset > touchSlop) { + onExitLongPress() + } + val startOffset = draggingItem.offset + draggingItemOffset + val endOffset = startOffset + draggingItem.size + val middleOffset = startOffset + (endOffset - startOffset) / 2f + + val targetItem = listState.layoutInfo.visibleItemsInfo.find { item -> + middleOffset.toInt() in item.offset..item.endOffset && draggingItemKey != item.key + } + + if (targetItem != null && targetItem.key !in ignoredItems) { + if (draggingItem.index == listState.firstVisibleItemIndex) { + scope.launch { + listState.scrollBy(-draggingItem.size.toFloat()) + } + } + onMove.invoke(draggingItem, targetItem) + } else { + val overscroll = when { + draggingItemCumulatedOffset > 0 -> + (endOffset - listState.layoutInfo.viewportEndOffset).coerceAtLeast(0f) + + draggingItemCumulatedOffset < 0 -> + (startOffset - listState.layoutInfo.viewportStartOffset).coerceAtMost(0f) + + else -> 0f + } + if (overscroll != 0f) { + scope.launch { + listState.scrollBy(overscroll) + } + } + } + } +} + +/** + * Container for draggable list item. + * + * @param state List reordering state. + * @param key Key of the item to be displayed. + * @param content Content of the item to be displayed. + */ +@ExperimentalFoundationApi +@Composable +fun LazyItemScope.DragItemContainer( + state: ListReorderState, + key: Any, + content: @Composable () -> Unit, +) { + val modifier = when (key) { + state.draggingItemKey -> { + Modifier + .zIndex(1f) + .graphicsLayer { + translationY = state.draggingItemOffset + } + } + + state.previousKeyOfDraggedItem -> { + Modifier + .zIndex(1f) + .graphicsLayer { + translationY = state.previousItemOffset.value + } + } + + else -> { + Modifier + .zIndex(0f) + .animateItemPlacement(tween()) + } + } + Box(modifier = modifier, propagateMinConstraints = true) { + content() + } +} + +/** + * Calculates the offset of an item taking its height into account. + */ +private val LazyListItemInfo.endOffset: Int + get() = offset + size + +/** + * Find item based on position on screen. + * + * @param offset Position on screen used to find the item. + */ +private fun LazyListState.findItem(offset: Float) = + layoutInfo.visibleItemsInfo.firstOrNull { item -> + offset.toInt() in item.offset..item.endOffset + } + +/** + * Detects press, long press and drag gestures. + * + * @param listState State of the list. + * @param reorderState List reordering state used for dragging callbacks. + * @param shouldLongPressToDrag Whether or not an item should be long pressed to start the dragging gesture. + */ +fun Modifier.detectVerticalPressAndDrag( + listState: LazyListState, + reorderState: ListReorderState, + shouldLongPressToDrag: Boolean, +): Modifier = pointerInput(listState, shouldLongPressToDrag) { + if (shouldLongPressToDrag) { + detectDragGesturesAfterLongPress( + onDragStart = { offset -> reorderState.onTouchSlopPassed(offset.y, true) }, + onDrag = { change, dragAmount -> + change.consume() + reorderState.onDrag(dragAmount.y) + }, + onDragEnd = reorderState::onDragInterrupted, + onDragCancel = reorderState::onDragInterrupted, + ) + } +} From e4da26fb34a6fcddfee30a79de991d8f0b17b607 Mon Sep 17 00:00:00 2001 From: DreVla Date: Thu, 6 Apr 2023 18:22:57 +0300 Subject: [PATCH 017/209] Bug 1807127 - Update Sync Device name after refreshing fxa devices --- .../mozilla/fenix/settings/account/AccountSettingsFragment.kt | 1 + .../fenix/settings/account/AccountSettingsInteractor.kt | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt index 85106afcf..05d174884 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt @@ -367,6 +367,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat() { ?.deviceConstellation() ?.setDeviceName(newDeviceName, it) } + accountSettingsStore.dispatch(AccountSettingsFragmentAction.UpdateDeviceName(newDeviceName)) } return true } diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsInteractor.kt b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsInteractor.kt index 1e63c8508..71e9ca308 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsInteractor.kt @@ -46,7 +46,8 @@ class AccountSettingsInteractor( } // Our "change the device name on the server" operation may fail. // Currently, we disregard this failure and pretend we succeeded. - // At the same time, when user changes the device name, we immediately update the UI to display the new name. + // At the same time, when user changes the device name, + // we immediately update the UI to display the new name. // So, in case of a network (or other) failure when talking to the server, // we'll have a discrepancy - the UI will reflect new value, but actually the value never changed. // So, when user presses "sync now", we'll fetch the old value, and reset the UI. From 790be45d7b4635d8b9b33a96e239bb39c9df3d1b Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Fri, 18 Aug 2023 16:50:23 +0300 Subject: [PATCH 018/209] Bug 1847740 - Add navigation middleware for review quality check --- .../org/mozilla/fenix/BrowserDirection.kt | 1 + .../java/org/mozilla/fenix/HomeActivity.kt | 4 + .../shopping/ReviewQualityCheckFragment.kt | 9 +++ .../ReviewQualityCheckMiddlewareProvider.kt | 13 ++++ .../ReviewQualityCheckNavigationMiddleware.kt | 51 +++++++++++++ .../store/ReviewQualityCheckAction.kt | 10 +++ .../shopping/store/ReviewQualityCheckState.kt | 15 ++++ .../fenix/shopping/ui/ProductAnalysis.kt | 17 ++++- .../ui/ReviewQualityCheckBottomSheet.kt | 10 ++- ...iewQualityCheckNavigationMiddlewareTest.kt | 75 +++++++++++++++++++ 10 files changed, 199 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt create mode 100644 app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt index d7a120a6e..f33b8e107 100644 --- a/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt +++ b/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt @@ -41,4 +41,5 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) { FromLoginDetailFragment(R.id.loginDetailFragment), FromTabsTray(R.id.tabsTrayFragment), FromRecentlyClosed(R.id.recentlyClosedFragment), + FromReviewQualityCheck(R.id.reviewQualityCheckFragment), } diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index fe33a904b..2cfdf2a92 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -152,6 +152,7 @@ import org.mozilla.fenix.settings.search.SaveSearchEngineFragmentDirections import org.mozilla.fenix.settings.studies.StudiesFragmentDirections import org.mozilla.fenix.settings.wallpaper.WallpaperSettingsFragmentDirections import org.mozilla.fenix.share.AddNewDeviceFragmentDirections +import org.mozilla.fenix.shopping.ReviewQualityCheckFragmentDirections import org.mozilla.fenix.shortcut.NewTabShortcutIntentProcessor.Companion.ACTION_OPEN_PRIVATE_TAB import org.mozilla.fenix.tabhistory.TabHistoryDialogFragment import org.mozilla.fenix.tabstray.TabsTrayFragment @@ -1024,6 +1025,9 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { BrowserDirection.FromStudiesFragment -> StudiesFragmentDirections.actionGlobalBrowser( customTabSessionId, ) + BrowserDirection.FromReviewQualityCheck -> ReviewQualityCheckFragmentDirections.actionGlobalBrowser( + customTabSessionId, + ) } /** diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt b/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt index ac7d47293..fdce7b0f9 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ReviewQualityCheckFragment.kt @@ -16,6 +16,8 @@ import androidx.compose.ui.platform.rememberNestedScrollInteropConnection import androidx.lifecycle.lifecycleScope import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import org.mozilla.fenix.BrowserDirection +import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.shopping.di.ReviewQualityCheckMiddlewareProvider import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore @@ -33,6 +35,13 @@ class ReviewQualityCheckFragment : BottomSheetDialogFragment() { middleware = ReviewQualityCheckMiddlewareProvider.provideMiddleware( settings = requireComponents.settings, browserStore = requireComponents.core.store, + openLink = { link, shouldOpenInNewTab -> + (requireActivity() as HomeActivity).openToBrowserAndLoad( + searchTermOrURL = link, + newTab = shouldOpenInNewTab, + from = BrowserDirection.FromReviewQualityCheck, + ) + }, scope = lifecycleScope, ), ) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt b/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt index 1d0c46f7a..807eddcb6 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/di/ReviewQualityCheckMiddlewareProvider.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.shopping.di import kotlinx.coroutines.CoroutineScope import mozilla.components.browser.state.store.BrowserStore +import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckNavigationMiddleware import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckNetworkMiddleware import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckPreferencesImpl import org.mozilla.fenix.shopping.middleware.ReviewQualityCheckPreferencesMiddleware @@ -23,16 +24,20 @@ object ReviewQualityCheckMiddlewareProvider { * * @param settings The [Settings] instance to use. * @param browserStore The [BrowserStore] instance to access state. + * @param openLink Opens a link. The callback is invoked with the URL [String] parameter and + * whether or not it should open in a new or the currently selected tab [Boolean] parameter. * @param scope The [CoroutineScope] to use for launching coroutines. */ fun provideMiddleware( settings: Settings, browserStore: BrowserStore, + openLink: (String, Boolean) -> Unit, scope: CoroutineScope, ): List = listOf( providePreferencesMiddleware(settings, scope), provideNetworkMiddleware(browserStore, scope), + provideNavigationMiddleware(openLink, scope), ) private fun providePreferencesMiddleware( @@ -50,4 +55,12 @@ object ReviewQualityCheckMiddlewareProvider { reviewQualityCheckService = ReviewQualityCheckServiceImpl(browserStore), scope = scope, ) + + private fun provideNavigationMiddleware( + openLink: (String, Boolean) -> Unit, + scope: CoroutineScope, + ) = ReviewQualityCheckNavigationMiddleware( + openLink = openLink, + scope = scope, + ) } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt new file mode 100644 index 000000000..f67097bea --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddleware.kt @@ -0,0 +1,51 @@ +/* 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.shopping.middleware + +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch +import mozilla.components.lib.state.Middleware +import mozilla.components.lib.state.MiddlewareContext +import org.mozilla.fenix.shopping.store.ReviewQualityCheckAction +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState + +/** + * Middleware that handles navigation events for the review quality check feature. + * + * @property openLink Callback used to open an url. + * @property scope [CoroutineScope] used to launch coroutines. + */ +class ReviewQualityCheckNavigationMiddleware( + private val openLink: (String, Boolean) -> Unit, + private val scope: CoroutineScope, +) : Middleware { + + override fun invoke( + context: MiddlewareContext, + next: (ReviewQualityCheckAction) -> Unit, + action: ReviewQualityCheckAction, + ) { + next(action) + when (action) { + is ReviewQualityCheckAction.NavigationMiddlewareAction -> processAction(action) + else -> { + // no-op + } + } + } + + private fun processAction( + action: ReviewQualityCheckAction.NavigationMiddlewareAction, + ) = scope.launch { + when (action) { + is ReviewQualityCheckAction.OpenLink -> { + when (action.link) { + is ReviewQualityCheckState.LinkType.ExternalLink -> openLink(action.link.url, true) + is ReviewQualityCheckState.LinkType.AnalyzeLink -> openLink(action.link.url, false) + } + } + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt index 2e8bbcb9e..8cdb7e8a8 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckAction.kt @@ -22,6 +22,11 @@ sealed interface ReviewQualityCheckAction : Action { */ sealed interface PreferencesMiddlewareAction : ReviewQualityCheckAction + /** + * Actions related to navigation events. + */ + sealed interface NavigationMiddlewareAction : ReviewQualityCheckAction + /** * Actions related to network requests. */ @@ -69,4 +74,9 @@ sealed interface ReviewQualityCheckAction : Action { * Triggered when the user retries to fetch product analysis after a failure. */ object RetryProductAnalysis : NetworkAction + + /** + * Triggered when opening a link from the review quality check feature. + */ + data class OpenLink(val link: ReviewQualityCheckState.LinkType) : NavigationMiddlewareAction } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt index 6fe39b2cd..736b5955b 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckState.kt @@ -100,6 +100,21 @@ sealed interface ReviewQualityCheckState : State { QUALITY, PRICE, SHIPPING, PACKAGING_AND_APPEARANCE, COMPETITIVENESS } + /** + * Types of links that can be opened from the review quality check feature. + */ + sealed class LinkType { + /** + * Opens a link to analyze a product. + */ + data class AnalyzeLink(val url: String) : LinkType() + + /** + * Opens an external "Learn more" link. + */ + data class ExternalLink(val url: String) : LinkType() + } + /** * The state of the recommended product. */ diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt index 4f7668d93..9bc0cf2d9 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt @@ -29,6 +29,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics @@ -38,6 +39,7 @@ import org.mozilla.fenix.compose.ClickableSubstringLink import org.mozilla.fenix.compose.SwitchWithLabel import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.button.SecondaryButton +import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.shopping.store.ReviewQualityCheckState import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.HighlightType import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.OptedIn.ProductReviewState.AnalysisPresent @@ -61,7 +63,7 @@ fun ProductAnalysis( productAnalysis: AnalysisPresent, onOptOutClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, - onReviewGradeLearnMoreClick: () -> Unit, + onReviewGradeLearnMoreClick: (String) -> Unit, modifier: Modifier = Modifier, ) { Column( @@ -324,7 +326,7 @@ private fun SettingsCard( @Composable private fun ReviewQualityInfo( modifier: Modifier = Modifier, - onLearnMoreClick: () -> Unit, + onLearnMoreClick: (String) -> Unit, ) { Column( modifier = modifier, @@ -342,13 +344,22 @@ private fun ReviewQualityInfo( val link = stringResource(R.string.review_quality_check_info_learn_more_link) val text = stringResource(R.string.review_quality_check_info_learn_more, link) val linkStartIndex = text.indexOf(link) + val context = LocalContext.current val linkEndIndex = linkStartIndex + link.length ClickableSubstringLink( text = text, textStyle = FirefoxTheme.typography.body2, clickableStartIndex = linkStartIndex, clickableEndIndex = linkEndIndex, - onClick = onLearnMoreClick, + onClick = { + onLearnMoreClick( + // Placeholder Sumo page + SupportUtils.getSumoURLForTopic( + context, + SupportUtils.SumoTopic.HELP, + ), + ) + }, ) Text( diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt index 0d9d0c4cb..fbff0c37f 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt @@ -58,8 +58,12 @@ fun ReviewQualityCheckBottomSheet( onProductRecommendationsEnabledStateChange = { store.dispatch(ReviewQualityCheckAction.ToggleProductRecommendation) }, - onReviewGradeLearnMoreClick = { - // Bug 1847740 + onReviewGradeLearnMoreClick = { url -> + store.dispatch( + ReviewQualityCheckAction.OpenLink( + ReviewQualityCheckState.LinkType.ExternalLink(url), + ), + ) }, ) } @@ -80,7 +84,7 @@ private fun ProductReview( state: ReviewQualityCheckState.OptedIn, onOptOutClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, - onReviewGradeLearnMoreClick: () -> Unit, + onReviewGradeLearnMoreClick: (String) -> Unit, ) { Crossfade( targetState = state.productReviewState, diff --git a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt new file mode 100644 index 000000000..d60497a0f --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckNavigationMiddlewareTest.kt @@ -0,0 +1,75 @@ +package org.mozilla.fenix.shopping.middleware + +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.libstate.ext.waitUntilIdle +import mozilla.components.support.test.rule.MainCoroutineRule +import org.junit.Assert.assertEquals +import org.junit.Rule +import org.junit.Test +import org.mozilla.fenix.shopping.store.ReviewQualityCheckAction +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState +import org.mozilla.fenix.shopping.store.ReviewQualityCheckStore + +class ReviewQualityCheckNavigationMiddlewareTest { + + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + private val dispatcher = coroutinesTestRule.testDispatcher + private val scope = coroutinesTestRule.scope + + @Test + fun `WHEN opening an external link THEN the link should be opened in a new tab`() { + var isOpenedInSelectedTab = false + var isOpenedInNewTab = false + val store = ReviewQualityCheckStore( + middleware = listOf( + ReviewQualityCheckNavigationMiddleware( + openLink = { _, openInNewTab -> + if (openInNewTab) { + isOpenedInNewTab = true + } else { + isOpenedInSelectedTab = true + } + }, + scope = scope, + ), + ), + ) + store.waitUntilIdle() + dispatcher.scheduler.advanceUntilIdle() + + store.dispatch(ReviewQualityCheckAction.OpenLink(ReviewQualityCheckState.LinkType.ExternalLink("www.mozilla.com"))).joinBlocking() + store.waitUntilIdle() + + assertEquals(true, isOpenedInNewTab) + assertEquals(false, isOpenedInSelectedTab) + } + + @Test + fun `WHEN re-analzying a product THEN the link should be opened in the currently selected tab`() { + var isOpenedInSelectedTab = false + var isOpenedInNewTab = false + val store = ReviewQualityCheckStore( + middleware = listOf( + ReviewQualityCheckNavigationMiddleware( + openLink = { _, openInNewTab -> + if (openInNewTab) { + isOpenedInNewTab = true + } else { + isOpenedInSelectedTab = true + } + }, + scope = scope, + ), + ), + ) + store.waitUntilIdle() + dispatcher.scheduler.advanceUntilIdle() + + store.dispatch(ReviewQualityCheckAction.OpenLink(ReviewQualityCheckState.LinkType.AnalyzeLink("www.mozilla.com"))).joinBlocking() + store.waitUntilIdle() + + assertEquals(true, isOpenedInSelectedTab) + assertEquals(false, isOpenedInNewTab) + } +} From 7acc85875a327c1e2fac5c1f3422ba8d5d321144 Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Thu, 31 Aug 2023 09:29:03 -0400 Subject: [PATCH 019/209] Revert "Bug 1844960 - Bookmark suggestions should appear unconcerned with the search suggestions setting." This reverts commit 3a1884674d00c1362b5abbd7fbc9756e0033fba4. --- .../org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt | 5 +++-- .../mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt index 3c56c0b15..2286fa723 100644 --- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt @@ -188,7 +188,6 @@ class AwesomeBarView( title = R.string.search_engine_suggestions_title, description = activity.getString(R.string.search_engine_suggestions_description), searchIcon = searchWithBitmap, - suggestionsHeader = getSearchEngineSuggestionsHeader(), ) searchSuggestionProviderMap = HashMap() @@ -319,7 +318,9 @@ class AwesomeBarView( providersToAdd.add(getLocalTabsProvider(state.searchEngineSource, true)) } - providersToAdd.add(searchEngineSuggestionProvider) + if (!activity.settings().showUnifiedSearchFeature) { + providersToAdd.add(searchEngineSuggestionProvider) + } return providersToAdd } diff --git a/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt b/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt index 00570df98..3cbc2a0aa 100644 --- a/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt @@ -765,7 +765,7 @@ class AwesomeBarViewTest { } @Test - fun `GIVEN unified search feature is enabled WHEN configuring providers THEN add the engine suggestions provider`() { + fun `GIVEN unified search feature is enabled WHEN configuring providers THEN don't add the engine suggestions provider`() { val settings: Settings = mockk(relaxed = true) { every { showUnifiedSearchFeature } returns true } @@ -776,7 +776,7 @@ class AwesomeBarViewTest { val result = awesomeBarView.getProvidersToAdd(state) - assertEquals(1, result.filterIsInstance().size) + assertEquals(0, result.filterIsInstance().size) } @Test @@ -834,7 +834,7 @@ class AwesomeBarViewTest { } @Test - fun `GIVEN a search from the default engine with no suggestions asked WHEN configuring providers THEN add any provider`() { + fun `GIVEN a search from the default engine with no suggestions asked WHEN configuring providers THEN don't add any provider`() { val settings: Settings = mockk(relaxed = true) { every { showUnifiedSearchFeature } returns true } @@ -862,7 +862,7 @@ class AwesomeBarViewTest { assertEquals(0, result.filterIsInstance().size) assertEquals(0, result.filterIsInstance().size) assertEquals(0, result.filterIsInstance().size) - assertEquals(1, result.filterIsInstance().size) + assertEquals(0, result.filterIsInstance().size) } @Test From 9bea9ddcd12877e663e95a36312bea29c2f53e7f Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Wed, 30 Aug 2023 10:58:09 -0400 Subject: [PATCH 020/209] Bug 1850280 - Control extensions process rollout with Nimbus --- app/.experimenter.yaml | 8 +++ app/nimbus.fml.yaml | 8 +++ .../fenix/extensions/ExtensionProcessTest.kt | 62 +++++++++++++++++++ .../org/mozilla/fenix/gecko/GeckoProvider.kt | 33 ++++++---- 4 files changed, 99 insertions(+), 12 deletions(-) create mode 100644 app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt diff --git a/app/.experimenter.yaml b/app/.experimenter.yaml index 022ed02aa..3cb3f80e4 100644 --- a/app/.experimenter.yaml +++ b/app/.experimenter.yaml @@ -7,6 +7,14 @@ cookie-banners: sections-enabled: type: json description: This property provides a lookup table of whether or not the given section should be enabled. +extensions-process: + description: A feature to rollout the extensions process. + hasExposure: true + exposureDescription: "" + variables: + enabled: + type: boolean + description: "If true, the extensions process is enabled." glean: description: A feature that provides server-side configurations for Glean metrics (aka Server Knobs). hasExposure: true diff --git a/app/nimbus.fml.yaml b/app/nimbus.fml.yaml index 48dd1121c..9f764f7c2 100644 --- a/app/nimbus.fml.yaml +++ b/app/nimbus.fml.yaml @@ -270,6 +270,14 @@ features: type: Boolean default: true + extensions-process: + description: A feature to rollout the extensions process. + variables: + enabled: + description: If true, the extensions process is enabled. + type: Boolean + default: false + growth-data: description: A feature measuring campaign growth data variables: diff --git a/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt b/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt new file mode 100644 index 000000000..e6c80c728 --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/extensions/ExtensionProcessTest.kt @@ -0,0 +1,62 @@ +/* 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.extensions + +import android.content.Context +import mozilla.components.concept.engine.EngineSession +import org.json.JSONObject +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Before +import org.junit.Test +import org.mozilla.experiments.nimbus.HardcodedNimbusFeatures +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.gecko.GeckoProvider +import org.mozilla.fenix.helpers.TestHelper +import org.mozilla.fenix.nimbus.FxNimbus + +/** + * Instrumentation test for verifying that the extensions process can be controlled with Nimbus. + */ +class ExtensionProcessTest { + private lateinit var context: Context + private lateinit var policy: EngineSession.TrackingProtectionPolicy + + @Before + fun setUp() { + context = TestHelper.appContext + policy = + context.components.core.trackingProtectionPolicyFactory.createTrackingProtectionPolicy() + } + + @Test + fun test_extension_process_can_be_controlled_by_nimbus() { + val hardcodedNimbus = HardcodedNimbusFeatures( + context, + "extensions-process" to JSONObject( + """ + { + "enabled":true + } + """.trimIndent(), + ), + ) + + hardcodedNimbus.connectWith(FxNimbus) + + val runtime = GeckoProvider.createRuntimeSettings(context, policy) + + assertTrue(FxNimbus.features.extensionsProcess.value().enabled) + assertTrue(runtime.extensionsProcessEnabled!!) + } + + @Test + fun test_extension_process_must_be_disabled_by_default() { + val runtime = GeckoProvider.createRuntimeSettings(context, policy) + + assertFalse(FxNimbus.features.extensionsProcess.value().enabled) + assertFalse(runtime.extensionsProcessEnabled!!) + } +} diff --git a/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt b/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt index c4db53660..8e5511154 100644 --- a/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt +++ b/app/src/main/java/org/mozilla/fenix/gecko/GeckoProvider.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.gecko import android.content.Context +import androidx.annotation.VisibleForTesting import mozilla.components.browser.engine.gecko.autofill.GeckoAutocompleteStorageDelegate import mozilla.components.browser.engine.gecko.ext.toContentBlockingSetting import mozilla.components.browser.engine.gecko.glean.GeckoAdapter @@ -18,6 +19,7 @@ import mozilla.components.service.sync.logins.GeckoLoginStorageDelegate import org.mozilla.fenix.Config import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings +import org.mozilla.fenix.nimbus.FxNimbus import org.mozilla.geckoview.ContentBlocking import org.mozilla.geckoview.ContentBlocking.SafeBrowsingProvider import org.mozilla.geckoview.GeckoRuntime @@ -51,18 +53,7 @@ object GeckoProvider { loginStorage: Lazy, policy: TrackingProtectionPolicy, ): GeckoRuntime { - val builder = GeckoRuntimeSettings.Builder() - - val runtimeSettings = builder - .crashHandler(CrashHandlerService::class.java) - .telemetryDelegate(GeckoAdapter()) - .experimentDelegate(NimbusExperimentDelegate()) - .contentBlocking(policy.toContentBlockingSetting()) - .consoleOutput(context.components.settings.enableGeckoLogs) - .debugLogging(Config.channel.isDebug || context.components.settings.enableGeckoLogs) - .aboutConfigEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) - .extensionsWebAPIEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) - .build() + val runtimeSettings = createRuntimeSettings(context, policy) val settings = context.components.settings if (!settings.shouldUseAutoSize) { @@ -109,4 +100,22 @@ object GeckoProvider { return geckoRuntime } + + @VisibleForTesting + internal fun createRuntimeSettings( + context: Context, + policy: TrackingProtectionPolicy, + ): GeckoRuntimeSettings { + return GeckoRuntimeSettings.Builder() + .crashHandler(CrashHandlerService::class.java) + .telemetryDelegate(GeckoAdapter()) + .experimentDelegate(NimbusExperimentDelegate()) + .contentBlocking(policy.toContentBlockingSetting()) + .consoleOutput(context.components.settings.enableGeckoLogs) + .debugLogging(Config.channel.isDebug || context.components.settings.enableGeckoLogs) + .aboutConfigEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) + .extensionsProcessEnabled(FxNimbus.features.extensionsProcess.value().enabled) + .extensionsWebAPIEnabled(Config.channel.isBeta || Config.channel.isNightlyOrDebug) + .build() + } } From e342617d17f59c3580f2d48fe8f7f3583fd448ad Mon Sep 17 00:00:00 2001 From: JohanLorenzo Date: Thu, 31 Aug 2023 18:02:47 +0000 Subject: [PATCH 021/209] Update Fenix initial_experiments.json based on the current first-run experiments in experimenter --- app/src/main/res/raw/initial_experiments.json | 97 ------------------- 1 file changed, 97 deletions(-) diff --git a/app/src/main/res/raw/initial_experiments.json b/app/src/main/res/raw/initial_experiments.json index ba977a8f5..f624e7eba 100644 --- a/app/src/main/res/raw/initial_experiments.json +++ b/app/src/main/res/raw/initial_experiments.json @@ -282,103 +282,6 @@ "localizations": null, "locales": null }, - { - "schemaVersion": "1.12.0", - "slug": "on-boarding-challenge-the-default", - "id": "on-boarding-challenge-the-default", - "arguments": {}, - "application": "org.mozilla.firefox", - "appName": "fenix", - "appId": "org.mozilla.firefox", - "channel": "release", - "userFacingName": "On-boarding Challenge the Default", - "userFacingDescription": "Testing copy and images in the first run onboarding that is consistent with marketing messaging.", - "isEnrollmentPaused": true, - "isRollout": false, - "bucketConfig": { - "randomizationUnit": "nimbus_id", - "namespace": "fenix-juno-onboarding-release-3", - "start": 0, - "count": 10000, - "total": 10000 - }, - "featureIds": [ - "juno-onboarding" - ], - "probeSets": [], - "outcomes": [ - { - "slug": "default-browser", - "priority": "primary" - } - ], - "branches": [ - { - "slug": "control", - "ratio": 1, - "feature": { - "featureId": "this-is-included-for-mobile-pre-96-support", - "enabled": false, - "value": {} - }, - "features": [ - { - "featureId": "juno-onboarding", - "enabled": true, - "value": { - "enabled": true - } - } - ] - }, - { - "slug": "treatment-a", - "ratio": 1, - "feature": { - "featureId": "this-is-included-for-mobile-pre-96-support", - "enabled": false, - "value": {} - }, - "features": [ - { - "featureId": "juno-onboarding", - "enabled": true, - "value": { - "enabled": true, - "cards": { - "default-browser": { - "title": "Du entscheidest, was Standard ist", - "body": "Nimm nicht das Erstbeste, sondern das Beste für dich: Firefox schützt deine Privatsphäre.\n\nLies unseren Datenschutzhinweis.", - "link-text": "Datenschutzhinweis", - "image-res": "onboarding_ctd_default_browser" - }, - "sync-sign-in": { - "title": "Alles ist dort, wo du es brauchst", - "body": "Wenn du willst, bringt Firefox deine Tabs und Passwörter auf all deine Geräte.", - "image-res": "onboarding_ctd_sync" - }, - "notification-permission": { - "title": "Du bestimmst, was Firefox kann", - "body": "Benachrichtigungen helfen dabei, Downloads zu managen und Tabs zwischen Geräten zu senden.", - "image-res": "onboarding_ctd_notification" - } - } - } - } - ] - } - ], - "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('115.!') >= 0) && (language in ['de']) && (region in ['DE'])))", - "startDate": "2023-06-21", - "enrollmentEndDate": "2023-08-09", - "endDate": null, - "proposedDuration": 30, - "proposedEnrollment": 14, - "referenceBranch": "control", - "featureValidationOptOut": false, - "localizations": null, - "locales": null - }, { "schemaVersion": "1.12.0", "slug": "release-android-onboarding-redesign-treatment-a-rollout", From f772339ddf7cc66a01585c483be2df43de0cbe4a Mon Sep 17 00:00:00 2001 From: github-actions Date: Fri, 1 Sep 2023 00:03:36 +0000 Subject: [PATCH 022/209] Import translations from android-l10n --- app/src/main/res/values-fur/strings.xml | 4 +- app/src/main/res/values-ka/strings.xml | 74 +++++++++++++++---------- app/src/main/res/values-oc/strings.xml | 73 ++++++++++++++---------- 3 files changed, 93 insertions(+), 58 deletions(-) diff --git a/app/src/main/res/values-fur/strings.xml b/app/src/main/res/values-fur/strings.xml index cbe1c409a..0e272d59a 100644 --- a/app/src/main/res/values-fur/strings.xml +++ b/app/src/main/res/values-fur/strings.xml @@ -1625,9 +1625,9 @@ The first parameter is the app name --> %s | Librariis OSS - Spiis che a indreçin + Spiis che a dirotin - Al nete vie i cookies configurâts par indreçâ a sîts web cognossûts pal lôr spiâ. + Al nete vie i cookies configurâts par dirotâ viers sîts web cognossûts pal lôr spiâ. Cualchi spie indicade chi sot e je stade sblocade in mût parziâl su cheste pagjine parcè che tu âs interagjît cun lôr *. diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index ab1a91257..90248d260 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -372,6 +372,8 @@ ძიება + + საძიებოები მისამართების ველი @@ -629,6 +631,16 @@ დამატება უკვე ჩადგმულია + + + დამატებები დროებით ამორთულია + + ერთი ან რამდენიმე დამატება ვეღარ მუშაობს და აფერხებს სისტემის მდგრადობას. %1$s წარუმატებლად შეეცადა დამატებ(ებ)ის ხელმეორედ გაშვებას.\n\nდამატებები ვერ გაეშვება ხელახლა მიმდინარე სეანსზე.\n\nდამატებების მოცილებამ ან ამორთვამ შეიძლება მოაგვაროს ხარვეზი. + + სცადეთ დამატებების ახლიდან ჩართვა + + განაგრძეთ ამორთული დამატებებით + ანგარიშის მართვა @@ -1350,12 +1362,16 @@ %d ჩანართი - დათვალიერების ისტორია და საიტის მონაცემები + დათვალიერების ისტორია და საიტის მონაცემები + + დათვალიერების ისტორია %d მისამართი - ფუნთუშები + ფუნთუშები + + ფუნთუშები და საიტის მონაცემები გამოხვალთ ანგარიშებიდან უმეტეს საიტზე @@ -1411,62 +1427,62 @@ - მოგესალმებით უკეთეს ინტერნეტში + მოგესალმებით უკეთეს ინტერნეტში - ბრაუზერი შექმნილი ხალხისთვის, და არა მოგებისთვის + ბრაუზერი შექმნილი ხალხისთვის, და არა მოგებისთვის - განაგრძეთ იქიდან, სადაც გაჩერდით. + განაგრძეთ იქიდან, სადაც გაჩერდით. - დაასინქრონეთ ჩანართები და პაროლები მოწყობილობებს შორის შეუფერხებლად გადასვლისთვის. + დაასინქრონეთ ჩანართები და პაროლები მოწყობილობებს შორის შეუფერხებლად გადასვლისთვის. - შესვლა + შესვლა სინქრონიზაცია ჩართულია - პირადულობის ნაგულისხმევი დაცვა + პირადულობის ნაგულისხმევი დაცვა - %1$s ავტომატურად უზღუდავს კომპანიებს თქვენს მოქმედებებზე ფარულად თვალის მიდევნების საშუალებას ვებსივრცეში. + %1$s ავტომატურად უზღუდავს კომპანიებს თქვენს მოქმედებებზე ფარულად თვალის მიდევნების საშუალებას ვებსივრცეში. - ფუნთუშებისგან ყოველმხრივი დაცვით მეთვალყურეებს არ ექნებათ საშუალება, თვალი გადევნონ ვებსივრცეში ფუნთუშების გამოყენებით. + ფუნთუშებისგან ყოველმხრივი დაცვით მეთვალყურეებს არ ექნებათ საშუალება, თვალი გადევნონ ვებსივრცეში ფუნთუშების გამოყენებით. - ჩვეულებრივი (ნაგულისხმევი) + ჩვეულებრივი (ნაგულისხმევი) - წონასწორული უსაფრთხოებასა და წარმადობას შორის. გვერდები ჩაიტვირთება ჩვეულებრივ. + წონასწორული უსაფრთხოებასა და წარმადობას შორის. გვერდები ჩაიტვირთება ჩვეულებრივ. - მკაცრი + მკაცრი - ზღუდავს მეტ მეთვალყურეს, გვერდის ჩატვირთვა ასწრაფდება, თუმცა გამართულად შეიძლება ვერ იმუშაოს. + ზღუდავს მეტ მეთვალყურეს, გვერდის ჩატვირთვა ასწრაფდება, თუმცა გამართულად შეიძლება ვერ იმუშაოს. - აირჩიეთ ხელსაწყოთა ზოლის მდებარეობა + აირჩიეთ ხელსაწყოთა ზოლის მდებარეობა - დატოვეთ ქვემოთ ან გადაიტანეთ ზემოთ. + დატოვეთ ქვემოთ ან გადაიტანეთ ზემოთ. - თქვენი მონაცემები თქვენს ხელშია + თქვენი მონაცემები თქვენს ხელშია - Firefox საშუალებას იძლევა, რომ თავად წყვეტდეთ, რას გააზიარებთ ინტერნეტში და რას გაგვიზიარებთ ჩვენ. + Firefox საშუალებას იძლევა, რომ თავად წყვეტდეთ, რას გააზიარებთ ინტერნეტში და რას გაგვიზიარებთ ჩვენ. - გაეცანით პირადულობის განაცხადს + გაეცანით პირადულობის განაცხადს - მზად ხართ, შეაღოთ საოცარი ინტერნეტსამყაროს კარი? + მზად ხართ, შეაღოთ საოცარი ინტერნეტსამყაროს კარი? - დაიწყეთ გვერდების მონახულება + დაიწყეთ გვერდების მონახულება - შეარჩიეთ თქვენი გაფორმება + შეარჩიეთ თქვენი გაფორმება - დაზოგეთ ბატარეა და საკუთარი მხედველობა, მუქი რეჟიმით. + დაზოგეთ ბატარეა და საკუთარი მხედველობა, მუქი რეჟიმით. - თვითშერჩევა + თვითშერჩევა - მოწყობილობის პარამეტრების მიხედვით + მოწყობილობის პარამეტრების მიხედვით - მუქი თემა + მუქი თემა - ნათელი თემა + ნათელი თემა ჩანართები გაიგზავნა! @@ -1915,7 +1931,9 @@ ძიების შეთავაზების API ბმული - საძიებო ფრაზის აღმნიშვნელია „%s“. მაგალითად:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + საძიებო ფრაზის აღმნიშვნელია „%s“. მაგალითად:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + საძიებო ფრაზისთვის გამოიყენეთ „%s“. მაგალითად:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s შენახვა diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml index 32aa17efa..a58d3f407 100644 --- a/app/src/main/res/values-oc/strings.xml +++ b/app/src/main/res/values-oc/strings.xml @@ -376,6 +376,8 @@ Motor de recèrca per defaut Recèrca + + Motors de recèrca Barra d‘adreça @@ -640,6 +642,14 @@ Lo modul complementari es ja installat + + + Los moduls son temporàriament desactivats + + Relançar los moduls + + Contunhar amb los moduls desactivats + Gestion del compte @@ -1375,12 +1385,16 @@ %d onglets - Istoric de navegacion e donadas de sites + Istoric de navegacion e donadas de sites + + Istoric de navegacion %d adreças - Cookies + Cookies + + Cookies e donadas de sites La session de la màger part dels sites se tamparà @@ -1437,60 +1451,60 @@ - Benvengut dins un Internet melhor + Benvengut dins un Internet melhor - Un navegador concebut per las gents, pas per far de profièches. + Un navegador concebut per las gents, pas per far de profièches. - Tornatz ont èretz + Tornatz ont èretz - Sincronizacion d’onglets e de senhals demest aparelhs per passar d’un ecran a l’autre sens relambi. + Sincronizacion d’onglets e de senhals demest aparelhs per passar d’un ecran a l’autre sens relambi. - Connexion + Connexion Sincro. activada - Proteccion de la vida privada per defaut + Proteccion de la vida privada per defaut - %1$s empacha automaticament las entrepresas de vos pistar secrètement pel web. + %1$s empacha automaticament las entrepresas de vos pistar secrètement pel web. - Embarcant una proteccion totala contra los cookies per empachar los traçadors d’utilizar de cookies per vos pistar de site en site. + Embarcant una proteccion totala contra los cookies per empachar los traçadors d’utilizar de cookies per vos pistar de site en site. - Estandard (per defaut) + Estandard (per defaut) - Equilibri entre confidencialitat e performança. Las pagina cargaràn normalament. + Equilibri entre confidencialitat e performança. Las pagina cargaràn normalament. - Estricta + Estricta - Bloca mai de traçadors, accelèra la cargament de las paginas mas d’unas pòdon quitar de foncionar. + Bloca mai de traçadors, accelèra la cargament de las paginas mas d’unas pòdon quitar de foncionar. - Causissètz ont conhar la barra d’aisinas + Causissètz ont conhar la barra d’aisinas - Gardatz-la enbàs o desplaçatz-la ennaut. + Gardatz-la enbàs o desplaçatz-la ennaut. - Contrarotlatz vòstras donadas + Contrarotlatz vòstras donadas - Firefox vos dòna lo contraròtle de çò que partejatz en linha e çò que partejatz amb nosautres. + Firefox vos dòna lo contraròtle de çò que partejatz en linha e çò que partejatz amb nosautres. - Legissètz nòstra politica de confidencialitat + Legissètz nòstra politica de confidencialitat - A punt per descobrir un Internet de pas creire ? + A punt per descobrir un Internet de pas creire ? - Començar de navegar + Començar de navegar - Causissètz vòstre tèma + Causissètz vòstre tèma - Estalviatz la batariá e vòstra vista en activant lo mòde fosc. + Estalviatz la batariá e vòstra vista en activant lo mòde fosc. - Automatic + Automatic - S’adapta als paramètres del periferic + S’adapta als paramètres del periferic - Tèma fosc + Tèma fosc - Tèma clar + Tèma clar Onglets enviats ! @@ -1947,7 +1961,10 @@ URL de l’API de suggestions de recèrcas - Remplaçatz la requèsta per « %s ». Exemple :\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Remplaçatz la requèsta per « %s ». Exemple :\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Remplaçatz la requèsta per « %s ». +Exemple :\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Enregistrar From aae56c8f8e86337433106837107c8085dc2959f6 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 22 Aug 2023 15:05:58 +0300 Subject: [PATCH 023/209] Bug 1849848 - New search history in private browsing UI smoke test --- .../org/mozilla/fenix/ui/BookmarksTest.kt | 10 ++-- .../mozilla/fenix/ui/ComposeBookmarksTest.kt | 12 ++--- .../mozilla/fenix/ui/ComposeHistoryTest.kt | 12 ++--- .../org/mozilla/fenix/ui/ComposeSearchTest.kt | 10 ++-- .../java/org/mozilla/fenix/ui/HistoryTest.kt | 10 ++-- .../java/org/mozilla/fenix/ui/SearchTest.kt | 52 ++++++++++++++++++- .../mozilla/fenix/ui/SettingsSearchTest.kt | 10 ++-- .../mozilla/fenix/ui/robots/SearchRobot.kt | 6 ++- 8 files changed, 87 insertions(+), 35 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt index a4c2da8c0..e9d9b4284 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/BookmarksTest.kt @@ -803,13 +803,13 @@ class BookmarksTest { // Search for a valid term typeSearch(firstWebPage.title) verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = firstWebPage.title) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) }.dismissSearchBar {} bookmarksMenu { }.clickSearchButton { // Search for invalid term typeSearch("Android") - verifyNoSuggestionsAreDisplayed( + verifySuggestionsAreNotDisplayed( activityTestRule, firstWebPage.url.toString(), secondWebPage.url.toString(), @@ -853,8 +853,8 @@ class BookmarksTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString()) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, firstWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString(), searchTerm = "generic") pressBack() } @@ -865,7 +865,7 @@ class BookmarksTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, thirdWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, thirdWebPage.url.toString()) } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt index 82bfc6010..bcc5bd0ad 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeBookmarksTest.kt @@ -810,11 +810,11 @@ class ComposeBookmarksTest { // Search for a valid term typeSearch(firstWebPage.title) verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = firstWebPage.title) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) // Search for invalid term typeSearch("Android") - verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString()) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, firstWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) } } @@ -854,8 +854,8 @@ class ComposeBookmarksTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString()) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, firstWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString(), searchTerm = "generic") pressBack() } @@ -866,7 +866,7 @@ class ComposeBookmarksTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, thirdWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, thirdWebPage.url.toString()) } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt index 92b1e1d45..4614e7fef 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHistoryTest.kt @@ -409,12 +409,12 @@ class ComposeHistoryTest { // Search for a valid term typeSearch(firstWebPage.title) verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = firstWebPage.title) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) clickClearButton() // Search for invalid term typeSearch("Android") - verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString()) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, firstWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) } } @@ -445,8 +445,8 @@ class ComposeHistoryTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString()) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, firstWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString(), searchTerm = "generic") pressBack() } @@ -456,7 +456,7 @@ class ComposeHistoryTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, thirdWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, thirdWebPage.url.toString()) } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt index 387380fcd..0a4ceaafa 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSearchTest.kt @@ -666,7 +666,7 @@ class ComposeSearchTest { clickSearchSelectorButton() selectTemporarySearchMethod(searchEngineName = "Tabs") typeSearch(searchTerm = "Mozilla") - verifyNoSuggestionsAreDisplayed(rule = activityTestRule, "Mozilla") + verifySuggestionsAreNotDisplayed(rule = activityTestRule, "Mozilla") clickClearButton() verifySearchBarPlaceholder("Search tabs") } @@ -686,7 +686,7 @@ class ComposeSearchTest { clickSearchSelectorButton() selectTemporarySearchMethod(searchEngineName = "Tabs") typeSearch(searchTerm = "Mozilla") - verifyNoSuggestionsAreDisplayed(rule = activityTestRule, "Mozilla") + verifySuggestionsAreNotDisplayed(rule = activityTestRule, "Mozilla") clickClearButton() typeSearch(searchTerm = "generic") verifyTypedToolbarText("generic") @@ -725,7 +725,7 @@ class ComposeSearchTest { }.clickSearchSelectorButton { selectTemporarySearchMethod("Bookmarks") typeSearch("test") - verifyNoSuggestionsAreDisplayed(activityTestRule, "test") + verifySuggestionsAreNotDisplayed(activityTestRule, "test") } } @@ -752,7 +752,7 @@ class ComposeSearchTest { }.dismissSearchBar { }.openSearch { typeSearch("mozilla ") - verifyNoSuggestionsAreDisplayed(activityTestRule, "Test1", "Test2") + verifySuggestionsAreNotDisplayed(activityTestRule, "Test1", "Test2") } } @@ -776,7 +776,7 @@ class ComposeSearchTest { clickSearchSelectorButton() selectTemporarySearchMethod(searchEngineName = "History") typeSearch(searchTerm = "Mozilla") - verifyNoSuggestionsAreDisplayed(rule = activityTestRule, "Mozilla") + verifySuggestionsAreNotDisplayed(rule = activityTestRule, "Mozilla") clickClearButton() verifySearchBarPlaceholder("Search history") } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt index e63cf953e..f6c662538 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/HistoryTest.kt @@ -407,13 +407,13 @@ class HistoryTest { // Search for a valid term typeSearch("generic") verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = "generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) }.dismissSearchBar {} historyMenu { }.clickSearchButton { // Search for invalid term typeSearch("Android") - verifyNoSuggestionsAreDisplayed( + verifySuggestionsAreNotDisplayed( activityTestRule, firstWebPage.url.toString(), secondWebPage.url.toString(), @@ -448,8 +448,8 @@ class HistoryTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString()) - verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, firstWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, secondWebPage.url.toString()) verifySearchEngineSuggestionResults( activityTestRule, thirdWebPage.url.toString(), @@ -463,7 +463,7 @@ class HistoryTest { }.clickSearchButton { // Search for a valid term typeSearch("generic") - verifyNoSuggestionsAreDisplayed(activityTestRule, thirdWebPage.url.toString()) + verifySuggestionsAreNotDisplayed(activityTestRule, thirdWebPage.url.toString()) } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index d759f4298..80b26f8f2 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -20,11 +20,13 @@ import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.ext.components +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.helpers.Constants.PackageName.ANDROID_SETTINGS import org.mozilla.fenix.helpers.Constants.searchEngineCodes import org.mozilla.fenix.helpers.HomeActivityTestRule import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithText +import org.mozilla.fenix.helpers.MockBrowserDataHelper.createBookmarkItem import org.mozilla.fenix.helpers.MockBrowserDataHelper.createHistoryItem import org.mozilla.fenix.helpers.MockBrowserDataHelper.createTabItem import org.mozilla.fenix.helpers.MockBrowserDataHelper.setCustomSearchEngine @@ -647,7 +649,7 @@ class SearchTest { clickSearchSelectorButton() selectTemporarySearchMethod(searchEngineName = "History") typeSearch(searchTerm = "Mozilla") - verifyNoSuggestionsAreDisplayed(rule = activityTestRule, "Mozilla") + verifySuggestionsAreNotDisplayed(rule = activityTestRule, "Mozilla") clickClearButton() typeSearch(searchTerm = "generic") verifyTypedToolbarText("generic") @@ -684,7 +686,7 @@ class SearchTest { clickSearchSelectorButton() selectTemporarySearchMethod(searchEngineName = "Tabs") typeSearch(searchTerm = "Mozilla") - verifyNoSuggestionsAreDisplayed(rule = activityTestRule, "Mozilla") + verifySuggestionsAreNotDisplayed(rule = activityTestRule, "Mozilla") clickClearButton() typeSearch(searchTerm = "generic") verifyTypedToolbarText("generic") @@ -705,4 +707,50 @@ class SearchTest { } } } + + @SmokeTest + @Test + fun searchHistoryNotRememberedInPrivateBrowsingTest() { + appContext.settings().shouldShowSearchSuggestionsInPrivate = true + + val firstPageUrl = getGenericAsset(searchMockServer, 1) + val searchEngineName = "TestSearchEngine" + + setCustomSearchEngine(searchMockServer, searchEngineName) + createBookmarkItem(firstPageUrl.url.toString(), firstPageUrl.title, 1u) + + homeScreen { + }.openNavigationToolbar { + }.clickUrlbar { + }.submitQuery("test page 1") { + }.goToHomescreen { + }.togglePrivateBrowsingMode() + + homeScreen { + }.openNavigationToolbar { + }.clickUrlbar { + }.submitQuery("test page 2") { + }.openNavigationToolbar { + }.clickUrlbar { + typeSearch(searchTerm = "test page") + verifySearchEngineSuggestionResults( + rule = activityTestRule, + searchSuggestions = arrayOf( + "TestSearchEngine search", + "test page 1", + "Firefox Suggest", + firstPageUrl.url.toString(), + ), + searchTerm = "test page 1", + ) + // 2 search engine suggestions and 2 browser suggestions (1 history, 1 bookmark) + verifySearchSuggestionsCount(activityTestRule, numberOfSuggestions = 4) + verifySuggestionsAreNotDisplayed( + activityTestRule, + searchSuggestions = arrayOf( + "test page 2", + ), + ) + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt index c1df13e1f..600b77aca 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSearchTest.kt @@ -160,7 +160,7 @@ class SettingsSearchTest { homeScreen { }.openSearch { typeSearch("test") - verifyNoSuggestionsAreDisplayed( + verifySuggestionsAreNotDisplayed( activityTestRule, "Firefox Suggest", websiteURL, @@ -188,7 +188,7 @@ class SettingsSearchTest { homeScreen { }.openSearch { typeSearch("test") - verifyNoSuggestionsAreDisplayed( + verifySuggestionsAreNotDisplayed( activityTestRule, "Firefox Suggest", website.title, @@ -426,7 +426,7 @@ class SettingsSearchTest { }.goBack { }.openSearch { typeSearch("mozilla") - verifyNoSuggestionsAreDisplayed(activityTestRule, "mozilla firefox") + verifySuggestionsAreNotDisplayed(activityTestRule, "mozilla firefox") } } @@ -439,7 +439,7 @@ class SettingsSearchTest { typeSearch("mozilla") verifyAllowSuggestionsInPrivateModeDialog() denySuggestionsInPrivateMode() - verifyNoSuggestionsAreDisplayed(activityTestRule, "mozilla firefox") + verifySuggestionsAreNotDisplayed(activityTestRule, "mozilla firefox") } } @@ -466,7 +466,7 @@ class SettingsSearchTest { }.goBack { }.openSearch { typeSearch("mozilla") - verifyNoSuggestionsAreDisplayed(activityTestRule, "mozilla firefox") + verifySuggestionsAreNotDisplayed(activityTestRule, "mozilla firefox") } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SearchRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SearchRobot.kt index 1f4e977a1..7ffd2954e 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SearchRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SearchRobot.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.ui.robots import androidx.compose.ui.test.assertAny +import androidx.compose.ui.test.assertCountEquals import androidx.compose.ui.test.hasText import androidx.compose.ui.test.junit4.ComposeTestRule import androidx.compose.ui.test.onAllNodesWithTag @@ -117,7 +118,7 @@ class SearchRobot { } } - fun verifyNoSuggestionsAreDisplayed(rule: ComposeTestRule, vararg searchSuggestions: String) { + fun verifySuggestionsAreNotDisplayed(rule: ComposeTestRule, vararg searchSuggestions: String) { rule.waitForIdle() for (searchSuggestion in searchSuggestions) { rule.onAllNodesWithTag("mozac.awesomebar.suggestions") @@ -128,6 +129,9 @@ class SearchRobot { } } + fun verifySearchSuggestionsCount(rule: ComposeTestRule, numberOfSuggestions: Int) = + rule.onAllNodesWithTag("mozac.awesomebar.suggestion").assertCountEquals(numberOfSuggestions) + fun verifyAllowSuggestionsInPrivateModeDialog() { assertTrue( mDevice.findObject( From bd62505cec26cac9b131f2bc93d4e7d3ceaea676 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Fri, 1 Sep 2023 11:52:20 +0300 Subject: [PATCH 024/209] Bug 1807268 - Disable failing deleteCachedFilesTest UI test --- .../java/org/mozilla/fenix/ui/SettingsDeleteBrowsingDataTest.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsDeleteBrowsingDataTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsDeleteBrowsingDataTest.kt index e36c7ecd6..6a3e6d1c6 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsDeleteBrowsingDataTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsDeleteBrowsingDataTest.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.ui import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.R @@ -226,6 +227,7 @@ class SettingsDeleteBrowsingDataTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1807268") @SmokeTest @Test fun deleteCachedFilesTest() { From 62732f1929f212aefdf0632571dd3486c8615cdb Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:13:49 +0300 Subject: [PATCH 025/209] Bug 1850796 - Fix sharedPreferences nullability. sharedPreferences can now be null if the app uses a PreferenceDataStore. --- .../java/org/mozilla/fenix/settings/DataChoicesFragment.kt | 2 +- .../main/java/org/mozilla/fenix/settings/SettingsFragment.kt | 4 ++-- .../mozilla/fenix/settings/account/AccountSettingsFragment.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/DataChoicesFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/DataChoicesFragment.kt index 158201ce3..e029e2ebf 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/DataChoicesFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/DataChoicesFragment.kt @@ -27,7 +27,7 @@ class DataChoicesFragment : PreferenceFragmentCompat() { super.onCreate(savedInstanceState) val context = requireContext() - preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(this) { _, key -> + preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this) { _, key -> if (key == getPreferenceKey(R.string.pref_key_telemetry)) { if (context.settings().isTelemetryEnabled) { context.components.analytics.metrics.start(MetricServiceType.Data) diff --git a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt index 3b33e295a..5dbe5690b 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -135,8 +135,8 @@ class SettingsFragment : PreferenceFragmentCompat() { requireContext().getString(R.string.pref_key_show_search_suggestions_in_private), ) - preferenceManager.sharedPreferences - .registerOnSharedPreferenceChangeListener(this) { sharedPreferences, key -> + preferenceManager?.sharedPreferences + ?.registerOnSharedPreferenceChangeListener(this) { sharedPreferences, key -> try { if (key in booleanPreferenceTelemetryAllowList) { val enabled = sharedPreferences.getBoolean(key, false) diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt index 05d174884..1661b60c4 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt @@ -74,7 +74,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat() { // Remove the device name when we log out. context?.let { val deviceNameKey = it.getPreferenceKey(R.string.pref_key_sync_device_name) - preferenceManager.sharedPreferences.edit().remove(deviceNameKey).apply() + preferenceManager.sharedPreferences?.edit()?.remove(deviceNameKey)?.apply() } } } From 577d169c4f56e2cb6c6ae3e7ef5043ef5f338cdd Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:15:56 +0300 Subject: [PATCH 026/209] Bug 1850796 - Handle Preference onGetDefaultValue signature change. --- .../mozilla/fenix/settings/TextPercentageSeekBarPreference.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt index f34322c5a..45f013be3 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt @@ -303,8 +303,8 @@ class TextPercentageSeekBarPreference @JvmOverloads constructor( value = getPersistedInt((defaultValue as Int?)!!) } - override fun onGetDefaultValue(a: TypedArray?, index: Int): Any { - return a!!.getInt(index, 0) + override fun onGetDefaultValue(a: TypedArray, index: Int): Any { + return a.getInt(index, 0) } private fun setValueInternal(value: Int, notifyChanged: Boolean) { From 8dd98bd7d5ac1bbf207e271afa8cbd51c73be29b Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:20:04 +0300 Subject: [PATCH 027/209] Bug 1850796 - Handle OnPreferenceTreeClickListener signature updates. OnPreferenceTreeClickListener.onPreferenceTreeClick method now expects a NonNull Preference. --- .../java/org/mozilla/fenix/settings/SecretSettingsFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index 56b9ce54b..67b5199d0 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -80,8 +80,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { } } - override fun onPreferenceTreeClick(preference: Preference?): Boolean { - when (preference?.key) { + override fun onPreferenceTreeClick(preference: Preference): Boolean { + when (preference.key) { getString(R.string.pref_key_custom_sponsored_stories_parameters) -> findNavController().nav( R.id.secretSettingsPreference, From a184fd480a056729a55be53abec03a5d80d2af2d Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:22:53 +0300 Subject: [PATCH 028/209] Bug 1850796 - Handle preferenceToScrollTo arg nullability. --- .../main/java/org/mozilla/fenix/settings/SettingsFragment.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt index 5dbe5690b..cfd2bf410 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -178,9 +178,10 @@ class SettingsFragment : PreferenceFragmentCompat() { requireView().findViewById(R.id.recycler_view) ?.hideInitialScrollBar(viewLifecycleOwner.lifecycleScope) - if (args.preferenceToScrollTo != null) { - scrollToPreference(args.preferenceToScrollTo) + args.preferenceToScrollTo?.let { + scrollToPreference(it) } + // Consider finish of `onResume` to be the point at which we consider this fragment as 'created'. creatingFragment = false } From c83919378912cbfbf19979d3d433c3dfdeeea807 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:28:09 +0300 Subject: [PATCH 029/209] Bug 1850796 - Handle preference icon nullability. Preference getIcon method can now return a null Drawable. --- .../fenix/settings/account/AccountSettingsFragment.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt index 1661b60c4..8b402188d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt @@ -142,8 +142,10 @@ class AccountSettingsFragment : PreferenceFragmentCompat() { preferenceSyncNow.apply { onPreferenceClickListener = getClickListenerForSyncNow() - icon = icon.mutate().apply { - setTint(context.getColorFromAttr(R.attr.textPrimary)) + icon?.let { + icon = it.mutate().apply { + setTint(context.getColorFromAttr(R.attr.textPrimary)) + } } // Current sync state From a74c09a4b682da0f83ff51c785d3ed765fef43df Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:31:54 +0300 Subject: [PATCH 030/209] Bug 1850796 - Handle onSaveInstanceState signature updates. OnPreferenceTreeClickListener.onSaveInstanceState method can now return null if there is nothing to save. --- .../settings/TextPercentageSeekBarPreference.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt index 45f013be3..583b10e5d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/TextPercentageSeekBarPreference.kt @@ -407,7 +407,7 @@ class TextPercentageSeekBarPreference @JvmOverloads constructor( } } - override fun onSaveInstanceState(): Parcelable { + override fun onSaveInstanceState(): Parcelable? { val superState = super.onSaveInstanceState() if (isPersistent) { // No need to save instance state since it's persistent @@ -415,11 +415,16 @@ class TextPercentageSeekBarPreference @JvmOverloads constructor( } // Save the instance state - val myState = SavedState(superState) - myState.mSeekBarValue = mSeekBarValue - myState.mMin = mMin - myState.mMax = mMax - return myState + + return if (superState != null) { + val myState = SavedState(superState) + myState.mSeekBarValue = mSeekBarValue + myState.mMin = mMin + myState.mMax = mMax + myState + } else { + null + } } override fun onRestoreInstanceState(state: Parcelable?) { From ac0b637903b434e7de92ce7e79adbe66ad802068 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:44:08 +0300 Subject: [PATCH 031/209] Bug 1850796 - Handle onCreateView signature updates. PreferenceFragmentCompat.onCreateView now returns a NonNull View. --- .../mozilla/fenix/settings/autofill/AutofillSettingFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/autofill/AutofillSettingFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/autofill/AutofillSettingFragment.kt index 382f33162..fc201ee5d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/autofill/AutofillSettingFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/autofill/AutofillSettingFragment.kt @@ -123,7 +123,7 @@ class AutofillSettingFragment : BiometricPromptPreferenceFragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, - ): View? { + ): View { loadAutofillState() return super.onCreateView(inflater, container, savedInstanceState) } From b49fdb500445334f82c99f599b39dd7ee9b67393 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 21:45:45 +0300 Subject: [PATCH 032/209] Bug 1850796 - Handle onPreferenceChangeListener signature updates. PreferenceFragmentCompat.onPreferenceChangeListener now returns a Nullable OnPreferenceChangeListener. --- .../org/mozilla/fenix/settings/LearnMoreSwitchPreference.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/LearnMoreSwitchPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/LearnMoreSwitchPreference.kt index 40316aa10..6bdb510bd 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/LearnMoreSwitchPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/LearnMoreSwitchPreference.kt @@ -34,7 +34,7 @@ abstract class LearnMoreSwitchPreference(context: Context, attrs: AttributeSet?) switch.run { isChecked = getSwitchValue() setOnCheckedChangeListener { _, isChecked -> - onPreferenceChangeListener.onPreferenceChange( + onPreferenceChangeListener?.onPreferenceChange( this@LearnMoreSwitchPreference, isChecked, ) From 7dd19216fa170e206e7da5da23ced23e616e3471 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 30 Aug 2023 22:04:41 +0300 Subject: [PATCH 033/209] Bug 1850796 - Handle getContext signature updates. Preference getContext method now returns a NonNull Context. --- .../fenix/settings/SettingsFragment.kt | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt index cfd2bf410..0952ae4ac 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SettingsFragment.kt @@ -637,16 +637,17 @@ class SettingsFragment : PreferenceFragmentCompat() { @VisibleForTesting internal fun setupHomepagePreference() { with(requirePreference(R.string.pref_key_home)) { - summary = context?.let { - when { - it.settings().alwaysOpenTheHomepageWhenOpeningTheApp -> - getString(R.string.opening_screen_homepage_summary) - it.settings().openHomepageAfterFourHoursOfInactivity -> - getString(R.string.opening_screen_after_four_hours_of_inactivity_summary) - it.settings().alwaysOpenTheLastTabWhenOpeningTheApp -> - getString(R.string.opening_screen_last_tab_summary) - else -> null - } + summary = when { + context.settings().alwaysOpenTheHomepageWhenOpeningTheApp -> + getString(R.string.opening_screen_homepage_summary) + + context.settings().openHomepageAfterFourHoursOfInactivity -> + getString(R.string.opening_screen_after_four_hours_of_inactivity_summary) + + context.settings().alwaysOpenTheLastTabWhenOpeningTheApp -> + getString(R.string.opening_screen_last_tab_summary) + + else -> null } } } @@ -662,14 +663,12 @@ class SettingsFragment : PreferenceFragmentCompat() { @VisibleForTesting internal fun setupTrackingProtectionPreference() { with(requirePreference(R.string.pref_key_tracking_protection_settings)) { - summary = context?.let { - when { - !it.settings().shouldUseTrackingProtection -> getString(R.string.tracking_protection_off) - it.settings().useStandardTrackingProtection -> getString(R.string.tracking_protection_standard) - it.settings().useStrictTrackingProtection -> getString(R.string.tracking_protection_strict) - it.settings().useCustomTrackingProtection -> getString(R.string.tracking_protection_custom) - else -> null - } + summary = when { + !context.settings().shouldUseTrackingProtection -> getString(R.string.tracking_protection_off) + context.settings().useStandardTrackingProtection -> getString(R.string.tracking_protection_standard) + context.settings().useStrictTrackingProtection -> getString(R.string.tracking_protection_strict) + context.settings().useCustomTrackingProtection -> getString(R.string.tracking_protection_custom) + else -> null } } } @@ -677,14 +676,12 @@ class SettingsFragment : PreferenceFragmentCompat() { @VisibleForTesting internal fun setupCookieBannerPreference() { with(requirePreference(R.string.pref_key_cookie_banner_settings)) { - summary = context?.let { - isVisible = it.settings().shouldShowCookieBannerUI + isVisible = context.settings().shouldShowCookieBannerUI - if (it.settings().shouldUseCookieBanner) { - getString(R.string.reduce_cookie_banner_option_on) - } else { - getString(R.string.reduce_cookie_banner_option_off) - } + summary = if (context.settings().shouldUseCookieBanner) { + getString(R.string.reduce_cookie_banner_option_on) + } else { + getString(R.string.reduce_cookie_banner_option_off) } } } From 583e06c7f20c6f9a6271d1390d4983b29f70e16a Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 2 Sep 2023 00:02:57 +0000 Subject: [PATCH 034/209] Import translations from android-l10n --- app/src/main/res/values-ar/strings.xml | 554 ++------------------- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-pa-rIN/strings.xml | 12 +- 4 files changed, 59 insertions(+), 511 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 5bf8351c9..ec997ef63 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -12,7 +12,7 @@ فعّل التصفّح الخاص عطّل التصفّح الخاص - + ابحث أو أدخِل عنوانا @@ -20,8 +20,6 @@ ستظهر الألسنة الخاصة هنا. - - لسان واحد مفتوح. انقر لتبديل الألسنة. حدّدتَ %1$d @@ -36,55 +34,25 @@ اخرج من وضع التحديد المتعدد احفظ الألسنة المحدّدة في التجميعة - - حدّدتَ %1$s - - ألغيت تحديد %1$s - - خرجت من وضع التحديد المتعدد - - دخلت وضع التحديد المتعدد، حدّد الألسنة لحفظها في تجميعة محدد - - - أحدث العلامات - - العلامات المحفوظة حديثًا - - أظهر الكل اعرض كل العلامات المحفوظة - - أظهر زر كل العلامات المحفوظة ‏%1$s من Mozilla. - - أنت في جلسة خاصة يمسح %1$s تأريخ البحث والتصفح لديك عندما تُغلق الألسنة بوضع التصفح الخاص أو تُنهي التطبيق. على الرغم من أن هذا لا يجعلك مجهول الهوية إلى المواقع أو مقدّم خدمة الإنترنت لديك، إلا أنه يسهّل عليك إخفاء ما تفعله في الشبكة على أي شخص آخر يستخدم هذا الجهاز. الخرافات الشائعة بخصوص التصفح الخاص - - احذف الجلسة - - - - أضِف اختصارًا لفتح الألسنة الخاصة من الشاشة الرئيسية. - - أضِف اختصارًا - + لا، شكرًا - - - يمكنك ضبط Firefox ليفتح الروابط في التطبيقات تلقائيا. انتقل إلى الإعدادات @@ -110,8 +78,6 @@ عطّله من الإعدادات أتريد إغلاقها تلقائيًا بعد شهر؟ - - سيُغلق Firefox الألسنة التي لم تعرضها منذ شهر تلقائيًا. أغلِق @@ -133,38 +99,19 @@ زر ”اعرض كل الألسنة الحديثة“ - - اعرض كل الألسنة الحديثة - - نتائج البحث عن ”%1$s“ - - المواقع: %1$s - - - عدد المواقع: %d أحدث ما زرت - - عمليات البحث الأخيرة أزِل اعرض كل الاستكشافات السابقة - - زر عرض كل الاستكشافات السابقة - - الألسنة المفتوحة السابق @@ -173,12 +120,8 @@ أعِد التحميل أوقف - - حرّر العلامة الإضافات - - الامتدادات ما من إضافات هنا @@ -195,20 +138,14 @@ أضِف إلى شاشة البداية ثبّت - - الألسنة المُزامنة أعِد المزامنة ابحث في الصفحة - - لسان خاص احفظ في التجميعة شارِك - - شارِك مع… افتح في %1$s @@ -224,8 +161,6 @@ أغلِق منظور القارئ افتح في التطبيق - - المظهر خصّص منظور القارئ @@ -234,23 +169,15 @@ حرّر - - خصّص البداية خصّص صفحة البداية الشاشة الرئيسية - - تعذّر الاتصال، لم أتعرّف على مخطّط المسار. - اللغة المحددة - - ابحث اتبع لغة الجهاز @@ -265,8 +192,6 @@ محرّك البحث إعدادات محرّك البحث - - الآن فقط ابحث باستعمال: املأ الرابط من الحافظة @@ -277,39 +202,17 @@ أتسمح بعرض اقتراحات البحث في الجلسات الخاصة؟ سيُشارك %s كل ما تكتب في شريط العنوان مع محرك البحث المبدئي. - - اطّلع على المزيد - + ابحث عن %s ابحث مباشرة من شريط العنوان - - - ما جديد Firefox - - من الأسهل الآن المتابعة من حيث توقفت. - - صفحة بداية Firefox مخصّصة - - انتقل إلى الألسنة المفتوحة والعلامات وتأريخ التصفح. - - ألسنة مرتّبة وواضحة - - رتّب فوضى الألسنة باستعمال قوّة التخطيط المحسّن وميزة الإغلاق التلقائي للألسنة. - - عمليات البحث الأخيرة - - - ألقِ نظرة أخرى على أحدث عمليات البحث من صفحة البداية والألسنة. - - - تُسهّل الآن صفحة بداية Firefox مواصلة ما كنتَ تركته سابقًا. ستجد فيها أحدث الألسنة والعلامات ونتائج البحث. - - - - افتح في لسان Firefox جديد + + إعدادات البحث + + ابحث هذه المرة في: + ابحث @@ -321,39 +224,35 @@ الإعدادات - - الأساسيات عام عن + + اختر واحدة + + أدر اختصارات البحث + + حرر المحركات الظاهرة في قائمة البحث + + المحركات الظاهرة في قائمة البحث محرّك البحث المبدئي البحث + + محركات البحث شريط العناوين - - مساعدة قيّمه في متجر غوغل - - أعطِنا رأيك عن %1$s - - حقوقك - - كلمات السر - - بطاقات الائتمان والعناوين اضبطه ليكون المتصفّح المبدئي متقدّم - - الخصوصية الخصوصية والأمان @@ -368,6 +267,7 @@ إن سمحت فستظهر الألسنة الخاصة حين فتح أكثر من تطبيق أضِف اختصارًا للتصفح الخاص + الإتاحة @@ -378,8 +278,6 @@ تعدّل خادوم حسابات Firefox/Sync. يُنهي التطبيق لإجراء التغييرات… الحساب - - لِج شريط الأدوات @@ -390,8 +288,6 @@ الإيماءات خصّص - - زامِن العلامات والتأريخ وأكثر باستعمال حساب Firefox حساب Firefox @@ -402,10 +298,6 @@ اختيارات البيانات جمع البيانات - - تنويه الخصوصية - - أدوات المطوّرين التنقيح عن بعد عبر USB @@ -432,6 +324,7 @@ افتح الروابط في التطبيقات مدير التنزيل الخارجي + الإضافات @@ -460,11 +353,6 @@ أحدث ما زرت - - عمليات البحث الأخيرة - - Pocket الخلفيات @@ -478,13 +366,6 @@ نجح تحديث الخلفية! اعرضها - - انقر الشعار لتغيير خلفية الشاشة - - تنقّل بين الصور وحدّثها دون مغادرة صفحة البداية. - - شعار Firefox - غيّر خلفية الشاشة، زر @@ -492,7 +373,6 @@ الإضافة مثبّتة فعلًا - زامِن الآن @@ -540,22 +420,12 @@ تنبيهات الألسنة المستلمة من أجهزة Firefox الأخرى. وصل لسان - - وصلت ألسنة لسان من %s - - الحماية من التعقّب - - الحماية من التعقّب - - احجب المحتوى والنصوص البرمجية التي تتعقّبك على الإنترنت الاستثناءات - - عُطّلت الحماية من التعقّب في هذه المواقع شغّلها في كل المواقع @@ -563,40 +433,19 @@ اطّلع على المزيد - - تليمتري - الاستخدام والبيانات التقنية شارك بيانات المتصفح فيما يتعلق بالأداء و الاستخدام و العتاد و التخصيصات مع Mozilla لمساعدتنا في جعل %1$s أفضل بيانات التسويق - - يُشارك بيانات الميزات التي تستعملها في %1$s مع Leanplum، شركة التسويق للمحمول التي نتعامل معها. يشارك بيانات الاستخدام الأساسية مع Adjust، الشركة التي نتعامل معها للتسويق على الهواتف الدراسات تسمح لمؤسسة Mozilla بتثبيت الدراسات وتشغيلها - - التجارب - - يسمح بأن تثبّت Mozilla بيانات المزايا التجريبية وتجمعها - - مُبلّغ الانهيار - - خدمة التموضع من Mozilla - - - تقرير صحة %s - - - - فعّل «تزامُن» - - لِج + لِج لإعادة الاتصال @@ -605,10 +454,6 @@ firefox.com/pair ضوئيا]]> - - افتح الكمرة - - ألغِ @@ -638,10 +483,6 @@ مرّر شريط الأدوات إلى أعلى لفتح الألسنة - - الجلسات - - لقطات الشاشة التنزيلات @@ -659,26 +500,11 @@ التأريخ لسان جديد - - ابحث في الصفحة - - قائمة القراءة - - ابحث الإعدادات - - عنصر قائمة في التأريخ أغلِق - - عدد المواقع: %d - - عدد المواقع: %d - الألسنة المُغلقة حديثًا @@ -701,10 +527,6 @@ قائمة شبكة - - مجموعات البحث - - جمّع المواقع التي لها علاقة ببعضها البعض معًا إغلاق الألسنة @@ -749,8 +571,6 @@ أزِل نشطة - - قد يثبّت Firefox بعض الدراسات ويشغّلها من وقت لآخر. اطّلع على المزيد @@ -766,8 +586,6 @@ الألسنة المفتوحة - جلسة خاصة - الألسنة الخاصة الألسنة المُزامنة @@ -779,10 +597,6 @@ خاص زامِن - - الألسنة المفتوحة - - احفظ في التجميعة شارِك كل الألسنة @@ -795,12 +609,6 @@ إعدادات اللسان أغلِق كل الألسنة - - لسان جديد - - انتقل إلى الصفحة الرئيسية - - بدّل وضع اللسان علّم @@ -819,26 +627,8 @@ أغلِق اللسان ”%s“ افتح قائمة الألسنة - - أغلِق كل الألسنة - - شارِك الألسنة احفظ الألسنة في التجميعة - - قائمة الألسنة - - شارِك اللسان - - احذف - - احفظ - - شارِك - - صورة الجلسة الحالية - - احفظ في التجميعة حذف المجموعة @@ -856,37 +646,22 @@ احذف من التأريخ ‏%1$s (الوضع الخاص) - - احفظ - - الألسنة الأخرى - - احذف التأريخ - - أمتأكّد من مسح التأريخ؟ حُذف التأريخ حُذف %1$s - - امسح احذف حدّدتَ %1$d - - احذف العناصر (عددها %1$d) اليوم الأمس - - آخر 24 ساعة آخر 7 أيام @@ -908,9 +683,6 @@ The first parameter is the number of downloads selected --> حدّدتَ %1$d - - افتح - أزِل @@ -919,8 +691,6 @@ نأسف. يتعذر على %1$s تحميل هذه الصفحة. - - يمكنك محاولة استعادة اللسان أو إغلاقه أسفله. أرسِل تقرير الانهيار إلى Mozilla @@ -928,23 +698,11 @@ استعِد اللسان - - خيارات الجلسات - - - شارِك الجلسة - - - قائمة العلامات - - اختر مجلدًا أمتأكّد من حذف هذا المجلد؟ سيحذف %s العناصر المحدّدة. - - حُذف %1$s أضِف مجلدًا @@ -954,8 +712,6 @@ حرّر حرّر - - اختر انسخ @@ -1005,8 +761,6 @@ تراجَع - - الصلاحيات انتقل إلى الإعدادات موصى به - - أدِر تصاريح الموقع امسح التصاريح @@ -1049,8 +801,6 @@ حجبه أندرويد الاستثناءات - - مفعّل معطّل @@ -1125,25 +875,19 @@ - أرسِل وشارِك - شارِك شارِك - - شارك الرابط أرسل إلى جهاز كل الإجراءات المستخدمة حديثًا - - لِج كي تبدأ المزامنة لِج إلى «المزامنة» - + أرسله إلى كل الأجهزة أعِد الاتصال بالتزامن @@ -1168,63 +912,31 @@ صِلْ جهازًا آخر… - - جلسة تصفح خاصة - - حذف الألسنة الخاصة أغلِق الألسنة الخاصة - - افتح - - احذف وافتح - - تدعمه التسويق - - ‏%1$s سريع وخاص - - اجعل %1$s متصفّحك المبدئي حُذفت التجميعة تغيّر اسم التجميعة - - حُذف اللسان - - حُذفت الألسنة أُغلق اللسان أُغلقت الألسنة - - أُغلقت الألسنة! حُفظت العلامات! - - اعرض - - أُضيف إلى المواقع الشائعة! أُغلق اللسان الخاص أُغلقت الألسنة الخاصة - - حُذفت الألسنة الخاصة تراجَع أُزيلت الصفحة - - تراجَع - - أكّد اسمح بأن يفتح %1$s ‏%2$s @@ -1268,17 +980,14 @@ الألسنة: %d - تأريخ التصفح وبيانات الموقع + تأريخ التصفح وبيانات الموقع + + التأريخ العناوين: %d - - التأريخ - - الصفحات: %d - الكعكات + الكعكات ستخرج من معظم المواقع @@ -1294,14 +1003,10 @@ احذف بيانات التصفح عند المغادرة - يحذف بيانات التصفح تلقائيا حين تنقر ”غادِر“ من القائمة الرئيسية - يحذف بيانات التصفح تلقائيا حين تنقر ”غادِر“ من القائمة الرئيسية غادِر - - سيحذف هذا كل بيانات تصفحك. سيحذف %s بيانات التصفح المحددّة. @@ -1313,100 +1018,40 @@ يحذف بيانات التصفح… - - - صار Firefox Preview الآن Firefox Nightly - - تُحدّث النسخة الليلية من Firefox في كل ليلة وتُضاف إليها مزايا تجريبية جديدة. -ولكن قد يكون استقرارها أقل من العادية. نزّل متصفّح بيتا لتجربة أكثر استقرارًا. - - نزّل نسخة Firefox لأندرويد التجريبية - - - انتقلت النسخة الليلية من Firefox من هنا - - لن يتلقى هذا التطبيق تحديثات الأمان بعد الآن. يُنصح بالتوقف عن استخدام هذا التطبيق والانتقال إلى النسخة الليلية الجديدة. -لنقل علاماتك وجلسات الولوج والتأريخ إلى تطبيق آخر، افتح حساب Firefox. - - انتقل إلى النسخة الليلية الجديدة - - - انتقلت النسخة الليلية من Firefox من هنا - - لن يتلقى هذا التطبيق تحديثات الأمان بعد الآن. ننصح بتنزيل النسخة الليلية الجديدة والتوقف عن استخدام هذا التطبيق. -لنقل علاماتك وجلسات الولوج والتأريخ إلى تطبيق آخر، افتح حساب Firefox. - - نزّل النسخة الليلية الجديدة - - - - مرحبًا بك في %s! - - ألديك حساب؟ - - زامِن Firefox بين الأجهزة - - اسحب العلامات والتأريخ وكلمات السر إلى Firefox على هذا الجهاز. - - ولجت ببريد %s على متصفّح Firefox آخر على هذا الجهاز. أتريد الولوج بنفس الحساب؟ - - نعم، سألج بنفس الحساب - - تَلج الآن… - - سجّل حسابًا - - لا تلج + + اسحب العلامات والتأريخ وكلمات السر إلى Firefox على هذا الجهاز. التزامن يعمل - - فشل الولوج - - خصوصية دائمة - - يُوقف Firefox تلقائيًا الشركات من تعقّبك خفيةً في أرجاء الوِب. - القياسي (المبدئي) + القياسي (المبدئي) - يوازن بين الخصوصية والأداء. ستتحمّل الصفحات كالعادة. - - صارم (مستحسن) + يوازن بين الخصوصية والأداء. ستتحمّل الصفحات كالعادة. - صارم + صارم - يحجب متعقّبات أكثر فتتحمّل الصفحات أسرع، ولكن قد تعطب بعض المزايا في الصفحات. + يحجب متعقّبات أكثر فتتحمّل الصفحات أسرع، ولكن قد تعطب بعض المزايا في الصفحات. - اختر مكان شريط الأدوات كما تريد - - ضَع شريط الأدوات في متناول اليد. أبقِه في الأسفل، أو انقله إلى الأعلى. - - خصوصيتك - - صمّمنا لك %s لتقدر على التحكّم فيما تُشاركه عبر الشبكة، وما تُشاركه معنا. + اختر مكان شريط الأدوات كما تريد - اقرأ تنويه الخصوصية + اقرأ تنويه الخصوصية - ابدأ التصفح + ابدأ التصفح - اختر السمة + اختر السمة - وفّر طاقة البطارية واحمِ نظرك مع الوضع الداكن. + وفّر طاقة البطارية واحمِ نظرك مع الوضع الداكن. - آلي + آلي - يتأقلم حسب إعدادات الجهاز + يتأقلم حسب إعدادات الجهاز - سمة داكنة + سمة داكنة - سمة فاتحة + سمة فاتحة أُرسلت الألسنة! @@ -1428,8 +1073,6 @@ استعمل البريد بدل المسح أنشِئ واحدًا لمزامنة Firefox بين الأجهزة.]]> - - سيتوقف Firefox عن مزامنة حسابك، لكن لن يحذف أيًا من بيانات تصفحك على هذا الجهاز. سيتوقف %s عن مزامنة حسابك، لكن لن يحذف أيًا من بيانات تصفحك على هذا الجهاز. @@ -1445,23 +1088,15 @@ إعدادات الحماية الحماية الموسّعة من التعقب - - تصفّح ولا أحد ورائك - - لتعبّر الكاف في ”بياناتك“ عنك أنت. يحميك %s من عديد من المتعقّبات المعروفة والتي تريد معرفة ما تفعله في المواقع. اطّلع على المزيد القياسي (المبدئي) - - يوازن بين الخصوصية والأداء. ستتحمّل الصفحات كالعادة. ما يحجبه أسلوب الحماية ضد التعقّب المعياري صارم - - يحجب متعقّبات أكثر فتتحمّل الصفحات أسرع، ولكن قد تعطب بعض المزايا في الصفحات. ما يحجبه أسلوب الحماية ضد التعقّب الصارم @@ -1487,8 +1122,6 @@ في كل الألسنة في الألسنة الخاصة فقط - - في الألسنة المخصصة فقط المُعدّنات المعمّاة @@ -1528,10 +1161,6 @@ عُد - - حقوقك - - المكتبات مفتوحة المصدر التي نستخدم ما جديد %s @@ -1568,11 +1197,6 @@ قائمة التنقيح: بقيت من النقرات %1$d لتفعيلها فُعّلت قائمة التنقيح - - عدد الألسنة: 1 - - عدد الألسنة: %d - انسخ @@ -1620,10 +1244,6 @@ زامِن جلسات الولوج زامِن جلسات الولوج بين الأجهزة - - أعِد الاتصال - - لِج إلى «المزامنة» جلسات الولوج المحفوظة @@ -1641,36 +1261,16 @@ احذف كل الاستثناءات ابحث في جلسات الولوج - - أبجديًا - - المستخدمة حديثًا الموقع اسم المستخدم كلمة السر - - أعِد إدخال رمز PIN - - ألغِ القفل لعرض جلسات الولوج المحفوظة - - هذا الاتصال ليس آمنا. بيانات الولوج المدخلة هنا عرضة للخطر. - - اطّلع على المزيد - - أتريد أن يحفظ %s جلسة الولوج هذه؟ - - احفظ - - لا تحفظ نُسخت كلمة السر إلى الحافظة نُسخ اسم المستخدم إلى الحافظة - - نُسخ الموقع إلى الحافظة انسخ كلمة السر @@ -1681,8 +1281,6 @@ امسح اسم المستخدم امسح اسم المضيف - - انسخ الموقع افتح الموقع في المتصفح @@ -1713,7 +1311,6 @@ افرز قائمة جلسات الولوج - بطاقات الائتمان @@ -1729,6 +1326,7 @@ أدِر البطاقات المحفوظة + أضِف بطاقة @@ -1743,8 +1341,6 @@ سنة تاريخ الانتهاء الاسم على البطاقة - - الاسم المستعار للبطاقة احذف البطاقة @@ -1753,7 +1349,7 @@ احفظ احفظ - + ألغِ @@ -1798,19 +1394,13 @@ نص البحث المستخدم - استبدِل الاستعلام بِ‍ ”%s“. مثال:\nhttps://www.google.com/search?q=%s - - اطّلع على المزيد + استبدِل الاستعلام بِ‍ ”%s“. مثال:\nhttps://www.google.com/search?q=%s تفاصيل محرك البحث المخصّص - - رابط ”اطّلع على المزيد“ أدخِل اسم محرك البحث - - يوجد بالفعل محرك بالاسم ”%s“. أدخِل نص البحث @@ -1825,19 +1415,6 @@ حُذف %s - - مرحبًا بك في %s الجديد - - ينتظرك بعد التحديث متصفّح أُعيد تصميمه تمامًا بأداء أفضل وميزات تُساعدك لإنجاز المزيد على الإنترنت.\n\nمن فضلك انتظر ريثما نحدّث %s ونسترجع - - يحدّث %s… - - ابدأ %s - - اكتمل الترحيل - - كلمات السر - لتسمح بالتصريح: @@ -1864,14 +1441,8 @@ أمتأكد من مسح التصريح لهذا الموقع؟ ما من مواقع مستثناة - - أهم المقالات أمتأكد من حذف هذه العلامة؟ - - أضِف للمواقع الشائعة - - أزِل من المواقع المهمة تثبّت منها: %1$s @@ -1893,8 +1464,6 @@ حقل نصوص قابل للتعديل لكلمة سر الولوج. احفظ التغييرات على الولوج. - - أهمِل التعديلات حرّر @@ -1936,23 +1505,14 @@ لا ألسنة مفتوحة - - - وصلت إلى أقصى حدّ للمواقع الشائعة - - لإضافة موقع شائع جديد، أزِل واحدًا. اضغط مطولًا على الموقع واختر ”أزِل“. حسنًا، فهمت - - المواقع الأكثر زيارة الاختصارات الاسم - - اسم الموقع الأكثر زيارة - + حسنا ألغِ @@ -1981,25 +1541,6 @@ الإغلاق التلقائي مفعّل - - - ساعدنا على تحسين Firefox - - - لماذا اخترت تعطيل ميزة الألسنة غير النشطة؟ - - لا أعرف طريقة عملها - - أفضّل إلغاء الألسنة القديمة بيدي أنا - - الفترة الزمنية (أسبوعان) طويلة جدا - - الفترة الزمنية (أسبوعان) قصيرة جدا - - أرسِل - - أغلِق - اضبط روابط المواقع والبريد الإلكتروني والرسائل لتفتح تلقائيًا في Firefox. @@ -2022,10 +1563,9 @@ قصص حسب الموضوع اكتشف المزيد - - تدعمها Pocket. جزء من عائلة Firefox. ‏%s اطّلع على المزيد - + + diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 48db34d08..7ea48c5b2 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -385,7 +385,7 @@ Αναζήτηση - + Μηχανές αναζήτησης Γραμμή διευθύνσεων diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 7964033f2..f813cffd2 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -642,7 +642,7 @@ - + A kiegészítők ideiglenesen le vannak tiltva Egy vagy több kiegészítő működése leállt, ami instabillá teszi a rendszert. A %1$s sikertelenül próbálta újraindítani a kiegészítőt.\n\nA kiegészítők nem fognak újraindulni a jelenlegi munkamenet alatt.\n\nA kiegészítők eltávolítása vagy letiltása megoldhatja a problémát. diff --git a/app/src/main/res/values-pa-rIN/strings.xml b/app/src/main/res/values-pa-rIN/strings.xml index ca845fec2..515c3d205 100644 --- a/app/src/main/res/values-pa-rIN/strings.xml +++ b/app/src/main/res/values-pa-rIN/strings.xml @@ -649,6 +649,14 @@ ਐਡ-ਆਨ ਪਹਿਲਾਂ ਹੀ ਇੰਸਟਾਲ ਹੈ + + + ਐਡ-ਆਨ ਆਰਜ਼ੀ ਤੌਰ ਉੱਤੇ ਅਸਮਰੱਥ ਹਨ + + ਐਡ-ਆਨ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ + + ਐਡ-ਆਨ ਨੂੰ ਬੰਦ ਕਰਕੇ ਜਾਰੀ ਰੱਖੋ + ਖਾਤੇ ਦਾ ਇੰਤਜ਼ਾਮ ਕਰੋ @@ -1379,7 +1387,7 @@ %d ਟੈਬਾਂ - ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ ਅਤੇ ਸਾਈਟ ਡਾਟਾ + ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ ਅਤੇ ਸਾਈਟ ਡਾਟਾ ਬਰਾਊਜ਼ ਕਰਨ ਦਾ ਅਤੀਤ - ਕੂਕੀਜ਼ + ਕੂਕੀਜ਼ ਕੂਕੀਜ਼ ਅਤੇ ਸਾਈਟ ਡਾਟਾ From 051782805158c7ee05f643a660a5b0672dc966b4 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sun, 3 Sep 2023 00:03:36 +0000 Subject: [PATCH 035/209] Import translations from android-l10n --- app/src/main/res/values-hy-rAM/strings.xml | 14 ++++++++++++-- app/src/main/res/values-su/strings.xml | 14 ++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml index 62a18ed62..17200807e 100644 --- a/app/src/main/res/values-hy-rAM/strings.xml +++ b/app/src/main/res/values-hy-rAM/strings.xml @@ -634,6 +634,16 @@ Հավելումն արդեն տեղադրված է + + + Հավելումները ժամանակավորապես անջատված են + + Մեկ կամ մի քանի հավելում դադարել են գործել: %1$s-ն անհաջող փորձեց վերամեկնարկել հավելում(ներ)ը:\n\nՀավելումները չեն վերամեկնարկի ընթացիկ աշխատաշրջանում:\n\nՀավելումների հեռացումը կամ անջատումը կարող է ուղղել այս խնդիրը: + + Փորձեք վերագործարկել հավելումները + + Շարունակեք հավելումներն անջատված + Կառավարել հաշիվը @@ -1355,14 +1365,14 @@ %d ներդիրներ - Դիտարկման պատմություն և կայքերի տվյալներ + Դիտարկման պատմություն և կայքերի տվյալներ Դիտարկման պատմություն %d հասցեներ - Cookie-ներ + Cookie-ներ Թխուկներ և կայքի տվյալներ diff --git a/app/src/main/res/values-su/strings.xml b/app/src/main/res/values-su/strings.xml index 375491a80..5fcb16d5d 100644 --- a/app/src/main/res/values-su/strings.xml +++ b/app/src/main/res/values-su/strings.xml @@ -642,6 +642,16 @@ Émboh geus dipasang + + + Add-on tumpur saheulaanan + + Aya add-on anu mugen, matak teu stabil kana sistem. %1$s gagal nyobaan malikan deui add-onna.\n\nAdd-on moal dimimitian ulang dina rintakan anu ayeuna.\n\nMiceun atawa numpurkeun add-on bisa jadi menerkeun ieu masalah. + + Coba balikan deui add-on + + Tuluykeun bari add-on tumpur + Kokolakeun akun @@ -1368,14 +1378,14 @@ %d tab - Jujutan nyungsi jeung data loka + Jujutan nyungsi jeung data loka Jujutan langlangan %d alamat - Réréméh + Réréméh Réréméh jeung data loka From a2e2aedf91711dabf95a6be8574f1647694692d0 Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 4 Sep 2023 00:03:52 +0000 Subject: [PATCH 036/209] Import translations from android-l10n --- app/src/main/res/values-es-rES/strings.xml | 96 ++++++++++++++-------- app/src/main/res/values-is/strings.xml | 14 +++- 2 files changed, 75 insertions(+), 35 deletions(-) diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 85f7edd1e..6f84e3236 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -385,6 +385,8 @@ Buscador predeterminado Buscar + + Buscadores Barra de direcciones @@ -429,8 +431,6 @@ Cancelar - Pedir soporte - Enviar petición ¿Solicitar ayuda para este sitio? @@ -620,11 +620,17 @@ %s clásico - Edición limitada + Edición limitada + + Series de artistas - La nueva colección Voces Independientes. %s + La nueva colección Voces Independientes. %s + + La colección Voces Independientes. %s - La nueva colección Voces Independientes. + La nueva colección Voces Independientes. + + La colección Voces Independientes. Prueba un toque de color @@ -638,6 +644,16 @@ El complemento ya está instalado + + + Los complementos están desactivados temporalmente + + Uno o más complementos han dejado de funcionar, lo que ha hecho que tu sistema sea inestable. %1$s ha intentado reiniciar los complementos sin éxito.\n\nLos complementos no se reiniciarán durante tu sesión actual.\n\nQuitar o deshabilitar los complementos puede solucionar este problema. + + Intenta reiniciando los complementos + + Continuar con los complementos desactivados + Administrar cuenta @@ -1232,7 +1248,9 @@ Descartar - No se puede imprimir + No se puede imprimir + + No se puede imprimir esta página Imprimir @@ -1380,12 +1398,16 @@ %d pestañas - Historial de navegación y datos de sitios + Historial de navegación y datos de sitios + + Historial de navegación %d direcciones - Cookies + Cookies + + Cookies y datos del sitio Se cerrará sesión en la mayoría de los sitios @@ -1443,60 +1465,60 @@ - Te damos la bienvenida a un mejor Internet + Te damos la bienvenida a un mejor Internet - Un navegador creado para las personas, no para el lucro. + Un navegador creado para las personas, no para el lucro. - Continúa donde lo dejaste. + Continúa donde lo dejaste. - Sincroniza pestañas y contraseñas entre dispositivos para cambiar de pantalla sin interrupciones. + Sincroniza pestañas y contraseñas entre dispositivos para cambiar de pantalla sin interrupciones. - Iniciar sesión + Iniciar sesión Sync está activado - Protección de privacidad de manera predeterminada + Protección de privacidad de manera predeterminada - %1$s bloquea automáticamente a las compañías que te siguen en secreto por la web. + %1$s bloquea automáticamente a las compañías que te siguen en secreto por la web. - Incluye Total Cookie Protection para evitar que los rastreadores usen cookies para espiarte entre sitios. + Incluye Total Cookie Protection para evitar que los rastreadores usen cookies para espiarte entre sitios. - Estándar (predeterminado) + Estándar (predeterminado) - Equilibrado para privacidad y rendimiento. Las páginas se cargarán normalmente. + Equilibrado para privacidad y rendimiento. Las páginas se cargarán normalmente. - Estricto + Estricto - Bloquea más rastreadores para que las páginas se carguen más rápido, pero pueden fallar algunas funcionalidades de la página. + Bloquea más rastreadores para que las páginas se carguen más rápido, pero pueden fallar algunas funcionalidades de la página. - Escoge la posición de la barra de herramientas + Escoge la posición de la barra de herramientas - Mantenlo en la parte inferior o muévelo a la parte superior. + Mantenlo en la parte inferior o muévelo a la parte superior. - Tú controlas tus datos + Tú controlas tus datos - Firefox te da control sobre lo que compartes en línea y lo que compartes con nosotros. + Firefox te da control sobre lo que compartes en línea y lo que compartes con nosotros. - Lee nuestro aviso de privacidad + Lee nuestro aviso de privacidad - ¿Listo para abrir un Internet increíble? + ¿Listo para abrir un Internet increíble? - Comienza a navegar + Comienza a navegar - Elige tu tema + Elige tu tema - Ahorra un poco de batería y descansa la vista con el modo oscuro. + Ahorra un poco de batería y descansa la vista con el modo oscuro. - Automático + Automático - Se adapta a la configuración de tu dispositivo + Se adapta a la configuración de tu dispositivo - Tema oscuro + Tema oscuro - Tema claro + Tema claro ¡Pestañas enviadas! @@ -1942,6 +1964,14 @@ Detalles del buscador personalizado + + API de sugerencias de búsqueda (opcional) + + URL de la API de sugerencias de búsqueda + + Reemplazar la consulta con “%s”. Ejemplo:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Reemplazar la consulta con “%s”. Ejemplo:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Guardar diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index cfab8270e..ccf53d02f 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -635,6 +635,16 @@ Viðbót er þegar uppsett + + + Viðbætur eru tímabundið óvirkar + + Ein eða fleiri viðbætur hættu að virka, sem gerir kerfið þitt óstöðugt. %1$s reyndi árangurslaust að endurræsa viðbæturnar.\n\nViðbætur verða ekki endurræstar meðan á núverandi lotu stendur.\n\nEf þú fjarlægir eða slekkur á viðbótum gæti það lagað þetta vandamál. + + Prófaðu að endurræsa viðbætur + + Halda áfram með viðbætur óvirkar + Sýsla með reikning @@ -1353,14 +1363,14 @@ %d flipar - Ferilsgögn og vefssvæðagögn + Ferilsgögn og vefssvæðagögn Vafurferill %d vistföng - Smákökur + Smákökur Vefkökur og gögn vefsvæðis From 43aef9067a05f0c54d89331de99448cd4ddba933 Mon Sep 17 00:00:00 2001 From: DreVla Date: Wed, 26 Jul 2023 10:50:00 +0300 Subject: [PATCH 037/209] Bug 1833493 - Update Tab List Item title and url text style In order to adhere to the new UI/UX type scale for Android, the compose `TabListItem` Display title and url text style have been set to body1 and body2 respectively. The xml layout letter spacing for the title and url have been modified as well. --- .../java/org/mozilla/fenix/compose/tabstray/TabListItem.kt | 7 ++----- app/src/main/res/layout/tab_tray_item.xml | 2 ++ 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt b/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt index 437c251e1..054cb4509 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/tabstray/TabListItem.kt @@ -41,7 +41,6 @@ import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import mozilla.components.browser.state.state.TabSessionState import mozilla.components.browser.state.state.createTab import mozilla.components.browser.thumbnails.storage.ThumbnailStorage @@ -166,8 +165,7 @@ fun TabListItem( Text( text = tab.toDisplayTitle().take(MAX_URI_LENGTH), color = FirefoxTheme.colors.textPrimary, - fontSize = 16.sp, - letterSpacing = 0.0.sp, + style = FirefoxTheme.typography.body1, overflow = TextOverflow.Ellipsis, maxLines = 2, ) @@ -175,8 +173,7 @@ fun TabListItem( Text( text = tab.content.url.toShortUrl(), color = FirefoxTheme.colors.textSecondary, - fontSize = 14.sp, - letterSpacing = 0.0.sp, + style = FirefoxTheme.typography.body2, overflow = TextOverflow.Ellipsis, maxLines = 1, ) diff --git a/app/src/main/res/layout/tab_tray_item.xml b/app/src/main/res/layout/tab_tray_item.xml index 874356d71..a1c1fb7ae 100644 --- a/app/src/main/res/layout/tab_tray_item.xml +++ b/app/src/main/res/layout/tab_tray_item.xml @@ -59,6 +59,7 @@ android:ellipsize="end" android:textColor="@color/fx_mobile_text_color_primary" android:textSize="16sp" + android:letterSpacing="0.03" android:maxLines="2" tools:text="Firefox" app:layout_constraintEnd_toStartOf="@id/mozac_browser_tabstray_close" @@ -78,6 +79,7 @@ android:lines="1" android:textColor="@color/fx_mobile_text_color_secondary" android:textSize="14sp" + android:letterSpacing="0.035" tools:text="firefox.com" app:layout_constraintEnd_toStartOf="@id/mozac_browser_tabstray_close" app:layout_constraintStart_toEndOf="@id/mozac_browser_tabstray_card" From e1f96c012afa58bc714ab7ab03b2b75aca943622 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 9 Aug 2023 19:27:17 +0300 Subject: [PATCH 038/209] Bug 1847996 - Migrate from kapt to KSP. --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index 4a0b37a79..8a7877285 100644 --- a/build.gradle +++ b/build.gradle @@ -84,6 +84,7 @@ buildscript { // intermediate variable which can pull from FenixDependenciesPlugin.kt and be used later. ext { detekt_plugin = Versions.detekt + ksp_plugin = Versions.ksp_plugin protobuf_plugin = FenixVersions.protobuf_plugin python_envs_plugin = Versions.python_envs_plugin } @@ -91,6 +92,7 @@ buildscript { plugins { id("io.gitlab.arturbosch.detekt").version("$detekt_plugin") + id("com.google.devtools.ksp").version("$ksp_plugin") } allprojects { From 6000a5786ae38950cf97688b34b37072ae806168 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:37:59 +0300 Subject: [PATCH 039/209] Bug 1847996 - Switch to all-compatibility JVM default mode. See https://issuetracker.google.com/issues/280831518 about why this is needed. This will be fixed in the next Room version: https://android-review.googlesource.com/c/platform/frameworks/support/+/2673596 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 8a7877285..e40b20bc9 100644 --- a/build.gradle +++ b/build.gradle @@ -166,7 +166,7 @@ allprojects { kotlinOptions.jvmTarget = "17" kotlinOptions.allWarningsAsErrors = true kotlinOptions.freeCompilerArgs += [ - "-opt-in=kotlin.RequiresOptIn", "-Xjvm-default=all" + "-opt-in=kotlin.RequiresOptIn", "-Xjvm-default=all-compatibility" ] } } From d2ddcb01ae3596fdd081b9dc87bf8b984f54cd79 Mon Sep 17 00:00:00 2001 From: "alexandra.virvara" Date: Fri, 28 Jul 2023 14:36:48 +0300 Subject: [PATCH 040/209] Bug 1833693: refactor menu items list creation out of TabsTray Banner --- .../mozilla/fenix/tabstray/TabsTrayBanner.kt | 156 +++---------- .../fenix/tabstray/ext/TabsTrayState.kt | 172 +++++++++++++++ .../fenix/tabstray/TabsTrayStateTest.kt | 206 ++++++++++++++++++ 3 files changed, 405 insertions(+), 129 deletions(-) create mode 100644 app/src/test/java/org/mozilla/fenix/tabstray/TabsTrayStateTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt index 00fe9481f..23bc81ecf 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayBanner.kt @@ -34,6 +34,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.dimensionResource @@ -56,6 +57,7 @@ import org.mozilla.fenix.compose.ContextualMenu import org.mozilla.fenix.compose.Divider import org.mozilla.fenix.compose.MenuItem import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.tabstray.ext.getMenuItems import org.mozilla.fenix.theme.FirefoxTheme import kotlin.math.max @@ -123,30 +125,39 @@ fun TabsTrayBanner( }.value ?: false var hasAcknowledgedBanner by remember { mutableStateOf(false) } + val menuItems = multiselectMode.getMenuItems( + resources = LocalContext.current.resources, + shouldShowInactiveButton = isInDebugMode, + onBookmarkSelectedTabsClick = onBookmarkSelectedTabsClick, + onCloseSelectedTabsClick = onDeleteSelectedTabsClick, + onMakeSelectedTabsInactive = onForceSelectedTabsAsInactiveClick, + + selectedPage = selectedPage, + normalTabCount = normalTabCount, + privateTabCount = privateTabCount, + onTabSettingsClick = onTabSettingsClick, + onRecentlyClosedClick = onRecentlyClosedClick, + onEnterMultiselectModeClick = { tabsTrayStore.dispatch(TabsTrayAction.EnterSelectMode) }, + onShareAllTabsClick = onShareAllTabsClick, + onDeleteAllTabsClick = onDeleteAllTabsClick, + onAccountSettingsClick = onAccountSettingsClick, + ) + Column { if (multiselectMode is TabsTrayState.Mode.Select) { MultiSelectBanner( + menuItems = menuItems, selectedTabCount = multiselectMode.selectedTabs.size, - shouldShowInactiveButton = isInDebugMode, onExitSelectModeClick = { tabsTrayStore.dispatch(TabsTrayAction.ExitSelectMode) }, onSaveToCollectionsClick = onSaveToCollectionClick, onShareSelectedTabs = onShareSelectedTabsClick, - onBookmarkSelectedTabsClick = onBookmarkSelectedTabsClick, - onCloseSelectedTabsClick = onDeleteSelectedTabsClick, - onMakeSelectedTabsInactive = onForceSelectedTabsAsInactiveClick, ) } else { SingleSelectBanner( - onTabPageIndicatorClicked = onTabPageIndicatorClicked, + menuItems = menuItems, selectedPage = selectedPage, normalTabCount = normalTabCount, - privateTabCount = privateTabCount, - onEnterMultiselectModeClick = { tabsTrayStore.dispatch(TabsTrayAction.EnterSelectMode) }, - onShareAllTabsClick = onShareAllTabsClick, - onTabSettingsClick = onTabSettingsClick, - onRecentlyClosedClick = onRecentlyClosedClick, - onAccountSettingsClick = onAccountSettingsClick, - onDeleteAllTabsClick = onDeleteAllTabsClick, + onTabPageIndicatorClicked = onTabPageIndicatorClicked, onDismissClick = onDismissClick, ) } @@ -176,16 +187,10 @@ fun TabsTrayBanner( @Suppress("LongMethod", "LongParameterList") @Composable private fun SingleSelectBanner( + menuItems: List, selectedPage: Page, normalTabCount: Int, - privateTabCount: Int, onTabPageIndicatorClicked: (Page) -> Unit, - onEnterMultiselectModeClick: () -> Unit, - onShareAllTabsClick: () -> Unit, - onTabSettingsClick: () -> Unit, - onRecentlyClosedClick: () -> Unit, - onAccountSettingsClick: () -> Unit, - onDeleteAllTabsClick: () -> Unit, onDismissClick: () -> Unit, ) { val selectedColor = FirefoxTheme.colors.iconActive @@ -273,17 +278,7 @@ private fun SingleSelectBanner( .testTag(TabsTrayTestTag.threeDotButton), ) { ContextualMenu( - menuItems = generateSingleSelectBannerMenuItems( - selectedPage, - normalTabCount, - privateTabCount, - onTabSettingsClick, - onRecentlyClosedClick, - onEnterMultiselectModeClick, - onShareAllTabsClick, - onDeleteAllTabsClick, - onAccountSettingsClick, - ), + menuItems = menuItems, showMenu = showMenu, offset = DpOffset(x = 0.dp, y = -ICON_SIZE), onDismissRequest = { showMenu = false }, @@ -298,79 +293,6 @@ private fun SingleSelectBanner( } } -@Suppress("LongParameterList") -@Composable -private fun generateSingleSelectBannerMenuItems( - selectedPage: Page, - normalTabCount: Int, - privateTabCount: Int, - onTabSettingsClick: () -> Unit, - onRecentlyClosedClick: () -> Unit, - onEnterMultiselectModeClick: () -> Unit, - onShareAllTabsClick: () -> Unit, - onDeleteAllTabsClick: () -> Unit, - onAccountSettingsClick: () -> Unit, -): List { - val tabSettingsItem = MenuItem( - title = stringResource(id = R.string.tab_tray_menu_tab_settings), - testTag = TabsTrayTestTag.tabSettings, - onClick = onTabSettingsClick, - ) - val recentlyClosedTabsItem = MenuItem( - title = stringResource(id = R.string.tab_tray_menu_recently_closed), - testTag = TabsTrayTestTag.recentlyClosedTabs, - onClick = onRecentlyClosedClick, - ) - val enterSelectModeItem = MenuItem( - title = stringResource(id = R.string.tabs_tray_select_tabs), - testTag = TabsTrayTestTag.selectTabs, - onClick = onEnterMultiselectModeClick, - ) - val shareAllTabsItem = MenuItem( - title = stringResource(id = R.string.tab_tray_menu_item_share), - testTag = TabsTrayTestTag.shareAllTabs, - onClick = onShareAllTabsClick, - ) - val deleteAllTabsItem = MenuItem( - title = stringResource(id = R.string.tab_tray_menu_item_close), - testTag = TabsTrayTestTag.closeAllTabs, - onClick = onDeleteAllTabsClick, - ) - val accountSettingsItem = MenuItem( - title = stringResource(id = R.string.tab_tray_menu_account_settings), - testTag = TabsTrayTestTag.accountSettings, - onClick = onAccountSettingsClick, - ) - return when { - selectedPage == Page.NormalTabs && normalTabCount == 0 || - selectedPage == Page.PrivateTabs && privateTabCount == 0 -> listOf( - tabSettingsItem, - recentlyClosedTabsItem, - ) - - selectedPage == Page.NormalTabs -> listOf( - enterSelectModeItem, - shareAllTabsItem, - tabSettingsItem, - recentlyClosedTabsItem, - deleteAllTabsItem, - ) - - selectedPage == Page.PrivateTabs -> listOf( - tabSettingsItem, - recentlyClosedTabsItem, - deleteAllTabsItem, - ) - - selectedPage == Page.SyncedTabs -> listOf( - accountSettingsItem, - recentlyClosedTabsItem, - ) - - else -> emptyList() - } -} - private const val MAX_VISIBLE_TABS = 99 private const val SO_MANY_TABS_OPEN = "∞" private val NORMAL_TABS_BOTTOM_PADDING = 0.5.dp @@ -453,46 +375,22 @@ private fun NormalTabsTabIcon(normalTabCount: Int) { /** * Banner displayed in multi select mode. * + * @param menuItems List of items in the menu. * @param selectedTabCount Number of selected tabs. - * @param shouldShowInactiveButton Whether or not to show the inactive tabs menu item. * @param onExitSelectModeClick Invoked when the user clicks on exit select mode button. * @param onSaveToCollectionsClick Invoked when the user clicks on the save to collection button. * @param onShareSelectedTabs Invoked when the user clicks on the share button. - * @param onBookmarkSelectedTabsClick Invoked when user interacts with the bookmark menu item. - * @param onCloseSelectedTabsClick Invoked when user interacts with the close menu item. - * @param onMakeSelectedTabsInactive Invoked when user interacts with the make inactive menu item. */ @Suppress("LongMethod", "LongParameterList") @Composable private fun MultiSelectBanner( + menuItems: List, selectedTabCount: Int, - shouldShowInactiveButton: Boolean, onExitSelectModeClick: () -> Unit, onSaveToCollectionsClick: () -> Unit, onShareSelectedTabs: () -> Unit, - onBookmarkSelectedTabsClick: () -> Unit, - onCloseSelectedTabsClick: () -> Unit, - onMakeSelectedTabsInactive: () -> Unit, ) { var showMenu by remember { mutableStateOf(false) } - val menuItems = mutableListOf( - MenuItem( - title = stringResource(R.string.tab_tray_multiselect_menu_item_bookmark), - onClick = onBookmarkSelectedTabsClick, - ), - MenuItem( - title = stringResource(R.string.tab_tray_multiselect_menu_item_close), - onClick = onCloseSelectedTabsClick, - ), - ) - if (shouldShowInactiveButton) { - menuItems.add( - MenuItem( - title = stringResource(R.string.inactive_tabs_menu_item), - onClick = onMakeSelectedTabsInactive, - ), - ) - } Row( modifier = Modifier diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt b/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt index 96434cc5d..50edcba44 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/ext/TabsTrayState.kt @@ -4,9 +4,181 @@ package org.mozilla.fenix.tabstray.ext +import android.content.res.Resources +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.MenuItem +import org.mozilla.fenix.tabstray.Page import org.mozilla.fenix.tabstray.TabsTrayState.Mode +import org.mozilla.fenix.tabstray.TabsTrayTestTag /** * A helper to check if we're in [Mode.Select] mode. */ fun Mode.isSelect() = this is Mode.Select + +/** + * Returns the list of menu items corresponding to the selected mode + * + * @param resources The resources used to provide the strings for the menu item titles. + * @param shouldShowInactiveButton Whether or not to show the inactive tabs menu item. + * @param selectedPage The currently selected page. + * @param normalTabCount The normal tabs number. + * @param privateTabCount The private tabs number. + * @param onBookmarkSelectedTabsClick Invoked when user interacts with the bookmark menu item. + * @param onCloseSelectedTabsClick Invoked when user interacts with the close menu item. + * @param onMakeSelectedTabsInactive Invoked when user interacts with the make inactive menu item. + * @param onTabSettingsClick Invoked when user interacts with the tab settings menu. + * @param onRecentlyClosedClick Invoked when user interacts with the recently closed menu item. + * @param onEnterMultiselectModeClick Invoked when user enters the multiselect mode. + * @param onShareAllTabsClick Invoked when user interacts with the share all menu item. + * @param onDeleteAllTabsClick Invoked when user interacts with the delete all menu item. + * @param onAccountSettingsClick Invoked when user interacts with the account settings. + */ +@Suppress("LongParameterList") +fun Mode.getMenuItems( + resources: Resources, + shouldShowInactiveButton: Boolean, + selectedPage: Page, + normalTabCount: Int, + privateTabCount: Int, + onBookmarkSelectedTabsClick: () -> Unit, + onCloseSelectedTabsClick: () -> Unit, + onMakeSelectedTabsInactive: () -> Unit, + onTabSettingsClick: () -> Unit, + onRecentlyClosedClick: () -> Unit, + onEnterMultiselectModeClick: () -> Unit, + onShareAllTabsClick: () -> Unit, + onDeleteAllTabsClick: () -> Unit, + onAccountSettingsClick: () -> Unit, +): List { + return if (this.isSelect()) { + generateMultiSelectBannerMenuItems( + resources = resources, + shouldShowInactiveButton = shouldShowInactiveButton, + onBookmarkSelectedTabsClick = onBookmarkSelectedTabsClick, + onCloseSelectedTabsClick = onCloseSelectedTabsClick, + onMakeSelectedTabsInactive = onMakeSelectedTabsInactive, + ) + } else { + generateSingleSelectBannerMenuItems( + resources = resources, + selectedPage = selectedPage, + normalTabCount = normalTabCount, + privateTabCount = privateTabCount, + onTabSettingsClick = onTabSettingsClick, + onRecentlyClosedClick = onRecentlyClosedClick, + onEnterMultiselectModeClick = onEnterMultiselectModeClick, + onShareAllTabsClick = onShareAllTabsClick, + onDeleteAllTabsClick = onDeleteAllTabsClick, + onAccountSettingsClick = onAccountSettingsClick, + ) + } +} + +/** + * Builds the menu items list when in multiselect mode + */ +private fun generateMultiSelectBannerMenuItems( + resources: Resources, + shouldShowInactiveButton: Boolean, + onBookmarkSelectedTabsClick: () -> Unit, + onCloseSelectedTabsClick: () -> Unit, + onMakeSelectedTabsInactive: () -> Unit, +): List { + val menuItems = mutableListOf( + MenuItem( + title = resources.getString(R.string.tab_tray_multiselect_menu_item_bookmark), + onClick = onBookmarkSelectedTabsClick, + ), + MenuItem( + title = resources.getString(R.string.tab_tray_multiselect_menu_item_close), + onClick = onCloseSelectedTabsClick, + ), + ) + if (shouldShowInactiveButton) { + menuItems.add( + MenuItem( + title = resources.getString(R.string.inactive_tabs_menu_item), + onClick = onMakeSelectedTabsInactive, + ), + ) + } + + return menuItems +} + +/** + * Builds the menu items list when in normal mode + */ +@Suppress("LongParameterList") +private fun generateSingleSelectBannerMenuItems( + resources: Resources, + selectedPage: Page, + normalTabCount: Int, + privateTabCount: Int, + onTabSettingsClick: () -> Unit, + onRecentlyClosedClick: () -> Unit, + onEnterMultiselectModeClick: () -> Unit, + onShareAllTabsClick: () -> Unit, + onDeleteAllTabsClick: () -> Unit, + onAccountSettingsClick: () -> Unit, +): List { + val tabSettingsItem = MenuItem( + title = resources.getString(R.string.tab_tray_menu_tab_settings), + testTag = TabsTrayTestTag.tabSettings, + onClick = onTabSettingsClick, + ) + val recentlyClosedTabsItem = MenuItem( + title = resources.getString(R.string.tab_tray_menu_recently_closed), + testTag = TabsTrayTestTag.recentlyClosedTabs, + onClick = onRecentlyClosedClick, + ) + val enterSelectModeItem = MenuItem( + title = resources.getString(R.string.tabs_tray_select_tabs), + testTag = TabsTrayTestTag.selectTabs, + onClick = onEnterMultiselectModeClick, + ) + val shareAllTabsItem = MenuItem( + title = resources.getString(R.string.tab_tray_menu_item_share), + testTag = TabsTrayTestTag.shareAllTabs, + onClick = onShareAllTabsClick, + ) + val deleteAllTabsItem = MenuItem( + title = resources.getString(R.string.tab_tray_menu_item_close), + testTag = TabsTrayTestTag.closeAllTabs, + onClick = onDeleteAllTabsClick, + ) + val accountSettingsItem = MenuItem( + title = resources.getString(R.string.tab_tray_menu_account_settings), + testTag = TabsTrayTestTag.accountSettings, + onClick = onAccountSettingsClick, + ) + return when { + selectedPage == Page.NormalTabs && normalTabCount == 0 || + selectedPage == Page.PrivateTabs && privateTabCount == 0 -> listOf( + tabSettingsItem, + recentlyClosedTabsItem, + ) + + selectedPage == Page.NormalTabs -> listOf( + enterSelectModeItem, + shareAllTabsItem, + tabSettingsItem, + recentlyClosedTabsItem, + deleteAllTabsItem, + ) + + selectedPage == Page.PrivateTabs -> listOf( + tabSettingsItem, + recentlyClosedTabsItem, + deleteAllTabsItem, + ) + + selectedPage == Page.SyncedTabs -> listOf( + accountSettingsItem, + recentlyClosedTabsItem, + ) + + else -> emptyList() + } +} diff --git a/app/src/test/java/org/mozilla/fenix/tabstray/TabsTrayStateTest.kt b/app/src/test/java/org/mozilla/fenix/tabstray/TabsTrayStateTest.kt new file mode 100644 index 000000000..e146074b3 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/tabstray/TabsTrayStateTest.kt @@ -0,0 +1,206 @@ +/* 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.tabstray + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import mozilla.components.support.test.libstate.ext.waitUntilIdle +import mozilla.components.support.test.robolectric.testContext +import org.junit.Assert +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.MenuItem +import org.mozilla.fenix.tabstray.ext.getMenuItems +import org.mozilla.fenix.tabstray.ext.isSelect + +@RunWith(AndroidJUnit4::class) +class TabsTrayStateTest { + + private lateinit var store: TabsTrayStore + + @Before + fun setup() { + store = TabsTrayStore() + } + + @Test + fun `WHEN entering select mode THEN isSelected extension method returns true`() { + store.dispatch(TabsTrayAction.EnterSelectMode) + store.waitUntilIdle() + + Assert.assertTrue(store.state.mode.isSelect()) + } + + @Test + fun `WHEN entering normal mode THEN isSelected extension method returns false`() { + store.dispatch(TabsTrayAction.ExitSelectMode) + store.waitUntilIdle() + + Assert.assertFalse(store.state.mode.isSelect()) + } + + @Test + fun `GIVEN select mode is selected and show the inactive button is true WHEN entering any page THEN return 3 items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Select(emptySet()), + shouldShowInactiveButton = true, + ) + Assert.assertEquals(menuItems.size, 3) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tab_tray_multiselect_menu_item_bookmark), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_multiselect_menu_item_close), + ) + Assert.assertEquals( + menuItems[2].title, + testContext.getString(R.string.inactive_tabs_menu_item), + ) + } + + @Test + fun `GIVEN select mode is selected and show the inactive button is false WHEN entering any page THEN return 2 menu items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Select(emptySet()), + ) + Assert.assertEquals(menuItems.size, 2) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tab_tray_multiselect_menu_item_bookmark), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_multiselect_menu_item_close), + ) + } + + @Test + fun `GIVEN normal mode is selected and no normal tabs are opened WHEN entering normal page THEN return 2 menu items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Normal, + ) + Assert.assertEquals(menuItems.size, 2) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tab_tray_menu_tab_settings), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_menu_recently_closed), + ) + } + + @Test + fun `GIVEN normal mode is selected and multiple normal tabs are opened WHEN entering normal page THEN return 5 menu items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Normal, + normalTabCount = 3, + ) + Assert.assertEquals(menuItems.size, 5) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tabs_tray_select_tabs), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_menu_item_share), + ) + Assert.assertEquals( + menuItems[2].title, + testContext.getString(R.string.tab_tray_menu_tab_settings), + ) + Assert.assertEquals( + menuItems[3].title, + testContext.getString(R.string.tab_tray_menu_recently_closed), + ) + Assert.assertEquals( + menuItems[4].title, + testContext.getString(R.string.tab_tray_menu_item_close), + ) + } + + @Test + fun `GIVEN normal mode is selected and no private tabs are opened WHEN entering private page THEN return 2 menu items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Normal, + selectedPage = Page.PrivateTabs, + ) + Assert.assertEquals(menuItems.size, 2) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tab_tray_menu_tab_settings), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_menu_recently_closed), + ) + } + + @Test + fun `GIVEN normal mode is selected and multiple private tabs are opened WHEN entering private page THEN return 3 menu items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Normal, + selectedPage = Page.PrivateTabs, + privateTabCount = 6, + ) + Assert.assertEquals(menuItems.size, 3) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tab_tray_menu_tab_settings), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_menu_recently_closed), + ) + Assert.assertEquals( + menuItems[2].title, + testContext.getString(R.string.tab_tray_menu_item_close), + ) + } + + @Test + fun `GIVEN normal mode is selected WHEN entering synced page THEN return 2 menu items`() { + val menuItems = initMenuItems( + mode = TabsTrayState.Mode.Normal, + selectedPage = Page.SyncedTabs, + ) + Assert.assertEquals(menuItems.size, 2) + Assert.assertEquals( + menuItems[0].title, + testContext.getString(R.string.tab_tray_menu_account_settings), + ) + Assert.assertEquals( + menuItems[1].title, + testContext.getString(R.string.tab_tray_menu_recently_closed), + ) + } + + private fun initMenuItems( + mode: TabsTrayState.Mode, + shouldShowInactiveButton: Boolean = false, + selectedPage: Page = Page.NormalTabs, + normalTabCount: Int = 0, + privateTabCount: Int = 0, + ): List = + mode.getMenuItems( + resources = testContext.resources, + shouldShowInactiveButton = shouldShowInactiveButton, + selectedPage = selectedPage, + normalTabCount = normalTabCount, + privateTabCount = privateTabCount, + onBookmarkSelectedTabsClick = {}, + onCloseSelectedTabsClick = {}, + onMakeSelectedTabsInactive = {}, + onTabSettingsClick = {}, + onRecentlyClosedClick = {}, + onEnterMultiselectModeClick = {}, + onShareAllTabsClick = {}, + onDeleteAllTabsClick = {}, + onAccountSettingsClick = {}, + ) +} From b44181d3db53cbf34bff252513f573340756016d Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 5 Sep 2023 00:03:15 +0000 Subject: [PATCH 041/209] Import translations from android-l10n --- app/src/main/res/values-es/strings.xml | 96 +++++++++++++++++--------- app/src/main/res/values-gn/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 14 +++- app/src/main/res/values-sl/strings.xml | 16 ++++- app/src/main/res/values-th/strings.xml | 78 ++++++++++++--------- app/src/main/res/values-tr/strings.xml | 2 + 6 files changed, 136 insertions(+), 72 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 85f7edd1e..6f84e3236 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -385,6 +385,8 @@ Buscador predeterminado Buscar + + Buscadores Barra de direcciones @@ -429,8 +431,6 @@ Cancelar - Pedir soporte - Enviar petición ¿Solicitar ayuda para este sitio? @@ -620,11 +620,17 @@ %s clásico - Edición limitada + Edición limitada + + Series de artistas - La nueva colección Voces Independientes. %s + La nueva colección Voces Independientes. %s + + La colección Voces Independientes. %s - La nueva colección Voces Independientes. + La nueva colección Voces Independientes. + + La colección Voces Independientes. Prueba un toque de color @@ -638,6 +644,16 @@ El complemento ya está instalado + + + Los complementos están desactivados temporalmente + + Uno o más complementos han dejado de funcionar, lo que ha hecho que tu sistema sea inestable. %1$s ha intentado reiniciar los complementos sin éxito.\n\nLos complementos no se reiniciarán durante tu sesión actual.\n\nQuitar o deshabilitar los complementos puede solucionar este problema. + + Intenta reiniciando los complementos + + Continuar con los complementos desactivados + Administrar cuenta @@ -1232,7 +1248,9 @@ Descartar - No se puede imprimir + No se puede imprimir + + No se puede imprimir esta página Imprimir @@ -1380,12 +1398,16 @@ %d pestañas - Historial de navegación y datos de sitios + Historial de navegación y datos de sitios + + Historial de navegación %d direcciones - Cookies + Cookies + + Cookies y datos del sitio Se cerrará sesión en la mayoría de los sitios @@ -1443,60 +1465,60 @@ - Te damos la bienvenida a un mejor Internet + Te damos la bienvenida a un mejor Internet - Un navegador creado para las personas, no para el lucro. + Un navegador creado para las personas, no para el lucro. - Continúa donde lo dejaste. + Continúa donde lo dejaste. - Sincroniza pestañas y contraseñas entre dispositivos para cambiar de pantalla sin interrupciones. + Sincroniza pestañas y contraseñas entre dispositivos para cambiar de pantalla sin interrupciones. - Iniciar sesión + Iniciar sesión Sync está activado - Protección de privacidad de manera predeterminada + Protección de privacidad de manera predeterminada - %1$s bloquea automáticamente a las compañías que te siguen en secreto por la web. + %1$s bloquea automáticamente a las compañías que te siguen en secreto por la web. - Incluye Total Cookie Protection para evitar que los rastreadores usen cookies para espiarte entre sitios. + Incluye Total Cookie Protection para evitar que los rastreadores usen cookies para espiarte entre sitios. - Estándar (predeterminado) + Estándar (predeterminado) - Equilibrado para privacidad y rendimiento. Las páginas se cargarán normalmente. + Equilibrado para privacidad y rendimiento. Las páginas se cargarán normalmente. - Estricto + Estricto - Bloquea más rastreadores para que las páginas se carguen más rápido, pero pueden fallar algunas funcionalidades de la página. + Bloquea más rastreadores para que las páginas se carguen más rápido, pero pueden fallar algunas funcionalidades de la página. - Escoge la posición de la barra de herramientas + Escoge la posición de la barra de herramientas - Mantenlo en la parte inferior o muévelo a la parte superior. + Mantenlo en la parte inferior o muévelo a la parte superior. - Tú controlas tus datos + Tú controlas tus datos - Firefox te da control sobre lo que compartes en línea y lo que compartes con nosotros. + Firefox te da control sobre lo que compartes en línea y lo que compartes con nosotros. - Lee nuestro aviso de privacidad + Lee nuestro aviso de privacidad - ¿Listo para abrir un Internet increíble? + ¿Listo para abrir un Internet increíble? - Comienza a navegar + Comienza a navegar - Elige tu tema + Elige tu tema - Ahorra un poco de batería y descansa la vista con el modo oscuro. + Ahorra un poco de batería y descansa la vista con el modo oscuro. - Automático + Automático - Se adapta a la configuración de tu dispositivo + Se adapta a la configuración de tu dispositivo - Tema oscuro + Tema oscuro - Tema claro + Tema claro ¡Pestañas enviadas! @@ -1942,6 +1964,14 @@ Detalles del buscador personalizado + + API de sugerencias de búsqueda (opcional) + + URL de la API de sugerencias de búsqueda + + Reemplazar la consulta con “%s”. Ejemplo:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Reemplazar la consulta con “%s”. Ejemplo:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Guardar diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 406ee31a4..200dedfc6 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -630,7 +630,7 @@ Voces Independientes ñembyaty. - Eipurukuaa sa’y sa’imi + Eiporukuaa sa’y sa’imi Eiporavo mba’erechaha rugua nde ehecharamóva. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index bed466178..a4a245627 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -647,6 +647,16 @@ Дополнение уже установлено + + + Дополнения временно отключены + + Одно или несколько дополнений перестали работать, что сделало вашу систему нестабильной. %1$s безуспешно пытался перезапустить дополнения.\n\nДополнения не будут перезапущены во время текущего сеанса.\n\nУдаление или отключение дополнений может решить эту проблему. + + Попробуйте перезапустить дополнения + + Продолжить с отключенными дополнениями + Управление аккаунтом @@ -1389,14 +1399,14 @@ Вкладок: %d - История просмотра сети и данные сайтов + История просмотра сети и данные сайтов Журнал посещений Адресов: %d - Куки + Куки Куки и данные сайтов diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index aff634e3d..8865cec11 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -636,6 +636,14 @@ Dodatek je že nameščen + + + Dodatki so začasno onemogočeni + + Poskusi znova zagnati dodatke + + Nadaljuj z onemogočenimi dodatki + Upravljanje računa @@ -1365,12 +1373,12 @@ Zavihkov: %d - Zgodovina brskanja in podatki strani + Zgodovina brskanja in podatki strani Naslovov: %d - Piškotki + Piškotki Odjavljeni boste z večine strani @@ -1934,7 +1942,9 @@ URL API-ja za predloge iskanja - Iskano poizvedbo zamenjajte s "%s". Primer:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Iskano poizvedbo zamenjajte s "%s". Primer:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Iskano poizvedbo zamenjajte s "%s". Primer:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Shrani diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 10a1b3d19..da12eb8db 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -420,8 +420,6 @@ ยกเลิก - ขอการรองรับ - ส่งคำขอ ขอการรองรับไซต์นี้ไหม? @@ -614,12 +612,18 @@ คลาสสิค %s - เวลาจำกัด + เวลาจำกัด + + ซีรีส์ศิลปิน - คอลเลกชันเสียงแห่งอิสระใหม่ %s + คอลเลกชันเสียงแห่งอิสระใหม่ %s + + คอลเลกชันเสียงแห่งอิสระ %s - คอลเลกชันเสียงแห่งอิสระใหม่ + คอลเลกชันเสียงแห่งอิสระใหม่ + + คอลเลกชันเสียงแห่งอิสระ ลองเลือกสีสันที่คุณชอบ @@ -1208,7 +1212,9 @@ ปิด - ไม่สามารถพิมพ์ + ไม่สามารถพิมพ์ + + ไม่สามารถพิมพ์หน้านี้ พิมพ์ @@ -1349,12 +1355,12 @@ %d แท็บ - ประวัติการเรียกดูและข้อมูลไซต์ + ประวัติการเรียกดูและข้อมูลไซต์ %d ที่อยู่ - คุกกี้ + คุกกี้ คุณจะถูกออกจากระบบของเว็บไซต์ส่วนใหญ่ @@ -1411,60 +1417,60 @@ - ยินดีต้อนรับสู่อินเทอร์เน็ตที่ดีกว่า + ยินดีต้อนรับสู่อินเทอร์เน็ตที่ดีกว่า - เบราว์เซอร์ที่สร้างขึ้นสำหรับผู้คนเท่านั้น ไม่ใช่ผลกำไร + เบราว์เซอร์ที่สร้างขึ้นสำหรับผู้คนเท่านั้น ไม่ใช่ผลกำไร - หยิบจากที่ที่คุณทำค้างไว้ + หยิบจากที่ที่คุณทำค้างไว้ - ซิงค์แท็บและรหัสผ่านระหว่างอุปกรณ์เพื่อการสลับหน้าจอที่ราบรื่น + ซิงค์แท็บและรหัสผ่านระหว่างอุปกรณ์เพื่อการสลับหน้าจอที่ราบรื่น - ลงชื่อเข้า + ลงชื่อเข้า Sync เปิดอยู่ - การปกป้องความเป็นส่วนตัวตามค่าเริ่มต้น + การปกป้องความเป็นส่วนตัวตามค่าเริ่มต้น - %1$s จะหยุดบริษัทต่าง ๆ ไม่ให้ติดตามคุณอย่างลับ ๆ ขณะที่คุณท่องเว็บโดยอัตโนมัติ + %1$s จะหยุดบริษัทต่าง ๆ ไม่ให้ติดตามคุณอย่างลับ ๆ ขณะที่คุณท่องเว็บโดยอัตโนมัติ - มีการป้องกันคุกกี้ทั้งหมดเพื่อหยุดตัวติดตามไม่ให้ใช้คุกกี้ตามรอยคุณในไซต์ต่าง ๆ + มีการป้องกันคุกกี้ทั้งหมดเพื่อหยุดตัวติดตามไม่ให้ใช้คุกกี้ตามรอยคุณในไซต์ต่าง ๆ - มาตรฐาน (ค่าเริ่มต้น) + มาตรฐาน (ค่าเริ่มต้น) - ความเป็นส่วนตัวและประสิทธิภาพแบบสมดุล หน้าเว็บจะโหลดเป็นปกติ + ความเป็นส่วนตัวและประสิทธิภาพแบบสมดุล หน้าเว็บจะโหลดเป็นปกติ - เข้มงวด + เข้มงวด - ปิดกั้นตัวติดตามเพิ่มเติมเพื่อให้โหลดหน้าเว็บได้เร็วขึ้น แต่การทำงานบางอย่างในหน้าเว็บอาจพัง + ปิดกั้นตัวติดตามเพิ่มเติมเพื่อให้โหลดหน้าเว็บได้เร็วขึ้น แต่การทำงานบางอย่างในหน้าเว็บอาจพัง - เลือกตำแหน่งแถบเครื่องมือของคุณ + เลือกตำแหน่งแถบเครื่องมือของคุณ - เก็บไว้ด้านล่างหรือย้ายไปด้านบน + เก็บไว้ด้านล่างหรือย้ายไปด้านบน - คุณควบคุมข้อมูลของคุณ + คุณควบคุมข้อมูลของคุณ - Firefox ให้คุณควบคุมสิ่งที่คุณแบ่งปันทางออนไลน์และสิ่งที่คุณแบ่งปันกับเรา + Firefox ให้คุณควบคุมสิ่งที่คุณแบ่งปันทางออนไลน์และสิ่งที่คุณแบ่งปันกับเรา - อ่านประกาศความเป็นส่วนตัวของเรา + อ่านประกาศความเป็นส่วนตัวของเรา - พร้อมที่จะเปิดอินเทอร์เน็ตที่น่าทึ่งแล้วหรือยัง? + พร้อมที่จะเปิดอินเทอร์เน็ตที่น่าทึ่งแล้วหรือยัง? - เริ่มการเรียกดู + เริ่มการเรียกดู - เลือกชุดตกแต่งของคุณ + เลือกชุดตกแต่งของคุณ - ประหยัดแบตเตอรี่และถนอมสายตาของคุณโดยด้วยโหมดมืด + ประหยัดแบตเตอรี่และถนอมสายตาของคุณโดยด้วยโหมดมืด - อัตโนมัติ + อัตโนมัติ - ปรับให้เข้ากับการตั้งค่าอุปกรณ์ของคุณ + ปรับให้เข้ากับการตั้งค่าอุปกรณ์ของคุณ - ชุดตกแต่งมืด + ชุดตกแต่งมืด - ชุดตกแต่งสว่าง + ชุดตกแต่งสว่าง ส่งแท็บแล้ว! @@ -1906,6 +1912,12 @@ รายละเอียดเครื่องมือค้นหาที่กำหนดเอง + + API เสนอแนะการค้นหา (ไม่บังคับ) + + URL ของ API เสนอแนะการค้นหา + + แทนที่คิวรีด้วย “%s” ตัวอย่าง:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s บันทึก diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 1e1663a1b..b4028ca8a 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -641,6 +641,8 @@ Eklentiler geçici olarak devre dışı bırakıldı + + Bir veya daha fazla eklenti çalışmayı durdurdu ve sisteminizi kararsız duruma getirdi. %1$s eklentileri yeniden başlatmayı denedi fakat başarısız oldu.\n\nEklentiler mevcut oturumunuz sırasında yeniden başlatılmayacak.\n\nEklentileri kaldırmak veya devre dışı bırakmak bu sorunu çözebilir. Eklentileri yeniden başlatmayı dene From 675cd56875c59de1d09ef52ec8d578e435083044 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Fri, 11 Aug 2023 17:02:03 +0300 Subject: [PATCH 042/209] Bug 1848349 - Sponsored shortcuts TestRail matching --- .../org/mozilla/fenix/ui/SponsoredShortcutsTest.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SponsoredShortcutsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SponsoredShortcutsTest.kt index 0f6e0522a..28a747d86 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SponsoredShortcutsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SponsoredShortcutsTest.kt @@ -49,6 +49,7 @@ class SponsoredShortcutsTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729331 // Expected for en-us defaults @SmokeTest @Test @@ -67,6 +68,7 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729338 @Test fun openSponsoredShortcutTest() { homeScreen { @@ -76,8 +78,9 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729334 @Test - fun openSponsoredShortcutInPrivateBrowsingTest() { + fun openSponsoredShortcutInPrivateTabTest() { homeScreen { sponsoredShortcutTitle = getSponsoredShortcutTitle(2) }.openContextMenuOnSponsoredShortcut(sponsoredShortcutTitle) { @@ -86,9 +89,10 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729335 @Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/25926") @Test - fun verifySponsorsAndPrivacyLinkTest() { + fun openSponsorsAndYourPrivacyOptionTest() { homeScreen { sponsoredShortcutTitle = getSponsoredShortcutTitle(2) }.openContextMenuOnSponsoredShortcut(sponsoredShortcutTitle) { @@ -97,9 +101,10 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729336 @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1807268") @Test - fun verifySponsoredShortcutsSettingsOptionTest() { + fun openSponsoredShortcutsSettingsOptionTest() { homeScreen { sponsoredShortcutTitle = getSponsoredShortcutTitle(2) }.openContextMenuOnSponsoredShortcut(sponsoredShortcutTitle) { @@ -108,6 +113,7 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729337 @Test fun verifySponsoredShortcutsDetailsTest() { homeScreen { @@ -119,6 +125,7 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729328 // 1 sponsored shortcut should be displayed if there are 7 pinned top sites @Test fun verifySponsoredShortcutsListWithSevenPinnedSitesTest() { @@ -169,6 +176,7 @@ class SponsoredShortcutsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1729329 // No sponsored shortcuts should be displayed if there are 8 pinned top sites @Test fun verifySponsoredShortcutsListWithEightPinnedSitesTest() { From 3dd1b13f9bd4d71c21019f666634bd5508e116b9 Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Tue, 5 Sep 2023 13:09:40 +0300 Subject: [PATCH 043/209] Bug 1849576 - Navigation toolbar TestRail matching --- .../mozilla/fenix/helpers/MockWebServer.kt | 2 +- .../fenix/ui/ComposeNavigationToolbarTest.kt | 171 --------------- .../org/mozilla/fenix/ui/ComposeSmokeTest.kt | 67 ------ .../mozilla/fenix/ui/ContextualHintsTest.kt | 75 ------- .../java/org/mozilla/fenix/ui/MainMenuTest.kt | 114 ++++++++++ .../mozilla/fenix/ui/NavigationToolbarTest.kt | 202 +++++++----------- .../java/org/mozilla/fenix/ui/SmokeTest.kt | 67 ------ .../mozilla/fenix/ui/robots/BrowserRobot.kt | 9 - .../androidTest/flank-arm-beta.yml | 1 - .../flank-arm-legacy-api-tests.yml | 6 +- .../androidTest/flank-arm-start-test.yml | 1 - 11 files changed, 194 insertions(+), 521 deletions(-) delete mode 100644 app/src/androidTest/java/org/mozilla/fenix/ui/ContextualHintsTest.kt diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/MockWebServer.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/MockWebServer.kt index 5bbc5f318..9e919a72f 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/MockWebServer.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/MockWebServer.kt @@ -56,7 +56,7 @@ object MockWebServerHelper { * If the dispatcher is unable to read a requested asset, it will fail the test by throwing an * Exception on the main thread. * - * @sample [org.mozilla.fenix.ui.NavigationToolbarTest.visitURLTest] + * @sample [org.mozilla.fenix.ui.BookmarksTest.verifyBookmarkButtonTest] */ const val HTTP_OK = 200 const val HTTP_NOT_FOUND = 404 diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeNavigationToolbarTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeNavigationToolbarTest.kt index 6a1644c1e..35a912596 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeNavigationToolbarTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeNavigationToolbarTest.kt @@ -5,7 +5,6 @@ package org.mozilla.fenix.ui import androidx.compose.ui.test.junit4.AndroidComposeTestRule -import androidx.core.net.toUri import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import okhttp3.mockwebserver.MockWebServer @@ -16,11 +15,8 @@ import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper.runWithSystemLocaleChanged -import org.mozilla.fenix.ui.robots.clickPageObject -import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.navigationToolbar import java.util.Locale @@ -60,51 +56,6 @@ class ComposeNavigationToolbarTest { mockWebServer.shutdown() } - @Test - fun goBackTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(nextWebPage.url) { - verifyUrl(nextWebPage.url.toString()) - }.openThreeDotMenu { - }.goToPreviousPage { - mDevice.waitForIdle() - verifyUrl(defaultWebPage.url.toString()) - } - } - - @Test - fun goForwardTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(nextWebPage.url) { - mDevice.waitForIdle() - verifyUrl(nextWebPage.url.toString()) - }.openThreeDotMenu { - }.goToPreviousPage { - mDevice.waitForIdle() - verifyUrl(defaultWebPage.url.toString()) - } - - // Re-open the three-dot menu for verification - navigationToolbar { - }.openThreeDotMenu { - verifyThreeDotMenuExists() - }.goForward { - verifyUrl(nextWebPage.url.toString()) - } - } - // Swipes the nav bar left/right to switch between tabs @SmokeTest @Test @@ -144,126 +95,4 @@ class ComposeNavigationToolbarTest { } } } - - // Test running on beta/release builds in CI: - // caution when making changes to it, so they don't block the builds - @Test - fun visitURLTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - verifyUrl(defaultWebPage.url.toString()) - } - } - - @Test - fun findInPageTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 3) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openThreeDotMenu { - verifyThreeDotMenuExists() - verifyFindInPageButton() - }.openFindInPage { - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() - enterFindInPageQuery("a") - verifyFindNextInPageResult("1/3") - clickFindInPageNextButton() - verifyFindNextInPageResult("2/3") - clickFindInPageNextButton() - verifyFindNextInPageResult("3/3") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("2/3") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/3") - }.closeFindInPageWithCloseButton { - verifyFindInPageBar(false) - }.openThreeDotMenu { - }.openFindInPage { - enterFindInPageQuery("3") - verifyFindNextInPageResult("1/1") - }.closeFindInPageWithBackButton { - verifyFindInPageBar(false) - } - } - - @Test - fun pdfFindInPageTest() { - val genericURL = - TestAssetHelper.getGenericAsset(mockWebServer, 3) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - clickPageObject(itemWithText("PDF form file")) - }.openThreeDotMenu { - verifyThreeDotMenuExists() - verifyFindInPageButton() - }.openFindInPage { - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() - enterFindInPageQuery("l") - verifyFindNextInPageResult("1/2") - clickFindInPageNextButton() - verifyFindNextInPageResult("2/2") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/2") - }.closeFindInPageWithCloseButton { - verifyFindInPageBar(false) - }.openThreeDotMenu { - }.openFindInPage { - enterFindInPageQuery("p") - verifyFindNextInPageResult("1/1") - }.closeFindInPageWithBackButton { - verifyFindInPageBar(false) - } - } - - @SmokeTest - @Test - fun verifySecurePageSecuritySubMenuTest() { - val defaultWebPage = "https://mozilla-mobile.github.io/testapp/loginForm" - val defaultWebPageTitle = "Login_form" - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.toUri()) { - }.openSiteSecuritySheet { - verifyQuickActionSheet(defaultWebPage, true) - openSecureConnectionSubMenu(true) - verifySecureConnectionSubMenu(defaultWebPageTitle, defaultWebPage, true) - } - } - - @SmokeTest - @Test - fun verifyInsecurePageSecuritySubMenuTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - waitForPageToLoad() - }.openSiteSecuritySheet { - verifyQuickActionSheet(defaultWebPage.url.toString(), false) - openSecureConnectionSubMenu(false) - verifySecureConnectionSubMenu(defaultWebPage.title, defaultWebPage.url.toString(), false) - } - } - - @Test - fun verifyClearCookiesFromQuickSettingsTest() { - val helpPageUrl = "mozilla.org" - - homeScreen { - }.openThreeDotMenu { - }.openHelp { - }.openSiteSecuritySheet { - clickQuickActionSheetClearSiteData() - verifyClearSiteDataPrompt(helpPageUrl) - } - } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt index 8adf0f1c2..0f80d3731 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt @@ -314,71 +314,4 @@ class ComposeSmokeTest { // Dismiss the request mDevice.pressBack() } - - @Test - fun goToHomeScreenBottomToolbarTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } - - @Test - fun goToHomeScreenTopToolbarTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - }.openCustomizeSubMenu { - clickTopToolbarToggle() - }.goBack { - }.goBack { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } - - @Test - fun goToHomeScreenBottomToolbarPrivateModeTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - togglePrivateBrowsingModeOnOff() - } - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } - - @Test - fun goToHomeScreenTopToolbarPrivateModeTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - togglePrivateBrowsingModeOnOff() - }.openThreeDotMenu { - }.openSettings { - }.openCustomizeSubMenu { - clickTopToolbarToggle() - }.goBack { - }.goBack { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ContextualHintsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ContextualHintsTest.kt deleted file mode 100644 index f43eacb5f..000000000 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ContextualHintsTest.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.ui - -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.mozilla.fenix.R -import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText -import org.mozilla.fenix.helpers.MatcherHelper.itemWithDescription -import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset -import org.mozilla.fenix.helpers.TestHelper.getStringResource -import org.mozilla.fenix.ui.robots.clickPageObject -import org.mozilla.fenix.ui.robots.navigationToolbar - -/** - * Tests for verifying the new Cookie protection & homescreen feature hints. - * Note: This involves setting the feature flags On for CFRs which are disabled elsewhere. - * - */ -class ContextualHintsTest { - private lateinit var mockWebServer: MockWebServer - - @get:Rule - val activityTestRule = HomeActivityTestRule( - isJumpBackInCFREnabled = true, - isTCPCFREnabled = true, - isPocketEnabled = false, - isRecentlyVisitedFeatureEnabled = false, - isCookieBannerReductionDialogEnabled = false, - ) - - @Before - fun setUp() { - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - - @Test - fun openTotalCookieProtectionLearnMoreLinkTest() { - val genericPage = getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericPage.url) { - verifyCookiesProtectionHintIsDisplayed(true) - clickPageObject(itemContainingText(getStringResource(R.string.tcp_cfr_learn_more))) - verifyUrl("support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-android") - } - } - - @Test - fun dismissTotalCookieProtectionHintTest() { - val genericPage = getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericPage.url) { - verifyCookiesProtectionHintIsDisplayed(true) - clickPageObject(itemWithDescription(getStringResource(R.string.mozac_cfr_dismiss_button_content_description))) - verifyCookiesProtectionHintIsDisplayed(false) - } - } -} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt index b2d5faf61..cd27e4fe5 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt @@ -17,10 +17,12 @@ import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityTestRule +import org.mozilla.fenix.helpers.MatcherHelper.itemWithText import org.mozilla.fenix.helpers.RecyclerViewIdlingResource import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper import org.mozilla.fenix.helpers.TestHelper.runWithCondition +import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.navigationToolbar class MainMenuTest { @@ -245,4 +247,116 @@ class MainMenuTest { verifyPageContent("REFRESHED") } } + + @Test + fun goBackTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + mDevice.waitForIdle() + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(nextWebPage.url) { + verifyUrl(nextWebPage.url.toString()) + }.openThreeDotMenu { + }.goToPreviousPage { + mDevice.waitForIdle() + verifyUrl(defaultWebPage.url.toString()) + } + } + + @Test + fun goForwardTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + mDevice.waitForIdle() + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(nextWebPage.url) { + mDevice.waitForIdle() + verifyUrl(nextWebPage.url.toString()) + }.openThreeDotMenu { + }.goToPreviousPage { + mDevice.waitForIdle() + verifyUrl(defaultWebPage.url.toString()) + } + + // Re-open the three-dot menu for verification + navigationToolbar { + }.openThreeDotMenu { + verifyThreeDotMenuExists() + }.goForward { + verifyUrl(nextWebPage.url.toString()) + } + } + + @Test + fun findInPageTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 3) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + mDevice.waitForIdle() + }.openThreeDotMenu { + verifyThreeDotMenuExists() + verifyFindInPageButton() + }.openFindInPage { + verifyFindInPageNextButton() + verifyFindInPagePrevButton() + verifyFindInPageCloseButton() + enterFindInPageQuery("a") + verifyFindNextInPageResult("1/3") + clickFindInPageNextButton() + verifyFindNextInPageResult("2/3") + clickFindInPageNextButton() + verifyFindNextInPageResult("3/3") + clickFindInPagePrevButton() + verifyFindPrevInPageResult("2/3") + clickFindInPagePrevButton() + verifyFindPrevInPageResult("1/3") + }.closeFindInPageWithCloseButton { + verifyFindInPageBar(false) + }.openThreeDotMenu { + }.openFindInPage { + enterFindInPageQuery("3") + verifyFindNextInPageResult("1/1") + }.closeFindInPageWithBackButton { + verifyFindInPageBar(false) + } + } + + @Test + fun pdfFindInPageTest() { + val genericURL = + TestAssetHelper.getGenericAsset(mockWebServer, 3) + + navigationToolbar { + }.enterURLAndEnterToBrowser(genericURL.url) { + clickPageObject(itemWithText("PDF form file")) + }.openThreeDotMenu { + verifyThreeDotMenuExists() + verifyFindInPageButton() + }.openFindInPage { + verifyFindInPageNextButton() + verifyFindInPagePrevButton() + verifyFindInPageCloseButton() + enterFindInPageQuery("l") + verifyFindNextInPageResult("1/2") + clickFindInPageNextButton() + verifyFindNextInPageResult("2/2") + clickFindInPagePrevButton() + verifyFindPrevInPageResult("1/2") + }.closeFindInPageWithCloseButton { + verifyFindInPageBar(false) + }.openThreeDotMenu { + }.openFindInPage { + enterFindInPageQuery("p") + verifyFindNextInPageResult("1/1") + }.closeFindInPageWithBackButton { + verifyFindInPageBar(false) + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt index 15c259c01..30f05b740 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/NavigationToolbarTest.kt @@ -12,11 +12,14 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test +import org.mozilla.fenix.R import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText +import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText +import org.mozilla.fenix.helpers.MatcherHelper.itemWithDescription import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.getStringResource import org.mozilla.fenix.helpers.TestHelper.runWithSystemLocaleChanged import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen @@ -54,51 +57,7 @@ class NavigationToolbarTest { mockWebServer.shutdown() } - @Test - fun goBackTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(nextWebPage.url) { - verifyUrl(nextWebPage.url.toString()) - }.openThreeDotMenu { - }.goToPreviousPage { - mDevice.waitForIdle() - verifyUrl(defaultWebPage.url.toString()) - } - } - - @Test - fun goForwardTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(nextWebPage.url) { - mDevice.waitForIdle() - verifyUrl(nextWebPage.url.toString()) - }.openThreeDotMenu { - }.goToPreviousPage { - mDevice.waitForIdle() - verifyUrl(defaultWebPage.url.toString()) - } - - // Re-open the three-dot menu for verification - navigationToolbar { - }.openThreeDotMenu { - verifyThreeDotMenuExists() - }.goForward { - verifyUrl(nextWebPage.url.toString()) - } - } - + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/987326 // Swipes the nav bar left/right to switch between tabs @SmokeTest @Test @@ -118,6 +77,7 @@ class NavigationToolbarTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/987327 // Because it requires changing system prefs, this test will run only on Debug builds @Test fun swipeToSwitchTabInRTLTest() { @@ -139,85 +99,7 @@ class NavigationToolbarTest { } } - // Test running on beta/release builds in CI: - // caution when making changes to it, so they don't block the builds - @Test - fun visitURLTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - verifyUrl(defaultWebPage.url.toString()) - } - } - - @Test - fun findInPageTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 3) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openThreeDotMenu { - verifyThreeDotMenuExists() - verifyFindInPageButton() - }.openFindInPage { - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() - enterFindInPageQuery("a") - verifyFindNextInPageResult("1/3") - clickFindInPageNextButton() - verifyFindNextInPageResult("2/3") - clickFindInPageNextButton() - verifyFindNextInPageResult("3/3") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("2/3") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/3") - }.closeFindInPageWithCloseButton { - verifyFindInPageBar(false) - }.openThreeDotMenu { - }.openFindInPage { - enterFindInPageQuery("3") - verifyFindNextInPageResult("1/1") - }.closeFindInPageWithBackButton { - verifyFindInPageBar(false) - } - } - - @Test - fun pdfFindInPageTest() { - val genericURL = - TestAssetHelper.getGenericAsset(mockWebServer, 3) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - clickPageObject(itemWithText("PDF form file")) - }.openThreeDotMenu { - verifyThreeDotMenuExists() - verifyFindInPageButton() - }.openFindInPage { - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() - enterFindInPageQuery("l") - verifyFindNextInPageResult("1/2") - clickFindInPageNextButton() - verifyFindNextInPageResult("2/2") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/2") - }.closeFindInPageWithCloseButton { - verifyFindInPageBar(false) - }.openThreeDotMenu { - }.openFindInPage { - enterFindInPageQuery("p") - verifyFindNextInPageResult("1/1") - }.closeFindInPageWithBackButton { - verifyFindInPageBar(false) - } - } - + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2265279 @SmokeTest @Test fun verifySecurePageSecuritySubMenuTest() { @@ -233,6 +115,7 @@ class NavigationToolbarTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2265280 @SmokeTest @Test fun verifyInsecurePageSecuritySubMenuTest() { @@ -248,6 +131,8 @@ class NavigationToolbarTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1661318 + @SmokeTest @Test fun verifyClearCookiesFromQuickSettingsTest() { val helpPageUrl = "mozilla.org" @@ -260,4 +145,71 @@ class NavigationToolbarTest { verifyClearSiteDataPrompt(helpPageUrl) } } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1360555 + @SmokeTest + @Test + fun goToHomeScreenTest() { + val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(genericURL.url) { + mDevice.waitForIdle() + }.goToHomescreen { + verifyHomeScreen() + } + } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2256552 + @SmokeTest + @Test + fun goToHomeScreenInPrivateModeTest() { + val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + homeScreen { + togglePrivateBrowsingModeOnOff() + } + + navigationToolbar { + }.enterURLAndEnterToBrowser(genericURL.url) { + mDevice.waitForIdle() + }.goToHomescreen { + verifyHomeScreen() + } + } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2260552 + @SmokeTest + @Test + fun totalCookieProtectionLearnMoreLinkTest() { + activityTestRule.applySettingsExceptions { + it.isTCPCFREnabled = true + } + + val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(genericPage.url) { + verifyCookiesProtectionHintIsDisplayed(true) + clickPageObject(itemContainingText(getStringResource(R.string.tcp_cfr_learn_more))) + verifyUrl("support.mozilla.org/en-US/kb/enhanced-tracking-protection-firefox-android") + } + } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1913589 + @Test + fun totalCookieProtectionHintTest() { + activityTestRule.applySettingsExceptions { + it.isTCPCFREnabled = true + } + + val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(genericPage.url) { + verifyCookiesProtectionHintIsDisplayed(true) + clickPageObject(itemWithDescription(getStringResource(R.string.mozac_cfr_dismiss_button_content_description))) + verifyCookiesProtectionHintIsDisplayed(false) + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt index 485918e56..992906be5 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt @@ -310,71 +310,4 @@ class SmokeTest { // Dismiss the request mDevice.pressBack() } - - @Test - fun goToHomeScreenBottomToolbarTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } - - @Test - fun goToHomeScreenTopToolbarTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - }.openThreeDotMenu { - }.openSettings { - }.openCustomizeSubMenu { - clickTopToolbarToggle() - }.goBack { - }.goBack { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } - - @Test - fun goToHomeScreenBottomToolbarPrivateModeTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - togglePrivateBrowsingModeOnOff() - } - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } - - @Test - fun goToHomeScreenTopToolbarPrivateModeTest() { - val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - togglePrivateBrowsingModeOnOff() - }.openThreeDotMenu { - }.openSettings { - }.openCustomizeSubMenu { - clickTopToolbarToggle() - }.goBack { - }.goBack { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - mDevice.waitForIdle() - }.goToHomescreen { - verifyHomeScreen() - } - } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt index c9e1d4ebf..348f8f20c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -249,15 +249,6 @@ class BrowserRobot { fun verifyMenuButton() = threeDotButton().check(matches(isDisplayed())) - fun verifyNavURLBarItems() { - navURLBar().waitForExists(waitingTime) - verifyMenuButton() - verifyTabCounter("1") - verifySearchBar() - verifySecureConnectionLockIcon() - verifyHomeScreenButton() - } - fun verifyNoLinkImageContextMenuItems(containsURL: Uri) { mDevice.waitNotNull(Until.findObject(By.textContains(containsURL.toString()))) mDevice.waitNotNull( diff --git a/automation/taskcluster/androidTest/flank-arm-beta.yml b/automation/taskcluster/androidTest/flank-arm-beta.yml index c97ea7476..8a7880454 100644 --- a/automation/taskcluster/androidTest/flank-arm-beta.yml +++ b/automation/taskcluster/androidTest/flank-arm-beta.yml @@ -20,7 +20,6 @@ gcloud: performance-metrics: true test-targets: - - class org.mozilla.fenix.ui.NavigationToolbarTest#visitURLTest - class org.mozilla.fenix.ui.HistoryTest#visitedUrlHistoryTest - class org.mozilla.fenix.ui.MainMenuTest#openMainMenuSettingsItemTest - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest diff --git a/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml b/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml index 067913661..024d137a2 100644 --- a/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml +++ b/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml @@ -23,15 +23,13 @@ gcloud: - notPackage org.mozilla.fenix.screenshots - notPackage org.mozilla.fenix.syncintegration - notPackage org.mozilla.fenix.experimentintegration - - class org.mozilla.fenix.ui.NavigationToolbarTest#visitURLTest - - class org.mozilla.fenix.ui.NavigationToolbarTest#goBackTest - - class org.mozilla.fenix.ui.NavigationToolbarTest#goForwardTest + - class org.mozilla.fenix.ui.MainMenuTest#goBackTest + - class org.mozilla.fenix.ui.MainMenuTest#goForwardTest - class org.mozilla.fenix.ui.HistoryTest#visitedUrlHistoryTest - class org.mozilla.fenix.ui.MainMenuTest#openMainMenuSettingsItemTest - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest - - class org.mozilla.fenix.ui.SmokeTest#verifyBasicNavigationToolbarFunctionality - class org.mozilla.fenix.ui.TabbedBrowsingTest#openNewTabTest - class org.mozilla.fenix.ui.TabbedBrowsingTest#openNewPrivateTabTest - class org.mozilla.fenix.ui.TopSitesTest#verifyOpenTopSiteNormalTab diff --git a/automation/taskcluster/androidTest/flank-arm-start-test.yml b/automation/taskcluster/androidTest/flank-arm-start-test.yml index 0eca09930..ba96cadf6 100644 --- a/automation/taskcluster/androidTest/flank-arm-start-test.yml +++ b/automation/taskcluster/androidTest/flank-arm-start-test.yml @@ -20,7 +20,6 @@ gcloud: performance-metrics: true test-targets: - - class org.mozilla.fenix.ui.NavigationToolbarTest#visitURLTest - class org.mozilla.fenix.ui.HistoryTest#visitedUrlHistoryTest - class org.mozilla.fenix.ui.MainMenuTest#openMainMenuSettingsItemTest - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest From f75dd254f6f76609bd560a646b8b0e0455bfd6ef Mon Sep 17 00:00:00 2001 From: gitstart Date: Mon, 20 Mar 2023 05:31:45 +0000 Subject: [PATCH 044/209] Bug 1807126 - The dot from the scale overlaps the percentage number --- app/src/main/res/layout/layout_percentage_seek_bar.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/layout_percentage_seek_bar.xml b/app/src/main/res/layout/layout_percentage_seek_bar.xml index effe3780e..c9cc09806 100644 --- a/app/src/main/res/layout/layout_percentage_seek_bar.xml +++ b/app/src/main/res/layout/layout_percentage_seek_bar.xml @@ -41,7 +41,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:paddingStart="@dimen/top_bar_alignment_margin_start" - android:paddingEnd="60dp" + android:paddingEnd="70dp" app:layout_constraintBottom_toBottomOf="@+id/seekbar_value" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" From 91af52469dbd40a51603eb673f23a4e956989db2 Mon Sep 17 00:00:00 2001 From: gitstart Date: Tue, 5 Sep 2023 11:52:09 +0000 Subject: [PATCH 045/209] Bug 1807126 - Increased gap between slider and scale value --- app/src/main/res/layout/layout_percentage_seek_bar.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/layout_percentage_seek_bar.xml b/app/src/main/res/layout/layout_percentage_seek_bar.xml index c9cc09806..79b6d5c44 100644 --- a/app/src/main/res/layout/layout_percentage_seek_bar.xml +++ b/app/src/main/res/layout/layout_percentage_seek_bar.xml @@ -41,7 +41,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:paddingStart="@dimen/top_bar_alignment_margin_start" - android:paddingEnd="70dp" + android:paddingEnd="80dp" app:layout_constraintBottom_toBottomOf="@+id/seekbar_value" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" From e600cd673a8fe5029ffe9b3e14a4de7f95b23223 Mon Sep 17 00:00:00 2001 From: Noah Bond Date: Fri, 1 Sep 2023 08:57:55 -0700 Subject: [PATCH 046/209] Bug 1851186 - Add new design system color tokens --- .../org/mozilla/fenix/theme/FirefoxTheme.kt | 81 +++++++++++++++++++ app/src/main/res/values-night/colors.xml | 18 ++++- app/src/main/res/values/colors.xml | 18 ++++- 3 files changed, 115 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt b/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt index d18d9bc38..73018dc50 100644 --- a/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt +++ b/app/src/main/java/org/mozilla/fenix/theme/FirefoxTheme.kt @@ -100,10 +100,18 @@ private val darkColorPalette = FirefoxColors( scrim = PhotonColors.DarkGrey90A95, gradientStart = PhotonColors.Violet70, gradientEnd = PhotonColors.Violet40, + layerWarning = PhotonColors.Yellow70A77, + layerConfirmation = PhotonColors.Green80, + layerError = PhotonColors.Pink80, + layerInfo = PhotonColors.Blue50A80, actionPrimary = PhotonColors.Violet60, actionSecondary = PhotonColors.LightGrey30, actionTertiary = PhotonColors.DarkGrey10, actionQuarternary = PhotonColors.DarkGrey80, + actionWarning = PhotonColors.Yellow40A41, + actionConfirmation = PhotonColors.Green70, + actionError = PhotonColors.Pink70A69, + actionInfo = PhotonColors.Blue30, formDefault = PhotonColors.LightGrey05, formSelected = PhotonColors.Violet40, formSurface = PhotonColors.DarkGrey05, @@ -166,10 +174,18 @@ private val lightColorPalette = FirefoxColors( scrim = PhotonColors.DarkGrey30A95, gradientStart = PhotonColors.Violet70, gradientEnd = PhotonColors.Violet40, + layerWarning = PhotonColors.Yellow20, + layerConfirmation = PhotonColors.Green20, + layerError = PhotonColors.Red10, + layerInfo = PhotonColors.Blue50A44, actionPrimary = PhotonColors.Ink20, actionSecondary = PhotonColors.LightGrey30, actionTertiary = PhotonColors.LightGrey40, actionQuarternary = PhotonColors.LightGrey10, + actionWarning = PhotonColors.Yellow60A40, + actionConfirmation = PhotonColors.Green60, + actionError = PhotonColors.Red30, + actionInfo = PhotonColors.Blue50, formDefault = PhotonColors.DarkGrey90, formSelected = PhotonColors.Ink20, formSurface = PhotonColors.LightGrey50, @@ -243,10 +259,18 @@ class FirefoxColors( scrim: Color, gradientStart: Color, gradientEnd: Color, + layerWarning: Color, + layerConfirmation: Color, + layerError: Color, + layerInfo: Color, actionPrimary: Color, actionSecondary: Color, actionTertiary: Color, actionQuarternary: Color, + actionWarning: Color, + actionConfirmation: Color, + actionError: Color, + actionInfo: Color, formDefault: Color, formSelected: Color, formSurface: Color, @@ -332,6 +356,7 @@ class FirefoxColors( // Selected tab var layerAccentOpaque by mutableStateOf(layerAccentOpaque) private set + var scrim by mutableStateOf(scrim) private set @@ -343,6 +368,22 @@ class FirefoxColors( var gradientEnd by mutableStateOf(gradientEnd) private set + // Warning background + var layerWarning by mutableStateOf(layerWarning) + private set + + // Confirmation background + var layerConfirmation by mutableStateOf(layerConfirmation) + private set + + // Error Background + var layerError by mutableStateOf(layerError) + private set + + // Info background + var layerInfo by mutableStateOf(layerInfo) + private set + // Actions // Primary button, Snackbar, Floating action button, Chip selected @@ -361,6 +402,22 @@ class FirefoxColors( var actionQuarternary by mutableStateOf(actionQuarternary) private set + // Warning button + var actionWarning by mutableStateOf(actionWarning) + private set + + // Confirmation button + var actionConfirmation by mutableStateOf(actionConfirmation) + private set + + // Error button + var actionError by mutableStateOf(actionError) + private set + + // Info button + var actionInfo by mutableStateOf(actionInfo) + private set + // Checkbox default, Radio button default var formDefault by mutableStateOf(formDefault) private set @@ -556,10 +613,18 @@ class FirefoxColors( scrim = other.scrim gradientStart = other.gradientStart gradientEnd = other.gradientEnd + layerWarning = other.layerWarning + layerConfirmation = other.layerConfirmation + layerError = other.layerError + layerInfo = other.layerInfo actionPrimary = other.actionPrimary actionSecondary = other.actionSecondary actionTertiary = other.actionTertiary actionQuarternary = other.actionQuarternary + actionWarning = other.actionWarning + actionConfirmation = other.actionConfirmation + actionError = other.actionError + actionInfo = other.actionInfo formDefault = other.formDefault formSelected = other.formSelected formSurface = other.formSurface @@ -625,10 +690,18 @@ class FirefoxColors( scrim: Color = this.scrim, gradientStart: Color = this.gradientStart, gradientEnd: Color = this.gradientEnd, + layerWarning: Color = this.layerWarning, + layerConfirmation: Color = this.layerConfirmation, + layerError: Color = this.layerError, + layerInfo: Color = this.layerInfo, actionPrimary: Color = this.actionPrimary, actionSecondary: Color = this.actionSecondary, actionTertiary: Color = this.actionTertiary, actionQuarternary: Color = this.actionQuarternary, + actionWarning: Color = this.actionWarning, + actionConfirmation: Color = this.actionConfirmation, + actionError: Color = this.actionError, + actionInfo: Color = this.actionInfo, formDefault: Color = this.formDefault, formSelected: Color = this.formSelected, formSurface: Color = this.formSurface, @@ -689,10 +762,18 @@ class FirefoxColors( scrim = scrim, gradientStart = gradientStart, gradientEnd = gradientEnd, + layerWarning = layerWarning, + layerConfirmation = layerConfirmation, + layerError = layerError, + layerInfo = layerInfo, actionPrimary = actionPrimary, actionSecondary = actionSecondary, actionTertiary = actionTertiary, actionQuarternary = actionQuarternary, + actionWarning = actionWarning, + actionConfirmation = actionConfirmation, + actionError = actionError, + actionInfo = actionInfo, formDefault = formDefault, formSelected = formSelected, formSurface = formSurface, diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 14518f397..5f0b1734c 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -23,6 +23,14 @@ @color/photonViolet70 @color/photonViolet40 + + @color/photonYellow70A77 + + @color/photonGreen80 + + @color/photonPink80 + + @color/photonBlue50A80 @@ -32,7 +40,15 @@ @color/photonDarkGrey10 - @color/photonDarkGrey80 + @color/photonDarkGrey80 + + @color/photonYellow40A41 + + @color/photonGreen70 + + @color/photonPink70A69 + + @color/photonBlue30 @color/photonLightGrey05 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 36c89975d..7ec727cd8 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -23,6 +23,14 @@ @color/photonViolet70 @color/photonViolet40 + + @color/photonYellow20 + + @color/photonGreen20 + + @color/photonRed10 + + @color/photonBlue50A44 @@ -32,7 +40,15 @@ @color/photonLightGrey40 - @color/photonLightGrey10 + @color/photonLightGrey10 + + @color/photonYellow60A40 + + @color/photonGreen60 + + @color/photonRed30 + + @color/photonBlue50 @color/photonDarkGrey90 From 3a55ab9a19147426dfdf1a6ec33ae5193f529e0b Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Thu, 10 Aug 2023 18:02:06 +0300 Subject: [PATCH 047/209] Bug 1847141 - Restrict receiving download broadcasts. --- app/src/main/AndroidManifest.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 302b5ed10..f394fabd1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,6 +40,9 @@ + + + Date: Tue, 25 Jul 2023 23:46:12 -0400 Subject: [PATCH 048/209] Bug 1839513 - Pass crash reporter to SessionStorage --- app/src/main/java/org/mozilla/fenix/components/Core.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/Core.kt b/app/src/main/java/org/mozilla/fenix/components/Core.kt index f6d7a2b0d..353a44306 100644 --- a/app/src/main/java/org/mozilla/fenix/components/Core.kt +++ b/app/src/main/java/org/mozilla/fenix/components/Core.kt @@ -210,7 +210,7 @@ class Core( } val sessionStorage: SessionStorage by lazyMonitored { - SessionStorage(context, engine = engine) + SessionStorage(context, engine, crashReporter) } private val locationService: LocationService by lazyMonitored { From 498e8dc151d596aa8dd1b7ac8f9240a4b2b261c6 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 6 Sep 2023 00:03:25 +0000 Subject: [PATCH 049/209] Import translations from android-l10n --- app/src/main/res/values-gn/strings.xml | 6 +++--- app/src/main/res/values-kab/strings.xml | 14 ++++++++++++-- app/src/main/res/values-pa-rIN/strings.xml | 2 ++ app/src/main/res/values-pt-rPT/strings.xml | 14 ++++++++++++-- app/src/main/res/values-sl/strings.xml | 8 ++++++++ 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 200dedfc6..5d8ebf935 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -62,7 +62,7 @@ - %1$s omopotĩ nde jeheka ha kundahára rembiasakue tendayke ñemiguápe emboty térã esẽenguévo ko tembiporu’ígui. Kóva nande kuaukáiramo jepe ñanduti rendápe térã ne ñanduti me’ẽhárape, nombohasýi eime ñemi hag̃ua opaite tapicha oipurúva ko mba’e’oka renondépe. + %1$s omopotĩ nde jeheka ha kundahára rembiasakue tendayke ñemiguápe emboty térã esẽenguévo ko tembiporu’ígui. Kóva nande kuaukáiramo jepe ñanduti rendápe térã ne ñanduti me’ẽhárape, nombohasýi eime ñemi hag̃ua opaite tapicha oiporúva ko mba’e’oka renondépe. Mombe’ugua’u kundahára ñemi rehegua @@ -1616,7 +1616,7 @@ Kookie tenda ojuasáva - Ejoko kookie oipurúva ñanduti marandugua ha mba’apohaguasu mba’ekuaarã resa’ỹijoha ombyatýva kundahára mba’ekuaarã oikévo tendápe. + Ejoko kookie oiporúva ñanduti marandugua ha mba’apohaguasu mba’ekuaarã resa’ỹijoha ombyatýva kundahára mba’ekuaarã oikévo tendápe. Ñemo’ãmbaite kookie rovake oreko kookie tenda reimehápe g̃uarã, avei tapykuehoha ndojepurukuaái ohapykueho hag̃ua tendakuéra pa’ũme. @@ -1675,7 +1675,7 @@ Marandu ñemoneĩgua - Arandukarenda roipurúva + Arandukarenda roiporúva diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index 2af3cb854..92f66f1cc 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -645,6 +645,16 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Azegrir yettusebded yakan + + + Azegrir yensa i kra n wakud + + Yiwen neɣ ugar n yizegrar ḥebsen, rran anagraw-ik d arurkid. %1$s ur yessaweḍ ara ad yales asenker n uzegrir(yizegrar).\n\nIzegrar ugin ad alsen tanekra ɣef teɣzi n tiɣimit-a.\n\Kkes neɣ sens izegrar-a, ahat ad yefru wugur-a. + + Ɛreḍ asenker n uzegrir + + Kemml s uzegrir yensa + Sefrek amiḍan @@ -1377,14 +1387,14 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara %d n yiccaren - Azray n tunigin akked isefka n yismal + Azray n tunigin akked isefka n yismal Azray n tunigin %d n tansiwin - Inagan n tuqqna + Inagan n tuqqna Inagan n tuqqna d yisefka n usmel diff --git a/app/src/main/res/values-pa-rIN/strings.xml b/app/src/main/res/values-pa-rIN/strings.xml index 515c3d205..6085b30f3 100644 --- a/app/src/main/res/values-pa-rIN/strings.xml +++ b/app/src/main/res/values-pa-rIN/strings.xml @@ -652,6 +652,8 @@ ਐਡ-ਆਨ ਆਰਜ਼ੀ ਤੌਰ ਉੱਤੇ ਅਸਮਰੱਥ ਹਨ + + ਇੱਕ ਜਾਂ ਵੱਧ ਐਡ-ਆਨ ਕੰਮ ਨਹੀਂ ਕਰ ਰਹੀਆਂ, ਜਿਸ ਨਾਲ ਤੁਹਾਡਾ ਸਿਸਟਮ ਅਸਥਿਰ ਹੋ ਰਿਹਾ ਹੈ। %1$s ਨੇ ਐਡ-ਆਨ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਅਸਫ਼ਲ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਸੀ।\n\nਤੁਹਾਡੇ ਮੌਜੂਦਾ ਸ਼ੈਸ਼ਨ ਦੇ ਦੌਰਾਨ ਐਡ-ਆਨ ਮੁੜ-ਸ਼ੁਰੂ ਨਹੀਂ ਹੋਵੇਗੀ।\n\nਐਡ-ਆਨ ਨੂੰ ਹਟਾਉਣ ਜਾਂ ਅਸਮਰੱਥ ਕਰਨ ਨਾਲ ਇਹ ਮਸਲਾ ਠੀਕ ਹੋ ਸਕਦਾ ਹੈ। ਐਡ-ਆਨ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index adc5c1497..fde21298f 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -638,6 +638,16 @@ O extra já está instalado + + + As extensões estão temporariamente desativadas + + Um ou mais extensões pararam de funcionar, tornando o sistema instável. %1$s tentou reiniciar a(s) extensão(ões) sem sucesso.\n\nAs extensões não serão reiniciadas durante a sessão atual.\n\nRemover ou desativar extensões pode resolver este problema. + + Experimente reiniciar as extensões + + Continuar com as extensões desativadas + Gerir conta @@ -1359,14 +1369,14 @@ %d separador(es) - Histórico de navegação e dados do site + Histórico de navegação e dados do site Histórico de navegação %d endereço(s) - Cookies + Cookies Cookies e dados de sites diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 8865cec11..001685857 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -378,6 +378,8 @@ Privzeti iskalnik Iskanje + + Iskalnike Naslovna vrstica @@ -639,6 +641,8 @@ Dodatki so začasno onemogočeni + + Eden ali več dodatkov je prenehal delovati, zaradi česar je sistem postal nestabilen. %1$s jih je poskušal znova zagnati, a ni uspel.\n\nMed trenutno sejo se dodatki ne bodo znova zagnali.\n\nTežavo lahko odpravite tako, da odstranite ali onemogočite dodatke. Poskusi znova zagnati dodatke @@ -1374,12 +1378,16 @@ Zavihkov: %d Zgodovina brskanja in podatki strani + + Zgodovino brskanja Naslovov: %d Piškotki + + Piškotke in podatke strani Odjavljeni boste z večine strani From 57e8f3f4f758f64d0115409b9a5729d01d101e5e Mon Sep 17 00:00:00 2001 From: t-p-white Date: Tue, 22 Aug 2023 16:24:49 +0100 Subject: [PATCH 050/209] Bug 1839967 - Updated the Firefox Browser imagery assets. --- .../drawable-hdpi/ic_logo_wordmark_normal.png | Bin 16641 -> 15546 bytes .../ic_logo_wordmark_private.png | Bin 16642 -> 14760 bytes .../drawable-mdpi/ic_logo_wordmark_normal.png | Bin 9998 -> 9303 bytes .../ic_logo_wordmark_private.png | Bin 10026 -> 8571 bytes .../ic_logo_wordmark_normal.png | Bin 23834 -> 23943 bytes .../ic_logo_wordmark_private.png | Bin 23834 -> 22443 bytes .../ic_logo_wordmark_normal.png | Bin 41088 -> 43406 bytes .../ic_logo_wordmark_private.png | Bin 41075 -> 41083 bytes .../ic_logo_wordmark_normal.png | Bin 60050 -> 67252 bytes .../ic_logo_wordmark_private.png | Bin 60080 -> 64068 bytes .../res/drawable/ic_wordmark_text_normal.png | Bin 10762 -> 1922 bytes .../res/drawable/ic_wordmark_text_private.png | Bin 10114 -> 1653 bytes .../drawable-hdpi/ic_logo_wordmark_normal.png | Bin 19126 -> 20400 bytes .../ic_logo_wordmark_private.png | Bin 19601 -> 19107 bytes .../drawable-mdpi/ic_logo_wordmark_normal.png | Bin 11709 -> 12025 bytes .../ic_logo_wordmark_private.png | Bin 12022 -> 11182 bytes .../ic_logo_wordmark_normal.png | Bin 27740 -> 30483 bytes .../ic_logo_wordmark_private.png | Bin 28396 -> 28746 bytes .../ic_logo_wordmark_normal.png | Bin 47119 -> 54713 bytes .../ic_logo_wordmark_private.png | Bin 47881 -> 52530 bytes .../ic_logo_wordmark_normal.png | Bin 68925 -> 85521 bytes .../ic_logo_wordmark_private.png | Bin 70327 -> 82341 bytes .../res/drawable/ic_wordmark_text_normal.png | Bin 13574 -> 2244 bytes .../res/drawable/ic_wordmark_text_private.png | Bin 12389 -> 2169 bytes .../drawable-hdpi/ic_logo_wordmark_normal.png | Bin 16641 -> 15546 bytes .../ic_logo_wordmark_private.png | Bin 16642 -> 14760 bytes .../drawable-mdpi/ic_logo_wordmark_normal.png | Bin 9998 -> 9303 bytes .../ic_logo_wordmark_private.png | Bin 10026 -> 8571 bytes .../ic_logo_wordmark_normal.png | Bin 23834 -> 23943 bytes .../ic_logo_wordmark_private.png | Bin 23834 -> 22443 bytes .../ic_logo_wordmark_normal.png | Bin 41088 -> 43406 bytes .../ic_logo_wordmark_private.png | Bin 41075 -> 41083 bytes .../ic_logo_wordmark_normal.png | Bin 60050 -> 67252 bytes .../ic_logo_wordmark_private.png | Bin 60080 -> 64068 bytes .../res/drawable/ic_wordmark_text_normal.png | Bin 10762 -> 1914 bytes .../res/drawable/ic_wordmark_text_private.png | Bin 10114 -> 1657 bytes 36 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/src/beta/res/drawable-hdpi/ic_logo_wordmark_normal.png b/app/src/beta/res/drawable-hdpi/ic_logo_wordmark_normal.png index 4cb02fda468d4bc57acb137446d0bcb5e83a6c86..ad040413cd5dfdeb886c46e0125176279e52ea88 100644 GIT binary patch literal 15546 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 literal 16641 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 diff --git a/app/src/beta/res/drawable-hdpi/ic_logo_wordmark_private.png b/app/src/beta/res/drawable-hdpi/ic_logo_wordmark_private.png index 037e08be6e7cf35a2f17cd280601503f262b8bac..af4196b6e86f5d29ed9b5dbc15ef85e58fc1591e 100644 GIT binary patch literal 14760 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 literal 16642 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 diff --git a/app/src/beta/res/drawable-mdpi/ic_logo_wordmark_normal.png b/app/src/beta/res/drawable-mdpi/ic_logo_wordmark_normal.png index 193efde2d6791a710f6971940ddc02a620351de7..d378e855c4c860e9b73cde3d693418f81ff851cf 100644 GIT binary patch literal 9303 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�s48(|iHsoPFTR-;Feo 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 FV1gGu2TA|{ literal 9998 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

p`E3xnbpZ^~rb}c^Yk)Ot}>Lk{fO=7gjXpLzF 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 Y1NL%nJzPmGH~;_u07*qoM6N<$f-3=3;Q#;t diff --git a/app/src/beta/res/drawable-mdpi/ic_logo_wordmark_private.png b/app/src/beta/res/drawable-mdpi/ic_logo_wordmark_private.png index c0f356d16a8e8071f21440d2db88d7c7f0d54b84..791d768353fb13c8b125d194949cc5dcf090b757 100644 GIT binary patch literal 8571 zcmV->A%xzEP)Sz2iY*wWP0=-Khj!?{nH2&kU>)PfgcKCP(Xc$eosX)3^0rluxk z#|WE3%2B*dB5MS%2;j?pIW~^xIB<$Bs#>)iDqQtsv{0QuJ$MB*Ohtc{B<_I#H8ooacNJfprLS80`Uo>?+*aat zp}3tUhspiP05vsR1^1#p_!s{+&dlRep|%2CG1_^NzImCz)f(d|q@aFnBRA6H45bqR zYHGFu?y^7hcW*sLnoN=T@hd)kR(}t<$4qQgO`L;Pr_~e?^-DK%i;rGdzjqrJoikyhMBQiQW{tTvc^rVfaeq)Hx^(s zQ&Z#Ceexg9JV5S`o1p?ZFfy3rmSZe+&Vm~Ya9QNpVf#9fX|-zBs79!d4I8y7+fDNJ z6m(hvYHBtsZe1t-?mvX&)uWbrh62lLvwW}x*H7W(6d6r2Jrm%vD5uX^AU9&O<^kU` zc!Zg_BsQ}35lE9JE|~(Fn7rFH8M@5?H8q=oWb*jf;1vChzn=iU3Is$A7XV-y<*flq zc>4Auj3f_%zNYvL;5$D?uCoEw#m-KXly3(j(?wDvacdqovsQ-0##Sq3ZL*>tO3u#& z@Iyl_N%$ohl7~r|4^UHcHIp(zfBoEF9YbWYTxTK}zG!%V3$dPi-2}r-vZA1_cfO{x zT#nLgjLd^mGikYTL%`YJ>&%defQWrP4TwPxH15O|hSPB_wI_fRNuE5UsXwV%J|$^# z2$-c-t*clm{q$ph-C{^ik(6c-$T5?cft}n%sdvA60>`A8rFRp_Yk

?~H-;Qqu`| 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 Ar~m)} diff --git a/app/src/beta/res/drawable-xhdpi/ic_logo_wordmark_normal.png b/app/src/beta/res/drawable-xhdpi/ic_logo_wordmark_normal.png index 7badabff96d0e492565b6c7d457d94429f7791ff..c89456aca75e3c6c5718a8772687e3cd7c9658e0 100644 GIT binary patch literal 23943 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�mXj`P@w(Z)B1>kZAO6d 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 literal 23834 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 literal 41075 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

q$>rl67i(_ji2jWTkbr1b*^EH!f|$w zGscX?8r;MiS6%m)JnL5vowX_r=&8DAnK}Wh-4ANt#@3@`mf{t&AhmZtQ0 z@;5;Pe^J)9ztlJk;e8Wl2G0%j{YRWdbBMEwrQeKZ+ll4Ub*wxi9L8b(}5Ct`*a4CKbAq3X@Y zfUGBWjMXy9ciP%VRr}xhcv%4NiOLU0yrV7=QiBq9G@((@Rekpo}AUsw?U%xfsGELX|KBex}73sJs|H%4l?XxVQOn-?94*15cr1NRmvtm%o z6SgA5n$kl06Uld>FOJz^D{cg*v?-g&x<*<&EHg$;S(E%VC#Sj_1a5%4HVBRyJ#zc% z#XQ+dEH-yYINo7hnHE?m9KaM=Br2IlTK9eNcz?)6K>W7ZqCBRG4{ZAHI}?(PZ{*qilQ z?`GK)XAp;tLg1nU-N~)G@k4L&3q8NNc{%Edr~7GoOv@-lw|D^iIy8O<681i`0%IKu zKvr1L|AbFJ&U_;sCU)*ayb;wCKH>dJ;kkyN(_wNs=8M%3Q&jz?Dvo7TevRDz>#(c9 z$TN-8OE13%c`}$^(T5BHsr-ZgNq-HbeU!Ap5O0|y2@bQDqMDh>hiPK4K&#Foo(~KDDD)_f2{x@`O4~I{&Cu3f4 zP)jh-S}_k3jO^Q)mfKuHsu7-1nd1OaZq>#ce-px_NXxL0a8C<9?3b#3?g(1x?`_>=0&CNC;5nT7+t)ai)8V8vg;=!*`MwppJ?KVYx)h{{KQ!{J zd{wyk9EnBtFoZ*MOHiU#TZYmNFgL@DPEzw+91q{wN2XoY`qn2X%FLgOiVSBz?z=JC zA29jk?{x+NV+V^&1bBP`(D(8FR33t*{k*uYNmApdca}_jTTNyEw%XZ`0*SH$vBC*= zdvkfB0F5eA1~5(nD+sey>oC#vcQOd=D@R|S+1ZJf`byim`6{nkLN z%=rrg5TrYcZWJZ~E~iectJEe#aCcs1JLBSoOK=Qv z^y<%k{4UOgbmPiWbLuJ`ssVntRS>kCEy8Cc5kROpVJCOqEYH>th-Z+5O$6@!tDXA{ z_Tz1xFX>$F_(f~&#VQ*coxe}54!^4Kx#HP7E5#74e@H@EX@o{yzg^;Kgmgps5adJV z#BBdE1z3ARcvIE*46~AxJBOtI3yWd?1bg)GxHULhUk^QK67Tl88hk1mO*gqr<_K?E zxHom^5BvDXDP$%6q`rs+QlX}UcKOvu_oOs8Y}1NoWlo8+y?9@B^(x+29kK(h4=HVm z(S=Jv3{86_F3OEqMwO}Og=l<}qwMoWBum;B6&a-lKIlOwa&d_+?Y#u&p;I+EyB+@D4O_?4lDZE`WWKJ?FZp7wwo{ZMB6Owk_UKa zD^u(?hizd2Pi!|8L7kI)8~S$Ga+K$Ll`7|2Z!ccet}YC*vAtzs5cz~y4H7Ibxowe+ zIFPVk0Qmgp34Z8!Y7d|us*$M-yn{DmD>Fg^ zY;=w$)}dgBk5H1nBUa&Itj^p^`Qf8fw{8mN0=42xnex-)d-YHvIn}KvxgENYN(N7N zN>FqUB}GEoWRL}G-~5Yi@~hg^XEnw_=jS^gEfbos^^_2};lhLXp4+LaT|ofdFKaJ} zfMljWy^90qpJ&ll?4ozh+ju7p{GDCHuCfJM%g%rD4s~2m0mB>?8JXUu?<=dHHX&q!%9y19^aP@ht#Q${8M3hOQ^D$FhsU3+J} z=R1V$<2x(G|89yL{P-#|DJi?O|Gl{`dUrat+M8>Luka>_WcaED4g(B_lo3D+#K8=x zg_vMcj_9EGU0QapcjOp;}SuQb*>Zt7r6_u4{hb=GtI=C-p3Ya^Wst z_X*N94s4aU9uothe(<4*qrQ7RJpZ|(d}$qyFgxtn4r*Mq{8QDwC%bJ2XqhRBRUJxO zgiYHS4D*E^Um0&GG|FIOA&-@KKEE8Zynxu?8$!SfyQ)WtW_=o0wFB%$z@lFuzx()l z9ZnYf>x?IW!4n!gNaL3ckEj8^)yPM)T52`k!I`=YsKdIz~A$L#$GKH|KB1 zr)6#b)xTp+1E0Sc@~F=Hd?#Ei*u2QBC87MmJzLRry zFBro0tsi3K{Sem22~NY`*t#Zk46E3y_Yr#9M0N<$T@#c5Ml7sj2%QZEwu|qP75PGIHt?GUHmO!Y;KXT-`9H*uxQ@GTA) zR?93@t6S7ex2(g3N5}Vst38tp)HtWNvl6j1?Kno9!8C;610dvX=2_&sD~U7h&U;mz zGwX#F+`V+n`Dh68l|cU}oAvlsf|jRzzG2B0oy!mLl5#RVrq>(OUoNV#AAGdDYpy^{2X9EoK7FVWIKs1%BC zk4|KQDuN}pDXJ@ZmLaW!ZfY{| z3HNcO8o%ymor?j&g4AxpJCzlQO2(61phP1kwzBX1YWI*l#}W3Tc<%HDqOcdbEs}b& zOz`)r$k4-V8DOtsN`L;agDRAR>na{fOA-MMYqRq9vu4M#m&w8%rAb&m(Y}3aHD`N# z+RW`*yR&Q&m}iXKG;m z^+)WmQ>%($4hr$+R;ci9nIjN$&_2dCeb$gIamJ|4F`z*|N_O)C<|j^*`$Lk^{lS|v z3_b6g91wK$6rx{0>+TUkrIMhELpwqF#;lD2~Iu{HGA7#|3a-JG3hHtt?{A& zcR`(|wXr%87jH@l`%BQaGLhD4i|sgTK^zjdFtJXls8l?Ovja6lt+luRVb}r8R#^$Q z21@OjBc5TCvXZuFM$Z~rVC!X%)~}lh^$`UB_w<7hHK}$$OJouXfO8u0>VJ3>m>TSt6}GsvkbFjd~p= z5w!Xf(Z}WXq=se|zyhP|ee8xuE;DfWCs&(iztw2t+ONy#h0U$sTD$V~<<*nPv$s2FlTDLwZQMMYa00 zR~V8=BOP?fkBv9g;Il5N6E@_ApGl;+n+~%_WYtpG_$5I_M>d%@%k34F)zK{thmc+j z`3PkZ6Z zjO4V{bT;0_Q1W&^jyP!tE`%-_nwVf|=M}<>-PvmQLZSD2lxuIe@H7dh^5`-ZaRg-) z$Zo#>qd)2-FR7qGMspzqi?)^&7FZn-XsbfjJb~m%bE!Uhb}8*Y9pK|x1=!$h?dBvJ zGtj&Ip#nlfAeFw1VlxnMc<3@5Z?Bgpmx*%oNdB<71#IgiA_~<$jj81uImOc$3yobq z1EvPkDHsKQiF;X4^nY}^)4%N}>aTnma$^n1i_SMsXaw}JaseQbGCn(;%gOMnfOxiV znj-UR1(&CX*s62^HYWqGvE?@%o^OT5!lLE5Tt2>3cmgr&WR%iy9Ffq`?6uz!TNLg* zI@5d@1z4I;T=h1J1`QdRzT7Dh6y*=ZL&0N3nGVW8(NKJ-pxynPSXR=Zye%S~&^3tp~vYN!Vd}AJ! z98Fna_+(u2d5GpuaD;qAs=9H3F~b9*e_Fh{->LC>zmy}*(Mk$4cd%WzjeQv53Um{P zZtyM}xZG8d&0Itm@`^Nqnp-U=Desj4`?xcOR29?h{El5Yuu3qd7#uzZ0Ze+0KAKdG zc<2^wS(!@GZQ@@<>F{pa9T~T5bJ3R=#J8%&pDqVguZ1OwHb^^_vDM66S!Kb%M>*YZ7xIxiTPKC0tqE9sVcU(f!rZH-@o(&$SbUgi zvhn{#d$wM6fw9;r8q=ZCDvoe@N31RrFJi{y70X^}Bt~E`YH_=IAiJwRW-IgvW5)*$ z`z=Wrv%6x4Tia#G12-UUs_Bnf9|aq(1P$362Fe@^-&Rz@flqs>W8j?3n;n#SeKOOD zvBq!vtX4gGX)bvUl`EusY78WO%uE;gl?a9Z|Co9UwlGWE=Bw3ixJ;u| zHDK%OCW*;4s(eOC2gpc6MrN<`;BWm!7PeM=8H{_L+V|NWcL2ol*P@9mXLvxK2SA#6 zHdGk8pKxK^{qN@fN8yYAeK>8PXz2a*hkJLK7s1>|@9d}iv)-ESrVE!;l(~-*;~b4IX~yLD(npj0uARqKsp0<-p?q4( zK29%@50mi=-Jj1d=?k;(RZ|dYx3B!;c*LOF@8hdl_iR*+uhSJ-)Gba#I}z14cLhKk zb|4;}Ggx3)>)2{BYe|>?4)+U-`jcUNmQft^&M59QW5Nf9*>Nx&v@ZwvvI{r0<#JyC z^CeBJLbI`tO^!}*uzWVcT@@tW?2DnBq=_;)ikp1q(jhNtF#U!|=Lrc#3Og_69nyOK zCDgSS^Y@}K>~x4v^7Z6iChU0*6lzDbjvj3LfjZlDi4cbV=1tb(Vat!>h9C1*c%#3k z+NC0Gp_H(p3lyWn83v@3lD`Cm3e&=S1Wh~$4rJ^Ed|iYv@C51WGZ2w*{Jp$k6J)IM zeXkOY1~z`1+uGM%k{xywF47?6{S`D5+Ps;>3~j2R&%M473e~hfmN&J;n2eu3eh{3q zb5?Ri7u*;`{oZCm>v0!9WmG5Y!EXwqyq%7yCXF#da=BUE;a-lyz@jJ=e9nLCNqm={ zH}45hXW(S6JIp!kZT)sbjnMf+1UyhI@^iRKIoN&TM|aZF@O^q;nO9`;E0*eIhl<&0 zcF@TEQ|5?iy?)+-N$p}s=;mMOlv1BkmXuiwM9&SNd{>MJD?E)fm+lu!yvU53cAMx8 zT+8C~Jm@q3^!l#O8l2CiHgoeqb7XuT#^(O^04PAwGfA)TkT+GY_*N zqG}AewRhhtIdH!@7jAY%#i!1ybTKWUq)@CM&%AR5ajKmVyu+4LQ*v4w2TZ!nF{xH# zUTENaW?VO_6GY_H`s2XuSIKOUVgnIdK=I(0J2z|Ifh!RFQazLp(+GbHG~k<-$ThR= zUmr#1Qm#1SVfCjD=i$llPgirFlcxy5dyRClX;rC9=6Rc}R=J^3wsvzCJbLQeUMR@} zK|t+`8BXA<#5A#y$?LlwbF@=>tyYJpmECuT6L-az)iCZ`AniKpv!l#&A$3FzbyS$+ zYdH-#%v0vG?V5w!JhxqF=tGX^mVLpqX7Fp+llU*G8#J@vhoq>F1r{k7*aR<0_5QMm z7)iczCqBn?fnR+4hMNh;$$GH@FQUmDWi3S7Vh{C)d z5VhK6vt)FX(=JEemlJGASo`P*)NiX zNrg7EGWm7Csup{A%Nj8JZltkr2f6*`Xe{b(1)<_p$5M$jSoqB#lN|JYUz{KjVB zBDOio86);1yldHNdVZ{=V=7L;v>ou93MU3EwA+Z>=Xs zzH8<+VQb|jE9q%WBQ_%&{h2d2k?yAIej1}(JEnM5?kF&8+ozySsxk2n#gsq6P?kCa zrV%u71Badc5*ItELYj{dRWoAZ^S6o zgCbjg4<3vE9u!w5#JSxi$++ymGL85=pH`YTG)1Dm4YFFJXCWIL={?sJKJz@s6b4h- z7e2Idi`uz5q7_FM;8FcX{>n3XjBX^vkpNrRqCJulLk(vZBV7RAW6+^kRkrCN5L066 zh$Y|j3MdBcdA$L-lNWgKB!~0)6x6<>Ed4Y{$*4oqa5cH=D(R)FRP-(jzc%2F$2eGS zs0=yL1m#Q1VtqvNQ;mJFSf)Z9@z0z|)E3Xl|J|9ks&RidP##;Go^th*W7AQORcL*E zLfv5bwSu;)$(Ey>F^8%r@s~UVZBBCCf}ztfw(xfbgHHlOfyLNU?#+rz#jM^QEqOd~ zbK3#m?qsE6qPW;ItvfRuu=Ckxn45I-QOg*6wy);Sp0h|!n}q2TqQO1Q0i=$SA}jCt zB~!;#r0<#Uw_a~(&!_GGp+Eo`eGNu|3oe!+u=dYKctW#e&8gzkwua%#KssXUI!!hix`tM;|2=mKSJ!TVSBMLuwG-a6Za|M0ku*O?{X zQ{I*t1gmFA-RG1vhqyx{4bD)KBb|$Z9|Stzu#Yr}k-Ua1)Cqi$uNsJJ{`3^v691K3 zHSzB~DD@;#oRRrnlRYwHUr55>5b)OvWeuH6{@GG{IsGJu!m01pbxGB zJ>%0#NKu++ocJ&0{C#O%pl;5MiFJNN?W*XJ*|;4x|B_SUb-`1D=mru8gNc0>4Im1T z;z{!2$4}tCjl+%B^dpeP^}sRv2t#hFVvxLvpZ48P6@NHzIC%w9pY_5<1<|?wzAmXz zJ14rGGrx3zWW^PS^fc1`AicUNr^4W$df?0@CUPKSyBkyevrf*Iv{!4)j{(H2OZ!M3 zi)ZwIQYmNCLCkhUXAU{sTT+)+dl5>bH)E(k&w)NAo<46|Ca)2c^jVMmBX=?nGR;M+ zqseX`+^#*DXZz>5OG)}|dJ0x2FsqqDr(IR;sd5f64BbzpQ zz`o1xqWa0BbDcg}Y(l+#xxGzv(wkMJ9J->}7d=|QrkD<&AV9RZrwrgSa99?(w8^(x zKG!M~q^GYQe)=6~r5|?tVLslk`&bTt@nKw~g8id<8WPDEPWF9~-e?PSz+OVb!n0DN zXK2hX*h`Zm-QHw?NfqTGSFnAkXFF~f_3V-6GLg*bgWvvzY2*2h6r53Ysqb4WDiyTK zJ=#?btgBux z`$3!QENLK4^^pYPux-$lw){A-vad`d?^zL8Y;Oeg86Yi3mJQDYxbGx|=0Q>| zAzOVu1>|Fr(oib`0|Y6I%`3p0{%=Z{rU25TT~t(4R9q_=_>^J00xqH$K5l|Hu#6F) zEIEg5G@_eur=?Y~v3rs1@kP_3j)eSsa4Vb(-2Jcbmd3_ow*<8^!rczuwnk#>R_{q& z+=1+Scb>cR0y4bZAuO7OABha+Z-uE7m6%y{@Fo(vi>kF zMj@WH=oUg;L<2uG7)Y_1=bE>oyd4+!i1?z$9Uuf8lJgNE;@=O06o}s1$^fk1d>Z&8 z(Wd9&Fh;VPV>=)^hD}rb$uFikGmc(w;S1{O^w{`6w01Ghw@zz6Oj~81Vtp4*<>5NU zw=T>&YZUKMu}9sJYhAaYim3Mt4id)mn>)-6p!`YtAYVAo^=-o0F%$R28YvmK$)QYY zSiEZORe(EO$xMNh88LwoP-&~WoEAB^t$6A-b#h1d11Of?myqzG(W(>X>|UuLYc0%x z@*q$8vo)7D)n4l-Cv5wM^Qoc8{Ef*kl$2THMh``2l7#woYuFENOxSJ}?^;sfYf^Vj zI9YLt!E5Y!Kk7Cs$LH@5jA-k8<*;RpsaB~-4;?hLe3Z0#Q=^lt8U1)ZV*!h_ohD{_ zMOHh{Wk}A=veMVeClIF!FxndQeW(Jm^GF=whKwVA{IR*LkSl$~A|FX4 z%RxfGKjIVfjdkG_u#>YYdCrs)Xye^iCRNCZ1;48E5L-w&dAhojcyIi4nthEXym&Z( z1#vck1!wugQ#>ZDH#kqyCbD#`aoI)T5Kk&JuQ5+ zs1QnB>X`-HzmG0rmYenjwM9(rin+TPsl znDd>F&YIkaYQcom{eAnC(&MMD^)Do`mFB~v+CvUDA&3-q6r4)3XHLGxws4N3X(6cLDQ9K2ajSjSYYAG8tDS#US%Zwx<7&QwABHi~D%BNRx zJk!MlQYu`2Z$O>)yB%G)0I2yIE+ExoTB%oQMQc*0c3?Yt9q{&B?Xx7NdGwxnJMOv> zUBspanV=3(0XJMfe7|~hp84wzI=wKHjZ_f3v#OpuK`Y)ldp3Ek1<}cA^=)e9;8#N- zrbhkP<+Lw+?*ZUVibRS3d-lT3e_|p91FEH@MUn8@jrb`A7iQfZ4MGHRR>3+6AG!u zp=y(u+lm3JpWouF2E75Etc<;ivzXpzENrd~ls>6od!LqGARe?UfoHaNQbLDsv64Y` zjF<4ysa??=io2Z^c2~72{JhLT$Pn*I zqYwUE*+aF(s8=Bo)bMqPy=V^!Dbs?s*$~z$?2g#wIKoB|?R2E*K>Np6*k&rLpd!pVo2HFhOQ!>rf%Pgz$nPLfA0rmgQ*coD+nd&Gb6|`~(Nz34 z!WWH<9W1GzZh(t1byL&rzPQ-IaNvC;^xA4vxDehR%LM1+RMXbN`lR0TT^lQ**5p0 zJ|$PyKvB^M1=AYEF!3N6Tkn9@bbm{nK4{~QOZX2dA^vNOM_yO%n@`uwTeJUJxK{a5 z9im_zG;8@^^qcN`<=J$~lJ2WAsn%aD7AW)_395$RMh;Ai7;+~!u~S}qVbZxtgocft zp-?|O#54)}pwsPqfiLudNfjaCh!hv-fR6PwbmDdlC90XWWSeJwRsPb77l1yfAAGah zaY1UoQDWkaIAZV(ofueCujmZ6TP-41)V0taSGnJ-=4?Vvb)vd9q2gS{MHLboG-7g6 zSAt3CH;fxesa;)tbhc&d6**#nSP9oh^XX6r*I; zy0OQ_Fr-guNls>|oYt!z)cIEB7ddRPjuLd@GhUn|fvzrC~?Gg+v^Gh`K!W)iBz}31c7|eIx)f?NYqn{USBKlOdauVvW*t$)b8}BxIss2B!J^zfDm+kr` zLpx)aN%b)G+>-AlX>T7VZxv>biIOlE>xl_)az#qmLGF;_&FcTE&#L?I#z=t2;_eTT zLNgX4{NN)exP^>arJ|c`Z&|@kxh-CRfg*^5a_(D_O!vF?sqNz@Vo;JOpe{EQ)`^ z=iUCm^gG7Uu!&2(Hp0g+*a&J3i7|=#PN%o}d6GlKWdQX3gt?8;wY6S*Lx8)B^uO#mHBqcIeEFrOZgrru+Sd4s3z9G2x?hogliaRe#G?9-F{66=P`XJ* zyBHupKrrX0X6#VPIh54Ti9QMIWU6)v`6^5`bj ziBo=^>ncThI_VuJW&>n*<@D8iCWB{+1g)f4t|&a^cnAH3hzx0qN~PjrUQH*f$+yVB z+iA!tLRv?A`Xe?em?HgDtJ zs!s)mhH0s$4KUCjA4V%&jDUQWZpY|9ZQnk9Sz9Fz_y9daEc1lWCf$Tn!EIeiCG7TnL&m3=f~VFmpA!(Ba%DGQ9Lai<4Y^JN ze7HV)b0jeqIcnN=^GgO1s-_fED|nT6Tn*z9@)JFN6UE@7W{+z>99Nx#`!;#Q>YGly z{GPAsaQZ#&3JsAA*erN~jZV=5#HV`WHPSAy0!qN(h_Edyp<^7|Y`^D@1}v-T2*nb~ z4@mO5*oHTw8+Jx<;pow>oyv+j2&U+0?Y_}%evnz!^(k#OOk?`7dtb{pS0<5in$G-( z@e5m)MmipBa7d5K`oG=yeYR^Q*i=xWK$G}#w$e-zx*71NzLlF=U%`QhU~+i7G59# za!@fI#-XZSivGJ3FE+YCnefnX>aE_<=KDzXeZPsFRw7C*oup`*$u{2zaztj|UrG&O zt31XbglP!>1|^E=j(WIhpa!}G9$<#6Dp`1VJwp+t{4j=c$MMa z1`@gps5VSsLwl)z_KQ?$&Ly<{?S)SLdr!OP)*MH{7|4a?fV7?jPyOlWd5Mf8W>R;- z+J_Rgtq4W>|61eO*R9f+9*nvCq-4oZ%l=rv33m_8jR#J@m5%EimNZHqH{J#nAQ#cS zd?U?PM9B8v%+GLmQw8BWxA=a7|^w#_9`QFZ_f9bN* znwBOXg~bpd&sd+YIM^}J=p3;f=t|$gnSR9HPxV$rGbu1lL+MZ3Y}+?4F4lw^}gBvU#f4U$f%=lhYM-sG)M}1D{staLz-`$bnLyca)8w!jqRq?dZ?D)YX^nb1(JFj2Fq+VQroTnF(YzQHH&Ocz z`#fE}b|Fr!(^IEhi9t{lQTxU$J%NAkZvg!&W`|*ej986Vo1NAv=YlM8S+m&y2&v^j z4(%|OX$coYSsv;5$DQyo0k?%=TPi2#)JpQtCm4ZbG{@}C(&}3dcQ;GMx=M595 zv-~*QboZ(TJKuc!3Aa+$R#asqWcTfQ>tW*Vd}&5nDV4Q}>hQLCcm_Nt!~leVzxP6( zg8-6>oJ3d+&`u;jI=orf=a4N!RwVy(Z0rrR{l>Xc7oc)Y^-H2JLt+!-n-=%mK8G0$ zf>ly9G+D?lJ)!G<6yG57Do7~87Y|UBAhe>}5s@0v(siP>|C=fq@)kQ%#nk<@JSab12n zNCWL?aE?{80)LT)He^k_Sm5Bg*@g#r0}gHDtA<029KGRLlYPcpDufheS2yNgIhOZE z-55#2&0EZd3s=~bcHHSZC;Y+#B=A-`w!~c);uv!PdR0#d{HVCvIiPBbKyS7lmx0(u z^;=f0QnYw+So^UqM@lQ*^{c3CEvs7{uNW=-l0qHi87$R(BC3XqsKtuhc(x}h&I*$f zReU_dR6`QTcZ;X4`S}Yl`F4|;6Y_%3_!5kb8($ZWLbg`5pOD>Ff*d1sKy=&BT1d);;Tw_uVxR7sOe>F2u7184Fml#)q3P9N<1T^HAm--eIqx@)dIl zwj8cMX5!&W@kfTJ13g=poGR{fO5%vpUvIO!EG=3EIh7=DgJqt_P>ThhLkC!2d5{8Q z!J~)@0sFaA+HxY;_aOUaJwLn7_3u5Q97hd%V(sdb1~z4t`Byz4{Q5$K6l|zBI|s@) zzXSaz+`6lP87+XvkH2`Bpd}n+tCY1{0k@75Vq~lz*ozW+$`+=MrRe+Ly1E_9*rE~= zA^XXu%DblquFdw?xZEB>N98ggm5io!fQOBN``_(V(Rm<8 zVAX#yv4g8H9_-O1vJP*C@wk#(f{)W?G2(?KXLfn1g;oo;e|kZ{Svlxj@kbw*rU%FX z`n)s|cTy{|u-L@uN+}-wk}T?j_`LUgUm#hE`~7_ zoA<=W-#8M~0Qc8gFB@Pn3&f~s6c(e3MOgrkzJ`qLZtFVg1qPd%t#i;*&01`gLy!5Q z8b5#>o2!xh+pZDqk%>j9{}ox%0+34beC&U-kDo&JG~eEXvVV`)iH?oBR|?NRlzXBS z_a=+jXGOWIOcp4^o&9t*ZyCHcE&oC3$TndY3_Gf%POG)IL(Tks#T-~Cybi2GJHnrG zM}q~#*hUs0X|I*Syo!zgizxlNO4N@j!i9S;!Sx`;$qryVpi8G`c{J69E<1yt;-ZeA zFT{P$Nr1uodd_UvoW_#2s5{Je#_8hjE1iz}*Pe_1gMKEYxJHX8duqZ)7$>Gwh9N~% zsPGQ1zfG)F%VcXE7`-9>HUhTEj>h?nP9n7qRahP-jg8vAwY zNP6nw^DFo0XYRdn@(MhLxTV#&Z7Rle>^NRO{hbfyK5m3z|Lo)Sszwe%p+gBT-G3~i zZ0er))6?<8^f;W3Ck3!jySpQ(jUwly1qs=f7qu#~1_(-<0jP2o z@WjKM2i_0p<>9<()%^C~t^vlgfV02(N23&Gs4t(Sby2FS^5AgS`(BfG(w?K6@|w+D z;EkCV=3O1a7lL=bw%Mu2q^0nQvHTVFbR?2B_euf4=5|$NOQtLNQXP@P$r6l@p$^k+ zTy1*dY~nQ1gldxtmX-XBbBkN;)pUR{ZmEWbgFcr>3UlXCxA{K@hQ%g_{~daiUzfM9CGIH3Lfps*866HsKi zRa9?rO$=*S7=tkTq&olnQ<7}mTx2zQo&YE5P4ghejgXyod6u7> z|F}#Ge9n%$iAmMX;=O4ySQ9|+r-Xva{)zIi?X27Ms zHZDS;@F<&u>xHN7fq8QOE_ot8$03*$I^#pXpZKR}>L)xV-F?7_#a01yc%E)71%Rnu z=}bSh#veXH?OnWa{sT-dt+zZZafkC$0a#Iv{n1^{&HfYib;Vh+jB60Q-3l zibqklyK4#2c$fp;cZ;djBL?@dzKJegDeQxwLkNZ6G70$<_*O5>Cm8x?PtBH6kY(q2s*kRGgB~W=^E{APR6b91fh269!L_LROM#82E)_OAbZ9nVC$R3p+i9iZ6$-BatN&tEq{oiJr{Xf=PYPN*XJjTYJJCh-h1p$C4JTwfO7 zt;?p=ZM+$h>iHO-J|OkTClzx$f+u%c3Y5xtDaw!>&gE4#87M=miVcKC^S~>u6?d}o zWmD^6s3U#y0pW%IyD~Mmrh3d;2N8nbSbpFESE=ngp9)2{DTz;>tUcE{fbR@p_D8PI zZen`9WYMK>78qThli>>8xC|P#eX7?*hIKrKp+(HIX-;ZJIx_i6O5PWq=?obOfZ-7` zUBHfMSai*O|93oQB-dI`(jRnFj3%qP;mC={TG_UQKhd(_yJedvQb(Babma%uIceAr zoHJh#Z6yM)>_|LusH+HZbIWZV3}%I$a^2oQINpMQB8|)pSuFesl{>An)N>2CYuPPc z#|(inX3O=uM40#RYvdQSJ`FHDMW=P$SG{mmNo&U$0W#a5zAuk6aK?9m;B6YyFA3w; z#Ph#5s_i3cvW0dlrBT`^pN9ayzQ-I$F(Q3rj;*RNDPp9*XJlV5NoD%-OhYN($;H^# zzhDH2N;#~)cg?IsP!JD(O&_L~pb7ouqqlkpA68(!5Aw1?3Ww~a#11|xXn1uBTVOnA^rpt;jg-qLzeZO~U--N)9 z?xR#-_G8l@XT{z%8=VVdcm}Cp56_r+TTFPyBe;Rxi-CKtUpBn*I@?GZwzV1`{5$4* z)msGtb{$B))`rjSr?Hw{%?X2uS|{fwg^oAw!tku8 z8(8R%6t(PiarscG+MDK@lZ}mNy*FHMmZ)(`0LVSf2py(%=^5w>*Xuk=u=B9+CTA@% zDg9w(#rue7;bJ6oD3<6D>($@}@KQ*!E!IH>78jMU5(!z~q^;n=?BeuaWF4GZm@UGv zi8F%77bhz;rjR1LO28#vD(irw;-cavJ6+#A1(Coh?+x+mRbQO*){h7zlvrI+xz60JGjIc~w?NqGey@Kkk=PQD!+4`^TjnE#uim%Q4&!t6-n>C4^FWJH zr&vx1NsmZJbl@1{;1 zDnfrJcC$q#MMY3hP`K8nc$VoGeE^B@r7aavp0hNU7=$QBDk9VOMDaZmMP4491&f|` zzf{*tGvTeu(upTxGXtC0*sl|14tu!Zc#E^NXh5gwi0>d4#&_Y4W8HU^j+ukh-t|QIBuQt|l0A zJzk>fRpN5T%t|A^Q=>7w5H}E3$u=1Svhc>qWuenLdrMvKq0 zIKRad^Lp+Sup_daWowt7W$luALV7|Bl(H&pE?j_)4Vgy-?O<$zUvE3U^SurgCQ~PP zzeCP~8uFT;t|oElgvJshuZ$#P-vUp~s}{@j&!v9K5nJ(P96`a|8;j|khp=w{0jXI>z!%r#8F9GBM!HY@ zh?^yoe9x1NV_ND~tk_igJp1d+*mrb5B=d9frn};^_z_QSz~*_m+OUyFMg5k*CW2%DG92kDt<|@>PIsBX{11ChEG%E0vrkRsV}A0V+LLL5 zLTgUUL$dM6USBfjDSl`Qf|$`y}l{bD_t-!wr19`~cSx0URu|URVG81jO)* z+S-64rOixWX>c!zNoR8xZi@7SFG$*-m+d2>@|qo8DKN=GW*nwy%q3wh^)|X$*T#?u zjfC@fr_+s)g*w%BuUS7K?96*&Gym?{5{57hQ(8N%-nBw|TOZ;@crS>~0msF(cIEpdN(ks?E_q7C38_58c)XQi zh}!%_?*xb?Yt-g{gJUbib(I}5)|MJ@qpWpJl(gA7G|FVh79~ST&pMBAVT-ZGW7veo zI`#p#$ss=SS)-ZD*$J9pYlHBRh2A>vFkOjRQHeDgm+jUky@bC-S6rOEvyMP5*oB%RR?{_Ytk}Y#dN~MUiDV zxNVb>A-nNUjY21_jhe`acCnbMQ#G;E*33D8VJ$TAw9X6DRS}1s2>i9$8%qn6%lSr^ zpk%}ydR2dQbQiN)jEZA2Kz-Lu1gFziE?dm7QbuYD-*_OqU0XjG@gU5rrK+1M&zKtB zeMcM9{Muo%^}FXsU$}Nlfok(NdxH$@9F^g&=K!jArt4L>F1(CvGC8 zjQm4RK%NoJA^-=%xnRGuOjR#Yy}EihHE(YyaCqSy7BV!?52^iXds{kC!cmpNO4B

fY1x!<1XvNi7e zw-_KThYC1vcN0Oi%3pWDE45o%)S)={WsPQUZ!!}|c0JD^Hs$V>|R_Q2`%uWzH1Q#4!_SUJy-RH@&Lx(-$lv~H8 zI%rR&hNgmk?4g)E&x-QWo8x1Wqjy!WG=kOq9rak{>E32691+{NwCg8)N{EV^3c)%< zUTAWVem+p3h22Yr;xBsm`2S7w(1}!RSNcHgFl!s3eC-NQ;YEC*1bZZs?w(@NNbX!# zgA0ANL_SY*4g4zo`+h9R8x<&q%>q}Vg;$7OD#eOCPr_U{Zqr#*e~X`5lu~=`^rJcs z4yvVP1p;Zba^0^ zSXh%$ZO=onrXy~wJT#(gt+6bsaf>dyI35dDVn%qMc*%nHp5)ju1m5e3<0;^qkeb%) zFg}*o7eZOzmdX=F5+f4L9UvGRzLMXC;hA6EnlljzdE$%8ey*6k{xF|-JO-gMT&veb zLLK# zk45#b-w>Ilbg>CnA?eR@?a7_YhS229<5k`%4to=0>kKX^!1zQE%umc)zcBt(ZORD!)6n<|8II zF*+Ky$)7aWYSB2;?AGX;ry3yKU8<#UVnTNjzp$s`&bW^QIV|cacEmLyEq_@~h{-Lg z-J;9O!b^otQKA0ST-d*vyL02X{R)qiVjjy67<@cgu$SGsW|_C&y@r#1|vS?=aFaouqC5dS^$@&9*2SK&20_Fs<9w@NLi_=r;6C9}-`tB@y2118f zHJlmRO?xBuIC~61!>q>+OQ@o3>YavbR(j{aC}vFeMakx}rEGTpfZ)}c{>M!i#cAsq z@hu4p^fNW9Y8=@Yh3;(6z_rAayK}}YkAIt?&%^Go3M{@$A;m|5@JD{cGHjyNf6HeY z)~xi#S>zeXOm)P^`9BM-zkk83_~MYsqMC4Gy@E;sOZ6=p%8gPGM< zyUXNj7uxv7@e1f<=<#Yu+p?p|#K)+iV#05grw^JXA@$#&Pk}KZq8i#U z%lDG}V>@~Zo$!BAiWt~S30~0>3%fasB?N1y+VXu6N?s4ek4b^{_bT!DFKcDE%4GJv z95-JgCVDMM%x`pkGQa=AJ6I$A^1v*cS98k+{{Ddcq1a^Qscok zRN8A9xbE!Ci`YsSq#f904gFdgWSF#klD5Zhyt*|$!gj})-*8?>zURe7y4Vl?J8Q@@ z#??2wT{G!b@Wh{q>Mgc+H6Zhb6hXpi)~yu>^2?v^K4)K+b4$te^nAx?h0*ipwf|Ne z6(rdXE{%mzr$16`hsX{M>qZgVK@`qLhSHP4X;;1*+;|~m&u&FHe}k+4&V_if{tKD> z&_Txa-c0P;*UY3(&Y0T^oz)`)<&;VyX1(hO5Ou7Kb)8U4X@Mt z_JxkjWSt0S(zs%G?JAspTP(*Fu?CWw7-4#TQv>p zA9VIzsXM@=_6{-VxSh5<8QIK7pSZ$Q;7%zad?(|Z0*nDd(!KjKQ4_K}UQL2}TeFoM zWUet1$~-=Cf4+$fzwTu}bN|Gfjsd3FnvI4L)Fsuv0JPqg8UzulOrYIQ z=2V?a76v?rY&4NEoRHHhpVDLxh~~Y-hEaz`7FOVkR_amhJ8FzexANIJbPvGRV-Y{$$qs*`$JFbNB;D1bDcQ(bhr5u zt`tIW6!8*jj*;svOyigq6k`Dgk|ZH}3{!6Q0H?+O-!q@J4+@i|7++-kr+>PL{#(+F zvYT&fhYl>u5qb43aP#?PfnjgF<#5CCEwR7u{54!)8 zkC!jjzx(xKa{EH+HCph~dVQoJ-qz_$lR8Xn6+zhmVh^yc7p#2}*;j0ROICIR!n3z5j9#xSZixRG_E$DUN^6f#CMr|K?Qfv{ol8(i?cXFrBTvj3H^t0WP~KB znC{P=>}uK%{TTy%bW;keRZmgq`$EFEe81R1c0|6uL$)3#c_A9(4vYEAqugz&;T|LH z?SOE1e2)gDe8C!YO1h+*p1W+H`9KmdP=#y#e44 z8{IU0Dax6&RQ)_GTLsx_kz-7tpD;n#y!yXKEu$6{YhPaOiaE~yZI2&7m3&V9PjdSf zGe1SU@R%HX-dRZqU3cHGT2xOBkTD3LaLqa2TU}v2pRFq0PdyKShCfYPbG>PF4sE|G zW31WAGLwEVeC z1lPmUSIui{S7uAicUmxzy)|Ov6-2PQ=1!!$7Ye< zZ8hz_uu_R6d!pN8Yi>oPqUXuni%d{t!%mm!|D^jevGghd$iqMTvn-43rD^tA+`tdq zBFagDzxP@X_W_P-E~(ny%JO($DX3r_u7@^)+IsW4{8*pp|BlQ5Q`L3H zv(>(Ro0?Tc?Dn_vv?OY4ZE7Y)tJPRl)mB?8vG-0;yMu&;5`wBI zYQ)Ox_j~Jk-uL?FoX_Wc&bjXEy1(CRoImc%WjAyMm-LHvb_(i zdGE`y9#3lx6?`9Y(Q=B_LaUY25yb(f0K5`q?R`ogKKnpLsCbz6Tnu|emwfj0Y#{M_ zF;^mh%Dws3;}ffyvn6{HkO^hf%*R`Hr*E&dT03Z3{>1d_0oBOKfM}QdY7O6RxVp_7 zxSLTdch`JMooGCiM`dP1Yqn@ux)izfX9O)0eoL`Smmo4BmFR)u%-GH+LR5M9rihieR3-FjXep0XUj;i`mO zdi{+bU4ODo6mv}QU#~5JX}BbfRf%pwHF_!y?$}Y*?0-mJf+o|WFU=v>S@B=RlLD0= zqwWrMUwoy{Br88|V~#FgVZo=jTf|;rTKLMkEvmg>w-R9HYhamw z`{iWJbD}S%ZkZ@E%EA<_=75s*R5Iq2-nqdv1kI5DhpFwOwT5gLa1U0q8L*mw8?|NT z_80;kK9P#MHQ&dA>#FO>oIhYk{Z*Yj@g`JEV`r+t=gQ{F#e|p-Ojx~ulHvLuwP|RT z?<0x82kR$_Ofn<}hird%HdS=j7%H^JRNVpIG{Y8R>w>(inZII_{Y~VmIX-$^C+@hf?}yZAU3G0jMK9gFXDPz$OJ zQ{6&*xtO|pLo>xpe?RB8q6VJ&K{Wb!_ouGE8zgb3%{`ggGFxWLq-S4uo7&by;O_bv=Iq+7+Ik*4sdYmHf4v9##KH9Mnmzi2$HVWePcASqY|_5g4uKy#B8T=^^nm4_UmNj)6sFtoE7Tv_Na z*(#&CE`0tfQbn~;RZ%>q9tCW@5RuY9C8-PBlD3fL?bjQ??5%xFKbpWh=WaV1v7H&K z@A%*V=FvJp2y+it1BBP1o#o{d@q0!r*B6m_6-dZ`&412^UVV8YF-|bDgQY`+y zEA*#^(s)x987!(5kuXK`mQ%<}!l>`eGh_5Ty+QHVJ=&(;IYm$K4&2-8bKDHwdpA_f z-B7%8C%80upzPVvBJM78mNmX9;z@Npzq*Q7;&169Oy2O`oba>^06Oqi_XnTZS;caq zw2v_>2n|KeRnOc3N@>`xSX*%>-I`ZqF;gJcbG@svc;TJq9v3wNe-gy(G0N@P)FNSa zI^Yb83W@bxDa4nIHe%~>mmm(`D>nH*vzjrRv11Ms>*f;qlk35#Wgm{p@9T!I_Y5pv z1D(4UF2-N=iTx#jUD{lrMHiB{WL>K62s8?&X}Y2G4PVV|ANKxJ#qp_wYlG$z;4tll z8r>IyTHAc>oLPxt>RW3DucX#4uSObJ^?Rw@oY_g&;k9M}I%itTx&MX3jSi|7IW0n+ z4$+D@JHcZpoK<9sO6*zlR_PqM=EhOtXgA<$%9;?Au7(IWqcQTrj$?didAU;JqR#Iu#bxP&CWL%GD|Kx4 zk(7h}33Mb}pkj_${rK!PW{&ZuK?ODwr=b@{vS@}BDERv?QD%pKvX)8Wjl^*Qr*N@! zzTYHlU(rGF>IYWGS~DTrO3QvmIreJj!bP*vO#1S$aP0-r`z0;S^`R->ckHM zm=kgKPyT}BvjSYB?*d-#Tyv{7bQC_q=G$jQPpf5`s4*?71`+g$%JqC5uejUm5ySJ5 zDvZh3amco?!uXMqCjXJZGeKbe1_pCsPN%Z5tDx-y!tHEF7q=@+%*tL|+;-8S3QIh! zZ8XIUEC?a4P;jP4_b6wAN>_rSXW>ll8b49}!8VVlKods!%|FbrIbXl_&F1x#)&A;V z`K}HvU6DRO83lRj)&(zm-7hITxiJSI z-t>DtBIWnii7zY0i(n!DW&L9(yxz3b1MDTii}>EDl1Vfneolds=gM@kgBO!}n{8Z@ zr#q?1Itp8PcydARKE53N%nGTE zf>fJ*rn{@hp0O)Gzx?+4hnsd@A8!8lmN*J=?!fu&b<3>2wMB$oB%R3fjx9?AN>}zG z@bw3YIS7*cN#XeU+6(hwaZ2W57$?lXD8HImM*4~){Ma36eX^eyKjrns(UTAIA_vX7 zJ6?|t1Hp6RHz<8z4`q(des$J34;{L96YD2B>%s1J!~dc z`q2m?S;wz6!?5u{K&!RAsRmo|QVq2Tw$vyq1Ilf`_iGd;e-L+ZG$(CF?8|uTlS7TnX+~Q4CB!F=R{&@WK zO9#?tF@!Krk&I8?^kVQyyTCuL_;Z0ztx2lYPz?7Lgu_A?_xc=qg4ArOSC<^BuKJOy zg^@^8CQKCsdy5n1kR#(o6Y-wFacKr=fPyta0p~16*EB>5Pwhe;T673t{C%6WqZ+Y0 ztrv)Q^15SO3EN-f*!tVSb_jkp?z zyyL}qkhY?A*0Al@g9uoGt0K%kOh%wVLL$dvE}BkPj+}%R^W*D4TB8Rfv&|sHYsZU9 z6sPV|I?8Nlf6KBsd~5oq^^7c7l#jPbWAI>!4>h_ggiMaOFX!>_8g@Q7l_JtOM7h1rMDE7jof<>!)(zGfqT zGaJ6=$8XN7*DRi^64O0CFhOR5!w0Yb-qbRb7~svOw*;zX7V>)>Y;e5iRsrA#cU(A_ z`&Bp+UH81(x>QH_s{cgR)Y@YQd_;3$adf9$_sfXDkMD zUhs03PX9^unCV$o{2pjAoJ))nx|@!rZ;dCUJbAb@jKQr8VN}K2PMP4^?=u`H@;|WH zb}bJ9Z|0KLyulRUO}9M*Cms&U#&pl8NS0vJKPqR_vF(=5-ERZd#%NoPw(ut6Ky==x zcqCC%l#(AuPnPf@oO=8*ybUeoRd-1@_52j6$wrRy(-^jd0ak?9tr8RY)g2tbEnPcV zIC7b3aiC(ni%XZkuqm$~U(jS}kV4hNpULM6?d`$rq^Lg|-6Q7~E86nJa(UKgl2Sg9 zAaGwotwBd9vVIZjoWD`7;hwWkS+&17K?(n%VDA{0dl+brx|?Mm$@_zHY%i z_h3vy48EbBD2ip9Q5|-Fd?y5es{5v+ZM$Sui(gL#3T|&53>O zNzP&0t+&rN?MB2Qg$LKJ_m0dZzdr5350I$2ly>Fd-T6Qu&9X-uHcXHN)qqV$#`B-l zO-;`{fTdP4!c}QF8fc#BcuA1c>u)tW;F?{hrJKAPJh4!M=YDW}vXVgH`_q5;4ehjR zLigd4oFfP?JIwo6XLVZaR#hz8I;^*5_BufB)?dSVdFcLti9jIB&;M#fGgg2Uv1IFW zeRHaVDx{Qe8I~paPHf1DJibmAfGrPSH-!VxND-+u9jh^p&0E%MvJ-k26==@o{IS^4~fo?#Lt9qdpGfyyl?U+CxN4U%>Tho zzBB0kv{7Aw-IWPtFk8e zQDfLH2D^V{$Rb!sEl51Lf{1&NjbN4BYSLGntaPmOk%Bo-8iF+EPw6oHLFi+}JEBj{jvaLVVG`}%$6;<>B%?Jw$2S7)0Ipp8o@19ByBKwRL$ z#wRjes@jIN^C^(^T?#7&XgLZ(rSbI7tapXM^(x++7*$WZ@^|(qZfc;S`T5AxE2Yzq z@-rB|`kmDeQBljN6}?7Rk^3v)bt<#>o)wdT5W~AfBPz+4=WTGN&7{TMDeJqhO#YKw z{-hY?=bu3NtIBG2MF-ml)$kD}eh@JW-TF1|1Eg??j3hhtrd;5m?m(D`mX0Vl?{{kW z?a*bgm`5E7cQIralAog27$RD8voJ=JQQJlRp~nFbVRf6LceSHQC*V=+rv~l22w6OB zA-Us3Qo(UpSHJt|LPRAp+ytqZz=hb$qNx!(EE{5&c=VVDHgb_ekiB<1^*bD6jMWx^B$o+4K{Ldq}^@RiRJ~PNJ;h0 z-H9j<7JQ~7$~SB@9Z2(Y$G^hD2?SDU$oCi3C3%kDNlE4(mAkCXc$-8{jWU9AP~rp7 zL{ForDC0y3aX^wKN^qyscxz!Xfr-I;gz={p14_-=XWBosHZfN2oDVZGaIiWX==w-W zVG;iMTi0od#G4@j0JHl~Xg^!hfE?_GmO_*aDP_naex5qPu)yPg=y}*kyH=5tj9qtT zf!7tkv?q379YKwot6Duysk_#sd9#UzGC6{|*_!wIvGTdgzCX%W7>6OUMJ#tOWn^)5 z;T{>8{<0a3NQ+N)5=d3!5D|s75eT@D0y$Wa8a)E0MJX|cbu@+B6F?#TY{^A7s#oE` z%v@Noue^2_6oU>@!80144x00_2-R8$@kR}P{?W?3HA_Ar_(ve&-{B6I2KTod4Msl= z48?yUNxGy#3VQ?3;;~k3_5st`>~&PGlX(?zQJDB=N6#L@#~i`7H81%b*QJW(6?0Xm z_D@81Tf6zcYjv>{_3)3ap<&jh=IEv#c3x83%&6xt@*s{j;@`@r$9|-fXo(3qW0&pE z2pog-Cpf32QP-yBjo6J^LZ9?+E-W$^N~ox6BiE%wL~61d0b5`5rH7_hr$FBnnJ4A;fSS~&AZBCD0?)s&uxOTjyGidWsk`gNGsbK z1a~e%qE_DU9ofr{^qIRHwAo7A1l#hxd)f|IjM zEtq^HG(emwd|sb{m3t%=EmI%F@7s_iEOrv9r5C#F?moC;#amq@j!0aI?Qpv}Rzq!A564&ol6>l!9q_Z=a5@K1ARex{})d}{!_ zG*kwWMaqNdIJB)JrPW|r9C=KS_sG(E*&v$QO7Az9zzsrWiR1ws}R(DWT23 zf%5tRG>oBjWx)3k@l?b*Zs`lZ9mtQKuhbsg#61Qcb%K>9&0Vr(%m zkB)dj*D2DnJ7IFkKrvU&vuPLu%qsrawt3iIO;5XU#SZXK6kg?FmTS(^aq%rVn2jgW zCvsC9Jh@zirV2r(;!dgasy8Pc3ETI+zx}5OX~FmhKk_NFC|=ScC*1!{p>}ebiYq=P zN|PnkXPhQZ<*h(TPYfQ4e~AVPg5sI{o0B7IUkS17w+O|2S%S~|JVmssHUPazlRvKA z!ao4KS0(@sTPK3F@OKvxFxQu*>%XE>WZ<7{=dOl=?zd8^oqKaD0rPEoV+DY2li<){ zaK)-q!@n+xBz_`KW)u@Y)#t2}k#JVLcBaGjiTN+-f}Vos@EBhxi4siRU2WZZQqQuE z*_~X{F%Q`yC*L{-fkZd7k0w^IaC!4{mmILO`eVrRJ0->%2w%OjOZj_y^bl~>H@`1? zDMMYg&a-|o5PXntLaGJ;dbjl1`Pbi&yo?POKnpk@5zG

HP;&r_$z}{cX&wvHfqAtBo+y=XCFNarFZD?e%A^#&D~&j_Jfxz zXE2q)kDU1nt2Y=^(#;!e@4X+jaoN}0!2a!Kr7O%l#GZ1G0ATHYR%A+btH0)vnNzzR zOe23ti0}QV=-oxhN?OeR{aTn+FU!U!W^+d~YB@gJJaW4nN7`H--wg9j`m;TRMR2oB z0ujHnL76D5mFBeuxp>o{Y#Qr}-lx2+M$PyXu9Q4HM~u;n_{5$Bv(U}wIYIFk2hH55 zah|AJ7g9Rw_4lK>%L_i?BERSk0Y@TAQa?{3iAwdCd`ZuLr$&{jmc9Eg%UAP_0?8?PpKSI-ZVou#@L=h5FsIRJ$6W-f3F9vo(Ci zr_uZD-6I39VYXd+CcWXRVaIOKZNrv0qO5udYMzq*3YW(u0halda!^w{C{i7m8hxeg z*s}t=h+5$=?q6sB2|RcEQk@xsRSJ-abqf6RL|W{}p2yMjS3nsM)ufwakdBgEkFO>k z2O4O_C;6&<$>XYvo-XKXg%s_WeFxXeAAKire=1O>H!fp&`9PIgIHW$+l0(TnCZ=f& zqmn;g^Jo>r+n+K*tqd4LZ+Ohm$w>vB$Ifiu{w`8xbc6zKkr#&IM47^mTYqgYe51}e zlKNQs*c0g(px;{VX32&FuV7^XtXO?SH>iVq_cqVBA{Iu!u+uB=Kv`?7XMCG@STr8zwI3iLy;iBEYp7LsMR(58Cgcxo^^RX zSzmiCT-Ql|;NytnD`h50PB2;xr#G?N6nhseT!eD97PN*=3-tdCE&HJ&$zk$J>nOAeHUD_T6Y>=(1d%}++S#Bi$^F|LbQZ+)uPfW8_ zYkMgQ7P9d;Pp T_4sE&rbD@8Zf#a(;u7;ecVrl> diff --git a/app/src/beta/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png b/app/src/beta/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png index 64afec5d2d7df8e3d4d3e9e346d27432325d5d16..c5592328dd0ff4cb2a15763ff07a4caf4fe045b8 100644 GIT binary patch literal 67252 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 eH2)co@vcV@&vBP|Zy%V~p(Lj+TP-VPU@@ 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

U8tUDK!4XZs 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�pR*+5KS!Xdv z>NYb(EQtEB8^~=RyD%;xR#0~T62SmT*6LeqT7;}XG-iab_cmT7*IlnT{OgG&+=waj z{p!GpUZ?&qh$I$s>uMzay#s|9Vhl$l(5$Ix9&cg9QHWZ!&&lRPH@(05y%lhEUvV$y znn(o$PEA+r`}L#)Zp}n5oJ$?+Do-r8&)TIx{<5mO( z>~uaiuy#qnFC1__Y&^&`AXiaS%i)d&4&IGpWQ zxcqQoFuuhrlcn-|BFq*q=pM!Ui~5)1H!jsS88{XaSG%Op^OfFn(@g26;NLes3J1Q3 ztXhbi0*5=PIMrsZ;S1z02zNO>>~i%j3M&fBx19iog4Ld<$#)MtpnRM7qYyrPTn4%8 z@7w)5_=y=2`3ovjRqNY722HRV#qv&rSBtK^!~QvbJ|J)&S!uohJxciM z6ansHKReFt3Fl&V2tQvZ>^4=sKFb?EX2ZhoN#7}qrs;>7%5vAW*|82Ws7;l&6z@a` ztu_#CF1TBBIFx%M_LmI2DsOQ_!jki{BTjj7h&-?{j*pSOu_ZUk5a^hp%?&{m z?{H$vE_Mo?W0k)cBJ$*)*=a9P{NmJO!G-nwWKv2^IQcAgO(mrYENWlmgE3n(JE&5q zmZ25nI}d8Xg3{*h$VQU>L3|IDGtQcvHhi>(Q=V1}ekmPXl%QL&f4=x|<&$kbf@U0R diff --git a/app/src/beta/res/drawable-xxxhdpi/ic_logo_wordmark_private.png b/app/src/beta/res/drawable-xxxhdpi/ic_logo_wordmark_private.png index bb842f1289d2cb578e65dc255056ca689b2a82ca..ab9368256b71d5a8f9989647e0ff65199ef82366 100644 GIT binary patch literal 64068 zcmY&;Wk6J27cL+QNOyyjsDPAoNk~dFGz{HCcS|?YBBgYXbPqk0fJh8IG)UJ_LtNh1 z@B8k(`{z09ti8{(pS7N~_BqjNDss5bsh*>tpx`RV%V?mWJn2F~L4A+;?D2}*HK`p6 z$_=)HjHH$~>i&{|^ZFR+zzK$>b*tOZvO;w>=$?}Y9|_&fYJ()%v$h^p=ed;9x(D=* z&24S=p%{-{wu_)8h^Xotr=$EqW?h@qD1H9@4T;;F{JEb&X43e>kq6SZDP_0R*sak2 zaXysFt0xT1$%wSv!3s!}77Jk#sYFJs6edF$ffVLz;5*Qh*#ezuWDacyY@(%lw=zc< z?eU>+{`+Xb$R)Sx{bFAMP6)L0L{sh`XQ?BHSiufpr|nC~mFx%@sG8O3h5mT`eM^)C z%Fgt;qgQj&t!M9PmXe2Vh2X!QM4Pd??hYF{8zWvrWaoE9{(EtN^b{<5w9f%ClAyZQ z_w&kbIkD>4#e8%Y?7H%jMpfP~t9lSG=f^BWEaM8jld>YkeZ0=h+sTb@yxi=~0HCr6M0ud4#5xF<)vhY3x+?L%Q+JX`AJUlc=2{ z*f(jd{oJ7CbSIIKCuJ?-uW5cLm9u+MN6c93lbi;R>XdlyEw*vTL-xR<(h0A^=6_b? zO#F{U`Ph8uU99~;?!w7I(O7+%aOE`3>zDuBUqq+*pm%+M<1rJHs@;~mhfYSat@brw zxm3ux@XJ32U&4PssXbkwnop)4BPU<+H2j)a^>G1fOGou?F=-9;(SkrFxOU{?)-$3p z+v?0DF3qIQsz_zOu3dp`I;)|a=^rOCEZHcVTO&^MbQa-LHVZ8r;Mm-I+2>%&lDX@g zI+28bY+j{1qopoXBDVX(VPmwsi6l$%Cw#@meqQaKyX}9ym@DLVkbFDWhTY`5YWTmC zV0JQ`}cg^(|GCx33*|sdL_$Y)ya_3@&`_ zsqBQiud62iGwm}+v|$cV9=4K=);#~2f4!fNbXC7!bP2ceboBZ-XP)5EzuVtCp#0va zXmm7Sq$Fp78~0+@x6Bk)X*(I40blH+6wthb;q%k}1BY{SGuEq;dYx%ow`SGrcW1hU z#xHOi&KkT|myU*x`bM^z#_`;L=(+sE-LBQum*2AeuXEn@=G#7Zp7dQHx=n}GA8da` zTm1RXbHKp*=3i_CMHkUi#|x*&v8}RS7a6ys$QkzqRDR^9U{M{2g<2C%SRK_$#fbm;gnR*`J z$5Vzcox{+l3a2nW!_>P1?E43BK<7L?iQzhwb^LA2p!I)3SLkY|A?3YL9F?@3hn80e zYsDx3anRUL+&b&aDhL&=;e+hz(d?JDK)Z#c(5H`Y8JrdDN-^C;i;G@VYb$HLW_e~q z*=S$9s3KO^s5U|df6tV0fN`%rniTrvuk~8n^i2e3d~O2OClm2Te?q?g+5K_8vqAll zpYWb$)1V9ErZGIk5xhd!mFw{d6y|%iS%TAs_!vCkbo#nK zPWALGtho2f-cPLq5B|p6`JnN_v(?Rt%)#GYG8@VMt^e_HZbkd*8}C8_#B)SM#H;P_ zid&@9JjY`n80R?8Z9NmOaNF?oDE6Vd+VHB)SVCwjXEf&D*b$F^sPiJ@N@kv;yf-HM zd2U8~W|TQ+%%d5fDQ1Slo$+&WowlwNK04w@H*aT|A%uKlhUM{l=EAU87Ign?#Yc&}bB z;JlEyoV8{T@5j#DTdhOhaRYhg9b^<=7o}<_Ua#2%UZOK3kcQqr{pncTPu31~*!aQ% z7Btw2MdhO-Px`s;F(B>ZGT2IUQL@)H{;zB>gn4&!2d!Wbtj(%b`O_jUKf*q;_m{5MzO1&>OnPCL|$jV%(so3hkyMiY|b8T z`4gT>wYxSRs8c#lu24r;w14kSHxg2@GZVtd>#q}!%4sInyJ_m;Ku+SHg7d^MM2F90 z|ITj;5!xCgT!V5N^*gK|lP+J(x9a#wyS2{mSpw7jM~YpY18K3?+E6h{sPWwnRX9@(mm3diIGh!4p^G*TVQ6L%OW>;V~0* zTOQxmo|fWp{G-tfVO&8Qk%Agw-o8O;bkyDuyQ~P{h}4hBMjjOFg_r&I$$^Qq+~?5m zNfxn%YThFm-XDDZEUmI^g=*i7?PHmPtGFS<4CY3^;V*Pjp_?8XmvCv83(oeg5Y z-K78ZVMATGN3bT}>|3wcFH7VcTNTN!6`a5@9jtpb9CIQLL_NgmO!w!XyYI$!K0Y=i zy!>T-vV5CM)P#S!{g8i<^cPI;^e;|vk8ZA(o#xSAekkQI#=c;@jZmZF9vMGrMxz-> zHEp@gcJFT%IgZ#a7C|52_Q^|g+ZOEzAa}<5%l^LKTK<;;&U2Vd5utljNpkxet$WTd z`-HU`wx1T#n9Ll}N!yqUUHlSCMlP7+4psdL(3_|lqsBVZm%D1nG;I(;(y>{;Jojx9 zVEiWpUl$pU?bcr92OY!B?^o}!+t)0~TW*H`^}KvuCHUbgTLGu8&fJg?q5VWOuXplC z7KUZw87nFk_PSa4E>S2K`#a|8!T>89`{?P)$h#(~j+sHTzn)XK$U7r7M~vv{Tt)#+ zYaJfXo&lb=`8A=C3kvt)0{N|id$5s1Zn;kC3J&PX6ioMo?vAvvhP{MM33{fP`H=U*K$+i^P!hfMi zUD7T&jlEmihI!B3lR+seF)3*x-QVW$?eg>q3D$|L_BbYg?BK$JFtC$>^e`JKzT)Fo zI>wXCb|0DbStp!@-T&H9LFdE>1MCLUSBtj|v5hBCC;jE|)>nylt5e4%^fVKlb}6JU zDaO?RXF7(sr3W<53P2Gqi6(zpi2enb?Ywr4OkDa14#EKN^~Au`s_g1R*}A6W zD1-ZTIyWCasT=yl!$wFdhIL$NEA1jTKKx)`mabjfb8+yRMU2Ra^-9J4hG@hhrEPfrx>sucM_C9-Koaj6r6q`lbH;fG= z-KM*7@H{x7*v2^v=jNcpw$yv|*>Z?C9Ba71?>At(zuuLbO4097X2 zUussW?DsyLvC7^qZ1Z=)%G%IUrD=PnaucbOY| z;a0i-=7(7}%afR+bTbA`x$O5}nmXPcAJ2^ms~#-RNBt$Md^z#uub?Y>bI3&*N8Fy- z`>q(1&sLc0vvnOjtK~XQC+VCm9Z8zzPDp=BvoiD2c*$lEcrtBL6vv>Ekw!b)I)ck! zF%NvvI36-Ej@LPa>sG9b*=X9|B8u=<%@zo|_jc;^!pLZ3jW;~}tJk*oc>*qGS1Z;7 zx=z@2F6K3(N%W#k<%GlBKUL<=41%#~M3&!e4R_#bM-cmx?mNM;+S4X`*c?(;SN!z^ z%h?6f$RM@OOJ?pmK?&2DBc0C{dv9w#1N6k^>&9_lEdAU4jc*s*pkePFd~_2oeSM7G zk5uW4^jqjaiOm0UTkGkKoFHNQL+k>LSVR90x>4!)2Gb@?Kpp=s4<`A5Iax4$&~#J= z0wy>a#CEsrzwmNF9RGIt4_4RogE@Z)g^78ZV+;XRPnpNF-^?E)_lyaH%@Nkv@z>f4 z*y18%8St!UTB7)qHFG&(?Mu;%qXYEqm6w=g|Eg&IT8fw3{#|TPYl47yW50pF6hJp z@#WTsi3|feGP|RcaCvxigvSi>9JJP&w!co+fuw`IN00biTmG%zUR(Aj20j^>d7v{I zsPFtRiYZXK{@kG5v2rirc~4ydLN=Zz8o$$1<_@Y{P3t&ul;~oUO&;d@gv$QGgsDXK zYWZ}$`?j6S;Azo*?9*bq(z;=IeBYWL;-hM13P3jzv{cdGw|6C`)FZ<&7vq$@AcnQ3 zkd+ZFd`&OK)(g;nW*=|p_?MY_vot#~?LE#LpUGp0dtZnTGL8Qn9dien_-r?3KeMT;l6prM;U z0b7RG!KXg#__+|1M6<+k*;{*VwR0~}yv0lakQskX!2@Kl9i7v}e_B}yrsQqk-TIG| zh(=$`z|U}hQPXh-o#jE>%`R1UPV{Mh{22e!PRI^<{#EOSZ!0Yzr|lDPyJ&5qDXvU5 z%g|@by6o1WjYvR(3=XzL{sybV9u^0qz21F6k$4j9a|!{6+l`aWbNGzTjv$lWn2Kr- zpAQT6A+sxwwJGSgxRo4nE{g(k-%+a3(;UU-@#aWCv>k6Tt;g@_db@k$*;)J&TXB!R zHF{K(!=L!o6aL*q)tC;1SK#Q0Zz&Mj^~Kl;+aXSpFuS#}<8_bo0$KSpKW;j@XUpSC z-4E^e+SPQoRH3^S-LX|Zlypn;X_-t?RVW$_wy3PZ=q0sJ33TIIyq;_D# zpt9KaYSf##alrcGsi`RT88fO7je#gNEWCzb4|7@U$*r8pv7egQ{2-4?MYkB~z4jv9 z?!akx>2DrAWwyERQVsaj@eo|Q*F1JR0T*wg&XnQR%xC7Wa+rI$apG-Z@9=3%vhfvC z8IO^*UE%0K-p7?k((m*tb83VAl%7=~^`+iL+=oG-_zyy_v6Vl>V41w%hgf&gnSsNd z0xD+o2%;R{b=@>Ks^pX#tuFc<5<%|mj?6|@;160kXIUfYT=jyrGpqz$rOET6R0;~? z&z*^>qZ5sr`Vb zpckbO0jo{f?%PvB&80A3i(&@nX%_{E8E-Q;NBI~n(a#_7gk7EphX-KdpLBs2(P&oL zlREd5@snFRa}P{@u3ZGS|LzY?`0w~+YQi=vd~LM0ae<+bKE(JIt9e53jTKD=0he97 z&9~C4-z=^cz57EM`|JH};)54+pg1h1?3Q6(hE4S~71-ACT83!7qv81l0>+-S-`iQ| z0JZkZ34j-*ifuK$QK-N`nC5cTuls@8Pft9qzRZu`QHxhuqewtTUb;&#tz^FX%7B6= z1#3(^YQE0(Sa$&Bx-?Z<2UW-8qm4MYxc_h9IFQEGdDR9${38YxLrT>ZG%%yf8%tX& zdGrFNO1aIVQ&=A|T$T@NINL(|LG%_;j3=SQrM|`b@F?A-@d2hiD2plUEbE5qVEzmP zf6@|lrG(Yo%aWZhh!%76HyexaUEUh9?Q-3=MWmpO2TGNF{ObGd1kYP{Uhec!>dhwe zRen$QW>-Efyo2jSw=J&)6eVdq{GSo4pgpK|{r|JR2y95y!*<3Y<2p)ok9>GJ zL^e4}BTkNqK7=HhD}k$Wx!p0F+|R-%vuGNhXPsYSvZ>mvi^4j}rS)lsmemr4<6Bq1 z`8en2VV@Il!}%6KVM~d{FCt&p^2xnN?!)=7-%{8XDcD%5QHv~%2Na1HCkp)*!g6X7 zlA=<+MtHAxh|sU>7HxX;j)F`<2QM}xA97vC0^%0?F%3rlhheKn7VXt19cfq7{fC>D zJLXG5Vyx(QGwQ^cWqDRx4b{1KO~ak?eVkKwEeqdaht}iAFP^|c!E7K9-~wmb6yNvs z>bdH=SgRsVRXZYXJn=bpbbgUO(6# zI0!|eN_V+xak;b>&_6wIp&Y;`?7eAzLf){%^|odZ&XBgBX(vM3rr0*zbk-Qn7E(5D zfMpZE|+Jxg(ySv?9h|Mq$gtP+!B z(mYQNWL|^k)}10-V9Whx_p~_~A6M!4bf!h3tXgzG+@kd!FMF)#Hx@Mrblo;803`Ga z$FSY_>*&v~8H%Ds2H1A>}?TLPF@ugp5CAysYPz!#sI*RV$+ zuCkYiKJh9Nhg4j}=t*djWv|lZ^2kWFp|L=*0|ohExFFhl4LJEo9d*%RDT#{4}EMIEm1dXp9Vu1;*wB5p3yK zvlZflT_EcjJ}nKlU43+=A?M$3VpY3nl#@MdXM1{T2{lE4UJk6UN3>nvunx^wJLJIk zB2xF-Hzl`d8z*E%2hwvhg z-jDk$goB~4><;*Dh=fE39TrYoC;rW1{}N>(yxvrkwf#XFIVgyNi?%wfExSI;q|^FL z{v`>o=BgCtVD;SS9#n5m4p{edvjV?1U{+4?*>+3vNoDN}n~-d(>aaxIFBn4O$BLC^ zkaF3(9zlM2yM)v0mA!;hUL(8 zR#&4Qo(YIPx(E;O-`+daf5cjR+^as&I)r6r3*U8Z@b~|}-r7NFw49&HNpsH@Iu|0c@J8({g%*5!Y9ED=IVzK)-38j8QrZ?sP0BtRybGUZdaPopgVpq`0rRpV>sn?veI;hgT+x6hfOFwo-j3gkV>%y&X6gFjHFt~8excp zu%evPuY*L-V=O)K@oPc4)z@Jb@q7sc%M6x*da#elW@)NfG#J^UfwrH+bn*nz*@>l* zukxIUGOeYZJC<%R%e2fYWPWcO7zVpIjKjW0PWf%75YOd>Ux}=0^DG*M);QCK{z5j! zWf@yq=nW{Ke~&qQt_p_G38I1GlrokmrI)4a*JGKI%OT|6BDDV-h=d1NQE^%Ii{F~y61Ajw^a2dbe)7dPYtA8*~2zw`?ALHCO zev0sDSYCgLIxR%SybQHXw6~Z{A}O9)|MtegkOju>;(kvhdr!+$&+d72gUNlbFh~pi zZqyg}B({=kU3w2{rT-|{|ILX{Vt;(UaJt{-A-zZoysUy~F!;S+@Usucg)xfvej5BoDV4_=M~u{8pOodx~|2musWC0n)~5U@M? zMSw&SYyFPM^%mW-mvlsjtL^Em|MastEO^8fk<*6I#@089CK5t6B*?G~o_lcBB*RL0W zwC46xi@bmon_X&3|f1e{3J!867A*uc=71G^j?)A|IZh( z-qmA3d{OjpY2ZCdT{A#XDrrjcC^pKVmMJIb^R>0QN0t4xOuWF@YA>+aOo=cwE0JC7 z^cWJ5hn(UNkU*Y$AbH3yCGIvx(i6qq#FAWOb!E)O3%s?yVaA2scv`YpY}UCSugUM5G&g0zsPagm3CtCJU#L6K#2k%=tyU$aMsrlz?;;EKxc$|Jgn)(f(Usp@P zE8;7jDB>6Mewc@q+|2ea@s=kg!dBh#-oCOnEL|G()8Jk4%a*KQ(zh?@^o*7}Pfw1# zCnv0p>mTN_GBoYZumfz7woIC!?J` z4daAss=bZjWz2fTTQ8ecr;uEn03mkI*+CnF@0R*CRU__suhHN!5a{JKUT%`B>ov^TQdXNKFbAbx4?%Mtjv_*`? zQEe$XxdEadhCx5)4PY!~4;sz{%{hjQH6 ztn~23XU;rMdOCsdJ}H_P9<-~4iZiQcwv5%~m3-W8L=KeSF<830CRLZ8w`Yv@^=xNo zi=W{(Rr{ZdEW7Vt0h;In_xY4Qn4}$3Ve!{yz1Pyi)O^=;@!abP(|Flbe5zw6=Bg5p z>E$MH<*Uvu*+}PEN%PibC)NTv!kfi<1s6?k6BPTS)k@LP`~XC>;HcR*rK=g%(%_NR z2-FVk-6NL%NDnSF&(;;`aS|;v_zt2zKmLZlcj*#A0si6nljoyqenElxb+^GMuUxSc z5Yg%al0HvZ`0cCJj)thitX*HouSA;to#q$lS75j|c{eIkgDgQ^+3a(n3*R%+87*_< zTo;dyQBC7l3vrs&SxY6EF2PVkfng^QHTsWMHP{DT1Lvn>^2EOn2bhN@V4xOYkOEZy!0ls+!x1>vA>%46(%{|Rct z7VNt2{-g{D6%iKx6JS6HzY`QjJ=|%I!a4@}PVmGoh-0!htov7pHcacq*HrC37VD=p z2Nnj>6x_wT5iwX~zj<+j^O)ERS*)GQ2ao61Y(xC*L}-8{XdD3>4kntRu>|R}nd->Pv~@*_U$sykuzMCq$pP?Yg|Xzrx} zNTVGqG8ARYG*sY6ko`0NYp*-GYM%qS*}Hru0&AD$<4WUV?gofLZpjE;lf9iA#YtTE zjYTNB&QjsL!x<~6kZ{qaY(Uc*1D{}G5h9A$+rjOOVftk5*Z1Br&4JyW9UCV<2u3q; zcRFkLqhgObhbu*+c)7cy-Rd~DCw^*@^b@IrHAFiT_SfsKz8uPV%sd9wk>y#_!TAs} z)Fg=d-LF~TNljf`s2v-8nlgJ9kClA&3Qw>G7m6COyC)+UN0KLuAUO6N z67L_g;aVF4%UMp2wJYelcp=KaglPVPe|ti~o@vX=4Cf<5wX0j)Cn@bYc^91gD~*8s z=Ni@6iq7*gx`VYe({2tTqHTNUh>b?xx$lqv+5ii0Md`!qPiv?hk%N()d!R`CPXC;% zL(~w82z@Jp(o<^d>VE!M5&KUpg4Y=rwErk{WfaBU%kSqQG4gn%`z}p zxT^6+sM2Tz8r8}G0IU-R5rz7?a0N__x*0PU^u$KI^<$Ce>c0xm@`heihr`XCv!CqzA3Z} zecRdplp&JX$^2LdU2CKOcp-Lid`t`t+P~vf& zs*e;q)Tw=KnPLr3KKn}86d#c(kXo9M06|>;dU-2-b9k1|^+=RnKweQCTwsyTtwnSgVwJq(Z_X|^Jg`#({n8GUKB{my;GUg15>yV$ zTYfUogiWa8U7YY$2t)LArvXWSgMjJ6iV|ma? zQIp|U&7%q$-vaW;q>->S*PJHdUHVm@k*!rBu`%``p8P3M>I|>=h3vs;cO8P~)q!nA#|Os>tpmkCrT*y(B4cNXRZpp?fQq`C^h72uE%;QH z!ZhqL#aOjyNN?&Q08O_G%i|dj)ek=pE9fzDf=mguw^fYyD8Fb&E+{%_zHY=H9&!t1 zZlf~1_XYpr9=I5o(+;FYPE8)GHUky-#O#h)ex3l08 zumh6A;TcZPo@y3=vOEy1cFG<=as6teKc_T&z;An^Zt=c&wKL2Xftxyxt1IxUv&!}d zudaFTEk7!`FMmV;9^a3w`EJ^(kK~7u6aK6V(WO*JaS2XtMdO>UJ{-IYVf>jdJN1u# zA8VF8o>;0u$@9d~)}?nV#!KZpv)srlSTkngM;jasNbV|sDfbAm={!ophrq{>Fh+Uq zT-LenET0A&V%9zsc(*HRl@ZPT6~Rw8OXd)Necm9OCjIelFNSpl4HLwMwn|xCQmd@9 zG>;?h_0<0&GfTAb_sJY<`eTK?YOs7=78$hdT2}wztv%h^yXgKVVbuZD157$BiRQW`p@~zs}{s(DRA+AN~=D8Ck*YmTHx&DjabdyvS6S! z$VYr3XQZn!zaB_Qs47G`!l1J_d#np(9&5sWlCuTUm4pOko#5@dCs0}3_=A)gZ4d40 zMwwJTJ|`IWNG&wF)VH%ZE~RMJYT*??kb2ixI=rGrd9;FOs))o&1FE8{8@f5LvQ^+! zNv$m6WA+Co5jY|yfgA~1>sGB!0WwB)cVeiUhc9X%0M))W^g$b$-}~W%PJ-7T#QoMC z@^iI~?3(M3WvNTp%?Lb%D%hFD7^LoYjdLsR{GIoQ?61HQSNPYXUO}8c<#e-prQYKd zpDu_@h+E0ubpRW+&6!RQc@B|y`9UXE#7F>5`9X{A*J|+gvr%j~S2ahF^>8q}y`|43VW$3AI7F+Z0 zWo_p@NEMeVee6cSyhpl`Z#O^p6Lca|H#{(x$nMH{T$4q~W^x1r$D7%jd}7@al# zQ(wHxekpzxJq~fnbhRc3e>bLU=3%CH-}lRb6LF4nU4`U=n#nPzeY$~it<8liO?d9awvZS8ZjxWU|CF za4E%5pNOb<{hq}26tD3>-&lZupf!i@Q7?pr@y?BiX=yp%J-s>*;2_416xD{U`z;JR zA|w;pzH0c6PymcBAd}@zZB-r1-BXWSdLT#Fz$?8l*Zuk+Uzm6Wq35RG2=AqbT&(!P zeM}z8uIZ!{-b^)^1rwrCrT=NU*KE*T_Y6Hf;|)l|WJ-Kx=a#_KK=(r3m4?JH8b{== z)G-X3|MRGbUj|^46d)L`Q+!_0R>`JN+}OJZK}wvqHbKbA8oPIG?7%1TRmYzD`!+V$ z@ zpkUo$3NB63`X~n{A?m^8_@z7+HSHc8#8JbxyH(ad`xgL9AnTOsz=O)xK#obi1b`>P zhX$0hITiE7vF00%@(1E+A*q?Hd|3kr>n>98_1ZoBg7zqcG5tDQ-Et{c>~kMwZFOd@ z(%qsp6+Kw4L$k!d^vPHy3@0naLjx+YUK5joh#4;@qHENg(AXmlHI2JP1HE zJ)-cm2&MC`VT6k=L_PK6$c`v2{-T{o?8k9U#p>~;Q-!mE8CrfPvJ+{og;p!0GS6|c z`0{3k17Ynw(bZ_(wKx9f5Jw5Yzn$lbu!On zX858QJ(J=cewh|3n#WWK*9Yefn%jMM5!M#wJPfb$lfswB-xo?PA9sI z6=})e&i_Uh-X|!+@F+p^i#@}hb+Fl-k{v% z_u61E$vl?S?-RxXkL^snoXU4^}U@27_;_< zkOEDt%q!~CAc>0hhH%O;Z5tJSc1hLpcl{eR^q^Pv+4P177HENsDURE33to=3&gja~ zcSg{6A|r)P%gDQ5$oyE&v`Tko(`oDfC7d)>bLX{U{w5k>gfmA`66JcMu8<&O5(eAV zjPl!{%@(eycZ^G-w<+;U_@lcarSl2c_1t+tI;(OxFzPYg2O4|+)AMj3GMe=AU$bUg zN=~YRZ7+4{ZHS+8B@dl*D;AvF5GWcHH+0+;lMZXPX5Uwa~s~ZLC%H9%?nmP+H}U z`nePfdkGV@9-5sroaaQ?AU*J=JPVOp9>p(ioy3E!0EydPnwu7ZF0LJ<@SV{lBl!2s z?Gwd?;elmZ2Nj8n*r5hJ(IfQyk6ZXG4>f(!Ag^j_bEq`dXXTj$cm`OTv%4o}Pqrz( zfg>`3=|hMB_EGohW8>c(`}oe}6sX43@MkJgIVQiCss309R#jJ}>%q0>v{u#kChn`H zs8K1hxl5^V-c1|7 zVrh;tXpk;z2dG}F@qhVBlYYe(Qp(M%C`Knkibor&uf+BYpiskn-7}6_o$No8RNHSb z{!C@`1qZqw{S##h?aYdak1#APKL*Ue6X2bC;Cg2uCr)vFLbTMhsm`a-!k}0h0j$P1 z?OP({;PeCWY=5M>oTYZ;MO~+gL#)WvcH&#^I1E(!5zJ0_makZ!!A!g(wY>omt(TKo z`-x=nuZf8ouyx?!jyD6*O4Ne-W3KWNPhPp{uNPbmwnFq{cA1sXL$(QD?l@8q{A?0gKnmQ zZ=afFxsHv{xB0;JC8sUe!=8Z&|Llw}YZk!s$^3w8(F_u~ieA6l&c5Evm&lbO^vgHA z9j0l}=7pnln=o=@=no%?e3598P|x5-MieA|!Mzm-EnI-krOOO-*XB-@6cjiG9X@uq zk0%?}#(va8Jg=|-r)8E(T}%sJ-O+_Sg*=?0rQkm@vsei9A?4URzMhIVuERo|IDkA4 z+VB-Akw)0GX~!E|*(gVZrag#$^pv%Ef1dUFP~sHU;&4dE)>rbitpCC@pbqdwGPhO)L0?=ylseTkWV3A9=ps z@C^DEa&|jG_C|}){V0Ordq|iTvS@j*s=f(+l3I(5yvTe*J<3V_#|%9L)RyS7&K8s#DRJ{mC8r&y)I44h0qBv#^qI6z>L_OmVv3OR z=JTs>{FDIJnu>Oq{^La>oi@Ax#kUh1tBduXSxg7rxM!uncMp%^svA#)S)MNu-R(pI z``1WWn|-e}x#mUEwB`~|G_(xD_=gyVOpnktW=_r_K8LQ7+uUnZ#yZYY$_3f3ZPv5h z+;m@$MsrY|F!RNwvqtKSBK_|Pr}^8T&D;xZM5|~C45mBoy;*@W*ZOjf<0qo1qQYw= z4f32MDl7~ho19CKhT!Ah_(xBcu|?5ET^RxkXld^#3MJ0U1GtbY=Pn+Ge3x$%TDY?@yfJW} z*f~-+-Y!43nT9i%yyQ*5qSJ)%rPK-sF#btxbjf?KTUqU^$W!@7NzBG`=clMSK5fvs>#I{(K zeVu%{_13!dMg>g`TaL`jUt!G+Z<}Oa0>PKULT_yG=p=Ba={%oRu!vBlh{42%yzaku z4(5(@MmZ{sVJbL)25A2@K7Kv8A3iXEh|dS4jSh44qU(e4$Rl+O12h+~co=G* z0W5|0W)wW9aS@e-rE8$9Qq7@u2M;pRMbZ_Lw67~V4~g*pRXN~qK|5^ujhwe<6z5j8 zO;ga1>r!vNi8Vpd$x{szsXE#4g%lS#%L?V@Yn9*B8)M=Asp*ludQEgoK3jJgOJKSX zmsUAb570JyzQWxGU~S1B9>>&(sFsH+$6k_#(9z`?G6OqhqlUFBt{ZN53V1|3nza_! z>=?^+7SwP*K~XgCUmFyIu!VxH;-9I|F7$VIK0Ivh@alYmSQn(86gt_8pQ@~)>nGAt zS%}7ctZ>S@<>6nCX@JZ8thP>Q^zB#j+z0y_#Y(PNWPaPdNU>LX)J5DM39;emod_Qy z*d+@1AsPCZGjy%YPqZKNL?a%m@l8Td5Lkq_3<>wF&Suj*q*w&-Ae7)sJZIhib z`0GtN3#eZxN3>oU#@9Ht%*atN7CH))l{`wDC7KGD+j;XXHC~N%zhw(+`E=m^9jx1Yk{MY?0Iz9H9cBZT&=qN2-uq4kjmAybek3>Y3%Dbc z@gR47Gr1?!!)I)@lu=%}Auv3y2?F3Q%T5Cxh~+L$CGN-Yo$Vk7SQQXCWB4n-m#)a= z1AIvV2Y{afC@PUJGD_Dw2VW|NdDU>T$KD~^}w5R={xF3e!)cw9G{t*lG zqp~o;rl4r%3zIU4)4>}}xq*zhECE3+v+&1)p-MV<$eY@BAtp6(toC*D3ka(nEoJcZ343)4&?XB{JgEeH-NDnVz(xXLVPB$33B)26h97xlRKnVGsgOCul4`kC5B=e)c`g1k7<(9e%oas>u4v4)a9C7Tj; zfkfK72bl`jk_GW^?0G851D232s|!KVIWW<&AE5XHCAqHyx0Q5D{kyy(g7;T^*}k3_ zsuKQ8a^i?&4<0{0Ra)O@R;aKW&{7^+^X{O0;qvh~Jp+D9{F!*DxDax%ejqe4e)sKQ zyHcWX@lexT|CNlUPqpWtPC=frt@p$AwtHh#;N6J{3ey!0cG#1X=rDKwNQIH8w}0=r|Gk#5!knN5~QX6Sq!W zM!Q{92|CQtV?!MT)+z^?6WgY*Ao417m)%@OL;f}SHQnS@Hu0ZUe4QO)iMKm3u-liw z6W05uB2KTCHv)~f5t*X*24FqbKF+NZxHn(o-4>frgUT0P7N>K;83XM?K{=k)g}|#L z7X)8k2&QG+MS%LIP0}Qm2DM6hM;=Ty$*PU<^JUT(MPJLyaM~e3gU}XEZjV7|yFwp| z&~CdE#^L5|{`$zh-|vZkKBQn9-HG)@e3K$>#1j_2A=@$Co@n~ikD_4-*RQl}UtZUi zynC+gWWCFCMde=9{Cs*DLK9!%R05q@=T6xyFlZV`bwM+;VHPXzhSttB0yL`m2(|nW z(zvQIfX#_qkvX?%bARMfkO=S$_p%nWz-uuvRnM$Tf;#>!K_$6rWV&Q6nD5!FXDWWl z0%DzIFD)9Ha8oH%;9rqQbX$1y3`cs@TJid^`V1^}?O9E1PssB{cHBZGu9#?o_IG9T zOB{&J)WP8U)5OylfzCXE+oB-o<>G@U*~VPG8*6jFy%+7>gtA=a>`MUG=@x)GWXqD?^g2zVyKKEp=yte-;f&7f1M%zo#J_ z2ie~*BH@ESykm-V{Cgxcbp%-n9y@Ub5H22L7$J80tSPlTj-yhN*57b2h&Cs%!4u6o?yb(`mZDS@>2Kghch*oPc)4R7KFtTdhdN%W8ZNP0h( z^;@{;O7=`7Pkg4-!J#8hs+_o~u{@48nhfB%!>xvnBd&tP!*^XMmMu zg?W}E09QC-4EAzocHaG``V2tZoD8+5WkCJLj{2)|>#b}sKh}(IVq#Sd31{c^!1W9q zVeNgOb7$}>|BIAjTG$LAK{mN+kWdCedTIbttlpf!u*H@y45|`fioeyCysc2y+WLwy zmii%HmGZc+K<8{y;@C^?8VsNDR@GdduBqW@CA}2>KTLh~KOOG-zl~v-?(S~WHQh{i zOxIzU?qQg2re;hZ9CdVawCOmy9UVu<*X#ZH<$M1L*W$2h=phJe&r3U*xy$<2;|mI=Pz7p| z^Hhl{ojaivw`l(K3X{V7hOHDPt4ue7s(*U*YVUI-tcYEyrZ+tmK2Pz*f9N?3{|$_l zF=~$$73^_FThC+b7@Q9{l-!(?ylP**8h$~-x#pRDqPDKZpG{&#EM)0@Z$m>B$qWiV zQR9@cjGcZ~r$+nwC$L<-*@9&%%te2GD;v4=xw&Of;rT|gullJ_vS+AQ<&#XrJKa-g z-^4^p-aEm-L$1sAm+k6H&*1xDyBpmEkJs__5f=OyM7%8dMTeGrT9kr!sgSksxq+SIYHNj=WRLjemCsv_2C*8jFPp^@n>}JF52F%O2GM?Wa@?U=ZFF~phxK1KJ zjiy=9A$-?dQdnYjvd_h{XDW*mTEw`dvL^4{XZ3)l;*-T%e^lyZbC)+m(QePpi51Xr z^zD(Sc_&vBw|>tDPTR7cm`!-SGjQ;2i>pZ2$%ur;@M3Ejv_R!xj5aB`O*z$E+agV8 z-awaWsA@MFIPx58{dFg;-GQCN4=*x=6VbI4E3b>4YWQnt z6~Q0lfgyAEDNZI?7SKCBaTTI6iuM!(c zwc>&R?C>N#`1{P}UzEpi`UraMht!EB=e3r}|33!l2uu%BDaRPbL{Q*$Z(fXXL%R@PB8MDWa z*|B0YyL;h{tB>6FSP>KpZaenBYjJ%%JX*T+WvKD|KrF2YV*IByPAKiuowkrfFJ<*j zPPoc%q!=jn{^LN?2}suDb6q&Lr)EM#O@4qQSLdzZGaB3JgBM*a=7aN-0o|WwU7s73 z{2j8F$Iei3yx`k{T;`Ecd`tgRKC+;CrJBZq!1^4sHOBsrX;w5nN*Emd^M^gr^|9uN zNUk)$p}rs@=Kt`F*K^OK2<{A$9Lk?z?+T}?qs^?Uc*d_cyIi&JUnI{?HL`oE5c{a; ziSyUQl)90rxe?Fn12#0eBH5aV-6awL)i5UlcVAP~cpx_;&Jji}B0#|1J-;Xc^d1Yp zm~i4IsG<4hzbBj&HtOR&981qPJfNEtb)jrkFGyVN=TFYYK0od9n?toLGKkzVtm3V6 zS|H|GsOR`Q{J#_|7H{NXdq!JJJj$B*83V0a60_=!5`{4B!n1|yKmsHa_!8DUH!wkY zPph^;<2S^{jwQ4GGwBwOlg(xAd42mg`8M9DYJ-sZlaRGW3Ntr`HXp7d!%j{U%-&Z3 zGAfwxo!XL(1ffS(oX>bUmxoQQZ+%?6jdcmEmVjtEc5gXwhv;tD)rV>AVoq{gzvDT- z#{XuI84kAmE`z^WTX5oJ^kdqSM@KZZ+C)jqD#%l8Sk{ej?U#bi+AkDj;>Xgz%)PJ> z82Z_{cY9hw=fi^-W7B9So~vsx(Nb=1mnY&VX?Yc(+m)@g?D+Ujer>h#DXz`-@To5k zYvfzrbfD*>qArwd*aLwjP>XX>D=fn&;LHDRlfi3``5VhX;|_jxE=}xV3^vGZ{?y)XjPT6H$*9H=o$s36M{N~IJ+!5Yqu}qq-p0UW5)+P` z-Ku$N5=XqQWXXz-qwhKp&>A#cQGkciIvF*>=h}hI1Bwo=EI+0ggB0@H;x(QIygl|) zTzB^CxI$H>byk^c31mLu^hG6BS14i{dj1_DlpZvVV}o|kaKGWzHV-2eQOmCK)KM$0 z45jBl7XAA;4DQI*4_s?id!w!$l%nJ#*q+ZMhFr<-{dTYchzt&Fqj2qW?S^Dmxz61+ zl`oh{L;@;4B{GGX08J6$>gqkk1j`?Cuy$&<2qg2I*-sE%_Ie5nU+5m>*MGK1*zECF zr;6*qiRjY9+g5$@P2q?Z^q}C>~Lj!dozJ3al2;^di zYhPc{3pV}b_WH-&8*+hUM(FQ2qevEC+%bO>DIy|Z4bY~=Ti6jApp($w{R|LmOvYmLn^}w zgG;;kL>=Miul@Lm64rBPgiNMzVaDnQnHMI(z=wy_Gg6uX2w#I1n*12e7mjtepGc7@ zIy8MeQZCwuW3DYGPwha80c`CKAP6sc8p-FOC289+k?9YmriADLUD)6jL(#45t6pH^ zu5fGT6xxE+W_3Ix{^>7n`#S@PNMWqEr*9-``oZNVD68~+ zmVBRsnHPrhH3DxYutvykvna(T@}ZF-{@{J8{ME+j(~_W$8$i;{rI`g+cH{&2mP$W8 zv~@vD41?UBtt)uH`F0J3Bxh7)=z~Rgqq3N$*BvL*64?`gVylb-Lr?-;e}OnDJLX7=!!Ez^IcUp*dfJGiIG4qme2FjBV;+HwoNvG0ojM$QgxU- zk^W6lqS-MbznMdixyPQk$;)h~J7Ia1zIAU&ci3JkuGrs7)=5BTq24t}Cyl>{q-4=?z~;J2Q@qST!DDg^WL1uU__0ow5`NqbBH z^ag16pXz>C#=P$P1>HQBxdC;Qcnn(!*dIb9f@bn1W;UWdr~tbXql|JgQf zY?N*%MytTYyLA2^xhUCMl5_2qg6E)N`D3SZ$RPh2{HWtXvtyI&ng3PEEIFWm^bmQp z1Yd-?GZOl+_hg0V5}E9@P)%l95G$2>ZI7u;wQ;5!7%YJQ>qB#sZVv15v>PY_)SO=>znaGd6V(KS zzA(Et<$16rn!g0BHs9rIKnMe{FlV0hjOJ0e{yq3|onZ=K=_9=S07kb8WIaA3$OUC1 z`Fw#yXS+?Q(!=IDsY<$z*K3?eFI5I0$@y-_K zckhQ2lF1Bd(mXAW*gen+2Ere1^CZtG+D>+Z`>IAHxX9UH6?$*c99V1EYRXCVO;=E0 zg?)la67DW;wgLhaNOqr}dQkbkUY$GL<-hD}pu4Gd>0B{(d+w|r)0WD zk;W+iPTsNU?z6-H6=r0xvg6pCq(ygaH0Q3#DwU2H~cvQX| zR8Jb6==KzRa%msNIHtXH^9_4+t+uduWzuBsKYHoKI)pc!C@?{^DF3QvTZ3PG_?7y` zv}RoH+AQrKX*H^GyAB?T$52w42P0THX)|B`yU1m7qWzdwtQ2(%jn8mYW@biU)@UDin~Q1eqr z5Nr^x7FKGzU6h|&nNe*QNWe|v<%nc~0GZN^;zs_^sU0u>LRC+C%_kP&l? zlB!UM*EAy@i>>3=nBVb*&SC238E%Tie*qWd3(bM99K4j=SYDkMLjLCPsH9cDxIZUD ze1Os^V?dPTdXYXv^)CKf{I1(1P1~t#< zv$M*As9^FE$`r*GwNiVx$ZhKVNoqOs&sB?0VV>fhcZLWE4fUb!|G4XNCR>OVPZ`!&Vr8_cmBmZv}!rqXvgtw{Ovjy^hoO#=MU;RwK1rvCX`QD+u5U6Zgpu}sFBi`(Cc`vRD zEv2t#&ooxa+x#Z6-Oo3^HcB?aX^bOhpUg(BWgqGxiS7XNzr-uI-A zx9;09#9J#c$fD~~j|XTl7+DZng+yN&C0Q_)apNSwwuM&aMIsWQpALnmX4ld?ahynH zlLfSfzIKhFpFwYWK5&JZa)|&jshTnLP`=XQb`a=cRI(!lINL@F1jpc+eK3F`i*kik zRR7RlK`{6FU=mDnw1SBg8N4GGuv;-hf8e6(R3KucU%P2zf^edP11Z9{Nbtz1e1y z_H1K(4C~}F1J)w2rmg$DD?9M&A8vNc8E_(-;zm?0B-%#PIJSoH7nCI%nj81AwX74z zwq9KM9VK(-FJ&_2tKvXt?0gy{)4IBKPdU^|xOhG;CAG)Xqsal;yd7_~2}y7nRlg0x z%LJXNI(+$q#!-lNmypN-VKVQWu1-%PaHb>I*Aw~jolpaX*GWW0_4kUZu=!O4^X8y- zxA#@6@6o-GX89_}1Lm=^m&iW2@kDU3oJa7$R)sT4YeR6i<(d77l`!E>efZGk!9Qqh zchB1zK|~sXwj}N|)&|En++;h~DomdId$S&>N1{5(WuEdz4*iEl6n~hV@^Ui2%6Y^CdTq9`-%ijEjiAVV?x;e<8yuDD1_XGeHA&f?<-4<{?FnRK_F}5A=jj z5x2_^0^F3h$Jv#A&+G3Nc+MKpDQ+qZ>}^9Z!;wn%Qh95c>`t_HK=-oJEw$-@DdOVH zAER}IHMNJ|XxW*7B>RS~-$@0n19!522f{ig1&@7;cx+7U=0%A3f0RuNXv9H~rf@li z>gOwUzldUpQgb4PK#+;?=H}LY2q$xUYmiHR`Xbp}EFS&p7PAno0pM67L+1b!2(5M@ zVnj4(W^{BnL)#fIv&UloSN%b&?t!sVpT+B`W+1dS$N8V&9Q<>Zoi;hB1MI_OsrqBN zO2b)`y7WInG?%P34L!6yCiID3d*i*vxtioH(XgGnf|Oc_tBPPz8lr8N4IO#bf!%uG z6PrDA)s%N-MQ8TL(1F$f{srYTT{<_4e!$a>%*j+W{~j zDLA|u;l?BAD+FC$H(Rg6wPK>)>M(*#tmez`mte`$cdKuY*7|aZUfv5eDTP1e0kLnO zj9r}%PB&5rEPeWo|1jUMcslgCluAV7s#|e7AbmtAQopx4+8Y$`*`+@+yj)mhAu*VT z!H-Xrx0xa}7{0Am15ufdJ?r+b zsj^1Et(RNR6mT1Qx(n6|lGHqvP7OBFI^K=^cmGrSE-ScL&R&W3`^@;blG2otDNAS6 z*>Mp!1k`aNy9TGj>P$_`e_>4TJbC)Ht~}uK7*y^?Do@L09Jcj_$yO&NXxFC0C07Hg znQRzzeIkdmWd9UzT`6_%*lPI&iPY@|QMWjqW2mmjJRAo#_)WP-8~04uD{|brKq~b0 zIj>{@)>J(>u;NVctqq`!I|jeG1ZFoO(!a{w^br*}bLkR_w}PO?zaefUM(5#G$F1y!X@`W-^AN|H>5 z_Hum$B3hkt_DelTrP!n)3z=MXff)E_gA;AP%pd=X9tW61J4^&DLG3&FKIEqsH$c;C znt~(V_^~nW#F+q_g^GAeaB8$&*xW-x+s#9sc9>1_HKBc*`Y@2#t+UgzAn z(9GJ7io(ZmCozAbN6h{E=HN#H#VMa*&m<>AvC0sTW<&hINsWBiZ&lI$q2ybp0RMrHw_=SEIAaiD^DX zHlgVqjg)Tn^r~}_HBM|&N!L^byFQzC=A#cUmus{`eCO@b#Brs1feTJdMKgo8BAS@r zDqAo;IoN`KP_u;F#Qboq_SazmH>c7gLMU5*YEV29Lc>flcK43X{5Z0cjYMe%YbqxS z(4BJLsEYD^bO+=fLw_pV&?VwW$KptbyqU5J>z^O;BT@E>=G5XWeS6PhX+Pd20daU*~rRp7O+zS=KQAAT?_#rhYlz$)CJ- zO|qyoIX;%q+^H=gTE7%UFj1;&;VmCavK)T<{aRD*OZdmweE}=6*=n`=Y@}@aTicj$ zpWJ?>VzzBdp}w_Kh!?W`(qZ5(5$7J$%gEYhpAU)BC+&t0s0`i8W^t%k8_QJzv8wY; zbXAY#=5tmLaVVNA?R-JL!ZkLr;G{<&}(?dpWwTwYa&=0b*YDr@n{f zow<)L2q&!;pj8TR-mB1n{#Jcl@`RIil+h)^Okxe@9@k1Ts1>9?9*wY9*1tph8`oPT zbMp|IYD%EDmNR&5veVczLp+i>u;)FSm4>J65(D_LTD%fjX6%4O9oJQYS^C7DjvI;t zI4<Rvy6P`2&H81PE z^Vw@(2cHyAQPEedsx53UQgr;+qnB7sM4jag-GIo+BEmcVP|3ICUp&6bCC$db2MfJ( zMyTjfLekh)J7l*dv|gkf=?RZ2Khq35mh;*)xwCuDG%QZ+QWUknx^EzAa7{^=f8_ZH z=JCg63!805tDI*v2Dsi7?N0IT?pZ6b$>8r#KG5650cOLJuP+K`*M?<)0Cq&~DVe#( zy^M47msg1Epn(XT$|RG2^D}B=p#0L4c?S?bzdcg&08)w@4NoexEf} zu(fDXcIuBa?dG1{Ng0u9Xx6}h&GldaZ`h0&ALan5Qtw2a$pj3^EcgRCFIbF4T^o7 zxFTR6W)A+-=A_EBZQ&7t?RMt_S_Vu6Jc~%&{G0!ttS5%^%M4|0pz4ND#uebNuQv7} z8V>YlDpls5E$z@Y&UsHZ{V=kiJPHPq9DqG$X(z3nqj8-6jB165622};{#Qo#g|dm; z)6_Wya#L62Am|4Hfc@YiVFTE%Ep-T$7}na8nz7&sSSo}oc%|U)Zlg`=Ril-=t~g*2 zuv5KdnDsAHhNnI zvU$ridHLE?*49)JEUAq|euODdFq*BORE*$#Y zAWJQA+>Jf>&XejtvRSL(B-4Shl@FPzi(dErpr?3S@t4GVW3Z2ySaof2LWJ zEyColLy5QKL}vF6N3pFW61h&rJ)JYh^800Fi2P=iM||^%0rJV>?}fRr>?VTymA#F@ z!oNV08z}W_nJ{ncbZe|gnrwurv}k3ocN zoQixA!j^MpYsR;crq_*&V6M_FY8qr#w+*W$?R>=5Oyj9#wOTx636wn|*M1CGZOI7w zY!fFrcNeN4dA%d{)SodI^2|wmH{wO^^?-%@5!W&|2Q9f#$XqanNFI{agsW#4I%U=w zsD>J#PXAqnVGcM^iG5sTia3JtHU4#}QD}vB^M);l%%!!TWVJrO#QjXX`8`8de*$!Nw4VI0Ru|g z)W7@6Cy1Yw&koU^SK@DB1;j#v?--v~B%kI3wxdr&-?$?%Gk7Y0yu$O6F2Neu6|k?K zK9_-A##WaNlGrTSeFF3AnS5g8Du6ep1pr1}9%g z`xiTbfmLW>T2A@W=wkx)Y-iv=bp!)34}cPcRKp#4M)CgsQEBuWCezAb8~#+hFy4-j z!>h588|MGT$=m!DnTu&!)v~@G=Su3MN&;lM67&STyrb<^A-fj#5*wV0IMwm7$9un_ zM;#jZ6Umh@2z#M3B0=n;Y0ZPFtM@uZ1tC_|S@N4lL@`J$tK2EBprhbey~UGb!ADDw zF~CbSz*;Z|%|b*Std`iY?*;;F3g_C7-~$If=Pi_$d2LfvVa&CDU1z>;&yaH*I zu??u!AZ(HVzL$$6fm3sj;#=AM%VDD=U)JKK`QJ|(JxsxOWVZ+AZDDrmtJG*dxHz*M zs9$cL`BNOK^|cbKg^n9k66e4F;^OrrKS&9`nir`ZVC|8O%WvRhNSAXP;)xC+C+oxK z%E+$|d@#R@F*#3`x%XAGro`%k7B<*ORc&^<3&%d2%{Tn8MMc}S@*KM^K9w~eMBQ8} ztU1JA-(vlKey0AAi-PkW$B2nb1>2e*wQ&#F<$rKHb^i0^*EeS*x0c+!$fxYz|N4BF zm3^atVUfd>E{`&BTMP5FiCrpRw!J2fi(F?)Ofv*aKf9#TziI&k#zOw=Y2s@hZl{a? zPLCcfcP#JPhp!(W#(Vu+U*1NNmD2isMYR03hIIt(qst2laX>m7SG#Z1eqK0l;}NU9 zJRU(8)u80DsSN}`9v!nGr)AYwR7J56bnpibsE-R1%I%E$?RHDoJSyDXy&Tp*^}XE9-$uV|RbSw}z^X4Mg0=%6GxG0S#XL9ry=0wdW;LeY-~Cj5 zk1Ss%BZ%F^TItA@=QG?WMI==ov}r6Ldp`T|jm`l6cLCe6jQbqrbHvZO#B@%t*&c*g z#6(_r-mcwd7>BuPzB>@B==28p`uK~Fpk>GSA9@5u zjdefQaz$7G#WX~F1}t~lmKL`Vh%njY^r}leE6*O?K6^1QA6uDipTi;#?ThG)?ZN%F zl)hIodl8R>n{}#K=mz94MSE9F(B_emPV!72Eyw0#24qSgZ&4=F4fi4h%2k@ za?)>3?&M@hY#gWhenLq>KZMKdozGv1!>}AtmuZfI@?GaI@S7-S&yIgWHNr)mI_qQ7 zff>fnhKV^Meym*J6#Khl(}=890iPu7-&LY z4I1ay_`IXxllK)j4=pVWHWEP#B!5q0u3gE1_aR))VQWk8@|Q803Lo8#+H>Vag>@_x z6T}-0OddOi1txUF>aK*(%h-Hw_kvzC`1vL7Po2r70<3#4K(Xq=;xQ>W+LqonQjdPUsl*mj9@;a;CZy zxA28jp9O*{swejYTsR=FZ*UxxO1$R#E8!)maP$(Ho_g!lsF3>UiJ}B}5pUCBCa5vk zAo9AI-m~~`Gwm{a1K$fpT4jRaB>UJ^ly|b-FTV;N*4p3cuE%ryejYx(>SC-IC89NZ zivK_xdE;U!Rx@zZm>|{?wHZW!SodYECw?oAPK{Zoy)d9)LsUs|3@bn3S`U`9q-S~q zJIsn!$2?mQxLtR--Ny9s6Tk@*P9kTkGd;DIJt0^vc+@3H@jD0P-uYXupH+9nng^_V zpLf2jQ0*u@=f7mXY;|{ba|Jz*RaUmAZ-MG0ep$1N*3J5`2hn)S`K8_3;tNw=!Ard) z|3q1gTKA0~0H~b8_k>j7G|;w^rJwfbhLokx(&LE8G+WYrno|^??#P(Z1U^Be5wopNd~JUH(ed#QDpI2Ec|%e-8y@_|xxHDNe{ejB6cDDF%gqViW^_I6(9N^rbzADcs_f-9H((6pWa{APfzj6$JjYL- zaM>bxw{QTDE}N+~3*iZzJ+3G0yloVDd1@6vrH9om627rAo>ifOGm(csiAF-eE6T@t zu*Zw&v&73;=aW^?BY1US_;I$!Kbe(Jq=coxJDkrtgLaUyCqZ-TvqU*|SR$;_t81_d z8|uhM#n3b9!q&rj-WB#fDbMg#T3Y4v~JP{|$pJj!2g3D|Kc&rl^koT}sxJz^!0IGDPE7ThPaOW}W%U zul{GdApmv&%Jio2P#lt0I|os_SGve=JAX*1ZmXRW_&)wlfF!P^9!A=`CKI=^210`n z$q^IwkT%NuQxP0z%xtY_OAyhGv}*XxIhlj|j0X*MaIWh>LN^$tHzIuRDI`N8zHo72 zzpfBcFIpRFs0>z-q|g7!eX3op?>2Ngt@IUXth)F2XQ?rM2cCrkvWwn!+JvbW-&)}G zjYXk!{ArYa(Oh3~#>50{yZUGL!=88bWChnq#ifn2)U-`apWqKIKVp^GFb($9SPHor z7H8PMsm6RULHBV)&NmB5a0xSqVoG+pP%R^Of)F|luZ{VjRbqibRTAFD@R)=WY07}@1Iu=#7`FqZ*zbyMDa(o-)ufiG&vQ^Ltb7x z)}!>U%PP{-^lxhVFXLc?K^n&#sYc1d#T?UIU`wJKH0yWF9q-Rg6*#a#Al_u$5sP}e zL0i&PVI||vhvXF(X7kw{I#fH*Kr25QZYX$+FT^mr$x{=HK}aCf=Q`~@t5 ztK6&Qg+Ls)*EY`V2V@eBDMK|aUujnb7;c%6eH=qdtX7bPByhm{iey656AbBITVoKr z$BCEw+6KMz!p|7h07Z>X}+Ua*-b9>{9dJ-*KqhLfGC9xiEJ8p?JyW zmC((HE2$XjKI8ktVz@LfD&oq)t@uuT1awKynDYyw`Z3hBR3WYu@vL+^yQgze^-0>_ zRn5(F7&p+Bw@1G6vLl%dln1%zK8KMy_SV$9NbOdEei7;i1(VES#1gmZe@ul`8OApk>tXz zUKMA%p|jJR{w9S?{j8bQ9^>6nwMowAdzMM5AL%$26L7Ag`GNw~@*hvldpqxws5VzR zZw2D}%#uIGoA>Ed6HLco&nM9izR6p59Mx2+xxztbre!MvpTz8sdsxq$N0J6Jo1ag7 z8U))p6DF(vKJR!XQ;uN)F2jfO$VX&V(ZX`IV{@%?u30e&{Z(fI9B8h(Q}T@)PsNN+ zHFXn?=`tP*eiiY4*<-Po!5FiAhVn_96bBANf;-{RAzQ|S1&_DxAE!=0a3*)?N9nxucja>TBF)*}JCfe)7w0+ejVIghaOFAAI&rZfat z0YmGNAvZPM#J>wh@5T4iWg5PxSaM|a%U-ZH@Q@)9QfUn1ZTX2;g-0a(g&%{EeF?>W zXyx;dG1vLg$U-`5`hxExgOh{dp`y1lWj4G^vag6wMV*|GO|vfNj$Vo$5A$7`goL?b zE<;=LwN`M&2i+J`O-y+uce#&IwoOsy@CAMZipWws%3lypDN~M6A=cQR(p<)QJFx06 z>)%-hb98UE?J`U!Kg#JYIer2q*|by*TwBr&m)$IQLdqP; z$VjS>y@AAa?PP^{6-(kOo(;NBIUaQ`M0g@1tG#o5#sZl-%aHy^ksD9+fL#i(%aYe( z3?f@g;U;a6f}}zDL4Q1!%N&*ZkDQ4N7I($LJk91$gSta&>%-M4()!wDFjvRQFAvTZ zOV)%;RRG>o*mV7{Y-VujL_J!GzFew@y(u&LdWz)b>|d(Ba6^ZrmxZZE981v^00xD8%swLq2(gQ}R9fWs4@QM!`woF&%JWReDQM z**|X7-S@wO+=eFG=HXf?oW7fCAZbUS^f4-|5c*7N?YL0WcU0wnLMV{O_qmntz09k zwd(WEg*I=tJK-6^rRu=oUX{{{b|9iVc5pP29{;>_r`*s7>e$G4>k2G#4YRtiPS5ub=Ak$vuCxGVvl*-83TB!eI+dxg`Im8Bvdw|c;+ranso zjg9aAq=Z=6NUDTM#IQEib$P)@dItHEmp!WO!CtIGLJ zkccZD0Y#Ae#E*)??o#;p)Hpx8=>hliS{>>(nlV*2<;@{6FJ$nJwus6Q2}#+gWT@&F z?m=U?UQHto)9>kWF4e>(`~1I9y`CIr(J%iV2=Q18Ens?4)j|}(7rf7lo%iUE+rvRW z?cdI*YcJ+u$Sd!3e!@3touH42iubfB<*7VnMiNFO;i{mr&#!#Y9BOv1W^~M^*mH&1vNB= zPA*_3WcD35;%nJKSy*c;ibd6%c}0|*V-OmwTp+*GH!lZ;;N`By5fn_~TfW&{t#MXy zR6Es&^04W=5!5?jV{i--1qBrhb}AQr<5Jl(2YOd4NwvP&*IgU)bSa7Pm_&I~VQ&?c z!)Iuv&=Xz?$HRtB|a~@DXN|#=_5j%wSFD?4g)!C$)V632q;anxt&4?*S?Q*!b61Zfm!b+I?3uF-|ADI zW{aT+;~_6?0vwXpono>fE6VZJc)0Xu?km>7iTkSF)TQ;gd`Fic?($$OQVbG?oj!?I zJie2xJ?y@&yJ|A;|1_SJzx)nZsQR-nx$4n21}WP-j5%StZ;2Q)HV!1U^lR}q&_up| z&H=voxjPoSenwQT(KWSH?0ST2FTZVT!sE8jOuSxk$c4jPsrt^Q;mxtEA$};wAAQ!E zCnkEst;i?EqH_Hgnr|@;*!Iyhl#U;2-?a|#*Qyvkpcc<5tYSYOnk5MT+?4Tc2}0Gu z89zIk6tQK)O2aYB?QFj^?T{4m4M>0_Kr5zb>9nB-rbB9)K6qZ$M*c(4Le>tW>opl1 zsMob8FPxM+8!v+*<+oJfht~HrCcS|APJ{}Gmr)_ygldFXLHNj zHUc~z0^hd7P4I_aUJ4?=>|0Sk_jZoU$X}Jfe+mnK68Wo4gx)@m#<#@LdcFC*)5v=G zAmfHBuJ#FSdYrFzP&j-P`Ddh2{ zx-9q$wPH|0d*N1aRLT9%#i$(>oDmS}kx#Mfii%dn#U##^q@=bG+g%#KZX8BrvoEk` z)cg5~%<;+qFk8YaSaMYLA*Yq#95^vBPku2=ri9t2{oZ}OHRvg|f~P{mRDq_mikvF= z-aTd|P5vq~e{%DCt_s`x93Oq~nA9o6)&!Vtp)u2L1LI7d{qQuzH9nCxHA5TLE4T@P*=FC?<*){TlRCNR6I%Ek2YUxZE> zO2}-XXlTgw^=fqG&~0F^V4rw$D;w#Ka04eqY7Pzy6fwuaY`h_>2ye*9bl%Zq|4`cV9Tk zWu0wvS2a24T!Gi1bk_RZe;n{U2ybMj@luY6p)M@aUy@R^ONC|Pv&bn3*X4>R&}1HT zXfYv?re2|StD-h9B`N6yvb4)v+N`AYITaC*sbMk|oXY@l^uYMo*;(nnvF0N<`9?~$Bg>>2je z6;uu115Q9N!nvq+h;zGEaT!9kYXs5lDV4E*8b@7gZDp9jK+AWT4n>a2`yaz*!&l6I)^dEGGXS5JjW+H4wqS0`L&xKr%j4)0o?@Y0f7 z?fUl0;77gSfJD!a8iGAaXWjXaUP0Ff)ir%;(YVkHVCxTFXB(!PsJDk5OL;UmJX$w) zI;$;IGVghGIjKfzN0_-JDTivMwYLZgY=i(F@?(0YR*tG}IF5@!9~KpHDW#R+m0vb; z{;cXr@}@1@!VA~GG*8*?;mg41&)@1L04n11ghwVox%!VMr5LNY`m?>(rV1meVtSF2 zoBkYgLU>F~mOJIc<6(Ktixu*}Nk$8?+p4{J0%Rj~~?9^)B#~xf(e)+_OC1yPjK^Lt!eon&hk6*f+hN(=xsNMXa ztqP%FNY%ae+%`zySH>-&Pg9J9$6et4ZMuJ-R6JuuOomn`o)AFb9;=1wOZ6Q`Hi>hD zUQ@ba*e}K@Vt+vH_p3&w$0LRt>&>i@)q#*!hJg9q3@N~=O{6gaom2tn!8auoVjCI{ zL#I~`pkWx8!(XLsIzFB=gd6TO!5j>7z+ihTDx?pV8aT@hQgc#U`*bjp%AiqR)VOyi zjk@n&Iln7h-2VTG?s5^#m(b3V@@#@eTxWx^&f|YUM8KELI5iAHaDZ9e?Cl@8{z;BvTq& zsepcxznraTV}qG=3wIr|(P1;QK3Ny+xeB-WNwCWEh_;6tQcc!ZE7MGXXn}De$F#@K zSBD#bLQknR5lvWOZUNag`_O&jH27n-->-?g{W-_s@@hL4rwEwMFcd^$IU*m#Bk!#_MEOPyp;>n=)SqxzPq|^<}EI2Gixm@cZ>vdzO0w@VouRZ9gJ zisk%v%oOccP&_5IoB(Ab7beA@Q8u@3X7fS2WdaO`h7(-U)_057yR0MXAu~7m7lkvH z;g5x)*`81z!}KI}&OCgrjLgEaV#3Sp{RXKZ=*HW`Ul!v%Z>(GEp2xBI)2SU2#7&+) zVyAXqWn4ySYULA(aoki0beKMgS<%f~zKQ7-HUhsA2>&}OUL`#n=$~ZkQuoq0^5jPA8OT%ffRuf`iYg21-6HzON%9@(Grx`qr9^4 zyPZha-61-C{$zcB+DaUT4nu1X)iRzPBGFTDfTOcYF#)gqotAaOKz);SDL=s;_mqm> z3#s-CSu#kTUE1Js#<4u#okYzi4H4Jr=unwv!u`ir{57<2i;;B0f2xae`!Yf$`A;zb zZ7^_DY9%V45uI#jdP4SYsquK?UbsuzXF3YRG?466!J*sW`A#?@5?NUJhaH?sd;`B| zC1t1X5Fd17=r~5$vyKL)ir(!6(a+o3d6+ecZ&HpV^g4cY<#+=c zOnGH&ZB!{=kTn7%C7b;olry8wJUI3&l3+MH$vBv|G_S*SDcVNe z*J<${^bAE=RTcFn8Uyr}Ul9HbaWDZUsWX5GV=7)|h03o8=UwmL3j-%*lmz5IgRD}1 z4}351f=Tmb%|+S#P;br<-WA?l1U8ssDyNsZ*PBm&g0XGPe1?Y)C_hxdZs4ZGe-yox zo1^~w--4kS3_Dz+_oJK^eLK1>VPDa+4*jd0Y_Q?hg>(y2v?-0-N$x(9OAtN(CT#lu zczWxHsJixh7!VZ{mG16FP`U)^?haw-4(aahZV8E@Yv@KgL}Gv;gdt>xA*Jgb@8|t| z&ky?#*k@ns>a`qNS}jRRP~J6J(X}pkl>Kh(=i40D)Bj&b^6OvXv45`tS2}QWWDol4 z_qrjAN>KC^9SVBBzi$#l*qQe*qbr9V$@%O0`A1vFh|5fiDr;JGLOcubXcGvFg+INz z6;%c6&niKY;8#3V@(zWltTHW2{BR@K(%vt5WrjM?-)7{@yOXYt0fmfSf*hm=XIsOK z#ho_SW2xavHzPaca!$FmQ0vS9F>x9xF!U7plj9d}QtB>jQcieWAfBMwz`dxqVlU&0 z6DNXCs=d~4E`p;mGoHc1=PnUI`o#9kSA$Jk!&)XjjYs@)Z0tSZ6~y=0(a$yKwmLUo zIz7t15IC%B#>y93nK-8v81T-QVIZ{^&#-v(HsVMphb@=i9US@=Lsg9g1<)VEx z=E0Z>}+^bJ}oALj=PNbpJVV+Xu%ujsgIk>82P)oTU$#V6+7Rx%#1vDDzxuG!va|AwSNhAZ<4i*J#iBPNrWE2DI{{tnxrtv$t-* z4!#YGpAt244<{b+?53K)m>ig9s4+!f0|1gOZu((>M zRiAK9TkcZ>^RU-U>wZgiR}t$0BL~-3S>rck_542P{Mhy{Akf%z?{L1+U%8jYoQcsh zFAB4lt=)g zGrAN0a7$A=ZbAGZr=xpZ_CHwaMqaSx@Zz#Ij_MccJ7na_7Dd3)QpZ?ZYBnSOHiElr zzR1!fc#^uqsxuuR0igwuqQ8hK4-QS*e3Pu?FiQ=x3HC@``F($E0#Lw+Gs}cz%`;*- z(Pw!f?c2;l8`hKJ0pxwoI9og{&pL!YNUp7-AuO3TN`#ze|K~e9kP0tQGvsr4{%cWt zJ|K%2wJ`B6AY|m(J0?#T^nt1huV-&A%H=7C|e3I)<{DZHbI}gP; zhLyEx+o`bEK(Nxsw9e}&MvHm9T>Yeg!-tqm^S5)RrA%J0}*%;B*vpD$WZb*;Z&zo>dVGcPCp{$k(8 zouh`^$i2O>i;fKF1iM{zeKIhiD0^2{-K(7XCfhXg9k{-r)I<2?KmUM42Y>fXv;ZCN zKhFuTx-6j~QM*G|kClx;Uy=MtKz8q*i2@FDBxO)X%i4ydD7Vwk-YlM> zk0DoL?W|cRf6TR6NrI6E;kx?^&v&WbiiPt-q4+6PinIZlV5xfx)+~^eALDDH!taH6 ztSs9;2S@p(GVN8d5(RsqVzAzxjsJ@(yT-qB@!-}vkLKpkgzGd~>{#Dwqxj_36|gDC zH9WP-&X2@g{>J6vqKL;scS623Vj&9H<<<)F(Rn~o$&YHuHlbMqV$fZw_*VzEU%qc_ z;H#Zr&2#zz24@Enx)mBEb61+R6lq;|qsNj5^Xe=mAged~u}Bv|VAB5Q&+$Hok&yR1 zL&>Ac=tFNm@)|npk{NvKEb~QtzgM-%xQ*uP*tFI!NgF;#15U@(wvbg3e0Rw0_bp+k zqH`1ttPc!)y5=*+G6)>^D5Cj1UT+oZgd{jHW%QNCV4YJTmj21u?couzGP{1^I4AU? zxJ-XPl6IZiLt3S}2L4@XDYwCn-Vv&u% zN$Us*pk#Dg%0wI&~4sxvW>oe`yHKXj6VNrG8@qdrZSt+=Mjijjlp+W&VxvB&@xLU4X|3a?B z{-ZdiczEzfW$RZY>wbRwnJZooQrkCzO3g$6RzUFLuO$a9L@be+312^g@pP_c{P!#H z*USB-?igU_hSjh!#4^zO1IGmzF)po_V5PKO?R3w~eB3Y4YKofwcWF_+_7=5nAv5X+ z$|P~A12LyIiNihZh$PV7L6mG68a@|4#bR0u>!WPO%8{%q^&e?G%3wY>dWasrTZ)!+ z$@mD-adLovJVOquZ$DSR3YR8;>mYd3ZM)0 zUJRXy`&(}9lc{IwILrOTHKBb8BxX%)J2F=58~|$HR6nLsoq?G+)XZw*$s`HlJQ;rU zA^-P6nw^k2hhgd$a?~SxL;l9FuSU#h-A}mkksfShaT&EZR}g5(%V5{BD4cw6U+~|R z-rN)5&zYvfDJ};ihz7+G*Mq^~-00*-@xQQFd5xNyL3uIV6D{{Q6xhrDJ_e{dGbS== zv-SbLxYe{_GIrzJxTz_E0q~X|^{-YaIB0#y^I*-D?YxY>&ly%c2nL05GcP*!GL|7Y zOpo7FKdXsJ2a0A2-~yerw#jhA@^_0Qui0*NrnzQwQ%lDS1@dGmbB?$kFFQ=HN>pF@ z;5X$tsh4@H@fdn&nO=OK2z=uv_UU3=J^E-kXP`IC{L-?BF0zBEDfMBb@Qsimcjw|# z;LZ60t-csXYrB|3Nlt>&cz`YvGKDzhLmSb%DcXA=W$UV=3wJ)@2|pZ-?!8}=#YKT+ z)|``GQlez<$EHqe!qElx<9@1q`YcSSdW=_206B1+{u1zY&1%z=&$i7fo+mJ~DkY4y zZPC`-q0t9)s#y2H-sMRih7u9$m#t7m@8Iy=O@XFW`z76isQP32VD(OmOuB2_y|%J9 z8f!&&;kv%eWcog;9bnopHi!NRak{9dS z@hM-m3RF+WK<4kh<+NNG-JoY3KcdA)e|L=GYxN@Mu<~jsO|zlOC}TaVdfpVxK~mNS zEv4`%E6e@TekpJ6s(kB>D?~Ai*=i8_6j*ud({F&1%*)l9Sjn{l2+YvC<4nlk)r609 z=>K!F9E$IqzLx^*)9Tw?Tme3Kfz~hEr2btF=W}l}5SqgKee!^9*kz-nf`&288{64t z0Y3Q&tB9rhImWJ*7$@Tj0v2(`m`HQPaPD9lNY=I!$;k{`IZ@T_T%%V zg+1CH8y+^((wQv4bTPENJJEVX78;l$uxU^o$d$VjU&FSoi)R#&;1Hyfnnwwb8*X9U z`hK5(A7P!&sYuMwflqL**lLZxLO!MyY7D@^QdIrWb>sr~{?79$!KSjUR?m0y(a4^h zhUZKAX~u$mP-v4~+J{7<(Ww7tQJG(mGXaUU6hWPRhvq*h$dm*9){d9-?@$`rg@Q0} z88SwT3__LYiZC(Ev@CA<_G~@ClPjIhFD7oYh5C}_biz`aaE$4869O^y9sm%U`7rsF ztBEK(Agx~KC+Nk5<0nkSGIgVj822FYs@*PaqFx@b!$yQ-<+8a`C(>>KKz^ESsU7)w zk1WNL;R*-el`}$*z-oesIYjOogAmNLtKu6Ew@ z%O{T#C9qHCng@GcOX~AZ7!661BhwV5WHYjpq95wY)*vN2O33gfqAR%W5p)_tdDZ2y zjRY2W(q^-UEX}x2zwp=%pLjhu!$cW2uM^SVMv~`N?Q(W#SXhv~dMzb<1WqxpbJ|9^{z@Ma$f8oDLTa0^^t74JB z4qRnH51MN1Re?0sga<5~2Kaea1yQe*Q~nM<=6t{0POA4uLgI%BUjG#d8J`eUTJxBdsXTBs(g4aAd)D#2Z^ z?m^0GRPQd^H*4|UiOBgx;CE(24;+7TFz9j^k$BKT61$!s2oqdY(+e8(PCKqzk$w;) zdF=pg*=w=}1TO~9BEs262NmlduyhdtXaofrSV<`sIbt%JE7Lp-Ilw=pKDE8dxUp>C zWISzCwpf#zYKe19!DY}ih4zT}Qb>*HB{7BtIklaLt+T~sCZOn$gaoof#IP)5&T*tG z@3$y7&f~6YJNpaI$nVD}>3D@z;6@!wPwJw7V)cM!Y091y!0LSG(pNS?is*DYmudHY zbL&SE&g<$o+qucti_tDEvnWnc!s%$;%5rt77EjYYQ(|uhDO{lAbpPSV{y#$9tA<8z zG9vy<1@1gQayGU;Rt%ry*J`e)ZSp`;cxxC1`Sd!o+1qS zfLj&tYdeT-37lctp|goYK{mS@ANUuf-RX}O9}jAhyEBkoe`TE6y4bl?h`D89qHO^S zq?f?`vSPFaukyQ#w{*;;SA3w3I0;&r43baNX9=nG`*7hAdMMxMrnalAwdHHAI&Eae z$=fcvcX-Q`ZG58zwShNmHaN@A#FXjrWZu=hZD6z@qyR@dX8tm{Q0D1&rx$O57kfb0 zY9Qw_$moQajZBH!xhJ|UTMR|STO!7P^yRWQyQziUPFP-X?-lZ`Tqr$@pr%Co2~|}U z?I~#06h_so${s_Z*y0XK*vIv#_E}58gE%m3@C=dxKWVRETva~SBJ!0j_2kjO0zlaTPd(C!wcUp3fLFEk1!ZfU^qU2yW++<@KzMc>TFN=^9q_g zTK1s>ga!!AbG5-^+ajvdD2{fn>wbMT3{;TF)IaoNb7M8h3tOvnvp8Rn|C?oVCWU zfZGUbIJ8dL_uX;dGBgmruHT`BgqT<7%xFs3QrrzGfT;RNS`eakK*nG+rZhE|J2XK` zP=iyc=m|cYeX#sx#Gz8JSBGi2a#h<38tC?}5dRQ1S@?UA>n8iu7q7m=$_69gI;X#r zf@l^C$w59@q{dTA>c~=6O8#9cjD3GuO-S~Xo7NW2AXu6|lJnRicbff))Q2h{&MSwZ z^2|D#w5!R0A6mGsD}LN~^iyyG_<)s<&D3>CzGn#zP>Vi7aS!*uz1*$jS&C%%X=fQq z8J_>Gj&NL|#aFn~5=Hnyz zUNcymCUR%7{!x(iuGzvK1Wg>lZic2TwAABT>ZVqUh&AH{Z1KQ_Uf8T1gLn!14$tdO zV9wx~?OL~ayEk6|2kPo)&jh$X2YIPq1kc#&j^Q+=c-t?}yaXq>gZ{m#ed}syN?qN} z(*C&h0i=Wr`J8gw5d$0wp;ynYngj(JBzC-zlWCgK$27mAI3v7&hYX%=`6Z&)U`t@k zO=?!>i*zn9mMic;hJW2EGv%C#)$L{abWNMe)vSZQ-kz%P1?d|iD0__eZpSQX@zCf^ zA7Z1H8=-n>=hkoP_IC(F>O55^KE5KM{N5|$`~w}H(+icGlmFE8IjjD1u1vSiNhi)h zzC7iVqW@s}4&lIz`d;I(hKDJ7pSSV$>GY>*_=G@te3Av!oj=v^LdC`Y5cb-VWwv0v z+WFQN$)*XCgx7`II5@s-mcUoXcx_Ia;a<{5ND=_|#?fc*Fh-`{C4XX0A@{j#tS&$YVV0QK z;!eC!e}lDDQH8_`+a11|S@aZT)3A-Kfxo0{i5&e*m)~Za?C-dHAF4N1WuQ>fok}{I z5jyz=4W;$kr+E5uY<)UA^xv;sGDJ&TQZ+wvw!<_6==t>aozh$jWS27O7TV?4Wm6W; zUIY8$4_HBr2-=7pQWou2l1;)H3|}Vq;OQ*<4tH%5w02nT>}g50I3utIPw4fn4)5~a zlx7`>qZ2k3?1OCCgq*Gvl;N$sQVkBtW{9iz&(;&sp53ymk7E7kupnTXVCmV~cEtO5 zwG;Yyxk^tq%Syph{sY^=ltI^11UUoQgib8zcT;~LT7KPk@4 z!vW9mkQ9FFvoOn~H153yT@rr#Cj;SM5&#os-?V zBzIg~*8g1I*C0z)-M_!A$N)@n;=Xez1Rh(E5_uYa)eYgtoBV#VIUX^f(UW%7)Y0zu z3?#PsWAFF-6J;rSjT$=*F7=d!6Hq>%ZAW;o4*?e&8K~drh zfY-Hx0}`J3W>}aU6g4x$n}6^+`JdLa-LR7x-Ef?}-qELwDx+VyThxO#A{g3V#Pn1T zjcr$pD<6u`K++oRHTL>w+6Jl7SGNNoG|xRA>v5dl1ret$`2BTHMmNQT&fFj~4X4>z zWU4wtc4Xz=;2h^jVS={db1Aj|3#o{jW=4X!evi1j<1g@!yY<6C7JLd0F2phJQSzdM zCuhV_d$(5nDD8ecM?X1)f(ttonQAc+9KX=)N7FeSo!L6@b|7K)d7})i1W*j7HsQ4RY%*RI|`zYy5QomO0} zEEdqifq8h_{T%-IvWw_l819M>!@!y2Z1k)gMB`rbK11!pr`DuVFNqiW6K+;3#O!O= zg64OPBl>Idep!)*dMmT2OP3DALZ1uus8u=ovn>>jL8l+8dJ*?%Iq$Jfejbb+{Xh7W23Bf1JzQ+~7^ua9;wIRSy-qX%o;* zMm&F^>jK+JF@qk(w`h~9{y`)k&$gyQ2lmB^JgE^a9z!fMCL@xfmrPdMQ#xaDNG-O- zDpUK6T}`9buoxa|6+QzCOOZaUJ<~I6X?GwMUQVNMppy}1 ziBCEl&nG`~yx^Zal+JG{Q%;QdYruGYy3Dtp;bb8UE2#4%%_*KXhhXrFo`-mpLe87x zuqh~vpJ!(Oew|GYPi)q;Z~F=QQ-`)0gzEK*9EEZ%*vm5rr~Nb0Nk9jgUWW}dkcmgs zIRwdX^-OWU0OdpCamWjr>6D5-Z;HA~5auyDW~P{920uF|cS!MlHtlaq+pDIxH3gD< ziws?DwR3<~1G3@UYg!x08l~Rzy`r7m9##Asd+arKHhPSh;Zy>K6zq7ZjPV-JXjWO0 z5@Nb5U?v&|uQp8TLc4FAUf*r;l80_=S2M8pg?y?uA~U#J&MR>@wOyg6jQF4eq2MG- z^S9T;q57|G_cpa3VG(|4-tRIma?-|bH}MJ*s3D&Z`7dubVM;vm<`lUFncPWUb(iewcsLeyR@@`|e-_FY^m^w-rTsgn zOapp|;_-U0-cB!vuRAD%a%<46V`Js>*~`R${cFk%OQ;cZ4a!T9!P@Z)+||#E*3B-O zECc&lD6`f>QPj-5dKjen{#Im6i5wlI!mjwKptxC^hXOgjC#6&885WN@#?7N+L}3jR zDGW@k68k;j@;uP)ok%0at1b`)^yy*x3Jh4X3;+EhG<^|7+Dtr{t@g^AUghf~xJ^N~ z4;Y885K(*aK9ftur~oWkDz%ZIW1(%X2-&BIsC*UTwVjjdK? zeXKtK6glawN9ghF@0xixPIA5U*^hsYUFLg8kJsg;S<-ZWP9VGXKpco#OlQ!&CtJA$ zs&XF+mLGQ&jcR8a)PW8V$n4b>#6e24VE;N^mZ%ukR7Fi@Mp>X$Q8_7blpplvpI1Px zuS2_`o_ti3<#h-M%Ei&!-vdnn4xE?zo~!P%qbV9}ZD^O1R040oT^?L6-!|GH6GxSu zUO?wX4(FB4`=zA2@9CRi`^0CbiE%8H-u)-3)`2_JIkLI3q`Ub5)g#B@!^j)%fDPxd zo)5x^Jj5e{U1RH^9Hgg8k6?}0*oQUK7X0O3x+rG*y^Ix$<$v>rYPXf&9}Ctjrx`*~ z6(L!cI#1gpy*=ZQz=>C)s2`kuVX)I)_Z?PPRUub;UA~a8I0~?%`EIi9I~kq(S?+zj z3XfwAPCvdmBv$m+-#Xf>GBh67OS5C#7c{KxJb}@Eqb)wZv94-UQ|D+(S>|{`m!d@A z$;($(lx)+(S(7sB7(_XSWey>Qm_Ae~czX~UX7jo?kFKj&`7h~N(KX9}Mgb6v$j+$B z+YeX2p^=Hgp-i)+o(10jIax%Bw5;qb#`<8>upuQYk1Je|wN;UKN!YUHfhdR(`Zfu= zCON)vNwm^ay>va((a2@@Yv#QXHe!)l7`e&I)WaU27sw@o6cH~IT?3gK?4 z#5hE=`zRqQZxh@uDeuY|tnA!(DJU5*IN}5}h_I=zl~!A03dg4^LW<-`7C!B?t<4@G zMq`z1LHjSdd8jk`?fACUsktk9}~NT^6`M&!6~*d7*u=xdf_e8 z38Ho>yjB-JY<)*=(s}t0|9lz}BxPlFLy}y~8riMCQ4%g5qN=Z~ZRjJSf`>eUAWPKb z8O5H}-}*`^S}$(4Ybh2o-OSn{wduqc35FKBq5f^vdys8f30UtHCa*>(nUC?My+H6}fnyj{L z9=7bd08V0fGGcC9bD{yqxCbZ?vJJnUh|=>I7sza44d;%d{_Ino3J=fK$X4zl&|m<5 zy|LlplBpsquHlh}?o$fu*Lmu9<@3hZIXmE9Zr*f0jTJ^PnPIJz7+EUa6ikxzEidiy z4J>wgPMvg4t2#w-M>|%-cdqbiOzlnDXp6jiQjB%ojWHQX116cNXx2J}s?qiI0~V7{ z|Jv<{PXfsY2JSPy(;;;!_MOQ>|FxlhA8`O1)>&EeAdZW@-OmBl$CmcR$jfR&k>&i= zzDb3qGm{p3|BUFfh>IcWjDI~_g91-cfPYLrm(UiwQkq7S$2+9f+Yb;$g(8MeLG*cn zQW=4zX3jTbg8AOSWBa$)%O=-m70>eK7reneWRc(suS@NdbLv{LEFl&e&;z~|V_ z9FK(3_^8_~)kSb8I}MR^3utCc`f6@_CwYwy{q(qW%V*+pu}Fz`%y_l;?DDb3rcblV5zp)6Ail zaH87dIi0Z79EYirZQ?+X_=QkhF1tNxowzF!z&ryThLGA7Z8>!=b$|45G8_RvU4Q3q z3*5O{UzrTM_K6SQNKbI98S+tj2lI{m?ol(6+^gj16uDd8h<#qy!KA(L!d6MwQ8ZBv z-q6dzQ|+M>dC;sl0OknajIKBT8qq18IlaGt(&zSuJWrzF&3#3$bd#j)Cz@nGRk@|$ z(VIkRF%1}Xv4>Ry?zbj#ZDq z6E;3=CES+aI>sK6T{5UeTdfW==6Kan0dt|PzDN+-dtR(6C75e-MV#X1#uan9V-g0f#`utOCg>!<+EK04# zM=~%gQHWJ~`|mlBrtmn2I74*|u3fYG9lgT00As+kF}#x7QjBg+*XR+W?>r;p+Kz)| zn@!3im>V9bW5MSr+(Krl;v3?#)YI~g&L}W{rLcmg;F=ZZ!f`~WzPu5<@;;rqZNE`a zC2h0DI$50OJI;Yk1h&N@R65OTbq)-r8E{$4h6rEyH3mtN_F-}%!WyJIFCKh(-3;-CVg~c5Lg`HK~$r6 zOhLnT4Mtz-PdVYzOGirMWM&)xTAk>_;MuJY$JcVDtl}xu&z<5!t>-JiQ;lVK!jXrq zU=R0yapSWk(2=&H_aTIf8j@H}c zLwnW%udC~%Ih*H#rbaq*rFy7=AJZmU)}z2}_i^Z4gR{o3?JM98ufHnDJ_d=fvaxVm0KbT#RrMQ05x z?tb-DPO{E202f~UC^?xohyrp=CR?{vGoqK6M>}n4B6I^3FL&KLkc;Se*X7e|Ry_pJkP6Hb zfi>BbUhJmI-3rQ{)Ek&e%(-J#yJR6pIjA6kL?Rls6c3C^d-xza;-ysHrqY(^k*g7& zcG)?t>uN!Ef7t5cFjD6@>V4<+pjp>(kLgmj2}$OwVX865AIu2`_9|#hiVuGr*U=K3 z6vzFFrJa=Vn-P#uzmg^R`Mtepl|_2v(!7R)>`(Ujv7DZA--`Dv3_rf@<16;j9_2DC zj`}`KzC9B*y)2SC5N($3IGTJxQ*Y)dlfN%1wLeF_;3Jc;?uW)HT!lV2_7wyT6czI> zR7tNs>?1nn>iyI6H|6qleEp9=%9uCJmHsTy9z#+aD%k(&km6k(lHj=hUxSYWcMYH} ze6x;5e|_>>LuUJorn>Ab}jxpk@q336z5UFbPE2)+zCdzCq$+-4pTh5 z{29M^%JHneGv?(cayfye^#O%T-3UiW2|9mL^2{~Y>3cnlclaFkwo zVYn^=;U1x@L5TT0{lgpsq%VI?GvHiN+WK%Q>cH^#7!Xm2xZ#`O%8WxXg<0E(w=d2h z&8z=kJ=tQ<&-JUN$F@N0;>y^;PKxwAauJbU4_48}(6*18opi|o zNd4NLx|E3dxI#OSMS$5`Q;W`oHwMD3+2I?ugE!->tIOHp?hYA!kR&Q5(M;1L=-_k% z+PUUfIn*5@4N11zbkGlD-ilfMH*U zdP#fT}IC*lAQwF+s-iH1`I1d>709$Ua_E=V>+j@|3!ZCl*?1rY7Pcl6h2 zpLtd&w^oX!aSD?>rfHj`Gda?}f|@_Gsn-h8j7W+|$bJ9u_D)?sgq-)IjxcT!8>^FL zfzEc#C|LoYg}GS%#ySX4#`=3$x@M^x#K3c z?1%4J6s$!HS)2Q&>o@z6J9Ff^WLO6tPfusD90W0_7$)CKI!?KgkmqWOprl!lhbq|>4>lJ7dGrd3UPstG= zFWP)~7DZwnLoWaAvOhIPI}*LFd+UAImDmfjDW&6~<2K#g3F{4BRu>0 zKxxW=1U!42DN861ccw|-w!HVv2a(Gu?fZn6kB9EyhMe-Bo^LT4i|fou(n()pNuY6u z|J`k&@_i?djj9GvbJU=c67|#q2baO%tXDRMnK*xRDf9!FpB6yAcGcG5V>LILuFm3gnQ+5q zK025e#J-}p=A|Or|MhSa{X6vxlCd*7LAo0SB)xforb*=d@@cfZT%MU+VMGNak!M`-}ArJVrGVS_#w|PaNhg*V^xt>|aut$66hbPer z^t&T_*>)bzKvZqp@lsYs;uSF^hG6p+x+Hpa9j%~|uYI&xltk>1Vs&YKbBFIeuwXkp zKzeIBOxOX^3C;hipin-P=*_X=1_)mU6?6PhhmO5eiLn>;(8 zn%&JSAs)q09960A)tjm{=0MG4Z2YA(W2pu{v$u3Cp8}-J1H5Y4&oicz4qJ@hnQg%& zZhd~xNg2;&Z#Ui^>KW$*n2iqniwypo@%bF=jHYAq33x2Q$@sNqLD=_-p_2@HK_(ZN z74j@EXlE|-)_>Er7&#?2gZA2;(gv4_FB2*$U_NRzqQd7Ykpy6fXXDas3XzdN>yK}pQaWSJ8mDUdokY#~yM z!Px9HQdJz3bpr$05&Z(wCOx11D^!3rIbJpj>oh0VSaR%F!FD*x9g?fNYhQ8yB+R%1 zwsoi89rem*9AGNib$&YP8vy&~^l%k_rk^(~ZZ)F+8Eub0m(X%JBNJYos7AX+za*K= zK%;}BGAqP^t}W+sqkCANy4IO>q3)3`shj|KpThHsHk)D>!5`Y(_hCeEfJd-`|l znBHjQg_Q-G@;gdK?)dTfK(608&K=W-96w8Ra1%M{mBBjs*xLY~T~GPEQ4Nt|b7{H; zEWUKu6y0CV3IvW>sr*+IG$8u5Ia=J4SrfSW((znywW;Z@6})%B zw`X5y&_>q{&+3cvdia%Bu)|uTEUBFn`#Lh7npI3d(0C>|xqXvZQY8x5OL&!s`sw1? zMGUR#XA}|}toOmAsPDr4rx*K7l2EDbyVJn~6St%?v7ww}cSH!<-<92Sf^QWd@w9yH6=owegUUAa@#MFMkG?scrUH{5%w2 zzN7$gurv3(&<7^1$=#=+!or_q!IDQ>K_P5}-B^OAto24x2+ z{&;(RVsafrcKrx`AP(BjJGKU20-Bt{TrauF_T!+%RG8=O` zWsK#kiohA@7E}0^x*!Ez;Xo~o^0kUYZZtYr7|S?sFZ0l%&Uw#$Qf z9|8BJQfpIu3~&HqDH@?t47|&>Bc4a?)3K^@!~|49Tg; ziED|7t-J31?a9&I+k1Z3cETCX7W^zvD)7oU7+HO4m)ppgPJH<|2SO9cd2>4}_GzaU z#fH%4EdG_z#n5&W>I}$*aBqI6d4=4=aPbRCU&qL0{_-*dd1~6L z6R8n<52{< z!Y5Vxx7X73NRl$`6eTir*}@jo;S|O{7Vm7ogGV?P+%xLe_WeWBq7)tyBq$+xrcn!U z_w1kq3dl%o6h!VTme>7V9g5fUcD8<^3fB9~PEN-V0AS-aIXh(g&#M#0FPQBF-ee6= zXsH`l_%z~fG1gNmzb}24;!t%_`Z`x+B?IKquTu(wwv?go#pV9+{XwUOzoOF~x||HP zH$B7rk{b^iFUJjS>3reiki<4T5L2D@WphUu&F9#_&&lv_ z7v*|iFT<^0fAOOa;l*<15^Zl)84DUi56hzhlF%57#ZyC@7=yUOToqBI-_RMGsP-n^DQSl}-Vs ziK8^IXmw@RTNb7gD*xNcM+)y>lJcWu`dyvG&K+b`;h0b_8@y_AY@s&_^hyk8K6^c7 z;(uuJ8{xn%^!PK#zzX16c4+i7W(LXdn5t(#`q;#eddHWIO;vTg{Y=__Q_~}hHgn=u z_~E``!CRIe?VWN@76rvTdV2`h;f?z{tHe7J6r|_|F0RH~^XXLa`oMAM;hK9{ZK}|X z2bzGs?nBM`wpT5=%Aki+kMqcm3LfIcxaz9C#L+ zECGeT8u%?dt20wOz+la}s>_A~_HH*#D#bed&)daB=3b9Y0kUN|SH%komR7wqRsyc{ zJ6*&hao@i56O%5dnC%(e%zZp|o&q`Ul`tdLt}qt1Pww9%qqc#^Z(G)Xd0^I#r=2Vp z%0Yf!rN!+0a?UP$HKq$ip$TT_-7wb6tIpd>_P06ok<`FMR0Q14_ zp+*8f1;t%pAc-EoQ=RcgenL!rvDX@H=2BO3II&UiPD$C(o14;v-U>zS@;c2RIb#;T z_PPrb&q0W5FJ=SNkOm3iG=vbk4y$@hip1F1H>cL!)|!khvKajRkV zJgw}%@)#{+XWtLbw9YF8#4E5~0Ebn_ZH#jmn^dec1DXmxu{F2>Cu(|OT!@cpb_Ko` zF{cLwixoyMfY?&$CDrFxW>k5}k9M)=Esh{$LF#`W;4%y%Ci(a`NW|XnjL0kKE8j>F z{fY$omXuN)s$gPG9l{c98HFinU~Cr4XQm<5ZVDMC+5)VuA-({Zc$JvL^)1QRrWf&y zq%)dDBkLE7#vh1^DB68oBb@zjxK2*+xOPul8D=OiYhsl`-@6LIHFR+`9uo8wvABLX zk7-y>_T6d)v}*5H`i_zI!GO*g_Ut)HHG0NCj+@oVpcwI+?Vt%ZPyg=J%mbgE{3<}D z@61}oH8r~6j~8D?S(e>#3HPxxMSu}luLw2Cm-wlh$M{2mvJdlt&c8BmA0z&{2T|~^ z8ulnY7(Z+i{8{qQ9uJF+Nu=)|sWN!P~ z^?(+I!m=T-i2;QB3f)Y;4#*o3+aY;qSWv?6%aY+VDS08bsG!AJ4!um1#@{~b8?SG^fr$dybN=r7RXmRi3?33s1# zG~Fr3FYecMrjH`cE3R9FD~tovjz8xc2e3E>mt!ZVF9~-#uWsU{h$RYygo$aUj^@ov zR2 zd>Z^9ISHqB9ilNTwm%_G`-b7M*k`xTbW``8Dku?!KXKcRspi+zw07CVw;dc}ndP1r z!h7$%2SH~5Ei_j5E!Pc86}e}TFHq}TBa~L}&5q5LlI_mL$+io|?{n7kZ?|#Hc7$Vh zV4H8%nnV|P)3R3x4`KXwj!A2ty*wnI|Ltr2JER`79`av{UHSFi7Rnv90FtF1DB!tj zpmz7)t6BcJ#7n{Sp^}<7VvsUDPVHOb4QB&}!WkZf$9%8v@k2$Dd@iNChA3#C=zig} ze#clgh$*R-Gh_LHQ!}QqTLL46VNiiOvXT?{LdTFT@uTuq!cSI?^HY)Hp!OS_?E*gfgqirHLPhYE8qWIw|Fs zj6*%ku-R#E%Lq5EgT38C(e;AIj(-TTWKrLdBe*vukY-HgG0p4><|BGr`G1CAO1BsE zbSFq8atk)?6nQ&Dld>9qNXzQ7IC{`IS!ZN<0GnN8W&x`I(&5!y;HUec;)b)Ep}uGq za#uY(KFsG(FMjtSAg_!$fWrE7xUpGz6Bkmp*P?G_E;oYUR<`6s+ z33n7$Vful%n~GW9AO+)ZcoJIoYun^6+Znbjngs0GO)iGuMb$;+(pgYwGm-+muz2b$ z<5WVaNjTxKW0`ON_rsBDsrz?=x+1<`jGq_2i9(?^WNk|C+~z82Vgkgf?3GmQfmd=6sDb6uKn z*0d}2*K8?~iG?Ss#@pp$TmYZ)Ifl&66@+>j^Ns z$PfFrdJ$RwKHvQ)RkofOyiLNJ*2{+5&ZO`kI95>ivNl5MJ(vyM-dY>&yZM#;fxQzk zbVRR8x$*9sbKBZ^%r^0&ixjL4d(~s#qqWTjB{0ot-|mJQs9L$m5~BcA-A5LVY@7V| zsRTcrozwLvt-Bjn^{?mz8gdUxhjMkDp(}z#UgQX@Bs3?qC1lQ`cN8dD@KVe|7`qWu zzpUF@g=QqD9odF9${QNvlT~mmwBN>Iyb$U3rC@_!o>alF|Bl1K^6# z@ex3#!6w~(jL)rj!|Y?E!mtks#npZP1#wb1ep}TaUU2#;y;I@3VjCu)6%%WyQ2i z!PM@%HFkSJKN)B0U*}+$$t1_&R%EcL6B)(+-S6$|3lTR5?E$FGWJQKLNxxkAQilOt zmX2XD%M;5fVLlOa=Ir#el-+om7i}gS$r*cf>T@(!+FIcSzUkT4aDNd!!8ZG03^#H> ztYY=F2X3Jo#E%?#``=f9via~ZTZHn2*f$Rm$6z1lmXqvFbzm5$HOqFLR-^Hs5UsYcnR%Nrj4G2iLbVy4|cZYzqbf+NFwds`D zbV~4XrD>3i-I!u+(Ztd~JHIIPNK>Ut)1FsP5v~Y|ZX=Q;XbS!OMYH-r5z0 z@DrB0Qi(r|P`z(v1z20QoXDz86}UX_46WKQNowGF4A+%`6q7R*WV&U2VB%w5YNyS_|)J zW;vI{Mdt`aZ`JR)e%P(!jyFvSES@1PJxCJhR4##uzb^7#qA5+=V}3l$*DJsoZmD6W zlPZ3xxXfU0T3j(|^x5@hq25X-{pH2NFMgfp9=Hp(#B)|MF?on-G~k)`fmWrGwmN@N zKHJ8l-SS6=H~;V*{71|mVQt~(L8?z>sc-FtdC7wfKYZli+}KC0+G`J`SZaKv&!G;} z`YwSw#h4Lk)g0;0hgwPMH_l+;Dh#SW`XSOp4{k+1l+OIBYz5T*kTel%0HO<+-dfx% z9H$pUzZAOcE946G{1lCA<4V@`lJ63Kk*Rdt3WKq{{Or9*qjfC%_WXct9a(2tRYs&e znAPG(qPuurWBG3pX#=K|DplXB&pZ7M_}_{hjq;kKiYaDPqV9*P@vo-`aqB({v!A}YS(#O0#s_}m=MQy8A-j^~E(EG}glVFI+~2KB(@-+C-=?~M-m zIr}ZAitTQcdp1?bQ-3XYiO6m+BwB^R#Of)>&2f?e=OZD zI3d%53f590Nf)%e-HqM{zoe>3uY50Gi*FGP7l*&qq`WritvMQ|p=vm`*PN}O`Rcu~ zE$hl-Da<<71r2YA@k<7u>FF<@z=rCe=VF6DlJ-!i<1f0I=QAEf@i+krC)_#piO|i( zIpj7)6}>9(oz<4(@~E_!<4lb$CYGpC*{KwmoM5Z`5FVGR{na@*_`R`Mg{UFv_o;WG z0b(-g;|tND*(cZ-Tw;$HV(keQ+0%WqT&wNnHs=h7)>&CHL<50 zb|4KUeIdPXu;WuIS@JmBR^nz--#mTl5gGQq_Lb1od&o<8t(5M$rz>I9r-7bzzpMo( zGfH-OupZHuNHZugWHUCym>|xhbv)lX)HS#+9L^bAN=Ekae|wT<+0`2#!JO-n_Qv&D zy{#8(OWA$~we?zlv6gf`6(HA}sl2aoPD~mfH0sqNg9WQrJk9U8%jzTS+mc*~e}aI8 zGgXOK`V2`nT1$Z)OLcMME309m=|xdBnw9RO(|c9j^`DkVk?OB(5W{%RvNqR7XnZ@36n+t&0Mjuy5Rjg0f^^?T-!nCh;zFYn#v*+ z9$&L$wMHdaj@{(8C82^@sEQ7iUVmW~>(Junfd>^7eSCSX*rZBZu@gtZFEdYmL*EBk zY)(%TE*vPTFq+$Y@bj=YtnA zrL2$b{x^iCp_tFF*Dyf|C*8J+#!T1Kup2pt&17TX6;BCrL z<>CB$1_K%XZLyZI}Gl7WlMI+Txh@MnV8zXdbcX&eb}=2*gMY4GlHMV){}g4JSh8avwM6B z_A%+x&b?TSO@}uO=Ec(lLxbFrqvL~3_y(|4uSMIe*V7=Q1&iQmg~Abjo@yQ)gWic* zUdv^8m)gxJJ7Y_KMyOCK?vAs2-|4uaVmVtDi52m4>nLctdl)nLOevYIc?j=Ln9S5U z`NsE7IkV}q=`S+Rqm6wUT$+C);t$cf3lDmU8h2C1MS#jD+vuBE_1K9qx9SvPzoha^ zvPs$iWE;pZ8~6P$gy=O59va=gMMGqy?&3Mr>~ z<@otkdKCsfb)$nzGKL2n-?u(f;9pJ`mlI6kdDm&0*yO|tzFR89xAtl^T8adal@H~f zD=~JR2`-K^M7H2VD{n#vGDr<|^sJLJBg(S`@ZYP6CZrS%e@J=Ue#^{F{ikGp^r2v1VDgx+hnjX_b+kQN|?My5t zUr8W|yUgnSEq`t^$TrH2;eBvL(>g~~6ryh1U|=LCEu;hXS$= zLvC3vt#g2%gMqhc_CKx;xP=-9oWRQcPKk>`gnI{r<#*ef?e|k!tMviGUMY<2xydBn zC&wMY3f$k4vt~UmLVXR<@3cRY>~AG0j?=d>8?&9Zx)3}wR!AliEYzhzZZT&UhYRZ! zu`BKd41!?)NBhCFhfByK^V!J}X3YxZBAu3THDEI$NGRPBkCtzn;b6*gj%=iKAu#KPRE*eAA=UxxBXLg&a#RG@=CP|wrIg-l~8mD#8 z$g7M>|7lmHHP%hP!aJoqJ|pEBK<`Yl@u$1%^e%abcEKk$9RmZuS+)nKy@Bnl>kYgh zD_`~*?E=~T_nla(POtnil9+p%st@n{i*s)Nw-5d45aeJN8b*)sdg-}@Bwj0)Sq?`_t@zqshXI6ttBf=I>b5&5(Yxqm~lEHX^2{!aA&s4;&_uM-0yjymGtmXXC?wO~{=3HQH*E?=|#LjXvn?`F|=9j{UyHdk3KEftRtOr3SB`Ty|Iudao z_j$i*E~M%}+$=p7s;jp3tmSFwdMzA78E z*2HH7(AuEP`1^B%YOGC&N2J;`Lk!|`bQ-sERl=F58L<+@3~(qJusK^|sJG@1$hC%P z>kYI!x>D}>La3u(4+|7m2j{>WYKO){y47A_a)_U{4;;I13E(7fWa7?*H`zk+oq{ayJ|AUkku-hKpdpI02C~kVnO$^iek4K|_plsv77f*y$6`|y& zBYJH0a01Q9mKt&d4pU`WKV)$i6KgTv+Y_rnfRbmJKeKiW^wVFft1~E@T~3y!3Xv&7 zG0Wz>q;A8mo}b*QQ1w$XJ}fZeN!bKks#00+2}=2XVKD#1P+81rUpmWS*45Tjq1~f4pW6jlZ4Nv&eh!EgDMGD`r%gOqT@-K?`EX-J zmrk4dHrw(zd0g$ikuzNSi*00gRkVHugmZVKnz}MQ+*PZ~$P)mYk3sDNw>x@iDX$Wy zXTYxY|kh zzqBWp)qDtZr9Rne_nD-yaB@u0LwTmvj9)1Zs_H2#T`Z1jCgfbLvUsUud`Dcfpzur{ z?^EI`>_7~h)wVj!J1o0PTcs4q4ji(Ob6>G{5p88#>c0@wIP!aFOF`YR6(~`fTOhR- z+D$Rv5FBrFT+G7t&!+T=bY;;~^=mWFRtbDTpQd6Jio&vM*N@!LM>$96btQNPmj9H< z{Gnb*E?HxU;Y@CbaDQ)KFDGc;YeQ@eP>=F=-zp@uu|;+LVE9Jl^oU4wpyRRjdf8G& zL9UqjK#u-n!rJ?9&#gf#8#{RC#0R^&KHs3lCHQFghT<^D$XoqJr6Hd_ZQgU8m81HY z2bm~u@FII(Y#r*r^rJ1d-g~9oas0be`(TKs%KJj|SdECL6oa1Gg@Ag6Jetu@uowbn^B~_Mp_${G)w}oJ929 zisg1sS1%iWCHxNsQq)jAPLFf=ELgJxMV(J(j*Zf=+xda?+t}YjI=f{;ejtyZvzb+I%b zDfqB!Q4b0_%QW`ziFqV{6uhxkA|t6y&vW&%nBgqS-S_7LuP=UY8+JmkLBC=t?g5vyqhC9#~Xkg(W!dDDzA)U}!S6LcvYmCZPK zb8u;!V`!|$UmyAR_UYM0`0f;=8jLFkVXQd<&Ihzh;yCEt$MhEAZ$7>YMt|?AOc!0` z|6^hsr9aL-e17oiP%ilsYSRy7XPQ!(=?Kp>szs~(qPiKuG?gxyOrTYs=;GE8Xqd>x zs?wT)LH?u9p%{p%u&v-{mAy!K;t8@Df18a(onK4`**dwMLz7DRFeIvZk9f1E#+s1i zoqWqpTmkFc;m<<$&3WqzhPh|5Tbg!WE7O33K~m0Ik*u~H#>wl_VE8_6+vpOIpU;8N zO`H2BUj37}k0ZS8Lh=vTQ=8xMm*P2g9n7bv?|U5mv?&OOsNCEOW-1w73QOEwPUFCz zk~jr~q0>hwT@kbx9+>=#+knnIA8l6H^wdRFn&F&y# zjU4@6^jjKiQs!A)Y|G(3uDKg>O`uqRBAyRl@)#WBdR?Q5`MSV8c(?^A|3KX55E)y{ z2OX6M8OKwPmJXd2#~pj-*6z zUtQLMmC0@YVHrpE+8p*JRi9q~>GWzXzT$E5ZKY^qmX*79NUB+})Z9p28p`U_j#O=A z$Z=C+b{y<#MyOLCx0hkdD5nYdTw?KpsvQI@sTQ-&_UkV&O}1I;s4SgeF&AX;$W)FO zK1T|aJW9v~V4V4V4KU_=p?MWO@HqW;bz|My@mq}27McQ6Sk34Qs(0l^_y*fqKy#oY zB5t%bWgD8WsPZ(=KjVCU7XFb$Ji^)OM*7k4$r<*z+x_IV>D6Pe2P`bTDps3eWMY-2 zppr+xgiHC@|K(23&Ml@pPov~5tJLc-CT{c?zEcLxcLv0jp` zt+_;7o>yi8HcwjPJXD|Tz9mh5XC>-=T)cYEUQ<1Kj7~Phm~2$~OJ8ND{lT~ApmbIz z`=FTXMF$iUcrxK>-mu>3;YV+6;yc@wfrQ7rUzDY%-hC&xLT1zPVT|-!HKXD;&Li@t zwDHHp!-S+W*-uN+XlQexY=I_Fr~kuuNM1ulR)q*O~;qsr8()8P~l`(>qd~|U5MP>5GAtx_Yn@ug9`XjDeQ!Qe`kn5?vRS7Zw&|6~ zuG1e9=N?{{>&3-sW?lJ6(q^p$%W4`(XV9BDMD`R z9Ibt4XAEt=!6iW7^{NvVw+E?HY?iog83QGova(zo#1CrPW%;S@!3~s@`~O{&e^zJA z_2DM&N#}3kRL_gK{ik{mXFl0aI;!ZF<|0%uX-E;Ls-8j)8)g3@PU%actXOO zz-Yu@fD(AoTypW7sw%>}T7Ue6j=u9YTO_vSv7&viw`x)j^@L70up!w4PTW7$+LcZ#pZoxOm>_zym-#O#Vog=u;9ut zWs{l_#C3EQV7Z~61iUhB5?PCJeE1Bo?&k=hnE>E`kucS>P5TBQxoC?LZ)6W=TB38~ zB{C&tzK%>t!Zib~Mmv1|390`KM&M}9QvJIMnr-7p-LobcR^BOy)XYtwvcRxb z^t{r;>ALE+xalGNFU84o+=9ciH88t|Dr%zkOQ%nZ~r8@a~V+>a?oa z+^KnK7_d{<@&cogMPxS<3_b(2W0wY=h=BvheP&UxT-}G$p%yOU79chus6eDU(G0gF zSOxRR7V6Ryk`{-Wma_!QDdTsp^~+sZ;nkM5 za{G&s)T-zS(%E*BN<>onUtTDhJCw#P-e>1e+x&1I|6K@--r)u>yzBDz`+W#uCmef- zI*v@6PcAEg3`1k&!T4S0yon?ZIi)eQq;03hu0gSU-y_6`gELmvbcU5^$7MP#@42W3SH|6@jwG6z20?G5SjmlEuN893 z{#uQppHyP&7Nu|UXl!RC=Prz~Y1Z-IC^P+g-SKfogvoa&XSL1C?OE$i*PYuP2tgCR zx?zZO`QJZd#uW{_$qe3MAuhvqalXS81IEfSJJz^2hz*koXk>yXDv z!Z)_KQ(lqnXU|#+26MJ&?pqkDHGd&v2!Wa}pI*)>N(m16!8{ySvQ-Q_Y*#L0nreLg zpGY13=X9LByuW$`$^M)a-s835{5 zI7c|#U|Nhffo#X#M9ZF6l$nQ3;O5>LbhHJXY=bSKHxv3@#pIj0PCqd4m1HVL4HO+h z8FIz$_Po!}lqvmNTp4reIuZ(1@&#wI zbo7F=157k$e|m0|18rvaS9;+++BZuC+C4B|wWlsTCBsR6y@H?VoEgaB_zKAhP75T@ zxeRs%@ez4o`EOZ2>#X&!&OF}NQ31TFTon(QRCk=6=(~FbD8{O>^bx?185}G{_F4jR zUQzep1@`5ZIwzO2_#UZrUi?VrLydlcNO%#~P$TRxRHaO*Z*|~S_6-7@gX5`cZ^rrK zn{wb$(;Luu=0~^H>6J^~LI&s3ahUskgGCQlBP^6m#Pd)uWmuWh>YR(+7}DH4iDsl+ zXH)T1z)r*!bV>JwyS#MWNcMh^m1W%&JoAi6Yrl|qQZrt;yk zB(6yX_Fb4-VB!*&PR`eA@C| z(sQAn{e>LS&R@;)D-8t|{kSzI#613#?dQVnj4hEB!WFOVj@!gF*Y9?q4le#r#KZ#! zE;o}rY7XCNzRC$fhmLcFdKSj5;3V0i=n#t5C(TKGX-~LRIsd@yytj`7urnU#tD93} zp2si<6si5?!Fs=>%$32cHU8KOb0)J%+3R6V?~QZg+7ESuSyeaK1_RqeL~*&^nEVH?(c0X zOG-~~B~J?2ObtDTIywWM=0i$Zmzy5D>ArUHLAOK{dJ^vvas?zTaCqSt0cuZFOuKk5 zFurfr5VjxV{0op4;U6ah(h6hlApU2|^XyM3y8w6l5;djH5*qVhH&-fmeqxUxT8R|8 zlG<0e{#s%RBIhHS=QqP;-EYs3f$4q}F zz9_~~>FOg}Ao2m)bsf_!!DaH0ncs=|o(sX+t}&q4egx2&v7 zms$FHn^!miS8gs5H{|9S?t-URX+S;v9v|yy!1osBdTPMN=$zxp+7T-F{KYqvIX$mD z(ymhG*kPY~bWOy{kQ6vfU6IpSE%A={)NFIR#=NNQIk<``o>Aej|KQJ;*E>F5`hud{ zfKPYoJ?A)@3Pa1gZ1%>KsN>{D$8geV+^pq`%X;jaH1iI#)_4?yrV(9j0PN$~UMD~H zTW)%-fgiu&Wn{@IuV)0;A5haJsP)mw3WbM%kPeBj`$0_kG2*)p|M1bATMXo1j9h?p zqA~Dg`cRRy1!EfAs?9yW#HQhMEV<+MJpGGSn>v^Ai3xr!O@x z=i(93QHlqYU-F|^I&j2q;>gn=)WXFdvEzMBKRW9}AVok_)Ghdphvnz_c>2~T8U{$u z`&Y-EY@pb~S2R=T;=+z9>r{Bu#v7P>w=9*qEX~Y1Qj0%FN252o2x#F zqVHYKM4li{{YLJCO_;RP?HX|UZm#iZ5mnL7buSsNJeNDP7zHJ0xfdyhC4o%Mst^v@ zG{P+@2@kIt@Zpn#@=$S^}kEyMN#0X?jzuB$q1aquH8C%p#2G7=UDG@0_I+NGCF%TwYEmD z45JxKlz0T5iz*@Fvxl*jxKZmeEaXvdY6s!G2I@}C_=JS2qw`q|4=OnM9%kj`q4zar zHI}fHbBJlXc4qbP2x>p71d+)9nB(HHP4OLCF`UcUj^6jkZB+(MF4!Wf_S4fW7}~LZqn`~ZmRxwrtbE>H!9ckt44OF|;jYZii3DtXn+=6)1@n?2J?Nl3xiGx=VrdU$J z!;l%6U*^Atfqb#jf4rSNc=dzWyQ#5$AIni!kZu^Oj2eu6z#C$ZO*C2Uj33^JW^Xe* zIT^dph~6)kN=^<^?p@D#UB9f#5T?WRKFM|VN{KVoUUvC2o1|7q(-1>sp@Y4yv|x00 zZ~IUGk=-xSW2@dOsuj*xYba^SZ}EzwiZ0B|dE^P0u^jT_k?^ZQVv-Ttm1b6C94eZ|#t{dFCw9`Zl`_Zb;?3cWR@+ zvw3Brx)tL zjSLQDSLJ011B;sY=Gz%bl~x8s=Ifsq1J^F;QyjhBQlNh#tIb8atqzuxbkEgQ*R~?w z+t)mps(?v!4fPDa42JI+BkHfZv;l*b4xmB9Pd`@`>z5VOhZ#P8DErdw%D1^@ukP#V zIp_&KgwF_Nm(xwB0Ymq5wZAo6CqA54TK98lsN!WhdpY;?-lPVYWZ4V)?CY_!xp@u9 zTDB2Q>h1ih;{BNtv5uF>nrWd>sAypHcJB1-7t_e}Al48Jg9b&R;s9{F(m|0?p!aWj z#R_`l78pH4`11UG%p;G6YnmJby`2{}o2C1;?EF-HsoL){)>)SV@(oloqR{nJ0iIy0 z=80W!U|(?Xx;x&HAh%TawjjQ zl7`S3+Ft??-Q=VbV63A?)GmG~sM)Ck*d*P)zzU>Wpfky0#F7BbD4<6FD-17xsvMBe-WdI{EWe%h_CH&%Fx%Dorv2F;eQ_N~Q5@ zejM~7per4V2SK_G>jVofq@w(945)pvd|-@mO1%b{Z68#cn2E?{2;nN6?Ws)rdY~ub zOt_DA)FKMIY_*M`F_%TT^L}kxCWGw#~e@~~Gb+bY@6F(FXAZN&#PcG!(RmeXaq;CA zZj}(jQO%cJpZyEDs=}yWSEK%ixpGyS^l&}~l8X8sI(mmpzQverc6j_}uyB}G6@QPQ-sK2iC-FeI0c5Q>k*R@8 zD3YEoB~2y!7A-68@!<+!Vk}?m3T``XI|5F2@h>d>!SsV?DR}%&_;+C5>DB-SiL-ot*M=tlk5}WNo<}+`tDjKlG#Ja{@9eRH z{KeOdO5rV9AP@Hd%n4B_+$cbkOKIf;56g^_;Nf!`@I@=t&og3h&y z-(J6_?kYsLEEY?MGBcUOQ`o-ZgIIxa++AB3Mu*s+jV&Xz z8Ka}8Rfrt8UDU|leqMMX|226y2Wkv3cIbuqDmH`FUi9l_wktfD^SiFoBA?!joy|U#p9_V!@{&FM#J(D-yr2Kr82gtCI%gj&1EO4C`V)580u4}1+URzX+Akva97nn3Gr6M!okV}<1@R!iIlxZ%}%2r0K|9l<$lO@xYLcK;y zl^n9>(_^njO~4YXsU6wO<7*XB3x0hoxIak{|k!Qxh#3rw7`IgVr-(@ zwtepnIsJ3zn9=s){woA`waUj|o(jQ1`qzkpRf+dmsg3TLw}4yrv6NORT|HNVkx*Vn zXLtXmhY70r;!9qPv|yJPM0JE?b{ijfs|Z+w!hpSapKNv>(Rz6_7Y&Vw)&&O^_vCSL z&{m$C(f#+ILB5+`ugR`?AdAGwQyb!$zUuNcs=9?0qpt9H9c5bQ8zr1hlm)?eGJ;Sa=a8Lk|q6Tf>ZXdml8y zB_`M0tuO)=1T83j;xg8lWQ#}(=bv-k&cMYrUtY1fxqj!1;2HWio8MwNB{_NfdY@lk ztm%YbZ+?S{v{ph$012crxVDnHem!<+l^CYVbT6g0W2;A6%ZH0c6cT`Hp!C-YoQ^-@ zx_WFLM4O&6eO`OG;uF=e9J)W!)+oG;)TxbD6%p||ImL4QU%Xh&EN3LALfd%0MMW7! zvQ?v&trYBerA(88TEJJ9*3`?ly5qT<+Z+~-jt>a0U#7rf7+R9biqcK7BsEb&UDvhR zZR!Bc;J?Fl(xGh&RW!C~X!sKdL5MFsm#|JOhEt$KDMVqOs)!AT8@8*$mlK~*qRH{f zuMB^OJzSoO*;o;QSq{7j6M8PjDyaip@5_%x%m`PZ79tlU1T+LV!K524`#4alKSv1} z1xQY=O|8EE9L6{;FP$?{sCP~VICf;ZmdzdCnpd(*pc%LV{q{!&3}qb023bd&2#eJx z!UB4fYOVP=Y0{#O(xMDIW-;?6S>bi`vOH-0QI0PE+(Ic&djw`eJt9qbfiN7AaHUSc zvk?8GFcm}NbmlN$k6?)+piMhupLDjGe{L*3R1eC5UQr%kZR-epw3bK5JDs$YMoxqpj`w&*l1?ap{WZ*_oKZ>w&eT? zFD_VrabQO;PRfJc*i29C6`3DGWB2BNF)3SM=86Ms84wL)?ePhO;__=;j()z(__Z9@ z;hZ{eWZB??e|(lY;BLrDhQL^GC>c0m)X5Se#=EA`QS!$@l+QKu#wqRvGYV5(*+CZF zuF{)@ES~H@sHAq`8`FaD1#Z-obp(Obj$!f}N^Uz!^XJx163Ck9=3edzVs&~O?NyU3 zhbMpj*QjuO1G(v=i4Oqfs~Qe6d>R5QCj#_40(1~zT+0{*d(y8Z^8U`~oy+LmMdG(C zi0m!YlC81oLqtJF*0%7GxUuEjglMlIZkTSp{Jc3f7ySD|lM9BBl{e?AJn_hV4Nqb@ z%%8vagiergOnMX^n7pcJ-ek!;t%0}XJ~pdx@o0P7;+rWx5`~KUj~F#Tq;A@RU*O=Z`bNM!3qaFz_e`x~;g3}5*V$)LQz?M3@voR-u=6Qcf4yKb2rcCBTn n$g5rS4aQ~m>Po=>$m0f?bN~moVcA+S+_Nais>qZ}nFjwqK9$%$ literal 60080 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 diff --git a/app/src/beta/res/drawable/ic_wordmark_text_normal.png b/app/src/beta/res/drawable/ic_wordmark_text_normal.png index 16ef53a53122540459db8f6dd7743177aa02af48..c46dca3956889a42a5ab3a0a80b84e370d37622e 100644 GIT binary patch literal 1922 zcmYjSc{p3?8%?I8MewuLwU&ss_S{HRss@RrEk-d)Tcp;uIxS%ou@x<&mZDFIeXXUV zYFb-VGTJm^t)SRF|1iXXB>NmJ)<93s;6MVYAcuW7=z733fI0_Ph=2t_(*qg~a>L>FI~dF<=z*-D z^=&RxAtnmc3MQ)4MejyQUMpX}nZqVcPHTUKI~Gj~vZQvlA~O^pNf0 zMR3snYN13g=MUs_4oC>V_!lnM6ck~=hj8)b)Pf$&1$df$s`KwJuESsgOXtlAj-l|S z+#}TA@UrnHg!XqgqWjNeXne_UXkA`nZ1DH?x@EM`e1TD{cV4Y=#XU>D8U=&wi~sqF z=ZD~-V$tZCM4^y&mB1<|XRGa`&ovd9rro2N?5Ns)X@t>TM!oC;hW|Xli)DQr{iuA< zTm+@lC?&W?GA9N53cJo0Aaxda7R)!1n)&z40u<=?$$e$-PfIrTCdKRqDvpbxgH%29 za{km^;I+zNnD3jdcN#*|t+W$5l`U77Kir(C+V1*b7*n%@ZtJ2ISsPb`+^m-)C=ZFmtFq5s>$Yw4p#-?nI*$z#R5sJ6N#4~OP65TNEpROI z_3n>3E1-5ql9Zrd#+<|@k8Wu`A1^*{M844>rCxNleZYIQEEKLo6W+F2S#oUL_`&&WVOHytc#Ymqjzw2eYvLOpa2)UYGOn$lX>1gA%Ui(1ykmCtrx zDE%5=xKBxl%BWu?(bJDz{t1)KW7l0@st5uG}WfE;UmJ#Pa zF-{_jV_fy#a`kp(l+rcO!i8-Jn#`?W?%4Zsn4*!j7 z1YBmBRl2AXWsj9asE+7n!?0F*UA&(b$E_$J+1zHLgG|1(bR>0$}n@Fxi&`o;SqkebBhy?2P)(H@SV{j%_f*y`4=m>Y#W80>W`8kCZd+k1TW5+amwb z+K|h={HNZcz}+XeeNb42D;aU>^fEWKDb8n&wE6uYGh9wkFzZ<;rTsp_GMR#Y@yY$< z$drKQQvNl+gxzksU$lf5Cn;m+W)HR^fyy&+qB^G$(sqxu&N&aHgvSUus0_G_R2^L* z03EJxEA6)6;yiu<;l5JCZGIcD3 zABN1G7)T%IPR7koNgltJMtVmBC?!&B_(|JU(&1G}smN-1u+}HMEPPWIQ_e_xH$vpJ z{zL~RADG6n>zrKbqg@iWvIA)`5?&vZ9JT7x1`Gy6av$70#{i7t)XU5zYpBO`8FfYS z3hT^XrQA!12$>wNKyA!tY`pa}D217$+o=UgaJzs@ZbX{?$um2kk_Rj6FJev7&jfVq z#oDRqxb5LH1Eg87MTUdWitlIgbY>eka$jTj2y%3-&LshVE0LMnb#jy1q^Q~u#C-X2 zqxgaaqc8G!XcT5o$~fMTQQ$wG)F9u|Q%M6JiN2X+;9kqASZ_swAtPF8qF;j zuNN|fbi=!I5YG%j39oja1E%55YL?6Nl{agEg)$?NMt(z literal 10762 zcmV+lD)rTgP)I~p#7_&KZquP z?%uukf3Hu36{Jd3ybr$w54J$y1|U>Hzz9(EKzNq~+``}nA=58i51Ojgl zhc7$ea5x+ehvQr*!wO*}HW_-Ik0b4JV?=|;JLz!Vty9|1~>{(j1c{iizjwC9PcA#@=D%=Wk6t` z{uwJc$yB=q2`H65qQ4t;z)?6Z*VpekvFXSf58)07uMG=CAn$MKAHsu1eVzZO2LbdD z#Mj6E&t13abvPWW&g!_-5k7?kAc__^3P+=Mbz1=Jg2SmO4 zR)I)(aySV%91h0{u{st`A)Y}3$`i2eUTr-E=q@++i0xI2;bg3a~PT-$$eVsD7z=9}&&00whk$zPJsJ zLQ(dDwrxds-Z&tN$Kx?{UH2$QI>a*?PrHyYNSi3xc2&T21VNiBY?=KbY?GyPG&nrC z3l4|FvBa!Yr=i2|5BBQy^{Tei6N$|L@b18glj4DR)8=q;J>EY&JlF+?BMSt+I2;~y zA!izF$u9*vG~U0|AB{Wp`jxK_4_|k|;cz&Xl$Fa;KRkT33nI7;LiFdo&epJ!AKY-g zwF`=kJDu*ayx$JTk}(*)>_Hf8(?6ZybT}MK ziM8Mq5Nx_wB1axvgrll&5#`|{z5$10MHmiW?lkJ_9K#%A<;OM`g?EW@4u@kIah--7 zh2aQFRh#1{6X=7(u|m*>UYU(vF5?zB91h14;smFoFqF%_mEd$ZRt@PrQq&Vhf!D#| za5$C_CpaArhoex4*km|?q6H3z!?A>{bka}}sS=e+rG-Jc6=2xM9nl|+$K!sU8T9q~ zl{N-s9YMH;h@T1&?^+WDd_zAkgeSh4Opbakqd%TTqp<;g`R45Pl*PRPM9Oc99vxYh?`;cUTz;JNC9(uZxD52{?W9s}`%@bDAFpf3dUIiw}ec+!*4 z7w{=RXLR--(=%3;a~C~ZbfwI0e#jbogI4|{{}4<71{yWD8L07K&5vr)Uc4H$gM zf&a08jL?HXJRAFBFYV;XlXZzEYY*WL4Rmf7nZR8wx)8wrI1pcFF`3tE>rXsSD9auR ziv<;Ney!Dajtg+-yWy+UC6uIS7akYt-b#Euh1VJT{YYX`D=eSJ5!L=sKp^!=`Z0pWSh zXK;A1Iq&y!L+pL{B`uI!%DHOh`_MnTV?Vf`$s9q?mOd)t&qJNYgGgU4B| zQBnYv@lpIoiu;RL4`qqJaxnk7C-J?gG25s$_h{~m3+w15>4+sa7Ui`&w42%%i8oZ) zu2o6+?6c2c@aoM5mcm?lZrG8%LL_n_Z@4Q}-2FuPOy14gI>zFgCh_=rM+68u<5U@_TAEfloo2#7o{i zn?K>tqXF@P2E=YM3!L%`wfS7=GoHwa=RKftsd*>2>xpuaenFGUBirlg`<30ePFk7| zdCg!PH>3)L~@^4bpMOr=z6t6nep@C*!*b1Th% zncnjVnyL^~WX0eG=Q7MhJAv_52VP?+3*zV9b;xw<3;p=w*mf$b$h~l zEv)~R$Fl2rZw6muReRTfW7RT5S~dl2LrO}1U_2H%9+5l;&ynLa7Y6ck{glH7z>>-2 zVoy`5D&O-^2)&tu+Ib4!@Y#=_6HzEddGsFDDqG6VWp1rEt>fNf-;hHAX#A$$q*;TT zEdG*=VOvg#%@ke_33=nD#s()ib3n#yrbaI&q?K_IR=8NgNqkjACyVze1mb+IrwpT5 zdv1C?55GU4doL2i_ux*FNlV6CVS>2Li8$9JoMoa?!d=zth?6d4L{e+@Sxl{4(Pw@M zCGj-%B9;WMB7ykC);lBJ>L}tj|2ewVbwcmd*T_-$>fGsL|45sZDMN8g3?n4&g-oy% z4`fT5+IZ6P&_d`o&_a6FOPZb#?7M?G=)V{#d|`N-R5Yte6=RovRSz6DMe@XhVFW@^@Vobw<4>N&F;M#m3!IL9!QIO zlI!E*HqDu4{;Q8t&kHt$W!mNxkq<@Y!^tG*s5T?AOpnZ*hMT(0arAlSVpBjzmNpv1 zzi;&2_=k^q7=Ff;ZQx9IgUy$%=p2tL`<2r1gZON9X

=Acb%CJC1hx9RF+8Xu{% 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 IM6N<$g7FamSpWb4 diff --git a/app/src/beta/res/drawable/ic_wordmark_text_private.png b/app/src/beta/res/drawable/ic_wordmark_text_private.png index 21e67c44ad160fea5e6da884d3e994cfe8ead675..78539347d86c4dc33984d78a3d3d07d2d2a6df1b 100644 GIT binary patch literal 1653 zcmc(g`#+Nl0LI72ayvOLbBR!rtT)$+jL0xsO|zKo&9#Yy87HfZC6^>&N6oELnTXgy zwWY-tC2DKUNu6@b=5pLSDN#AjUvZx2^Z7o{Z_kfUUcfq_VdO=AWHDH z?gN9aQCe%hMhHCsOF*sV>i?mqwep6wZR-^L!9a+4I5VKVaKpZgrlFsbqB)D}T%`zV zm8bZSU1FHd;N!+5``K%ka3;mpV-SdHHrm^hKo6a%m^m%lwjtZXP*{`|O}QruKM!%Sj3x* zJFlefEh#_Ad_IUc)gSmQsG5fbTCeSjXfYZ<=(2mP9?u5HL@)5Ui-*#H z*tUzTuu)6EueqcQzAwU<4Zei;&Z$d}O#_F4$^Sm3_py zBT=e!R+$HLG)6|BklXRuN=(CDQB88d+*dK zS%l3qcdW z6|vHI`=%#~OSVOU*wTmxVh-$us*E$csf$wFs{@)X*PAv}B||#`{IkYx=JwF{J`@&! z=GsuC{^yO%vxD9-KsJQKOoa`ksj$UzW6#dVM_=mUZ}6&>`^vIg#uctWPqIrimVnKS@5N{Lj9-BhC<$(r1du?^_gZYCv%9g6C? z`!pqiq*GIrz?I;dOh%K619?um{9*r|RlVK7`2A|1(DiKY6wHLQGBko$8y2n1BA0-U zoG|T=v|1j5_}URsB{|sEcYbeWuEWzS*swBL!*b)M-W<(3@;)B;c|%;iY>9 zCp*a6d^cR+)t~Fy&WllP7ItwO`w?u@y1dxNmnU%d8qATJL@WXDT9kN6lFpA?hPqwe z;So(SxZkvVO2pk}VQ@MBzMTd`rJSIBAw5UK$g=s37h>qwWQz#9I}8;dZDs=T^i%nB z_yk~oI;z1KvDFRkxW}_;N&$->E98+SZUl2Y5C&zLb}1gx(a@r~X6&aQ6ih$7b#D`Y5*$TcWLio~--3 zhDQN^Y-)1}z$nDaqNLvp=8rLVAmD`8`^WfZ!MI!Uko_4Syn=)V19A2`ys8)Kud4lV zlkMhZx^EjDh(~Y2Wy_VMi_?A=H#~x7lDG~Ph#$<+6G2;{bFVgECnq+G81B?4r*z7! e3+a-1k}OPR`PkbtlZNU49SItB(7VwqJo8^oH$^M} literal 10114 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 literal 19126 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 M07*qoM6N<$f*?QLQvd(} diff --git a/app/src/nightly/res/drawable-hdpi/ic_logo_wordmark_private.png b/app/src/nightly/res/drawable-hdpi/ic_logo_wordmark_private.png index b32a29da0cb78a873e96da46fc676b85ddc510b5..fe9cb226843ae3f04b10a6f23a6abf322b072a83 100644 GIT binary patch literal 19107 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 X18@N%NUtZN00000NkvXXu0mjfGVLZ` literal 11709 zcmV;uEke?XP)sXF8+!oU-iY z4Xu>^s(zX_OnF??)gxe3^33~AIr^3DQ^G5nr~EC!7-P);23Hir?73@Bxp8VYzFx|3 z$?E0;|CccOj4{TzVLtrYHQE0yEXew?28TN@0Ej?V;m--9&lqEj8`gu*&Q<Sv?5Okw-zHNGX$Yr_IF)#u#IE8a9zl&yL+NIn}PK0)TVNo0uj=U9I!D z*$o^Gd;^QcVzG>5T(1km;(;}jU#gFXBSLiafglc0Hk(?Vuf(ALmtc%BX7spWIp{qP z?S52!ymwrPjzUyHP+;R}3|%aI316vlPQvIh#u(#<<)B$v|A2FDv59$tdK4k5pevf# ziZbn&$zE44P8co57-QTp9P*|+_kC$~EdF1Jj$SSVhvJA)k`+x%m6fSCDz8cye#RJM{Qk$j6GgV$ zwbwrFxSPv|oRziItCPPZ{5w=@GpA*hxCaPIF=YuP-bK6*hzKM_ifV8ggM1b6C3$_j z<^G^5YZ8W+F~%4dqhovBaNX0+n%lqfm6%CM0#_&eyOhd2ECf$+wb+aOy5NW^X@wZm zT1;lkt`xOc@>R$({8)pl5{xm%3^%vE8*aP)skgRwFF)M{@KF$DtGeCZAuS)yPuLz= zZS4nC#D(Zt*35$IBSt}sCKd;;8C?RP%cn6w^ExZzI~}(^!5CxA@Jd&U?;!-)CbyjT zlv~=nW{0R->JPrHRrT`YgiUGndgt{T?n`*tTfKZLVOyv15xE`3C0*>hL0I;=7sh(CzfCa47_;*$^&hsDyUu&wExp~cLwo?0B{7kx%8In7J3ncT z`*)~AhyaST^;)(!byp7oH0D#9DozDd!3nC4b~mG(bpViaN)vn$uxd;JNJ7u~;k?i$CnRw}Z%LtvTu0Kj`dQel7w9?PIYP zWrC9XVnSbMP3!FWhJS@RM3ADR;5*!n@}q=p;j;F7U0GjIG@HRct`q=-O4csw1Xk`* zigOH3V*)u5AvAx8WZ9!o>gruvo5-H{*L$9S;8h!rJ@nG`pWN-i z<_q?^YrcN)1siB==rVDCn^moViqNi~qNis*$LHUQJop%dz&+V?6Yj1~YrCVrG7VYPpG*NGw{G6ciP3 ziHi0iiIYu#3dqz{=PeIBwA*J_ZCKmPR!da`DmDLW(!vnu`v3drYTz%)Gg-=X@~q?v zMlS~@N9X_FBUzp^^Y2?MmJx^?IQ0}(=7e;;#{DX%r)*iyZ*Tw2O5x3AI zEQGYi9*~jeIls95{f)JAUrY^b(n$&D68zuWdk^rojdW}HyaRw#u|>)yJ(1G3q*>eh zTHE_$=k{*>|JQ4Dd%uyt-Xnj#N8V?9weQ}x)lAvmj`(S{@Y*4d|&4V$`yJ28+3R#8>83YnQUDkvZ>ssHm%(N5gwg~khVn;3lM{ptbA{hlkNH@8NWiY-g)g~u-2KGT@$gp07?Dl{B#WzxK?nc3) zC1i?#F_Y>nW}I3S@VDBi-ROKy()_Wlr^+`8VS$}k7%47b0b}JHza}np5p6gNgzcX` zgMqQ9;4fJ4ReW$^;wX$5Q9yA!Sv<{{@1>u0=OG~hNCFAKvcw@xbdqa`0yaMeGZ9;J z?9#kT^8~y8A}%#DWI|@;?TJXZgz2_qlNf)U2bf|;{7|xQS#R{>9N3#8;s-SUKh3vff|uHMxW5J7 z*TkV6%ADCHLndUF5Wgu*x0Nbl=}s)76-6JA5COk2aswWH$K@cfh%w_LMI^#yh7+UM z>nqn;IQRN)R0g_0bwL9m_e>2}{`wE$*Wv>WM~;leEFPJ@r1-G;VLKam8Pmzp>on0R zu5o+Fe#4m^-ejE~29S(l7Ox2w?MWmdLrHV21rBRo&*zaTW~0b(NstLyckca`516zK zK{IGLF+n1yB4=5fA;REAai# z-Hc-&yA4nMlb6EV*^O=g^+f2llwdc;V&;j4h`I5pVd7%O@EsdayiCWgKH0M{k6Sg- zJ}*h*eo>Q{dpApO#S}q4nhDoM#T1`M2eUNqB}XP?Z{GLCH`*lZm2~iEls%4y6SGV= z7AL<3oN9dRjYWL$o*QuV?FBv@LNl;{HM-~*9}#%vXa(1NXbH*oki{~o@VrgfKp(FVrC0*Kogx{8aNF`tK=AvVaH!$ zrRWWtA%lpg6)iu#%e|RWBvSBtJXDKIa0~PB`{scyOR&0XiLT5PGvO1U1YF0${lDCg z|NU<+$JDJkGzWo56C#Yv>poM(Eo0M=u7HH5s?$R4iY_eNQiN~W+#aUs+fkY^jFQVn zhmhqCAPhyZaUk&uO>}}k!6<4D8!TddVr9pf-7p+7mJP0xzt>L+hSuV<8`~ekI)L3M z2=Q7-94I%T+HsMq1vw?NQT66*`l!ARkqOXMVjO+n)0<{E71ze5eK!4G~l9-Z&9iIOgJ|fATDj{gZ2<906kY6s+tb zkfne{38Ki|)hPj~0HH|$R6VjAlL(dzC`j7^xe@__kv>!b8xJE)6O##Ppz)*=lwUU) zwK;JtAjC<{L;T*UlGKp*F78s|XHFN{5oSBbnfyJbAA^aB6hW9^ zt`|%teD{Zt{+$fR&W$lXH_YqnFu$+V#^38`?E5MsT@1zzf!@1{PDi6{{hj!GGOxXq z_TN2VwDH+fN6F#OHPFF*@MkoyhxBuS*G(omGRJl<6OsE$m~+h5eC{d_-+OHp&)(=^ zu}DDNt(bFtDS|Azu&*woci=f}?VCZ~sx@4h6LV&cPq1P=8>g>w@Y&IReCS{GVS13# z{29<7P&`(_Oa6E&oQq6Z@Y$IKbw|f8J8)#ajHeR`GAeuGucsM<_Y&fY?&KBCoUv}z zM7vz$XRLN7aHz?}yxU~#2jd7|I0d7l#a&G4DSwMY>(FJJ!j^t+g&5)UW?z%%9rrX5^I{8suU-6_ zbFsGKBupB|$op;yqsC_(UB&l!mvO#MCA_8-yB4v6&py>+lS7fu;S+p310CMSP{K7i z!uv}*7lsm3i+BEwuNG}Z!fX?(*X>x{vlP4>8p5Fzg#&Tk-@|KxLn+_cEMM^Db^iFnWDDn1+IK$NByCw* z&EJdPQ%X6n%zf=$#SNqRBR|x}_jpLNoFHPm(HaV|&t612hWVV{x5|A?@;*BK`!cIJ zktk&H%-nCAB4*SB-gv^nmU9H95Em;ZFH_(;Q!x<|T@ucYMQpiZ8kb%99Im|lIb6N- zSzNdC8C<{p8C=nS7X5waVLKjP`Y(Gy^8`r{eQcx^!%LEk1>kdu<3kY2qtcF9A zQnR-n1!P0KmPM=K%wiotJXmna4%WqYCoH^K6K!%sVTEEeVO-Rcd?BwE1>;BOVu@I( z{o_m=8f-%IaLRioU?9b98EK|1{Okw0b6CG7)g#vrn1dm(0G5!x|04-E2q$@ack;ID{Qr30 z=00|rg4v;SVZ3P@nIrKo<){Up1x#o{v6Qix1%xu3nS?!C!;a5CkLQ1CAY4oYQsC`t zb}Ptv1(4*0g4@ankOB}2P=a@C1?zpc3W9>L!_PvXK4dU)&`5zCGB1V>h}jf6jrK*% zbfl9^7^$-X7>K2w#*J+Zq#+Ux9`k!>@!7w_{5?!HaRz3(s{n@i{w68fL4MzE z8k@i46jD~!roc4*yB zIH0f>xG+szm}d0Cva|?Z{XH^x9WM_*x1GaPnrN3RxG2U}$ziNL#*Ff=)R8v$4${1P zOcAqjbRK-1sW{0O*8y`hi!_(jLWhB|=wj#B?MrD;AHB%!sKYHVa)$RN9OqbzH$Z!v z{798}dD`FW*Uk5vh^2miJwZsvJCa^Z?+j7k_3gSb^SZt-MPSVHFLF+Irlh9Ln}nl= zxTWo5jIZNa^Wpf5axR#TOh{ZQd^DhtTqcfnF?-F|yKv$L7th{QgUTJ3yd#Blvg_KHw zd`*vF**2t((vMTb+RO;j$wT=fpzpDRWBPt)xB>C&nq#qxVKSjB{AiPu;;fM#NV|JH zx&{LSk0c$ZF??4kP#{XpXNk{d-^P zwmH3M+(Z>ukP7w<>U=bwd|udx_~;^e`HD|K0UfpEF1 z#&nr_IR!DG$AaeTvX8i!X|hj)E^m4GR48N+P)a~}1mSA>0v7C0yu64aj4WhQ5g;rm zUz0n6crJIz*OXFpgc}UAn&WK@-rMwU&_Fpwu!cJ-Wa)Q?9{c7!Zyrx6V0+LhB%IPD6PCJ;W^3GVqz7k z*~zwq42xC80u`Tw%%CwsM{+&h1)oJs;j+8Fh~7^<7D|@#B1gr-q$vZR#iA8Nc4PV< z3!0}cT<^z3tzMQYY&laZqQur?rvoPjDPXw-%VX-Y@WSrz(gzD#6g4G4y?MYF0aabN zJk40wd|g(WXqW31ZJcPuls2cq4z%$N@IKl`%5jdh_)zC;3xZxw7SQzc<~kky{$PSA z510-79s2PaGKBtQo2m1XaqI=n;WmV9)O1o!wlUhKkWHH3dF=VE@is=D8Sa!jN>7QV zqST&{)m%y#Bsh#Fz2v&>g+#1l2UQey-t{?H$6tUSiC9po3)5d`AZILGL0z&VL)@W7 zqQ={k;TFB1?gx}iyF3r_BjF+zv*j{LvFynF<+9Rck#hh~Kt*C!K`gBpzNUR{LLo~( zVef8{>HBC8!yR%7JTy~F$5}F++}gK`wLkhjAKM_OSZ5P@0~R|t7UtkZX#Xvl`&eaq zaY%C@DP76}b2!ndr=%5GtR_7X76q zGF_M*#T7a+i&;ElH5^&r|NRE+Cr(2uFQ8wibi>Gk6bM$p8ax>ZR^Y@!QIipaI=`M< z%NpDCAfc&T-j@#rKZuS?uw%3$dIY7poL)r3mDyWzAa-&MF{>&lkL#`geCh;O(t~IJ zDp|?~;9V7FSMfQgQru}Xj2Z0+8?IfO1|?p|89dT5W8U*NF3rV z-C2#c*vZ2H4-=Pu{tU1%-lO^bm}47U;f>uc&E4&A%?Ay3D@(qWG=V196X_)n1l+r5 z2O?%q*RbW|--cp$@CD-HY5eOPPF8?LG{`)%0 zHJHX_&Rbk;IxDmtF|G3l$8Bc?a&v^*_AdBa@{mw0EH0GN41}i^rUO+>l>C~GOsVNF z3mXesC~z!b4e?_U3sQ@9VS~%t_TgXF52prALYy|YkwHi0qakKpJr44g9f+0iDeS6W zk2MM+JOSlV*k)E0PivxG{)AzFhuHD7l7W^-J8!Y^dSvC#Yw>uDnVX&LbnjJj8!3-k z95x?pPVcR_B9R|y!;PhVM-#DjG2(}x55fS8*?lsLQ;L9U7BG&17tOC}xeeH$?4a;XW$2 z-W&*5t_I|y^kQw9zN;Wz1R^E`p|GU~!WW?M`q1SAQCmt;*=wGhMNzi4t6F; zOs#fM$WC_PS+(I5XEm8VO-LGyjuROs6Wm_0&D8F0b000bGIN07gDGM@rFoxm{DYko zvXo;VVYfD$asxJLuG@$cYkuE#tMENHOfM$4k0lFOf-}42SPr5_SloR_G_@CZiRTU( zfq3btSj6gOS#1cFRJvTJtj9>)+yV*(v(Wm zuLUBcWEE0|WxrnbS>WpQ1L0z!bD33sZ9~jh03+Auq4M&V!m;znRf)xnof(Um>&ZaG zpnxljTjBUDVk~A>tc^^Z_aW+artk%nq6tm3%T0=j6oKG%sThg6-*cSQ+`CrC$+*`L z-ewba4y27((L%e}L8Is2MrJKdXcxWx5WpD%}yU9t8`;U z&9M&m(oFh{W9>LW<3@B%92u0b&Q}&@K}rP_vbig>JdUxl*@N*mEoAvQ!puK@FBDJ1 z(&+plJt)a-W`5YV70|Ci)dh(el$B;ET$+(3=)cupj_;*%>7kV6T_GGNqOedch$JWp0Q7ULA3n-d+LFK#^H=4oV=qo(XOZbXY~ zBV;6wNhz_oXoy)tSNx=uqFL`*B)skOU08VK0G4)L2L&)W&B)FybYvmnvoovHXJ_Vf zJyzCa;p3=cVyJxhH{XEV_8rLA2>B|I55-G!S4_jb|y%<@udH3n7@u%L z^WX++FN+3NE|?P_u7T^@l{~3w>SU3-lDFBCkeS<&X2QgT=H2PpiOxgBivJBnI6r#^LaAjo8-vj^(~KeG4(+lt0p6^ z9iEeIyoGkL{d^4O57yC3&|WsYiq1Gw+ykzVF6JF|(fbo8HRZ18hHD+;N1bxE0t(I)#CjAaz|wK1hn z`$G1KAL@28629kqSg5BMr3x8{nQHPpSwbfeL)2b+%*JcK+KuT0e+yEJ8B8c2@L9m> zlvR$JDppr+xGe6-I4W-Js>Au&UqZLl9SB)h1;|yyk^1vot_h&hE0Fgs*fj*=WxD}c zz__f5#Tu+y% zy=-@jLx}Cu97q@Qi-IxUN7C`%%g$agPw=wcDbo?PJHYXww%TS}e+b$XvjYD;P8eB^ zNgl51o&>i%k|Nl{31T)7Y{%FKmrwAz0aL_`o6ogyWPl?3F#@4HdkRYWAf@6=dRUqT zi_0-`oqI9bc-3RuaQTEwmx zsEd{+g<{6etS(H8dBDvDf)x`nz=_;gjYW*v^Xw9Y48#kTPns5d4`(#dDQ;F67sdWI z2eKVngQ1!xc$9>bs}Wij!jTr*#gczajQPtpSbNzlAM*$b`)#^>5aorwR!9EH|#(^~vF@}veNc=<1uSn%#cJ2)N3s=B| zr3eIo)P!%P>y)X|_M3Fo{E zdc^Syw@%DK*0w6;c@+Nt{uG*nMG}CB zm5IxO%UxGrkN&s)6uNr~poV~jtXK-L32u(XE22=Wfc3gsjuh1utkW~FmRzWufU-56 zx`+v%#lK^C=I2`t zhGNrVn8#USuK4>lP-^pYMJRRtoJdET->rFWmC!j1GvoW1VwRX4zK-}BUHk2r+ZyJW z^!-kCpu&5|u)lYnQ( zI+sx7#1IoKUT27zC#&dwYB~@wI2M#60-o>nKLg;Wv2KtdLxv0)=&k?zd6;8h*1x>}uz6DJ8c$i*1jk#0DQGV(eD$}Q6y0ZM%BD%L- ziJrmRP`vhLEQc-|4vi87%~&579M?wB zo^{@K1A!B^1z}k*+v9wt0L^;2+Y>BCvF5XQH~*M$$%bI@K5?NlgHTX&b8u$n*@;=4 zRum}rsjmQd8`c#vWXO;q1HJn{pG6XOef-=Uaa);^e&EWsb{FF=ED|s?-Drqb7!8+X ztWR)IrWk?CF#<-}jOI2tN*HNI5!OBBqHF4OAYjPZfGr?3YhBznw(gK2Lxv0)tXI78 z_t8}qFj;)keU_AeCqMuxELG;wo8Jms*dQPv5_%R!3xy)E`3a-Zal>3E;^lxwT`n)P zjAd3(PKX8t(~=Y}h+rzViajsD%9i2-_zTs8a!WX8K21sxE{N zNHa;Qbnnn#&9t%bg~#bBuD%jjDIhXFbQ zG#cyB+%Xbt( zai<#p}_CI zuh~GddCx0BsolKKSpY?BSY*hML7cz$qe$a}Gk^X;W#vB-xiS)A`_bw0(>OEtY_cme z%jRpOX3V8Uw42dzWsX^H=Elr*t|q%O@)VrsPod}BBJ#?DqXcrA4!f~a+wjdT3*ujB z;$kuZdjg>W!DKri*)vG8cM`z8DI-Pf(>wyuIA9eu5$AeF&9e07xre8eOU7^=%;$pK2CIC^?M4YRJ>KX(v*}_mZ zcd;wmP^j9@7=V+_h7Yo(Z%#;fp8_T{v2mF(V@6wHWq9D+Uk$ve|J^6auU-eWY!GUm zi>b4ZV0+({*w(!Rpm3E^K)g&8Mnwn&Oc90aG$~lFbR;NV$mvO=Q-@JcizX-x6>kB~ zsplbxK$Zgt0Z0Lo1f^rS7u8e!>aAESJOdN)2?O_{GdPqmk>FUkT$TZA5Wt8rUR@DN z40dWN4qu3pX)C+jS}Ep^_A6j4daNT3Tgp}klRd)a0fHKfiI+Kk;wUm?*!;*GnJH!v z&iOFSxa`a%5TqGT&ODB)R{_a*N07K9lVRCh7u8Lt#?g}X7@PMj7A+&1PA(#R1$X)s z=$U7NZ4pGHVU9H66K1e=_$rlK;=gaCw5qK2qY&!epwTs+7zfV z7MmjC0KaBR6A?E8Dvnb!=8YO9r3QsmgT{n^2NcnyCN?%RX3S_SBD8}0X200?rv7)G z6khE*)FDD4Q1G$jF5!fBXNB&5?CiT54mqI{V@qbbGhU}7aa}=y8V(JL-$MwN!6hr5Fd>9PD#1U``#P zlD8)oCn2{ChU@*L7hr>6ltsC~G$$RLb4z6$ zKm9{IH+upVuVOkdj?$=eG#uG-S#sIz;-BzZ=6tP;ndcscd+I69H(Htks!od1iNLel z#o0%$5w{3eKB@t7_x^)wLir!gNR+2rs8p_lp;vYC$F?0st9%2<)_^fnpkVX1j$KbBFa5bVy|YW+RDsn z6pkRBBS^*oi-XBsSO-|l<&7!ZH){uvj2SbEcHVq{`Sb7bo$lW!vQ^~Fgoq2869}5? zxj0omfk&SIKAt-FI9|{~Q<2r?qGm3;K;)!RS6Gr2l$Xxn)TxJY_URvB@r7p~JwFgv z1QY<4DK)E(P!HYY{D*}u+^&gB#AJ|f{s>P1R78eWF`B$ALxv2S2{ziq12cd5uimu% zy`K=C`%RMW4h0JSfkfbz6a+w$+rlIkstcH}o`+I^B?x)D8$I3quqd)Gad=l&y-z6B)#7PPReK#<&tL+L1kSaBw0jnsUpSA!JiXMoEFVyZnVCdt5Rh%a9>M*4d+dclP;T_niET zG`|61D-w3pb{3`_x$P{d*C{xX152}Bw*oqvxq4*U;X2AeP`IqI9R!inh&n<5WHlU^ zQUWzwsHd;Wf9=tmx^G5CZWU_K&8-e zSwn!>o6vqVhII&1YB+I>MrbNbvg6Em6`tBrxtqbKiRkf#-Pe1R1c>Z+iDw|j5)di&3ln< z$`62KX`Mbtb_C7w7R?eeWXO;SSw}@}`mcTkbyd6kJ#T?jf5Y-+UDURdQiMprltKhb zlroNF)LFb1dhNOSE%t*;J=VXCe#mm3#HN5)9E0rL3t-nO#c&ELNE=RQ?#7SDen5_G ztOueqWXO;S*&5*Mr~i_lO$zbqE8g>KLaASbRM**3UMoD=WBJlT5?I7MTllUc7By$w zoOrnAh!TK*14h0gv7unCO^Q*8#VG*8;WRGTn=k_YEVrkP0cr{vGGxfGLGb?o8p>n3 TGbG|P00000NkvXXu0mjfi6um@ diff --git a/app/src/nightly/res/drawable-mdpi/ic_logo_wordmark_private.png b/app/src/nightly/res/drawable-mdpi/ic_logo_wordmark_private.png index 170bb38ee05b7fd2263dd89f2b32fcfd4aa7fd40..7a7c2b964e179f9009c768447d78f34fa443e85d 100644 GIT binary patch literal 11182 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 M07*qoM6N<$f@7DPMgRZ+ literal 12022 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 Uyx`M4!~g&Q07*qoM6N<$f_x1Ss{jB1 diff --git a/app/src/nightly/res/drawable-xhdpi/ic_logo_wordmark_normal.png b/app/src/nightly/res/drawable-xhdpi/ic_logo_wordmark_normal.png index 505d7fdea465cee07964c6f2c7688c3ce8854d5f..8840a505786874693d39daf6d35ff14066bbbf12 100644 GIT binary patch literal 30483 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 KMNUMnLSTXni+xl8 literal 27740 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 A$p8QV diff --git a/app/src/nightly/res/drawable-xhdpi/ic_logo_wordmark_private.png b/app/src/nightly/res/drawable-xhdpi/ic_logo_wordmark_private.png index 05aedb479bda8b95359834d76cdb19c58395f841..cd31a268165fbb12dece76be57cc87c7da79f079 100644 GIT binary patch literal 28746 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 IM6N<$f;uB9!vFvP literal 47119 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 diff --git a/app/src/nightly/res/drawable-xxhdpi/ic_logo_wordmark_private.png b/app/src/nightly/res/drawable-xxhdpi/ic_logo_wordmark_private.png index dcfbb24e6cc1e2d2226db291fec54dc9fac98098..874eebbb10977aba250d753f3ecd88601f7723cf 100644 GIT binary patch literal 52530 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

AO?<&oFeyE4EwToUgX}Os`QR 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

Stn*ZwHR+7ANK(NjlQ?HJ0BMV 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%0AJ)Wnl=VELCxs1oXe|7aQRJP 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 Ve~gkG4krTqQB~AbsFbq^`yVHJY_9+S diff --git a/app/src/nightly/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png b/app/src/nightly/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png index 9feb1c4723dd7b8fbb7715354e3208cb51eb26aa..2f724dcfd210ed2481d68ad893197ffd017dab91 100644 GIT binary patch literal 85521 zcmYhhWmp_r(>06*cXtQ`_ux*@;BLX)-QC^Y-QC>-4DRj(8{A!A&dIr-@2jhS%r(<{ zch{;_tGcQuOio4&0Tve)1Ox;@{HL%22nhHP2neVEH00+uab$>SAfVFA;=(_aTtQDa zC}K&Ea6+y=UdmWGZ@Ds>Ci+s*v?l$)#m+5x`bX#~6c3aU$J-dT>h?{OHM`e%3YOoV zD-@T0R@H)5{k~Cpn|BjxX!-Rch6ttW$nAMH%cYv{X7Huumx&uL%;)8LuieMtKss07 zfEf%MZYQT{Q+$`hIq$b!Iby%GKYs@iTsA-c15(H@=ls}DqUy6-({(RujBEV06UEF8 z^z(OUBz~CQ&7?^i37TrGq9!gNUV5prrsLetv46JrZJM;7hz^~VDszdLQ*fXA)^uT6 zMjJ5xEyXYn=}l&qmCi``A2XEox%Vq3%@63mQ8D|YbS+h<-BIRUQZ{DEfGy|@Bkk3ZfS0fe ziQ@Avy1~7;wBnne-l%_lHhX=P?THr_e(BgKm>tucje9wyn-gJ>@5%T{o+i4`OlMz2 zzY%vEmrPCakHMbLwu3v@XueiTjcT5!b&MI>502(~cTlArrya}2^Ws($rJPy+ho{^L zt&T-+#l{C=&*FQH*t`3F(DOe8ehhr8>H8xsV)96h);lY-E7eoakVe@ zREMB;mjGEGHMo&Pb{y}XjhIOO?=Bu@D|GfQ+~r7}1)VIPsH=#PHH0}xH5E^(7w0(t z>sCH7(l4yucW(w7u6-vL?sWE}bg4IIk~V!p@#-+mm{=VedM>lV!GBmu{CSsO?vc3E z^S-mIAK)sFvTCdU6seK-$!SDND{h#fN+=rHJh1!!P6nMNI?U)(Q#i1nn3})%W-nfl zLS12{W!<{eeA4F4EjJV1*!sCIh}y}Ri%8>W(Fie3b0=;j*&JianBnZQv(&~~2K5HZ zsM6TCi1mshW2K%~QM>LpH1QUZe~AE>)-+iiVX7?Iuy&Mt($*I3IeB^lok; zoTz({^f)_REf+s$zMpuEXMk%bKXUo&bP%oh{VK_?1xTwYGJ+8nX4RxL&Dq?!(q__! zX8|52nhpzVJ|^0ZlNRH_EwV1Me;55~^;d#c6ItWlP!t!7+he_JTM8MoM^?i8VZ1w6 zRc_4BsdAg^`Fe4^=VWn_vZgN zkpG1mKAsn}f><0<9mnzbJC(h-O4X3LWQs*+KHdS(8>_TY)1Z>E(9KPyykoT}*ylBB zvBB8&Fa+AOR)hEBjdpcf_c4?uJMbf`it!<&_v1SxtINiZJEZS48?I+oioC7CKdcHV zkUkd*Y?D`lS+bw0S*LaE)tBmYSBm7S1F>P0G zrd~(^_jesFH;Z$`R-$#!8^4DMsNqsv(b2`!18n3?atM$WDaKuHjCGtD1Fz8%ftguC zdy}{=W#!CB#lubRp0R^>c^%jKyq<2PsQlsjG-|pl?&*8Aq%yhk$cN6=-3SlRaM9`} z%)!PO!dI=1;8v8kuiU0B1tb&%=2w|E1}`aUQoi_{TD@_^7c4GD0JcFS6JT9)R@~dw zK-Yy31xO++AWIdSS8h>26&dpS#7bMyKxi z{Suj7B-u#)-=j!GTYp^qo9wQosDp25M}OX^GsyJX!NSpgH*x8LOxU8LIMhNPt_}*R zhg7Qea;6NBfal}i+r~DyRlj&Mqdh4!OBqxl(Zc5%$Rh^5b@2TbIxBK+MdbsorkPg1 zE(w(_9QAB?Wcq+B){wILgL|*3m!^((tp1z6Dxql5(FGDOCN#AMy;BGU z{_bSKh-VxJ{gk&^bP@`)OGJSgcz9F#K-G_ZKy?n@4fA*XSbestwDxP34%qKhw0^<4 zo~rGJaI{!tVgv`d4{+l75=6{l{i{7gwdhi%Db`awbQ=PTh(E?XqFlA$RdbAO5JxkJ z|3Nv0lz`>+l9H1e!fKqBQX+V?@UzscNAv;>43fwf63$=XXY7N>rerRj4^8C^Y^yXi zIlx}&)b9mZgK8Fu^0xW^_Tf!P@jm&xkIu81IJ2*S@~#@`hMuxw-lq1_-ER(t<4nBy z9xhG0_0p9Nar}#4Hjr295lvB0*M{|LeGUnlHm=lA~wmlv4cxwkeMt8Z7y zbTHC2s5xt)UsQ`858_Uv#vVaM?WpHbb~Rs2QF% zfaG|&uJ;$8w9Y;5Ziq00C?*f4F4;pRtyhUb(TfOb6_x=By-MVl6pGyPSUx2zH5$99 zKvEEb;*83Goi0bN?=d2m%mh5_|Dz1m#UmB%3CGE?y;a132xw_rc^M(r+6%bveUb&r zfWqm8)Q=wuJvPU?{<^}y2qF){M1{1uu^LYR5#|uwqY1K*+7bUTSA8msoZ+pxhL~WN z=;P5OW<+EFJ}~zTKc!B9rA7gXGvLg??dx?@;J5rJA#VH=Q7q=-#TsW?$4AzTw8zS( zCRavj{gMC^ynj*<+hBY(em9(nd(4p>>IV9dSWe6)0Ffy&?1YW^@oT=ECrR>A`vgc= zR6Q`2M8A`fFFzOxjw2VjBx?#wlK!-w^JIHv@UM#r(Kr1#;767qRw(N~=({&z<+Sz? zyS=@x_P>x(fG4u{dq<_qup;wT4SdBoyX>_BlaanYe?rVQ`j3YUPtG|iR?!qOT3Oj~ zj>TPyX8Xuh<)&7$MbO2Xj-kIaIL`gTo?8xani=4(m1`(Wg3?!?1^q`QhlE=V%XNPz)_h0X( zr^{~Rrv z@@QTlf;d#3iJ{wj98-RAfS zEM2vnS(DtZ#{bx3;eBbz#gDK_0&B66o=u=0ayn#!E86ivuXWV!u$R_#K{y4dfDC-{i>U$ie?-4>F$MAEQJrjhuQ$#w<$uHeugGbR&T&}qP^S>^FY3K_J zCtR3-+=dR1nr~z%2qc{FZK6$t2e-Yu6BKA$O8}AZ-t)ukdd2z=qTP1?lH|s8WCIav zfy!@5iP(!Q@uCka3WuIhVncuToZE1CH9GwAdK1C#V*ZXd#%beq3hu(q$R5Mp*nn|} zw}!~*TYk*i$gUg7mQeJaP5UHW%3+w0*Z#f0}m*TsWub?3#cr?v?qa!irOO3@3bgTv$W#L@)W z22lZp5;!#`}X9$;4wdqBWs$@>T;~V-}0I zlcJWE=$bPDL;4sW>C@PlK6Lnws-h!Q()>$4PXcALOA}YVY{8d$2-`p})HMsVcSVU) zM_cg!l4y=<{kZdJ%lq&&Z%8&rXL6B#k99&~YW`2%N$cZjldY{x(c>v|V=)#Jk z4l%vSjK4rQBPK*v(=4AI|CNMyW76&@k-y+2K@#YeJaga8Ms!Iq{5L}QQmaM@8c8{? zQL@X?Z?4}Kog_d&VdP{%+K*DvpQQHel@-=7Cf`!c5lO%y;Jb}*TtdG>zO{CPNgy*- zUOeF03wl*n7OXN*!!0l`zUNXRs^X!^kIS=Mzmz9*1JSCr4txIw=4QU|dt1|EP>bj7 z%G=7G{~`+>EMDJeMUCLPraDokw?(qJj+%@wqDgVY*0l$Ir6R)~u_1`3e1e)U}ST?sK`?@y;VburC|=OytXR z{fiYhA1oc4WYwWkd1Vu8iR)gVF~q>aC`;`Pu1HuCQT~k1o%c<(Q2EUVI{hPJMgy^H z37HE6H8g~0{UQayFy@pmZ#-Ts_ zC0Gq<;$af^wJN`)G~HqV%Bl~4f{(PUG+fvh6<9)Ldo3L)g-p}UThfx| z&m8}xZP+FjXm2V3fK#a)hTvnV{D!;6vWnsQEsq0ZAfT`6%3*1B*GHSmDnLcs3krH( zBN)1|MwAqLF;EVzgh(>6(;GXql@?o2eh}r1X8lLpJdkbbr_sXr*ealaYY}pFnVIuT z#{lUgZ55D67uDtjB;c>QC1Ck%VPOox?9uVx);;jN_u~{J2Y0r%1d^m6pE4U{@BFH>05%LL|Cr#7dClR}#Sf zS@oCm_rwWR(2Y2LfXsCV*86C{x5TI0B-=PnD6*`T;y{}g8HZVSs>ZRAmQ1A^^QPLb z9{uHiDi&8liqBd~)^do?$%pGcJI{Uogb%6($tp=+a=98F@?IHXXkiv&G&r73E8Eih zrdPzusv9{|Ns9h8@2I;hR127kRLv`zE?T3)Pf?A>XeT4GLTbLq0$$&Wy{0F-BGLd+ z#9Qh%(jaqFGJ2L(J4k34h+CDzU?>N1!HJDAo`T6MQ(aMg52P)>{}q7*q}RzB-Z-T9 z_8d;9`(r5U*Q}q^tYK_1#n6XxMw1G-FQqpf8 zk}6tCV#=}XZ6Vx)zu3>wp`gy0&vlMUr{Xb7xC#GLic~BXv@`qJ)>}m)H|Hy;V&HLq zbEy6ZNGx>@NPdX&7CC#)Q3t&Z@0H$3%wDKNyzwn6Zg}sKv+Wr2k(3-!DVhCzh;d(R z2D7l~7i`)+J|f}=rf*=u>kDe3AhV*ZNbaMp_rOZT(F?k^!CBz#Ztj4+wf(NIPz%^R z1cWeew6htr8OE+dP&3!$f7~92OB<2w-W{8Ud3L*z^?F^gXgF%Sw_3|p1u?tCT9XjC zHFT}rRe+je_pn*ZIyrv-vN+4xCxt5i9KU}>%KvlV<78W9JNnMT1ZGoJfY?+!C_3)p zPsT;)OI~R4i6+KmQw>!9^*)6^rN=|ufwloCDJQ7uYxi!PO`fDRK}z%`mm>}zcn-i` zM(m&t+PfJ1Z@O!T7H0k_yo~;MmN$9WGI5vj1v``v?xVO%UTh{)=t<6?=mM^?OD$cK z)&UmHoft@b5izD@U2JJCLl!qVW5&z!G~ms-n`kx+KG8We^Kyh(&{kf;3|?jo#y;mt zCO#~Cu&%brk93&ksW~<|FS`e|&stj!a13lIj>r##3k7VACvoH`S~}UHpUYfiefUL< zJvjbVgK=@=>$>JDqmp0 z;F|NnY7|`FqeS7vLUkcBs6KX_Z)czT3xB7B^qwdB0^MyUeBeu9>pas$Gm zz2ODUhuQ{610*(Y%J)06UxP;s-%xZTI-kAFdZ+0`K#?hlxvVobo@fZxVL>!dkm0qK zmAKjswm#~Q3rO8nxcc(yDcWU{_)ozXRuO(&IVE2Amm~eBL{jI76{4V<; z9FxyUA8#hIP9Zj0;}+>b+hxOdJa>G)t72ha7Sgx1xACX)tUva%p7!~hoqePlF~H=r z+%t*65!smrtxebAgBISuKG=?m`IE zODaP5=>>;Mpo`(|3W8GZDkZZoXVkkahGO9aQm679it-C?w#W}^k2}7@0weEMi>z?O zxhTvkLNLBG(!=wkT`aO@u&;v_*PE;CpeY<*{~bV#)mJ7y6yvLU9|8HSx*z*3u=MlO zOl7km@8I7dC}GR0m`|J%GZPxIoMp@2?!^M1QrKWqX)!9%SdA9p_TD+!-Mpfgn01S253|6 z_97wt#H}SyRVjga;zO%wy%;^Kp5S{WYZVN6JmEUArQzR)RI3U*o=_oV(_JY3&?Jpj zcl#o`lQ41rHG0x~x7<^<_)bTxCBPRKSq9jHNFp9hE{lB1yKYg`itu`w%MAYy%Iy{7 zr#00{=Cs#@ST+>jV{0=~P?XdO~%LarC9lk zxZDY4hYKd;fSSFU%^#hCt(aXodOna}l?gPGo@%#zO?$k8`D(oHNt$|~5SraFu|G_^ z)qg1vnkArWZ>7jB&OlyS{)_@wq`Ku$J4V;(H z(K7G++p$gZm2M=xFO8pYBi#A?2RT)1+TX56>@_g!U6Evbi-uXo+CxowM;VhcC8x{3wq%rx4_gkE7 zNf$9cr-dBMr)c_+&o_InynQEJ9M%7|N>0%q-yw#=x4K{RK3wgV94o3wkKN<|3cCf5 ztL|j^0|k55uc4m5womXDV?dXWLnI*`-Oa zn{o#Y*a>8L7ymEj=M;;&syqGZdfNBV#oJ03q?B=GYJ7yd(!c!Do5-{;w6eWUg)Oif z5`h-Z_@d@1xph6>F}G)REQFTuxf8=j4VX{OQ1;qeXWPWiZEv$y2^1|sn=S2IZfHkS z%+e{Tg<{+s(SO}wewx1Ecc>&hbmD(MGBF_aGGL?!WrA-!7OUz(Ph|?6HI1un>z=A0 zmvrWKCD(j=+we%dB?9lNS^ZsjM!Yn|md%`~#SePr!_9G2DT@V!Hdff6tNL)gb-;c# zA`dOMz-OYR-q@9!^Rrrvbh--hPu^JAVM|&nJ0S?uJ9`|Il5T0En+zesW!T4AvsVXW zeUCHKcw~!V?#3kO#57JA*>RMJfZ}RJ$*6PD=ruvmfa?0b_Du_naPYq@j^1Y<+Imst zq<^mRae5xVMylMxD#+Tp23S-aij%&BvsR+W-ZDit9z6vvczD{II_7I;F;)KJZ z0m^e4BBDO;^-1EjDx_s`QV$G7A6r-etl@vNOnbZ6_7FZNLYGRd&_Ze4AYYK;#CghiQ~l@WavAq3k`<&?BdB6+8Q zHJg}%(SoTt;<9^&=AhWQUn3ymWL{vVpKeWVG5p`Aj0QeRNT9zqj!P0Kyvf$`Vq`{nm zfM@r@c%kXFI^J-f;W25#+p7+8;b7=;)?@4gWE^|30fDQ4+-so~ithnrCP{Z~-Q?zK zs`o|h%@UOopToo%2kbB*3z7|_j0QwR65x>+gs|8fuy~1GQK%3-%^oj9_VZ?AOTuS0@=S%7!u?j4yn?Aiy%+Dl$E`VC z`n|qKSc?Zb{##EoxG}0MnJ#OtU1LaJxyZC$se^}BAL0=AwS9fv|7<2%2QYqhyt!|e{`fvJO}Vm(-_YHu7GFr%&}Ry-&%0i`nZXdBbl>b+zy(i-tIT#%q)hk;L~t|;-tV;j#c$l&Go0bxBu z#}C295sL#XMu*Pj@XG|LhP&?KG{ccf)bA79xx0~O&5vIsFgd_=R(n0u+sNg=_vywf z(>qAKITUowC-88askDxF#HS&W9qcfiJ$i-Lu2?mdm8yCKrWx>Y99@hea^Gh5m&S9d zB)u})Vj=vWF)%~gydLxbc6xO%3E#)>V%+LcDEyadj1`!0MatM{36m}K*?WtuW49l; z_-0Xxu76TQMm_QNa)kf!wJl8)8d1odm)mSXhvKEY&p(#6Yboy6sSO+^hmm!DpE5!LcWWR z#V(0%Q4l^WAD$?f!zd%4fL^7H^`>mI3By+X80IBLt?B&3imEER0@z`J4gPLhVuUMy;E(5>`VQ+#us-jVxdTs zZn2WcLp+G*5zju+02XyAwx_G;d5#M=q63|h8|E}GD#n*wlaFtcu!sy$c>iY!CLCLy z&-|Sh><&lTydv$Hj8Tnt0+xpZMZ5%PJLsbPR&Z#v2)grey;wnZgy(%;k!XRj^9Y)j z=ZGRi2Us+N#$2tp;0Iijj15c9dr7jrQGGKAnAv>4e>01v`nX30{hmC~9;g@zn^L^0 zDDmLl4pb})TJbaMYQe&D-GEHKi~wHZC({VvLj|H$3~Ikhi0=nln2cuj)ol_2f*xYE zs{O7Nmwu~I%LqJ8PGIA`F+W%v>74(Js-UgjIb~%4Zv;s(Df;1V8r^0$bZ=hs|36ap zoi=4Fw7p!-JWr2jvf+2@*;Ai4cZORjI3Fi)(N+WB0D_q@U`Y86@0t{mSlL*BNP=2L zjyKh}o$odZt-Gzsn}8Q@(zFjqTbde>&WDRv+1<>!cm&9$xSP9FEikrV7C!H%`zw74 zf4K4Dv5eiXh9|0)CiPa?Blm8L3|oDG{WVVajUr3!D^E`U+7C6^;zhKI8Q#Hp*)kcX zWX|Nb!LA_=a*rq~r+~y~J8{{{^Ao)syLIOEx=6H+$eO0SfvkJQXUR&EOOqT;uj~B< zmAWvq=gg!qhE5o@B7c;rQ^=PXBcy;KlZ;?CPMDY1{Jj5JAD`!;2}h3W4u98)9wwAa zsBV_D%mf4Ya+rt>W}cR zH5v~3qWxq|G$LXxh1}X^;3hte&LGl`lzwKxN7)l6_j0=``EU+q4-4WZFT=&YvV!PH z0tC%Z6AOSSAhAsdVT?SCzy2H1De)xpn1mx-8)YSo*tz7)K30{dkOtOpU`U@9Wn_@B z1wI8(mZfjyDlMM@fV=yA`5{)OE5^s>KjK{*=ebmIW7peHRAO9^m-pwUCCzbvU2gco~#swE zc|S;1$IJkX>hVxPAL?h=a@S&Q4`Y442^p^|Ow)myrTv5Q#StBy9J0btMsb)0{OR5b zoVce_{ZGdGkWu}HvGJI$BqXUEQ>9JhQIkY|_%m2W-r|n89h$1kgyyqSBPV{h8AXLn zSNQId&S+dlwXdyv(;td)Vnwv!b6Z`4436Y)%vry?06!QFV%_~BLw{Yt>`JPr)z8Wk zi|OIN*eb+7=#7uR0xnbo3GEM>I6%=lUnh~7MlF!yPYK;!Q!})?k~Y%zM#N=)Tbr6b z&Ypc(CeFU{8hbM=hbs1mb0dKhm3#u_|6>xb;Eydwwv^iUUDThFUQ^2(fK147OC($N zPmoNgqqq8=dIx=UG&ET(UKdo-7(v!V+lfkF>ACFs{P^7f2y`2sOo+?*hqOhFtKJfXlaXL6dJ5O z`k~UrCj6X_++4Z}+nJojQijD&5pMDjPe;GAveK&09b(h%FJ$Av3&q`6nP#Zptd>HK z25}95@X!|$t_hWelPqSnp!K?|NQGY6Mtc#>nN~g4zi@5e>Mu8Ko>LF+`kvR_={_(w zc5Wt{mSBNjVOSoOB!rfr79JcN+<)=58sq!nLlQ2F^)hk2(W^bljf;!h+}tcmh2WA= zw`bkLt7E^o?cwXyy7OoSq_B8JB6K5WDD;pO8%|~`e%I%2AY1Nh$=1r2^4tQ{ zRguAWo~8`gU8I7BWHKLYXGELieC0D=k?Y_1Bu_(G1FRu9Ia>?fB@nJh7ew*z7i| zb-JGJPU_e&oW1TX5Fh=l#v=huScF2#Xfp1~m$(2%8NHlqn1<2$FZOju4GGXj>h#s6 zEnU{Y#4q+~s(e@1$0K!E7d(iP6pT!+n9XP zklEn;(cRmR!`2Z@6dj;PRBt?6s3q~>(2jMZ<#WR=>Tq-Oz_D(zOc}1bzB6k!ff`ZN zytSMUf|w(sBkPN%Yh+{V3v0qaQsWb?I`BP}^CU}-@6yCZziO?Zv&|ucwhpsyJq4y0 zzZsvq7WACNIRLr29l3c~MqphM{{ctLPxCdl*)Tj}na$kpbx$xgVTG1(AjsGcgRMnf zOS{X!;O)owxg87;JNU%uSG!JnW>w6>^z>!X!z(j*_t^OP{%POF(_mZ+X1=zmTe#zbReZ2WRXvE7cIr~r1f%KFrO~g{UAL&Rn>0t zD$>e{hpjJ0Mt4L0kZ+d+U&%xNNN>Bkfj<1>-Gvs3{D`mCh#5_9ZD~W0P3;0cdd1NF zgQU3Nn7Wyyb|=i3sX%kdn%W(MYjor5Dhu^wLyOjsAHTyK9LY*$XVEM}+OJGUS2&dx zY8>6mSB_e>(S5mDc<2qZP5qhR;4<@m!f-Ik5a{7UxBAcL+oa&TAS$e`JPfWv1F=7~zI;AI5NLk$feLM4yDLKK&o&nmj zy5scg#kY8mu3uT(m$z6j$8`8bPoDoi{9FQjYq*$a8gG69u1R`6;* zvSB6owMKeso@Lt!au>;}n#1}LcKh388eeTg1&I1Pqag}*U0#d(`$2a>VH@PmLDg!n z@ZW9SneFpJ{Q3o06J+$J01g0e6Rn+ZnQzuvjn;xP;@ZusLu%A*2!VmSrO5|}E&o4W zdH%Wg@qE)|{J@zcxR)izv*F|R2{ku0P0i5g+~EE2=}q+~kH*7I=jhJYkm<@^-UU1s zJ|Lq#gEbiY8JJO^Ok(^gFPa($fr``4un5J-iCLaD>hVeg;b-#;AXxgIU9w}&^&3g+ zdT`=I``AZ2`MpDy)<)ZTMJQs55I?|gA*gO}e|E4%&5^G483&s}U8So1!!Z$efNT*} z6{0qXt=d46V2BlbBW!QX^?GV!Jt-xjGBSboDtQ-bk?G<1PR1R}p2u_S*vrW;^L0Rd ze>L0Su1}m~RB^e*^Et!;2c-IGJ(UiT@n(Ter<2cHRV)EW2x#r6Qn#&u)87NF7MECv4%r97X+%K0-i6wL32m_NHa?4Wz$OsuS%| z*qt(*u*qW0!Vb(cctsHZ2Y+byGa(WQcelI9nr1ozn2wgwm Bn|;m7+3fpEUCc~ z^k6uW3w*&d0PNHhDUv#VDJ2<+Y(Q+|P9|W~$DEga zCuvkvRLO*-BJOKw+S?ax?MjfXi6Fn=;AGCl$}7y%CGZMklQ5??d&AZaj)DAce)VS) zo`&|wU-}X{uF;8CX?Ld$BRt{gj8t6=5p+c9y$xud6%P(FFLKo`Z&?@EYni-;#$(i$ z%7G+;DcYOnDl1g_N`aKasjgWGM_vF|WLrWcXZr{!(XtxHHjXc>M%BiY?_><8JC@NY z&G7aN?}*c9;@!a|@2}F9+IdheKir+sbk=6MqwioTe%@8qD4!1UrwO&5sCnL{7tbb} z1fMoE8uV-i;oDscb)2#!8w5;P9eE8}Zmr`#4dk3)cxho@^@YqZ?;X50!vV>qB_`{=FXodnoHaUJ?Cc-R=d|)dW1oeias2AH#`{4)qQ{y( zTh-(WG@tR@tWcT2TRvy6BfWMwV{h?-;oUg1UG%X! z2Gc1d^G@DZUkVdJ_S#5J5qN*#!Lhw9F~LfFh|oZ}O)&VRjWlycYw=T8*T&WwpwW^Z z8fc9F_D@T4f8F)>WRDQCQg0VXVT0m-f(+tZcncqq;r6g}^6&*Z8Vp^W{}f}xCe*o{ zFsik?bK%4um-0&H_Rc2-Mn-8RUzeN%X$$)9vyNCj6Gi|xX{8|?{EW=eF0V@jW|o#b zti^#vERP}>fSUDjJ0T$PN)JK-_hndWbuj?eem_NwANYta5Dce(-{i=e;K(Z21jLM+ z_>D85f;T#bZJ^koaNK&&bg2$|a|*-I8#YC_qgSbNNTwv%s6U4y$ne8Eyk`hF2IB&X zxJx(n;Jmk9cO@vqJ#S(ib`!xqJ3VdtYmCnR{vw?!5)b!NdhfN?E+Pc6lrqcJFus$m zmN*e$jp4i#e7zO1%Xmh;8{w*+42(>AU@r~3x$IVER}7RaJ2{w+KniuG@4^pudY zMiXii(E04YA%S?<;sxl*uZyBo{;qFdVn3B+Lz&=8-lPbXjf$v+mZ#7oxZ3Qo(U6z} zGWSXaS(4n{NDy4HoMACpmio$mQ~ZiQ&=G35=as@c#_j!r)4h{({-=rml>_mySC>UN zh!IhH@osL7dj}#9cBSk&shvBIb_%&}%n?5Hqbx-a=jGI}w&UUVit^|rVZg>xoZwH7 zig#-ayw-O<_4W&Fv-voOegGUC0w+>3M-TSgClp+*4hMfUKJ!T$|KgdM-=hSVBXf!I*CKkcX z(25CMq7s9PEgnRji6koG(+!Oig;URb!W?5SLT}0g5o*a#A@C0R)>aV}gzwVTZ;N7S z9@mto*t#k3b{NG$ZO|&it61Mhx#$6MZED$ZT`hNZ`29vrey~R2HepeQh4OyzlV$zW zaCI!;ns-{p+b)iQ(IHq^4}U7T<_B$ug);z7qTJh?(V1{;+ODRTk{na1QnRh36b1$c zyMR06dped+v*STq3wbDG40^UdpcFJ9O1DbFK2$KF7EDWsFrBaAlEE3MG4^G>$y^`| zdVmKzx8pC9ZW!K7spnr|c0u%VK*A?-F?@P^*kFEs+uCAw@$|B!Htkn97Nix?qt$PK z*5s{}e11`@&Tn(xX@cHK{6@deN$oAE0Z26tRlandSFDTZiv9MRzf*R?eGFz*Kfz4{ zdA?|?-D?=C^}Sn1cc`0UxF#*Y3OpQywK#1jQ#yse!uAX%`>SzEgwG@-fh1e|>#GBO zx1N++HXijTGo=1Qx&V2m!vTcGVFWcBi*yEBM-OSxfoD(H@X*)jhim-G+T{yQu!87J zFE+M+5Xi(2=o^3x_~XT_s_`!(o(nhXyH92XG)$*O9ea3duCLV!gw3%nH33}hos zdMyL1oU6(%Kv7me7b5`GXX2;FF#00m>8KYB8{zYI-O2k#&6yqWM=gqV>KFag3FNVB zvkvG1N@p_XyMdF$QEY+?N`pQ@a@9a)QIvku`?g1eLGs2jTa`GPxAZ&dc(X+&>c_<__4R^@Z45JfI9O}xyo+q|wjp&h6ov(1 z4&NfNX0m?2PJ9mEi$^sTj2Kv){316UPDo-K0=Nqp-j7=7eBNs|*)aO(Nf-=ySQCCh zR76Zmmpv>=*@Xs#i=$+obCE;OY(|I9x6b40kMl`{)U904Rg1#_YWiTit zOi4Yt3F7`ZyRe&Z;R&~5=J^6jJ(l-Fq~7nG8#7O1RR(2-+Evn%@xlsMsD85As5zQz zbNDz0c0cxOHp0p$3`I4KXWdmZ&!wbNvp(0SzULjHnNF1=c~N8?KvVtsxQ0;x93sNI z`XqyjnW-rUOy?Btl)%6KtG=h{Xf}`Avns-EGbb~VS`lDL)Ia|$6JB%Tt`mlEG15ez zp@O~mHU65P;}M$Xx6Kdj;Ed7F6o4-oGWC|kKLY$%%|X9{Z0~HJmKr4q_2?n7y`lth z^0C&lK_ge}p^S{G$H&c=Ly)X0JN-&uWEh-a9HLb}L+w40&&x9;tR%Up$xks6uE^hb z8ZS$*jiA$!;;;T-$gAa>2mV zylh0Z#a67=efBJiS$ouhD)8cLcxLbkgIVQD!ZYPJf~{0N(CbY(j@LSEH#pHV=mvHR zO6F4?VBE~rcRw3^=c%hAn->kF)|DvC=-RtdU_Kxswjme&*oN)peFuAMP-#`%Q%a(S ztXFdfav6SRo2fWJeQ>L(>V_$;=LkBUw$6EbyK2cFr(o+5jQV}FVj0?5N?5lNE4WU$ zuF`)=P;?nVAG7_j@Y`5Z5q&;S8tARTVZ(p`dih9k^Eakl3^`Hc=PL-CCz)F|9?ypz z6Fq>gRm9TkC@3ObPj(nWEqvls8@!z%qTKg~GUpYWR;V;vF?(8RsF3Ed;n|<$1`~{i z+WQV1Q72JY=lpnIh{Fh z&}Z4Z69H5R?`*ZhZoVGR-nB$f1)uK@WEyT!m|qwv1UrDOd3j;G7Vo1afbo?NJxo+F zNLCH>;UIeBvj~o~VK%`|U3TS4d58=ds_-kyc;nE6Z0jA1`LBFjNKo;Jur4GSja68~ z2@woC^*V2~^1T3VU+L$r&}m{06i@{5om4{y)(*THAK2gN=odoCU87t*92e8ot9K2v z@a?e8-PXFt;8!f?$YcZb)n4-LkYemOZ>K=c*GZa{bfSC`byKWml0uAHS%!nCIs+o%o`>shUY_wNY&W~_SF-I5vvCdm zfP$?DMXXp3>m81wMnq2#%kj35lEj|AaaAt;C>AzRf8Ll6kjQk7&k5OBxh!8t?oxBWSlr<0AscGh|)2y2)g7}qtqW{y3&g;i_Pa0&Ao=f z-Hw*jzdIsRfVjL(TAWtgMWEEZ1bcy&>fVHWW9RJ@o0nHPyR1H!5NwR~gaiA-n>uLn zB<9?-Ma2)yhWz%O+-(DAl0(xKIk)PqdCpmQ!ak(G2`WiaH&8f!DSyjY-$G%V)waFd zuC4&XciazrX(Wp5>pediUNP7W3J%^ge%Emz+@6$}G_w)I#lt(vl=3XglG~V`9=H;3 z05tErl*U%U$e@9m2J!_ibOZ=#cp30>Ri6tXZwM1T>B{U=Q-*_J<~(ZFL+>bng+`U@ z(&vlTdv=8~p^Vdq@DsRhO=Jmp`wXKB@wnkum>7+5l;3MxlJ{$Vu|!_V?ky3-l^P{h zVnW6vY3$G5Caz3~RQ!c9I9P1wpGu!2)~R0}^9NNG0GN^*YdqJy;pYb&viC$HfQZQ^ zA}(=*qT5*v{uNFN zm|DvbC0c+xaJJT}fC>I$@JE#MbjXi4NUyN_KKKHkl= zZ%&|W=MsvP3y*)O#WwLTHo-5kbcL2J2T|rW(M>HlcP^SG3$PjY3$jA*^<{1>p@d+7 zX=?SWxr`7$G-t8n>zog-=eXIA3YA$}S~@b1eP94#&bwjnYdf}* z;(N?Eq?TM76C5u8>4Vv_an7*usQDwZh|Mxal1||6`8Bc zd=?L#A*M`P>Uq06uev2CDS+j#p)3w^25g$G+aV735kz=~cASJB-$ICOHNoeu2T+Mr{dvRP4Fs5qz2(#@t5GlNVMQVV+_7dl53NOskz1n+*Jos3H$JesGLo zaw}#U=QEuz^!t{%c^XdFvj4Tc87a^%eC7vRgX+QDFAg#nkSeL4spSmS3i`Ajp?{xo zb=7S1xc@__Uw5gxVt8dLbjf?q#AR)L`(isiH8G$CqNvB%8NI2l#JMR_Bh=)szl|D* z{YQ^aB||Y1?U^?_kYML2@5WR02wW|lG(ne9!11u7HRH<4KQ!OMQ`e~ zL$z3RjP7w^PTn7`W#BKJ8A0^+U2L;HqH56XRzCWUY|ca;Ifz&eAO(feGao#XXC0iU zW7;oKMuV`|rv2->LyDttEcI;+^|>68t#)R8@ql8&vIPsv%LkXjvt>h$_8^o0==}46 z%u~Fx7je%V%ARW6wXgtm%!G;gPIEGV-Y>ORDlg+4-jwx-gBfItE;y^2>rEeXgQLn*HoV|> zHE$k-lFPI}F;0i0q?C1tj`ll_U30Qd3#;KKZYr)EjDx-@`o*WJu?anAJ_5j~J%oa^ z8@^&@7J-D?l6agEX+|4jNDju{IaD}BN?5AggFZ6-G%+6-?3cXg!0d2k!#|kkqB&y7 zhy}na-<1coA$LaEAkp4!A%m5|*evy7N*hF*-o@Xk?9~s>LF?BqioC)DHlLyyKgk4K z@`O?8FB_iY(%DS-A$9kVMlnQ*eGJCvxbC!u8Tg&?YJja|C6RyjyE0JsD9n7eh|GW( z(2um0gRAIHsn4|Zyvf*_Oxvz_KQ1u%{$fHG;Cv=IU^M0Q-Ghp?F3WMf(p9hR4qk_a zZQje6-=vr>#97Upekzu10atP;^#Ie0x^W$Jf{&Y<&?nu+b2o;urgg5bidUx%I6P$_QKT(V*ioVK!w9+|(+wal$dTC$0g?2T_CHSNbezUOHCDUU;% z(-5j8;GoQh-*`7%gz)2lU;I8WZ7kkQi(ZTJjK#_znyE=0Z0JSG4gVy`m42*@EW0f_ zMd8_&_ReUFVr>1S;)n3E`)gU%RoGd-fsr~Z;ZEy(m}EJEUlpNr!ik@7YodE4-O_kB0Hqt;FwY{|u~^bpkrF z*jzTR*_{m>A!5|GV*fb7;ruG<)q19ppuArhsUK4AFfO8D$`6Jkk8rj!%~{naM-|~U z#s@N^9R%a4ogxSt?KZ7(TvoH!-powRz!+k*q>Chhm;atURFL3D&lo7voKPB#o&%01 z$!@Np!XW?2-tj)9Qr12B?!b)36f@pXlR?kBNTkq;!GXh(-nE!xVK#E9fKZ1I0%@UP z`La%3;d6>ReD#8pj3#Nh@*7gW3h@o_G_nXf zE^5~n1Wp}KM|*_$2Xm>r@zNuq-{FO8_7U|l$Gg%fnqhssj`*!Q&Fl9DKU}jRAXL%+ zg7v0@%iBT%Z-{$#dD+$8-)Y-oY9nj+-d4iXMNC`!^FIo!8k^VA%%4hLrn5Zts*BIu zxgd3XT4{G$VdApu5PE-kn$U#C(J(YQNk8Q-b2&3b%*SjvXuxA^*i84Rmrj?=9U$Dw zIoV7RbD8{cZqjP_;Xr~|fQ@O#jWN;39+?zXPKCo6BGe|q3(Eng-wnMaA-Zy978&~$ z>LR0Q+>U>d7)bjToidXh!Cr)@t`F><^228y?vf3o@HQpqy15Op-tP5zUr@VW{h_IF z!8}UL*Hp=<%eNa_ErHp(Bb$RFQ#K#RB%|Q-E&Elk5*9Aapie{tuYw8~w@WhHx1f9m z^8Z-6%CM-qu1zD2(v2b_($bBhqO>9nL+8K{0}L?0fJm3pjerP9cZYNhLk`_B{{(YQk|2GM~FKbE#Y79(D4T(ci)Q+BaaFrj94_132W+yXlLBBiz)(Tqq9b1u7Z-U^s`;oGYg)- zomqH;|L33X?V!eq_WjP3(7T&NV9I=Z^h@sl)lLo`IE-i zvZwvB`q7U}bcx6$5Y12~jW(z>lQgQ`)E6cAN@^4Nx>n50`ML1cKm@CN&wSkO5Zkor zMVAY$9GDuSl=Ru=F?@OXSt{HG;j_ZloHAK98{{QfVeqbEo{bit_w%W}i7V;jYNE(1 zSG%{;SN??9=m!DhH;OEofnRd(OV$Y=tytZmpw4XN>$j~3lu72*d6SO%XGK~MYOY8+ z;YEW?;cP$`{)65f{4YTlKsIf6bewj-IhEJ&Pg*oh_*w+Dv)DCVI`>YgL8&d%zU)Q% zgv2-`HSZ+6Y?9)bn3633A*V4Ec8k5@<sxfoxN{!LgH9`>P z_QhD4jEKsN`G8e@k`w7_QlVx+E1kE8-w-`2`P)*#OhRywS99-Ks;Y*qdN6<0Vl6DL zp))1WsUh^tSWzG3Kz-r!%!#eseVaM0iB`gU&4avcLzLN|H6C?$k|A^Q)3~_Bed3JI z`~z3=l+~`k+2_u)(YpK1aps$~GMm@*rpFt{tE@>;gYWehuhnGnbm-NSqs9KVQLmi% zRzw~SV20j?rU<&E3KPT;(e~KS3Bgr?q{g4iJx?PR#{JEoq&H+Lj3eRo5h2Yl_^ zDwOhjSL+xm!FAX|H(aCku*rzh$2aCz4?78xBYuFl;7#q_l+N@~kvC4KNVek#%-6m`>j9(*FtrcVO}Q zIT9m0AJFQ?!c%*^xIofP(P^c+(RC(elvvFqD7eq_Bk!90$@rPHfVr>R-ub#B$qz}P@1KJ}Y_7{JQ_gNE zj}KY0eK)hT?+ZSBR_0St-4>@Q88a!uScPRNn>_yc477Ga>fB<}5Q*J6!fU4-4DG8- z^cxso$+=~UWR)GT?DenNr8})6zRn|~d!yqM-iF{3D_t1=DeotVxCsJIdoMf-tRY%> zvS-&7E8=@aZ#OJ?Oq28`F|uO!O#O^%O~wd!qY^#M$8Vza&f7_R^@bB{Y_jG+yZN-D zU@4F}y92^#M?PkqIP95JXPM73sD_E}4Y*63e zHHvAXh=KeEtrGeh8luvMCs}&YH|_W}OAio?ugFg}KhRiw(YLHW*4`Ms%ccL!u|hs{ z5QpNMV9()}$Y7ST>=j(<>1>Yi_3sJHa(->KLAQ?&xfpa?Tr@3ApoTp-`&-{j4~T?Y zXTjj}HdaCY>)Xk~mnHKW4vl*TLDgZQe7>eV@TEB0l6j`^KDi!28Y z(^;HVr+_O6ZbI2N$F{V57)7F5OYt&G_x0m$J(+#US(T5`ux@g4zh!0emiqy^cgL%1 zKuy!~eN5&?-<(PB=4$gz`dX6alA+h1a62N~Rovu=f*R*n&5vehQB+BKO-#gR!cZcW zV!9`tXGFxp{h_+6UUs1oojKR*anWTG`|dBw{*wt%ddzbI8$%F?k#CJ)Udh^jQlihs z*if0g((3fTHm2!b9x5`j2QoXXxS_3jW# z=`*=Jkc*Fz9BUGY(9i)m^jxKvdw-fP(U~eq$L6xxGE6+a@$+h0cvCAHwA^jZyj$7Z z=7%Y{nZ7^rYgDb|C!&30+~xYXy7Bq!h^o+OtqA8FU$tGibu7&9^1JkC@HzsF z^{V2}Z#Lc4?I*whDt4O+E9by|_A?8sNZsRUe!dDC1bhwLBt7P7{r%x42o4TScYGkw zokcidR*MOOS}l*RCrtHH$+?O!d%nR?Goc= zMIkii@wkaQ+|Wz?8L=5dV3)$)TLB!&q95hXe9@sSku@1}7o+#LEjPzYCf?Z~&~qLf zdXd2N*a#F+yxE*mUky3yTj0^%OVT~(0g00eBx(CeII3cKfq4q3m)B_Bw4 z1i-VICrQsYr?J#<+171JI`|xB^U5v%nPk$@vs5T{YOXE6+(*MT^MZ@$Ieh9;kC6Tw zc4kxlLkT1{)vXL4YV*Qbi4hU`knG9GP;}gv%Kxb@0+gB2Cr6(a)g&ZBm1~n(LoYm922K-D(^f!q7Z#)RT3N^edZL9nA{e9;c*kcatgJ1eU86(pBXx zeKi8s>fI_@>!HlWq9(Pv#h*6aHnPcdG2Jhs^gLZ7BE!c33IjGDoe-~nZAd`if=+;j zsQkNsQN=fda}qZJMKhO*u=blCsm$${Q0it&4{bd4s%l#TU5cSs7H>Z!e@PSyt%nES zW#cK|ysV7Spd9vXPR}d*e#F3FDSj-NEqJL)qDrwt4BgjiFoABZ1@cH|a^)j>{X<% zKQ*m=t-jWqoFJI}ZeS;Oa&vro5)~vn_vze~D>ss-qpqx%FfH?j$GFE*?r4Iq%*yKW z)n*LHW!q+|T|3<#Ss%MCiu-OWHG5|L4WsF^(zxw@q}EY}D!ypTOM-=vJ^lmjbG9Nf zbJ4BI+B<&`+lA(> z)tpSsy&;^7Xscq&w6$3KAdQ1~enH`Cd2%t*pwcfXZOP&u>!&l*|3e24uh+f#{$<|R z@=&gR^lv|w&*k_N>gLE;dJX#hGoH-9t=1D3Jg-uw`rp2wc;VolZoq<)WufgImg_fADa>{GYA`*4;E`9z&&)Pj zlIx{g^1zQ-I+p^>S^X67v*+OVr5%-|skeUhg)H0@*%Y!?X(xbVPb^G(=4mqrFx*CVo2(5DIEMf;Cwzy?@hs^bHn&eiBfFmN zSo65^uv!EO=~{hk}yE z7%JR|R8t*N3YHh-W`49;7Ud1g%x#u&XO2|0w8BirlKRR10m_lj^NAUTrDTWR6Tg|o z@==hIYDWf7Uom_5d{i%d6%MA}GLwej7;R=<%MF?mNG(?RywIV$2Pn6v5S+h6!Vh0h zu#miJ3Z2N+W$r}@CA zfJkXdbo*q`o{-`;XQu8!1oGf@;>S(P*WCwX6n+ed!wIMWHaj$>Y;9|7{R^g0&1NDd z0-VwGOlaE7VGmKh?Z2YKiue1lm&#a)V%+3;JJ>`ZAG8*KK=CZdSWfiH8x8YD`$kfW z5%s;Sihbkpg-y|HlT-bIUm5A^=g+e6JY-4xffMc?Jq{iMoet5_CjQa2_|I+?QGK!d zUlr}}Ob=QPhe?>KH8!>^d1hyGbCbAypop5A%ub?idUn=(kZO}B&2_$b#k2D`w~y&HZ! zfNj)IO2IJbx%65gb^Xud9pf`bJeMFJMFMjgoYDhwcTeRw?k`&1+Ak zrr``u;hyH_7q7}GE<~m+?&YEP*f09^H@tG&PCi&`8@h|CvlA2`+bNt!O7bWhj5mXNazLE9yhhs>~5= zm}&r>_^Rr!fy>pU{Ntm>(4hgm+vDUq>U(8~Z||H#Psq@o@Lp?!zOTIVxhO%$@#VVQ zvdA=J+2U|u7Nkxf@e3llU1qjp`QmgNQNrSPeT5%XTRg9{Q$|{i>rRi;Z_ZDh?~8c?a zNVY5XjYQyyW*d%UL%&b(uh}E?%-?pUFd(7sM_N454xG%Epf#0w%*@hSCT;BKh#|Hm zq_fxwQoXDvPms<`o3TB^@&nTt=)N5zhrQyzjZWP$5oGhKA6g#nRXKcumA{M8P_6&2ED5+$+Q0!M}@ z^`xz^ev#!r5)7F!3nU;-Hk!$4ki!-J`2KdDH%MzxGWeSaNCSt>yn3$E>2~J!QEzU- z7mX@Y?`B=i+o6% z`iqd^34ipz-{OvUEp}k_x?p4mBmazOTz+>MRjN-XI>Rm~oFFO*`>{^zKl+BKy*!V-2E`$OM2CkgDefX@0+$zcc_w^%w^{R}^{GOl&@W%^NY;FI z+LmouUoc63zWj9*ZDJXvWXFy;oaRqOt5WB~_!@U@&5rCwPc&h3Pq2~-B+B#q(@p`j zZ`%?hyAvDVO~?HXi;j zidju!m876QvP1U1TzN^+;gqxBB;s~i83$P`a|&hxW)cr!ef?+Xm-HkbBN$KtT9F=5 z=Np^58sCSdN`Wt;0IlVw68ufLy>0C(0`6p|tfFWTpkUBtC&6?NX^7>2WPz9gsh5 zF+N3f=bw^c9iyhOesbMyp*t{;Yc10O?73lBzP(;MX`oqB#9y7-Lsi93#-v_y>1P_- zn(Q`VP%%1GxN;;L*ohW$X$erLjh2^lb3tig@O@!Ln!hT4@!-of)z}RtQ&rg8&2J5a z&rD=DZ_b;|ks;|k>78PSP`G02?G2OFy(lIrTTUmKv zuV6j#ERE8yt@p5NcXHXfAn8i7*p)?YFY%VNEFQqM0u2ySPGfOAOeFSDmPiJ{ewWl* zU)rht7pRtSYMI%Tho~Bg;kacqm}#`11U6oCI7T-M2^h`=U11YChzvP)~v$M83W+^UXLfLcO-^M7U(y$yFeRmnsszXAu{c z< zIvMVQ#5N}FyK1lKY~tqN{1)4((XOzu*ba%(OtW7){$hP{&k&T<{D+2Z8hN;BRygOiIv_FP5r` zMUxikZwojmQs!AtctnRe*BgDf(2F~?AS;tKTsY4Qg8-hrp<~}vxvwY#p!VpNTappuU^_{vpY-6CymhT$kjvwEP+YFwl+9Vyv+(Bg{F> zY{7byt?cZ|o9EoX8nl0Xi=SwTmXS_l@hhgO`|DbT4LjAi8EVu<@+vxpk^(x-#=$F6 zzYxFGI)a2>I%%XYUEDePowuY3yb)4PLMMC2PcZeDH%ONrMxOuVyZ(gl$vK~@Uiz!x zdci)l#QUFjT6%rQ4uwx#E(8{62VFEO(j%1PRCG$f=zXuIt2Rami!i-M=VHF08E@x^ z`XrP4cPGPV_D*jXF)WTxFZX?p+U{xjTU>~(Uj+osv2?9piWT|E5QPwXh zIm!)`#ZB(A7agnfO~)VzlY23z+qtEG;ENW!EsR<&nepPhJqxC<~ zNk7LR8?quDXHG>2wRRq$|F`=7*$*Yl+OuzQW=C}`_Afxxx#2boOhkwu&JLo3j*Be6 z-LJ3KTXp6eKd`7WIaVM4fZpOvGeRu@K(9)grZTwbp$5yxE&AXeWr>x?kIH*k%yJv% zIHcuO6A01q2pb;S!kMAgJy4b>U$Ab|$)obt=Si1A27}itvmbas+8frmwHf2j3q;>( zml3Y$U@6Zwg6$!h>}vl8WBpJp31tt%K$?IpW}1L<*0C>3?5B(~9aIe9ZW*{B)z&9# zyIK`@D`WK`DmSoe+@!cXV)WqJIJ$Xdt~j2K+c4Tn;83+xo96Y`qyS7}xF?I_g_Gtr zFzL(ysE9?oLFCd%B%T!8XoTye&178q-|Nnt|kBAc5B zH9mJQiu@XB>PkNoB0ey|<#5izTKJF0MXF9prq$G5R4*PT2&By@)q{tIJga?;O;S}~ z*cepUM%9*6?qC8wf$lR-E*;J$4aBDmD_*8tuCQc`j^#m_`X!w6&lW!e={pREUsEtm57d{C)DV$-~0+CsI}0Gj~ZRW7A#0^&(?wwG?tQtn#bbdy6=4_!ug?b;kDy zPbG^vj+BoeIC8x9rtXZr4X>*=U)O7JpzflzskMiq`BKJ7?${CO*B|EMB7#5u#aTPh%|HoGP;jAR13v3-e~QWG^D_CXqxhvX#5r~C!)pE-O;Mj8-P|# zpx1AjhzZ+>^5dVJ#bR0%=j_>tUE=kh$&td0n=-`BU;D)*!$Trqvzy8p!2hM>%Nsh3gFUI^y3&4QcT~i^mNWUXu zr(59C7YgUQY<6FeDz?yZVj=yz&>DuxQD@+uqgFC)^B;sZT)P1LQuN1(ztG_UtnLX3Z*P(mrcpcGdvcUHO#< zDWXM|5Ae%80&OyjmuF_{#5}6c85yK}#5K7WpbGpghQA4sk=}0Z#ffV~@XqiyYUK+Z z473oMv3++A(tU~&OhTpDSPvX;0}A1!y^~da>lf}iCa{XLm$1Mo7{UpB%-7aAo7UDp znk(R3fWOIY7>H%aOgV#fNJ|Q~wd8rpw>qikOZ43YvW1V9Jm*_@J} ziUd5b15#>^<-g8N1NdG zX`Y>+1A$17H_wNK)DKMirpa^a+B>os1IcME)4f=^^0=mcsWLJxfd#rhU-QbNcsB^8Qq~R^)v_%r%99dpjKpimY?P(3^!e0;rSW{r(%YjeqP2{+rggnrs?>k?uE z$-(A(0hs z2MtW!zi~u_Mg++qJr!60+<85(Q7_az26B-HTU(UTUL@&UKLIoWeKQ5cC(1pi74e&F z@b7Qcf<8pv$(aG5`OOy8TUTly7!wW14$-e_vt}jV$YWlEF9tzJ%vaGg5z?9q<)DjV zZq-_rq`dfOS<$BaR`hJDcdGQjhlk?=VSQaCe7!6=e1N1?m(Dc5r=~CaEUjJSOLXz0 zH9vPh>t^-ON>w{!WEP@(4>qL1yBk6XxenF8Eo#@N1wJM_DYV*TNLodC(TJs}rYBYX zSrH-rNp!XPjacVbUSVF}8)~LddZfJJd;aLN zxbxGwS?YP4D-8bS(|^Zw%9-%f>&a=~`A-iRG*=(UW^(|CdpabsUw=MSqKEr)&Fd4g zT4YVz!WGeHM1r(dYpC&NB%Cm*{=T9i2{B}yb^usU{K7{)SgSTTD7-m2bCYhdEay{y zNLDCF=k5on2tM5OAn1uhjtUv|3c z`+xOHo_ynXZAT77i5ouUrpeI=W}5buLbVc-}3Xg3Mw&|URy!Pg~hG-SDva2_R z=Lw9M%MaN|NLA*No&+G)j6OT4I6G+($eAo`SLg%Zfb9fIR1u;^2AlZV4f)>yqZ-xS z!WdwtePK&mEiHwJ~DI8xy<1$v>RD2A!E!Hwt}j zOB(X|$bYYpUd_d3(%|rB+ATnpyR(DBJu^8q^zy(d$|mv7ytvMMg3qpP&NertNgl8G zfUwM^DBs}d)med#6ARhyVvNr9zYl@{b{T zo5ePo@MS|OeH~Vw-5>G2bPa#B<~d>{UAr%`!CI9Kx%J|t!_lV{p1XMD!sWwD-##^m zX66QFIQ)^N_ddkd^9Zu0OBQF3>2wKN#%nfp$^6F*8RvRemh;p=_<3L$A+n&|@J?$j z^S=1h*@op2QTgs2BAIq@r__Qe-+#tjN~aF`M3A5OUwk}Av0!?g_1j^1-!<#nc81F~ z?%KKlzcDeQGn0f* zqLh|(qj8EvG1!aL%y{Sjw!&SB+<<40&X@!U!{;|pI`3ts3kpH>!OInfTIFRa@Xg#_&KTPpZv|ZLih>v za0$HjtoDMi9TDrEiS$aYJO1+i=(|QN$A|N)lhwjk3@_E9SU1PGrQc3toi`V`DD6;c zL6-CuK#T;f~0!wC#C-A@H*ALmk}!~V%;HyA2_UBWR{7ChD|BMf5XkwzvXvimF5C$B>zC` z6(Bh78qR+WWq-PI3PHWf+=Bg*{DKb-h>PWz8y#QsTkD35l~83)F{h$m!KcFH0d7V)z|metV|k?D*H>SA~|G^N*68l z^R-Ke+JTEIlAG__szq7)EWTc5V};n~CD_q>)G6HTyVAG)ESHa@6A;NaZ~;d#K12{? zPkx?clA)9*Bl7Kt5B1*90}6$<(3E{G>+0E0y%CP|P`M_k^ZrHC#3`5sPYnqmOSIr} z`g-rw&2LvYCl=uAodhBKHMCnjU`K6`vc^(6R%$-2m|jML)6W0bmnmCnFX5pdFWvbj z#}4iAjWw1GHJzHGP?2LnEdAm|95&Az;I~iWM3cx00)~-1GQP;fr}818T%n@HCha++ z&K#xElwY$VKif^+U*}}iZkTXM-6FfoIvjL+agrbibAG46@iz8EJ0&W5nu@5syZN! z$Jz23VC6?Khj0CS?prcj4@s$+-J;By(>-6Not9`XoCekQiknUf(P0%x{53KOFLBqD zYh3S?qqpvXX#9U5(W0f3nV@c-@iQ&KYw9}t+>AZqt74(qFYWbnrFK!H=R+sNQ<77`?$!;#p&Wu2qxSMYB0}gZ^#>?PxS(Y|vGBMK32}-xfah+Cs|o;RhU~9^eA3 z93l~G%zx5)*e?2M(B9cU#6;B-{Q0~r@I$S1Sa%sBx#IKL0XWq0_(yp6b@9+8{rn3&b2uJn2f(( zxaU)^e(XiPNN(#%%)E!5#4`N22*7j01r#n%Dxm2s)Rv7}S{Yxffr`G+1KAPvJ>F_mPme2? zgj|M;MV9}tf}8~pdc6KtqDk)rYrSfU>mE+F=+b`}NLYGK#IKd6j;CJiTQBS0p!eWI zhMbZ2xxprMuB%$k0_4!$tknQaoVtrfxC>O^!k}(Y(N<9Sz$Ypv&VDTwDcwh`!RtvF zb}jsl?G@dYfy+gFyCfGr_LIykgOv*s7FEwu%96~*_3Z)Fq8%1!61d6jHbXg*zLxDb zbB%KUEW9nwi;8(A!_XhOL%!}p0B&EB6-XpWPbvM>u-d!^+ihNPq8AO4B=qz;r&Lcd$21%`JIj~=MzHIOo?OBk&WC@ZF z9kImTd3D)qpg#xB1KRa&90ZstG41K$8W>AmHB|t#+#!Ybz z>3vi?;&0!d6Oyx%SQO{m!>Lc|sL&i_{HA!QB{0Z=)NFw0y2WlZM zW};f*iE7)1526jtd@tFK^9BE06%!fe_Y70trXKAW*=nq%saOwc`p&(V8tjalfirEN z=R^t)FubHY@Fl|2`K4njT3($uA!~9$JI+%@+TcRg`F^HgB@ZdCINO=VXm(UT+U%k& z+f(1+Op}bf9+=+BZK|z@!Ji_Dn}Z7pC24ZTkEnAKpBcXImLV(SuQv=$t^2!ETEwFu zOnp`!{7+5PzVzXOwmo0xIb&=(`4P;>Kj&dOCAW`eOI05%)TyofqFz!gg3-u_Uw<{e z?w{G~`&4x$cNl}E(FFEm`(9RBv+Cgn6bsgBo0Yj3-Fr%=w)ik%*&vNDDFNotbK9QV zj03jOIEhS(1v@01)qgWX2$k+X*-1}mZs&Z%UuV$3sIT(1u~p*3HRf(L{^0J6n;r4@ z@|V3NUIQ+75I|GFoIDDiY4oL_>-r|&-i?x$WITur@#i(fmYQd_e~Q3mhys0Qdy)qqGT=l|}mw^4P?mLdr9mUjA8 z(Htw&@vR7I+xLm*f1-E)b=aj|?>Dllnxr3XW_h<_9RB2(i+aH;Vmo&Vxd~Iyw&d^Q z+G5npIikFSvON~C`-F7nG1|@5E=P;j5T9w^@g7E-~o*)%0zFnFCpyKuE9rqriqsnf0 z>$NV|JO<3e+-fj({uU>kxDL||D=$RlV#n*(dJ@W7gr?_4Hm5|5tH9(K>KMYXs25IxRk2sHqrnelezCjNI z6)vl>j*TjUtF?Ed-P?il%AK_~52hV|b6V@c%?j*}30RU`_F3f+u&}fR%?8cZ4i_0ilN|sF2K{wcr$cyJ0q(VvjmtU z$3w(8*Sjq4tVgwexw&JqNV*S%KY1k|@k^#<=*9wboU*^aU!ybs&28>aP@v1OFu;De zqC^$R`$j-9sQw8%-8M&t%?Mv5zYAY^(QcAV8+oxP>3Z`vhH3FOu4w+`j7aWB6VNh= zpEzm7N{v0eeNvT?boGaV#O9`l0v6pzfR$(xRrl!*BkNpX8PM=Nh3lYfx2m&U*t?x; zBm5-z-X{%uU&9xDH&5Et#H6tI&hR@WWZxx2wnxD|zav`JRKhEET;_A+C|~Ak%Y-hj zbNwuRc0qi|(?N>tQEg0hFW1Uu`J4#6fyrX7fnvdbE7ZYM13sL5NmdbYeC~9XyvcUp z`?xvJX>Q$GrnW%FBH?x`=I%}K9%3FtA>eH34p+NNYx3uqLUPZ#6|?3V2LW)my`AsU zh2}dNsV^1|W;bszjxJ};-B?4=V0XGdG?D0@`sMhQYi_6RW2HN~F{#|haoz%gE{<_)}zbYI-Ul5X|2}Nfr?bce0BRpe6pR3up zYrAW3jib9zVcYH{XFlwlB`gD&@5ZUM)3WK6u6#Ww*~rtcEi(*vDI1N^Dg;4?6pj}AL)%uOF(=(HpYti(CLD(o>gUGOw#R!`9; zm&ZKQyJzk?>0fkmg-MF1FY=qD`#tiEZ4jG1gRQ_eBWnk(HLxg7UJW^%%V8?}%9RKQ z(Chq(T54Kt1DUB=_?emTXgPPD5o9n$mWu#I!wEnb2{~}uBJgqdx?izn!)3LhaDdLK zC%nEcPRRfa14|AFhbx~KP0CqXXX#Tj;~v;tTDMaT4hQK9{9=gV!?Cuhs+3Ea2${b; zWOc+n-*c$FL@(TrZjBWFDKx=BCf>^$9%G*AWAwe^Ig?vZvI4lh2X~(^31Q#L(kc9H zPU#9hngmapU9?DIQ3RAPf`_Xv+b^q@>iWeOYvDDW+U(*1JPaavvWfz;a#)3%og<9k zYK>p|z4f~nW}#vPrusdJJi_Gn9SOAlb$VVNag#c58k^&Ju@TLoc4FG+-#;rqecAgm z*}a#3?luA}MYG#OdHW%I86@&v<{7yw4ayTlw}R_fk+^YZt2t$rPwobWVwJ5(U=N56 zqAASW#D34SB?y;w7C8KrtAa)DR!<;~gW%aN-kV8u| z{H)A4n;I9aU@D3Wb_r)-_4S(!i&$2?TT~kTCEwafz`VX{Y**;^DazK zL>T|PCcYVP7dph2=oJ~W@E~!PnT6bSw4ozC6jnUHTR<}T^5kype--LLAMHI3u)L(` z^2PgVrxN$&=8bPpOVx1!^!y#G&o4KW`ZtS(@rxqp3O9eZTnp*Q%p(7;nidZ^d z!^`BV|LQL=l*cu1F-eJ^GiEbv0-*Y_2?kGhV>B`i%GBcO92w8|+{fytj0&Z`2KR(f z>KAO5?-U0diPq$Kb+0U%7_Z!ANex|Hr2|^|m(;p`#zvearZ77m!%`?4{hF=! z%uA8HG#hE1N)erHy;>q3uF!^Wdd}yWPVxOu*2SbsJW%*Ab=GU;pFVi^*2)`(-HVfiVvj6THxf zT|I381WixG4fj2vsdl{xciEZJz37D9KU#vIDS-%aPq+MLRfruM)*n2^1wB5GAZE4R zE`y!?MAQ%P&j+_YNe6a^uYM<=wUJ5Tmr^HpdeV%(znx>ggf3-YZd%WOP^b{5x_A9% z9O6t%cAjwMI*^1?KWyT6a;*oLtr zdYQO=`y>iO2)^Zg=HzBllFFE6whhKN#&Zt%Ql9WF_j2^M!He2^{H<|g=^29F;`d?F zB2#4f7oQTE6H)u>QSt&`^1WNNlhqFoQVm+hyORX8ndQkTxPhj?-W|M%`LHZ=-HZ1l zDGu6%bA^Fm z3J`d0NKmqzk?1Oqb%BKOXy`?DA zMeS{|-C=B{&3@>g$=Y$bk(DEW><*WKkV)=?Tl6a#XVt-DedWOxS{}L7T@3@oPE7;P z2+cfNX|C1Kchjpah8}-{zSrpR8bFfucSZf;H&PyqY`85xG_SuaOLT2vS%YsJ+8jDH z=ItmT6198RJ2;=Sb7w{4BD_Xbl4;-lT02m2IF@NKnu zKQ6lDwVVoSY91+nu)-761cMGx+)q6A+bd&15yGxsE}bzIrQd9R=b(!cjLE&mdYSL? zFd#DVh>mV~(rZ#UCJjf-!z+Rcwo&JKa=&HcIo@`sF?+aOW}#av`jrWCP}+iP;EvNM z#|A=XHED4ontS@pO?Q6g#qD7`F8EGVITRjOvC*!Pd=wBy>E8m&w)DgrNm0FTRbDte?eTzFJlI!+fY8-*rX;pN@03 zO{;KIq|L0AOal|fBo4DVagI~fzGgSBl{@EAjN zp?1zxI?L)SK+!l+y%0NiMj1M%_O_IYH10a&`^z&LeWl*IY-IEPl+NWM%;!7Xl~V6z zAZ!;8bKgRB)2_jag8HH953U;4nortfqp6!{r^86ddfoA(7Q5o|H8*hBv19V^mz(Ye z%1)55OJ1(K+$GDa$p}*h`am4AE?kH136)~A)v?VL?Yz~A%DGb4#D&s47-d(sJ1dRu`r#V%*@4BVkyXRH)ATaPOb6%=;@YnGZr z`=^zQ@Zz42xJ%Z}LgT`~BjN;jzqpk0uRfdsAFoU%zRjsAS<>R6!JtdKACBjUD~Kvr zRfVE$^>$Lw4ve*3?iE`-o*m(m-zd>&BBGHM}6@q8&$gEPof%fFDcV= zWc(EMq)41WFiFU*cebvCIcu4m|4^?8@{8L)%?Mp8*_z5B13_5cT7>C(&lV)fhL~93 z?n;M>>th+8iy=oG`CR|3afMjtg5Kmtd1$I)SQkxZ4Ge$l4lfAw?Ji>eCV(FVKL=a) zs>Sg4JL*CZ(hHNl-4aNmskOkyzTa04Ch|?2>Wc@|dRTcJlay?8Q;}}djCydCsze8? zKU3M_yf5>mx27RcMSfb#D;pOqwr2~)G_tR)zdYn~e2qYPR{0J$*q&(O6Wx;*X#c?D zFeFYuM`s8I(MI1-wT-?#TG}k7jaDJ)er`*HR!>Mva5w4<{nt!5865$H07h+Kl9V)M z<$28u=Gbkfe^{+vUhU!hv0f1F(c>C&_w$QNZ0R{JeoebRuexM&Mtm@|eN}9T;0@}7 ztX169AswrW**IvY%C0A)`e3vO?$o*>JHq(VrPCn$rVfX1o7Q=c>1pbR8agCn^qM=Q zbY!b$QL%LUQfx1k(uO-(e2K?bZ$Ds5{`2q*+$DPt!+2X6wcbYvs3Hyjm&+Yb8QY{1 zUi+F>0OYR+<37nQh2#G6|ItgE!lWNAFG$PNEL!9aTo_Up5Pt5__BTF(q(*G8Z?5Lc zj$(;k$?~nVP z?>j;HJIRzOuNePFVx=3^;@)4l!QQRA{H}@*;bkB3IU#nsniej;U23ab<4y#vpc?l5 z+p9@p=t0tBGFCx$q<@P;-ni3gX5i*pf8~vdxXgHvUymKK?JEH|7S((UOm-O3^VdnS z#BO<89JHNmGd$Wt(?d)^%dCqezT_i38`A-sCVTf$QM{Z88DLf|b3B-{? zbw`_>(tvHvYRj(;I;G#o$&&S`a_BG3TC4hdr*YW?cJI;$&ng>(Vu)O@fqwFTi?kzH zGK|db4yy}iuH>aRRZ+aX%e5X9AP_$UPLOTROUH)IL6{m~Ywe&)Z*|NcO@A7%rQ6s~ z%)QiNR9t`bd;I!(O#*gWuEpp6%AZY_UjK#oKDl1?9CoH?FzX1#?G6T9MIhk{&Xkqf zttHQuSYJmwwv~bzU#jhA78^%9Vhq$T^*Dxj7X(|OYYM(W0X7L;#CfG)O3g}_K0$C% z{m++->o`mS!2xg7h{CO*4>fqD-_*$BXT6Kb>CL+qouIKW$^ z&3_hpiUz=Yt783Q8;|tSh!UTPxMz!<$(Llvng?Bub3x6Vy74DklCJ<$UZ$rUYC&Uy z_V_|C%GuR5q=NoZB}zn}J-00ZeY6TmF$i$B|EH9;@a2LKRi; zvLM*v`~KC^=25I`0Dl@;Ws>?LXdsOoN;2oiM=bH{0u*z zw?5#!9stW`%Jk3942%Z^a&_FynitdEENJ5+XSN;kRJz;AwS%q*MFq!x3gwxSlzKV{ z^Os#1c^vTBhP@tj^;n+Y!Abu_be^ppamORH-QqUCX;(srYizIN)1!i$YxC88&0tw% z*=z;l5+C;qZU;55`F9HLBL^Z%Q{^1riFAMZ8h&&&Qmp|#vFNmpi5om`?@i3=fH&H~ zwVzSh^iWSgT8(OpACxiA#l4+37cS*}wB90q#}t-JAawa^FZ1Cx99fb0*9={oo4*Et2QD<=SpM0bg(v zDmSU@Oo@k?tBiD!D?cSl&6R<@5?c(|JJb4U9pV=i7NW~+Ta(ZV`LKEALw%2p|0@{)%@;TM6V`#MJzK34K+p@~&ATHi+2Zo5D$B9L0883-@Ug4Nd6$hT5B1t@vbu)$+{{zAh~7X>LX&VkgU{oRnCfqA^Y*I3U=7>`V|mK3 zvo#H)D3m-)`gO^KXuPno0vl%_jD@DfbzJ!fp6B`jUNJPV^LVzK zP@uJvp3Dd_H5yGs8;mDg{&^wkGth+eX*-pg-}!yjgQ_beY>hP~!9l86xclh(ci4?~Gn}o0qj;Gm$CgxVkIVFg5jA8Z zK_|K!DiUqFs!Laz2i?-A-0>GG7GcwCu<7re*z(f=t=SrDhdbg+Esy#_PXZrexd7g{>$i+h z!H^t}qPDjx??--3d9{|`8+}0F(@1zhrgnc+#Jo8YFk3L*Qxe-ikH?q*<=VFE#ueGb zq!XJY?ejqk@f_Ak+VVZ^14A*=JpDHZ-0QzeBCacR&CWHD+cWOj40aHJe1;^aC^_-%X#g<;*m$oI5$HDU`*Lhd`L=r{vSHv6() zF2z*G%W4+>Q~ojY#}zGa>jP!|60O>>Go)>0coyYJ`p4~ut*uPBdto}VI1^Gm*@kKp z+Je_Lk(JaXgh=eso>dy=-VZ=;IO_enKdgAJ@0+seX_8O`*}i20dNZ;+csMFz#K}Q`U6oha7!=-SkMx)VGUexwJYl zX>8fQ#opL#c|L+-Naemirk}pE_l)>a7?3gDM?m3!F)!?04A=wTm8w*wWs{-}Q_mG` zfgZyMo=bRKO%JE*BcA5#Red(oMeIo@$xXRW0ey5bp5!Y|OT@ZkeuSqXCH9`2>+kU3 zbBLR528M6o;F|JHU)}lpK5A1)^!+g}rZRfZWv2C40Xz{6MmGJ0nOy2acw`lqteK6+nV{+0@N5_>aknrosUT|uKK zq(Kkvi;771!tkfm$`C+_8tpTbBn(%0cs7U~Kd!o%iaE>l=Zmx50C^@G1DC*|dFUu=eQK zZPdvG!)DU+v%SGJmhzgOge~nIQ~q0(j)IyMQewQP2utQCo!NL219lx~#fu+^&Fe<6 z%(B=T!1)|(mX}X~oPBb2@@RlPhlR_Va>jY$~ zKF2#Lqu;19VT|nhV`bGt>VUmPwmv^`zfS}cmQQ;J-8G?037r?4eu5T>xBNSg-WI0X zLE$D8b=>wg6JjvXdy+Hh1%dDePd1LD(F+f3!TmqF7_uXm7%PYVQYP2F_yZJut8BAh^4$s0r2X@~5UcRp$>3--3h?I+g`Ct2rW*lT-y)841`@Jy*G zSpCo^5)v&&ka(CV*oFhr32g#9ioSNMOwasXA&5stR&3Zp_bBZ{#{GmR?~&K+u%quL z>MYaT%$eK$A@pELexNFd8m-eM=l6>qmFp7i^14O8H|?46D7prTyREyOBNj(~PnGw> z^8rT%NXb2YGct<_mA+kxl^5P`NLqyxr70X&q1qMC*9vg~!V=Wm^~{WErK>I$N`~IL z{9jgvjBf9hKgQj^BAtr-8Pr9yP{m z6V}B^!XjcRm`q~kCEUVII~tD8B2hG*Q-mW`+k^kjF=D+h*RZ5G_L!PN{SsKM5wc!DE( zU4vB@g}Bs=2_S8J(x=b<{O)#|eWxHj03-VH4OsHRmwe|f4iTk8U$(r_z*vcLPI{RE zPBLAq&K8kqS*nh(i=_Ev)9rU5qJUlB2w=VHg<#+LQi>4?bg7)x`^Q_UCl)WHukUV( zS$w+BWm=tQxO?IFNt0@S&C*2gWwDJ0sWn@AK`!O6>N~*?dagDr=372b|J zo#~rO^$>N6j&l+&F$Z_PFc{U9tb&(InOJSwrib7Qk(TsKtI$aVDxj3(eLa-bGL{1n z!T%1dQQ@C-D4@u(V4t0zH1(MD=FbjEZIcT@s| zRCkL@9ter0nmE<@&Q%HD^Nu|FB+g^fZS%RytFbth{|J(CIyXTK*Ux>E@fI*a{8`nw zo5WsFuMDd3b|%_5zprME4!`I@OM1>oOeZWsVx2x7u{rV!e_F=#@T7s20o-$2z@pJW zTtT*{z{JAqkJc9Un!c~vr5cZuHr>JRHI1l^X6zQ5bb0_usGZY^i z-0j*#o~Z}ni2(6_UGOLCbxsTALAc_NYZmT8)ik@D9Eu;E!tK}-hpO&z7eTrJ1G9G= zC&bvwv!<(xw7;vqbP?$gX}^b@JN|kT^+cF$jn7$3OAxyNfTyrX*7Gi2i$nKVFA zj;*zO(s{^jR8%$bt_KB@BBI_VeQWPE1?77!IEFehQUO^d={8{3?8Uu^k*dXS)Y&>7 zmbzA(OtGpeFsX8^OR?N4ZFWJhW_x_5j{%6%tuGI>QEZ;7Tg(;F0~IS?ij#WbBR>AR zc)fmnQ!??j0dr!TGOII%El;aq%q`El`ueKozcK`5IzP|O!;GX{nsb0O*P9|kXGv>p zm`PGnFYw(6D$wpkrfk$AcYUY0bJFijt*zW;g6}CWhOmDTgQNZpD7Fn0cpmq%4Zvtj z3EA^HcD<=wV^&4MHF|Q#;+QGjxDuR_Ls`0G7iAIEQu=+caW+e5$YAH-{gFxy{4YiQ z)Jlo;IbS^$)mX^D=&NL4g9L0X80NN)r&gNcz3yCFqT2$>`bPL{ zrZz4N2QXIbLVs)sdu&QRwhIvj+)q4f6a3UWv&~qDA4f$?h+TS=D4VMi23%;|&>oFY zmwPEq>xeDC;%CS?mzX+#?p#v$yed6lxoQ$^g$;HY5DO-e?v`_q89In&VvZ7Hda1JT zmUM9@5(E}-K6%75;$T0&AO|fme*fV zN2kz1dh$raYOI)yiHaZqMZ@5xv_}sa4@*DQkg%Q0cT2jh*M*wVsY56rUV79c9Kbiah3%R>lhtPiU zwKwGchq@Ub@o-W~v!ahPo{956vJRfOS3SbuP=(Oni7jAEkBBrX!*5;0xQ+liTCCB4LWpHDhrpZq4slsUW0Q3zE#kwpyT(~f zqn^$_X7<*n#;Vdyq^%<@N2=8zD~i|j_K( zM1Ul77>!@h>eLJ5w1}(zIBN#7n-YQM4})*(>q)n;WD)UtCO+bDK6PO~DwFja!6}mk z#jpFqMS58^P2{90(RWUQee>wY-31Hiv+bNm1v8JsX%(K0+Y=NI+y@zc1hsK~sb z{~wj?-^YX6@k6|&!qZ7hl4z?;#mbe9;W&T(TOa$htepFle1&SuKy6%LrcZbA8&5Jo zZ(&av-NT7FXn+UD`v4G zfF;!DmBfK5WqE_nT!SF9}9=a#f@2q_OsjqiV+?lhPf>C9sd5NNIokGhz9Q53gnbkQC6HDf4^IQ=k06 z?5bgQq=qn0z1WU5qO(dlWCqUpFeqZA)W!8*82@LbT34(_3C#)OKZ_;Nh6N?8PWNi- z%S}fS<>o5MTdxBeh8=U0sl%zm_|J`zZHkK%6sCiTJn7Wc%s*^0Bl5pt*iQ)f?WuqD z1V$`oJWNs5E#(l%uk^?IfQq%*ouN!DG^2yzwWfd5Mv}oixrPd|;iZ8e z!YL67VatS{$HBA>v&gN*`=s$4pXJy9+Kj_7mxk4aLGgF#_?7)+PFH&4ybjrX+B0Yx z$g0=qmp9Gr-hCSQc_+o_;=R?r&+TVsM)Kv;-G$#Bmu{n=^J8nIvlC2KWtiXoqMEXO zls~_T32+$xez-wV< zzIAmBWflKuto{I|2;Xq;o(%3hj>R($?DJ=}H6Z-S@LipSY|Hq8m`l|I%^J&jaFIJ0 z+yDq|LnHX>bLgoRctmZX$`jv%|1kACLowSwf~+zQTG?l|G@q>rK;<-2B$s4sd}%>nBxqm<~2h!R5Y z&S?P%(Mu6e>T$%&Y8ghK@Av)I>IKcBxxzeuYU5jZ@w_buszT(DXPNQtmO~2WdpmEQ z8RyQ_)O!-c(&7{YV2j?$bLT-C0E3mx?ctdZg5L_A4kK3RHckJSEVrAjciQEf1pFlV zJ8m@^YGPXRl~UoP+OG0>g2y-927RBGTW!Ke&(Fq3XpPT|4YVuJLGGcN|9epX+|GGw zDvSOE*@R-Z!)Qnh_AyRaL2BcxFD&>^s`|8+wc07Z3|_Oo_tEd z2u;rYVR5-^?kiEvDar_yxiXhqS@$QOf0gawdofe$cD7QCt%&hD9T_aeF?(fOJtJnh zvO+buUy!lkF*CAxiYOC@I{aV<#`r(<7azp&k^C$EIpG0E0abOes)Dp&$_d(G*VaPY zszIFojsbm>R@$T=wXoGur)tBjc7zd$nMK{wGeVdR`41JYJ_66g_qRLYcl8qm}I%`DT5Vhi9rcOtV1~09+LL-6kXU!tu{vsq4VXQ(@gQg zDaP`d>U2`g$9`>ebV5MRoqbeRUiJu+Og-UPskSkqIHS=^tl>x(Uui%c$BF>Cc5~i9nu}2--0ALnaL|q2^kppFTt$sR4s}TPWl9l1Z5)Z0iDzA?Ha7y z3)z}|QYl_ZHcWjq8o4 znSFQda;vqpMAz&I9cV$nLGLa_Fzn72pd!Q7Z@NIEVW`5@z%*Fe?Vx-MqU_=hlj+*` z)sNiFjp*RfFJBSVpU~%$`1Oi?U7|YnuEn$-5>+st0#ycx7HOnA9aqG zKAHS41KQh4O>})!{JQtAec=-eyST+*jSViN@7Lbm$;_}rrkr>Gw|Y7e|HMDH*mixH z-qcmL`%G)D!XAaQVDd7>Aj7pk+U#2SnjNxf7E?2l_e*!J4=Wl8jF_9ZTYT$TY2HNnC6=2n#Dd>chP?7socuV@46e^mU!77Thm@foqXr-!rzAw3!u zR)(5uRN$Sl?-bSDM)MDdaU8`*gNpViF$2^DTTXVWg&+QczNpzqeK&ptSf5Hhl@Ria zIc~`$tHYnqp#M$=Y(Mv>J2^5uJnArMmTMCc-VW74cJBo~#C}c@35b>53r~uMyqhK2 zxVSFU`=Axa>$!zivshvtcPCr`AQ`y$)9VKyu!3C?B?TmFp)j_oP~zG!sTi4jDvyQ? zx0^j^=$l#`?_vs+SWyl)PPCK8-W?Jc29~tH@9pPQHsiSwoXt`_ZHC_Acu$jpemjO} zyyZ7{B$Xpoo3SPzVh?$ZGf0DN?cDym&tUDiz$)Za?*0lCe)zYyXY{Ly;ofYFEp&zD$IA z41Wp73$=(|voH%7pbCvkcF8Pb=Q5=zFROb2^Vl=Cg0BSc=4oYqkS@!5Qtrxqe|#hb z*@=Cw%%5YS`UX!;h>eIR^8L8I(^$JfBsKx`!}AX)$*GQu8710W<~2wy2RGGk-}6eI z6K02lKnIT+OJX{F)TR9`^}19=DyrjdW6&@gU&*=6xLL3}Ma9W3^W5MdSTxg4?Mn^u z`B>#h)H_MMygfeNFIo}p^uCi!47r`zxv}8N`TOM{YQWY643p}4Vsk+dEk@Q{b94I7 zUQ|!PI3$C_6w;eS2b9>$?OaS<%v|P-^41_4&-v+!GKOL~UjiYN+XF`|RNsr<4DoYVy-U29FQQQY5^Equ*QPpJn)G!?B>rX>Ls{iOJ#82;n={2cmuv)gVxUXsdM zscB$NCRqUkK*($#MMJ=FEY-|2nLYR#i9s=6;B!Oc=qKmD&CGXEu5b3%Zx7Q{xu|va z-aMl^fy-;eEilgvQ|pHl*E)Yq}OD{#;l*Y=2)Ee}nR~-S(6HEIb%uyo1%}@m1r^bg>8V#) z!mfT>&gW0oMmofjz8-eyzD>6p!J1` zW>?eF7e;-n-rtM#>!NJDjrzA!7pa|$+8g~=5&N&D;KF&-&W7VB{q60McVp8Jm;QR}~l5PSRT=LROi?{gBH$3%HROq;&mcvR^FlWJprpYHR#GsCce&Nt1 z#^DVP$4r+aG?dibAp}m#*l}j-o+!nu1pIr4*Z;l4;hFwPeSx>r)6EJJ0!QCgsE~+5SX~$;x8-mN&dHYls7I#%ITGwEoJz4Zet>jkf)5Vt> zLOBAMjrt|e()`d(3Km%+n1AuOm7rdhdccG1I?~pzjBm*D5x7NWSKYmhL;Zt$Xn-5p zKoyqFNOEn++L<_S_U>4JTC;&(ZIvk5V6DC|cceKL5X|J&S4FzMHLWqc!gj_oEy=8| zP~}q$Xrd?r)ArnVJYQf%4SRKz9*udjAq7p z((byKa)1D9WwT|Ntb;eKOElhh7bK~h))k=7M(s>Qw$`Rn@G0V9V5-r%6>Nev7C&3P z{?=T%G3+STa{m^z94&IzVv)OM*JhOC%{SybATM+z^WmsLavQ<;^aG(=gym2uP=J)H zhRd1SsqN7^Z_GE@$uO&`wH=$xR>Lx?Bgoh20Y3~}?VYRhy^V&8<-G?3X22Ligsn8A zw7{h!4sh@ExOw4^0m7gQ^F4c~%fh$f1S%+~E_J;;ixw(L1XhRswzlwoH&9|l=FCoRL}se2WjmhPY2`t)w$b+&r6OK<%r zTT2)>0iF7ZMiTw!g6d7Vg9eyJ=-V4doLKqga~B!6zdq=Vl*mE zYYaltlc`Tnn`~oiEZ`Ma9j}`sX8ZrezkYScs*sTZVWJKYCG13o_0!Oc9<|~0Awhtb z3dm5DddSE;8!+NVzf*0i&o0y|j@ix(JvVE4X47EQ1DfTRKhbCx*wtZMJEUde9S%1Q zD{P84Q_M4aApt1jcgw#&wF&i@#bxNGo}?D$q9|S}R%jes5~40V+1sRpu=}O`v{0}0 z)I`NW5kFG6JwWi`(`+v&iCm`Qazhh^U9|d-yw>qPwz|=N;!0R zy}q7^?q~4}m9s;Hi|7=tmd1CF%^{wm2MdnbBWkP~b3s4ITz<*zZcQfrwQmS8vGL{S z0ayv&tLqmJKk_Y*s=ekgQYbTYW~zGH6r4|=?^5=!^Gr%hlNJ~gtF7^o&dSFUXAIif zF;|ZSnD+ING48nIw72jM`x1d&3;q}G(lFBC^rJc*Fs-Y>Q&$4&z1M1v(GclmpaJTL zg*Wg{xAgtdAD2HxwPoMaHRxdzx)v{?XC#R8quk~WErEhz zhA{fYfhB0tlUDgrHk<8^3i@VQdO-BamN*D36v6F$>%2QGvyg4~Lb3`vCp3TQ?_?7- zu4`jVz|_mAbhI=c2GpUuWz-V)5)v*0u^mTfdjTQ5tLHMdU99u&jJ6~?@Cs}1={c<$sRhg13QKQ7@1JEompU#=GwcfI(hPl~6E!ck96tB)=`mZbHuQjfP+Pd5R z91B7GOBXtt82_LqdNMViH=w_sM1dorPS{nvz~A~G;H(Z_nUQcX>j;rt1)DGveDHs+ z?EYNSH%@hh-MszdiANi(7;1W3L8hzTvAi8oh$!(7P4v(ZuB~PCh%k>h0irR*TB2G_ z7h|p(t+7rR%@+1ZV$^#f#-;b;!TkXn-*SzUO zCz�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%0Ah6lm3=6bCFhB!D2w*Tq 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

V$*R>A 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 diff --git a/app/src/nightly/res/drawable-xxxhdpi/ic_logo_wordmark_private.png b/app/src/nightly/res/drawable-xxxhdpi/ic_logo_wordmark_private.png index 3ffef20f2a5bd0b984b9fc28f54de348f87721c4..77746af317d532cce829aba173bc78e2cef80aaa 100644 GIT binary patch literal 82341 zcmYg$1yodP_cuATs5A(O5=u%-4W)!M(%n6DcL+!bNH@~mFm!i!$IuN!4?Q2=|Gn?} zo^{q)vrg=1$8YDE5P4Z~986M71Ox;eNr^9t2nfjS2ndKm=z!-d4z~mr2#CT~l3#?C zToI2}Si|4UkoTQIY@DH<{b2Ph3A;v_KXVfb6!Qw!nYG5%dQg&9il-CFyn-A+nvN}B4e>|0vHUo?N zxf=Rw^$_x~{m8DX4L3Qy7Gs$(Kz`=sRDcEHwD+{DPNxkvaLn#v(>-qqzd1Vo5{C19 zS16u|38VeVJ%7gMDZeL3Y-mnQbI8kb^7{Hb@XPak1VT+PJQyMM=4@?cvZplbbWzVi z9rL)RIlA1rW}EY{r%2WPwc*R?Fx zTGBQ3f9bhC1pi!2bJuq$b#zt^ZB@)Jr2*ME(eNZ$F@B7mPTMloSpNBUeJIsAMqK-~ z-gmf304cmkq0Eni91i?iTxqe^k*G=hOUfu3Rc~W!Umx0y74VC3!`>{J^Wh{BU-3(S z5$5rz9nXXT((_YMGR_F8{5)z*!P}+sC10IBM|+MdD5zC!Q7f5pVqS?hCYqi7rM4IJ zbFVv+LhFN+uEG}VuI3~f~MHg%uw$Lw}8<}62`h>*17+NL=cIt|9Zqz^jS(On%X&b%GYJzC8#0T=F}ev%PRCd-ZJ9_I*}!K`@8=cw8;tQ0UJjmJWME)1@I* zJf;_a$*r7GW|Q_>^DSxC>NFof3!{z(NspHM5uX(@Axj;ni_4eK0rSX%E z2k*4x^X)@{F7}}2E1elx751SRB3;f5G0zTzJdWWt=vrCys9cOm@lMj zQ{j_4lJFxmtYjXAQ= zI>-wB%hum#|B?87`D|UeF!`a^`qeKtOKGridLbj5+p3Fu+Lx>Xxsfz#xp0TshGg7x zop;Z#AjqZ9S=;>FD{$JVnI*8}p;kw;^r&vSSZb5)Oit6}8(CkjWY_+Enf?!s_d*h! zbPz0(}#-l$|Zjafn*7c#!%AOqj z)|w}4RY3o`uI{R!XnvIA&bd&)qm;#B_b#A%Y|M?}5_uI<=F9WC%o#erZ}83jvovyV zoL5XGB`INFD_FQ1Br+1J&*e~MG18A0&&l9nFlz76=HPkz_(kq7ihN5b5P}oj58M{W zqVGo%w7wcQ+NdiWbH*(tnGj?;kK8NWzMcE(0I_Mh?D-=1H>myd#+-wcj%qz6RbXnk z!{pP5u4?vv{X96U#_Ho`l);HStKp=j`H5e}Y}2~;Ke~$4Rl)V`Ds*Uet;5z0mmgfL zB`@YG`;pvt(3kO^x;V|tcftD0W5Ya8jcyBnm}SWGJ_!8YX-~N>N*e8%vE*deT~7g9 z1a7dfLaU+VN4DafOoQrT^g7z6coSUy^&J_!dxV(X>zf+(D|H{I)mYj&srw;0(98uN4 z&~AV3rRtm3eKfNfywW$h8?7^I81fHlJg;@Rof6*-CIAHX=b0GpnrLgMLdvE+@f%k& zA~=~i8tZbZE>kg1ybUQ&lNb7qcA&2{owfdlx!-fQx4ACVSf4r0OYZrCM`zH!UmI=h ztJz<%a4xv-cIR{s*7444hmanVEG4JWjH#hsr&?N#@T{xir}2dzK|?6W{~7{#F#~Z_ zdq>~gqT$S2x9mE-P^Rk3{?#y@tZ27|io2CAl}9O}D`C~Z zv^|}?(c)+z(Lb?Lpo*78`>xgsIk*$-HRUW<7)6HFo?bb4*gI}tn`RW3Ep5E|Fgy%B zJvqrV90Lm8ua0QIS=1TUKPT8w-2YiV!G8T{`x^u~0PR(y_-b-8!*qlymTauOL5?#lm|=2GII`DUpuj%gPQ zXMXU!^;j^7dJb1`2&_0WYwsYUQI5$yI@1?gDy<+}o*`&ndk8At5#|=;+ijfyo?MUI zJ6|$-CGG|P4IJZcXOnzYHRHa&8&w(0x#;ShTYep=ag5H)?B>Pj2G>4ni(9Nh^%z=@ zB`tp#N%5|YQJAmh%r}iKm4C^Ef7vS!dGh%yQdLzHA&IS^u11U}l?Z)|1hwjYnMCH! zY;=i)l9!HtAnhDcU|h1N^)8UTb(YNC42+M-85Z!s7Cpm!ee}b5kXHw4v@-KW@GmXj z1m;Jvr0PJ_@acu9nHa|6S|lwfJfWo;A)29K@(Q+FYCRKGN0Fj!a+}#(&<6^YUvpkN zmrY5S8wPVk>W=q^MViLD84Iuls%#i*8L6J|O2}79dCC1`} zghxh2R;7NHbm;zX{~k!>x98B8n8zw!c3%2l_hbt_wtu4>2%r>yzWElEc>jI=K+3=# zIMPdt{5IFQq{^rGc)CS6#RYVny;>ZL0+RuB?IKzJ5XrPu`GAiZD3U3Ewa4vEi3ezk zemkGIhw_PDEBxU%vd;77NmE8soGZD&Br}Ft2!Lj;bZEiPC~Z-LN)stKdnovPesW$3;-zRXx5O zF9l+-y?UBUM~w%^$pDQoUcxvky#7x>|F;sf=>97|bFxhkI{!HQBQB**wo?w~tXUsh8qml18pD03W#W0mobuAT`N(Y0RF z^rQQ0_Yko_D&Ex~C8H%WS2GkE+Wb;u6>BKJ(Z!o4!kb=T7?Yw{8Z=JEL(nt|+_tg~ zM@%M=yqV)LD|V~8_+6L>o35Gx{Kw#YGRH*h+j)@QenHYFlW}_%0!46 zu{yqajyvHp6*KJ~rypz&+{N`Bc_90w(d0MrO_MI*UN)F{_w+l7wfEtr2a}|;IP&Aa zx)hcdIKyEP-e}y8d|I15)15V>_QOok~*<$Uk0vdH6GdW zp;KWersIhOYMRPJTlEHC^$?o}k?b+7q8$yNM=T{t1rZ}@C3 z)MWffl#C=;(>Y$Z#Z}|4EPj1eK5&)KV{6KYHx! z*)m{0dGcfLU2!S|A_DE3BGw^KnYIL6MEF*2(@n5Ne9T=Uwf%3i(+3tf#azs4+x5}J zM(+OEfPCGy=f}v1X?c}1ws^d?Y4B#7cjwq!fry}cB7EmE3;9MDlpB2 zOC33fqd0$d_Il*VSCLO8=yiKZYzd!Bz%6#gde!9U&I%vbZE>vo_O7CU8?!BU=KtUm zb`VnDf-^I9=nrvSBN_U}%PA1`B0)GP=sNFNmxf9{=IUlVh495}Hh+!`Ak(9iCKz@j zH#TzURsio-w_xu-2hV;l^|7=$Ri(N;09!@Z6;|*R_Aumb2hu-^d^0cg`_D~D0Rf2j zX^{_?f^Sy5u637L$(d3Mh&bq>uD?uO_~RxO*bDfAl_yHGgVfdUjLrVk{=TnHbIYKT z=t0z|xjK?dk4Xx3I|MYh6>61_ErP}JC#mO*9hzQRfWR}#9l0ySpy^bkUMX!i_TBLXVrcwqA7P%ubc?+(R4m z=3|jg3*Ln-{?V$GkW>V&bJykN(d9IndqNqy+eU{ePUDysFD0@eGSa6n%dhzV3)qvq zqSp*5s9zX>5=giB`dZCAorp{AE^;Uy$bn{x5_GpLTPX zL?s^aJ+1lWQ>HB|J`yRD#xL+01`SG6Ez6pTU(R2K{I;*POAd0sZ;#l}oo0gu-R=W)tL-&15Sc-4-gMfv$Dqyl z7_GklDYJ;K`6>5^&g(K5H$tUt{Y;R%q416wr2t(Kh29?<&rBS7Z5-145NIP-C~OTm zEYWU~`{VGDl75gfdK+m<3(VEDY)f;`(f`Pqwfw#+Dr)BsY70Zb(+)w`-pnvLvh*S%#}C4EfwZJn zfS*e9QxqHR3qzZLYph7V`?HA}6B0bJhF~zd{}PzQ3*2A>6mHyOfbE8=W3ZED%^wa~ zNgpeg$Io>y=hxgm_Haf)rtS*Jrx=jCxr~h@M-3Wmt41%~1YEFR58-Ip{1*|fwzyk< zP+xOUy1`4Oh$vcbn2Rq@*;sdnw8~|G2n}i4C3hD@@q~0&X|#Ms^OA->{B?|}k0!Y_ z(!VpmZs}Ds-2*vQ)~6y^spjM~6Fj*{q&r7{KlU?wTX{Ee%FBMQ8PPEOeS3TpYd9m6 znKfa<;!}5v_^9a9qy~Le=#4wS4=5x0HyiwM?(-1Oq6s*5bEGvyiT8PY%U<+NGp3EEz)Z7AdfsA!o}_ZwHbB)sWYeE+u2 zeEUUb)vX#zP-xYaw0s7h8VL#!lv8L$o(qt?MT`4oPE)*^rJ-x_%;D5prw?M#TP2i;od8Xx=`g(pn=$KG z4}-?OEp6IniG!%QouQT5g*LdhuRe`|)B)pXE4=e@CRXVLv#QaE*Q8YO<+hK@uipG? zw3%$kjhBc0I_1rZs5lGouHC0fDSa7>z7B5U0S@V`LshUjeL-8oSrHTN?Eq4O^poXv z-7y39E3lU5+E>Thz1N@=uC^GHE?2q{OFr|;3t+G{vpB==dy|5_fQV9SIe%-MufM%^ zK;~lBn){~1cPot@sGIc1nx>vD)J}aVDdL(aJ+gr8oPqW3EjrTwsx~jV9$t@MGmxiX zaXKGE+Y<%JBj9N1xLRG8bo4-tN02F(+`_WJ51b}d9LP%fJ;95% z#QGSdJ~=UyBB3`7?=FF^F<73Fe_fKwqnT;U{x2cS!XIg94&O$L$hns;$E{pG^^dveLtA-I$W}pZ<1HcJL%h?dj z!1=>KXnF9j+c7TFL-4O8CX5o7HxltuD60Un-b;1>TP(s`8hf%rDwx8&Mn+Pb-&=E& zAw#nv`xnL;lgw3RUX-VVhTsf+LX)dv-_7T``TvsRy;`9Olt1Hs#>dfdlMK*jKbt@} z69rP#+!$;v|5EK0oWr91)X^d0RnAoLgCI;q?Fr;C1m&opywSwUpwt}6Oua%)P%f?btS_QVtp zF=K&1c2xYJQnQXJm+wGB3P%eISIV^4XS2O$iFE$>e^KJH&IgMdo6A{%lJE9tX;jeL zwORI^l(CYf-f%7lw0e@eDFLTm+*TJE7d2+e(y(+1BgTtp^5xzU3jyHWoP>}-EhVR6 ztzXONuYh01ImQ^&b#ryQcke7g4UkaapV}t3Dy@vnlZdq;Ju)1(bfz{*6^g@a6jPp* z!8%0aV#b-qJC{XOJDTV+8g@oSgIl2<7VOuSI99xKvMmVs?aeQPl{hjv9>cTQV|B_^3guNliDZoO(tZ6~thFvHdXR6RCC>sC{ zTiCk((QB@MDx~q|4M>ms^?z;+@wvw=nk?HMTYX#>J&b&lUf~ynQ1B;eyETi$vbanR zXlS*}vUvh%)me6gFW!X8$h~bH>Xtw8)@09^QQ1}67}y>lBb~>^MmrRz5qQH;oi8%H zv{S|t-9}W<4=|0n9WEK8Pq^4sp*dhz2}jJ(LnUxQ;?vY*5mnrl)Drs)+ms7(K6JKj zInJ^_R@ZAfSlv)CaIasdBb|StdO)T^G__6BOeQ<*d;B&-o7u%RSD@ zw3l0aE}JV?)LMq3DRgvdErzLy9CQP8fkBMD|&X3bMB2pvKTb zC|(we0>%27|6aLjwTB@E;JW`_GAzNEH$J5G)DGe(XCm?jos(!a9)5b*vMy~X&0@@b zVl2Z=tTsLzu3&F+O0grZ3Eh7JfH%H*>0JrMpaOm&eiAFPO0sarRrYH1OMC8X|0#Hj z0&MQV+I0oBeCe#b_w~qa-&s^PkBw?d=9b?ZYa!6j`oRb1rVw92ILYfV}N{yg*hukqERGiPguv>p;(4P2o4c-jx?4VZckfp33kn7?1T zgQ0E;<`Rl__*k!5cI3*HlQ-I5Y&227plbUNswewZS0|R!vASFF4kSrOHh;*NHze+7 zM~7StKwuCwW%kz@d~9uCyuToR`Gm4>9j{!9!_fPp`%*fsuTk2za+D1?Z1{Nh#Z?2@}WmK7XE z)|{POwc4)Q)iYKG$;-*$zO)4;`+e6Wv^<0jxQ#?l41-Y$yWArec0&p#3?VP5v=$61yY}L>DuPD;|l+MKw-=e76GWo;Bfc z-|h(8+PJGNJuEi}emXfORyMc)Y<`Z1W7QMIz)k#S;5%`tMZBa2>IvQdO>I8lFIEb) z+dRrThXK#pUX)A2dpGQsr~`@tmZw$mKk95U`DJYjH;B0CWw}q|s=V(u6pZ?CaJ=+1 z0j`O+2ql+EOAafpHeH2)Yc_6(t8tF`V@A{`Pd)n3Kl9LPP{;8h0q{m?-P9UxyMGKl zl)=gZes}TL?y_G&OIbMaA9Ismy1sm49p{1B#xw=aBHn58>bloX(Qep#7`4+r3{Uc| z^DC~Dctp&-Yr+mHyxxJ`tz2w3DPdP@Q&6=Q(m*;@cPUnno`H58IU@hpW64J+ z&K_}C+PL?c>34nvkYe=fvA<^jB(FXe`!sA7GJEn6jmTNR#Con($7Nfpb#uD7cYYA) zK}Wzq%ubT1j!Z1eB~ENox`47}ms_sT)#@A4%ZY?1G7T^}5D~QuZfF4m60fK}cz#-} z@`dM+qcafbpvBf81-Jp+VkWx+j7&Q;*{^oH(+pRD!l9qb1ajjaqk>C z`Zn;s?9k&=Q_t^}JOdR?SPbt(`=!k>S+wVlskH=d;Et9$j z9DvHM9sOh2)#&}8;QOwOb1sI!m|O70l86PJ^957kP8^OFPRio(B1cZosy>bZN^7Qbvk1(pS72Z1zDL>y#ZIIqNVhR?O`(duBM9 z9&lEDc&AL|g{UT_{dTTQ<1|FR>b;_q;^aQyZeFk6T_`~p13N4eSPVbaH^yYZbop^G>9%wmaKe~AE0Mq_&hI;9wd=<;> ziDq&gb+G`4FY^^RqOitj(H6sjkgPT{?!=+yP%DN!hezOh&8}06d*3n6j&iFr{Q9*y zNeiidVUPk^q0eDnXb*<|XVzrWE5rF3ulhBf zSbv*hZ8E-(5i_m0qdjzOV$itJ!+U$~_i+#I@aA?I+MrAVD$DdWelBLyHh2fjluI$? z9H58TTQKREnAn={2P7d+NV zz^2gvYWX>u1_6yWq?N}rgHm;{M>iV^c>_0qQG453wZT_b zG9&8p;xEY1Vhj_BwHiA&lB76jW_oY{J|nq7VXBGCu6pS>+)<4kc;g=2<@SQWwdp)n zoXRAoeEGSAV0w&QR->#Z($>Z?&(vw%g6S{WCcZ@NHIQuD444)Ut-n^K;CxG2$xZDh2Vy1y$t2 zCfPhz^C=^Rdy1~*p+jMDNBM@{xKrO#v!Ck&v)ZNHv*<((> z5)kYwEq^3Pe_GVto}GL6)>RHpT{{H{_Bga&Jw?s1{JXYgYex9ReS zkJ*BE_}pHeID>~FiE}v1y@yF7x~xVViH%&}6_9Yre3f)S91Kg1GYDT7?i5B3UqIi@ zgq& za-zH5>b73dLNv&2`H6wriVBt$Uxh#$uc`5Ocw(a;SV@x<$6I>Cdaa?x!XGjrqEYX1 zu6p!{mYCaT2f>0DjSXA%j=n>t_CpN#qR7^uRE1PtAL{@}V;8<}g7JC*KG5w05N%~M zFqTs>mZ@(6uN)&fC#$F@L!`FDjbCEC8{J8>ZET&$I^==pr(aJX%qOLxHeP>hB`>-^ zh6$KbKgcSpvQ&tSEfrsZpcnvg(JUv~iI>%5h%VK^TbhEGa|tl0prhx(wRJNEcQsyO z=}X&~Xu<6YlS4PYE_*WjvlGJ-h-Xwav^h@7g~h@9u;~8hZ-HLIZRcMCbth%_zA2@m zTB_WY>|}|EZgA_G+QxXCKQ$itk8LV%>^+(c zUd7yYOGfy0yl)TQ@7HH$>bm?`VH|1Ka$n~xcYnG&6h$TaG>QWOW4}Q=L0v^-tSckX zBlwJ(3IM*~?>N*7!X{xe>VN3~TM5X6@0@$3a6{pHZA8{s)3ah|I!zc=QPe8>3?N=r znaz(F(b=HEd%qZjU7z*N{Cuo8Xwy^@NytPb(d--gJed`l&iMWMt5=U`bVA#tgXNxm zx&p#!&11uILOj+LjJB~=pG7NA2Q4HVGP)W0nDMMaYTPzRL8A>W%Yz4VD+Aje5q3}H zbwce-U)1&ML%w7030J7zZ18fGen7!{yBM&c!a_4>amaoeNU}zY9`Qvr)-0ixAkakJ zayce3@}VcC?bq9|?J<4tpI6iTPbU3US}gn`mG@M9Cl^m%*^TU_Q!s>lp|8gMQB*!Y zx2jCYFl1bWAuBmqI9?b>qG6Bwr@T!mJLll*>7!8NT%`{^&_mo;4?FES8>~P ztSZZ|YiNn{{7M(MrN>qN91xe9O2}TAdW7@u;Gd>nWHg;ljG&%$B{ICgKl@n;va$7F z;~~i^j`Q%HI?77D8Q0a+c}#X$^_Yr$dbl4RYzbls&{y-Z>QkepB3Az-@;05pVGKps1lDb;tk^;_BjVNlq1U!to@gG zGAA+nbARF>RiiQn3W_f{QXuX}m(l7^5Ys<4j@2D5ks8_96~dq7_x5v%$m1_a7RqAG zR+_ozqNv_)-S*cBp!0Xn{09l>Zp5?Pz_pf$q8~EYaZEm_1uH88lsxa~uvfEPl zIz&rHO`{RAj@T97!L}zRKp200ODa|aV<)x@a}CLsTMfGsNsp-y5(#j#C-(ptd@==L z1!X*uL$^BPU0gS31B7__)Y|LEcUBya!YtR!eXQxINe@q;%C;(RWx3eOm$Ug)UHwtL zYjuzB5mJ`GK1$I+ReTLT*<_er^<@J73y;hfyg}>k_;KC>1v5r}P5-d6jYo+{A!IZr zdioqF?v@Au&(fYR0@m>0_XIcE3hkvB*5)7yP1Ki~cTvS&^`mkx@@MV#(=)fgIhO+C zj=tK6sY3)yCG)u-z3nh9BQR(AlPtDz4R^!o*lf4bIBvZSj z5m6=Uw3kJ%Y2qBm@>RCf5I>LbxV{uC#qCp|T~vGwgsqHBwLOxn3VojS|Jo+RB+Ju; z!D8*$l`Mc<>S{F*Qe`W_g;=^lt`Y@;*`a^p<~SqBIW-$f*Bc5?p~v7CSTgfS|I*<) z3f~l{ay$8va83>2?MDu{a9bl@%O9J4g(+Ypf#vaH3@Y1yQ)&KeX(R|@yJ%4Ji)S0d z$zTm<3Mg8KsgLzVD~uyN*zRS&L>wS_SRHI8W#SsXEqR;@Y@hO@Ry5WPa#PEvrM}N! zI;L0F?_hs;_;h+wymR)r>2uhAR+ss{0 zHn@yzaOmr}{Jvdl_iNvlhm{XyMW{E$YAtt_nqUljaQ*2!lc78PT^@nCVnJ;F?kK8q z%Q0wODS}+3gFR`zyC4@13ELLRse+6iC&Dwt=P(f9jeTnB4E*~{XUenQuS;50u67RM zcrGSwvWNZ7DE8=$V6(|PgD~+${KIB#thIzZTN6wodL7eocCvNT$fwTUm3I1akqCIM zxSZ9p|6sb^;C6DA@ zx*Kb|piRF`gEk{|_ZXzQ>T{FBH;jkz=4mBzg(RIsui*!Y*xeY>r3gQRxyikLV4(Cp z&|V`>k@%BKTzx3+CLYTp%xL;nbALd44;_HaZ10Cf>U)ldjP>7*7jp;CNNx+Xo9pC1 z=eNFiIsRHKIF*-^w-qUyk;GzA#oS*NP{jmOxc^Lx?gR2XqK9pxM6tgyMYIf^H*cD4 z;g)-yF=b^=A@UkaO^3|QmpHfun-$;aBjFCY&7MK#8|L{+3`SD$j=aLlg}Tb}hs~>i z?aTOc`zx}ismRp&=f8}mL=vX(*SNZQ@vNx|w2C2qvt%Kj02T*?{6ZW#`KIY-f(JL# zcpm4+Vk|`qjN8j;sLw_pAec1;*&x&G46pqfkWh2Ke%B}KeKL48IjE2qOc-Lf3KU{! zr|HvfBXZ-it&w9s&ppQ{wAR2ND<$Doz&86Ty6d7XzUmKM-~=YG6754rbcTCwAK@c?T#el7~mzlo;9 zsZN_3!1koBsn4O}C<{%kxh>^1mNq0AdOS0}QL=9Z;UH?%tzQz{O<##JP5XW~>2;Y5 zUATCcQWDUP-{9UPrYXP|NR)SDQXMlsc|2GLJmprkvY_M~#IPJE5Goj#Xg8W(=^mnU ze(T)N@B1b&r((yyaqqUpdf`4%uc~fWRdY&hj4(pSPIXB(v4;C_{`~`O`lB{fZikSxfQ2PC8c)aRAnM*Qy#Zmk7)fvaqDMwx zEJ2ivYzTNo)X`Cb);7R?L_9L;Vjj66QMIK7B00CX;P%9>Pgwb_nr>y+ABET^cVH)0 zE{gjc8oQ7mZrZkAg>M=GD|vY3qJJ$M9qfmOE^hBo=UJZB=OA)15FUC&4Ol8IIrmI= zC3I9#odL7o(94t0lC!i%oC%Crl~Fuy?3}Z}N5$c(4FV>yb!c1h&b8z3J~6%wS9f)a zfz`eQpM34bCz(1}f0WS!5v$FUMDdT#>VE%i|G+@AnikIfDaJCK?JT~Rpv8X{Hx<~0 z1HY4!#$~qMPv1`Jc=FdyG~nb@l@WNd*WL0SnC-v^IB^aXhkYg2Qjxkg5!d9mK~t2$ zy#ChGo)(a-?5VNZnj2~JQFD+tECF`gi%}7G0LBSNmpRh3hVCG~E;~!5|MGVdHT%*3dGWKOU4qa3tpPTa!kK0YTMAS;xoL750 zpIwsPgd8|PmJmkS<0N@x+F@;>S}NA2BJYMag`+df@!3IhRp=U8MU<{ ziI6%76~fCH!6k_%_!f5O^>H#H*sCV@zNR)I@qO<;uaR>a-K_mhU&d~!&yJ+^ z!@Xc6GLW_2&JNH-&~7{OV+S3Zk6B)e;Vt;&k6|;Z&Qjbg;o}yo7jb-XK?o8MszgoT zMp#+t*vd(gLv+-^M1wy#a3ZkG3tGE_8Etn+#cuyq!(P;!07ChvXW0|p!w_-*{&-db zJgCk67ML=Ran+lpx|Q5qSVYqs^;XHs{WN^`3OG5d83T@^ke+iCq*6`cb^*`Xhd&Ry zu7@!36Myu~qIMAtiO;J78!K%fgYmELlp#-W3ZFU19TW(fM@DBP97lX}bW=<0{v z$y37P;aIxx!Iz7#N;~{(a~oy_X1VpA*W0DGoUcMEenck6w@H7HJ5_{^w}brxu~L?A z=OZi56MTLKnlg8;V}P4~(v4YtP+bhyK;YFBcOZPec3|$X7 z0%O`*myyp);DAEF!UO3j;0!p%M8O|eeK3xu^D(B*nQtg~{U2EDMF}*NM+snbJi|gA zk>YQcVTgMQzcs%n#xhoC|LjuzQHm8-*sYc(TFu~*&Tuyl{O#ru2=Z|A9yXFF>8SP6 z={?+&8+-fba6eT$(o*enAKkP^G05``m#W;uL7Of7X;;^^L^{9DFi3=X_8U@`5w4Av z%w3nL^fWs**$1ry?=>UUP*+=HEms@X?7ddQ$vb!Bm9~_0#7iE(X|#!WLDvD&<79Ob zM@ncbi}qT7+uiF!8~)+NL7aKo3LUE6ERu)|e)B%pDnBKz%3(<4^82xa$wPDJa98L) zP%@m6cR$s8$j712Pu#r9rt$2>+UN5!drT+smcct&9&f~_d#C#5TrF*KcgQ?)^V~H; zhFN3E`5ri8iR?KuzrTfEIMt&)=VHY6Hn*Ysq4nJRJCaN=TFR=VSfFGEv3t-IhY_E_ zB^lFL;W1{b#0uZ>E$xC1bOMd)Wr-uYnpV0VtYshmSl4zv-*$T|hy;dwDk(4pBe$&# zk4=<;^mTKX9rjz*!xg)OvhLkb1f>7}HOBsV2Z&Xv0ivzV|ae0~e$x80%pxK9v>Em{2Bf zgc+}k*T)rfd8-A9G5a(_Q{ocYAFd2B@0a$HBtE1Zz z2{Ih1FJYa5pw8r@5aokn?d-FNl-RPFK7f}LpdI$R>kF=%d9b}3xQjkve85k~3;DHy* zr=q%R5BHG%Sbv^(yxhLO`}l5GEldmceoIu+a%X+A)5vKeA9w92665?)Yw#?B+TH-3)n?t?-i6E`A>0_b5+nCwY{H32 zGzjM6>g)172pjjbGjrhaGJ^7*oBgh_P5c>+o4>=g8PjH_+Y?8t5A|!Bg`L}GT4+T9 zjWU$kvAOrQAxmJy?+3r?6(*hBr&8}bSWCj#lOIgPH(Q4Q;p>IBI_lovzBS& z;P&X9L~>QVFn3X;!6}QquZv~sVW3p4cToj!VQx$S7#ETj9!+{@W->h#0sQ4v9_J)g zMt=uU82^U=O4lC*ghy@c0nG_@a{w=BxeYrj;TDg*Lo!QkFpNGjM4(yh`r7>KqR}Yh zz(+bm-mK@%&_Z8)GXC+<9$OVatFhjiw;4 z=?jwP9?}A_7HYW)cQ2ejIbKb<+A>|W+u9$q@=uY?*%@ir*~fq1kw-OLz=Q?o26}Mf z;XS)NFeaCZh6m~25Qh1rWh~ov8S=Z ze7lA+R=`2}g^j$VL zNm`~9izqa42)bcEdL-m=q?3ES-$6d=&plnpz;NwZD&IdmdtjJ7znGd9qKOyLg5l7QB#4F2E(p z-}(9FF&i3vvMaOAE8Dw`J8{&&eNj!!!)@w%#}Kz>^D{P0&Ek`obm`}+V*6l!T;QW9 zg^9}+hi$amGbW-oHw!ABCsGKyXHScHKJt3CSaGybra8bb_oj#61QvF@9kn1qD6>Xn zUaaKfwB=N9Rjtmw3NO2Ia(_|aWAPW(mGLGD*(KJK$-#?Utc6d@PuyK_0_*%kqVc{a zDHy%Lxn=Vvi>GG{9i+~m#T?32Yo1qxtCTH6|S zH2?1_9f|LO7iTIg3}h+J22PNt??I)}qA4xPMpnd$B>gRK_|7&Qu=?s^i?c;xIoLc4 zj?`Dr9sA{_(;YIdJz z*#X@N(<#2S!JwgREC=+_Q&WCyDGr|=WRmK0!KBrC46uHj{=SCf&qJcZyHnt!{1acU zL{ghSk4EU_cNV+Bmms71p6`jygOlMCz0qrU!!>0r(p~jk@t*jKma6whoO2&%n61vW zY`1g;M;5ik>pc%&+0rpOEH}Gf)^bw*{OYcg#YrcANRb)Wl|H3>&!<0WQqDM`MG-8T zH2>}6^^L*G!%F+H#UU{>^gT?S*U$~_x1Ru`ETOB5%`De|>AWs^g;eU{07vJeiv$f# zJtxMfwyH3SHRUxAU-2c#t}ZfgdGO-W&RONzPY@p9-l38Dj4|C8@n4@m#J)E0G8;8O z>Y`GVttfycjitGfi&4t5zdXD!|DHbIU3N+2JArKJX0yjviy}jtnN0;o?clZ%K2@-O z+}cN}3PSo|ve1;oU$(9g_w;(LM6!CiSW`$Z>Bwp1W$Gv+Egj^W&^KOWH5fcO0?|x0 zhLyy9fY07RY!ACB9acl8NF79RJ7HRXI%H#L2nUwn^a~Z4zB+8#d@{Lx&T*aB{9`S9-^GC?#;&y$RP!=@VYb;LCo0wtO(q8#*h+r(c_fnT>(d6zRu zKcO>gO`^)}L#uPY`ILO4_@kqC3`Xg41Nxbpwi+%nj=g`U2W>I@wZXfq&Nw|;e>pnb zf%ovPJ!ec|__GVDf28daonQ*AWH4PfaNax7W;9)TaG0^3-ouZ;c7{*uQ_cyAzr)Yk z_9nYrmh?q!eTtX3g$5a&G~EKZrMr)uHR)NXTSbt%BcC*0ao`orsLwIT>O^z6kFwSh z33O$jM+scUPv53bUrKBWzKTEDyo@Q`35t4U4qzd|K+##_RHa^_WLEL*5?9ZtDE_a)b;06#I^57GS5i` z;S}~Hf6IXH!AIjn?9fv(MeCLBTMaE-(b>y2o{w`6jm1&mGxlgs;A|u+VnlY}G9!2& zHZ1A9Wz1slEY1*<_#xG2Xhdt#e@(OQZN1tx3ImGi+VrMBTh8^4!d_gr+T|#cHMq2; zi4YH$6Dg-(11k~1?$yr&ffy0J8V@owFF9}4GojI;mDKWC$87tpzKrc7?$v>5+E=5H z0THInDRy+dFm1s%9R#*~Q6;K}9pySQhYOYhbO!!BQC51rOGI2l*(O&&QApBoc{_t; zKddALYc1xvbr;o5dwS|}ITn6~2BWg~)*u(? z3?|o*N^Qw>m6CFGMvr(&)s#*1WJ<*nHkd?CdSVGv*hm9+8Ei~?5<;sj@ve`W2AyyW zlt`+zfai&)`?T%i&<7Lj=@di7ahPqX8n_4}V63}(t<-=)Ek*1gYmn=p*nMAe_)_Q^ zm}>Y#rUqs(ZTd2lT0WW;)1CRExNdpnHMdwBg0_;3u=3lxPJp2Y?QW%9yCz;l zQ6c*ZUOz5}X)Ex1*x-dX(#RDT{cO4{b|qzir5vKB?~t)rE{C{A<+oiiEngRoRXXaw?@V+M$xq7XYUjKg*u^Bm&>ihVjl(w} zcj&o68D|y5NSEq(dyF+IBug1hHTXDgBBvX@mCIuC$MnYedb?=PwD@rc;ZsA!K*v~` z{#6PDJ*8|sxwroZhAop99fEd@NT~^i+^)({^S2WtIU9?*Wo84GO{=wf=xZC@WNYBB z1^X8%wv|qJQBe5GQQK*cmmsG=ovnqG+cxhdF66FP0J|O8_p5gmP46wE?SrxJ=>Ql4 zE5~7(ilSoCd|G}%+wN{fUH%+LVBO1Us_)uhEOHqJ=2aUwwyXsJiop_TM6@D=N{jOH zXsZjaw{^Q7W93A)JCQTj%VW#;Mr3YiX&zZ)#mP$uwRJ|p4b<4t7ct#UN1xF$c*f?Q za-o}h-&sb_kcjMgGH9%F8tV_FKGtI?CehSKx1#7VljMbi>JMfXP9ipm{|HbV17^t0 z4%SMKCMmAps+ND&SHN?{gd-?x}`UV&43XfHPMk_vuH*M0&Hr1g;S;QER2ltoA= z3J?vND>`xwB%j9-c~BVGI;w)zto*5cT*qE20c=-{fvfX&2iSigr*Q9JWc$J6y#~Hu zI!EIKkV?CV;Ot$u&vy){UQSHikdEG-hXLeO* zYAY{|sPWE|2oqlWI_BN)E=i!b=$np<&CGY!*g3~D2S6P}Ex#<5B-LuI2qE^s^-uKSfy0e}-m6AFsr;76z%$9wRy3*F5a62b zI=djz-W4V~L31kBn}wp)aK1ABecIo0FpNCW5d2GjS~%CCm9ADi*zBi>^f@tMk4Itn z@4ED9&lbXUj0d@=@`Enxp8(p3S;pt`9>$b4o^NnYq9)4a@}Vs$5mhKqU+~{i;|$}? zG7K+;-Fkod4$|LA7GztrCQIU-Ku&6A)@-?d(r_%l71f@SZM8D)Z9g^X4JlgCNJ*F8 zQr;qa3vU>;DO3ORW_2`QO5&){)t5s4h$e_F@4jAK+*j?$m`Ljv*#ul#hgL@+f>Y4* zI1S52{KIz+<|=E8g37WZ)vE0wC>xuC_<%x=1&nCueoN@^I=-VvHohG)DXb%N*x_ZW z{hg?hp+GleCm)Zmb??yw(G>T%cJ-%{zpZjboRYWY2zOkIiIMZY4s<0Ipy6}zn7hAm zkkG>F=0@bdD?_+#Mvu*YH15FW^L}QFUF~w161%vVQ18p9?5yGyDxh(U(Iyjmax#}m&bYdsXB>jZh z5NWysaWdYMGyWh78duq#6T7kM!!D6^XcP`RVHKmTDVtY_k>*?$Z zoYuV55%lX+sWDV0eFY1@YLpEwXy`wZW3rizu1S^);(~cT)6{We0^$R9UqlAF@Aj>I+@XO za$7m7Gnmn5IsO)Y19aP=5lF3a_|3J?art)Da7%0}T8%g9CgAqDoPQ}?9o5(Qj;(jODF}N3nt78oj=f(UU zy%o_Z*^Me`zb`D*yN}O#Du>n3KSXx@g%2q1T;( z{Y(COJi)qub=2c6a`wWzOpq^D5!rRJJguu-e(8VL3*m0;{GzRpOQHPg86AtL1MyJo z5HZ??t3oZ3?4dgS3FV~^8vdS61i@vz-0%lrWn?8ow*+!uGb?m)i8Me1Z%nCBNIuNy zFmYcEnZsPZeEO;Q{rDH@<4-Y-UqAa*q5^7{&tIsvm@pD2XyEkfzXm&4Ovq#C;lts^ zD>B;hyx#}jk{NIp%OsgV59&8Q7vuN*ZR&h2I$PG>SjoE+0j-t#uBxiDOQ6XwYV z7Nhu08ZqyNr#L9~#_nb}t{Y6gQa*J7nPwD#BR7s`nmlORMzfOQNAAHrBu-Bt=}yy? z-TC*0sfT}jUI>x2v{5pxXq&c^-QGqX`q{q>`;T}f@H_;nZ0t5BWLwD})azC3c9}Bt z+GC=Dn9R1Shv4E+(?C(QZ%Co0?sb9~1`UqO*sIcj!S}CnY9hAdg&gG0Kqs^(!k>+x zNU;FT6SBQh4Rioq>fE$T-e_b4OSEmRKLZYTElr2B1a#jC@F zSyLdar(VDekcc$Izt~(bqI(@n+t{E|9T^Ne6(X~b%W1?JXi>p%exzA?iK;RW^flU>;l1QiFovGpU6eiIdgd^mGKGf}{CXE&}%Cdx^ z@3!irW6(w&4eyK=FZb70V>Mm4_%$N~-5!KJAEW=ROZ?%-|MQna$a74^kYOG?d~^GF z>@%{Aj2lKXrnNr9@jT15n%93n!_kNro3Lje+Ff z*$?UQwMlrPt~i`&tc zEe}IXnp*WbKjn#QC0+j=+;U)Od23d-6MM&<8OXnL`7+7Q7cQ*RzAN1hsS5JMCU{I< zfv+@eZ%{eR(zC`w23$D-bX+pG$M&*%ZKZhi;Bb50lAPwQa2gyvL%)doq)qNxJGS_< z4%*n-;G<8jCtVjWB_#JUx~VfQ8d7&o(6~`XJz<|*$l3~41zr8$h<`XS8+CkJsHK&A z@ULf@&5G+(CL#@9bqmw_7n9{;c05gGBO%kt&h-VtcIB*&3(IDIb&D{?PJD_PQd8g7 zF^mL*QUaoX-nn-d;~D263eV<}=Mv^}=W<{ai)rwz(vBDBsAskNeifCDYXb!b1KlV} z1fnMGD)s)NxapQ-6tLnM(mO>f6$*6KF}@hzh1rRF<*Z}xO$0|e(<3F`FFVh_8xUkb z>l1s_8a35B{sB9mN+E9cZyQdB8&<~8*(n@9WG#432a9d>hmY80?;yF;t=?V?e#rT= zR4Ttu%H^0h9BNwd9flJvnQrwPQ{X9SJF&Hh|JTJiy8z$~sU$RzfyB^=+t>W%O&^i- zbeMbp6ly=ChoI#*j<^ZUg758@%HaD)?Wz8Eh&JR91^eGygBU_uoHQKs;cuOsv0GZ-^A>_hv}d9lV$!J~Hn*a=ZC^9u2rA64 z*G`uO<9lU)Vat>eC*x|Oh>AkkCESivZ*Qg!{b(BQFX>?C_x`!kfhXC)t}S9qFOcZW zebLn4Dj%Y-`*+frUA?~W3B*_Vi3w9W;&rxbL+mU1;J1H(<+Bj z`0uZ+u%?53vlmvr+Z+^tTAF8VAn_*4v4R>_>tM1hHTTpw{*`2@ng2|@ooskM@ zvr^E+TCq1%A9hi3I>=}+wzp@iIp3>#)ChX?2T?|YFa4C zw2j~xFQQwmUEM<38w{2TnG7J&^XrBK>s_PR0(558$TVGX&a#yPSx_)`s{R~jtiS95 za!%1DIJ5+9pf)?Y6d9uIYxKafEBuF!u*gAWLl4Q?M&mmi={qZ_P&k)E2a^T*%~Z>h zSB3!#fG!VPZl%0#qWo<*~CFv}88)u#Y0^FYcKd9XH?N)s!~H zPn+%3;?$A*8CmdMvP(~R4(W`#?krgCnaKTPG6wv6@jLaY%OutkKF=(++0*@ZM)~t@ z#|mT5yZL!mO9+lsF-Nf~WOMrSIrOj9U2r&unaOY6>@y>^unOL+bW(-k3CAX2S$6;+ zhj%c352R)`0i_=?J4R#V*UBf#kkKNR$=zZ72?2ZZev;<~+f>2cgaPck3D?<2m--HK zC#vUp*Ky)U%i_!BY6v9UJ5KU&}c%0>EDJ6lJ+ttNcLcA z_us3+ZQE5}-1oHQ$7zw^WUDZ0T7 ztB%C>eTitwWBgHa*~EjxY++|jbt%AarcsOgt^>~ygol7jsmcfHA{Nx7faTmk7Q<`SV-3dgb=Kcr4`wS&)DHePcC1rXMw6 z7ZO=d3JE%sUw^|TLl>;CUcva7cLDQ|FU4;2Z0%3EQfO`3mhpl9m@yV>s%-tsw79V_ zb1`jeP6VR!)-hVLhrD$eg4r^FZRMwg2^LBTa04lNyf1Kt?Z`bjL3}%QqqztfYE_m) z3B1H@^~1A^hl73Brs;}(9R3JQy+7qN@IDWsc9Q$fc)A3NELwXe#0?>eSl{r@!|5c` zts77n-pcQKNPo9T28{)V15G*^yHzaza^^2zE!+~}xlIIv(-F&=!Y)eL+H4zWdm) zA@kFh(%gMBiByQcjA3P9Q~W46xy<;W0Y<)v*^WF)2H6I2FE881TwOAqw94Yj^zSKa z01n|+@Ug3L%yq~rL2!H}_~gZrDEKUr3#XmtA!hc30LF0mtCGBx~}I9*weofFc+RV{aW^SSnuW59OD3k^K-EYQxWMO z4c@{612;Tq9M$_SImXrLMH^Et`Um~#@RB>v?q1k0q9Qlh5#Uj_+=o<~gbk1#kkwoB zv^po2IU=2aQ#>Q?a+SI080npC(-VH>MRI$5q)2=HSOZWr`O6GO(U@3(BTJ-QUXHF^ zqH{9Uj3QpL+$&|-mRs|Fd(})g!o@6-1QgqUOWMT@NcBNLqo9j7c!hDx8HX(iSi*Uc zN639qjddNP>#Ts`rPk)C0OW^hme!tyTn|HGx$ZlfIS6pcjnrN24Ns&}q}$bgS7b1B zzMceh!V8y>c}OMr1O0+GVazL=_w#b3GPN;Gs}zvX1HZO@D@b?Ce)uyc#7fHX?Q%Ph zIF{Lh%_TUjjTMb0KZY7$1!2@I=(X9sWxy^qk!jl;5{i4CtzCRDe)9g}RO+{%4f-hxrnMS6M~Xj-hIWo*DI7=}g{(^rJQRBWBic zM*d0(AoL`o4eKh~q8ch*a$$2=?w6|We8d^4&q&VXmK3KjiKa&q2kjh0USZ%(UGRHN z{mZo_^4^U0*u|N>e|9(Tz{)eyC79@Q1`FFcZKv78ZMt6fEdi7iUsR>m2bEkSrKm(D z`Hnu|JyKW~GK0h8z7_W^T0L4&fa48}zfzYI&9hb*dy0R~XF4C9OI~X5&({N625gmF zY>4r~0XgR$Jabf*9nFy}S$(F*a_cTuWxG~REXe#K&WN&3Z*a%e6HdDK;Opiu&FvXR zkVs$4SrtbW{ z-~KY3MF~Wx3sO;Jk?1N||D3KMS~dnmIkB3h0mtV4a}MWv7P zqT%L{BTK)Hr*eq`#Mu5+L(VY1$>yf|Bh*9i@Zwx5g+)p3kqjY^nGXLXS=39ay|2Aq zM9;_pLnI*Heh-X{Jn1qf^C}S4n*Ed$3=DsLcryFYI$Uw|&BU-=rJyQ^&r$kiXe@me zmBmjPi-Sa#gx`60Xi(+;cjXRJUF?j$R@jys?R@jkUO04EL|Dqi3Q$z4SUS{(wje&* zednm$nwP@31m!BZ-s6$MZWvTIU)Xflh|^>hHDgtO^_(9Mv00p1xz1C}nE`H1N#?Z5 z|Jb++3&^6+zMawGYb~+tt<-jVhHL!flAB8_=OOJtNiaT06;qPRMcHpv_?;#i(tzGd zyzLDmXd3ZA-(Q@i+(JaLKDPGq3EqeXaIBP_!d^SLE$>39IUD$2LTvEc4dDgc?nhG8 zywHFX!>5f~p!1qI?{Ul;?Ykci2JxbTy;y&eg$~JaqMF)HeHd-5Eb^G)+7FGkLg|53 z+@+D`f#qXdFFwmd995aLU2hZiKws(@(6j3VyeqC!t>}A^gIezuo&fk2IuT6v~ zk-*-U#wX5QI_c&Mb@V#M{pff(ypDj;jlLKL-@Te;H#AK-oBaUggR*?ajWLfO%!QmceSjX+EEo(9cCf7DQJ(bWoGy!BCK!ehereT((|)a4Y$v>ca~I34+;hQ0D2TxY8GWw5bH zq`2%1`f1aw=X(#xA4p7Q7UBNjRh5wmix}wVm#HeNPkQ_rz67%2ZqNE#W{*DSM0Sr( z#?nZ9nXBOm+C)nFLDMAs_dyrDrpS)3E63qYw&sQ-O>0C zk#;~@TyKnE-e;%F-j{e}JZ0E!NFSODSsh$~&Ck1{>aVc-%k#&j;>ToaL|nxjGz9^` z#d4O}%*4e2+sFr9`A6DfYS0(OvlRP-cT1m^0&x9V`hJV?G=!RZzOP&S491eLzPnhS(smQpeeVchRC>y~ z(S@hs#HG|w3^t1(86d1EZ_0M^tFwOF)?R@FQfPBlD$io(V_Nlk{xob!{RE5Aj-Pp26Es^?##im5Yc41+(8S+K>t_1P8K zn%=w8wEoHFo_v-0r|*<9)v z&R4RV@9_QhR;)SUQ)}{NdTrb1YSZ)r#M#f-l1x9U$#j&dol)U! zW6g_27P{Ft#kah!nJ3oTYsK;jK&Kh{xhMZaL@0g;)?@QGM1Qo3_{Iw>2OP+8&1az< zAAR|~r$Jb}K}Pri`_aMpN@CD-;Wi=uA~#Ev%~r?mD#ow2 zW3VZ#Y*gu*dD{XXWW67iTcXuywCQd9!5oV&qaFWH!g@8$?fK<0)W=Q!DAH$v0t1|T zZixt;^MzLo-dH8b-B_d!z2LXh+F|f|(?ZQv+>T0j;t%lSAIsdjTh1!J*)VXn9G2YT z+(k{m>hQLh9IQXb%rX*upr=6#e$jA*SsP5N>`i+&NlB3zd>3L&%TvbKdODey^f-5Y zaSj<7Aw*G#Ie&GfMTIw;OYB^()qRj`B&4E7I}07F4;SsjJ4PqF@Oz6Wx$R#G=E;H` zYYe4{X%LL)C2CyNK3krg^Uqjir3N^p{&Q_VCu}vmpt9_4tx~XShp6QeP;pSRM}QHh_VsunLC z?LD|J@k^qQ6ZVbj`5-=}00r3JyKdp;?V#U&B2xk7DRmRUND+g8lj?cD5Kii7MOCF3 zo+^Jg#483sm~=k!tQ1%q?dAVy-aQZ|)!x+7cAlCETD6I^GfxsMM!MM3)klbkM{LNZvNm_qG@VZ7%AWl#i7bw$+-5$r-&(+ZNNv_zx+#OQNjR44j zBck#8Usg0V2=)yIS@6g@daxEqQ404z&W;)zVM|O3l`(tn%QG{rV@9$Tu$wlTfSedx zdGw%G_MYw-XUPV&JQH~oVSK;&%Iwk$DRDX@u7GdM<3_Kfpz(b}>AR{t|1@t*rBwK7 z)|K>2yBDE)Zp49+pI$cSOX+X40GFhNq1-W$h$0NfuX_99W0^))XOwUy4OuV_@A+;KMet zd>I&MPQ$8DY7>6<%=}#R%f?3-8WXMb6CR6B9!W^D_=r3_opD=Q)_~@U#4p-^EvvX5 zenCtRV9UjNE)$k3*^JXm^r9>~`D4?3Uv_>37i!gFD^5Aw-}^JblFKLgiwZbCMJUS9 z5)?jacuBJKOS*y^GHF*yfL-ppCHiCbjL8k-(>jH4d(SozGbCl?n9H*#Ta@L)YRA=kJ@g zar#qx+!w&5{E%5^VlQ4#q!L2j@n2L-o*&&+vB=W`) ze>HgQc_PvB@k(C~oK=}&VLyslZIv&At?|1QV6i#~IW1JDmf&%QKXl;@IoG#+Z9Mni<^p&j`bXYu0(y)2^asYcCBOkupB z9q7Q=T=IYhj_yVy;n;M{8|Q2|fdsgD%bVMg7;m?%c}xg_4+ze0KpY&;{TuK{Jhjxb zwWIHbHBQ(4`ao~c(r0NZT>O6ebui+hL4?cD?KAZeoZI1Gk6 zD<0uUiyW#114+V7n-*c4VuvnK;$w$9CHN4^RN=-Xr6fm`L2Ug2D6Gag*FbiJ?mN60 z58@LT2=J`t;1<{tunr$0@%>13SYnHs0?7b zNSR6$>@zN~^%&3O*6jQ~X~Rn1Bd)+W7jfhg3MhRos*7zLe(=v3(8sB( zL9|>Ie}qUHJANzM$rPL=G|Bd;Prx8S^h@rm;omHyqA0Fh^U0YQ-^fiU7Q;WPe;EvU zBBw(15n!^WhOl$trpvXBT;9#J+588!dLdP2up}8naN}YuS07np8PD1m;cp!&^M@Ir zzrZNTUg;;x1Umb3_Z;LU14&tbS>Z&Zh0GyPg-<=?-a<@h%4)=3JHlITE|?!yfQ-6R zthB}$jhexxBP4ic{j1$X!PIzd27oEt?=DaE%j)szx(Z3v-=!+bMS5n9((ldfYhnMa z^~*9q@bxt@q)-e+i#>KpLQ`-CV9>M;&JJOc&=kvOV{Mb4-)7YFfR3Hzm0W_Rlp&s;`}wB~ zpAr%_C;BqP2PnsUiF*X`^4&;8VcMjy zZWx22eb5){pQcqT#$*ro#bi72u=k0sjfg{QaQ?r8-7Ci#GGYBRp<@7aQBRqylO5KqGc=k1txwo z=7zb)bHU&7`TEE;_fxtK(aX%r0dF=$&iBmINBqi!D>y1T?GoW(oWFmG2FBF{-iN! z5J;=>d>M_4qo}OXHN}`=%?Dxj^M8IS_x#JlBkQ#C0&lB}J^2X**Fmw(20-Hs-muPeifYDzHL zI<+k$6^Z&D>s>c9+;L_2f)P*BB6U;jyQO6r@if@jPM!AJG}cfdFz%1Boh8wfU8A^Q?`TC4nsFtoJ8J8VL1D);S7U1|r*@{|~ zX%7SIx4^XSK82cK=9{j!?MIHTcFhtFV>vKVmg_)ueRDVYBl4M@ocSb_H#PmXT zaS{S*i`x9uXyLNZ^UqJ)O%ontvU!c|a%ltYSx{exN(GBb=eVN@_cKvTs656v7R%|+ z<~O1w5u~Wm<9@FR-W{fh+2z{4 zM814+@%~fG-TH+Om~K8Owr#GXz6>qIuc={jXx>1qvZ!xrV=qr4NtTT*H!zbDH1Rqb zU32O|U|#XKnR&5{`R~U4JNFq`h`!MPNoHGRW4)@O$Lz)kFWG0PxA1FL&u^)-G;{X% zgUrAUUir31{hv~Tb+cO=4A4u_NFAh>;SkdTE-%q{Mp_Ne4@UTZLQuphTf63Oz||jr zpe6Def0eka+7bHXLPNC9vtVaF+^!g%lz}wTh6TF%YSJHr!%NbI-y+19)VQ_IbKaU= zXa6!`ok%;&*cTm*x3nF9E{kZTUAgVd4IXP57@P!qYF!$)N^D**`^(Av08~3L*X)Bw zS&l>x2#bIt`P;VpN-^`DcpjHEjxTsXtD+zWC7^C=&l+KBeKeD?2))h}JdNHf-yF7p z!{F@xCaJXdm#oM^`)CVO={YaY%w`b!e)%qDaQy1w8JvWslOr$ME)4F`-PQ`|r{c}d z!RwkZi@=}Z;_bzqGY;NnsXqI%WT2#%Up^25h|#zCq$KvafDUi zkJ~FOMD7IEmzeq1%d_(>riV9|3?WrE!egFQ;*|!J%nM2{T zyH_PW^?;VDvq8u}rg?*3OM^niAFPVkl_9q7_Z;rRsE5YS;|ZQ>Ks$t`B)~a zJA6NFLYW;8S$bCKgV0k$#)IQc&Bh%G@@G<0U^P78Ad-ezU#`K$`le?lr2e`B2Ciy_T5ZFTgNZDsQvQ*jU%KrDJtnbEz zPV=FU9hR?y#lqA1N!7rV=Z(YCFwRaV#jTiTtg=zFlgq`767rSh>q0`aQyfg==_#?V z9e-IOu!blB8!Ok`V6~Px^sft-CVKcFSiy;7!>Fh5C#R|LTN!KY%}M--_a|%3<&08} zUjPC_c*w1ewgH2i0a3Dm&mYo3SfzyHyK=MouI6dM)c>TZOtnLYUEc$te=V_V3Rm*z zdQ!hkKmJMgGfQxGH==#cej?0B5IsEFGxgb4@n-q5z|OF-@|#uI(>dE>=hQga=%6ig z4}I5fk<|7;iTX!{S}S&@roZ6FpRd@qno+kY)nCgLPlV=ZjY*4vHBjHb_F36aN}7O<-q@8}y|G|JZY%psp|=qJKI@9|osyl}mWy+x{uPoQ zC6bTD2ZZYNhIVo>&)BdQ5^n#bqMT_X>eF6e8Xvwql)mq+!3I^=-{9b5t|I$_3h*7&%enJjZ>}9PsQ;0F>ecV~{$0@)L9o>tiy!9>&eLZ%cSp|;g3)M2Z%w)7 z+)a@d?)X}?|L1r>-z&H4nQcC-yPcBKr6fm^j$-;oCdWOAk&?7zKsQ~gw{+IU37NI* zT^VGTDY|}sgf;%I^{%nXlL-+%AS8KE?hDK(FAyX6n&C+%@Vj1w|5s`))^9;JP%KX4 z;mtAtex^z8Hm1p6eXkwtIBLs~nLqu=K_H_?hymK##jTMnVyfigNn4H8Se{H$jh}1I z&KRT1r%M)i!k~OVO1ylM$bT9ke+5Eacjv96;O9oL%gCS*>5fw)7tk4=%Pqft0|I?R z)wVhy8fP*=>LPKKgpxim$Id*__*(OFT4uNI+#tAiZZ5gr8(U%Xr8BYD@mm$Z`yFTL=*fq@uHPIzOu!F@(dQC;L?(GvH0|s zHkmc%L{>GycpWp}N2G>h%~^h+RQ4BmpkOY#Rc0Bp8WVo>3fVzH8AbSgc^FZ2&1z>BY#P3`2PdCI}S0LY@PLg;vAkPkEtBbV`rh2MgMBhi0oeBZ+{ zm`=z2;{bnxj(BpQQvA^%85@rOzYv7!qwsdSH1w?;Ze_s(q=ug*b9)KxFoS+;WnSDQ zwKltx@-j+K$ZgCr0CMWA%#hvQ?!Kp*e8;)WGLS({-l{{(Z%fg%5m72EptOIEX`}0a za_aodN!K;Oiv>dt)$a#9oS+yTYGgQnh5Lq;u@@GKvAA!HVFyNf>5nmtqYc9*Y29j@H6#-FsqbMO(wLl^^gTVT|P*0*Wmzl>Vj zZ_M?b^-fy@va3ic9CLomsBC>K?^~x{|_?4PltvP@fV?87%;QQRY}AEts4--0ct z7JoDrx67QD{u(bi%0d`Iy=6uOi)ib0-K<-OZJvBSNWEYwAuwctU$2gr$^ND^gZ*D+ zbwI5kKm7`JhDVPM^$rhr7*1LvS$us%BGKpx$IF0#(iIHlQi5#Y%j`oBUv%4*WcgS? z#}XDIfLL{is0#nNm$QN4TV1H55pplogZXQn(?HRZ@@^LS^zv~N9;|Nj$z8;ubkCAp zO25gQZQ~n% z)ukGi>&4b91@B<(pVZS?@4~25Q`a`CX4)WsioLw=7t4*P8nG*7#1pV3cLzeh1H2vG z-sJ95Kl1WLy?f6y(sI)HbPk}e!Br`jZ|MD@6$D)5-0WX_1f zvbScYUzc=WdPDia)P88#340>@S0Oo>;COJ5d?mrE0n6nC@Cd*!yy16r7btP3fmTSr zTW{ILqi)hb_vgsQ+xWmFp{Ja8V@5%Oys2`j&P#DeoneUNOX z$CJKIQ7#OW+OfT7)ksIkG zD5fxDC-(fnoR%^1wnKxY^%y!Tg3!oC|6p8Pw#6*Ww8ZS+JBv*lWevon^Jr9t0~RpG zR=1~0xw5;S=HlI+FnR{G`Tf^rrLhYt`;_)iUx-7V%mu^#eXH+bN6Znn2>ox@<=nkm z;r0L+F5vx?sGDPPq?x_MQo3kHqm>}6`;1MlG%UU#0!_f>86S#3ZuWKlA$GeD8hwj; zinSg{X?F)|)mtjy?{ospCOsG11N45 z?w_=;GBa(;-k)(E-h{CF_jX7PFWt>Nfn8U`n`0MA-ssC{`|$}_Ft1Ixa!NSRdSh8W ztS^$@?`fV!z=M(s?lEK4m!5W=LX=`$Ts=(>A)U#E-Xf!HM&W|B=_A;uZ1TOeO}xw; z9IE6>o4GJUZ15^u?#Kd)IF-VzaCl4|Gf)HhZI&w;X&h>!ps%8=NSChFK(|2eq>axy zO~L~@R7wrn;$g2BMQFf4!G{K^Ji0|tmAX=;#l3mg#jXp;db`CCR+tEud| z71w;NRH6wxivswqFZ=I`e+E(zAlzVCY4mxjWC=Ze8VC0S0{@TU>>-?BD+w6y)h1?( z!=cZic{xAO#~wEQgx;D=_)JP0UXMD-D?Ly8`Q)IOrFMAAgO1%|%!K&MtfMt-^E!Kf z^T07;dcSSPGg#PsZ0OEO>fK_U#xr9Kla-%2Ux1XY#froi+pa_;jYMl9hL4)kmUJ?s zD3}S#N|2x1uF)M6)FH|w5n`+@6UAW&t&|E zPVyC5`ME|@=c`&Dq-^`~v|~9bY`7a+6#fn^bdW{VCXE5~sm4(k13Xa%;t;c+qO)@g z_w?sd!ar!XGX*78whUV(Z0?2Ami%zim#Df| z&Fvjut#?V?^bBzexVc!}g;fa<80cTzu0$O zIB=3G^rih_s|PEAYv~1 z281Bg_2$Q2j7w7Vfib~a(FT1&#azf%5dadeRuuGrRx?Vkv?k*GYNJfqqQ9K-Q|7g=_toD8txy3_?>Hn`t#@e zAI1cXx;0j{hkhO`8c=go3SjTx2!LF+K}qT;t41e)k3&fnb9${oW30HLnEAFpqtJ#_ z632YjiLp2BE2j19WIe=$?D1&ia!br=^;~H7Y*h5#rS$dAmS`JnbLzT#pd9DO`coR7 zEyWSL*FhT)X9+3!KG%3A6BP=pA)nRP5#r5hDQZ4T&dukOSXCEg{bs?= zBu?o?Rhik38+i}UTf4a5X0AGn%$s?muTI};2yjeG0Af$g#}lVs_WeZ-biZPP&1$tA z?Mw7c%VHg~jd-r=Uat<;o$E~n>T%5eaRZ(%Kse2ZF3EVT03T*EyI4yj^*P3s`;?it znGPNw=5ag!{5DQzLKvc7;X>qt^7Sp7k^L!Q7d9*T>}6_wUtuWmt+m0^zaJe>+IMqd zxV`3#kMzkatV`uYI!}zcl6DppQCXA0d+5ai+1d=wmo1BRK9$=_4G%tniSo&}ITrJ5 zTn*2FLDv0j2IhsIXp$%v=&Xq*d?b0llz~9MyaYKP0D1+k_F)VTXwDcL9;wW-kT}E{ zJ&?-tOQkZzRAxVK;{0KE(17l2et72K>Ef|@3zi4BCOuZ@SFEr`sNPQp4bCr3m7ODS zucXcUYq%v++)a~Tyyq9NQxx<;J(wS4#4W}5+$g_lW`qr-hojAq4vKel%#zX#b)ec7 z#c@n1$xJpF&`Y+qm_-z?NP~PHgmuHvNLYL7?%daR^G7g+k1MP(GPNt)M8j57wP!FGLR>c_* zOv*URG@A+!wttgJ&i_eHZ9~UlhtVIoSsu*2z@Ni1v(;i83n{hv@1$9~#(YKW?g=!F zcbjxn6J;-V2FyX}s&mj^EW_k{Hdp6@(JS-{xm!{cD`>DfcKV3=cIS4h);4Yl{?C9F zcL%2#Kd7+k#o3^Y_Sh|3MT%3F2sowzdok0(P&QK1oic9G`j^e>5VGl9{zjVNGGr_g zT?>@nRR9c>qvzT}xV5I`oPLvLb-F?R5PW}?oz&WO^4-=@u2yS{J@9SlvVkv(di6BbKe9leL8J@gFyUQb(N6ECqh}fR+wh( zMlK)>=0XAWt7YYwSl%r~*)FmF#VRlI=wR?YZMpUurh3`ute8_JlRS@y7ZUI8%y93< z=h2uC*z=up;y;O-oVB0@C7Fs8c$3yj5z9=tV@9ffX5yUd4d$PRI6W(H9C_G=hdp|- zeST!}t|eOW>q22(K(4Xe4Y`r;b?f3k5ZPYJ8y!0Qtn@z$zz59f2hK0zne?;Pc6Ls| zE!`q*%zxF|Qt+4vFwO|!07Xv(4k7WC)FCDR9RKVRmOrB=LlCArl;t9yx{>`%ku3vh z`h@zZVj|P{oT_~tbY9=$;BOxO1bqP$FlGh2Duzgge>5nN;Njs#=>2-Kn0;G1>h3jd z<&@b;M;fb<@XDE3oaZ%taWHCuBD*Wqn6zT`SZ{s?L#II$ME2A1(Eec$u7Yu)`}rjb z7zwR%1!E2a`(1p4n3;_>E3OiOnp<{sn7{^Nh=hLehJa0B!V8GWJ0MK zu;*WOeAH|F8JDko2bwUkCe2t!z(yncPbzXZieo22|EC4Z^$2u0@8vB&LwQ^l1_2qZx< z95HxZp2nSuvW@B~ccf#vD<6hg+?;gd?-pci?g0-VFwE%x5%m@hQFhT9?=W$ zbV;WoA`K$lQYzgI0|+QcOT!@2okPyh-92=74mq@UJm=hd|AqJ6Ywfkyde-lGJ@34% zojI#1%Ee?S-f)7tGv zJs{AzT5vAd`&w612;1Mm>Slj%V5)2<$j8+Z{t0M-n(3cT$tJ%<|B7V;+Yz{wo?lS! z!#CMj7*sgMB>Jyg_$^VEg0vG`JG6287IwAxmuUOJ_Z+Y9TP=oBg&m@85Z7}+K34Re*;-xuFiYLqOIefG^U_aj4Kmd?Tl(X7GrK=z;JzOsIQ>%S zb4<~dK}k`H4d`7qA7efGZNs2m?Za9wbV74~JFQiJ3%|)K-*Kx+oENIJCCMn$L89$K zh_iB0!(C#;idwfjBVx^?Qj(pEplQ}(BQ|Es*Ka3+#wlmK^hj+&7`!46I8uefUk;yb z;BiMTKg4~K@TjLgF}??s^V7m#k{+w=mn#WJk9~!l&aZgofbxX`=*L;U*S&^j8!?zU zJ|g<6FAl|c*?6l8#tT<8^V-{;6#CUhTj>-2DKGXr zmtkib{n|9*ZvR1p!A#@O=~MH`yv@U!{PWL*vhM%kD+dIBr zxTdz=wA9HX7Y1!w^#;`DqtBGIVy@JPcz!Di?$5VThkJk& zFDx4JT(Q(y7L^v49y`$}Z-1`df^Bs;tEU*b0Ri z@YuHa$2h$t0^ilDO?M^IS-Sx1MXsnsCGE_q^~n5fT{cem%h7t($&ECq|J<7|erW)+ z&oQ$ucdGWja8C03gm)>hV*Nz@kRDj!LZ;c0KD_N%ge@kSnItltfro(aDN5J&U&R2`jpsCgzyL)8H##n>XOBa_uJ7NnNzh))Y~<)~(QY_+$~l~|tIGN}~0 zM?xX|?nk4hCb&W^-0^>=vTJt!Sd~f!3;?LZ?Ty__gA8=W70c`~?Sx`qC$uW9G4Jx5 zaH|lkB3#eccakew&&Si}x`D1uvW&^Iaj`}ti6NeEl&L}sdpfj7)G9JIjltj886JG2tth?!7)tCyxy z&C|<=Dl=yE1T3eR$&inIlf8!v;Nn?ttlS-Edz-5&7uy;7@X;APUR17W%7Ag9pNE%K z)t=ACTRAxeDtgEwJQ`0?Jp}-|DxWA{m9J;Mj3^z=IM=0+)FFe}716FM)}%j=w1#8d z7|K9p+;2p??&&#z&mIF;7#&VxX36Hsdg*g}rV;Y0CDbq6tUs=l2d#2l+gcq=GcjTR6t?;ynAH2|4 zrgC3zrbFsD-n0Gu$(}>81&XZWB?#`tD2m@USolcps`k4f&&OEA$Y>A;*2vF%qQgR3 z2PLcI=++;+W%d0#XtnySr%MHxy>Y8%YUI^5>C=9f)4Zr!igti2A}v!A^iM$CtLm#sSwB9ABDNmA1+@zFbpf7Kb0tB?Tfst{l(%; zZ)#N;{)P*!S^KWIk$K^gZe6zlqXVU2zJ^qP(Wva?lM7$*&uT7XvGz*2hvR`e^g5_R zCERIIGs-gA2Z^cw;aa1$SE81v4*CV#cIB_K0SvGhRKqC*yHQi7u2Bi zc9Yzy4OSo+?mWx{N7wNg{_PRUcyZ@y4DCrBxX0oStLBn@$K$QOBk<_=ncrZ`$ucBA z&v66`fv2!W?UBgEuktsKOsY-ldAF{s=bpQb(*bh+Ccg{+R}bzTvq4L3+ zG#*}^`zT%k`hl8SZ$*{~T{Gb_Dr|7>*X0EFp4+(H3;-F+!q%!y_@Z=G`M2-$@BW48ECqKu6q8hH-IZfzyte3 zs@npkl!r#n1aK6u(}4(WWwwGTbMck^!iV>Dt=Oa_8e_R@Ux^fAMH6lpsOsp^_H59@ zm6xJ+bVTRz={|L!)Y#Of$`TiPo#~|QCDCl2EcS9o7y!(-_~}f80K@@aTlq-;k5c0y zogB9vofR+pok!vGoH1Y%EH^#@dye&0`}S?TWudBtSa7Av>JzPq1`1ENd-#9+hb>{+ zV#Ee&S;YywJLSg!8fvbTSo5IyQFUi~89w-SXPy_$8u@eODXrE0j{MJSsewEgRJfdZ zq}-C=CGdP0H+0n0#&D64PaTD8&6lpnYR?IJu+)RLoybY#ib{e?$23LBFpbewVI2#i zD&MTx+^D`4dBI^DK9$bHr0qD;r{&Z1+*0|qO@%trr33h7YhS|q@i|}{=F;v?fy|L1p#xQ`^pY!Mhx9+DF9r_fRK2rHy@wM>bT1> zM4L?YzJ8g1cRayCNE21IIGo?z1>iN|7AUyUI$J^V=wa`^nxoj+8O1W)Jnfu>!ohqa zAwN}IOSZBI1<;zX0@eeBS;DR)AcNu^2QvhXm}OL`hF*_X`nUsZMoQth z_ht*%6GE!y2NDRg{=zb?so|*5H?mThk;jvg`)8|lL|2wL_eueZ{Yl_m zRt64&0u;&Cq)eUbxBJOR8Bt)_PJ<|+6lMI97rW(%!rqSp&&~0}0z|okX_EyF;QnL@ z(=gzBlTq~gXzIO|Z}?OccCk;Mveof2U8zTl#>@XZn+g9Z9f!J&d`1Qz+p*^Z#IgMO zs-O+>zmbbyKonR!R&TJ{WHJ*DH)ck1rs&0lH5jY~>umHXBnjzR#}+TPI8`qp{oZ$= zk&X*i!Pkd1IP+cy_LQOoH`ecm&TLY}z52RANW>c(+A)%B+=WQUSpw zt+ZoLCi|fz!B%N0Pks}r*F!_tn(rYcD~4xlx>};j7Ze%*{EPw&s;HEPMi0T4L$Q2r zrUl@OQWE3EyJScGPpk1gX@&Z+=AHZl6w#fY3oMyPx)kAHQ&F;HdApIm|Ih@(u{Njn zJ5gM<{}m^}Gf^>A;}rYNvk!E-xiEy@j*a971Z@o@ApqKch;aLrM91m^&u7mQBfhEK_v^*TZHO-%fn*Mn=+RKpX`wFW!BBTWFMq!g)h4@ z!?OY#=M$H9)Yg~q4v(MkMeQ^HZ*&|EEkG%^(ArrHyFszT*!S>NL%hqLVRcIo^&#b0 zjv~3WxlU?WAe$|QstR$kQk4>R*#LYgxvLBUhBg(ehFjzp)g_Fd8 z&u~y%5p}v}7=@dy$^ggD!gV~qwYzc;KbjfJ?7aL4E$`MrBZW2%5HHom4p@cw2B;y4 z5@9U`re7b8P-up;r|`%Wy(3lGo2A%i4Esabiw({B1X-1psP$XwbAxawg_Rr}ksOutkrd@h`E}zjKQbNwR{iW@Y#I=mdsofi%}!DRW}MC zUuanm$zoCC69YJouX~aTu&hY_yUhn>RZwCT)78`|(#v!!@0gma7&)MQZ6tDTyp253 zRiZ_I8plb5s`T$&^3=bOy2JZFbQ2&Di4(k%oVjp+A85vSAB=yQZ-}~Jdl!1#)?fkc zf7}k1<93VS{tueKPsgE8P@kXd<(G-BDB~p$+I6_$D2d6snrxe#2K2SFI*|hw6{qy7 zy>i~xJ{2orzB(YIVn#UAuro$FOvX0WVQxQ@ZNa?uAkrF4Bh9ux0W3-aOi0KsiTi{I zA(^gUXnLgRR_kDYa`iv^9SGdD~TMB#mZWFC0l8vlK`|2pctBNmzg?n=mcD`Y0jQmBJMc#$Gz2 znX7lL9bj17sy5|XIy-Ew`~MG(YdXsIrfqc$d9e_WguR2dT_7J@!ASHmBtS#f&L%p% zkdHoMdfq82G)>L|YZ{|x9NBy@-^M!sKBzB|>+!-|$D(m_UhPU|+}4Px@^8!--x^h_ za1j|F!pNzE{)}Q!OJX1cXWp;KqTgk64}S4ApZEA+V%jn~u57Hr6F83+N8uNuP?$bE zNY8ZC_0HUg^flx@+zTS{i^@#P$w7uO)p#_njJnhWx||GWn?0H4478=xsFRY1UVK@R zRU0KKT(La$4nZOKntnV7n-Dt85{yA+DDq9Rj(=fW{R{m7^b$A2vdL77*Qq= zuRybFG+zxHtmz?7@TM)90$Awc{L_B6D}FTy-Q1f`K?bC%PE`{_*zH->Wy9=YNS)0H zKEZE4%IN4yf9+SrUEF!m@qrqe+&HvkRG_H%wUn3pvS{MRGcUA2nC;=V4S#-A?mT8R z=g#Ny3?8sjkd&_=CVGSxKMxa>XcU{~!~U$#sSoR6HqW3h4MLKH<0V_v``oNq9CF7HK&q@3Ig24u5bOJ5{jR)rsfzA5xM`QVRv6x%a=id+$C%VXg`X zG$qFLc`^ns=~{0A81^mkeN<@OlRJRw`dPMXUa;k=`(XY}hG6^nt;ye6r2%M(H>eb| zJDUQ;D4`fZFrO$0u%y1>N95$VUAcr0-v?II)Veal+a4%9b=8lf1KKQQQDmaIZuMvD zBT$TX4@>mJtiz0oVds161ki-)ER`Nc;c154v-qC-` zf`S77<&v)aDg6bhHJbN_NiHXmg7q;w?ceiXi#+dWJ=2DkwvJXCdo6aJ=25SRf1wBC zMCU(2Ih(==&Dz2ajdVTNPmi`%=8%%t=#+ayW&!8Ng)pj<@{YCh{Mw5S@;ie+JU+gX z=21n~<SxfM-=hC);80IQqjm59cl|>;>JQ^DM#-ba^2RkM~L*?diiTr7}AgpT6 z^mmn^mv5z$a(^o_a)_~+YxldIO&02 zV1m{QC!B7IW`uLPeD!i}aIP3Bx1X%m3t*p7Li#i);)G+X$z=PY@vuM7Jk>h0@JMd`R5Ylj^cN6kZdR@#W4Uw#Vy87`g4|!PZ}D0N{EP@^6)W>b6{# zM%R~u;PsR*&vNcyy{Fxn@gOY{C1|oe1%0N-UOV^4n9|eEAu9;4 zQ%9;AKz*mV*XuG=Ws-B~5thz0X|-An@zdCRvM5}!GeDs<$wdoWGtvPNr9)CgZ_lQ> zuX;c8#IxS==SZph(Z#B-z#{SKm6yPNoTG$dwoJk26%?yT0hQCOi@gwt&7?UR-<1a{V+R0m%(vsg>c@>>+9yf$QdwXA(OV;SU#dEx#mKAbZ#R^`A3svBEpG)3W7nlr6k z`O(Ij0$98C<-6;`Lovb$U5$Ew8Q`h=Y^+S$kj^Z8xY2u8EApF^5vased(JKX zdh#}di&u``lD~*#-2ZHnt@@IryrobiVqoK&r5D|c--fjkExw&KYK z_Aqh5ELHVQ^=Rpk_WX-dz+T6WcQ1y!WbKM(>MLr&)XS z@oE!8(G^6K5}uKWh?C@Cz8CDrx4Kko1mS=|h8ABwFta91&NXz#lXxn{nq2K&KGRXM zRM#EfQP*Lb!*g?WyClRWS@>}hry}>WO;!2)4(r5v?d<^JmyVF)jmms0{fQGmGgx2y zmm5%!Iz`)PK-iwy*E%p`J}c-#ZEo^ET~>RDer za8Q!AoZIg&gf^4?9NWvx4<2VOBGG_ztZ9@$DBjqe>K6BycGZwJjwDS#9wPLO*H%*f27#+lJYTdpOCLE)yX;vY5m_X6`@5gz!aK!%K59hPt zNh3s1^&I6%Zviw^J(H(y|DFH9#`NZ<_otCW;pbRQ7W^Kt4d)8sC zyS9|=(cE@@r=83lF5guYJlDRqF`FmJsU2md(F1*4vheCYIS@e#=ReFCaaz{xqz1;J z4Nz32*9z-p>c)5&$V4=}k>k33Sf_ckSY(>fqKXDXSE;_puP_(fmu7gJ)9GQlV|Xu0 z9k`$%K+9=no{HDgU&Y)%(?$J~Zuu};Mf-Itpl7GIXNWd|NBoiAJ@!pV#)^AtPfrNj z)PG5^`Wm1UJ4+q&V}Gj|wf3yYR9aVU(^t%~IF)a5eg4U$?pgm5k_L)tHG@h>mqh4W zFu2S2{XP(TB}YH;ZMUQUEIdv0d|(;T8XM5&cbGP~G#b6Hv|Je3wXl7mDk{p4CXCL( zbt7^djyv{6k=bx(Gyn$chY?I|xf)VVg5k+I=x6WQ?+GRw0$n=GH8cP$-2$V5Yj(M; z^ijX0nwy_#qfKwWL#qy77?8p#8;t4}I6TH4y$`aktPH7?SE~|_zVacziD`QEQbJn$ z#c&DQF8SDt9l_a2-=0M7xbzrL!?%#m7wtD#|g{DPE^_c2e1LuXx+}EMLeV zI~SdDKLXWfv}s9b9)SZwd}rPHm3T*<&uz49k5hQnm|2;;e*6Sz#v;xgu*JQt%tEZB zPvLnQQn0rM4%+p$`--P+trNXQ%Bi+guCgCqLa5zq-e~YG*!}}4O`*WD(66^*l3a{v z$(2(W@?2_+=rWJ#msqhcF|RhV%uk0xTP~&jAB3w;k+^G@cGj}a7BLSqjK25#pUQx# z1^`-0zOn>ZlK4^DFX}WOKW`;Pc8>}P#eJV&es1_{3A_8jB3TgYF&8!X?Vw(OZ*_I- zvqo`gXtv5}ASqt!?5nqeui4+~WI#2CHo(wgd4?2vWj^q>>I6OH1+MLqBRy6Bj zyg#PNd#Dv#y2O_REYx|mH9tU-2^M|rQMXQ*TH0Q#_i_!blfiR?C+5ocdRYG2HRI@6 z;917XlKCix<8}#k@}k2Z?t35YN$xbhqiti01?VBIcIRdWsp-rDCwUCr;#hP8eJ21z zDk@w3AQN*eaBZ zHV+UL`Qy8{V}hN3%#5_~(i@Klr13h~L5g$qKA+jwyeN^6&7f25_Uu)B6nF*=bZEEfavi7T@#c8lSBQ!xp)-#yV74RD8cDnJ)rv^*@~v9F>O z9pi8HPn>U;z1Aa;ufH>I=!fVw{OqrB)~Mn#eP8BAR9VQ~3%SY&fnYx z4F`_JssGtnpIVRMWL)N{nhWzdan!$z>+_t5YN)|xzA;_1grBwAE%uB%&>+CccP#Cs z@cY2EPXC;R&SHkVEZKX43e_FgoiA9c#)UyAPT?9nTqKm#g`Nza!eQdJPW)`#MHKcP)

$EWgczinK#Y*KSTS3fPQz!@5jWz6cT#?NhpSK$0-1MN2zlOD@&egQW_w5pl z(a z&{3wFCzGcZAA9WU5t+uQXQUb)QgcKPIfntLjM!QwU?8PLu^EXy7Z4fGG$$P)b0~c1 zkH{iDSLKbOP?3u?{vyZhF$q?lM9pL1Q~FKW-|SisS9z-IOl`pCUZVkPheZ)cTq=A< zyANd`E;9GTcR>K_g-{y3KW0)%-lzU6Rm5Uy7i->i8J6_K<=W(&)l_^dR$9SuYHxMB zvL=z6nQo(EdsO}3;aWD57sT0qTq97g8@ANAC)BqzPn#({sTBi}++BHOD+^(DRN+ zsS+hw9GF+*rtjHulpw~jY5_`^LxKee>k2a$KGawK(*?NdY*|fZC2taPCnH}z$h7-6 z)muz-;Scl5BMPr1tA}cqS`$$#Rp$tzZ!)s|C;d_F4I}&a^6-n>_ORPdMX<5>ac_wv zC>X-kds{nZcjJZ=-jzu(=E8F^wi&jh_*Er9Az|A}OrcU-Nl*P(*ykhUjEl6wAhjzf zz^<3?-V5Is!FPoSyaIAz;D192d(9htl~a>yUR%!lE$wJ}tAZ%;K1;eUyx}4=h9#o9 zKtpM1%K}l&zykuB4uMi%*|IRJjNxsx#r{C6ut^$cddoj1k8?>SxX@|Z3Z=de`mZEH zfCOn#Lyk{EFe@ACBeYTqyD0Ai_M`MkX9-cyUo zmBt>#0=~15jCzabPf`TmR=w>Lf;>;1jKVZz58HV;!;GO+_sxSg3Ww$Crs#WvdSnJSerG_v&fHZe=!m zu#+uvE4VbOrVfxPxi9`7dh@`(SZ-6LNChZ!#Ki!t9Gtz5O`x?$VByyf{%ln#%?+&mvL&4?UTBfUc*KjdffwWy7!Ig|Fvg?BCVK%aPGf z%9t$nQ;m5pK^&EVhl>`GZyY~Q3)QhPiBwNjH;?J=kdJ4oXHoK1+I5y9N=$=ST2?%N z_Jm;$KZ87Yv6^#{EGYd{IGtljSBv&h>$Bi^Ks|Py6hP`WPL&B)Z8o30D=T5bLt;j%XV+Q6GT;aTBz`*P}O zAdw|oldn^3#Zmr@vvqcK&WHherU#McB9|d6z7ViU_)hwDQ(2*nQ&kzW{MTqdADIsv zHX{f%Lnm!Jem-PeHOCR1NG!wJM$5@TS9#{4Nj4EUt1feCi^P}Dx%B(Elq@|*?Q zV4;K0=5%sR0KKotAj+>DzsxVBQpdIIzTvQZS^HlgKimlaB=g4ccExV3Wv6ME_8@HI zBStT*TnuP)6O=v;er#XG=03#(IPvmkP9J+6q)K^R8@&Ca@g`E5Mo8+KS){9CnmKmh zcV@8R$DLfycH!*fj8i^%$O4D`<+>59M{$(;^r<20OweU*_%w)bYB2_{b8u#R*nsR+ z#|2I>Z~pURQMZ1JQE9-(QwQ#k_BE6XO4J3`r(A@;$n&z&Yf^BxW@jsz)T3{!el`2i zXwpX7O>#F);(B@V2V21kUo3Rm=6-Lod<*wuxX|T=?mDWe_q<^A`*;BfMzO9-bGu~5-!T70M#OikY{Q*HSu#zfhy3L-t~_jDKJ<}w21=NN=#zLW|k1RqO1uw+|{Jmmd^~AHB8J2_o z(lvKD1|Axfn3@}t;qD%X@s`@8s==GU=1s}s?U}(Jci;3D6E52owxRcWhwR{;-mGIf z-hb*47$zV9qts?H;p{G|?Sq|>C34)(dw4M)nQ`?ht5FQt*iABgv0qJ-kH*hcbiT^* z79cnPhIUZ0tLbouB_n9bM4=qLsZn;gS32im1la+d2493^--ThIOt8=VE;rJJn|q2< z$}dQ`%-{EtDW&z!Q92zbqux$!0yxRIVj8?%^=$2DAf&b`ROD||%IwwYdE~B__0UC& zlgo4Gv|y11rqkC%{Tbc(8J$5t#T^ddHJ z%9_{Fq^s2DLVk7ViSZ!~#LlmT?|^CR2|*DTe?wA$<%~j{;SkrK=v_t`^%=v|7d=b* z8Hxun79ZFTUO8<4=U@|tSTvYxLDL-mL+FOE(e9*4S2hSNYM=1r@T>i@?a2dh%@3|b zqp;4VPqhQCYl#>y#inQCFIlQ?A35F7@H(OK*HkV}Hlvlbkjp(Er2c(8k#ZC~e?gsT zvbYri_ThEx4i3dHgZiZP1SEd$bP%CDmZ_FqAb1uVs7e_#Z3#|Q+3B|?Ab80K&M&J7 zrY3W?qsI~vkea0mz$~k-P1+NZI?*$~yX^D>X%qMuoTDRQ9bO$Q*UaHiV{tU8fze14 zg&W_mrcm9;{Uq`)#mi zlxtlZA)KO3ORvAjG2po}*J>+9c4)fmR}$}6%ph(DMGml*j9)|rZRx#z!(FBiQedC> zVCR;n_9m#d;dyf!n1?Yq@7{1`h&v$8e!031%dW&?-urmecIP0vz^1b7WRZN#g{bM; zJ;r5@Mu2yg=RP7o3t$NIGUUth`d)$VPB2AFbVgYnPsr#iI zmyRBPif!T@a6-`Q)Jd_2EmpzdD`Nq3Y`ib%E#uF8Sdz)Y^Kl~-Aa~Mpmy+FolbAQ$ z>F3B|jOz(;s~*x|lPL{+pY}VrkBu#s`v$gbO5paTi?3pENCQapt>5dR};wpJUmIT@I*kT3E!m>EJ*byHTd5o)U z@tk=$9iVdeY&`3AwMVSnWSp%bE#BnJ&3XP%V^_2&!l~8$|g1b_pDeDYBN+f%v^P~+*g(L@|S7&c3yt1hNz#@emlRb!s0!D*8LrLGlssY zqF!ktpr3r@HcesWE)oBXLEP&U?sl88iglOHZ;U+0dv7BgrhWcoVDR=lPXys0g7ZzH zfL1y5>vtCvizMZUr^CA3SKTSBs=5wa?6_qFY_6$a4jil%sP-gAB#R?T6nVD^=2CSY z<<4kMHJAf!vXS!GKg|MnP3)nYC;mtA?d2vD|KXO}<0TRdk>mKqK3yW?r8~+WdqzBX z)e4tf`YcWYr?krcSl-E!=uDMu#{n8p|91k`oBSlh9fM9A=!ap#_ZA z#`<~%P|U*1%#f?(c){|4}cI0SrxYC#tLp3D!$ljT|GR*&hM*;K(%*M zSWIPOu$mK$P6>ez*lO8AdiFRPR5k%_Q@eR&14vsfQp z(JqdP#L!MVSX(iMU730M)tpXajE@R!?xwj&WjsKpBcMFth01Sfz!HRaWmR8xe)Ou# ztwbf;JOA)WVYY4m7}#*kxeMs4R;+Uc&Q*OGr~Oe|2JzbY)w=ihAuS5JKT6wpQO|Ol zX)YyS3~+J@UfZIN@$BxUV;g3Yeq}$N8~34pKc7;RDMEbLGTOcT)25E+cQ`eHhKvt_ z6xIJosYDg2^Jn~1Qv^Qwu7)ssdC#{Dz6!TOy)L$~#)Z3&2l0w}D#o$F3#Gg0l%~mZ zr0ZzCka_0_H%f5sEJq_3zw-RcVJhz5gE;pxd4_6NKDK}Vpd1`OJYS-q*Y+dHBr_-C z9z%H-fcFAYqRnoJQL_wtv`}AfSw5*7Bl19UeSt!B$OIOJIa^%O0QkGa#5*}=o!G15 zTIW6g%y{q=?UjD)JUKZNC5{GIUxT{H1kf-DMp<9VIKF3Y(G9kYx-X8-TwesiQnnY$ zMB9eaQHjfq^fVgcl|`Mv!Ht;fy&MXf{o2)N?`W@JyMo5hRFrwgDLdo0az=A!w5W0sayaa$@muz(J0Q!xR#klBQUuQ{H;+ON4x z%9wc-$U(iZZ@2XU=A+2i!}!|X%Aik-5n~i|`aweune)n#3KBu{CePKH0Q!S$HXGFt z?*{S2>h?;sk11{$=--VD$GfthiE%rym$vam`k!^noZ8?gsEST$k3iZ7vBJ%KIofaQ3z0VLr|j1IyTU&>wz zpCsMI)tr=13&f+$KF?^ub6%L?XroTY*sac|a5NWJEr0|0sSi=WJ6H>z-LhwqL*|gN za0Ons;5%reVD`QNRE-DPF!GK`ur9bP^TG(7Ghmj%jfuf7i?(k7Y(mXGw!Ia2Mxlpx zM0TPIv`Kv}bTZ9?J@-&w*|Sx)3ev}LZFsf7N}U|sSvGW2FkwSP%6)*>S;p7tCQ35} z#H3#xSl~W>e~(d>N~;zkoRRx28stXg#TM-L6WiIX5h@}{NtM`^GfJga$9mllubmGH z!IL-3`FGSrx2ofv_pBpgWP9V#I{fehSA&w)kxHIQo@aE&iXe7RKUu^mplZ<)C-0A+ z-AIwl_VB!|jYIh|qA1F?e3Q^Kh2&7?hSQm*m{?Bk*XLM?Pm7@j5*9-~1RMf-H5^uA zWA|w&q-I=fW;Kc;^27x;2hGTya~b%-P2|#ZQ}!Y`9YDVbi9Zjlaa-nb-v@VShwl^= zsfE79T;9<&&@8Mtq%=+2G)=s1Ry8n!ujV<#KEB&AOV)eIG}DxcIWre)*qt z*(~kfhl6kB90EhIABg&gNTjy5h@dGEo-V7E=&SXGU1eUV(q!FwaG`Tsn~kyA!aNe} z$x0wGib+(2X{V=mS^~iTvydzwmkWm0zTmUN+9b#j5P9v4RCXL9X?d*LOIUAli=`c< zXEr*Wq?Sb%A6qNllYPZXoj^e?ZJ40;ez7>>DveQ5DahpQbgV#+Xu)Q> zkw)W}_cmTb`bwR`gPm5l$1ZxXI*#)HU7{R}KIbT8&O}8RK>;d*xbarw6C6GnQ;sWu7OsA-fXtUV zr??Q*Oce-PJ;<5*UY&QoG<)ZtkT(!16&a^FwC>*1CenI22 zH3l{!JUWV9ALMF@W(w`7FjkWHCd}eY@l`$AU8jN6Z;Ur|q~PE*MU6TH+p;rrW(4{iFafnwI1HJOs4PM91bf_f6aEg*#1Z})1c6lbC4gQyULE{8+5sY6cw{#>R)ODXT4s!812HM%}3P^Po(^%$ESyfhc%h7(R ztaw=jS79R4`Vt||q!PY-l%MqUiWnlx2W#d8+1_Jytlod{+}o#kkU_$2N$l0pRmeUI zzoN>`zMZdenD+BDg=B)7BatEJGL>wnR8?!u7#Z@IjEsSbpbl*?i&NQ$k;pbT_av1dVrri<(Z_gfj-@p_EsQGlwwv1Km(n#=&ew zg)<$)f{mGBHU|bA?^{66t72VRGu6>0@-@OS`|?_Wa0cyZCdmaCP2zGJe@9Kj3`)^! zgzvAgEwZv1+Mk7SpXoIBvLF^5+!=Uy;}OK>ZR-K56ciU{@8-zZY6=@(KI}X~Il2ux zb8Kw^QPGs%F4VlIv1bWXDj-OIphwC6gQjp)vyz{jefWW=!ckWYPD2d5z`W8jdSrl% zw_K^w{l*0ox@o-H&lKIG7+PGYkNjJ4ag%&r;=Tt-M9oYy=}3liS(dJwaa4kCJg9(A zRR6(IT*lj+vC3Lhfa)<3JBGcMlsW-8Hjhv)6Z-o+0(W_(_{IK^4pi@);g~ z`G++=&73VHEbgM)flK}P!U(czWi{G(WHnmH;)Qyh{+^&e)QoZ0oJE1xK<4eN>tvss zvLD6$!UgzW;kypAIMe+;26m{Sx7&H3Sq>Cr{?>;UK9AvEFrS(XG)e5%E}$8+!p%&y zT@dazFxQWjEZGR~4E7|1#8lJC^lyoR&0Sxz!oK2`QT#a}3=txGml3Y0(NVDfJ`by6 z!qbNl>Wx0F6e(7;rp;eAqk#GO!gQ?&dpaED1se6n)ebHabxUqDA>8>yDWb3M_I`rG zRlV`&k2u?9Qf|}FAe)A!)$F+srddR=oqv?>nq?NynJ<2I0Eii`GWR6izJC@vyt0Di zI^RWpM?Mw9Y8V?4csy(C3b2r3h|j^^Nz(Zn5Y~t9ydHZg09j8i1iNlZpjE>SDWsm;}+M8$V8Lt zw*uQ#+MX~HLnDCZQ(&{;IfSeF44a&GZ-HB=+b3>(dv>Jw(frf?q23+6I3O{bFa z>8s-7@jqx_bpDEGR+(1)H`O+$Z!MvUL2*rv$j8BWMZcp*8Q=1MrEJdsma?L{&rS(# zJ{NF-4yLd=_5yV>NpN#VnJ4kgv>YAeO zq(|6Pj4d49TdhOnu4TQmDZl|&HaM%xr{qpZ&iI`*Ap<`HiM=_IM+d{=2UFPpj_c5W62soT zzRB|r(4%&R{nd9n7k<9+xDLgBlvqWUqN-W)vum)1$MDx{g@C>r+NupwhSem~~EueuBFB+(nh&3RngcnGedrzp)s7|6aamixmy zfSng4nN(`@Q_I1@0b1u1>^5>}Hw)4PX+w%qAjM4s(vz(>Uj;?(I!CRtot1wkohpS` z1}`QY+_%vwGN$>%3F)9dZZ38XwZ0t~{=x%|7PQt^{cQ$!s4RByKeD3hOerjAo6mxJ zn{Io@w^oY78qaTPAz632YY(msgl#%0@_{y=Xd*I(X#Z14M0(_R_}3A<9f zb~*~u%+2m-@5qmot+J${L-eq)qZw!u3Htr>*lfUVAuro2?#YQ2)*hmwGbTVU!qrK z;(#e7;)GP`3HSt^(|;M8VE8i<-}?+Pf3RLVOKm({|>)nx_=1Ho*HI-RxFS-lPATDHcAu0=C+eaMX#a4*QqUUaR(l(th2mge7d_A( z%y@_C%nin)-4nR_3j*1aWTvmT!^1T3L?4@DXTx#Bg^1xLebeX8Us>J( z>ij)yGy$&ni#t(vdB(s~8^#zXh@mH?4TlfsYpxd8i*;*~5ExyNz0?lpW$oi=>3Xwf-6 zKvOcCyO<6hIXI>@VVy1V4h@>Sa>Wo(^$BG`3#iN9;gABquVJ#aYrk5_5ra~WQ2(wG6VKO91Ow`aU4wnnzw&Om z8?9bT>ES`i>nLCQ>8@5n{<=kQbqX0u-d|+JG^-V|tO~U%S866}avkaULzmpW9)p#u z$pJUq@x35nLbVKlG9xj}B)}t%1A4H#L*5pzMEjXgfp3m9zA!Fa33fQN>Y?40@YMAu zRB4$SI5aSLzfRvS|Bd^;lxSV6gp?pb` z;AENtghy(gmo{Nz5_s2!Q>H&d(aS+*-Ai|qQQ?s5+30Ehr+!Y4%U&7B-PRx?P3$?h z3N<7##EQ}Go{5^LCYlo}5>coA_fF52wT^pWF&PZY+#*^?@f*__s5_LYMG>DB1IZ(H z7XYg*nQYPC-bBiB4zg-6kYLMlq;D?k{?_WM+0RJP6Z}lLY)4ndVXTopersTFo_TFw z+0f)oZc@w9^Y67ePkj>(N`}0oDA4WA&x9421a&@Z-pmimJGB%WO(JZOL&Y0$mm~B5 zVZo;5a{Py2Y(-J5I$P5-@#+c<&G8Dq8+G`N%UZ={?!dpfH$3(AvDbV~OH1iyTQ`FW z)O4f+EDq$w@Vj#d_VdiR+u^%oUqod%=hh9bxDLGBg_eiw@hkDX1~izUecn(im-ayc z&G{E#XW$~#sX9G7(y2`fCwL+yRdOFCTA@CH*u2f9K<*Ur5_Qd8&^w2&O|p=#t+Ue3 ziMHHrRqF_KFl+)p9iGaxnzK0L66{Z-q)i0l79UlCD~uWZz7+4-DOUh-oOTs0cNknq3Pwc%*f2-tdibhN z))f_AUep-2xvg%^a3(v(I&>Q_Ygt#46{P&%3GM1eKK& z$sHaX^dFD1Ur=g%n0VOu;H8u9PcXi`$ShB@o=B~@N(QAQXzi!D90 zQTQcTq@4@r6afr|W=uOB-a@_a`!Jdi949R}M_gT_wUB6t40k$tW3K2-a}{p)EK5>z zHz6Y-?bK*4%9ea*fM@o-#OUqTUnJFN|GL-@QeSd(XPBz|)?Iu#W8y=7uwD;a#bqOR5^46^X z<>XLuFXKw*zdO5iDxD^ryYwy}e@eOO+v^`IBkLDdp(s;tG*#!xId!RQp6=ymzG*sI zV>Y$mW^oQyIXal@Z`HJOmg;#Qaery?dgWHu$_i;}S`JKdy=$O#o==*pUfHa|5$1V2ic>c(lp4E;f5f@wdese00OI>{c}jEg zK9~8#h06^T)g!cN`|?HokN%N}OXFvLn-W7l&+3|&-THs6vh)x`@&;x*>bCA zB7C%EmR5o*+F<$OUxwTN9F^aJLqP;Z1I@;bprBQa`3Hc)JJ;FGL=4H}B^UazcuV^Q z1OmOkC^*h907T7-r?q5h%=W!s~f0pE~~WNt|@p7WOT z<(t$Nwf>+-JY%#E5uIl5eivhuF~>cA*)mH0Ev2 ze}P!`=}D{M*!<;c9(72kn9$5&7qG1u+33#oYEJyG$FbRMY1|0o-(sLt_M7U6=4SCE zgT!W+|6M)lH*}8G6BUf)9Sqdt0*}w_dTYeJJ0x=i1zqp3j`g`L&r3dRX8hYc1TYTz zrYmVr&iFkB{sEGcbzp~kSCcyCc-vI|h;3fJN<*%nH^5kEj0nHDw{oQEbJ~HPK3a7` zx*iJK^((2(RC8R|OFnAtV3<$w<(pYaRi7?#tS&3pfOyy&&_U5&=%_u~tZU1=Yk)bE znx)OARP5Z|-J1*?8R6pm3tde64llc|sc&!QE7~tjBdzvs6(qI9V!JqAxOmH>*ltlQ4`=?A`b^m9U=JS!S2=VsGJ5b=iZP6ckcrZ+gpo zsSBK3dUZz073*`r|G5`ut{(fJ2$wZK;S+RtS^u-#%z9@sRBLpG0O8|vhX5L_V{V;* zjjemW2dPG^OgZ=NFQnBpFnlts_1$2VVDZ(M&sf!10nbnNah!})m~6BYk9l)`iBUOP z*{p0D)$i%w9f``%R7r45>(z3Xxso>cF|8g3m|@@0+T(S+Tx zrO8d!n!SuF7ouO|2W->gPoqgPi*BO3-x0?>Kj|p^qv}r*?=n*o7mcK5uu~ z+Dal*Q;wTI$+WB?U`dWydbMm1z6Q25N;oFzp)dW_ZNjWHGy;onF7%1t27Tj?lh&Gy zIhnuh0FPB>|GxmS|IhEhsX6ZtKgFDgCqufmL>j<=TX2KXuzp%a@+(rmpsI85aS}qh z&Yc;BG;G(|JUq*8K64W>e8nl;55R7^q*G;%>PAqeA5-WUkHJmH$OS!pc1&kYG2O%k zI#!kTWEEm|+SUG=kwVbj%u}dAbiGWq_V?qv+wsSjZ(Kz}6I~#9KfV^_c@ImMcjVnN zt}WYME<-a;Hl@WB6AqaRavN-(%)-y@@ZWWCes(gNsTA1l+OrjkZ1&vo*%gXaE|C>We z$47u>e1rAy8vv%@XhT=22r=EeJl&ckM~;$15JE31ZF#U8;4bU`rI$ti?FOg66?9x z^mnq*4zQmEfqY_XtV*>v4C<`;2`}p6yNTxe;G*qNskMxi#SJM_!mYxYP%-undJF*|h^Wq55V@uz!_y(XjR?sX3aS(ze~=cY-v6>Y(H`yRH_{D-O>IETamJZL zXOs~oA=s)tgMOmI|Dglxw-*^rrCmCmGeK9H>!$O|^dNN0Ezz?+D=#vEV3pq-=KRR6jIqP_;;psCl# zD3{Q8z2Z;mWJ17td1|cY_Jy0j6whXvUEKGFzw(r7H)7HWeQVxZM6PjV3X!8RuJSub zwMvZx1$UraRq%~=GlX34b92Q9~^&)5!Uu|7|wD{x} z^zUoh|E#8jcsU%kl{kI;Bd^FiI8=XH*9Z)A`LjzZ6!j|G!2&1aQm?N2{NDy~V^mo}d7{N&($ zp(#X@m{$rU(*PrGnv^ltJ49U-@*(ziF1=t$iO!S!csj$7Ia{k+8<-t7f-i$JNe|-x z)>RlXj=vNUFHLYIv}c-I2J2#pk|6UH4&>40BJFQIySYEgv))T4!ZsmwmNes%gC~`$ zS!S=*CkOx0n^`&GDd{f`Ia)A8j#xIfi?{5h#gCirs5#}K9YbF0D7EO2a>pzy zx8&M=QO*DX@4wcNLSW0Z^Sog<7(GBmgJbIP4Z;`x`E0};2-8wS0Fz4ss7om#)c3kXb{OeU>g_S(gs;9Fv$KphgK`y2t$&JutKveC%#1UQ-;tD^}_yW8vsA zbfan_*4MZHu7TK^i`>tO$tQJ|GcK*JCV4xOaXlvc0f!AJt%Vv^!|zC27LmOwb>6f3xc-OaLc*pMqT*q5=wIn|KXdzo}OKxLF zmF6>#W|s_SUpxQGu2q!LJ+`E`;Tr8zcXkR3g(hn4sO;j5(zv&R$3Q3k3`HU@8+x2q z@2oV+5LWOswi!acv5_)<)najYpU~EuX9V83RPM|A?Opp1HIM9#3fFx0ja?-RhWpaI zHj=i9kM4{VdQGkEtXJ*~8o#nbu9oW5R3+x=s`UPuWQo(z^mc*H>*N>o|E2?*gJ0Vu zlzfnoUv-)LY8Cf?cP1j*4RiI2%~Nydyxqc|NjBII=hR1AutpIYJa&gID;?|PP2PTO zCJop6g$|l~RAcll^xAZ^!1~`DFz9B5d#1a%#Pd4v+wuB0~}vZtO7e z+rTDBi)CtnV?7YHWZ1R7;;V2sBqf7xQBHR3mro{Uaq@3$oVIg!O~1&C<|h*|?f-Su zmhVJeELg(_BlKGrlrjJ#R0T)_wEE>>2*SFKhH^Jw$maB5A^|G?5RGfOL(m= zrDj*$QeMclAZJHO=bUgWl;Ek3_o}yB6xQbFl4eJTz_X+}(*? z?XhzwQ1x|(jf1^lFq zRM@Bqw0aB5HF-wlbTScH8HCeb?da*>b+oakE0W-{$$Haji)Q@%U<;6X=bim^%^T_5 zn_J1f9-2g_gB$5msG-Ye*rp=cxK#asrbD+wtwzgMd8vb zrLI12S2kTuu1t1?*Z0G>zUc(ToN_Mt7L~`ocI_qxHp}}(9w>>O(GSUS!Y6QgjlwI!Xbis5RqN#d9w{V}W?4 zj+7?>Dv`pphs>V05WR$Aib$Fe4VWDFYv9l^IMxkuZ|YkK+qY7sizCtl?@rqKOoYJh zPH-XNqY0Y)jg8KY%^#Tj-Ye1K8oc7IoG!FazWKqqVNXK)l6`)X+K1o9Hf{+y7T&Sp zKd25vjHapFT42D*5H=ok@3YHGFc|n+_*0}%#lKwD|Ac^A{xkZy{mktR`u-V@rIm}k z{=l~R#x%W&TU=vjmN|d)<@`?7uU+v`BvY=Fy6XW9tb8<|Z6L-y1m`pNcX@k)xb%ip z`#yJ(J*|E!6HS{>%Hz4EWd6t3`hX9TCFCuRSCi1bX%(?~#}sb7W+!R*;2nb9mu;oc zDD7GqW$q0Pe4fB~Ygsy?PO+-W6PpdF))VdGR9L4|U{+`^-q6YnN@_iNQo=T%V=Tv0 z^`LA0JJyn&WS@6Z@oGB*q*I=rJ5D9s_FsjoLQX=F&s9+Erc8r-|KJdniq|T{aZY$z z`1dW#wrhguyC)kvX$|FF3l}6BEd`z8+n%qg;O=AEH%VvA>7W1cBmhi^lFmzdUBxL2 zc?_pY-_zEB70RzIr)0Z2$d14DC)f@8!jf>^RjeENZi%zgNxaHFT>;A0UU;GSpM=W8 zo^Lg&UTM#sxd#q;tP=kcH+-)sO=w|(1@mVT_5 zn;?9fcIJWZlt#wN{JVWq{9Jl=(6@M#wHj9wox;QflV07n;q<1=#QZVASMr2<(E+|u zdzsRn2JS*a-$%jZEcLn^KZj%c1aR-4y#8eTc1`Rvm!5*kt4sd4u2d-#U(clNRHI)a zW6lxJ7L}`Sz>1&Q66mI0J;j+A#o~M+-f#a4?syt*#rdzv6@HrD6;}yzav? R!(u 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 bsrMl`kK4A7&QxUq;GeO<1^o|tq~QMnNH{%P literal 70327 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 TmD)BETkDjw#|iRrWX690V~md9 diff --git a/app/src/nightly/res/drawable/ic_wordmark_text_normal.png b/app/src/nightly/res/drawable/ic_wordmark_text_normal.png index 9298f730e3f6f23904424e86bce06baaf5d2c5e1..784f75acc19bf595dd197d996bc0bf7b23779fdb 100644 GIT binary patch literal 2244 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�xND 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 diff --git a/app/src/nightly/res/drawable/ic_wordmark_text_private.png b/app/src/nightly/res/drawable/ic_wordmark_text_private.png index 58afcc581f2af7e944a3bf9b88be15758437eb44..7cae7585463c6f95d5b29c11a256a5fd327bd9a6 100644 GIT binary patch literal 2169 zcmbW3`6JU01IOoVo79pc*6=aMTurDiQuN70uDNpd%~i(ScO<@Sa>aPa*%-xg%#ny3 zIqDH&u9R5cCN*=5$I%y$U!H&9dH?W!zurH*e}AXoEw2m1rQi?Ne%dyNLpX*-A{3jd@nZE#b} zsw$-H{k7`xut(8fDb#>byWGl#akan`VP-C;=yM~np|nA5GrC~T=ZY$(opdChNhshV z)Nd7M+^;_CfhyJ5N6`Y5jqKwIdoJMC7s|dWxDmvyvf%8Kzprm@VM|uAUfevOqjdB@ zbrmC@Nub}Zto4llLySG_;%k>1R<_phnj(euDYQ|v@6!6ta!o!xXSNcW9sP{b{91Cd zTC<)K`s`fCDlXXCJ{OHZuEHT}_)p(f5Vl?v9EmJreukfJ@*2%M4R}p5h7VK z1IM`<0MAp{S>k%l;Xg1%axy12rlA!c#}uOQbryqMy)27w}Sh1_M$!<30HuA(sfMNEy{K2af4 zS#$my)@A-ab-wU>8Vds1oKrwe24iWiNmpq)RnE>TIX^t@=fS9JpzCF;8yU zUE;N;&7`DyWc1Dc(7@yAf7mjSKb^b-O+!0M)}HxLy^2-_sJL)$K7pc8V00=vAicpA zLq1={VO-+&UCq8WqrDUsp)Os~S!0lUI4-RE8hXPTIaL=G-p-u&j!c-vkfLWw3IgF| zLW+jkokzyPy|pn!CsA4=Sx{lD-#NV~QC+mnPb8jdlS&uWMW-@HK_st~cGhymYAOi| z;VBcWXB)Sz0<<9^!rHwTH;QG`(A<--^KSQ6k+XHWjbD( zu{D6Gf}x9se_^*`DZV?pJ0G8kEg$}p1?J0I7JrN%BERDWj&(}<8A-l0v@G|9Iyoi{ zc*03iL0hC;x)_>4hfYdpX2Qw5w052UU|_>Okvl83o%kp_j0E&n>P>w|S6M9#XhNsW z_EmwMhW+Qb;sbZCm%hbu;$wbK!AEUDC(&$MLJPuYPlHC|s3DC|J^Q}D^?*dVJmIfhdnGgLSlaOnMZUjQVI)V$aA{w<9zsYK zHI+jvL`a7RnnKRYh{1x2Iidq zxJVmnaa}_^uWS!Yz2BYJ4a)MI*%GW%^3Zcl z-sZxxO31VNN;CEu@337~tFNIrBrA;dugJki)Ae#P`}#$ODtkDS4voFIR4Bj?a=su zW{b*}xu0=Q_|AMlx^@v%_6HmuS8H#wQN}4`Xq0k7ZsJB#3rs0{`JXx@(j1Ad>Zp>} zZj}T6;nOWVaoXdhTBW)91pqZjT085lgEyJq3V!NqP^+ZaoQ2?JllaIU9=*FB@>Lk^ zR**I{UVeq7v1x9H(VljhE*eso6ncKQ6^V-TxD24uNC`Xp&?y!vNfXH6!!{x?A6+Ym zaEn%>*4u*I89 z#xddXM{@~kM4f`yj{X-3c>O&YwZ6&E%52SB7Rj%=8n6=^xE2PYmpB!Rg_# zg9OC(!m%x0fYlOD_HY*G@$S^BpLO2{#5b^~*uQEL!GSVq&p|P+C;3$hL2V*l6_&Sa zCC+w{k?l)LX)Z}D&y=v~MFC=74<8+Vs2-6>g~4juUOxXERY*SI0VV-pw081GguoCi z)7Aj%_4u9)aKRAR^)nfB4lPGc)WP1jXW`B9gv0g9iw9`1su$FsSD7o{b0AGXNJc(_ znLH0V@#ZGUo;5qmTUKHlw^IgVUG?7!P%oF?C3J;NFR_38azlMme8^1GG#EROvOUQ$ YIH1m?x#}^@j&1 literal 12389 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 Wo(~~Hul{*XfV{MdROKg=(EkH_S!K!q diff --git a/app/src/release/res/drawable-hdpi/ic_logo_wordmark_normal.png b/app/src/release/res/drawable-hdpi/ic_logo_wordmark_normal.png index 4cb02fda468d4bc57acb137446d0bcb5e83a6c86..ad040413cd5dfdeb886c46e0125176279e52ea88 100644 GIT binary patch literal 15546 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 literal 16641 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 diff --git a/app/src/release/res/drawable-hdpi/ic_logo_wordmark_private.png b/app/src/release/res/drawable-hdpi/ic_logo_wordmark_private.png index 037e08be6e7cf35a2f17cd280601503f262b8bac..af4196b6e86f5d29ed9b5dbc15ef85e58fc1591e 100644 GIT binary patch literal 14760 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 literal 16642 zcmXY3V{~OrvyN@s6HIK|b|$tbwr$(CZ9AFRnAqltc{A^Kd-dwIfAp^Es^_Wd-gSDN za0NMWco-ZQARr)kNeK}pARv&)?`JnCi0?7Ou`L`3NZ^m8h@gra@Wm!*9F6qf&|8Yi zj?z-Im|APV8-{-(fbv^8CUvOsbsH{B3Vg~q<_$X>DIV1Uy zI{In0T^z>3gQs`j#AAYvFe4))#|OJ>=)Rt8K8}yl!bQ@~__|H_-Aajwh>-P1y&yf4 zS0;*iM74aFMp zsy8-SQ;4wd7R8<%FDk>h!IR~&{boJ`E_RJ_jAgS0Z#Ba4{Z^9F_}T&?kvwYyF@z=e z-q-}DeO^mK;YrIeAjBE3`k!Qc;aF+Mkk%r#&3r)7THoOcP@(!UK+1%CBn6n{yY2fo zQf!5SWMxY06{pmO7efb2xuWkow{gOz4RJ{PQ&AD%DD!;8T4So@3(staFnOX;I}@e0 zg{F)3|wM9xkofG^Y3_j96FkSqPDl79@-!LAh+Qp}#j`ZOrt`s^QP zJJaH(GCaAIA^A7lFD`(>W-2Va)G{=l{!+qakbW&YzlLD`1M?JDdnCbQ8}gRd1wFD3 zoDi-4Y6jBMcIeF!-{O!;=IL$%H`0QtIsJp| z56YLcyyxC_6{8mv=o%W_Se+lb*pCmJC%^OlzpgmYG-o&{(PjJCFW&XflX*(^_o_Di zZ?vHQEFqs>p~?ANEv{mGGi#efj&;|lU#zG^`I=e&Q^mpZNPtHw_O`oGALCq|kx;S% zRyFqTrGy`ksoA&BpjAw7)kB3FEA{3ja9ydarTpU=$~ExnBrQ2zgbJ&QcqZnPUiOqx zxv5lNA(-cU84y@i@OvMy|7gb4V_|mtJbGpJngxI3_cAa?hf&v80gB6LeYPZ%>qGbP z(44-)!>J!$Mn-taOO~=>rg3fS5`Ln<#Q3;nkfo9Wo03%;=>Dx#FCgsU35IQ@1$K`4k=K#;OY9uB%_A0EBqc(8cWjYSjJn=g8QBUL zSlb9}>sr4ADIhS|z}NjA)+Rc&Cz?|;B9J5-)Tmhz`sA*U3sSju zW{4stL~sEdt?dVe%SEyK{wI9v8PSJjkr+(3a)SspPq)$N{7uP2uK0X6du+GMn z=HFAh(8Ph}0w1-8a&$8KHmx(<){=J+_V>=2lo}x-`x@(oD`Lh2A&f&RQ*k>fDj(?S zFJSbxBG(84tY&)vaAEd8g8~4qK0)A9F1{y!jFVHT51-ZOe)!YE3zK)gu&Qdio7 zB~RHni2kSoo_<28u5^?LEW4qn4J4QY)|4X@2Kj?00puUdHzEURL zOq?f?U&`#r@Qtm>XT0@*v=vzeKXe(g72 ztJiki8X?ZFIN3uo-W6Ujpxi!>BgTKGb~ggq9&ilaa5pB@gm6z_nhK}YyFK9rr>6rH zUh*a zDHP~TRRp|>APXpC7t)}!xwXT>gTXXmP+?gDCx#3}HH6csuJFLa-2=s<3}(CLw3(Z` zebjcn-o^aybUj9ZjaX7 zYD;O55p64r9Nowo@%I%_%%OSb8Yf=xO?;eaBsSd^r|7Z#?N7ocg=HjSiuv&br^%Dj z$+~Ji(yBSCm0g93`7nXj8&9d;ZAa9E$8)|HqW0?24wjV-(@*^!010%}BOq!L%}rfF zGgHTr%YK)-8xliH>dzk9WRos84@#V$9H4D2{#>N?8clo%BaQE3_35|eojSoDcpQk| z&Sm7ib@OUS<2Rn$lbJ~@U6DY|<^+sfgNGpj#2p68SioRl{14IPUayCxb37SaFSjAY z*{xQjloQgpMk$p}fmL{^dzK?y9lyz0jA&$B!!cLex!!%@@m_1LwLg5O)EKc=sa{T! z#kCf6J3R1vxT#&OcEN!XrcaIExh)RTbXKCJ?TkyGAew};x?wSPfEjz*@yVafq~Szk zv)8sZ73_>vC{%WUciL@{sy{t zzG4$spXH^5tcr?yGJ@(AdR`VHt&$BmW7f1IdvKAZRPy5SXZ?>~KDUDhIe(F=JRP`> z4jQ2X7jd9TV-%gkHJ_Q>GV7y{21A7CG|?3vDXwtQt4)Wr8_*1qvv3(kPco5sv$4#O+{!5E^6DQp9fp9fJ`j?UzHu zo98L+KxbK!dDL8@jI^RTZvt6#T9f5*C#5F$6?M%b`r^o!_xybGuoAjsMMC~jW%{+` zxSt+8_3~Y=9wiuyLJa%%HroJsl`6&nX_uj3w7FflxvREsZ-O-$(K2U|ul#G7! zk;FqPBl^P^Ub45?vv@for@yOcFI%nDeCzzkvOYs@uo(Zmo(~7oM3JuaeBYF z-V>Zq_is%Zm)N}6)M#xp(%xlWjR(z(M>512qmtnF`=zO+r^Hwc;G9_%Sx72bMcH+V z7L`-fl8aD+(G;~i!i1>po)~p+s}UJ)E^uy-X4J)5ql&O3!~^aH^Ju5J=jCS;blK71 z=N5lZ933F+wGZlz^I9Cq?;%aNe~z|LwcGqSIqv)80P_kU%N&t?ZwWCS-k;i=?6E$V zLWO4%8!7nf?IfvbEGl+zk4{PjZ8TF&!?UNNRQ++qC$>Ts5wBv1_8>wl7saZUqa{gL zX#{Qvv$Fcg=c40<;Q6Uf_4aNK?V0@medKkI*TVfMw7kB{hX!;QbX!aK#j#JCe)cpv zbfqjqAimvfQ$dOKbRy;F~Yt%p*%UAm+ zDv$jaF(oX_i($P2wib}PjiOT@eaBB;nN6ud+5s1 z72pVP!^&MZo$}OpP2mePPQqx?G%|^d%`KFpQQCr4MaxCq*Yaw)J?q%_T4m$XR-8l4 z@v4^3*y$}*jQZJ;Y_nsZf&S%KuC|L2a*py@oU8o4wM#y*pE#Un@@$lr+;m_iDTh_) zC|bePCTUpYIxqfvj%%hSvZrrgP%h8*U>G}(zcB?VG@mL|sT>oU_-Tlbt;3?~7MZSKQ4$<*T)i%-Ax0($3#iu;T)yg?$ zY!_2C9o2X?L4*CFO?FJw=(!$iczDE+;$wtdroE9K_0| zP6_Iy!S9x$u$Sym;a+La?2h41%Rcsw&#SIAL>v6+y@aQBBy!jtm85bd+VB-W_bF%d zeqrXe^Yj*`h{hSJrbN4M<+~w!f8j_7uGt?)go{6#n-GH|i%IKv*Ein4n%+dh-a>;` zsrtPoDHEEJmBtXrEALG0^<^0ygE5OKH_NlFtd$BkQ(Jk$wp62Y{jK{w71W||*(lU3 z{QEEGeZi)aqQ?rE5Q}xxC%}Jm{UiB9UUx_i&?`_;om;T1x==PmRAEP#@DrmPODcYZ zL`>=E>Se-UNS3k|qW0s}}zSQf^2!5zQ5P{-}CB{1@ zh$KF??*-EZrWUJkr@PMf>2J-d0@^Iw}gEW=!`Iuv`&k^S74( zv#`FZMP_G@JX)^K3#AG<9}A=F7uqj!?ax~0O@zP<^x(JT;`3?2{xuu;TIGg4X^W@* z@GWKoEA>o(6V6H>MKepkq*=&vL!h}Hd0`#}n8h?sp3^vTP4G-Jjp`n8#Bx3|baI<_ z7FVchZP#DTjWz#}rghyqdG)GMlB6wP3dp^pErTx#DpG|Zb4k8oXxIRF@!YrQ4U!VG z_`E-}K)AH-+p+Y=TX^WYGcdB;RhB#Rer>hx$@f_N1Q9C)?*3Co+sUI}o9fqxhLmC= z2`=%(@Ke~fASprx*G-u+sp1o&f)g_O$O=1yjr@UT&?dyve$B$hmYThQiZSPUxXHdj z!^Xkp_u_}T37;vmmY0A`#PZTaiv2(|lxvJBPmd$r_?n*?)1V7EpPIjYL{5)&!Y+Rmc*{i_#210si(9~r5_dUdGj+>3aM=_dH_+K)EkXN_)k4}4HlogpC zGReHjFTa4aH6U!NfSYYNNtWPJC2^%Si>)xv%a=jbJ+@N~cWnuTkHvJ@yuy`9e?sB} z5RC@28NlH8RY`~5-M-Fz;Nx-LQU~m$$;wrQSb}blpwe^lHOaJ3lACz4)HQ-SW^czr z4F5sjzA;ZWv;81dOS-OQ^l$HmmHQY+er@6CX-dE>E=)DfVUH0V%^bMRGP;`%%AkF2 z%O5ooW(PxCl*Wo}OW)<-Zvi*Q+l_A5y|Mq<>o5JXerQ%TY97)1jaR$+Gpk$7x%wnl z1OM8>hyYIw@79P=*&x-SILD03MkePdeeclzDh-a0aK80tnhE>&p<~*d zVgFrR*Y@BHWJz%%GlXgZUMGCZ70o+j*p5Eqj5PT_4IeOWZoXxn{@u>I)+!D1BTXJr zGU@DdUh>X%C)UUI7u#OM2s}=Vk3>u+lo`a9a-@@u()i0JNxEWQJ5Rkp@{{oH1#5L`s_4ZdNoYWfP)V?J*=d+(!Pg*&W#{hnUc$ zjph9==%^hvhAoMgx~gNs*wxcc`F6yQwjYQyRr{_MzBKI5Cv%*ua1XrLGsz|U6H>@4 zJN7kZT!Cg5HKWn~VnWf$bR*h1oT$VE_ zn`WH&koj95Ae7$ndskghfj=I7v0cy1)9E^M%)SarFZeH2jcZX5U4_F#?79Du@1J9z za#YIkB=?64B;wh*#4(m`87PprGlH8wx}AJ(zgAwLE+eqEYk!5O;12%zk0((NK)+qO z0^&BR+%@FmHAo1L_WQ%Wy3ef-Sda*t5A+YN3$Y{=1k?v?jhedn&j)!g^xaq{%|6n- zJBSJB02C;LG)>;9Nkp(Y50$3!MWd3g8JOUCm9Ub7b14?D!s1K#!0KFaM7&zDWJ z3u0!TqqAnad$=ewznF#hkGJgz@T6e8-L^!ndy$rwQyiWwa4cG+WodO9OWb{}XI(S= z3dAf)xCXl|;-3m;K_*P+AK7mzu1+A6u+8{0p}`>M>THbxBu|Z}V3E}HS6|x5%S}(w zX+dMu!VL14^#Xa4m?-7dGQZ^_Z&ROE{JcTqZ4d#`{t~S9viQZ)zHd}*_oaF{C_W`n z(en#qcgDCV=0kmMFSh*9^gU1gNemn&l;--aa<&H~r3-gTvsI23Lvo7xFxNQ>l(Nau z=m)Avwn5!3KA>VDZc-NLo(ZGdk9Hin{mcxOPe}#o^*)EA715e`?cvoL3*eM#y=1=o zS-R`J&zRQ89_P|vayLXy zl(VeCZd($wZbggZA&zHKD%yO++pIKKenN+CAiS-EbVok$y7lE$3IotQszYBNF#I5t z8HQvN64|8k(olmC)HDaO=9P1c@0FOTi{(DNsS$BUbwp2KDt=t*M{##-tjh)nxkGG~0=J7v^9-693jjq6I&r%DGAgX;Ei6~&W*lM^05;9N_mVdGNh=U1XLtHP z_IeY4`)rvwx6d@H;GG|fJrRM;*=-9o{{jQ<33lgLjB29W5&13X|PI~IF+)EnAXjw_ot30qwuqU6>n;W&@*~P z*(xklwOb!ijTahiLv3QWKf4)t{zneAwr`1jJ>o5(4oE0{OVs22PS6BFJ!`71nhKWk zug~#qQEL2F6LRS5NTCZoMa=jXjkc^C;!N9?w8N@}_^MeeS4`aryvt)rXu1iEC+|oM z! zMm`g6=VSkiJh;JJjUXX|1Q01Ys9`}=1vp61Ay->hK2D(UcZO?l$MDEc*P5(c9S262 zhO=Nn`AC%wuNy7I#(`T@wvnUt;UhM~>Nb9P7Xo&k{_6#mbtLKmnH-TX~aDp-$$sek7K=n?dN9Oq1yKi?Dw-7Z+f50W78WW{yQzV z$8>hV0fW4-AJY~)e?5W zyFF$Nzm?YE2ki!JW_VA^4hHqCaXW(L_H5mdyi0?_ceWp0;Wd7oYVXqFo|`9GPeDIk za4``gK|5;^1w3w>NExL5yi^O8JzW58b;Ekt(@$DXT}cN0kms=EcV$2NI?3II^tnI2 zwcdV$e4f*LwRm6F`(*zf-VwW=gmZ%@HyM>Gh0%Gzu_UyS5h{^abZ+3ojFW*`^cpItm zik=T%m<#5OVb*Oh7yw9`6{4EkdR(}YG-|Kc0t9TF65nJOK#CKGL-VAYF_Ixm0NqKe z*PWNLT~(xi1pxfH>v_D?mCO;(#ZLf^Q>e8wXsMEz;{pr$G*3!j^C)-_5lA zXgVQhC^Nq^0^sW=+3j#V8!Aam9NYj$L?3Hhyv*hdyCfcDW(cnsDnx&D9p;`TV1g1j zAV|olkEd6Y#rnBamgV{dk$?+PvA$%~CO1g444gzyaG4Ab4H6K#@)Pgrmq;gGO+DE?Zbs6`8EZXANUcEwT#V16TNBOkhYEE536*qN>+q#|-;ZBVuU^ahf2`T1Y{HyZnPAlD1zbvY zI=UKp1BcDdzOE^$%GC8`Qgo_;=@I%o`$OGLc5?53@&Sgll~mT|F}lg%#Ss@(fDJl+Kw0W6 zxd`xSz&R~^n`Z42LGTpL=QnJh^JcMfFN0{{{^yFy2|+a0tm}x}D&JtjHHW6Z((RAK zWin{gBW7sB+iCXd-c3mLmOBPKpT=8YJ5QKQa2(T2;`wG5fl=A^OJMEr)7NC{-r=Lq zvq;xfZY>A+uHuEIHuPbt0bH=5EDgQPyJlK04??Y0hzQ&nR= z4G8^G`8MgGJd>@`<9buSUAcxv+c_*Tw;v`N8Wl9YD=03tdxnyTOScKavo$$!YSY)e zdb6K008^{R3Vu<|8ia&R>w58HgT|l`8;zO4wJdsfRGzDr>kff9T6_#z0Aeb~-C~;w zR+nzbpBdY`^_Zl48V5vS*P5%X0!U<;L;z2UMv{{6TrX!3;aB-rbbIfoA=sTfW3d?{ z)FCb*9|&*^vW!EI-_XO1J)hvb5sp+)=Bb8p2VFOE2tpg2U_6OP$m{GdDOH>~ib+rx zaIQWjZz0oOjJ=_8|R6M4dTs;oL>;pIu&g!a{d)Pu1vmVso2T>u|3u^!&R&1R_E> zU<;RJW}LrfdE1v9)#21az?;yK9G2rusN9P@&;auUUs)xm3@)8^XZp&mt4hMOZ?i{~6u& zMCNm?%)5Mhcjd^bf4lX_u6qx6Ih_4 z6pN>`GsbUSAGFFb%A0~2~yj8;_pbQ z54ETaPL`-Wp+f2U(jdYR@+eDd;RHhReD`As{RP3oaFR4IyCXWNr-@~l;NgJd=R*Ly zqr_(qD&lqRjF+e^FNE(K9dJ?0j6?xcrRnqMSjG7$2FEo55=CANss(s5RMq-I<)FWy z!W`TNo0jKcqz>|>RZC`7Vw?QNe^PHVb0shiEeV*kK!_)LBiNhpuHv?L%-Rz=wp(n< zd8Bz&MD?JHuKW@ohN97G-oNLVR$0-vQ72<)Ik)ILQ71%>$&;vdXZW?}kuXDlZT2A| z3xp7ksLxIz^uKZs^POWo`^nns>Q%0?~i#gb=&`hoob-Twf7hTc@*w`;=4WX!B^I%S5x6 z0nZb2O;lE&Ea)XZRRMJi%9kb<5G2+vL&TuaXWB$3M>e{Hy3#C2r=j?;`Dp-1Vh!U!!hc00{QI6% zvxa7?wCa*Kh$n3_ZmIu?b~%gE=HX9Fb97JlS9p+_b3`_G95-MZIA)=Xo-(9DK8Pz3 zm$o&T?AqGR5`DRwu@+}j2m~vq^ z656@|Et20D3y^XnpH~445b9VR3xN70NJ#RmTGjcEE;xf;686ydNlAaM835oM_2x=$ z6h5<8NqMxZefk5tzUtC4G!49-xZH4o)Y|svnngo``sBT(??E2g&ufv`%9{h-?ec-W zv{l#}I#O(DYoWazv|}({H6dq^4DSd;^sL<=E!o_Y)RoQ}4H6E3Qy6^ApaSw~+`bG9 zNFrB=@QB56_!Q&(k)N1**wO9-96>Gz9Y?;%`$RWiDB;`@kcP4K{h{!E++d9h~C zd(?$w2|`O)=-@?5r4aLB%zofcD$daakDOB2|6x%Fq=}oxHV5-a9(O zipHDKZ6JNtVEy*V9h5iGic$MUiXFmkjciA)-ZWUijtIoAyY>58LaS7s0=I|5--z=1 zv`zIso}Dgi_kpFK9zoC%r=JVYML)=lF=U8{Zr>|_cqK7NSjrLGW{`qGX+sP|SCsPg z^NlYkzrPtCk!1Mv7ieKS8yKnZEYRWyJ&4%osA7O2k&*}bArqMBG<)Q~n$r0pk{2Yb zn;ol21q_D!|lz*+Mq)UpfGQNqpfg@w}-gD#=prvyF& zg!uO3@obJd8qWRIACJiS#<5d5ypWju*aU*%=~pk#Sd`r>Hy@&%1u*T}lF)i;Sbl7Vec4zAavyydpV~<0hv~Lz-(n1AAM)*A1Y?Kwyo9AIj`o1 z>rUlGlMO3WdQ+ph;mQu;1?!$Yra#=rPRYKiPxX$s+rF-oP;OQg*nORF1`d!AAZZBB zww_Sf3N7r2Bz^LMvh`xHJSpG>MFlk?A(P32<;n-anvP7}_2R_0<6@+Tf=Z*INMnLW zAM1$S=vmedSx0ynS?NVp54`#5p)$}pX3;G)W4P1bdHtiTzxh6n8CanuWcgQ!21GoJ z?Lm*uHZF__RjMl6K28e_Qrd`+&Jldw+~~HB&sXFXyYe!v6NKpU?zo=(EnaFi29VN{ zo>Q%6{jAyX?jM4_caD|co3UM6q7^y5xN3Ph7lKe7#AgDuP!QEXUmJ2{!%1h_ z(4sec_ubNI2#ckPZ3&$6Qr=^pIq+O2=oo5u)r&|>1ltO?TjS1d)$X|Ru1_&tzC zGrzJJu{th{e|@|aw6(t&tOWT)!k$-i8|rKOCWq5Z=xundynFZ@m>9nw42V!+$Q|f- zDD(szF=I$?3?-_rIB7{bjGu9ipTuySgn|i_%SED(o*OE3#BT{V)ZzEvgA6d|c_*7L zw9r9}97+w7Rmc+VR-K1ZAyvQLV?%_}$4!!(ncP>QWZoy+;3ynD64)~)Vw^9qGPcN1VrH4*qt+9hP@2c#7%U?7GJB3u^`@ zT6>Pi76dCo{)xSixQ(A9&_bg7!0Ei_%$q{@&i=HW7rDI40t$B8{w?j92gh&sHQNV! ztiNwxPK*T~1D6Ic&{5yFL<2>LZ5?e5$IZGTJy*n?Us`k5hiY~+GeM1zKuO+-l#u*M zJ4`@uqJxI&c%TYYr2S-o$N{(S&h?W+y5gWak^JZO7dL89VJKMX<2+j8kk!0c9QSZt zuc|^hQ;8DwH0GCRH)R4d1wf-a>_Yi6hb`k9gDGI-TSfFpFtWe0_^7)rH3mx8Pjs@T z8CxE)RK;C7hpdk)O3hDsTCvY~zH==pPw({K8h^gB6&E^jR;WzbTY&Qf?1Z)fQfg1O zi=4WZMvOci<&P%(M!#1PL@`Y+MD8eA&FNrR@T^+ql=FPrmhId+H@!DpJ`mPA7?G{v zrQe=li|uYGiMkSD4(n!ROE`<$+abi8{a;=Oq4Aa@K!O62^o4{{LdIZGVtqv4KXKj= zksBMYa$?t*Qk#SBd~)aXQFQIjkRoXVpn{domMnl4uY7?m%~`Q+5;|$YvxB4AU z?TtGi(sVjM%_x(~$0Ha*XeU~wy%p*`LJ$j>s;5E~sLgmqK}sK7bv)pg^<+HSWBa!R zT^r?v4pJL_1=h8==^h+=IDbrG)NA)6acJrDmpRW-+VT`qxb}a8Y7exE`k2a{1B)$_ zg-T(-kBIq-iD4lIuM1}V^5PBF(^SXA6q3n1;g!FPw5WGAI`~GnpBwwdG#{-yBH)1y z9lhCv3T&iKo)>S?*Ab2T;wSJ&Z3#|?VsO>~=cyJ7lyZl9#22Qy4=7s`EHWP|=AJ2H z5m8wlH2Sx~Aed+XkrzX5N<>F^W#DFr0N9XQ&z`N{?`%w=d@EHo^~%XV4TACPJ8HRo zcf}0?@!Ot^zy6sTC~mrkaqc^JkkXmzSsvTrXnEV!cAyS#IL&l6!j#H=V)r3Q{Sz&_ z*C4X{HuRF4*2bWl0%LZ z(>`FL;MxGW>?4i|M#ovrWyhm(cSoa1Aa8Sm@?iMokhrXOHMG$7T{)`vp;n;L4cmKc zwuywLAQLfI4hXd*Xg~o3&zT}?6p3YGkS7&A+JNJe*^T16)Mr(|w<_f?5@5iD$GZXi zxCKT`FZErpP(GziI)wS8=00S?Wy(?$JZ=^KXS_M(g`&{dZ)mh)_A_nCZO?o^j|gQt zL@}H5`tJ}PwfR!~BOn8MSYK*g@u;gNG=S!62h9eoTK zFk(!fTYpa*l-{zpc@t8i;h#R7{mMH5ioCGBEyaq^g&d)#U&;^62nJZ$QR9X zd5cV__eN)Nx#*-M{jFmKf8o) zh8TD*l}T9eThn6v<4(nL2tpku zpu8-ENTPY8d@#{8N}Rf~VA6W$+!@hYM3d32VZG9_=$;{1XENs(X=k4f@Ops(fh1kd3y;#R{nv275+0bSJ0~z9T%Zay%M8zE@Lnlj1X-U2 z*U8mI`2CDwyK}L3U;{OK9g(<3{J2$Le`=uvvxV7joo&C|ySi^}LehT6tC@ge$l-!s zl(5f*#cP3#%ljE9acR`dx*H$@3LYFO2c0Q>51lBjLOo2AWdUM$>Im{ine1(aT^iH7 z%XOkx*T`4Co{?LXsCTB?vu!hp2#DDZ=k$;KL^(&c?$p_VNQL;>W4Ct>IXUHX1U^qC z#ifC2lIt0?ZraD|?pp``4*-x^E%0suJd%TE$Bo1pJKl}jPj-_i!3$!dpp&v)2`d+s4?HG0z$^0>o? z82ZqFgJGboZ11sconw?2Sa%(~?Uc1Wil;5p;>XT#ZiC)kuLN=MkFwoTwzkQu#QNBN zLL3eletdn(qicU*6oQz`4-yG{Ok>z|en`PZQKDiD-)FPeHys0ITzi8NsuT2MMEgl_ zES@i*EjLeS4X+TqJ4ao4o56+rghvs+)Py~h9+M6*M8T2N)Gh^+hK`ilJrci$S-|0; z*WB87s3;+^(dl&P!K8(uuB>Vp|M_p|+F8UTmUWf?_-GY^*9GUHL|xLe>UP6jR&xQ` zZIZ0Eg(``eCs2m`bC|Oo9!S_7qwJb9cnX>6wqH|>_aTfGV7}pJvTX$tU&k}-TLET}PuiQOhDZdbT?1NGd{dse&z{pw(}eGT zbDcJz>$pPHfU-TiwJZH3szK8I$awvvRQhDr+|O)8(5D1c;$%wDe=OI%%=Bs5gK@;{ zfA_KHbN(pu>Cb~q8>~Xs!~mVap)ILg<|kbcMzBa{5^W=(s+oFy^{Q*t!ni2wQ^tg- zFKqt4;yo~WIC%$`u4#f;7rn#jWrPW?o$zJpjqL1FTFyRyJ1pv1gxM)#*dQ1j6-l#p^C?`nK^XpS_c&hKK z4nmi!eXAaK`_${7DJC+uTqZWiUP{=Ykyl5^(Fa!Hx-M`_dr4R_Sp8F-CVh7ZC?FDu zOOOVgh3LZ+7BKRBJNfe9v7%Iu+Bjs%Bk^BqSlN2ws&O)A#KhHP5I8 z7Yk>-)i+;U)4s&v;xu5HSbg2@oRf(wkC57+$2pGc0@B1I{-1Qq7o6I17k()jq=oV{ zB1+8Z8U}(#h6Tzu>QmO5AFK@Z6-!;yU%aO!h@C|SZNCw zVAlG2o(&cF^c(xET)n)+=spxkL9g?Lp5Hp724TB~w%F1loY9H&u4>*wSTkyFcj)P% zxGcBq$aUg-L$M*}YMves)T01%_v|HolosYY9m%vNpl z{m0%dKq<-qrqJxY#|m6a>pBfBcmoZPP(@NQcmSaQ?+&AH)+6MAzOuR%R4n8&!nFAL zxkzHOM2AluJv0myH+?SAwz`<8f+;`Pb0bpdm$$?b7GRnj20B{ozc5fBBql$WD-ok3b1B(!N!b34&sld=eK=xC9k&y zkp(LYVKkf4mg+QUkAl;r(6{ z2aizEhbx@mb;;olKY+>i;Jcbzg#=&gF%K+$${d@T{V(#_-%8j$rN`D`JMYLbeM-J^ zOM3~boNrKv>zcFYETOaIfF($vsHP~Q)3mR{_a5~4g$J7*y=&;2bJ~9wPW@=f;SVM$ zqeNj*Lj@BR=|iJYU*`T&D;SJKZO8u4lJg4FUu~MQo`fVNZ1Lq#<2Jdn=fSY}blMjN zlxb?trWfEc2)q_iybq`&N1uIJbS@p{zdQ}g|7b2ilQweM!WByMw&ZYzV?-RFy8iY^ zP^Vc@~}7uzgu3HJ23sn zsE(RU?}dF^_bEhreuvv%E;+maY=tUVWJ%Eds444WsPQ``q8gUq5f8-qnSYPkyJ&b*f)EwR^^WW|7`f+(Dy0%RC%=obL1Xdb3+38{bNx!OA5bm9NaJ$RS z@x?mjh5X}uKZF&~Fh4bgLEp7e%zvWtYud54^vC0neU|(Rn2@l}z2;iY-NF)^Sx?!k z7;L_;eLCRF8}r2la|)e`Y1MgS;BK>mp*-dHg*DHl8eQ+y|3|!SGShn*;-Q$`mHgJ8 zhSd!cn9NU53)&KAlj5DlY;X-VAP7S!vTkIGM-R}|ZTWM9-Uln72YbM^5c>y&lQ+Ed zF>XDPwugIm{|Hk>gv=zG2>2A*nlsndrJ%^{m0jAV`|Xq;MSJl7_6pM5jd29Y*H;`opJ*9tE1<~tBEn{SK(o{4 zr8ISx?JwApWKYHG%HpoEu>72u;MBkXlCCW~eiTr)i*j6YyZvoO+%KShBIUty zVt4uuGnjq#8D}0rbeOhT4?{wfF7vj0Hr>Abdc^Iiz$5pc=SV+XU)^E?V81@Ue18p0 zLuO);l}6TUI*+Tv#uoTDqZ@cnnK$3Plt$lV^dq;O-Ka-rZg;Ai)h!&(4-*vn)ba?@ z6y`%K@vAodWFVQ<-FC-t1N*mI+GiPsSn=GZ|f2>PX|N zhFvu6#;_W=x0hwJ1=y+Eft5vP4v-c(POVG|NyeL5**vapoG3+Usd8j-d9Hn)o5iUo z+CSYN>Vfg0|G)e&D?a-s&cpFF$Zhd~9oPDOt02Ko01Ci z_YyCUlS6G^eVnmx*AY_KxS5Th`4sW5l~ofq{5n)bSb^9@sniEceb#7ERYq_@r_bSn zpWeuSARMQWXvO-#um?^YU%j!{_h+UEDn>PI;~J^z!6w?nNf1p$71P~wVQf5+gO)bgelJ47w`tTbupuBQhNAL(6`(iC>KnA3dFje}gJ&`m^(7HcQ*{#BPaCLnKvc_B7u&Oe+CZ^un12?Bv7d;gIBs6&oe{b0t8xbL5Zf%0F&r$!eRM?k)dZkQFuI_1W2tqoYF7} zIKhG7yvpW-@+Nr$;(u{7mi)$-nfd4Fh&NX7lNtr$+6o0I6BQ?VP4hu2un^d!tm-Qh z#Sod~umI#VVNzFM-U0_*R=}`YcL|zA<#!Tr158Tw*2$Wh>ocEEhMVW^KdA&5*R=zC zQ}EHQy|F=awMP5RANh>!IdaDgeF>cN_Bcf43`dSP?4_cn=v2SHgT*gT|6vCzk5Z{7 z{*m1H(vb8#rU&;K*oOJPW0(EG-lkq(wXxap!Af{^4>5GKvaBU*cC1cAYeu-bql!%D zfnL43n)pR1oZP@$}~c(w~3uf7Ejh z>GC+Ml-GLlF57L|9M6xL(9~D~SAmki`HX z0=l|Bqc^UCh;l(5{ng#@E}$9Dh15rczV9~^uaS?Gp diff --git a/app/src/release/res/drawable-mdpi/ic_logo_wordmark_normal.png b/app/src/release/res/drawable-mdpi/ic_logo_wordmark_normal.png index 193efde2d6791a710f6971940ddc02a620351de7..d378e855c4c860e9b73cde3d693418f81ff851cf 100644 GIT binary patch literal 9303 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�s48(|iHsoPFTR-;Feo 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 FV1gGu2TA|{ literal 9998 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

p`E3xnbpZ^~rb}c^Yk)Ot}>Lk{fO=7gjXpLzF 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 Y1NL%nJzPmGH~;_u07*qoM6N<$f-3=3;Q#;t diff --git a/app/src/release/res/drawable-mdpi/ic_logo_wordmark_private.png b/app/src/release/res/drawable-mdpi/ic_logo_wordmark_private.png index c0f356d16a8e8071f21440d2db88d7c7f0d54b84..791d768353fb13c8b125d194949cc5dcf090b757 100644 GIT binary patch literal 8571 zcmV->A%xzEP)Sz2iY*wWP0=-Khj!?{nH2&kU>)PfgcKCP(Xc$eosX)3^0rluxk z#|WE3%2B*dB5MS%2;j?pIW~^xIB<$Bs#>)iDqQtsv{0QuJ$MB*Ohtc{B<_I#H8ooacNJfprLS80`Uo>?+*aat zp}3tUhspiP05vsR1^1#p_!s{+&dlRep|%2CG1_^NzImCz)f(d|q@aFnBRA6H45bqR zYHGFu?y^7hcW*sLnoN=T@hd)kR(}t<$4qQgO`L;Pr_~e?^-DK%i;rGdzjqrJoikyhMBQiQW{tTvc^rVfaeq)Hx^(s zQ&Z#Ceexg9JV5S`o1p?ZFfy3rmSZe+&Vm~Ya9QNpVf#9fX|-zBs79!d4I8y7+fDNJ z6m(hvYHBtsZe1t-?mvX&)uWbrh62lLvwW}x*H7W(6d6r2Jrm%vD5uX^AU9&O<^kU` zc!Zg_BsQ}35lE9JE|~(Fn7rFH8M@5?H8q=oWb*jf;1vChzn=iU3Is$A7XV-y<*flq zc>4Auj3f_%zNYvL;5$D?uCoEw#m-KXly3(j(?wDvacdqovsQ-0##Sq3ZL*>tO3u#& z@Iyl_N%$ohl7~r|4^UHcHIp(zfBoEF9YbWYTxTK}zG!%V3$dPi-2}r-vZA1_cfO{x zT#nLgjLd^mGikYTL%`YJ>&%defQWrP4TwPxH15O|hSPB_wI_fRNuE5UsXwV%J|$^# z2$-c-t*clm{q$ph-C{^ik(6c-$T5?cft}n%sdvA60>`A8rFRp_Yk

?~H-;Qqu`| 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 Ar~m)} diff --git a/app/src/release/res/drawable-xhdpi/ic_logo_wordmark_normal.png b/app/src/release/res/drawable-xhdpi/ic_logo_wordmark_normal.png index 7badabff96d0e492565b6c7d457d94429f7791ff..c89456aca75e3c6c5718a8772687e3cd7c9658e0 100644 GIT binary patch literal 23943 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�mXj`P@w(Z)B1>kZAO6d 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 literal 23834 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 literal 41075 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

q$>rl67i(_ji2jWTkbr1b*^EH!f|$w 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

fY1x!<1XvNi7e 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 T_4sE&rbD@8Zf#a(;u7;ecVrl> diff --git a/app/src/release/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png b/app/src/release/res/drawable-xxxhdpi/ic_logo_wordmark_normal.png index 64afec5d2d7df8e3d4d3e9e346d27432325d5d16..c5592328dd0ff4cb2a15763ff07a4caf4fe045b8 100644 GIT binary patch literal 67252 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 eH2)co@vcV@&vBP|Zy%V~p(Lj+TP-VPU@@ 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

U8tUDK!4XZs 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�pR*+5KS!Xdv z>NYb(EQtEB8^~=RyD%;xR#0~T62SmT*6LeqT7;}XG-iab_cmT7*IlnT{OgG&+=waj z{p!GpUZ?&qh$I$s>uMzay#s|9Vhl$l(5$Ix9&cg9QHWZ!&&lRPH@(05y%lhEUvV$y znn(o$PEA+r`}L#)Zp}n5oJ$?+Do-r8&)TIx{<5mO( z>~uaiuy#qnFC1__Y&^&`AXiaS%i)d&4&IGpWQ zxcqQoFuuhrlcn-|BFq*q=pM!Ui~5)1H!jsS88{XaSG%Op^OfFn(@g26;NLes3J1Q3 ztXhbi0*5=PIMrsZ;S1z02zNO>>~i%j3M&fBx19iog4Ld<$#)MtpnRM7qYyrPTn4%8 z@7w)5_=y=2`3ovjRqNY722HRV#qv&rSBtK^!~QvbJ|J)&S!uohJxciM z6ansHKReFt3Fl&V2tQvZ>^4=sKFb?EX2ZhoN#7}qrs;>7%5vAW*|82Ws7;l&6z@a` ztu_#CF1TBBIFx%M_LmI2DsOQ_!jki{BTjj7h&-?{j*pSOu_ZUk5a^hp%?&{m z?{H$vE_Mo?W0k)cBJ$*)*=a9P{NmJO!G-nwWKv2^IQcAgO(mrYENWlmgE3n(JE&5q zmZ25nI}d8Xg3{*h$VQU>L3|IDGtQcvHhi>(Q=V1}ekmPXl%QL&f4=x|<&$kbf@U0R diff --git a/app/src/release/res/drawable-xxxhdpi/ic_logo_wordmark_private.png b/app/src/release/res/drawable-xxxhdpi/ic_logo_wordmark_private.png index bb842f1289d2cb578e65dc255056ca689b2a82ca..ab9368256b71d5a8f9989647e0ff65199ef82366 100644 GIT binary patch literal 64068 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 literal 60080 zcmZ5{1yoeu_CKM3(%m5`(jZ-eq?CZf(2bG;(xuW2FalCiDk3#7%+QT=3?R}-cMr_a zG4tp7eg58i|Fc+k-8FaJbM`);9iP3=CGNSdI`Msm`&d|5#F`o^23S~leOOr7PYCdC ze<2UNn8U)_@z+#QdJ%xVH~+xRVT!tU8PkFY%qiwFpCn#<7SRdl<4&%vv|V@j=50D| zlsGW@zH%j!##f0e;u)`pX_fo)v;ZgF{N~c#fm-JtMp^r-E6w~~AAwXY&_dvhyynS% zkw5zG2fq=Q z$b_R&bJ?7lDS!S9%ECia5;ZR$wI~k0N_&BBTi-d;45R$_)0FD76YyjM&hxVwjZZH7Mm@__gpAbY zgOfFc4e*rM>ROb8^c4G(1Ji zb*3S2B$dfY=KdHHwhuPjkSq0)gVWiB(Y0YJ+Ltkfj+&+1rLMNM~D3fF`3BEoVO zqAiSEHP@YpZ%j0Y{%WnI_vo+~?3x_0EY(8VP~q2YXqPrrGnsO_{%`riwlxXm7x@^s3i`l$EBsuO>W?oZ_On4h3(GG-`CMEPe7Z2 zhnhTtstei7g^oTgJTtZ}c9zH(nX|$E9Z$`$~j_CE@(fgNtjXjy4{Hf3MR3AgZj4+tk(Yb?P0_ z`>(+;-~CU^ChPOAL#3*Jo>khBdnh4&Nuu-Dz_T3}_WUQO!dLHg4l$#S*+c3f(-iaX1lo8 zU6`yp87)YhW@v6C|FvfSh0K@_$2Z=2`K|tM3f>vZ)~p_uRY;e*xzR;~cLq6GRsL?> z{44qLy9X_2&b>wXC3_aGP4e!>Y2~HF_*F-*CQtq?+tNV-z~sQ+;6}b`=0nN&4CtHA zFBo(Z=3BGf3^S}cstWN({^kr%{JVT(YEUW8*Kd$o@Q|V7D3^O-j>cRBpWvvs7iN#SnZKyooxIdWC@wS*>JL;}2FZ^F40nySu zGX{_!>XBh+@)xhNybSwQbiM$+Ns&8BcE7|ppnHzY(%<@02D>^ei8y}O%W~L(Kg(ko zgdIfNFW4?K>muWWb+zRMUXlLewOCkh?>eJrp*ZO!;x6McD~DR5Q7ztq+*v2yQW6+! z!0+j`e9jwf!hdY&cJB{~VUG8QHY^!-Snosl_715sG;0qbFTgBGTnpbJXv0LkdG>8( z0lGgh-CjQQ7dldpc8zZ{Z2eYzCCue%J(UIMt{b#SvxsXBIXAY*);!spGd8P_{mAXglWz@KOOdo1=w8Pk5*$WW-UBm{xBVs1;Hg22m z@m%;<__w|lcEL`yg#qwcCv?pdL>(YyDjAsgZT0To7lH&0$7=Z5&BR(W@UC>n`9Tof z7p57+pI6jw-*}c6G*Wp`#>#U6GB2qk|Ig6pZb(;E2|Y1)poz9&X{9x8{uU6bW%_Kg zX*tuxTG%s7^JF%EZMG>bi1t4(k!Q69e06gn!==X1iKW!b#s7v**BduEhte>wy5Ky%8jXa(r#WzkA=6eG0z(2~RC@Ich^m z4Lu%7J5DnGKbs18Pt;e%GhR&U#}s1JrmW8l;jO3=X50Pbf7ZlP;WNk?Y98q4$2X+N z{+}Tle(@4pYZ%{EccO%dnvuOr9&;`qj{X zbPPXzjjc8C>Bz8V^pLB6k(n?2D>wwAZ^#7%9>myh>w%(lAX4E&)BgfO^zV8f`Ylzo zO4aruDOy%^Gz~Fd^ldGr_$^GH*ZZ5x@gVJ@6c_no?B8Vwl%1_Tlb8$7nG2tLrt+Wh z(Ku{_w3fEgAw;ycNDVKHx9U8;3n!I-{S_>pXTTfSc9v8`)F5Xo>t#8pH}3E+SpE;m zYrTuC#YHPEg4YF?JK0*s5?F*+`cidnLL;RRAI-_m<;>phkbD-OG|^Pp-W?rr497O} z|HTo<$85NlJDU&77?J?npTQyXw#m-6im;vXanGdg^5d5JidMD}?O$~hZh7YNoVb7W z-OywCYP26c)yBO&F~ec&#ay|~HT(K-{BWl;1>3Y^mr5Y-g{j1jSDOXW-Z8Ioof=mZ z!qOPnak0xi`HaDs_wPJ5X!x>OT1CkE!^F$Q>Mwpjvrk<$+o)-#md$la^dY_>X8c5L zGC79w4}m-<6Zd!9$D^!BdpD%nQng%r6+cu%|4#HoeM676)Myd$3^E0N|*7)v2-CgzxlV8ybLCcg5U#FV5cyeMB3ozcyVD zS-;$k+Z7*YO0)RHOGG~FYBq=5^A}BR7RK_XMv~|~3k+7wGc=_=D0q!HJ=tgX+_c4_ z&R$2cCKV#MynP>!V+Kih6;SG=zv6xOck5gR`=8zdIbk)zti{crH(&edMS&IK z+Dw&?DMMb#$wey|r@T;~a4PC*IHPc+qA@Ip9|=Q+-ZV;cl+*uK|F!xLGq@G`Hq;!{ znt2HZIPq{x3he>S_-KD#mxTzES@oAdXm8E(+J?cAZzy^j+VP17B6sB* zux`72)&Z4keFR0hQq5~wbxv2*Th}W*w6Ly^5xRa2b{VnU?l`$gv`C!AE&q=fs#MPo z8jpwnyz3bb_ziAQiWs{oT&zH*C=m+ih9=^EBk9zl2CaS&BWjKB6*vmxnu zI(J@j*+%}hKVmpT`Y4)RRezKJYqsr=9MOH)W~YJyyPmUQLy~-WHYri^hCl%jHlTG> zQC#jEF!Z>WGx231U2Zdgk%*b5jh7qP2{{jzlU&cK92PCf(@Ga5+C6FK553JDhmV?i zxF9Uww)i zE!r2ixh^vVmS(JdlZd-2x$-RqkrXJGwCN|M-tE&7EL=L$pE-7S-bcyZQ;J|g}K#{ze{8V0#rkRD(M*%k3385 z9TR8mwW%LD@>m591o#&>1%rbJPHIN(DCD{lJ%}VzCir{#YS;G5Ey?Q`o?GHdR5XeO zVx*tR6!z$*>3mv1x>?)FBVCW?rIqL*Vk%~4nyv`1NG_}_RUiRnXYPmQb{i&uhc~w# zqNF9pcIvaJ@)G-*&wAvjRPU{tvc^OmU&mdz22(T9h4BsZNw61wGoqorK}B@>P0g0Ir$ld3Zfhz5o>b;LXOKF5z?(w8)|rs*n4MNkZIUzcTDht>V*aV!o|C@`}iWTk1Ju{aAyh zL>a=>fp_m@LHtUf5%dE5`$`7*blJ4~kSVX*KJ?e1I*kl{9z13~0DU0HtG7`|*VMb6 zi+N14>HmrqAzTr#Dgy`_0m#^>O2H7U2MF9LrO&NoiqlEBUqaBxq7hXk2 zkQ>X~A5{jIaj#Kye|nvd7ol)m+EIngcUP|UY+xzlxBP~PaXTBxbL#cVoHN$qaL)Pc zsA4s7Fd^3P>mFAt(sTd+_7>&XyMXLUSBc)&#R9uOzf8;q?`~1CzhT|) zCI@Eck6fN(=tz=2*i}6ro6xM?51;QdkTRtw2R%DhE~2#*k1C*|1n8uD5?{;^<)lB) z=8=o-RS8fRPPZ0iiS`+5k*3);5oQVDJB)|N<%Vtugc9Q0bj3cv+z+AokK^9nb-lMc z!89`h<3o2b;WB4(H|`%~y0O6f)n8jiywk7&!&q{D3F6-a>)T6y+_OpL>u%V^#P=Vb zl=MxeC$6?o%k;OK;zjF)GsSQ(>g|znTqSNDFbpCF=WUr$ACayRA!v<|@7fw^gmM;Q zZlI=KyZ!BQ0h_*@0K^hT4B7;*e?lAaoko56n zNd;U}E0z4ba3c<(Pa_tX2Vlqz_6^$1!myb;-nD1xdQ!92*?Ow4)nD{R#`w}c;R!)z zp{sOKl)6k)Uq}7(#j-6lg1?J{rm<_o8ST9oI%F|#A2*S9uc*i~5@ne9=GAZKydE{y zj&_oD#YE!z2wv9rN4bd_|Kp56o0`|a%h?#u)$gmA?%8V4rlpO;BK@FjJJH;4KCVu& z#Gh7-%yh$-iOnw+0$24!tZwd=md4cW3i^NGGF0dSk7j@)!2VLVbkff~k=g1CC3tw% zD{n6lCe1b;y;3dDbpSQ3f?i6DhXir>oU;`A&t^8kr50lU zJ5WDsAUJKkHna}=LeteIe?;ncek}5tI68^1>Zh&I9>x8J7j1?nAAaDbDz2O#eo^yV zCzQOtyE@_DQF%b}U063DfgbK;-aZ8-VmgArWinR~8I~OB70VL9VD%VNlZ;Pw%ns{| zW!C}PbQv+ecV!M~n}YdMZfN9#WxrQhcLaP-&aK`aZ0u8rcvnt=iNrO|LT?W+fBv^rp~L$>{U6UO@gOEgw4Czw_~;M?%|&U~x+ zoAEl^JYW1k``{?y)1GUW=Y?JsPX`JssvZqlE0qS@U2nE$zm}E@UL)b=!@w)sbj_Yl zxRA(4P*r6LSqRK|>geI@?)fLlo#DDMotq*L+Et9sYcr!V^$#TY{1b;T#IUZHbUTEm z60u&S%SjFrdjS>prSondF1S2CaOKHgowe^ik!%e-m*c>bz2Uw2hI(_;?+r6E8Dl^t5z)#KUDRC3ItpIRPJ|*;c2U z>tD5QX`g2&lHc=yW@XUM5n_J6VS4o2j@i<_9H5iOGhXfZAioC+Ym~YnQDU**;)st>xW!0Ka>pG%E zWM}I?OLvhvMaWDfc>)&nyN8eOc9v9<4^@&?jz?G2LpEy8GQ+pc5xTNil z(kY7omh|tsS1CH7G38wWEWooUX-bJ+a^UvG^8FXoT@7*&;*pQMQ@wGGWAmxAj&DF| z-U{lu&JDD~`FK5Vo|8@?s)(D!@_((kI<;qAw!F1g{Xe$%FR<(5Uqn}#Tuvz-`A(b+ zZJ2hvdMtQV+)brt_dHl)7{%hk%rborRukN5lgPGDP0R0qcgQ~Vr+iK;+Yif$`UEx? z1PH~o)Q*wh^XMO(A`O_>7-K$>3HfLH-k?cx7V(e)+fqF$dq@}fQE`k)J!t!-HqBx~ z_JK$?#KR}x?W>!n#Jz75=)f+n-kRgL?{2eJ~8t zVcV+%<5#^lrnh8tBx&e!?r0t!&UW`Du4-J(wppf+-6i>c$E)>M(EIt3VbK0TpDL-3 zRHbwXV~)S)w{N)$M}s+~BPq*;L){PLcTvuX7UKUS;4{pkzk|>rq5)ISELSrVnq%jG z@YOdB7tbhY7{+vwoIoojFGZLz9fxV##|0oTkL8J~s-s^IaVkoPSTP6T1%|GF`EH4r zOkskaBZV9ha-YGC6-}7m5bZB7@qEXzG=I$7@X9}0S}0#x_%OB#vlwGUo`rg8CjSa% zmu;ExZZwZvtB42N6c$)1!Lh`&gU>=JUqQM7!Sh!kfz9-!hZwHxs*#1OoU4W0cU@>m z=&(vWq8vRMJD;SPfJzZJwkMr?C1F!+X^>%SIjs8l5rHdQ$^m@k1zb1v6`YWNKgw2- zmAQ*0@aQ4kC7=035Ldd;Bh2h8>rLaO5E|_NiM}22vesR8h9T$6Ajy%CV+y2f`$OtB z<>4C{>2}p3wgmd0s+?DdRUteNHc`KoUFp_~-p9?qJ`1q}I_G*DKW(qfNh!XgufdY8gYrFrQd;0#RWLyMZ#rH_N_4pXK>cIQD+f$N@ZzQAKRDyoY=X)S+Op4;LsP{zI!Q{vTT1$`FI}R z{@xM9x_)n_s%p?$A#|y0Q%5f^U}LRohZ?n#Nl#wziOT8SMLCZB(L@#2!%Lid| z!At6W-H5TdC=I5kV?sbQB&MU)I-f%G7;+u4Bh2mq43ag2nz2<03(bUM+}8Dh zaX(m>BPV0n!r(8^p*%9F?cO^NB26)RjPLl~>a^pr3zN9vSNJv&{+E&6NjI>AZn<4d z-db4D8b$1i$%wi@k9;Gcdjpm#ZSr2;sN$X0YX z==S)Gv90T97oAF7c2Fo^eRik{TYe{qV_clLOm$k(@rc$bBBuP-V4w$!}$5n;Q%yi6AUSHXge`@*`tuBdS8r^WJg)d1u>wLP|9rqPvw8agH0Am!zTn*o zuIK#Lwez|!-P;>m;y(&#RE8gTFWG;wAUGP=OT?MNf-D`zsu$dc)@zV8-I;!2eJAya zUl;pdpThwh)jIFJN;qIl{AxT@Kod;XBWG=3qQ&{UD&$kc7bOOoE)m)~gNO^crKA33 zD-~G4oL!BEgx6C3TiUAjz4}$7O>Nx@^vRL@t|W7&lsg&QeS3W>pf2Ll^!`&__WO>| zZ2owM22;OT$q}F!|-wi&rHTWScj|;(v+@Zd#Jj4V^9LXKjGwX-o>!y$rN0Rq%#Bva%K~Yx69v z59goE7H~T=g)7S4yjr@r^DC~CIbEDl0k`Z6=|Oe_wG=Datu2l*zH@IUNKz4fkVGJX zZEjzbc?V{X_1D)Z`kaJ*H-GmX4wWqzcbT)XO}a(DO!HQh-L3_JNb@(CDXfs z7X$4Xi`9As?nA4m2`rc+MeaHDQv4Tu?iZ84&C2}U_gZk>un`=cs=QU*Wc@H-mTbD5 zI!9q?A~D>04dXCYz_b3A&W$99MbL0p7kzl6>shqtHk>%i_G6sAF~pwVI5NQBAmimD z;J1T$2Yt>6l~S^Pinxt-qN32>CIHM__*#9c-!C^E6QDyxx!~7~s6eWkQkjt;vf-}} zCj~qT8Gl+P??Ho!K!{H>xJ-I#qb{ujx-92fZ(Wl4mEd}CU7SJbbn+F={8okl9>QL! zO7ePO7+d7@{cHZDThPe<3pBysAwSwB=TQw-AVavft*DGMMVF^-3uHo>~sgIQcCV)kXe|i z)qnFrFOCYq1!M=jr?PK700TXpZhX*LMrDXQOoWPyepO&uzNK9QBSGC#}RJNRlwh1haF zGbQWmadv*IBpM&>UPp;9dERkQq`Dz47Ui!Oe|LRPFA0ZnThfkbS{Gq~>t^d^dN*N| zP&qcSy{4Uk>7K)1N#9h+zD3uhka6X3rU6m2YHYHAja++`!;I_ApXMdmpVb& z-;taEkj&a-h!B&zaKv;p(1yl;aRjL)gD>--AA6tj+o@5nUzuAT@qrV4SZTin^RIr{ z*25j?<&9=gbSWYV73SL$Oj-90c19DPb9X8GJ#xpXC|Hc$eWw${TbWoX)qJ-;+KNnh zWxDpz-w0>M;3)x=xIWW9#>*!7biOyFbw2bT0BLmD_`(jeQWMisJ8M+S8hu;*3z*-r zXHD&!-2){mk8WcLxExL}S_cm2wd~gIvjijQooE`nze?fR$j8|`c4Uq+mT-Q6y(}Ho znM~D4|E2T=z8MhKP2Uu-QC6{DT{O3KmU=j5(QmAaP5Ylnf5p& z(`ARs9E#^u2UXe>+pd`&aOdO8+|`E5F;BlUrOWfny#p)c`5EgJ#SHW_yKBm;0S`O}7Y2(MM;bQv0|H&K_7{Y)RAC)xy6CbxT^8 zW|iNd76E2mZ5+8BsO~i(?zA3iEe`2~U*2f%$?q?X6dFb@&P1AD&mRVYA4u|)^~Z^O zkyxIVHL!3L1-Cjm&%Ew@Io-QSJojsDZsC`izrn<&D}(7O3Ki{U>!!&r0j+maA@C}8 z^YPNY?I|XA;wg4qlD?A{Om87H1^y|+KRofPf2_CA67`YLlBO&2VS-Vtd6&#tF4B2C zFfXcR)W1j=Bv7hhY$Yj$@5&M_b{hU>;bGNp&+swn{Dx)Rrh~ApuXQ87(cXasLk`drpIzBx7Qhs0KFbz zru~)07^zF%RY?`KkV*PJP4#UFO}5O?W4DiLJi@j`_tRZj@kb-9AxaE zy-mGgo=f1XHfJx;bNG$Ig308e4M(7$qQ~g&mCu~r2IU5quc0=y>1gG8s~mEDqjxil z+tjvR?$iB&dGEmcB4+C;N35!vf*v{uTqc}u&m~sCQj$%(c`t=a!$@6lqhYVFi+@w! zK+a|K=DN6BMadgFW)BWMEzj}4$QP>)p{@S3>>3ltJfI)%WvQpm7hPj~R^QWjd&5A8 zN}1~vBgHDhrHaUPp5-0%i20cDqOI1n&eMs=R24(6cSFkzt*2Ax7rZI>kkCl*0Q*WJ zojaOLc`LTNbKS#+?=`XSKRq9czIfK49yj}dMx&=&NNN6@%*jE88WqvAws-6Rr4{`q zhJcaUw(G+1V2A5hdL2Za*GDu-4>0v8WLC^(H}qqf@8sdAhJs$bC;o2ARpwNW$ZydsM@R{n zWyMu;C!3PghQD9d=>Y#o@O~)NP;hd+RcPSsm|7`P^mN__CqEElJ`=cGwXI#(ksR-l zML5wbayi$3b9iNbdDc~WYe%b*moHWuSSosUrs^2Og+1jw#&WMTCR|Guf#D75H|XXE zyO0UBTLzJ0;LPnFa5_ZDf-NK4i*dy=k9yqx-6<2uS_lQj88Q-@l)2& z=y3v3NEy?%3&?NUmP?)ov{gjj@A$}N=3ydP$susp6g`Tpe4uNCciMza^t!803%6wN zjSG|?Q}u$g${;y`VniJFniU`?^D87w7*U`|3dhaemawkh@ts4HLY(|u=wcVe8j=&G zcv(AU>+u!hp!JaM77~N5OW5Wq+uOoV9W$EyM%qPM8;Orit_>|17q#Lq5^50O>w(Rg|Mpg*2oXsb>2ntsEiCcuuD1|1A(N82pC9Ijo!lm1dA$fMdj@3eZh znTXE1jhnU5`Z--{WddK&Ep?$g@_?29Q_J0Rkls)AbN6!m7FJ}MmYLod|B9t-!pmr;n3-(B+2m!#dF4f0&*Y=%XRz#rid}bFGd?F!yRV#?%-ocDPgk(Eq1(j42C%R? zA0>L$6z?Dn$i2JF@5(XQj9jI$r_IviUmTp0fAf3B;!Mlaaq(b6=`g;7bVjaB>&E~{ ziRg%>vBN;vAnkmTLyh;I)T<>M+L?1WxGfuL#`?(Bm?Y`fww(LI7N|d+b48FQV_$_` zIhOC%&b+{=swH*7`+qX|J%=%&@E`aL5r*Yv>Z}{=)5~+}YWqo5mw~Ox?0{r>*~#?1 z^`j7r7POibdeTI!(oKkWj+|z*zB{SvJP2+Nzz5XgQ7lh)zog^!`#_&WsGF6U?wcX~ zWlr*;yoX5a+qARf3%RRKS8y)Th4P)!M?(&RadKRyOze?aj9 z-*+$+3hH+?;|NywQ7Stfjp@IsmpC&#Q8;O8bCIw5HktlbVU)OM^aP`4?sRxB6t@VhL;czfr$1WRQ4JZUi-{-OVWGUmCV7wH4=`O&-Vfp?2bl16W-I+> zndYm$_lv=2Cgt{wZC>nIBQ3+c_nE9s?j-XsBH}Jq*=HCRm4gH1D1Q{Q%~8rbk&LiL-XEl@>jLrIW6aSq%vHJH zUE&S&UIx#HTr`j3rwSN#Nh}4?q#v0n=aAV^0tffo)7s774tW@NMv{G947pQ}B!KSD zA6Tue($sl({X>ZP3soT63J7Y~=&Aj=SNqba`F5-jcqr|Y(ohKBOi@o>i(-|GH3mT3 z4p;O)_VMY(H!*^R;Iich=Z?L+^J)wgZU3_p+#^-F$*FL{!|Lc1bVn;1(45Wp#sc6C z(GI|&5J6C+L$m;i=7LB%-D$DqT>*k``gA{_D$i`rXQvN8QuK#H`c?pYM}gkZ;ZWL4 ziVL|0Ry$r0H7BhUVVjA^O#f>0mUCDXbpdHaH_hWStxXy`JR0vbSJ5`~>`s6LaVj#Y zKF8t9WP|6%ST3aut%NZ#Nw;+ctT!_%5hWhXErhSov;06J#Fp|k^VdZSQn!^uQ$jcE z_JVoAiKBSs@yp=))b8bH2(|j#rrs9o@7vB-;!rDE!-2ALwAbW$s{N|`pYksjFGk7d zynSMF&or^3eBpq+Z1IK~b&?PGgfQpH+60%T!d;*803`g|zNHeejcn$=(mhh)nL#a{ zJK;s2uH;%$7hKRGn8XY`)FxHaNm^+Z`I8|rcO1{Mqoi6lY@D-LyER0WC9@TU0$VP` zI0TVhiX!YvMAg&o8-PJ)rRR@iOUVy)Vd2e4X6=1e-X?P}jPh4Wb1=N$ZX8rtYMKzU z$)bB^>R@!$pzY7{9y}ympymvy?NK1;S-wpP90xcO*sI6+e6Df!x3wQ|T;!DB#?`u8 zoqZ=UsX& zpqUv*%RAsZyypr<#WZzamy9jdb$t`+ooB3C=Hzb=^cW^T&udGiT@}s=Kmd~p{tHra zsRDsrr+3Nv7s^-PMw*J^%+zC;7l)N^+kPu%w1bn_tY6x|(rV~%zJI3@{5%YD>T!l1 zQL0O z3899FT*)BG8S)4fSYl{>>Yj&9)d4f5o#wov-(BGzyIb{keztW)!FIP<5qBj1X>ulc zyaP9QFJd^BUl8gl(Ghy_odwgh=BUV%C)}m#kDp}+v<$=8;~nyNz%gv!meG{#Gg`G4 z9YJ=H^S@e^~Q|e8K?9 z@CfAQMyywPfkfEfRG}kZeASE|hAw4X*UP1s6XrVIc9)B(28BTvSBK)6h`S%)yKKR= zJR$N>XMU9=*PMU4;TlDS0bV1 z?pyyWONOZ!4myZ`(=UX$8KK*LiIyq>G&*XPp>_0D^LmB=TDt#$gppsf}H8o&jH%#ffnTubX>R z)24r|1zJ<~1nt5YMuLYzF=(dN;}X);vlrqTR*Y8fD6KM5kqkV8Jdn7C$km2=&zS|h zepiFj3xn^o-{`dN<$S!4g{RgNIN1~yVWfAV2VVaQA_plFaens~u=n$h4L!^2h_DX5 z4+`10=<&d2?9r*z^h{ms{?ItPH9Z@)dYNUzIy zS4(K@NI9BFw{%oKTI}P)t@B<&!e@%Qs(E*sPTNS&RfC@9VAgfoePhFXo{?i^RvBaXE*#~<7AMLFTQ2j z(L!K>WUA4v&)abj_MWFu^xiTVH++ecFR5;X!twuj%cV@;FX~O|$vp8L{}?0RS5W~8 z6C)Y^5CJeqH4DSK zU^vQMV{lVr%!X6gyF)GtL=k5DeUswnXUVQh_Z>Dv{4BDsOqer$%xzsduH;ALb??xN z1XRc5*t_+oMktPOLta46-_~q^kLhZ51i?E=kQZ%Nd>ezVUg62I{VQRCy%tK74UW$_ zAw$<4%0;HF+>G`LX>*Qh@n>m{VZ}!mGb7iGR<-MaOl_AW6wu#%yInXbclq`u2rZqQ zvapTj9cR!V-=x2zjl4M`siQi*3t~KwJoH^^C^=d^AHWZb6mkz060?8$@0*MXMD3RjySH3Z$sCyhwNJTE=pYhEt7J{wxZ;q}unpdM@_7(`tA_!y|Fo6$hP z+mrp)>%$ z|EISi3*nXzfq1>IwOF;cSk&oQKak4*RbHdv+ntgNrwGLLnGW zpX)~aKE?}=^E8u6&pn5nb5uMueuUbk5$O13c))ewRPgla_v!F{_ zVRvE==|Ae;mgs&7Gk%d|GImEARDHLGZh@UJCJTA;$K9DMac0{4?43;(ZzlAX`7Vty z9#!2`{X0`r)cvC52^O5d_r_!`D{>H_XEJYZOJaU-}aDyl6N+}L{Ak~wiyC7wRdxPkg0R4xfK?cCJubY1zx-yD8MKUcqx zyBD^V#X|Cp%HEVp`4NH+x08n#%oS)EGSpwy3Q|Jeq_zb?4l&(6s$tgjaglnkiyx-X z;(jEHwC>Nh4U`t`t+8EvSCL~)#kOt>?&Y039Lzv&VR8n17Oq5wr4c;?vMmD$62c2A zdtU@O@XGjH+Soa9ic9pF3Nl&xB`sB|5lBmfM#0bK3|)jPEA_bR!rClBwy)w&t+&Ii z&gSp(C)$9@1oKLM+M@UOM%z$-65S44fr#))$ACR?fpu7dIapw%Xg2VSwk8#P6_z#v z5-*t(YW`k{tblyg+BDS6LZh_$En>XVQO(|_j0MEd-+KC|8zH@j=I0i_I8#&zkFn;}lswVfB zJ*8g2PNxNOx2+o$wl{L#foO>>i6d`^UH)2ZdA@qV9&S~-#ktF6T#(8i);6u5o?6VE zb4tg;Fl8KG+YuJHAf=M}?_(r(`6kQq>FY$taNxgIa${3ezz=%SrA`05X8Ob3ggN z)v;r2sru(bBCj<50Uc`5w%y)!)OyncfwBkT zH{AT59r4B!C=`M*QWB_aN;asRbRPPiAUb=>n84--z5$)RW%7{xL_vNzsrVo%k_oy$a=&0nZC4XCf&@RSQ z!YS?}qY}SXp<=`&5+L=3*y)QQxH=oG#serF9;Ym5y9EZA0HVLQ0xga_+x>QWd7Kz|E5YLTDbZj1 zV_buDNf0(MEA)B(R9bhOIKYxaql9Kk*xx3Tx$YVZ<9B6lVdb5Y;g|_jCiCXCjjRVg zJ2C>uIggYcG(O{$W4^;Xf=4crtigG9B+d!CkdhMZK`9=K5mkJGcUOvrw7k2h+D&=e zyYV@~{>g^9<{Zr8Q3;eGIFf<&y>%|oJ>Vc_wjGHRy@91+_#yr<^GQI6G)Om$CP46n zeDU<+mPU?m_BDL7AP~9zDq9T}NN?ZncZRs{#}A`E2i!E(e+Cmzp7=k$R`4LS7gsJO z+_4L?uRq}+b?vv`RwjjTj5DJ7>u(L1*tIwT*E9Af>qIZTxt)Dza&EYj ze7GfArDCf*lfLFul?2YSCHc^-=Mc{d4S&z6>K+PIO zGh}@W3)m{D>%>oCrJadxQP7VL*N&Qc?}fF~Cm_k+cQxORq%U1Q`X;$FJNV?cy(exz zMSIi(`nWY!Rv)Ys-lf7F2 zQ%+~iUB@JqOxkZLN#6*uP|I`#WLi^WhVNWf8tOvfF%IbAE|eCDhL&^pU5OBhsHWlf z25O(~c5)7Z3vf-pFJ;bp@N=+av#^=p_3s^|z;cXB9(MMyzS|QwTW@vZO#VUXMaYi^ zcJAEG4ibyUa@lttz0m_M)Vy*${7Q>Gvs6+#>n!BQ`!h{wi=!WsF))P5iJmKB$aMu&gby~cnrzpu zh>35{%ZhFZ9g}=$Iqrc3j~(En_eb3OxZ1K8Snxcu-#a+Q{Jxuzu1PXa6ddkL(wWd` zlm)`}_vlCzH=nQ}m8RJg2)1$xQsmlvCqUf%bHNd2p*-H2U^VrD$gPb5J)Uu) zH$AKvWm8bhZHtVuhBua|=`J6CoW3*j>aOV_IA16R*XhvdK1;?BvJ=Ot;=MjImc=Fv6x5}2BV+#isd%8BwF6`YDC1{o!(F3 zzgJKTXMW>%80Z%>2EBzg-W5K`ds;KPEG9k{5zO=d0IWb$zt4)gH(3I*8=vkZkuVZpRjqgSTPp>iq++PQxt1#_Rd0TZd)WZb+IlAQ_(5SOO*I z9k282wmrqdkjy+@RlkCAqND`grhB*k-=plE{OjenX~-q(uDxfOa~tw1OK`%Qd?sUo zGC#bc?;$4Z?Z8;-NW3(s!Y$%b_CN72G`?ewr0l~#1$9C&%n{a04sJR#Y@)0iVGk1% zR&4^1`S}Ad&VXWiA7gjdpHoqKqolGbCAtkI?JwrXZhkrN>ugL>Z;T-phs=9LE1^4* zcGUOdY)FTCx<`ZUb2;fSH?xOgMY%re`57)HIRYR}v07}OeQAr&<#@1VNxw7~zYh`t zS?rHxcKuw2$I$?0GU{tA%irkvJ_CbEIp-;$68l!BW`Lh!^BNx@FjNQrm(A&|(&ppG z1aJwM$`F3f0H?^0R)G29!Y~kfxfj_Wv8NN?8#ZF~(Z)Ussx3ff8jBLBv zfJ6WT$g;ZJ)^=I8wmWOt*p6CuvJAMf6!*woc<2tvvFos9)ovFKOX?Vm0?w+$-CsS2 z6F9jO9zO)tDr_l33OFa{F3WP=NTrTcV1PsNdFuji09i-M$aa7<6_A6sKd0&daB3OJ zCzkr>DRs)G@{XHKyy-k&@%GpA_{96YLlq-o&HOaEwTYNi<)?vHPXc~+GQI2P3f zO%CDtwxmyWnru`P;Ic%2)RcYyJun@FW3g|wKxb+&IBIqT8V5^LS+=PTyvZ--1di$F z{fzgnImK{jO3wFx<@{^pLp3>`{|(-c`0lp^T*&a5s>%MYWD3a2+ixBbVxYkfiar>? z%-#+LFjHyf@`%IjUBx~8GRXrsNk;G9A1`&zf><5EG<0G(?^Xx(ZScfC*na>Xdv|Ui|v?ItuWBv>ztk^a5Y;jx|s=`F?>KJ}eXX z)E0J$(FR(fA(yP)b;>eceq?{pZeIx>TZ3f(@@roT_}9z2-v)@(fQvTu zj3+RHy2tuC48tx`wXT)}765HNgbmeiJP&0Ph>7gF6lr_anz2EP78NxZ9qXkG2XRix zpwT=~%@B-T5$I4M-OP~bp^QGF-VDkYyzkc5LmC}43O!5>II-i{&fntsQRjd zB?T)Bc|T&mXkOm^Cg_h^*#WYzdsVeOdVPlmVj*uXAq(N{wpUsZqPfaF+=F*WPTU~b z`Enc29dugQ`^#;_Bg`o4=h45o0G#voeRKpK-V4VLL1mkO27zQgS!xGL(9kUPV2lC9 zP#$Bc1=Ij%LpI4H$Eou=%G+*z4wQZ6J6^}*&%WOSV{Kqrl4!58ASiPNC<9s701m+4 zF7=tbwq2M&N%)6fo8n`C^C;jHkkl3cs@e-pL&!ZqS>I!fwx9u)f>t4*M!@?Fy~2#ZX<2^$h*hd>_DAE%vQ8rTGZRx)Kg`9WDckn{G+;yKy3it9WKiG)Q2!~Pb&xaa4}O4vXSjKzfcW;2R*yO z5Un#$vvf~NQn|IcdBt$u53?Aq$Ce9wp0N`+ISNl6fJ29&vI|Ob>r%@@NCOP*>E$G^ zPDj>L%M;Bj7Ye=T=f_Wj-J@)KXoRP~_~-RJV>$$5ApD{Sy)-D(-f5BtDdU%SIM5zy zczKb$0S~i3`u=z0?j_2*%JL+00Z&E45@3&0=`I`s(GGtYC#|tahm{R0F1lIK1Kt zu+XDH{0Rn2XEYQqh-URibp!P7urx${&ZdgoGcX@1mk20<$HH@rX<`tBXkkw?Y)DpG z@$+mLRH?LHgjv+}m}TsJTgU6f4wc|!1)e?(hYmqyH?8#V9BFQBX~THdqIGyGP;BK6vyvoY)6@NBQ@que80ulJ;|zVS_SIb%Epozl>st zvJQYQ>wB;zDhy)+YWcGtI>vwe-kZU>F!;gvE~72xa;c#}1N3*)9Akkw#M~x4&72L%xVDA#Q#;#- zJJhn0U5~;ny6^#*;LHUML_q`&mDgd}lZT*w4E7v=%8qpy;H3{ACC)n*HKYT-E%K|XdOrKDg&sY-P31K<$g0V? z&J-xj;$#G5ApNUq46oRgdvbx{&{<$1$L*#W_Tn2zZ?eXKz6UPkERqnJ0@Ylh9G*A27h@>23>3rEbTYrod=Cc|&y%gP9!Qx5CgQwfQ3X~Vm>5t%wje-- zf$LYr{?$*(xmODiX0ch|0pp2W0k;@lu`z_t`)Qz+Lr69!_oBjZsUqHeO$JNzIl7lC zz+AR~?5kcg*`@G^1~A)XI7SkC}Ydn%lg-Iz)o;e8* z9D>?GI5Gy~+hF^MaeNLDOTRhIwND(i=M~dlWnoYz%YgO>0~L1BNq+owzz1H=%b$ot z9`fs@;~l$q8$R>Fqg-h{iAW^$eaPIgLN4|&NmUM z(Qcg=Vo{d~vgI~bE^S*gqJ=Fgsz8##*5Zc&QeSURGu%20%o7!3&F53oJsf$|Eg?SFC63;j(C0 zKcgPhbL5$PhT)ccU>C<mV#d{_3LZnp|qm}d&@9B0<~RmV$Ev1p*9W=9fk)zd*INz9UX%c zyW#kn9oY%vTh^_d7{_Iti>!X&uV2eQEPj zyKR$}irO^Wzx?^H=HAV6dk;Jf$-?c^21X+ecBc0HW0;{9{<`nE z=6jH-XCVPl`SBZxtcy9kJpS_TEhB42*rG*66-0IQGFtRWs{PbmS>b4(vhuP9PbZgJkzgBp=)gS`J&TlRROl77m%%H7_z7*g3u8 zG#pVt#I;S=Rp|4!Lr~i1_|boQhClxKb7uHNP#$C!C`%ICqfD0lI#M0J5!&WQ@f|!U zhk!d_GvK^@ZFKwE82|j6UjWYXUbMq4`e`cGprotiU8_)%<#v!NoUUM*Z>nvC!I{pd z%~NVL?-c#~YiZynQp>=HZhhIB5wK`cQN_?~jwX?x8}PxK2+5-6(O-W?P4ozoT>)kW zEY#v0P>b`9MGbksV}X2XE@xiB%RsBZaBLBHQ3he313s^v$+mNncd^irEQVQZ_V5{M z4pDf;Wnd|X9xj)F=MWGk^|$WlSS4>u%1!}Q`8#mFhmfYyd1%$#|LwgDoR|A^Qo+g@ zVAe3nLlqeJ;N@a`w+#dAym^~v4#<)ueGP=?7z2W#5=BPYWb=^h+E(21?)wb0s8=`c z!4s}0V=podxb$3CXm2tLv^nee1Axt2*V_~%yYzU z)#G`PNgYn|%Q_CE{*OMpAX&-f@(iuEUhBS8aPU4gwY}DykTo&QVA4>Hx#B2+5-6 zGJoD8B%23bBs*1l_?%5;+G@po!H{9+CC_qbaJzs5wC6l; zl7>KyS-Iye!xkh@Q_3XXAnj#(t4aotti|Tlpjc{VPs}L4YzNf7y=4+7^-Fm#FL-q&K0uRv zIy9rm;rOTD_yQeHvAtm}dyotac;;Zs>YAmxPHR1EX1K+GHyPNlOhdM0R6XNCfJ?v}QBnD8 z$MZS$YMku=h`lI-h$n%n4~7hzkvw%NqXr-qNG#R>?QEC8d`s$@l)BFW%LVl=neXub zYP~>zA5QfcW=;)Bc*XggL>O5SSUm+?$uLqwL-xDegMR7)8L5YVdta36QwQdHcyF%C z{h0Fp4zI*_+m8DS&k202hdlhe{z6sm!SihZ^0MEq|Bt=@0FUF!&b;yWHkcEj(L`y+ zggn97guKaVO=vbpLHiHiW&Ha~s=kX%>nlU`X}_%7$bLJ1>~fAQl)y(Bl9j;Rr5EqO z4}HzIZ z5~5U;P$<;T2lbUkoH?OK8vhk-XsVB#V*$wq4}w;B&379Pr8z#}@kY^%mg7Alw2Ari zMz>Q~B007bw-L_hLH3>IJ-&qgwd5W^p7O5znwsB~2edr?1|HCYW1j>t&TTHY%w4ir zXP;XHg=Vn%nvU>_jX7e^a-0QhjTX55hX?%mZ>%BcJhut&y{GthV!HYBqVK~5W$piN z+td#M&H#8oJ}=DQ=HK@v{=J>l&kG9dngwKk>GQ{{bBtAoPb~K>*Y!PywqH$1Pwj_Y z+vSNwq#yJI`;xJ_S%FU`v1(x5YK$7}L;>T&MkYK7mUKzxAGX3iw(VgjNGy ztC~09z#6#m>YQU(r%iU?HKR0UMUJzIvOCLlTY$}-ivG}(?&qcK+x00o3Zhh$P$+b( zI@zc*Cp6nwvgy!7gtojb2iEK+JYbw@X{g1M0FFoAu~3UOC>PQx081?og|^IJ?oV#Q z--adb%e?~{dlta)O#tu@$niI=xlIIR$2Jk*&hG#yG}X}Oi}47rxaqL+EbsA^A^Og9 z7WMTg$69It7M~b!_}cq;T`gg2wIc4`({1~1+wi@0Mm{ghZ^q{Zjz7O8fb7yUZ~D{K zImY^SmGxw`#wfSH(n0#&gRrZ+ZauGU@Lj zA7m^AaKH1!B=Txn|NNRxjrCfjU#ShG-Qnvs;Z;&7ra)E4?BAK@%dT7w1Io(O$+CSP zYB8}w0lm&g>9d4Fq0N8bH4$OJhB(=DXzcc!KOsWz=}mYrdK%5?IDnY}0M=pyMF8i-wc(la({ZtLWbZqjBvbAe_{yb1W^r6ga-R42Eiz7E7*|lBOdByq#TUPF~q3pI?WYsVX6%Z}+KdrYi z$U?@(;6_#2UcrI)`@jChc<=ZA&ypj|)uHSvONpi29}3PA2*+F>36Gcsc1e5J)}u?= zKkG3Wb%ufSme`YP;8@P3?qNLp!A}FM5MEJw_|E09j9TT|6XxN-s(+EoVHB%DnGd(f z;^r&HC@$~5?%ZPz6sC<}j>-O2pzb?%?YU7Ms*3vy#4fr-&p-?Dvy2cl|lS2R>mifi$L53(u87;zXz9;qtI*k^6XRz^~!h z5QSNs8gjS&{S7~$p4g_aa1N^GVQRMp@6~fvkj#a{ovHqD#?a-PJ>7!$UDXoz_w)|` zZrj!Kw(SAg$lj|5`_2!>_1eB~=w%h{tq(}{HEq_oi>!L8V8J)g zI^Wi}FGDhwZu8O$ci@NTz7dPR_WwYk7ElhKhyv`=IuFWn5tMl+8YI-Bw1er_r@}`PsX1<>meBgi=Idx-J~6o+1MWSAm??2TZwGU!KqITFj+B zeUv>`cE2eoOAhX$MmWc%D}U)m!TKdiC={yHY)it9`7cZlGr8?Jzc|gIIt0QB+sv`g z1fki30M4}V98@VnD-Nr|>A1*yc$kl23cy2=cdRW6$=|~z0Pg~DG~jJ3A9fA$$48G! zsI_6&3itKV0YaFQ!xCnZ0BUTT0io_Tb&*YNW&W|6@NiD<_clYa$G0FX;naXY@u?Pm zrqds=okD%h#pi`K0J1%+hx>4KRn*mhWOYJ3UQe$=vb=n_0K@ungo!*nYTiXwJ@3Jn z$ug(8aFPnZf%4-x$Ob(5oA=>+zWuxLiRV6DPEqoq5^vd6=JS+g?x-uA%y%n?k-O8_|aV}flz^b^Mcn5?XTsalt-$f%0B$WReF(W;9F zYCIWScCZS!2+sDbDkNmTb?&QNBA4qF2$a{7@JBftrCgfQB!H7UtW2Zz3K0q|v<2#L ze;<(0LrbWy6@G}HByc;mMF3(3gH-6`kcIv{t4>FP+2qPST=($MI21cQ zhKc3@YvdgZHS!sB5x`Rb9viUhvD`b&zu~da$KooKJG!2j$YAXgs(|r zHO|#?{nsMGD>@zDVnEj{62J^-35H;Fzl5*8^AD7!|NjJ!(HaIJ|ruL^eb$)I1X^`>AUd*-}bHe!2A9y zE?+s~!z8W?%gU~@atK8ay#P+x56&%yB>Bb!hLQ0QxTSRsQ#x)2bQ{88)IEl>lZ>_M zB>T|MdXZgx;C+KEeLmcHXh`nS2MNO_oYQfobp3JNtT-I+Av`%dBo8vs>U?Ajxz#{;v-X6p z3r)A|2TJpNpIG8Ig(vvA>=@$L)Ly3>0NukH-s`~@9(&ncQeU$XW^vPi&|HnzceMC@ zGQum?1-c6@1mdT?Yi!GYSQl_i?}M`g0PkaHhaQ#dZs!29J)_;-9!8bJC)R{sR@J^n z8?_Og--Yzy{WslYMX*&7t`N0dWYu8J&zIH5_NqfjA_KZ^?aBzwfBdc+ zFZ@}2_~-vDe&-kejFdl(U;XL7fw`~$L44=j58(OdJ_BY6W(G?pkgE!ofy>pP4C)k1 zCVkc2C2e4`ePJ+(ZZd=0KBUeH;EVsKa`;4bk|A+pzKsEwUpb76pEy!BI0qXNRYbpWvcx-3&AH(AF)vW-G3>Pht)>3qqJf+*{kZKP1B z%P$W1l9*3A_u@2{$N5nG!3xN8w#Em+lW0z-c}#N+$6=qMTdmt*o}`&R_i>?SS;FRO zVUVRoAuCVu9-JINsGB7o&jcai8ElaV#iuqYq*kRG47oMKV~xCHJ3}X0_5-E+d3_#@ zP(zjbKixt%;PC-DQs)3FAlY#M(?b+yal5$3PVsN}{6Jw;gjcKs6wbC6#x(C5bI#p| z0*)2`CUqP9Zo8HF%uiw)E14O*o;~<){-3-4*w1|*62Mk~&I4R#J?A&AeeE`G-JwV?C&*u4|aJbet$Uw8*zK7SP5^LL@!z58ZU zOJG}e?ae1k;7VDRO+hJM;#y%-$82cb|oLB3N?XozxGAtY0$~sOhXZ+E>_C5HlKm7}Id7)B#DP>-! zTquj{pE(3rXWi>TR>)$~w%XUv%l?%5`*{F|)_^--;j-Jd>yt0+1y(y8+wF4Fd0o$< zdivUv0N#%E75bAuISJqigf_z&F^PIQ*+34fgu!U*t|KN}W?4c18s}?$VnDwxo@Q>7 zCiL(Sz>YD(nPUx|>+$~2^U&Ud2{qKhd-V+OkEI5VaaOL$roTjvxA0o@x~~LX2_ip; z=5+5s07Pg(!9u9jaLiip`JvhCI3Ci@0XQ*af4i1yK7; zg?wepKBg2q8uTHrvMmz&@G8l`&kW*%zH}^PqRqDCIAkMCm ztBn1`W#(LI2KGyOIdIvZavw^ufbz^=Iwez*X*->YcT8Yx@shZC9KZd0XZ`zgg!-!Z+ZACJr*0FDExXrXuKg~u+WRt(HYzkuIM&KM zoeh2Gcyt@P$j-{WyR!hH~IFDQvzi`PPkFn18ir)YEt4pn2ZBtn1D6T`^yG} zbqeJKm;qdGiGWX-jlAZ}TgLqrH(-)VJ ztN_YxFE1I#W4m1HW$n!bPv$)w)zPx9kcLqY}RozB4<1sjwop-}tb*y4c020mEh zgX(nsuuiSZouOgiP7iUYn~*+WZ2n>L{1(B$`v7#e351+#IHc)Z;kb@P-m%aQ)}wqs zTSB`vw*!CN(H%1IGK_y8P7cX6Hnk0a&|CoyE!WtG2(K7w>w7OFM{H}&*31_?GvvpH z9SO)fyRUt55k8e*6Z(foQJ5rQQHI5mY}>~Ap6 z8!`yY66*kPTT<^~Spq=VWs1zeBJ(Es#|XWUxD10OT`!<4aoG|$=U9ueUzx2qw-=|z zm);2O)IrAW(AH-B$3>XNAWS{T_44u?!IfoDq_b5VHA{ahOh;B_J=k7PjIML{O@=P} zbu0qiQ0gQ5yEg+PYnpFO_f6`{4m*F`9-i5Hpl@&I&Km_$)-NqkDAe??(dGcm51Tuu z6}dC`E9M3qI#UR>;UUZE23=!SZnCr6z(uyw@U?$GcpTjBLy>oE2P=M%bMH3F!LbwF zV<)%yLs~{d7@EIbi!~k?j}FP_yzv^>-P`~H(a|9Z3pi2ZM}Vh?#6dKMCKc|n(>nx= zt^k!v!G%gTBqO%0*F=t(-+9R@1 z2id`^#eHN$ciCHU95WBWi$y_Qn-mI#+W%{`NdQN8xT|8N371O%vgW?z*3hXT3aPTh z`}1u3VI)JjH2WZZqTw&d!*bn(LdyUiY-LEr1|C$m=>7D}4*3=QJdbr){&p?2{Bzz+ zjeBgV0!(ksd5Q3f#{!ZycFwzf^^f=8>2RA586d+5E)3N5g(^sPyKPG09sAnX3TIgd z>61X`<7?_AKzEgMOFdaRP6V=zx74<#<{P>*MI-l z;@3X(XT*W!JXr$CyqhdT*Jrm(SOy8b$SK<@6yrL9WilS?i>@+ph803D8bB~cP^N6h z=K~|G@~76=7cf%?nE?!+s38}@c@r?qz5pO?*(kA%LNX20=pAWn^Xy07wqf2dPH#20 z7bShXo$AOnzyq(W(^~>%Y-?o*<;Tl~(2e`9mP0BU%5E~0!zP+8>$C*dqeKp}(00`s z0Q1}5ozvPc8cPlQ%Kk)r!EN$kQ~UG0NUpptn$dAW$<5Ho24UYQ6Y`Hn-m#sgkT^HS zv3)d;c4-X2iKakDIK}z5YwNGI$rgWZn&05_@tGR?G8W+#`FXAlpNHf9WVWAk74B@l z_r~Xi;Q?g%TIbk6LnGRtAz67F{pTo4EPd?DY64b9fNlp^=^(uXq;uB?2g54*J@tF{ z;<0b|Hhj+q{{0QN*gY^P*7AVs)#BN-oApo{GQj;ju_ERM1=EXyWs z#dT&r3?%E-Q3gOEm0TK0z*t&`lNf=OKr{9OfgHeXnmE89uq=5FB@QxQ54Km<0LYb&F}GZC|7CD0?e?z%yVlAf6)7HrwCMwU z!QazS0+59w7W$Svz?o{`OUg=%z95`wz_Aw^z6XTMdTw?&B%5g<-%JbCUWaTbL^$&l ze@Q(afUI@E=hO~^?n^x8VffoM51?BEPETwx3_7|AA<5=i8g{Zyc*Ro#{{FJq$oI(5 zRE=}KyfZ(~Nv^^6!`m)^g`Et@sD$B#Wc5Qd7RIUo18IZpfZC++iU7`i;!XJW@A*=E z`w#yYoIC$|0bby=SKL1hxhPyP!;n~W4hAk>(b);7sD~G0V5g6-bLnNR%ITtig_8&+;|7C_+u;Q9dl6F)(f3j zt`Fx}0J5E<$OE!4q+cRN8+FYE$eco`{|6fp9&fQhSUA-{zM19}dB;Kl$`)JxaP@5a z!z;$a@CJ@~YDj?WbPKP$IaIIj*50QGuXwhmGkA01O+=nJxr0Mx&u)|NwhN$kFd(y$ zb)gbA5t3E6soq8<@X|KbV`;ncekR!7T?#kWnc8i+%hoRM!H@maH2&wee!{Afy?SB1GmvL4W{1q z%?Q3A;3{#CIB$^kiTerGYsf`87P`g2cA0B^E;3^~Gd700&63o3!&DEnz4WoW$__Af zP*vq8^Zm1Tn^8Fd`>&V5u5mq}q_R*F+v>dbDM2=ln*i*;#+5~6u@Fj-bYTOuD1Rc@bds3NBh-nN#3zg zXcWLB02Ui@x5NXlaRA3^y2qBF3Kv<^f4k;e_&IM3!2O%}aD2XnA=svB{C%Gv!uPU= z;zv0{c+TTl#ql9ZA+WgP0a?m(ac{xINF)Cg%oL#+ZWhf82E}HCTL9N7G!sV}2+k5D9~p~@Qw;`% zWmy0f`*1u1kIxyH5`mP-aV1!SKsjAbfI>Wz++vore%(tdn>gl_U8WwKGKi}T1-Dr; z)^V!sxP0Z}0fj{@aCPu?>t9wLs`)YZtt!MS!!D?6tX#_bmdYRvtUGuONLi1ed`#7F z%mec>ID_lEJ4#gvg(5W2umcFX=Gv)QY@SAk>H%c{vgMY6+?j?#6izpA9B0vP&9v!@ zcql|@v#{y+cRcW#Y~hcp!bR5pFpJYQKCdrr@@M0jmPH|$A7a@5u655vXtG9Rl)0V! zgC`#Q>1~igARJ`K`G9va)pv>2ZBsKuqt^GEm#jME;=pr_{ra!|N&NS3o5i{A>j;k& zh5J-pWjj|;V&>$eshe*s4hEeuU;hC-@gd!*-&r!#i zgHMVFt>-?|ylF5UgFOsv#~Mp=Iuv{fHk0ClK_r3@Ogc%hO2HW zLhTLIA$knJ695(hl*xTi$3+=h*aqKi1CZs_5x~#~Bt!p@tQxj)xrtDUT3@|C<#zSM zE3RJIi?936|AJrn-}eCuyb|Z_W-)U(%(czv75xW~%m{*XEx@%Y>sSiS1VH7Rh0EFR zN0PpDk3qnf!*X0MWlhWMuldh>4zWb=WdP@48uqY!nL6mD;S&{-$#??l#4X0nazCiV zHgf(IqCNeQw|l^)rCe8Zl)0PG!y~;XcPk`I4l?PoNqxDE&TG;8+AJX*x-9ipYVTli zMe+OL`k2(qw9O>|Stt~MY`z6yDguxNAe(D(7?jyJ6FdetZi+$wA}D(KjshC6G?;tEWIJpr^IS@7B#tp1 z!K`or=;c#ze-)gEQdpPSCi`}_0qo*@@?%!t1Kdt^$=a94w>txeu9U`QgYxz%zfV%I zfg3Kt{Q6KR6o8CsDWn+(aI)oPa#P(op{<69-IjkLo@??Pv@{=CONj@8)K+-;njQ#Iae###_w zakc>n@i+!70>MWBJSE|{r{afo@xz22=pqY1cKww@8#=Z)-xwt8KSX2yjl3Me9fuvW11oBm?;yWLGz(W>Z~N86BE?o1!zb`g?>rFSvhA~8H{P@MAy#2s!~`- z_9bA$^-H_uK%50i>)`4*zV%fJa(h9@^4}Xrbfb9;R>#&Q#>XCsxNDWQIL)t9|Qxik7AJYwn5*%$H-(8zrWK%;9 zsZVaQOZX_i$GjVW0ay@VHWu%_@xz2o3Q;&dB>NtKZ1v*)YM8ZIkj%8rCiT(!njsex zGJqlgtEj)}9Q*25;n-1_{xcSbtFo*kWML7=qrgcZR4xWuq_l6aE_5UqQiO9b`>tNERe~sgUtKVG2p;ew($^I z_D@RTJ}K>6c|W7nE1^(b1t1G;t;P`A%IkAJ!cYwr#9ah16M4r%q00MYn(vX14j7cp z#b<*6WZ`0HWthd8hMiIiHQ>(74iB&Be;Cx1jtek5N02Zt5i`bi@OOtrgxc>Q3qYny zcKwxo05A|p)_)$b8o;aU_UadYNqx1uEnQiaI+Jx(Q^WV1{(E@lxwrI?ljN)-3<6;o zPzZYn%dl4q^OMPXOWqU3wuOHgki1|J=%v9D0VuLlU{wNhnzJlrAY})_yrV3G;EQz- z=;z>@LF#?@M7AdU0u09X&~`9s4`iNaLP&QRavXtF+4PLik!E_nOduVnYy-AXz*TmH znJcAr-qDpfEda0Gs~(EUvblOU9=I%^Oy|9O3}csoPL_Qv9`A-BCGA>gJpfh_Zqb3j zP$(237F*y93ANNg7J#e^U?BimrAD_PY~<<4J65SsXhm|(oF3r)K8L!B2VN6f{&_Jz zJ0BgQzqOMMd|o=X1y1_88qjcJh{G$+H4GviM6=R+7Lwt%AXy)MD%w>6G%L5O47rGevTVco_x$)@#^UdM9?ZippB;?A zCJVYEC~^)a0b|xH%wZ<1gQJ4$bvyna$M!kPOaPeH7e`6TZrI9&W6TbmnPq`%rXa1n zrNo|kx(QqyCiKA32SNnIRVHpd`6sYV-Cs#vXU3^)CzY;`G5}-oAW7;fTvRC48=&j+ z297bU<1%s?co*SV$B>R()a{k;M?I!oaFMO~eJtfz3s+e<$U>oTFKwaX90VX+jAYtF z3)83jI;O}w779={#XM!*0l5sO1CZ4QjRDB&Yo+Gjg7Nm`A#2_}MzFrJMIdQJFQ1!W;!L}>+yPnEU7+~G{ zk1xFyKl4j}q8B{SB*dYqn+#Bwln+*zeTFZ~9_aWWi2{@Kp95zQaHh+tv<|w|3w`MK zQ30C=bjA_Ph~nUm*}LPw@wjaV{h&Qe0GL2BHAS&r`UpH@ds%`30wTdavR0jAY!A20 zLzQAIQU?dl;OkhjhgmL<80&z{I)Cuew+z*a<7+YPd&ec9Q-FCT$cN{uw|p1`VqSf*VK(MTJx*(1_EXiwh;t zRe(PPN}TE_TqEruZDiZpLtFS!k~ve8^+G5@fg4zOB&;v)ojSmf>Gsl=P&nmMcCjxj z3FNe1PnIA+8B@=_$k-aDKuymT02zx7WvbN7yT~}@a=BDMEV%H4np;fkiy;_UIPcq- zg6rKGX_W4<;`V*9^1Y_*%fL+cK?p2EG~OjT*E+Vl>5F@!z-4zO($>*9J2R2U^d6|Ia~^b z0+8(oEY*W#)qS{JA9(cY;UfD13ikQg&z&ojooJ3kC zwnqk60$?418Vma?^m1VdJ^WI@#yJ$dXi`&vWq__#_ZZh1>x^~GQAVJqZZx)$zR)c~ z=H0S6XINS<Z4;2}uqBNsr0B3esSwtut zI-#~GeuW=^Y-O81@SW}Z*XfaWEEHNAh?A`SfGmFO5P#n$LA5Z`&Q7wsj! zRu!QZpZ?fe@iV{h#{d`W%sD7GV!cc~Fw;6MQkNYFg90KCz{*ZCU+?DKbx%0PDZu*OYrx@41t2D4 zXu$^I5wl5MDnqaGxDCLcP>nATlRK=;V0$YRVJJfJEBuxCg?%eD4WJu&$NE+%TsPCG zr%{d(3I|!JJ|MdvgV#96-D;=QT%FL95ngfKA2~cIIrv%!%Xl0!@t(K^3I!muH1c5p zxY|8X(-nsPAz5W8#s2rFCj6>!s&V-W>ncJmzWb;DV#x!=DFIL7JkV=r5KJYmFmwJX zSuf){9LE2xH9WB9ySY&%+ zt>zMQdBZr*Iccxq7-b9?WM07-+nMXjWr1hCzPSX#Yy%LMDspipahM6BTUd!7c z?^q}v=083#cSRsUdMnof)uGYIca;V02B-nP^qKLfNTj1M10vuh#f38-sma!&f$rq+0ujeW=hsD4m+en094dPV`b2_ zd(FAAWPErSR=Q6T4C*A~^uRS>|1}T0$}kVM0YKx-b%k>Z!#r54C>gM8cJW5R`X$P? zS11$;g+iejG_Rup2eyGiCu=@fJs#nhx2+iHvsgk;T!POP)851^K=WT`8=$bRlOzX;-SlFgZeWJF8` z0X+mx%rgcnWCcrX?f$V3!5GI@A6Qanlf!FPz-ES?Q!ELHGw&)BXr~S?y5CCfGH|`r zdJso%9o#-~nh3JWdCGWRbo5fVMcG%dkK{&!w${92`Wg!O(K86+dQNxky6#+KrFjp= z{JboCm{w|=yd%xE0a&kN0^T{M_l;$7kCpBzSQ%!)-(&K+t#)7v?Vw>3*UK}8a=B(N z-Y8hVMA_B~g+ifFD0FfQ^BK%;12;%0;KFRPE|pNI0R zGO(S`Kc;n>uZ;cto=6U|oV0EBVI#RDW0`lmv5o(y`y}VsyTky|uvR(_2hDupx&%b2DBD({P$(3NJTak30FP|(!<@OeRzfY;EP!s! z`!E!Wzt#1_ERGHkl1&d82$~1b-9i^xT>v@P!W@%h03IMLTW(qC#V0n?O%@6TAWP}D zfJ6rw^N?*8Br5_Z)W{o#&46oCWZCUYe(3;!G9-K9`MY5Xr8r12+@h(|3S1}a6%jF4 z7_8^`Qs@Qe)?y!)T!cv3v^AGg54GuN+(-6NR~dZ9v*N!j`&@K(`F-^6F{xJ&m$e@_ zul>wV!Kvg8)3ypVJp_|;21sFh4c7=jwuJ&5E4jXWaqh07BU1ai5RBJHd|oo=65~8L zwY0u-%mD1pNMo-^SV!460fha9M>HUJ9IV^eF;-EmVtthDs8A>r3PqlnfPG^_k`Lq< z0YfO%W*6Cf0J4E8@>|B=>aD(?#%jQzxgmU?*=lHbn)}~YN8_|O%O2+ObTRyTg!?~+ z%~2>6Ar_M*T)l9JAZRmzly6rB&}uluiv21=E>`Y8*S$;^SwXLR!!vBkBH#v`0}9~> zEwc!cQ74jwF@));tkxUe-C-Vx0g%@mYzqU|OFuWw$*oIl&)PS?^&=e5hg9^AE&)?zH&`_= z%d-Aj$G4Yuy^x6}kgVt&W1r3&&HB~|%pI}!efrR66vLqtk&i6Ya?RCrQchr?ikw;DY>qICHOCl5|2n(L z0C%>=d(89}hF6^5MsR+X*TIcKEW~@?fE5Zrc6awnzY?OW7mjQU$*iv1 ztD>Ei0ayR|#VY#M0cuF-T$B)V&PBF+@71zt#=DGQY{&VefXcbQm>&$t0>iX;h{b-; z_Hi!Gjq*c*NiP7I#3JCgZ|t0`T(6dbhdT#63dUD*S+Powt-OI ziUw;9UZfK40A^}12{8wVxg=Q43IJ{T0o`V}1_Fbj4)jlBSuB=9qRd;~G2nF#SWw&r zu%x6GyO$5Y@HE~m#ljlML1?T{#~(Cf)7Ll3kPo85v`)LHInx?%?eqm4;9&39T;y|) zGrPSo`KUoXYY!3?`4$s?)*lgsQQE=4J)|F*B&$bRTE+rWyPvr^4U6KIU*8v(H!Cf> z`~)t~>Y9rU+w%kKo$+&LD}W0{JouPAF3EGh6NvLP%-2DTEz!>**1y<}97eSKC~pF#u_2CSoa}g_U*&TE{Gl{ zWH35T>X%`aaM@z8dM@{+lQ&n^8nG0-jlx#=#X7&%JoT_cewj(_+@PJx42^{yx=EqE z-3@D>I4eL=d~ucZZa&9xjmZ^1ENgpWQtA?&)?ZmI{uVQw2iog%2pzLZ#xEexVfR?P z6dp5J6QamXHR~-j%J)dW8sMMRJJ7?py~PN+&vkp5EicREKal+sl6+F>h$}5;jQMJ0 z{$nw#csMa{UEeMag5vpVn1|kIGjEe4l2{;HFp3q5I`S{-e`}gS?I3Ih8!r_o3J1XX zjqnHI2dwz-BkWq!0{e=l3pzxlAI;UaP+P)9MAMJEgw9tKcpCam>38^=c94hH)HBga zy4QlC{eUnFT^IWb#(eYs_oYLHjZHZuYVB0HY2NX^_#9`5aGeQ9I3UQZir^DI7uQ-d zu7-yk3IE$~r-@cR@p^>gT*`faDc;%6{3^zbLn+V9cnEmT0Jln^iSEU0(`!T7ddhQ? z9LL+Qd2I+rcLzBb^@;1crLd=-iU4(XM)ar+KcNUNngLB81wZ1{dpTl9$3JL~`LxiI zRWLj;oU=R?KC%j(cd;1GN0} z0Oj^`W$csolY?;pe8U~8IVQx-U)4*8KL|A%f9@}a?!mmPm&vd#=Egq^MOz1ze=6y| z5&q0;WmPuNF|DL!p(0qLyzv_G)IU_@!#ceDytKiwkZU{h)cr^`M@v^c5t9BE`^5)T zcOnj!fXWX=NXv2;QDy78FoD{zF1w;s?q{_GNAvzYyEwFkjsdW+`6i#DfG$!KggGuUKV+rkcU z3bo}xdA31`bK+GmQjq5>G`U()#81NP3IRX~zA*hEj&fcbxtCwgYC+n{>EVT^NS9b~ z&rczi14YCqnFr zgwRf3o?t4wUl7C8{S|o8!cV99>3=X`RlpzyCwCun7azyjDvBFiU-BD>A?8{xgcpx{ z3TAck1eF+GkRaAOnL4M8@#Xo_Jh3M8h~gOt2hDkMM2Up~kbQDdAW2+Gu|-L2K`9^q zpbvsYwTV|w&6HpV0i0Z8=%UYIz%cx~*GxCe}L~#q!u9xUmosGHZ;iI4j8Oo+~ z9UBMw>XAub5cb5TlSB^0nM zX#}e7ZT!@47$?O1K!zLZapGA&P=*{ix2r-L?kZc92@f)<)r%*3`FKE(hx{Wwe4IKc zjCE+WUl&w4JgtD~SOmaxwSE+i>J4d9d=>f8;XWo6@WpQV@Xi*a9KwQsJ2Ok+LxktD zXVu|hSZIQ<&Nm`R!WubX-@!r9jvkgAnO<*Fk|GhT#jd?ZKFqkbNO8ULg^@l0zj*}Nq*2Q*!-<}dfpZ*P#5f|! zt7JLTl##7s`+6NErIP5kMqZv2=vGoW(q+ar1?q7vKZL=Yp#?58aV9SD?38uHT$-~} zrF*#Ki&qsNNgO~bwbrWtGN49`0oj!M!luZ)HMoxBV{!w(I4o0@nE;|B{}cB{zM5e| zeGeqMRy5#9fdDY;0h<0bPl=T%g1IRCvKirFQ0ixrbfSALX3SFqq?xtg{!Ti`-RxpX zHa7p^5;?i_%yS7WZm`urtPc!>J2%{Xn`t|&loP76Rp8sQPN)I5l8aVAQ@?Bbc&BwT zldNu2Z+1N@f z%)mp$=DJgz#HQ(lQuBqro_Kd$SzAZYWD(RNaCE^`z$Gzp?A#^%FYTG=9)BebVI9U_ zr;;>#!e+-%OuoIWOa@%l@3ayRv$gRjLqZGaaOG|6Z{r;ZC%>=>ZtD#i5x(2pjcCIN z_V^}PN7cP~m>b^B`YaJ)@K~lQNeiv@-&^XR7J9p~^sLtilPTHAB5b?6iv{Y+%%zyy z+gwJi_z>B{amt#)cV&y^Q-eF~2VDI)xKy<9N-Ht0y96%=4bByNbaHTMw1Mfcx*7g- zre1T2ru`4;gtI{La+fw})+Q^6+~+F8l18wk-$_>eT%5;aO*K_I1Fo;yhlWO^@hZyY zJkMnBLdxzduAXBR;LOx)%Ew)afhPl~yDPi)j-3#tLY6IfYCWy(!!nsoW(sruB^hN9 z-GQiQ4Yl9D-t?Yd9rJHr+o^=V@(-~(cNbLr{84xhTWy!s?{&omJPo2_-e(U zlNO$#cY@^jw_oBQu^Zef`X+g6u@4_U`bgjike`?kBYp(c10|@{E$L9jJ4CsWjEFy6 z6q&&KcNGk3VjwYQ^P>}7M+py#FBPeqS4M&()La{8WTo4pPB`|7%#O|>$vLUS-&Zbw zeF#&~C?jOb5;S@i9x6A1+cLBZvS&@Eq&ZRG0_>;Uad9?$ZyGY zKRNYSsz$yAy^;542B`H^cOY#i^UXk~<$GI62n9;X zM_omWzt(Q}NU5V0-tRmavGp6~*`9aJ-TQj_{d3|_*Tx$m$I)9$E-FBw$0#@3;K*|? zA+v^;B;OkepXO?Xs>A5`iw6Y8AVB?(0vbkNuUvqR4~$_%=HEAbdmDM>{=s-0_6$C| zj?OGrGsKZjAO9^*+3~c)J2!#4*oRhjgs5Sk}yA|^!2 z+<#vJ0{Z>pd0AGD2hc_!{h)>YFze64_*8~Wf~9}db%C>lDx(KsCOJ`R%(K~9mxZ1= zsZKpklte=H8u)F+C;(pUOl+V&o4^dM5vIosNv#}m_irSUlh;p{!OCk+A5!}Wke>oN zB>MN7w?efz&9#ohcVJ;wSYV0KLigAPlGs;(tf{YwLp}rkj`w|A_r-w6A?7m8Z;}hs zZHzE=DqXiYSMSCfK$xY$No>E&UR&&^zgs5IE^tJC`0I)DhA~D|gnc!EzZ7;EZ{z*u zP08j`>pymf!Oc?vz71_k2SwZfh|cZLoA;z%u5|Loq%7ML@tX{izjIFPN-^fgxOKiM z(Uy3ELDkxdjIlJBmun1{ntDjoyy^I$3hJ6}-ZXe;+Z45pji|s#kH5J;&~)nXm8s}5 zfxG{;9CHNq{isG^W$iPTQ5s=d<(gX$x zH{xt`a$GT_+dKza{h)YPo<35Q*9cb_mDhq0b~Uk;bTN=i!D69-w6y-I6~~$0q26VC zB$ZeTD|K)DU>{2?Jj;|o04Sc)uhH1%=3SV|X%ZIR-w ze{Go+U(7Lkym2cP%Jlnzo4Mte(zdtjgqe&MKkNqKpN+JD-%2oV!~m)5jfsW^2D>i^ z+Di`-=-(8Jq)nqY_8T2b1D7#=Zx;iwareeP99ce`H2cZAwiL9m==cj%f`AmOmG8u_-=Wn8y@f%QV_;%+J{PJVHjSy zJ)OL`DjRX+tGzi$a6Ao6^IJ~TR_yC{xiTy?ste5+p(1~BoiY>UX3tT6Tbu9i{WvJTkLf*@$lHoe`6-&K2U_4{{+585uA){G(&uqk=a1v1;AT&lXt_^3S8 zX*3feh7~63aySZV0DO7jR9W-O$}B+t*^bSo$y@p@jsW3WymsGYHRyRE1~N6}UyTeL zsRF6K@7H{0u-Q1jT6HR+;!NY=nm9>K#Hu^7*K;C&+E9bBzc2TmHvTLIfzaChE`Ho! zXMWR^o1ba7p7>%7?~)_FQ*JT%SKku226e|6@C@C@z?iU77O>*4TAU-U z?45Q@m`V|q#`1t#H94f%anG9J#P36u+6&y}WcBup`k(a1WET`SDwj{?%#FSH1wS8u zUQ^HgzM;lbne`hy14#nFy4Ix^x7W+gYI zuaadW-R1Ff4c<~q7QsgNU$oR^I6Dx%%AS{sYWP}i zJB(=_u7(gLw^A(vFQ~O}&FAobAf_{ZdsaG3E7RkziK3(pDRf^R{=O|L zkLIe=SI8Y>_N=tU-xff=&ANJ0gcRzC-14q+s*c#-1#Ii${8p z6ZKj}&9Oh|uq%y$B-|G*76kPnap(OkYI6;BMb%d8#bE z7*-5-y_tR%FXKTXI9_{MWOkYLm`j(a-yDlq_)k%oCvPY%R=-oHsCKzE_>Y>!Cs^-< zw32t~c|W2$Ot#)s zj>L0|L11-cI-oP`#U43=`uZ{1$1!Buu zTC2A<{a(J24YOhdTsztc8QuKE=%k!VLKQ%Ip%u_D>off>=6*?|MV)(K5XP%&5wKGk zbd|4hn@Vb@1MITj&OF%!j`t^TF&HV-=sI1^E6G%9AtJ_`ZFYG?rE^9p+>v{<;v-1Mhu-hKI4c^b^M$goMMOXG^Z zUY|TJlq6Y#qqux=|68a|DDT~@cWb(aklrb5fY!8Pjoy+rw!)Y^p`x6)9My!#F!!oz z|1+Fn=^U6W(F?xN;-A+xG^bsxm?&V4NE?)$S|Ff~ck3tRC?~9BsJF!NiAI!cVIg2kM0L4 z0`yN!=?Yyu&OX@>{X|}G?8Zk0IkaUznTP9Wl>+8qn)_Bix*6I0k5pTk@Xk$p_WSAk z2EI4LD;EV6yZDpkXbQk#0gS@49QqIqlSPrWW~LV-f}&dVi|jBD&xz+)|oIJH<+buLR%jA1@9#V{vnW+R$kTV;;auwW-S*%5yad!Pqb8jX|E zDC2cXQTtpZdw*gWp=$d!%CzUxbXy;3M`3?u(sWXagiLktz2nV-m*@TUe$7Fj=d!9P z;FWXtZP~rVZMy(kV&c_{7Ay_zvc-C1(^21YhIZ=~t4nS&n_0%s0iQ{E*as6!M>i_O2XJg3N|+*F!L}t<@-wZ zZB1Dx>fkoC(~6lCjZn&c3^z2^n;a=oZ9gkm>hlFO3468NrKMX?Xg? z)+tW0YHFpMmJPxaP-e&;&AkYsvFI4x~6`%y|1I1 zxGCRwH-==$^0kcZzxxu|rdEZ^Oc+}_WH%7TcASr8SkaEWj2jPA$BsH*`;0Vo_Z@|f zT2U8BsG4~7vR9An?2BhumYp>8ZnN<;{qm5Zptoq%{5hm)UDV{~RC%XYfpQ#W-fuGW z3a3Dcn&~I7qE=EoGxAVTR*qKLMGtF><#Z0SGxYUFK3UrrnfYQIP02rymfMi#tJ(S@ zWLXGH?O{Z$_s)=H#E3+rA0sVmq?=ui3vcOf+fdxIG3yFUWMnLvxyVewz>8H-Sx864 zLH@f4pHbB1FQ+#I}ywJbym}GXkV7ZF;lDLhH7vUaiw0=_r=pE-Yt>uEqUs;j$VvO z?=EHP1RH_86Z@};P?(i{^&=$JittBIR;B5aSW3m;P@?;iTZ}q zB`vVQlmRZRj_4o5H9;0Vx;%;%3N+Au=KNZu@mHP+E?KlAk$F@4S-cGHTPB!EgUPrY?VqVa<(M-(QzSjpYPc)V*7Ic}pf+O=#Yj zA_f}G$mo(a-g~L#7tmMw8|MJYg`1Zw^*M{+ zVy4m1?#TJzmXc|UTMOhBqv2!;ox%}ZdUr_F>l<5ObR4+z0oV%3wnN@%K>L2!K<}pr&YyG;8xyxMB;ieXwVY6Bz7qRQR^j%i?Jw*17 zm{5+NljcQ3Z{GnJ#j+15oHn+yGbD>lAcLfzZ8lq>+1-eR(|)E$pBNvahVx>C2(!<6 zzM=?VPs-KHq=%+KJ?QxYPl3T{dSBrE-u;CR^$vVxj6Frq!tNM`YCi1p+;>drAKHf@IuKV5N5BuCy~RI?4STP~*v{t^IMUoFIkhWg+8m21?L+$vkG*{x zgCg@b&8jYyd`KNK+LzCuh(sg&PdyEH59QY9FfF62ne)+<84a7v&}zx4+rY(F5oCvd zlLMWhU4f=EXkvFJ92Rr;8<2Xt76)rs7q^WF8-P!0I@D{N=Q0GYdaq>Zv zeg%_qX;p@(O^aLnH^|N1|$7oK2$AThnM!1-tUv3re@v2jqH``J;=F!O+tFb zO0K6es7b*@V*P78dq_$X0<(AuM=t4SJ5>Q)O`@YtxVhTKnM(cj?`cWFWWN+cJa*`m zec72qTv0MGn%RSng)$flF!-mXs2ISnNF)V-$mL(S{Mf-;cFU}h`Ai;6A_&hB#>lLq zr~AnVtrg~bfkPO@=d+sn=aA8+gd)$vee-CTj+_17kziD_jZwO$S9Mr+N4mF;4rZtN z>|-sl9{ZzDlwq1@OLVn#T-%-VQS^hi2msCr4OoA#x;xsl4j`~Y4pFK>hEpdbFxG4y0u%uV!3B*mg znxX=m-leOB7~mp}fEmwasyt8P(yB?{=KD_F$^h#RXEawcFM{MEKSR3`GzQC~PLfdE zhiq$CI4ux7VbnMr zHEjww@(aDz-O6PmlA}cM0%qgU0}^ZyKCJkf<>@}4qY;23t3K&xF2Crl1hWfxRsBT@ZCuxGFy+-4Pno)uSOKNEGzU%h%rqxF;nv!fzgNxh zF|68%bq;MxcHtJ;gIns@;1Nx%{DzKdw$jAHb!-gj3phEaGkDX51Z=&xrbi85}Y zF)kaFDrn@pG=>Ld8~4MKDvUKcYN#NmIr;LNzO>A}_zSx4LL93BDn-*v-rtyC+_RH| zpXBfKop~5NuT~tkjXf$b1oqCQdJ__D9H#?aypWidfHdy%hvXz>{eLdFJY8s_S(mo& z$}a=*ZuIZU=JTw>3fkD7M0yl`uS{$I5k_Bn(7vG_WRg5)I{aq*si2UQ;mrEzk8iiG zquR{})_`c|N^Or17wF$W)6pvAy8rvutr1Y_V%~{RPsP@HfGD7MuFxg^|&U5Nz`#j9QV8G-#g$@2|iNNx;)6fzh4VvYKDAO z2RGp#a=rf^icQ`r@UyBIhL=>j?ZcUBu1gK2h@cefljZQ_lISMn|NJ#v{WYG!W6Azz zq$2~>ELu9{Nb`RFzH>XoJwaB@qS!lLCrsbtt_Zmp`o>ZZ5$i~Dpf&n@R$7-Pp+cC~ zGB=KHFy3YVTNxf~7kABWCmoite<@Tgjhc$C$wd-WTq^!2-iM>~Mp&q@Fie3JHhUnw zz5JpOn$Jlcn%Ad1)oRb@M)ps9rw%V^ZFD=JdTbo?urhe1a=}lp^1g|b`zC$OV!=A)aYbdD~eeOP^lHF zX4lpO9O|_x216+=DCzK7W_H_Z7G8M61D;8*B~#H8DtEC2J@EHFm5@Lk+L-qChHr={ z04i(4^ovQYg~~i#R_3`h6}jgva*2t;jh`~DK=2s7UiN(2zid1`m6<7Pp(IByN@}h^ z+V*+HlsPPjM9g7UEum(jB6%6?*x!=pQR$whs^Jxj%z***&xqdliIMHT?BsB33Ag=x z&fzJ%WIq~Azm>cwuO^4ezG=QNzpc@v>}0QGN%6e9wxIL`H-sDCJPC2OObG$$&5nqH z-MO?&PA)=f6B~)5`U5<(Yf>OC0n8hobMgvu3ccivC4-oky7VOPlbqBo)=E94}y%N!q1c3syqAx`9~haUY-2Gf=b)@G{6(nxNOI&ZN+b8Q>HHKDp88mKf<_>sZzIoDrWs zXKF|e#N>fpr7?gX^_&}wLJN2cVp|n<8R$vt|qGi|6OB}2VVyo12 z1RT@ROejRzk-k5rhRg4`8dw2y>yymB8FoAEkLVM2cpiQrW%L~KP)uyJGtbL7>kD-(Nq5vNM z_@KWUGf5^hRTp5!z~$h_Y)H6PvggkO;gGk>&Gm!isWd4yEfIPK%V`dS4ej+Nl#vgK zbY0SDm_5PsPUPn+wadP-6VF?w7rX=Lga5h*Ve9kA@w#Iu&XgczRqBvCy=>UuXObQ` z)Gb(8ylIUIJb;wO~XxB<62rX~DE8IPC+b_q0Lh$*HZ!p0s@Aya!=Rb*qbS{2`-%=4vh$xa#l7Fj3L5Ve?99mC!4T(NV`K`tk|7 zYX-ebW;p8bN~39wh-px?)-=kqJ3GcZIg&T87-=F)kYTEX;$BSfkLmVBe9?2Jq;|_p!b%Sy9Y{zKQAOhk@Z5V(|qW z7J_!GuopAvFDt%G-RDy@jHoxLgO2+A-YeCOHRP#9SM>cWF#W)ajr>sDwafvqO?j#+593UJ{Wm`o`Om1ye_u}S3mLCSOZOVMtz{HF@$3SnQ z%U{>%oRr!!(9{c0BhbKJR+P#^0cUo$humz>H~jdilCa@dDPsvk5B22{R0-+gIEDxV zpc{MI1yaXH7Z>g2{A*8pP&?R|Rt9(7zo^Nb+* zH00vUlNqL6R)*GhX15EYz0>Gl4+tX?@c1VkU$hT^eg?SPaX9?SYgxdCTU{nW<6cnF zY()v~Gk8mVXgl+DpP6jXKqZDE)foLK+EZ&MWf&v59bg_5P?tKj6t1x>vAadH?e{BNAqRrs7L zp=95T(b_Fir+s*%VwWvlBtEGGK+D>>9_zLv#T7kg z5wLNCCQUZ;5t-w3eRq}eYFEtb9XqCH#d?A`5D4yxTZXit^#*;Xc%QdqzjG;OrAn(s zCON;WXtCFcEwiiN$TjqYJ{1poeC9sb>ge01+l1$O7uE&->63?sz5MJ>&@1Eu+I|S(udl9AFDAs zUHz@Cnv&Ar4af}5_7IblzYv)%6Q7fgI8d_wZNqapFDD)q$r8m}b-awZVXcpNWs438 z617Y6A`Qd_)j*GzNDdmRV#}6+TR(#-+{dbOlzqmOCc!H?23Ogb zMWLY5dpbhzQCX*D`}ByrlqtgezXT9-s(YBpOtHJ%%bngvz>v5-bEv-x`UZD zG$ZAYsq~3#3_aUoP-ek6zN=EnW({;^=UKr+@lpE;;qvquQPF3cJr@l_&>qQWvLD-S zXqG}2GEv~B3DQjfWFD3&&>^x@7kp-2Dn!Jszkj|vuCDt-+2VFpedfq`j=v}^?I9^e(gSP z`R!-pzVs6Zd+lWMwcDmrbedsenRSCI>o4wN3d6q?79MT7VTB z@X$>o*7^5U>XxXC05)^e6KVfTv+M{HS%-eG1*J2kNziyfbL7HJsS5*`h3clCTbF{r z0u4P|F+9l`TJ$5;Tk@hV3t118?_9EVlw zl6^G~q=o7`F9ywEghd_p307F`mw@@-HWR=5Y%vNoKXWk_D+ffp^=zQE3BLE+n)#ap zY}LT{{tNTuFhkk=2RO|B)~B*V`8BGL2PDX`f3$Zsbn$zMV9x=k%4?Uxa8L=qanWMI zuH_C@bAwlti0+ar&LG}FyPm8omOw_EyG=tM;an@>pS%Smq zn&CC$&WFkmU&W-of^f@u*!dHwG|H+fonDOg7NvIps76Mr)Q+T}=lsiw z;)q!NALZ=G$|^mDkKT_Kg%|2)ziF=JG*BY9%g=mwaYS~v$nh7k)24Y9yo8ou<---e zSU$FiGoQE3V&w^GKko1(F3F1H=#@&)d9}i21Lozdw^DPvGF-dJ^5r`5KcK5{HR^A3 zLI(#Nngx$}iYRTOe*GN;_JT<@J78Jq%P$3XC)yU2Z zF?aerBU90>Ldn#%ia+Jj>=))E9oY7<3=b@} zl6`!f)qUUk+mo^X*&5k){PU;(J-@=u(2Lb8>vfC1^F1hMur95f-^b$9i_FDHI%gTh zm(fBBFf_1FADmO>kLlq*BmLA zHjdhkKUxM4xowfXwm*}5#{BUO4sn-K#n87eG^fwXr9z#aJCgH1@&V3h(7B+H1-}+^a_=2z9mO5 z?~Ru>a0}m~;_3|4jO$)I{4G^RCv7oZ({XtW64QU;G!XvTf` zKc8E*lF}^hC~?IgnaxUo9ZTQz>krzKnXOLGA@~a~L!B_^__+$#$yq+iWINe7!)Q5< zUnXWr_C{2!hhTbAEK0d?%eQ}b>1Ze^_?sS~^gH%%sb$KE@MqrvQCX@}bX~2aLopA9 zq8T*&X!LuMqdtsk;FhwI&M558!BbBz)`lf&4`ie9Ds}@ziqN}+0VRyR0n#!DljGqj z_gzc~Ue^Dfg#Kq{m#^kLRwbEk3<>UJzm60A4|1d1=+dreuTG99anV(I0}SS zHv3zvC5362Lv5O!TzJ|%&(oT{)^yL`K_jp7^kMPp`Q2HS_h-%PM`l%X(jrPECl~!E z88k9{VrJ@56uE|@krroXUo8fBwhSx_kEZBnYOi9E8QRMP9p-Dpz0Bm)B${z6ZEL*% z*@Fv_$bw#cE3VG8CWN@0%>P~+DP8byciVBrrL&=}8J|1NcQ}8v;pj!q0l$;3=WIM5 zg{b#66Kk6G-=ICOkZiRK1Ai{Ku)clmvaairbzU59Gii+pZVlMVTC#Sn@y=?xSQxCj zxEHS*ZNo`Pr9P=Kmn49@v-1+=JZ#VZV9p{Vv*9_eRPy1?0C)AT2|ag}bpFb-X<|WG z8)T^bD>(UsoVE2t+xy8wJ%m!W)i>1=wf}1aGutO-FOV7mqn3v?mBA;UF&}!<*(xJG z@6p=G@e$r6tUh(AR`F|&5p3nCkwk<2UWg%;>8J;@RDV9}#s(X;t7V)h`gt2CIIY~b~sHxlOL6qWl4Bc1VH!Uhm&T}v!(n?`0BM)9S zneinfyH^fKbKO{&!(!F$vsWO$_7y7}d#}@P5L*>wLo#~sBkC#ofx&*G2cUze;0(X)}Y=+GL zwOrOWU88~ARW8Rjj29QWPSRcP^`*mU~2eo4twL*k>$QviQg}XattfS4}k7jtO0MvMEvQy*0{mahh#2#Wf$EgkeTnfwP zTVy=QFu_#~+OmQv!d3f$-D=YZ?vJ)V@3cwg2ZyIJJ(7_PW*stvnx!0fvRc;u@){>MGWtran>1IUY^UAN(pgo5#yr%ZD zb|%WX#drFfy+jQsHscp7- zn4Yal$#7v$r(kgGZj|~|bpdI9$0x283rjUP``OKZ&(JQ|#{ataE|9+OCsd3PWb)sL z_4KJByld3Y%z9%TvJf=iL+AYNk5q!e4FAU~zq^a>?=nTb{C?54!C#8^e>}PIxBk^6 zR%bpGY1QxFD7bw^yC}hDNYKv*DG?9<3jfO0kqR4SN>N|eKCn!uZ6joY!r z;GTgPh(i|ZqeVN{;~?Abqn{>K8EvhfsBiL`jt0xj9z;~$7FM2K*z+WRAAKHL7Cx5L zs(iBby=*Yb<^%I2c~!zEUI+K#Y9s#qM@Gk0M0JVJYk%v;4c9SrgMU(62l<1$f(;|{ zdv8tkrIVGAGPLi3f^q-nQwAL_cMgY(OYX+_9#MPeXRw}J<=8qwgm)KAt8NWT0>U)sJ{PMs#g(F2(rs%jD6NB*Mt z{$7y?^0)0!hhlY=ceeR^-q;aw$U3Hf5Iwme?H1wq_-3CcL_qO>|D`-DvFqq9A$!iC z^&KY#U@HU=KIt1Z!H1c6@sa2|!Khryn_~z{2 z{LUAYij_*MVwdEkp(lpi35b=mFv9H34n?P%nU=s(W4G}{NA7K*Ove5mR`Pn2{4Wp} z;Z3nXB&!b7$5D~&N$y4lBmAfsHq~{4? z>a0J8gi`=&+3(6a<8P6zdVjb8-N$Y=VPh8tmch_TjMa|O_-q%bp=EsW%gdp&*^CdF zWjs?box{U1f5t+Wza>V4e*cBTOYfK$?Ph*t!XkuLvDz*tpeB;(TTDD+hY~XIw&zr1UXNujKg1-B;mpQG`ce~?szNs8UI%jz7)$+1md~XsCR7MdMuOH< zWV!!@NJZXztMW&EyAsl*P12s{D%+57Gj}9(a_#k4S5SeesC)_#Z%ajM*hDtslGKli zWQcvrZn=@bC=N@b0&`7f791=~+k%O|k@6y5OdZY`t33p}YOb|jb`7nhLm2I2!w|?; zz{O~qR_qk?=92&TE{BPy#wVMyO$O{#kl)EXni|JLPJRB+1FiJmw8CEsC`AiG@A%gl zu&(q*t}I3@lEHc`5Ai5}3xnYHjW5XiM#)~CHE|%v>3LSpAKSdXqK4&+3mUatB}tOr=$C@3|}x ze~EU!Ya>^1D%p@q&C9S)6!QSfG#kG?YM1qg!ZWc9+Mc*yHaME4Egd+5hw6>yer=$j# zB;ShX4beBka{L4&UyTV|bMQ<@A3zi`?9qo?t6ZKad~Jn@b(@`=bBz78!yVmIfAE*| z=Tf*Xl?J1_r8fJ9g+S?m`h(Uv{>A3TX?DGx>r%njc@@(aPg`DUm!hfo1~*dtzNi6B6o!Bx$2iQR{|Yc`c2v_^G>kqS&FVqYKlmo1QA`AjE}uz_ZT+p&0NWr>qtWzE_k3);D!@aDX9}?&`_mBHzkFvcPf1+ zat&uDe9KK~?OdWZdLM57I6)LX1DbjY1QneBeGlI58Sc{z%p=Bi7X;|z)X0ERlmlV= za)IFEyv;je+VeNml&hSQs@xYtNHRvf1^W6PEguI%yUJ>^-vE#-A}?;^p;BJF$t5+i zq4O^4C@r7hjZj*@CFb7upsXz_2mP2=T)EVGiM3$U^tYknu)kGF*3=y67t>;4?Rc zis-!Qm}=yH5RE1v3X}aLcqJ2wQh&v97_V7W*abs6a>J%NyBD$g^xs&$St4G5kcB9u ziJjIT=}%RF_zn?gPKEZEL3XkjLz>G7fDI{c#{(tSd7=ekVH|8x+V;&c6Ol$m24pG~ zkEMQPh!ZOw2?e+k%>;x+U1SOG5#lqXCggV5@oRp8=UP)GMr^#J6&Hd31EIgTdaxHU zz18RZeXMeQ_WAWy>W<*G=Zmq@2LJ%!9R&G~#MBv_i8N&}!Aq|@A9%OF&=m4a`Tb|g89H#W7LJ$KgPsqs_jHY6`O<5 zZyRNi2&wZdxqAKw$Lefmvgtinn*Fna;Odm^; zJ&CQakI4xiBF0{U^BKOuK*PG-7+ocd;K&k2gtvXhv;Zz?Hhww=*G4CM*veBC(#+|& z8M4k}zI5-DWPxCWuUOMts{@<5hkk4_QHlG?=c|!%yf~+Dt6=Ve{8FR0u+~V-yi+PsHwc^je$? z7GL9cTK3Mj1F>ObK~%h#NLOc*3TYHic@K(1J3j0wXe$qwS&v}WY#NB08z(k8Y2W80 zH=W!SCtXhKZU5y|?u23Yju5=3Iwf>XQmJS&_*EI9AEc|VO`_B{$7#L(x|`lGU#(%kXaHr$G5Y{!?DDY zcDi*he1={%$ez+&*b-;aq0>``^P^8g{NcJ_JKadKpXzW!vpCx61* zdc6w}2LP`vq27jt{1c^6+bN8Sj=ci_?=Lb*jQ-r3$Sa8&n!L zp~uONsY!F4BF#;L4kl=7pPINpk)v5w*=!uvM7jg`C`-s;A8y$Dg&k<(C2_A*kOE|* z?p+GQ&v^dsMDBG}qs+kR58$0+t$=H@N{_&m7JIh)DhKb2hB);$3T%7r1^|>se75QL zyUdwMH~mWKlpEuOdEF&CM`GmDAlmRvEAnKcY13A>S9dJdH>%(bHTB&ENc&b|gfgnr zG?P)G*8*w(;Eb>uB3hvi!=?h`*3%6fJ+5!GAb%?%4k`Nwn~IwR16&vblCO!u0es85 zM0<&rH?!)~8g4DoS2$8?`leckpqvP;AC=pZe5ae=pHw>-eKz-{j4?Rq$M0iPmOM`| zk)#Zw&vvB3!n$E$&6u8BC@uy&b0mZ8oaFV?2YZ#!!CCqbT( zuudsCd?rEr6E^ok?-9zRr+muUr2sXCN1paD~d`0~r$4 zKbqvnth)}azlVLz)kbBW%`?@Gjl&IwZIErjrs94)Dx$qzp}s|M@kUBQz)AqXu$oov_>TvCKCwwN$7Ia34EC|jZz zYL8i0ToA*X9VbnqWt(>fpYC-}C0KTyxln;zQjC_f{H1X((TZkPLuSM6C3ah0|&**3iBe7+yI9sK_O-p&aofMg;&_3t$^E9N?eK5EyH2174=3 zrPLg2qaupEhmdppiobSl{Sxp{(GAxy;{;Cxz?ts%^wZKJh~e5)@N109Uu;CiCMQv=5<>ie|5 zYoHm54#WCzTPtZR+r(4ZvpEgSCp{?pBG$j|G782qgUc3O2X&oFx zR5XBlnIVu1|JWE|49bO#m9f3EbS(25wWXVa>$L`j}bWQonlU1A} z$(RJYSi)wvh~oC!X!O)x7iUe?jz=+JT0&i;_hiNKt|Sl%X)l}D%ZAN)^8QA0{9fTb z#YUQ5h6O3=&OA$n6P07C!qF(C`7vGIMkts1Fh>hBo|E`64Nmb0rjYxPF(EaWF1ty$ zh`uS=!@3fK{hbXOo21K2qUHPT_Fd3y*!W`e|Nq*W@4&lla9nII zb32XLNiTEc1f!{!fJk(v()#-O5p8{$*chVxk-aM zUzO{=+ofZghjYULKj6Q(d~r)_fiO>W@w?3KnsWDhgOs?E=(Q(l#>x>Xx3_tI0)w#x za)Y^)%vJ&Ggv(iSls`%NV+id)z&ZrRsG#=Y9=jwqQz1gMLplml=$f3QgJXZLHYz4r zo}?~Pe!yb6m|k_sc=-wXG+E~As`>CyE~a?=O+1AV+_ zrAsM`pudw$h`S`SAnVMs8Yk@{c#Q>^Ypyx#96BGcJgA(uNBo3>6lXLwOvwh60k{I) zFJmIu(ZT=lqH1w}3KZPo0K01Ir;mc!X2ACSlTf*lS{+Hw?WJ>NwBTi=sGUOAL|2C= z_$pCL(S@;CaR=|R(OkY)3#307UV#uf=J?`G#J8`y68~$47N?*Rqs^-OUKg<&&VMm# zypDjug6UU!bEGfJQP!&5spzwQAk>nDR>xB~ql?m#RAnXnE$G1X`|%wz|7|yywnsPN zoE~1cO1ze;()i_=mtcmm3z(P*WRV`q44G6YS~wu z0+LKs&=2~P=C0QkSc6DLFgd%*Wdl_5@UdF-V*v|JjV$H2Kd6GAXSNatZfMPru&Bq7 z)`q(xWAa9?3>DG)2hYid7)DI;v6BrkTcQuS!W`LD$o`&)ymG!(+{ej-K;%j^K-(~s z*&2=B#rtn3U^y!s-%=HC&L)@8M``Zt(INV#TMyYKUtgJ;+75hFk>`W;uln|b^Jsc{ z;_DmXY_tOkbiFqS(9xfu4ay`sz?b51v3&j1%&aRXB&a*qX^mYu5t=$z3F+A z*Pvg^b>KN%Zz!OZaKE@4#%LA>zJ;vQ{XuW11@N6ViLXp5%p~u}7Z8mfGY)~@&pYvf zinWxf<;?XqVUHZ|^rP|Us}|Z2(s|hTlRe*db*)|GZm+wJGA1aCp!XzC4TPf?$;g;^#^ z-x<(7R7~wx)yM>4w6bD?kLe#X6KcQ9kPo#=$@cDKlXXa?XoFo1T&OfHJfPIcn`@+> z*42VatPEC#fCXh%uULftyLoi<%)-t6yQ2qXPsibQ{_1hGk`}3bWm1DKNj4PLngkV2 zW(sJz({*;h>{rZvQsWttF?$-_UQ45KpU37;8n7hCOLiqr7nR%VS!EO9p)<(kZC;fI z(n|39cv*yzYL;cGkQW&7ZGF~|?2RX*M)vCb|Toe1u8l{xl{g=q@0NpRhUo- zO2jy8W_~Yqsjb3&;JjMUPT4hH>u>KKjf;DXDJgoX}vc+3IhB%({lg~A@u}^fZH=zAB zmIwvECluRZ0~eZlFvtddzjyWkJIop?p_#ml{Nm;SnT( z)w`j~%{O?JY>8Y97H6mAm#yqK9Qyo-3HtWn6;was`B~IS=QChu;gDKSt_CjQpMFlI z1T~u$0D5KUw*yFpN=pm5)DFWuqjH%tnZ#o*v2v%MMRGEG_)&YhbjYV3XxZ4s5iS1= z#M~cm8RJ_q>)1sHj$Fk3qtn)DBR6-DI@i-=MfB3&IKo%LQE>QZW)|jwh+}dAx_Q6dR~Lg&sR8 zyE3(p*<{vZ&pg60hH_>jn`|qd->NX;IG3}f)qR3VoVDGaJfzU4_9PL@ zoWm}uQ1Qv|%?ZG5eb@IlD$l=8zW3m3?4^ox@H3a6W|1d@Ti2SYr**n5GWBefDQRr~ zgoR0|r4WQxBVxPVrSKQ;yIWtn^xD3kFhVz|0;;0= z0j8A!>`D9S4r%A&y3h*X3v%3jRHSSH1z2&rL?iQz1+MGkJy^gFrSHy^_XH-i7E>O| zI)lr;g?CBnq33rGSS7ynGY$9z1^0VftJG7?wyhn>-6pe8NgK3!ekVQa`%Kyz?U;`J zm}rOHYPNYs7Hhk`tM3x?`01ZW9-7d<#T5z135asjHgQ#`VSHWaRpJ$tX`Jl@lUSaw zfD(H=AmzY(Ey~Ka$hHkn9Yfn8%sXB!ka+LF)w`oF zeV7xKK8g+wnH-9dYw1^dYxPiMS8fAsQD0=>Bh0!r!z=}B#ym78+U-gnAeY{?UTYAE zwpkNWY5FqO@u@auB?rH-Rhk=l!N*tlCj{k>vRtj6=84q{Jfci`{#`nv{351UqLtZl z4Wf)Hxh|kXyd`cbvhc`F0%)!=t(#%2?4z*Wzgk&x*TQxFj4)xS_BEJtw{cs|uvd22iGgq8_FEei%k(b> z@G{Phwy4utd_?iUcgo!CC8qCB4|r%(k&}w7E^o-oiyNgyGSt_mMM`33)5XjNq^i8^ zh}R(UsOd*pFH+%in#Vme{qAG7?XusPMJD_KShVFXt@?P%mk-=U7^^&~Y)_}(d~1t0 zw4aeLb(Q?Gv*UVR7d~TJYsxaewDQ;4pPFpq(7RH_-Kx{mCAbea6X~eht==bCn|9t? z5}N_XIu9%-pyS*}YMxadlE)k=IX?A;Ay39N$L`VY{^4psw6op{aLbwHaBl7eM4=Jl zp%I+(#IBbE?v+!g`_AnBkC5`yECLB+Ru?@r6}L4#Lcc+H;5fg8ePc^;A%IVItaZbD zf}hqY(dw-gAmgPUUCjM!vx3} zcP|^c$$oH}Spm#d?f_)wOKrN&fQp%s5LV)z$cbZnZ!}fLLq@I zw_7I%nZ;sJ1rh+~Ks))^*Q@14#wB7ZO?vK(au9o@+|*DLlVO8(2}wlPd`)o@==5To zt_%D0Uk@nfhJEu4@f#1>O4GkiU@n`fs@c8lApr|zsK743z)eOL*0^sP5(QlU<|-dc zJQbQRLj<^T=lwdBoceP_JZ~~Pl|+%q_}g|1t`RT}f7+?9Oj?|k?15E>ksN_^(1ecDls z*zz)-KT*Y1FUc+gq&mkA5&C(X-%mv_R0ON~BEzBtVSeulu}rX|1T{_95m^Y8f5Uq+ zAJ{GZwXm9fe2-rWPh3ckieNo8S)tn&V#BNBB5IRsv({hjcn@Q9G`s9GcA46Qv4c#>_HELa3 z5z+=6s8G)X*PCfa%5GJQsGYdiSc4W{O|#61`@k$3I>$b7lv_tdNs$s zH2B$6U`#WKw@@G_DTIwDILYH>pL)1nY0t%q^8EP|#6YfS=SM=a-|?U7uFlyz&|zv` zJ>)sC@zMb{(@`)o0tM7jLm)Tp&Yq=|?!#;{gb9->y z?>2lvH6Nw=Q*@Jw_(xM$x@kypLs>@IXeYC$J1r+}uB>)WTi?mV$;3fDxY)Q@vW=4N z>wn(!PVirjgn;Cu#GhKM_U0e3F?FCzgt)R0Ys-qAtiJRzefqFRN=piNi&Y zouhbsdwMz@ntZRfA5`pvFiS=*G;nQqfe#%M0B*RlHhIgZvI_K@Z$GomKJBvUGE~9b zT=nJ|)HNp=3V)qFgNAL@`DU-wbMxDNVtB}2NCa6vD1T69pK*T$y3AVZxsaCg=m-ty zQU{AcAC$)^#}etivhRI3m*B{=-S>?J|M+iq+B=XayYc&h`w%$-d*>VAuE qV_R^ykV(7yTA~f@u5-u!A1syN&xCmwR2%T0pO?%pUo18Ac=UhiNkWtW diff --git a/app/src/release/res/drawable/ic_wordmark_text_normal.png b/app/src/release/res/drawable/ic_wordmark_text_normal.png index 16ef53a53122540459db8f6dd7743177aa02af48..c5463b66411ae20afeddf7b155a8743105477c09 100644 GIT binary patch literal 1914 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

=Acb%CJC1hx9RF+8Xu{% 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 IM6N<$g7FamSpWb4 diff --git a/app/src/release/res/drawable/ic_wordmark_text_private.png b/app/src/release/res/drawable/ic_wordmark_text_private.png index 21e67c44ad160fea5e6da884d3e994cfe8ead675..2fbe9ced6ae82c341210a91e375a4f3705812e8c 100644 GIT binary patch literal 1657 zcmc&#`#;kQ0Np$ytLt%VQ!1HP87t~@o1&qOSS63#=u6CN=&|8yRPM0EWk}jE*1U?Y zM|rh*n{8y0NtYHfc}>x-B+;Gg{uTH9aL)PRd_L#=c2duubK0)4TLT0FZFfG6aR-6G zuubo%uDr?O^8K3(BA-9wiQUwV{{zDEsmjf6(`ff|9-#gHl=JPGT6VwJyjQ%+`fTv< zDL8=0w(oa4eEqWacw05ea*>tcs&~(H1_V+~b;j6xlKmE#q^Nl_ErEedcw-(V@-PG}hanwD>V=CW>D+Rh(pv#H+!a zAG}^_`Q-fs!_4pvgY42 z%bCkF+%hfatLZMm`^zZIbUs$;HmWQvK_lzC5#zzvdcRVX3`QAKA41?W>oY(QmQoFu z?-rjZY77v*jAMU{f8}RoT4qLXpV}8JaBGqm9JkJa^reWIC&3uC&eGj5ZzE*y!>})w zGDu?idptgcik3f|X0YDCQn{E@wy z?$*-Az`rR{m&h>GRUwIVVR22W^!mADK@dBlMia;{0W^cZ6s@2PvLdX$Gna$Ho&{z? zlm05P$Q6b5mkEg#?@mR8w8FjIs`9RQ1l(5HJCNi#B+K(D(*F~oAE)*zA%Vm}8D@2;kX zQ7=?A#suLCo6gV4#8~y6J=WTXD=#tJF%!JII7n-bmt46E*eBaVt7hYrI|v80nQ1e< zK+7QRM(C2x}@KapWt5%sX}UdrIeQ zV0{DQyi(lAhwwoFPLjeM*4^fL084C>NDn^k>Nq3g>Y`nOb47&#;3r|Da5OqOT_QDBdJ7ynkb zk&$5udz#A!=#TxrsRG2oX*k(njTSowGB>egnEwdx_sN)a|G68%t`evi-%{WQqr@y5 zhLWL0s3C{#{Am@E*4CUY^SJ}PUy#-#>(T<2$3jqySi$fyji#`ugT{*^&C39k?_$#O z^xi41I(AIPzHXh9{ivdUBdO4Mws@~vNN@#`C4z?I(;HF+;k*3tWZnAQA%NO+5@IVr zCPN;X9=NoT_aN_WM8%6EVj%ERI8x%*=b%psp&9-WpA3m9sx%&-lnl(&7Nv(XQXrR4 z9H*$lEE0hZJyh#6ud^4=97hszT0BQC`+F04a*yabGA7OWCDz<2P|B5;$8L^{`iiuK z`O>;{X5gN>kQ>jl+Ts}bkQw%Y%4jl@bMToYOaib}=5`j$+gdP)6E{Nq+eBX7(IHjD zDk2$oKOcgoRX{&*)qU3yz1w|`UK6LZ+g)+yuxk-PeiEYXSzLCqqCTM<-bfJQbx8Jk z)2jJ^j5K@bK&%2YtZQx+c1XCk$HH;NC^<#J=fD(wO+5>i4T$;l@6>&(qcOgoi>nN@IZU;Kf8xKJv2)%4 literal 10114 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 Date: Tue, 5 Sep 2023 10:06:41 +0300 Subject: [PATCH 051/209] Bug 1851543 - Cleanup old Onboarding UI test code --- .../mozilla/fenix/ui/AddToHomeScreenTest.kt | 3 --- .../mozilla/fenix/ui/ComposeHomeScreenTest.kt | 2 -- .../java/org/mozilla/fenix/ui/DeepLinkTest.kt | 1 - .../org/mozilla/fenix/ui/HomeScreenTest.kt | 6 ++++-- .../org/mozilla/fenix/ui/NimbusEventTest.kt | 3 --- .../fenix/ui/NoNetworkAccessStartupTests.kt | 2 -- .../java/org/mozilla/fenix/ui/PocketTest.kt | 21 ++++++------------- .../java/org/mozilla/fenix/ui/TopSitesTest.kt | 2 -- .../mozilla/fenix/ui/robots/CustomTabRobot.kt | 7 ------- .../fenix/ui/robots/HomeScreenRobot.kt | 4 ---- 10 files changed, 10 insertions(+), 41 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt index f1fa8d9b6..4f6601071 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt @@ -79,9 +79,6 @@ class AddToHomeScreenTest { @SmokeTest @Test fun addPrivateBrowsingShortcutTest() { - homeScreen { - }.dismissOnboarding() - homeScreen { }.triggerPrivateBrowsingShortcutPrompt { verifyNoThanksPrivateBrowsingShortcutButton() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHomeScreenTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHomeScreenTest.kt index 5a620ea0c..f9e350dcc 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHomeScreenTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeHomeScreenTest.kt @@ -63,7 +63,6 @@ class ComposeHomeScreenTest { @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1844580") @Test fun homeScreenItemsTest() { - homeScreen {}.dismissOnboarding() homeScreen { verifyHomeWordmark() verifyHomePrivateBrowsingButton() @@ -86,7 +85,6 @@ class ComposeHomeScreenTest { // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/244199 @Test fun privateBrowsingHomeScreenItemsTest() { - homeScreen { }.dismissOnboarding() homeScreen { }.togglePrivateBrowsingMode() homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/DeepLinkTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/DeepLinkTest.kt index 7a5b955f1..258adb4cb 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/DeepLinkTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/DeepLinkTest.kt @@ -91,7 +91,6 @@ class DeepLinkTest { @Test fun openCollections() { - robot.openHomeScreen { /* do nothing */ }.dismissOnboarding() robot.openCollections { verifyCollectionsHeader() } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt index 603572df6..9b1417f47 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/HomeScreenTest.kt @@ -57,8 +57,11 @@ class HomeScreenTest { // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/235396 @Test fun homeScreenItemsTest() { - homeScreen {}.dismissOnboarding() + // Workaround to make sure the Pocket articles are populated before starting the test. homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.goBack { verifyHomeWordmark() verifyHomePrivateBrowsingButton() verifyExistingTopSitesTabs("Wikipedia") @@ -80,7 +83,6 @@ class HomeScreenTest { // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/244199 @Test fun privateBrowsingHomeScreenItemsTest() { - homeScreen { }.dismissOnboarding() homeScreen { }.togglePrivateBrowsingMode() homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt index 55b45aee6..0d63197d9 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt @@ -22,7 +22,6 @@ import org.mozilla.fenix.helpers.Experimentation import org.mozilla.fenix.helpers.HomeActivityIntentTestRule import org.mozilla.fenix.helpers.RetryTestRule import org.mozilla.fenix.helpers.TestHelper.appContext -import org.mozilla.fenix.ui.robots.homeScreen class NimbusEventTest { private lateinit var mDevice: UiDevice @@ -56,8 +55,6 @@ class NimbusEventTest { @Test fun homeScreenNimbusEventsTest() { - homeScreen { }.dismissOnboarding() - Experimentation.withHelper { assertTrue(evalJexl("'app_opened'|eventSum('Days', 28, 0) > 0")) } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/NoNetworkAccessStartupTests.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/NoNetworkAccessStartupTests.kt index 9f9c9c680..e86254832 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/NoNetworkAccessStartupTests.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/NoNetworkAccessStartupTests.kt @@ -43,8 +43,6 @@ class NoNetworkAccessStartupTests { activityTestRule.launchActivity(null) - homeScreen { - }.dismissOnboarding() homeScreen { verifyHomeScreen() } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/PocketTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/PocketTest.kt index 757ec2941..885fa80c0 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/PocketTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/PocketTest.kt @@ -30,6 +30,12 @@ class PocketTest { @Before fun setUp() { mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + + // Workaround to make sure the Pocket articles are populated before starting the tests. + homeScreen { + }.openThreeDotMenu { + }.openSettings { + }.goBack {} } // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2252509 @@ -40,9 +46,6 @@ class PocketTest { it.isRecentlyVisitedFeatureEnabled = false } - homeScreen { - }.dismissOnboarding() - homeScreen { verifyThoughtProvokingStories(true) scrollToPocketProvokingStories() @@ -70,9 +73,6 @@ class PocketTest { it.isRecentlyVisitedFeatureEnabled = false } - homeScreen { - }.dismissOnboarding() - homeScreen { verifyThoughtProvokingStories(true) scrollToPocketProvokingStories() @@ -90,9 +90,6 @@ class PocketTest { it.isRecentlyVisitedFeatureEnabled = false } - homeScreen { - }.dismissOnboarding() - homeScreen { scrollToPocketProvokingStories() verifyDiscoverMoreStoriesButton() @@ -109,9 +106,6 @@ class PocketTest { it.isRecentlyVisitedFeatureEnabled = false } - homeScreen { - }.dismissOnboarding() - homeScreen { verifyStoriesByTopicItemState(activityTestRule, false, 1) clickStoriesByTopicItem(activityTestRule, 1) @@ -127,9 +121,6 @@ class PocketTest { it.isRecentlyVisitedFeatureEnabled = false } - homeScreen { - }.dismissOnboarding() - homeScreen { verifyPoweredByPocket() }.clickPocketLearnMoreLink(activityTestRule) { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt index d1ceacf79..22750644d 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/TopSitesTest.kt @@ -218,8 +218,6 @@ class TopSitesTest { // Expected for en-us defaults @Test fun verifyDefaultTopSitesList() { - homeScreen { }.dismissOnboarding() - homeScreen { verifyExistingTopSitesList() defaultTopSitesList.values.forEach { value -> diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt index 31cc5ae6f..c7a303937 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/CustomTabRobot.kt @@ -167,13 +167,6 @@ class CustomTabRobot { ShareOverlayRobot().interact() return ShareOverlayRobot.Transition() } - - fun goBackToOnboardingScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { - mDevice.pressBack() - - HomeScreenRobot().interact() - return HomeScreenRobot.Transition() - } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt index 15dda4234..c823298ff 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt @@ -494,10 +494,6 @@ class HomeScreenRobot { return SearchRobot.Transition() } - fun dismissOnboarding() { - openThreeDotMenu { }.openSettings { }.goBack { } - } - fun clickUpgradingUserOnboardingSignInButton( testRule: ComposeTestRule, interact: SyncSignInRobot.() -> Unit, From 19375a5d578e5a4f9f3e2c0990c9f73681ec0a9e Mon Sep 17 00:00:00 2001 From: Zac McKenney Date: Thu, 31 Aug 2023 17:04:20 -0700 Subject: [PATCH 052/209] Bug 1846979 - Add extensions process spawning disabled dialog --- app/metrics.yaml | 51 +++++++++ .../java/org/mozilla/fenix/HomeActivity.kt | 7 +- .../ExtensionProcessDisabledController.kt | 78 +++++++++++++ .../ExtensionProcessDisabledControllerTest.kt | 104 ++++++++++++++++++ 4 files changed, 239 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt create mode 100644 app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt diff --git a/app/metrics.yaml b/app/metrics.yaml index 999448822..d68c093a7 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -7754,6 +7754,57 @@ addons: metadata: tags: - WebExtensions + extensions_process_ui_retry: + type: counter + lifetime: application + description: | + A counter that indicates the number of times that a user + has clicked on the button try to restart add-ons + on the dialog for when the extensions process crashed. + send_in_pings: + - metrics + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1850350 + data_reviews: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1850350#c2 + - https://github.com/mozilla-mobile/firefox-android/pull/3472 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + - wdurand@mozilla.com + - amejiamarmol@mozilla.com + - addons-dev-internal@mozilla.com + expires: never + metadata: + tags: + - WebExtensions + extensions_process_ui_disable: + type: counter + lifetime: application + description: | + A counter that indicates the number of times that a user + has clicked on the button continue with add-ons + disabled on the dialog for when the extensions + process crashed. + send_in_pings: + - metrics + bugs: + - https://github.com/mozilla-mobile/fenix/issues/19931 + data_reviews: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1850350#c2 + - https://github.com/mozilla-mobile/firefox-android/pull/3472 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + - wdurand@mozilla.com + - amejiamarmol@mozilla.com + - addons-dev-internal@mozilla.com + expires: never + metadata: + tags: + - WebExtensions perf.startup: cold_main_app_to_first_frame: type: timing_distribution diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 2cfdf2a92..d4ce06e5f 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -91,6 +91,7 @@ import org.mozilla.fenix.GleanMetrics.SplashScreen import org.mozilla.fenix.GleanMetrics.StartOnHome import org.mozilla.fenix.addons.AddonDetailsFragmentDirections import org.mozilla.fenix.addons.AddonPermissionsDetailsFragmentDirections +import org.mozilla.fenix.addons.ExtensionProcessDisabledController import org.mozilla.fenix.browser.browsingmode.BrowsingMode import org.mozilla.fenix.browser.browsingmode.BrowsingModeManager import org.mozilla.fenix.browser.browsingmode.DefaultBrowsingModeManager @@ -193,6 +194,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { WebExtensionPopupFeature(components.core.store, ::openPopup) } + private val extensionProcessDisabledPopupFeature by lazy { + ExtensionProcessDisabledController(this@HomeActivity, components.core.store) + } + private val serviceWorkerSupport by lazy { ServiceWorkerSupportFeature(this) } @@ -341,7 +346,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } supportActionBar?.hide() - lifecycle.addObservers(webExtensionPopupFeature, serviceWorkerSupport) + lifecycle.addObservers(webExtensionPopupFeature, extensionProcessDisabledPopupFeature, serviceWorkerSupport) if (shouldAddToRecentsScreen(intent)) { intent.removeExtra(START_IN_RECENTS_SCREEN) diff --git a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt new file mode 100644 index 000000000..b2b5c6a2c --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt @@ -0,0 +1,78 @@ +/* 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.addons + +import android.app.AlertDialog +import android.content.Context +import androidx.annotation.UiContext +import mozilla.components.browser.state.action.ExtensionProcessDisabledPopupAction +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.Engine +import mozilla.components.support.ktx.android.content.appName +import mozilla.components.support.webextensions.ExtensionProcessDisabledPopupFeature +import org.mozilla.fenix.GleanMetrics.Addons +import org.mozilla.fenix.R +import org.mozilla.fenix.ext.components +import org.mozilla.geckoview.WebExtensionController + +/** + * Present a dialog to the user notifying of extension process spawning disabled and also asking + * whether they would like to continue trying or disable extensions. If the user chooses to retry, + * enable the extension process spawning with [WebExtensionController.enableExtensionProcessSpawning]. + * + * @param context to show the AlertDialog + * @param store The [BrowserStore] which holds the state for showing the dialog + * @param webExtensionController to call when a user enables the process spawning + * @param builder to use for creating the dialog which can be styled as needed + * @param appName to be added to the message. Necessary to be added as a param for testing + */ +private fun presentDialog( + @UiContext context: Context, + store: BrowserStore, + engine: Engine, + builder: AlertDialog.Builder, + appName: String, +) { + val message = context.getString(R.string.addon_process_crash_dialog_message, appName) + + builder.apply { + setCancelable(false) + setTitle(R.string.addon_process_crash_dialog_title) + setMessage(message) + setPositiveButton(R.string.addon_process_crash_dialog_retry_button_text) { dialog, _ -> + engine.enableExtensionProcessSpawning() + Addons.extensionsProcessUiRetry.add() + store.dispatch(ExtensionProcessDisabledPopupAction(false)) + dialog.dismiss() + } + setNegativeButton(R.string.addon_process_crash_dialog_disable_addons_button_text) { dialog, _ -> + Addons.extensionsProcessUiDisable.add() + store.dispatch(ExtensionProcessDisabledPopupAction(false)) + dialog.dismiss() + } + } + + builder.show() +} + +/** + * Controller for showing the user a dialog when the the extension process spawning has been disabled. + * + * @param context to show the AlertDialog + * @param store The [BrowserStore] which holds the state for showing the dialog + * @param webExtensionController to call when a user enables the process spawning + * @param builder to use for creating the dialog which can be styled as needed + * @param appName to be added to the message. Optional and mainly relevant for testing + */ +class ExtensionProcessDisabledController( + @UiContext context: Context, + store: BrowserStore, + engine: Engine = context.components.core.engine, + builder: AlertDialog.Builder = AlertDialog.Builder(context, R.style.DialogStyleNormal), + appName: String = context.appName, +) : ExtensionProcessDisabledPopupFeature( + store, + { presentDialog(context, store, engine, builder, appName) }, +) diff --git a/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt b/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt new file mode 100644 index 000000000..fd85f5a54 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt @@ -0,0 +1,104 @@ +/* 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.addons + +import android.app.AlertDialog +import android.content.Context +import android.content.DialogInterface.OnClickListener +import mozilla.components.browser.state.action.ExtensionProcessDisabledPopupAction +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.Engine +import mozilla.components.support.test.argumentCaptor +import mozilla.components.support.test.libstate.ext.waitUntilIdle +import mozilla.components.support.test.rule.MainCoroutineRule +import mozilla.components.support.test.whenever +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.mockito.Mockito.anyInt +import org.mockito.Mockito.anyString +import org.mockito.Mockito.mock +import org.mockito.Mockito.never +import org.mockito.Mockito.times +import org.mockito.Mockito.verify +import org.mozilla.fenix.helpers.FenixRobolectricTestRunner + +@RunWith(FenixRobolectricTestRunner::class) +class ExtensionProcessDisabledControllerTest { + + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + private val dispatcher = coroutinesTestRule.testDispatcher + + @Test + fun `WHEN showExtensionProcessDisabledPopup is true AND positive button clicked then enable extension process spawning`() { + val context: Context = mock() + val store = BrowserStore() + val engine: Engine = mock() + val appName = "TestApp" + val builder: AlertDialog.Builder = mock() + val controller = ExtensionProcessDisabledController(context, store, engine, builder, appName) + controller.start() + + whenever(context.getString(anyInt(), anyString())).thenReturn("TestString") + + val posClickCaptor = argumentCaptor() + + assertFalse(store.state.showExtensionProcessDisabledPopup) + + store.dispatch(ExtensionProcessDisabledPopupAction(showPopup = true)) + dispatcher.scheduler.advanceUntilIdle() + store.waitUntilIdle() + assertTrue(store.state.showExtensionProcessDisabledPopup) + + verify(builder).setPositiveButton(anyInt(), posClickCaptor.capture()) + + verify(builder).show() + + val dialog: AlertDialog = mock() + posClickCaptor.value.onClick(dialog, 1) + store.waitUntilIdle() + + verify(engine).enableExtensionProcessSpawning() + assertFalse(store.state.showExtensionProcessDisabledPopup) + verify(dialog).dismiss() + } + + @Test + fun `WHEN showExtensionProcessDisabledPopup is true AND negative button clicked then dismiss without enabling extension process spawning`() { + val context: Context = mock() + val store = BrowserStore() + val engine: Engine = mock() + val appName = "TestApp" + val builder: AlertDialog.Builder = mock() + val controller = ExtensionProcessDisabledController(context, store, engine, builder, appName) + controller.start() + + whenever(context.getString(anyInt(), anyString())).thenReturn("TestString") + + val negClickCaptor = argumentCaptor() + + assertFalse(store.state.showExtensionProcessDisabledPopup) + + store.dispatch(ExtensionProcessDisabledPopupAction(showPopup = true)) + dispatcher.scheduler.advanceUntilIdle() + store.waitUntilIdle() + assertTrue(store.state.showExtensionProcessDisabledPopup) + + verify(builder).setNegativeButton(anyInt(), negClickCaptor.capture()) + + verify(builder).show() + + val dialog: AlertDialog = mock() + negClickCaptor.value.onClick(dialog, 1) + store.waitUntilIdle() + + assertFalse(store.state.showExtensionProcessDisabledPopup) + verify(engine, never()).enableExtensionProcessSpawning() + verify(dialog).dismiss() + } +} From 6054bcf76bd582e23396adb6e1b85976cd7669df Mon Sep 17 00:00:00 2001 From: t-p-white Date: Mon, 14 Aug 2023 16:08:04 +0100 Subject: [PATCH 053/209] Bug 1848605 - Implement similar functionality as loadIntoView for Compose Favicons --- .../java/org/mozilla/fenix/compose/Favicon.kt | 5 ++- .../mozilla/fenix/home/topsites/TopSites.kt | 35 ++++++++----------- 2 files changed, 16 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/compose/Favicon.kt b/app/src/main/java/org/mozilla/fenix/compose/Favicon.kt index 870440758..eee49fb60 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/Favicon.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/Favicon.kt @@ -19,7 +19,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import mozilla.components.browser.icons.IconRequest -import mozilla.components.browser.icons.compose.Loader import mozilla.components.browser.icons.compose.Placeholder import mozilla.components.browser.icons.compose.WithIcon import org.mozilla.fenix.components.components @@ -47,10 +46,10 @@ fun Favicon( modifier = modifier, ) } else { - components.core.icons.Loader( + components.core.icons.LoadableImage( url = url, isPrivate = isPrivate, - size = size.toIconRequestSize(), + iconSize = size.toIconRequestSize(), ) { Placeholder { FaviconPlaceholder( diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt index 58f822b79..608f0c3ad 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt @@ -337,19 +337,10 @@ private fun TopSiteFaviconCard( color = backgroundColor, shape = RoundedCornerShape(4.dp), ) { - val drawableForUrl = getDrawableForUrl(topSite.url) - when { - drawableForUrl != null -> { - FaviconImage(painterResource(drawableForUrl)) - } - - topSite is TopSite.Provided -> { - FaviconBitmap(topSite) - } - - else -> { - FaviconDefault(topSite.url) - } + if (topSite is TopSite.Provided) { + FaviconBitmap(topSite) + } else { + FavIconForUrl(topSite.url) } } } @@ -404,16 +395,18 @@ private fun FaviconDefault(url: String) { Favicon(url = url, size = TOP_SITES_FAVICON_SIZE.dp) } -private fun getDrawableForUrl(url: String) = +@Composable +private fun FavIconForUrl(url: String) { when (url) { - SupportUtils.POCKET_TRENDING_URL -> R.drawable.ic_pocket - SupportUtils.BAIDU_URL -> R.drawable.ic_baidu - SupportUtils.JD_URL -> R.drawable.ic_jd - SupportUtils.PDD_URL -> R.drawable.ic_pdd - SupportUtils.TC_URL -> R.drawable.ic_tc - SupportUtils.MEITUAN_URL -> R.drawable.ic_meituan - else -> null + SupportUtils.POCKET_TRENDING_URL -> FaviconImage(painterResource(R.drawable.ic_pocket)) + SupportUtils.BAIDU_URL -> FaviconImage(painterResource(R.drawable.ic_baidu)) + SupportUtils.JD_URL -> FaviconImage(painterResource(R.drawable.ic_jd)) + SupportUtils.PDD_URL -> FaviconImage(painterResource(R.drawable.ic_pdd)) + SupportUtils.TC_URL -> FaviconImage(painterResource(R.drawable.ic_tc)) + SupportUtils.MEITUAN_URL -> FaviconImage(painterResource(R.drawable.ic_meituan)) + else -> FaviconDefault(url) } +} @Composable @Suppress("LongParameterList") From f346f16ea1d0a0cf12451f18f7852e11c7c3440d Mon Sep 17 00:00:00 2001 From: JohanLorenzo Date: Wed, 6 Sep 2023 15:32:25 +0000 Subject: [PATCH 054/209] Update Fenix initial_experiments.json based on the current first-run experiments in experimenter --- app/src/main/res/raw/initial_experiments.json | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/app/src/main/res/raw/initial_experiments.json b/app/src/main/res/raw/initial_experiments.json index f624e7eba..43ce01db1 100644 --- a/app/src/main/res/raw/initial_experiments.json +++ b/app/src/main/res/raw/initial_experiments.json @@ -131,6 +131,67 @@ "localizations": null, "locales": null }, + { + "schemaVersion": "1.12.0", + "slug": "beta-android-onboarding-redesign-treatment-a-rollout", + "id": "beta-android-onboarding-redesign-treatment-a-rollout", + "arguments": {}, + "application": "org.mozilla.firefox_beta", + "appName": "fenix", + "appId": "org.mozilla.firefox_beta", + "channel": "beta", + "userFacingName": "Beta Android Onboarding Redesign - Treatment A Rollout", + "userFacingDescription": "Testing a new onboarding experience.", + "isEnrollmentPaused": false, + "isRollout": true, + "bucketConfig": { + "randomizationUnit": "nimbus_id", + "namespace": "fenix-juno-onboarding-beta-mobile_first_run-rollout-1", + "start": 0, + "count": 10000, + "total": 10000 + }, + "featureIds": [ + "juno-onboarding" + ], + "probeSets": [], + "outcomes": [ + { + "slug": "default-browser", + "priority": "primary" + } + ], + "branches": [ + { + "slug": "treatment-a", + "ratio": 1, + "feature": { + "featureId": "this-is-included-for-mobile-pre-96-support", + "enabled": false, + "value": {} + }, + "features": [ + { + "featureId": "juno-onboarding", + "enabled": true, + "value": { + "enabled": true + } + } + ] + } + ], + "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('118.!') >= 0)))", + "startDate": "2023-09-06", + "enrollmentEndDate": "2023-09-11", + "endDate": null, + "proposedDuration": 28, + "proposedEnrollment": 7, + "referenceBranch": "treatment-a", + "featureValidationOptOut": false, + "localizations": null, + "locales": null + }, { "schemaVersion": "1.12.0", "slug": "felt-privacy-android", From 55aa05e843f7f9e0aaa28a35de3333717cf335fd Mon Sep 17 00:00:00 2001 From: Matthew Tighe Date: Tue, 5 Sep 2023 14:59:44 -0700 Subject: [PATCH 055/209] Bug 1721904 - update thumbnail caching on app open --- app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt | 7 +++++-- .../org/mozilla/fenix/browser/ToolbarGestureHandler.kt | 6 +++--- .../main/java/org/mozilla/fenix/compose/TabThumbnail.kt | 1 + .../main/java/org/mozilla/fenix/compose/ThumbnailCard.kt | 2 +- .../main/java/org/mozilla/fenix/compose/ThumbnailImage.kt | 2 +- .../fenix/home/recentsyncedtabs/view/RecentSyncedTab.kt | 1 + .../fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt | 6 +++--- 7 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt b/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt index 89efc2fab..b49478793 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/TabPreview.kt @@ -66,13 +66,16 @@ class TabPreview @JvmOverloads constructor( } } - fun loadPreviewThumbnail(thumbnailId: String) { + /** + * Load a preview for a thumbnail. + */ + fun loadPreviewThumbnail(thumbnailId: String, isPrivate: Boolean) { doOnNextLayout { val previewThumbnail = binding.previewThumbnail val thumbnailSize = max(previewThumbnail.height, previewThumbnail.width) thumbnailLoader.loadIntoView( previewThumbnail, - ImageLoadRequest(thumbnailId, thumbnailSize), + ImageLoadRequest(thumbnailId, thumbnailSize, isPrivate), ) } } diff --git a/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt b/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt index 6cde3be55..98fd21483 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt @@ -182,12 +182,12 @@ class ToolbarGestureHandler( } private fun preparePreview(destination: Destination) { - val thumbnailId = when (destination) { - is Destination.Tab -> destination.tab.id + val (thumbnailId, isPrivate) = when (destination) { + is Destination.Tab -> destination.tab.id to destination.tab.content.private is Destination.None -> return } - tabPreview.loadPreviewThumbnail(thumbnailId) + tabPreview.loadPreviewThumbnail(thumbnailId, isPrivate) tabPreview.alpha = 1f tabPreview.translationX = when (gestureDirection) { GestureDirection.RIGHT_TO_LEFT -> windowWidth.toFloat() + previewOffset diff --git a/app/src/main/java/org/mozilla/fenix/compose/TabThumbnail.kt b/app/src/main/java/org/mozilla/fenix/compose/TabThumbnail.kt index 19a93f8f2..3e77de1d6 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/TabThumbnail.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/TabThumbnail.kt @@ -61,6 +61,7 @@ fun TabThumbnail( request = ImageLoadRequest( id = tab.id, size = size, + isPrivate = tab.content.private, ), storage = storage, modifier = modifier, diff --git a/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt b/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt index 08af4e961..d4df876dd 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/ThumbnailCard.kt @@ -97,7 +97,7 @@ private fun ThumbnailCardPreview() { FirefoxTheme { ThumbnailCard( url = "https://mozilla.com", - request = ImageLoadRequest("123", THUMBNAIL_SIZE), + request = ImageLoadRequest("123", THUMBNAIL_SIZE, false), storage = ThumbnailStorage(LocalContext.current), modifier = Modifier .size(THUMBNAIL_SIZE.dp) diff --git a/app/src/main/java/org/mozilla/fenix/compose/ThumbnailImage.kt b/app/src/main/java/org/mozilla/fenix/compose/ThumbnailImage.kt index 0ed83ee4a..1bdb4c553 100644 --- a/app/src/main/java/org/mozilla/fenix/compose/ThumbnailImage.kt +++ b/app/src/main/java/org/mozilla/fenix/compose/ThumbnailImage.kt @@ -109,7 +109,7 @@ private data class ThumbnailImageState( private fun ThumbnailImagePreview() { FirefoxTheme { ThumbnailImage( - request = ImageLoadRequest("1", 1), + request = ImageLoadRequest("1", 1, false), storage = ThumbnailStorage(LocalContext.current), modifier = Modifier, contentScale = ContentScale.Crop, diff --git a/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/view/RecentSyncedTab.kt b/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/view/RecentSyncedTab.kt index 28361adc4..d999471e4 100644 --- a/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/view/RecentSyncedTab.kt +++ b/app/src/main/java/org/mozilla/fenix/home/recentsyncedtabs/view/RecentSyncedTab.kt @@ -120,6 +120,7 @@ fun RecentSyncedTab( request = ImageLoadRequest( id = tab.url.hashCode().toString(), size = LocalDensity.current.run { THUMBNAIL_SIZE.dp.toPx().toInt() }, + isPrivate = false, ), storage = storage, modifier = imageModifier, diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt index 7459e3ab5..f78767325 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/AbstractBrowserTabViewHolder.kt @@ -111,7 +111,7 @@ abstract class AbstractBrowserTabViewHolder( } } - loadIntoThumbnailView(thumbnailView, tab.id) + loadIntoThumbnailView(thumbnailView, tab.id, tab.content.private) } override fun showTabIsMultiSelectEnabled(selectedMaskView: View?, isSelected: Boolean) { @@ -201,8 +201,8 @@ abstract class AbstractBrowserTabViewHolder( } } - private fun loadIntoThumbnailView(thumbnailView: ImageView, id: String) { - imageLoader.loadIntoView(thumbnailView, ImageLoadRequest(id, thumbnailSize)) + private fun loadIntoThumbnailView(thumbnailView: ImageView, id: String, isPrivate: Boolean) { + imageLoader.loadIntoView(thumbnailView, ImageLoadRequest(id, thumbnailSize, isPrivate)) } private fun setSelectionInteractor( From 758472a7d23156172de68287d7f134e4831dfb97 Mon Sep 17 00:00:00 2001 From: Benjamin Forehand Date: Tue, 5 Sep 2023 18:47:24 -0500 Subject: [PATCH 056/209] Bug 1850761 - Allow for local usage of experiment integration test suite --- .../fenix/experimentintegration/Pipfile | 2 + .../fenix/experimentintegration/Pipfile.lock | 506 +++++++++++------- .../fenix/experimentintegration/conftest.py | 75 ++- .../fenix/experimentintegration/pytest.ini | 2 +- .../experimentintegration/test_integration.py | 8 +- .../experimentintegration/variables.yaml | 3 + 6 files changed, 384 insertions(+), 212 deletions(-) create mode 100644 app/src/androidTest/java/org/mozilla/fenix/experimentintegration/variables.yaml diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile index 03f589cad..d21a2e8f6 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile @@ -7,6 +7,8 @@ name = "pypi" pytest = "*" pytest-html = "*" pytest-metadata = "*" +pytest-variables = "*" +pyyaml = "*" requests = "*" [dev-packages] diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile.lock b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile.lock index a40cf3ffe..0fb380689 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile.lock +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "917d5c85bd6545dedfbce6aedbd76bd1516993e65943ecfbf7affbece9a2a0ab" + "sha256": "53501c7e751ae79697bf8c7289b6095f49fed97242fe186fea42989e800c39d5" }, "pipfile-spec": 6, "requires": { @@ -16,141 +16,94 @@ ] }, "default": { - "black": { - "hashes": [ - "sha256:064101748afa12ad2291c2b91c960be28b817c0c7eaa35bec09cc63aa56493c5", - "sha256:0945e13506be58bf7db93ee5853243eb368ace1c08a24c65ce108986eac65915", - "sha256:11c410f71b876f961d1de77b9699ad19f939094c3a677323f43d7a29855fe326", - "sha256:1c7b8d606e728a41ea1ccbd7264677e494e87cf630e399262ced92d4a8dac940", - "sha256:1d06691f1eb8de91cd1b322f21e3bfc9efe0c7ca1f0e1eb1db44ea367dff656b", - "sha256:3238f2aacf827d18d26db07524e44741233ae09a584273aa059066d644ca7b30", - "sha256:32daa9783106c28815d05b724238e30718f34155653d4d6e125dc7daec8e260c", - "sha256:35d1381d7a22cc5b2be2f72c7dfdae4072a3336060635718cc7e1ede24221d6c", - "sha256:3a150542a204124ed00683f0db1f5cf1c2aaaa9cc3495b7a3b5976fb136090ab", - "sha256:48f9d345675bb7fbc3dd85821b12487e1b9a75242028adad0333ce36ed2a6d27", - "sha256:50cb33cac881766a5cd9913e10ff75b1e8eb71babf4c7104f2e9c52da1fb7de2", - "sha256:562bd3a70495facf56814293149e51aa1be9931567474993c7942ff7d3533961", - "sha256:67de8d0c209eb5b330cce2469503de11bca4085880d62f1628bd9972cc3366b9", - "sha256:6b39abdfb402002b8a7d030ccc85cf5afff64ee90fa4c5aebc531e3ad0175ddb", - "sha256:6f3c333ea1dd6771b2d3777482429864f8e258899f6ff05826c3a4fcc5ce3f70", - "sha256:714290490c18fb0126baa0fca0a54ee795f7502b44177e1ce7624ba1c00f2331", - "sha256:7c3eb7cea23904399866c55826b31c1f55bbcd3890ce22ff70466b907b6775c2", - "sha256:92c543f6854c28a3c7f39f4d9b7694f9a6eb9d3c5e2ece488c327b6e7ea9b266", - "sha256:a6f6886c9869d4daae2d1715ce34a19bbc4b95006d20ed785ca00fa03cba312d", - "sha256:a8a968125d0a6a404842fa1bf0b349a568634f856aa08ffaff40ae0dfa52e7c6", - "sha256:c7ab5790333c448903c4b721b59c0d80b11fe5e9803d8703e84dcb8da56fec1b", - "sha256:e114420bf26b90d4b9daa597351337762b63039752bdf72bf361364c1aa05925", - "sha256:e198cf27888ad6f4ff331ca1c48ffc038848ea9f031a3b40ba36aced7e22f2c8", - "sha256:ec751418022185b0c1bb7d7736e6933d40bbb14c14a0abcf9123d1b159f98dd4", - "sha256:f0bd2f4a58d6666500542b26354978218a9babcdc972722f4bf90779524515f3" - ], - "index": "pypi", - "version": "==23.3.0" - }, "certifi": { "hashes": [ - "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7", - "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716" + "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", + "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" ], "markers": "python_version >= '3.6'", - "version": "==2023.5.7" + "version": "==2023.7.22" }, "charset-normalizer": { "hashes": [ - "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", - "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", - "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", - "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", - "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", - "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", - "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", - "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", - "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", - "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", - "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", - "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", - "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", - "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", - "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", - "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", - "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", - "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", - "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", - "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", - "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", - "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", - "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", - "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", - "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", - "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", - "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", - "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", - "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", - "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", - "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", - "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", - "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", - "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", - "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", - "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", - "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", - "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", - "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", - "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", - "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", - "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", - "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", - "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", - "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", - "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", - "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", - "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", - "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", - "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", - "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", - "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", - "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", - "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", - "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", - "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", - "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", - "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", - "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", - "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", - "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", - "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", - "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", - "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", - "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", - "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", - "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", - "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", - "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", - "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", - "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", - "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", - "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", - "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", - "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" + "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", + "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", + "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", + "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", + "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", + "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", + "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", + "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", + "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", + "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", + "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", + "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", + "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", + "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", + "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", + "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", + "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", + "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", + "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", + "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", + "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", + "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", + "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", + "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", + "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", + "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", + "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", + "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", + "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", + "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", + "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", + "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", + "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", + "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", + "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", + "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", + "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", + "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", + "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", + "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", + "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", + "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", + "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", + "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", + "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", + "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", + "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", + "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", + "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", + "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", + "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", + "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", + "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", + "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", + "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", + "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", + "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", + "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", + "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", + "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", + "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", + "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", + "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", + "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", + "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", + "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", + "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", + "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", + "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", + "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", + "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", + "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", + "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", + "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", + "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.1.0" - }, - "click": { - "hashes": [ - "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e", - "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48" - ], - "markers": "python_version >= '3.7'", - "version": "==8.1.3" - }, - "flake8": { - "hashes": [ - "sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7", - "sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181" - ], - "index": "pypi", - "version": "==6.0.0" + "version": "==3.2.0" }, "idna": { "hashes": [ @@ -168,21 +121,69 @@ "markers": "python_version >= '3.7'", "version": "==2.0.0" }, - "mccabe": { + "jinja2": { "hashes": [ - "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", - "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" + "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", + "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" ], - "markers": "python_version >= '3.6'", - "version": "==0.7.0" + "markers": "python_version >= '3.7'", + "version": "==3.1.2" }, - "mypy-extensions": { + "markupsafe": { "hashes": [ - "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", - "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" + "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", + "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", + "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", + "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", + "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", + "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", + "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", + "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", + "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", + "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", + "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", + "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", + "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", + "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", + "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", + "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", + "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", + "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", + "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", + "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", + "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", + "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", + "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", + "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", + "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", + "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", + "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", + "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", + "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", + "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", + "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", + "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", + "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", + "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", + "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", + "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", + "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", + "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", + "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", + "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", + "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", + "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", + "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", + "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", + "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", + "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", + "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", + "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", + "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", + "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2" ], - "markers": "python_version >= '3.5'", - "version": "==1.0.0" + "markers": "python_version >= '3.7'", + "version": "==2.1.3" }, "packaging": { "hashes": [ @@ -192,94 +193,219 @@ "markers": "python_version >= '3.7'", "version": "==23.1" }, - "pathspec": { + "pluggy": { "hashes": [ - "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687", - "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293" + "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12", + "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7" ], - "markers": "python_version >= '3.7'", - "version": "==0.11.1" + "markers": "python_version >= '3.8'", + "version": "==1.3.0" }, - "platformdirs": { + "pytest": { "hashes": [ - "sha256:b0cabcb11063d21a0b261d557acb0a9d2126350e63b70cdf7db6347baea456dc", - "sha256:ca9ed98ce73076ba72e092b23d3c93ea6c4e186b3f1c3dad6edd98ff6ffcca2e" + "sha256:2f2301e797521b23e4d2585a0a3d7b5e50fdddaaf7e7d6773ea26ddb17c213ab", + "sha256:460c9a59b14e27c602eb5ece2e47bec99dc5fc5f6513cf924a7d03a578991b1f" ], - "markers": "python_version >= '3.7'", - "version": "==3.8.0" + "index": "pypi", + "version": "==7.4.1" }, - "pluggy": { + "pytest-html": { "hashes": [ - "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849", - "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3" + "sha256:3b473cc278272f8b5a34cd3bf10f88ac5fcb17cb5af22f9323514af00c310e64", + "sha256:79c4677ed6196417bf290d8b81f706342ae49f726f623728efa3f7dfff09f8eb" ], - "markers": "python_version >= '3.7'", - "version": "==1.2.0" + "index": "pypi", + "version": "==4.0.0" }, - "py": { + "pytest-metadata": { "hashes": [ - "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", - "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378" + "sha256:769a9c65d2884bd583bc626b0ace77ad15dbe02dd91a9106d47fd46d9c2569ca", + "sha256:a17b1e40080401dc23177599208c52228df463db191c1a573ccdffacd885e190" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", - "version": "==1.11.0" + "index": "pypi", + "version": "==3.0.0" }, - "pycodestyle": { + "pytest-variables": { "hashes": [ - "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053", - "sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610" + "sha256:190d9d4da5a6013eb02df2049f6047d911cdbe44c5b1734a6acc1748433c93d0", + "sha256:ab84235417afac5a0a7dd4c3918287d9c7329d2e16d570d6e943f8d8e02533b9" ], - "markers": "python_version >= '3.6'", - "version": "==2.10.0" + "index": "pypi", + "version": "==3.0.0" }, - "pyflakes": { + "pyyaml": { "hashes": [ - "sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf", - "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd" + "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", + "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", + "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", + "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", + "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", + "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", + "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", + "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", + "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", + "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", + "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", + "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", + "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", + "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", + "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", + "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", + "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", + "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", + "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", + "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", + "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", + "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", + "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", + "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", + "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", + "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", + "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", + "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", + "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", + "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", + "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", + "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", + "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", + "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", + "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", + "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", + "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", + "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", + "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", + "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", + "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", + "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", + "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", + "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", + "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", + "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", + "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" ], - "markers": "python_version >= '3.6'", - "version": "==3.0.1" + "index": "pypi", + "version": "==6.0.1" }, - "pytest": { + "requests": { "hashes": [ - "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32", - "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a" + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", - "version": "==7.4.0" + "version": "==2.31.0" }, - "pytest-html": { + "urllib3": { "hashes": [ - "sha256:868c08564a68d8b2c26866f1e33178419bb35b1e127c33784a28622eb827f3f3", - "sha256:c4e2f4bb0bffc437f51ad2174a8a3e71df81bbc2f6894604e604af18fbe687c3" + "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11", + "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4" + ], + "markers": "python_version >= '3.7'", + "version": "==2.0.4" + } + }, + "develop": { + "black": { + "hashes": [ + "sha256:01ede61aac8c154b55f35301fac3e730baf0c9cf8120f65a9cd61a81cfb4a0c3", + "sha256:022a582720b0d9480ed82576c920a8c1dde97cc38ff11d8d8859b3bd6ca9eedb", + "sha256:25cc308838fe71f7065df53aedd20327969d05671bac95b38fdf37ebe70ac087", + "sha256:27eb7a0c71604d5de083757fbdb245b1a4fae60e9596514c6ec497eb63f95320", + "sha256:327a8c2550ddc573b51e2c352adb88143464bb9d92c10416feb86b0f5aee5ff6", + "sha256:47e56d83aad53ca140da0af87678fb38e44fd6bc0af71eebab2d1f59b1acf1d3", + "sha256:501387a9edcb75d7ae8a4412bb8749900386eaef258f1aefab18adddea1936bc", + "sha256:552513d5cd5694590d7ef6f46e1767a4df9af168d449ff767b13b084c020e63f", + "sha256:5c4bc552ab52f6c1c506ccae05681fab58c3f72d59ae6e6639e8885e94fe2587", + "sha256:642496b675095d423f9b8448243336f8ec71c9d4d57ec17bf795b67f08132a91", + "sha256:6d1c6022b86f83b632d06f2b02774134def5d4d4f1dac8bef16d90cda18ba28a", + "sha256:7f3bf2dec7d541b4619b8ce526bda74a6b0bffc480a163fed32eb8b3c9aed8ad", + "sha256:831d8f54c3a8c8cf55f64d0422ee875eecac26f5f649fb6c1df65316b67c8926", + "sha256:8417dbd2f57b5701492cd46edcecc4f9208dc75529bcf76c514864e48da867d9", + "sha256:86cee259349b4448adb4ef9b204bb4467aae74a386bce85d56ba4f5dc0da27be", + "sha256:893695a76b140881531062d48476ebe4a48f5d1e9388177e175d76234ca247cd", + "sha256:9fd59d418c60c0348505f2ddf9609c1e1de8e7493eab96198fc89d9f865e7a96", + "sha256:ad0014efc7acf0bd745792bd0d8857413652979200ab924fbf239062adc12491", + "sha256:b5b0ee6d96b345a8b420100b7d71ebfdd19fab5e8301aff48ec270042cd40ac2", + "sha256:c333286dc3ddca6fdff74670b911cccedacb4ef0a60b34e491b8a67c833b343a", + "sha256:f9062af71c59c004cd519e2fb8f5d25d39e46d3af011b41ab43b9c74e27e236f", + "sha256:fb074d8b213749fa1d077d630db0d5f8cc3b2ae63587ad4116e8a436e9bbe995" ], "index": "pypi", - "version": "==3.2.0" + "version": "==23.7.0" }, - "pytest-metadata": { + "click": { "hashes": [ - "sha256:769a9c65d2884bd583bc626b0ace77ad15dbe02dd91a9106d47fd46d9c2569ca", - "sha256:a17b1e40080401dc23177599208c52228df463db191c1a573ccdffacd885e190" + "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", + "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de" ], - "index": "pypi", - "version": "==3.0.0" + "markers": "python_version >= '3.7'", + "version": "==8.1.7" }, - "requests": { + "flake8": { "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + "sha256:d5b3857f07c030bdb5bf41c7f53799571d75c4491748a3adcd47de929e34cd23", + "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5" ], "index": "pypi", - "version": "==2.31.0" + "version": "==6.1.0" }, - "urllib3": { + "mccabe": { "hashes": [ - "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1", - "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825" + "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", + "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e" + ], + "markers": "python_version >= '3.6'", + "version": "==0.7.0" + }, + "mypy-extensions": { + "hashes": [ + "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", + "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.0" + }, + "packaging": { + "hashes": [ + "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", + "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" ], "markers": "python_version >= '3.7'", - "version": "==2.0.3" + "version": "==23.1" + }, + "pathspec": { + "hashes": [ + "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20", + "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3" + ], + "markers": "python_version >= '3.7'", + "version": "==0.11.2" + }, + "platformdirs": { + "hashes": [ + "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d", + "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d" + ], + "markers": "python_version >= '3.7'", + "version": "==3.10.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0", + "sha256:5d1013ba8dc7895b548be5afb05740ca82454fd899971563d2ef625d090326f8" + ], + "markers": "python_version >= '3.8'", + "version": "==2.11.0" + }, + "pyflakes": { + "hashes": [ + "sha256:4132f6d49cb4dae6819e5379898f2b8cce3c5f23994194c24b77d5da2e36f774", + "sha256:a0aae034c444db0071aa077972ba4768d40c830d9539fd45bf4cd3f8f6992efc" + ], + "markers": "python_version >= '3.8'", + "version": "==3.1.0" } - }, - "develop": {} + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py index 19ddbf691..27b2f2f1f 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/conftest.py @@ -1,4 +1,5 @@ import json +import logging import os from pathlib import Path import subprocess @@ -15,15 +16,32 @@ KLAATU_LOCAL_SERVER_URL = "http://localhost:1378" here = Path() -def load_branches(): +def pytest_addoption(parser): + parser.addoption( + "--experiment", action="store", help="The experiments experimenter URL" + ) + parser.addoption( + "--stage", action="store_true", default=None, help="Use the stage server" + ) + + + +@pytest.fixture(name="load_branches") +def fixture_load_branches(experiment_url): branches = [] - data = requests.get(f"{KLAATU_SERVER_URL}/experiment").json() - for item in reversed(data): - if isinstance(item, dict): + + if experiment_url: + data = experiment_url + else: + try: + data = requests.get(f"{KLAATU_SERVER_URL}/experiment").json() + except ConnectionRefusedError: + logging.warn("No URL or experiment slug provided, exiting.") exit() else: - data = item - break + for item in reversed(data): + data = item + break experiment = requests.get(data).json() for item in experiment["branches"]: branches.append(item["slug"]) @@ -45,7 +63,6 @@ def gradlewbuild(gradlewbuild_log): @pytest.fixture(name="experiment_data") def fixture_experiment_data(experiment_url): data = requests.get(experiment_url).json() - del(data["branches"][0]["features"][0]["value"]["message-under-experiment"]) for item in data["branches"][0]["features"][0]["value"]["messages"].values(): for count, trigger in enumerate(item["trigger"]): if "USER_EN_SPEAKER" not in trigger: @@ -54,17 +71,33 @@ def fixture_experiment_data(experiment_url): @pytest.fixture(name="experiment_url", scope="module") -def fixture_experiment_url(): - data = requests.get(f"{KLAATU_LOCAL_SERVER_URL}/experiment").json() +def fixture_experiment_url(request, variables): url = None - for item in data: - if isinstance(item, dict): - continue + + if slug := request.config.getoption("--experiment"): + # Build URL from slug + if request.config.getoption("--stage"): + url = f"{variables['urls']['stage_server']}/api/v6/experiments/{slug}" else: - url = item + url = f"{variables['urls']['prod_server']}/api/v6/experiments/{slug}" + else: + try: + data = requests.get(f"{KLAATU_SERVER_URL}/experiment").json() + except requests.exceptions.ConnectionError: + logging.error("No URL or experiment slug provided, exiting.") + exit() + else: + for item in data: + if isinstance(item, dict): + continue + else: + url = item yield url return_data = {"url": url} - requests.put(f"{KLAATU_SERVER_URL}/experiment", json=return_data) + try: + requests.put(f"{KLAATU_SERVER_URL}/experiment", json=return_data) + except requests.exceptions.ConnectionError: + pass @pytest.fixture(name="json_data") @@ -116,13 +149,17 @@ def fixture_send_test_results(): with open(f"{here.resolve()}/results/index.html", "rb") as f: files = {"file": f} - requests.post(f"{KLAATU_SERVER_URL}/test_results", files=files) + try: + requests.post(f"{KLAATU_SERVER_URL}/test_results", files=files) + except requests.exceptions.ConnectionError: + pass -@pytest.fixture(name="setup_experiment", params=load_branches(), autouse=True) -def fixture_setup_experiment(experiment_slug, json_data, gradlewbuild_log, request): - def _(): - command = f"nimbus-cli --app fenix --channel developer enroll {experiment_slug} --branch {request.param} --file {json_data} --reset-app" +@pytest.fixture(name="setup_experiment") +def fixture_setup_experiment(experiment_slug, json_data, gradlewbuild_log): + def _(branch): + logging.info(f"Testing experiment {experiment_slug}, BRANCH: {branch[0]}") + command = f"nimbus-cli --app fenix --channel developer enroll {experiment_slug} --branch {branch[0]} --file {json_data} --reset-app" try: out = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/pytest.ini b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/pytest.ini index 465cd779e..40a205fb0 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/pytest.ini +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/pytest.ini @@ -1,4 +1,4 @@ [pytest] -addopts = --verbose --html=results/index.html --self-contained-html +addopts = --verbose --html=results/index.html --self-contained-html --variables=variables.yaml log_cli = true log_cli_level = info diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py index 63ef8a494..0794e3386 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/test_integration.py @@ -1,3 +1,7 @@ -def test_survey_navigates_correctly(setup_experiment, gradlewbuild): - setup_experiment() +import pytest + + +@pytest.mark.parametrize("load_branches", [("branch")], indirect=True) +def test_survey_navigates_correctly(setup_experiment, gradlewbuild, load_branches): + setup_experiment(load_branches) gradlewbuild.test("SurveyExperimentIntegrationTest#checkSurveyNavigatesCorrectly") diff --git a/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/variables.yaml b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/variables.yaml new file mode 100644 index 000000000..54e26e502 --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/experimentintegration/variables.yaml @@ -0,0 +1,3 @@ +urls: + stage_server: "https://stage.experimenter.nonprod.dataops.mozgcp.net" + prod_server: "https://experimenter.services.mozilla.com" From 50fa732613137947665dee8057fc0d67e262df6c Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 7 Sep 2023 00:03:42 +0000 Subject: [PATCH 057/209] Import translations from android-l10n --- app/src/main/res/values-gn/strings.xml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 5d8ebf935..0cca19095 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -573,7 +573,7 @@ Ñembyatyha réra - Ñembyatyha jára (puruhára ID) + Ñembyatyha jára (poruhára ID) Moĩmbaha aty moambuepyre. Embotyhína tembiporu’i emoambuekuaa hag̃ua… @@ -1721,12 +1721,12 @@ Emyenyhẽjey %1$s-pe - Emoĩmba ha eñongatu puruhára réra ha ñe’ẽñemi ñanduti rendápe eipuru aja %1$s. + Emoĩmba ha eñongatu poruhára réra ha ñe’ẽñemi ñanduti rendápe eipuru aja %1$s. Emyanyhẽjey ambue apps-pe - Emoĩmba ha eñongatu puruhára réra ha ñe’ẽñemi ambue tembiporu’ípe ne mba’e’oka pegua. + Emoĩmba ha eñongatu poruhára réra ha ñe’ẽñemi ambue tembiporu’ípe ne mba’e’oka pegua. Embojuaju jeike @@ -1754,21 +1754,21 @@ Tenda - Puruhára réra + Poruhára réra Ñe’ẽñemi Ñe’ẽñemi ohasáva kuatiajokohápe - Puruhára réra ohasáva kuatiajokohápe + Poruhára réra ohasáva kuatiajokohápe Emonguatia ñe’ẽñemi Embogue ñe’ẽñemi - Emonguatia puruhára réra + Emonguatia poruhára réra - Embogue puruhára réra + Embogue poruhára réra Emopotĩ mohendahavusu réra @@ -1780,9 +1780,9 @@ Emyandyjey ehecha hag̃ua ne rembiapo ñepyrũ ñongatupyre - Erekokuaa nde puruhára ha ñe’ẽñemi + Erekokuaa nde poruhára ha ñe’ẽñemi - Emboheko pe patrõ jokoháva mba’e’oka pegua, PIN térã ñe’ẽñemi emo’ã hag̃ua nde puruhára ha ñe’ẽñemi ñongatupyrépe jeike ambue orekórõ ne mba’e’oka. + Emboheko pe patrõ jokoháva mba’e’oka pegua, PIN térã ñe’ẽñemi emo’ã hag̃ua nde poruhára ha ñe’ẽñemi ñongatupyrépe jeike ambue orekórõ ne mba’e’oka. Upéi @@ -2045,7 +2045,7 @@ Moñe’ẽha kora isako’ikuaáava ñanduti kundaharape rembiapo ñepyrũme. - Moñe’ẽha kora isako’ikuaáava puruhára réra rembiapo ñepyrũme. + Moñe’ẽha kora isako’ikuaáava poruhára réra rembiapo ñepyrũme. Moñe’ẽha kora isako’ikuaáava ñe’ẽñemi rembiapo ñepyrũme. @@ -2057,7 +2057,7 @@ Tekotevẽ ñe’ẽñemi - Puruhára réra jerurepyre + Poruhára réra jerurepyre Mohendahavusu réra jerurepyre @@ -2066,7 +2066,7 @@ Eñe’ẽ ko’ág̃a - Oĩma tembiapo ñepyrũ puruhára réra peichagua + Oĩma tembiapo ñepyrũ poruhára réra peichagua https://www.example.com From 37d14cf87006a1e61870652166a5ddb11499764b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 00:00:32 +0000 Subject: [PATCH 058/209] Bump cryptography Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.2 to 41.0.3. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/41.0.2...41.0.3) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] --- .../fenix/syncintegration/Pipfile.lock | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock b/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock index 318047890..37fe811b5 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock +++ b/app/src/androidTest/java/org/mozilla/fenix/syncintegration/Pipfile.lock @@ -37,7 +37,7 @@ "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" ], - "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==2023.7.22" }, "cffi": { @@ -192,32 +192,32 @@ }, "cryptography": { "hashes": [ - "sha256:01f1d9e537f9a15b037d5d9ee442b8c22e3ae11ce65ea1f3316a41c78756b711", - "sha256:079347de771f9282fbfe0e0236c716686950c19dee1b76240ab09ce1624d76d7", - "sha256:182be4171f9332b6741ee818ec27daff9fb00349f706629f5cbf417bd50e66fd", - "sha256:192255f539d7a89f2102d07d7375b1e0a81f7478925b3bc2e0549ebf739dae0e", - "sha256:2a034bf7d9ca894720f2ec1d8b7b5832d7e363571828037f9e0c4f18c1b58a58", - "sha256:342f3767e25876751e14f8459ad85e77e660537ca0a066e10e75df9c9e9099f0", - "sha256:439c3cc4c0d42fa999b83ded80a9a1fb54d53c58d6e59234cfe97f241e6c781d", - "sha256:49c3222bb8f8e800aead2e376cbef687bc9e3cb9b58b29a261210456a7783d83", - "sha256:674b669d5daa64206c38e507808aae49904c988fa0a71c935e7006a3e1e83831", - "sha256:7a9a3bced53b7f09da251685224d6a260c3cb291768f54954e28f03ef14e3766", - "sha256:7af244b012711a26196450d34f483357e42aeddb04128885d95a69bd8b14b69b", - "sha256:7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c", - "sha256:84609ade00a6ec59a89729e87a503c6e36af98ddcd566d5f3be52e29ba993182", - "sha256:9a6673c1828db6270b76b22cc696f40cde9043eb90373da5c2f8f2158957f42f", - "sha256:9b6d717393dbae53d4e52684ef4f022444fc1cce3c48c38cb74fca29e1f08eaa", - "sha256:9c3fe6534d59d071ee82081ca3d71eed3210f76ebd0361798c74abc2bcf347d4", - "sha256:a719399b99377b218dac6cf547b6ec54e6ef20207b6165126a280b0ce97e0d2a", - "sha256:b332cba64d99a70c1e0836902720887fb4529ea49ea7f5462cf6640e095e11d2", - "sha256:d124682c7a23c9764e54ca9ab5b308b14b18eba02722b8659fb238546de83a76", - "sha256:d73f419a56d74fef257955f51b18d046f3506270a5fd2ac5febbfa259d6c0fa5", - "sha256:f0dc40e6f7aa37af01aba07277d3d64d5a03dc66d682097541ec4da03cc140ee", - "sha256:f14ad275364c8b4e525d018f6716537ae7b6d369c094805cae45300847e0894f", - "sha256:f772610fe364372de33d76edcd313636a25684edb94cee53fd790195f5989d14" + "sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306", + "sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84", + "sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47", + "sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d", + "sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116", + "sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207", + "sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81", + "sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087", + "sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd", + "sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507", + "sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858", + "sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae", + "sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34", + "sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906", + "sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd", + "sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922", + "sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7", + "sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4", + "sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574", + "sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1", + "sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c", + "sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e", + "sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de" ], - "markers": "python_version >= '3.7'", - "version": "==41.0.2" + "index": "pypi", + "version": "==41.0.3" }, "distro": { "hashes": [ @@ -229,11 +229,11 @@ }, "exceptiongroup": { "hashes": [ - "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5", - "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f" + "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9", + "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3" ], "markers": "python_version < '3.11'", - "version": "==1.1.2" + "version": "==1.1.3" }, "fxapom": { "hashes": [ @@ -373,11 +373,11 @@ }, "pluggy": { "hashes": [ - "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849", - "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3" + "sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12", + "sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7" ], - "markers": "python_version >= '3.7'", - "version": "==1.2.0" + "markers": "python_version >= '3.8'", + "version": "==1.3.0" }, "progressbar2": { "hashes": [ @@ -495,19 +495,19 @@ }, "selenium": { "hashes": [ - "sha256:40241b9d872f58959e9b34e258488bf11844cd86142fd68182bd41db9991fc5c", - "sha256:871bf800c4934f745b909c8dfc7d15c65cf45bd2e943abd54451c810ada395e3" + "sha256:95be6aa449a0ab4ac1198bb9de71bbe9170405e04b9752f4b450dc7292a21828", + "sha256:b2c48b1440db54a0653300d9955f5421390723d53b36ec835e18de8e13bbd401" ], - "markers": "python_version >= '3.7'", - "version": "==4.10.0" + "markers": "python_version >= '3.8'", + "version": "==4.12.0" }, "setuptools": { "hashes": [ - "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f", - "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235" + "sha256:00478ca80aeebeecb2f288d3206b0de568df5cd2b8fada1209843cc9a8d88a48", + "sha256:af3d5949030c3f493f550876b2fd1dd5ec66689c4ee5d5344f009746f71fd5a8" ], - "markers": "python_version >= '3.7'", - "version": "==68.0.0" + "markers": "python_version >= '3.8'", + "version": "==68.2.0" }, "six": { "hashes": [ @@ -557,11 +557,11 @@ }, "trio-websocket": { "hashes": [ - "sha256:1a748604ad906a7dcab9a43c6eb5681e37de4793ba0847ef0bc9486933ed027b", - "sha256:a9937d48e8132ebf833019efde2a52ca82d223a30a7ea3e8d60a7d28f75a4e3a" + "sha256:c7a620c4013c34b7e4477d89fe76695da1e455e4510a8d7ae13f81c632bdce1d", + "sha256:e66b3db3e2453017431dfbd352081006654e1241c2a6800dc2f43d7df54d55c5" ], "markers": "python_version >= '3.7'", - "version": "==0.10.3" + "version": "==0.10.4" }, "typing-extensions": { "hashes": [ From 89489c6e8e841f7c9a32b455d1aeb5394e85cf08 Mon Sep 17 00:00:00 2001 From: iorgamgabriel Date: Wed, 30 Aug 2023 17:00:57 +0300 Subject: [PATCH 059/209] Bug 1850493 - The tracking protection divider should be gone if all the views are gone. --- .../QuickSettingsSheetDialogFragment.kt | 7 +++- .../protections/ProtectionsView.kt | 14 ++++++++ .../quicksettings/ProtectionsViewTest.kt | 32 ++++++++++++++++++- 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt index 2f6b3b243..3f5c19f39 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/QuickSettingsSheetDialogFragment.kt @@ -117,7 +117,12 @@ class QuickSettingsSheetDialogFragment : FenixDialogFragment() { websitePermissionsView = WebsitePermissionsView(binding.websitePermissionsLayout, interactor) protectionsView = - ProtectionsView(binding.trackingProtectionLayout, interactor, context.settings()) + ProtectionsView( + binding.trackingProtectionLayout, + binding.trackingProtectionDivider, + interactor, + context.settings(), + ) clearSiteDataView = ClearSiteDataView( context = context, ioScope = viewLifecycleOwner.lifecycleScope + Dispatchers.IO, diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/ProtectionsView.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/ProtectionsView.kt index 741ed46c3..9ef156d2b 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/ProtectionsView.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/ProtectionsView.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.settings.quicksettings.protections import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import androidx.annotation.VisibleForTesting import androidx.compose.foundation.background @@ -40,12 +41,15 @@ import org.mozilla.fenix.utils.Settings * to additional tracking protection details. * * @param containerView [ViewGroup] in which this View will inflate itself. + * @param trackingProtectionDivider trackingProtectionDivider The divider line between tracking protection layout + * and other views from [QuickSettingsSheetDialogFragment]. * @param interactor [ProtectionsInteractor] which will have delegated to all user * @param settings [Settings] application settings. * interactions. */ class ProtectionsView( val containerView: ViewGroup, + private val trackingProtectionDivider: View, val interactor: ProtectionsInteractor, val settings: Settings, ) { @@ -63,11 +67,21 @@ class ProtectionsView( binding.trackingProtectionDetails.setOnClickListener { interactor.onTrackingProtectionDetailsClicked() } + updateDividerVisibility() + } + + private fun updateDividerVisibility() { + trackingProtectionDivider.isVisible = !( + !binding.trackingProtectionSwitch.isVisible && + !binding.trackingProtectionDetails.isVisible && + !binding.cookieBannerItem.isVisible + ) } @VisibleForTesting internal fun updateDetailsSection(show: Boolean) { binding.trackingProtectionDetails.isVisible = show + updateDividerVisibility() } private fun bindTrackingProtectionInfo(isTrackingProtectionEnabled: Boolean) { diff --git a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ProtectionsViewTest.kt b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ProtectionsViewTest.kt index 6217a5581..4ec21aebc 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ProtectionsViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/quicksettings/ProtectionsViewTest.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.settings.quicksettings +import android.view.View import android.widget.FrameLayout import androidx.core.view.isVisible import io.mockk.MockKAnnotations @@ -32,6 +33,7 @@ class ProtectionsViewTest { private lateinit var view: ProtectionsView private lateinit var binding: QuicksettingsProtectionsPanelBinding private lateinit var interactor: ProtectionsInteractor + private var trackingProtectionDivider: View = spyk(View(testContext)) @MockK(relaxed = true) private lateinit var settings: Settings @@ -40,7 +42,14 @@ class ProtectionsViewTest { fun setup() { MockKAnnotations.init(this) interactor = mockk(relaxed = true) - view = spyk(ProtectionsView(FrameLayout(testContext), interactor, settings)) + view = spyk( + ProtectionsView( + FrameLayout(testContext), + trackingProtectionDivider, + interactor, + settings, + ), + ) binding = view.binding } @@ -160,4 +169,25 @@ class ProtectionsViewTest { assertTrue(binding.trackingProtectionDetails.isVisible) } + + @Test + fun `WHEN all the views from protectionView are gone THEN tracking protection divider is gone`() { + val websiteUrl = "https://mozilla.org" + val state = ProtectionsState( + tab = createTab(url = websiteUrl), + url = websiteUrl, + isTrackingProtectionEnabled = false, + cookieBannerUIMode = CookieBannerUIMode.HIDE, + listTrackers = listOf(), + mode = ProtectionsState.Mode.Normal, + lastAccessedCategory = "", + ) + + every { settings.shouldShowCookieBannerUI } returns true + every { settings.shouldUseCookieBanner } returns true + + view.update(state) + + assertFalse(trackingProtectionDivider.isVisible) + } } From ff9ad247903b4053213b147cc99aa041c0c20d13 Mon Sep 17 00:00:00 2001 From: Oana Horvath Date: Thu, 7 Sep 2023 16:28:34 +0300 Subject: [PATCH 060/209] Bug 1815395 - Disable failing audio-video permissions UI tests (#3512) Co-authored-by: oana.horvath Co-authored-by: Donal Meehan <76789979+DonalMe@users.noreply.github.com> --- .../org/mozilla/fenix/ui/SettingsSitePermissionsTest.kt | 1 + .../java/org/mozilla/fenix/ui/SitePermissionsTest.kt | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSitePermissionsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSitePermissionsTest.kt index 4748eae1b..d73d92b6d 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSitePermissionsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsSitePermissionsTest.kt @@ -416,6 +416,7 @@ class SettingsSitePermissionsTest { } } + @Ignore("Flaky, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1829889") @Test fun verifyDRMControlledContentPermissionSettingsTest() { navigationToolbar { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SitePermissionsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SitePermissionsTest.kt index 8865c2910..e51f08da3 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SitePermissionsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SitePermissionsTest.kt @@ -15,6 +15,7 @@ import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Assume.assumeTrue import org.junit.Before +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest @@ -95,6 +96,7 @@ class SitePermissionsTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1815395") @SmokeTest @Test fun rememberBlockAudioVideoPermissionChoiceTest() { @@ -118,6 +120,7 @@ class SitePermissionsTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1815395") @SmokeTest @Test fun rememberAllowAudioVideoPermissionChoiceTest() { @@ -158,6 +161,7 @@ class SitePermissionsTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1815395") @Test fun rememberBlockMicrophonePermissionChoiceTest() { assumeTrue(micManager.microphones.isNotEmpty()) @@ -179,6 +183,7 @@ class SitePermissionsTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1815395") @Test fun rememberAllowMicrophonePermissionChoiceTest() { assumeTrue(micManager.microphones.isNotEmpty()) @@ -217,6 +222,7 @@ class SitePermissionsTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1815395") @Test fun rememberBlockCameraPermissionChoiceTest() { assumeTrue(cameraManager.cameraIdList.isNotEmpty()) @@ -238,6 +244,7 @@ class SitePermissionsTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1815395") @Test fun rememberAllowCameraPermissionChoiceTest() { assumeTrue(cameraManager.cameraIdList.isNotEmpty()) From 1f43b5e865d752edd583836a5b2d93dae49839e2 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Thu, 7 Sep 2023 16:37:13 +0300 Subject: [PATCH 061/209] Bug 1847141 - Remove hardcoding of RECEIVE_DOWNLOAD_BROADCAST_PERMISSION --- app/src/main/AndroidManifest.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f394fabd1..302b5ed10 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -40,9 +40,6 @@ - - - Date: Thu, 7 Sep 2023 10:01:15 -0400 Subject: [PATCH 062/209] Bug 1852002 - Update AndroidX Lifecycle to version 2.6.2 --- app/build.gradle | 2 +- .../fenixdependencies/src/main/java/FenixDependenciesPlugin.kt | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 78d698dad..df6ae8cba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -599,7 +599,7 @@ dependencies { implementation FenixDependencies.androidx_navigation_fragment implementation FenixDependencies.androidx_navigation_ui implementation ComponentsDependencies.androidx_recyclerview - implementation FenixDependencies.androidx_lifecycle_common + implementation ComponentsDependencies.androidx_lifecycle_common implementation ComponentsDependencies.androidx_lifecycle_livedata implementation ComponentsDependencies.androidx_lifecycle_process implementation ComponentsDependencies.androidx_lifecycle_runtime diff --git a/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt b/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt index fff754c09..9699b22d3 100644 --- a/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt +++ b/plugins/fenixdependencies/src/main/java/FenixDependenciesPlugin.kt @@ -22,7 +22,6 @@ object FenixVersions { const val androidx_benchmark = "1.1.1" const val androidx_profileinstaller = "1.3.1" const val androidx_legacy = "1.0.0" - const val androidx_lifecycle = "2.6.1" const val androidx_navigation = "2.5.3" const val androidx_splash_screen = "1.0.1" const val androidx_transition = "1.4.1" @@ -58,7 +57,6 @@ object FenixDependencies { const val androidx_profileinstaller = "androidx.profileinstaller:profileinstaller:${FenixVersions.androidx_profileinstaller}" const val androidx_activity_ktx = "androidx.activity:activity-ktx:${FenixVersions.androidx_activity}" const val androidx_legacy = "androidx.legacy:legacy-support-v4:${FenixVersions.androidx_legacy}" - const val androidx_lifecycle_common = "androidx.lifecycle:lifecycle-common:${FenixVersions.androidx_lifecycle}" const val androidx_safeargs = "androidx.navigation:navigation-safe-args-gradle-plugin:${FenixVersions.androidx_navigation}" const val androidx_navigation_fragment = "androidx.navigation:navigation-fragment-ktx:${FenixVersions.androidx_navigation}" const val androidx_navigation_ui = "androidx.navigation:navigation-ui:${FenixVersions.androidx_navigation}" From 454fc73fd12f8db0205e2ac8f33f839f10f0bb7b Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Fri, 11 Aug 2023 17:00:57 +0300 Subject: [PATCH 063/209] Bug 1844319 - Add review quality check CFR --- .../toolbar/BrowserToolbarCFRPresenter.kt | 142 +++++++++++++++--- .../ReviewQualityCheckPreferences.kt | 12 ++ ...ReviewQualityCheckPreferencesMiddleware.kt | 1 + .../java/org/mozilla/fenix/utils/Settings.kt | 16 ++ app/src/main/res/values/preference_keys.xml | 2 + app/src/main/res/values/strings.xml | 5 + .../toolbar/BrowserToolbarCFRPresenterTest.kt | 126 +++++++++++++++- .../store/ReviewQualityCheckStoreTest.kt | 10 +- 8 files changed, 280 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt index 8672d3d46..7d65977be 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt @@ -5,19 +5,24 @@ package org.mozilla.fenix.components.toolbar import android.content.Context +import android.view.View import androidx.annotation.VisibleForTesting import androidx.compose.foundation.clickable import androidx.compose.material.Text import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat.getColor +import androidx.core.view.isVisible import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.transformWhile import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab +import mozilla.components.browser.state.selector.selectedTab import mozilla.components.browser.state.store.BrowserStore import mozilla.components.browser.toolbar.BrowserToolbar import mozilla.components.compose.cfr.CFRPopup @@ -28,8 +33,11 @@ import mozilla.components.service.glean.private.NoExtras import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.R import org.mozilla.fenix.ext.components +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.settings.SupportUtils.SumoTopic.TOTAL_COOKIE_PROTECTION +import org.mozilla.fenix.shopping.DefaultShoppingExperienceFeature +import org.mozilla.fenix.shopping.ShoppingExperienceFeature import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.utils.Settings @@ -39,9 +47,9 @@ import org.mozilla.fenix.utils.Settings private const val CFR_TO_ANCHOR_VERTICAL_PADDING = -6 /** - * The minimum number of opened tabs to show the CFR. + * The minimum number of opened tabs to show the Total Cookie Protection CFR. */ -private const val CRF_MINIMUM_NUMBER_OPENED_TABS = 5 +private const val CFR_MINIMUM_NUMBER_OPENED_TABS = 5 /** * Delegate for handling all the business logic for showing CFRs in the toolbar. @@ -51,6 +59,7 @@ private const val CRF_MINIMUM_NUMBER_OPENED_TABS = 5 * @param settings used to read and write persistent user settings * @param toolbar will serve as anchor for the CFRs * @param sessionId optional custom tab id used to identify the custom tab in which to show a CFR. + * @param shoppingExperienceFeature Used to determine if [ShoppingExperienceFeature] is enabled. */ class BrowserToolbarCFRPresenter( private val context: Context, @@ -58,41 +67,73 @@ class BrowserToolbarCFRPresenter( private val settings: Settings, private val toolbar: BrowserToolbar, private val sessionId: String? = null, + private val shoppingExperienceFeature: ShoppingExperienceFeature = DefaultShoppingExperienceFeature( + context.settings(), + ), ) { @VisibleForTesting - internal var tcpCfrScope: CoroutineScope? = null + internal var scope: CoroutineScope? = null @VisibleForTesting - internal var tcpCfrPopup: CFRPopup? = null + internal var popup: CFRPopup? = null /** * Start observing [browserStore] for updates which may trigger showing a CFR. */ @Suppress("MagicNumber") fun start() { - if (shouldShowCFR()) { - tcpCfrScope = browserStore.flowScoped { flow -> - flow - .mapNotNull { it.findCustomTabOrSelectedTab(sessionId)?.content?.progress } - // The "transformWhile" below ensures that the 100% progress is only collected once. - .transformWhile { progress -> - emit(progress) - progress != 100 - } - .filter { it == 100 } - .collect { - tcpCfrScope?.cancel() - showTcpCfr() - } + when (getCFRToShow()) { + ToolbarCFR.TCP -> { + scope = browserStore.flowScoped { flow -> + flow.mapNotNull { it.findCustomTabOrSelectedTab(sessionId)?.content?.progress } + // The "transformWhile" below ensures that the 100% progress is only collected once. + .transformWhile { progress -> + emit(progress) + progress != 100 + }.filter { it == 100 }.collect { + scope?.cancel() + showTcpCfr() + } + } + } + + ToolbarCFR.SHOPPING, ToolbarCFR.SHOPPING_OPTED_IN -> { + scope = browserStore.flowScoped { flow -> + flow.mapNotNull { it.selectedTab } + .filter { it.isProductUrl && it.content.progress == 100 && !it.content.loading } + .distinctUntilChanged() + .collect { + if (toolbar.findViewById(R.id.mozac_browser_toolbar_page_actions).isVisible) { + scope?.cancel() + showShoppingCFR(getCFRToShow() == ToolbarCFR.SHOPPING_OPTED_IN) + } + } + } + } + + ToolbarCFR.NONE -> { + // no-op } } } - private fun shouldShowCFR(): Boolean { - return settings.shouldShowTotalCookieProtectionCFR && ( + private fun getCFRToShow(): ToolbarCFR = when { + settings.shouldShowTotalCookieProtectionCFR && ( !settings.shouldShowCookieBannerReEngagementDialog() || - settings.openTabsCount >= CRF_MINIMUM_NUMBER_OPENED_TABS - ) + settings.openTabsCount >= CFR_MINIMUM_NUMBER_OPENED_TABS + ) -> ToolbarCFR.TCP + + shoppingExperienceFeature.isEnabled && + settings.shouldShowReviewQualityCheckCFR -> { + val optInTime = settings.reviewQualityCheckOptInTimeInMillis + if (optInTime != 0L && System.currentTimeMillis() - optInTime > Settings.ONE_DAY_MS) { + ToolbarCFR.SHOPPING_OPTED_IN + } else { + ToolbarCFR.SHOPPING + } + } + + else -> ToolbarCFR.NONE } /** @@ -100,7 +141,7 @@ class BrowserToolbarCFRPresenter( * CFRs already shown are not automatically dismissed. */ fun stop() { - tcpCfrScope?.cancel() + scope?.cancel() } @VisibleForTesting @@ -151,7 +192,7 @@ class BrowserToolbarCFRPresenter( ), ) TrackingProtection.tcpSumoLinkClicked.record(NoExtras()) - tcpCfrPopup?.dismiss() + popup?.dismiss() }, style = FirefoxTheme.typography.body2.copy( textDecoration = TextDecoration.Underline, @@ -161,9 +202,60 @@ class BrowserToolbarCFRPresenter( }, ).run { settings.shouldShowTotalCookieProtectionCFR = false - tcpCfrPopup = this + popup = this show() TrackingProtection.tcpCfrShown.record(NoExtras()) } } + + @VisibleForTesting + internal fun showShoppingCFR(shouldShowOptedInCFR: Boolean) { + CFRPopup( + anchor = toolbar.findViewById( + R.id.mozac_browser_toolbar_page_actions, + ), + properties = CFRPopupProperties( + popupWidth = 475.dp, + popupAlignment = CFRPopup.PopupAlignment.BODY_CENTERED_IN_SCREEN, + popupBodyColors = listOf( + getColor(context, R.color.fx_mobile_layer_color_gradient_start), + getColor(context, R.color.fx_mobile_layer_color_gradient_end), + ), + popupVerticalOffset = CFR_TO_ANCHOR_VERTICAL_PADDING.dp, + dismissButtonColor = getColor(context, R.color.fx_mobile_icon_color_oncolor), + indicatorDirection = if (settings.toolbarPosition == ToolbarPosition.TOP) { + CFRPopup.IndicatorDirection.UP + } else { + CFRPopup.IndicatorDirection.DOWN + }, + dismissOnBackPress = false, + dismissOnClickOutside = false, + ), + onDismiss = {}, + text = { + FirefoxTheme { + Text( + text = if (shouldShowOptedInCFR) { + stringResource(id = R.string.review_quality_check_second_cfr_message) + } else { + stringResource(id = R.string.review_quality_check_first_cfr_message) + }, + color = FirefoxTheme.colors.textOnColorPrimary, + style = FirefoxTheme.typography.body2, + ) + } + }, + ).run { + settings.shouldShowReviewQualityCheckCFR = false + popup = this + show() + } + } +} + +/** + * The CFR to be shown in the toolbar. + */ +private enum class ToolbarCFR { + TCP, SHOPPING, SHOPPING_OPTED_IN, NONE } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferences.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferences.kt index 8111dc861..863e75030 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferences.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferences.kt @@ -31,6 +31,11 @@ interface ReviewQualityCheckPreferences { * Sets whether the user has enabled product recommendations. */ suspend fun setProductRecommendationsEnabled(isEnabled: Boolean) + + /** + * Updates the condition to display the opted in CFR. + */ + suspend fun updateCFRCondition(time: Long) } /** @@ -58,4 +63,11 @@ class ReviewQualityCheckPreferencesImpl( override suspend fun setProductRecommendationsEnabled(isEnabled: Boolean) { settings.isReviewQualityCheckProductRecommendationsEnabled = isEnabled } + + override suspend fun updateCFRCondition(time: Long) = with(settings) { + if (reviewQualityCheckOptInTimeInMillis == 0L) { + reviewQualityCheckOptInTimeInMillis = time + shouldShowReviewQualityCheckCFR = true + } + } } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt index 14a39a998..fd10f4be5 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ReviewQualityCheckPreferencesMiddleware.kt @@ -73,6 +73,7 @@ class ReviewQualityCheckPreferencesMiddleware( // Update the preference reviewQualityCheckPreferences.setEnabled(true) + reviewQualityCheckPreferences.updateCFRCondition(System.currentTimeMillis()) } } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 5cb74bed7..fb503c682 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -1698,6 +1698,22 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = false, ) + /** + * Indicates if the review quality check CFR should be displayed to the user. + */ + var shouldShowReviewQualityCheckCFR by booleanPreference( + key = appContext.getPreferenceKey(R.string.pref_key_should_show_review_quality_cfr), + default = true, + ) + + /** + * Time in milliseconds since the user first opted in the review quality check feature. + */ + var reviewQualityCheckOptInTimeInMillis by longPreference( + appContext.getPreferenceKey(R.string.pref_key_should_show_review_quality_opt_in_time), + default = 0L, + ) + /** * Get the current mode for how https-only is enabled. */ diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 5e26ad106..9b2ec6631 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -369,4 +369,6 @@ pref_key_is_review_quality_check_enabled pref_key_is_review_quality_check_product_recommendations_enabled + pref_key_should_show_review_quality_cfr + pref_key_should_show_review_quality_opt_in_time diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7441cbfc7..e2149b8c8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2068,6 +2068,11 @@ Go to settings + + Find out if you can trust this product’s reviews — before you buy. + + Are these reviews reliable? Check now to see an adjusted rating. + collapse diff --git a/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt b/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt index 8f1cc4c60..07c08208c 100644 --- a/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt @@ -15,6 +15,7 @@ import io.mockk.verify import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.cancel import mozilla.components.browser.state.action.ContentAction +import mozilla.components.browser.state.action.ShoppingProductAction import mozilla.components.browser.state.state.BrowserState import mozilla.components.browser.state.state.CustomTabSessionState import mozilla.components.browser.state.state.TabSessionState @@ -34,6 +35,7 @@ import org.junit.runner.RunWith import org.mozilla.fenix.GleanMetrics.TrackingProtection import org.mozilla.fenix.R import org.mozilla.fenix.helpers.FenixRobolectricTestRunner +import org.mozilla.fenix.shopping.ShoppingExperienceFeature import org.mozilla.fenix.utils.Settings @RunWith(FenixRobolectricTestRunner::class) @@ -55,7 +57,7 @@ class BrowserToolbarCFRPresenterTest { presenter.start() - assertNotNull(presenter.tcpCfrScope) + assertNotNull(presenter.scope) browserStore.dispatch(ContentAction.UpdateProgressAction(customTab.id, 0)).joinBlocking() verify(exactly = 0) { presenter.showTcpCfr() } @@ -78,7 +80,7 @@ class BrowserToolbarCFRPresenterTest { presenter.start() - assertNotNull(presenter.tcpCfrScope) + assertNotNull(presenter.scope) browserStore.dispatch(ContentAction.UpdateProgressAction(normalTab.id, 1)).joinBlocking() verify(exactly = 0) { presenter.showTcpCfr() } @@ -101,7 +103,7 @@ class BrowserToolbarCFRPresenterTest { presenter.start() - assertNotNull(presenter.tcpCfrScope) + assertNotNull(presenter.scope) browserStore.dispatch(ContentAction.UpdateProgressAction(privateTab.id, 14)).joinBlocking() verify(exactly = 0) { presenter.showTcpCfr() } @@ -124,7 +126,7 @@ class BrowserToolbarCFRPresenterTest { presenter.start() - assertNotNull(presenter.tcpCfrScope) + assertNotNull(presenter.scope) browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 99)).joinBlocking() browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 100)).joinBlocking() @@ -139,12 +141,13 @@ class BrowserToolbarCFRPresenterTest { settings = mockk { every { shouldShowTotalCookieProtectionCFR } returns false every { shouldShowCookieBannerReEngagementDialog() } returns false + every { shouldShowReviewQualityCheckCFR } returns false }, ) presenter.start() - assertNull(presenter.tcpCfrScope) + assertNull(presenter.scope) } @Test @@ -153,7 +156,7 @@ class BrowserToolbarCFRPresenterTest { every { cancel() } just Runs } val presenter = createPresenter() - presenter.tcpCfrScope = tcpScope + presenter.scope = tcpScope presenter.stop() @@ -171,7 +174,7 @@ class BrowserToolbarCFRPresenterTest { presenter.showTcpCfr() verify { settings.shouldShowTotalCookieProtectionCFR = false } - assertNotNull(presenter.tcpCfrPopup) + assertNotNull(presenter.popup) } @Test @@ -187,6 +190,104 @@ class BrowserToolbarCFRPresenterTest { assertNotNull(TrackingProtection.tcpCfrShown.testGetValue()) } + @Test + fun `GIVEN the current tab is showing a product page WHEN the tab is not loading THEN the CFR is shown`() { + val tab = createTab(url = "") + val browserStore = createBrowserStore( + tab = tab, + selectedTabId = tab.id, + ) + val presenter = createPresenter( + browserStore = browserStore, + settings = mockk { + every { shouldShowTotalCookieProtectionCFR } returns false + every { shouldShowReviewQualityCheckCFR } returns true + every { reviewQualityCheckOptInTimeInMillis } returns System.currentTimeMillis() + }, + ) + every { presenter.showShoppingCFR(any()) } just Runs + + presenter.start() + + assertNotNull(presenter.scope) + + browserStore.dispatch(ContentAction.UpdateLoadingStateAction(tab.id, true)).joinBlocking() + verify(exactly = 0) { presenter.showShoppingCFR(eq(false)) } + + browserStore.dispatch(ShoppingProductAction.UpdateProductUrlStatusAction(tab.id, true)).joinBlocking() + verify(exactly = 0) { presenter.showShoppingCFR(eq(false)) } + + browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 100)).joinBlocking() + verify(exactly = 0) { presenter.showShoppingCFR(eq(false)) } + + browserStore.dispatch(ContentAction.UpdateLoadingStateAction(tab.id, false)).joinBlocking() + verify { presenter.showShoppingCFR(eq(false)) } + } + + @Test + fun `GIVEN review quality CFR was previously displayed WHEN starting the presenter THEN don't observe the store`() { + val settings = mockk { + every { shouldShowReviewQualityCheckCFR } returns false + every { shouldShowTotalCookieProtectionCFR } returns false + } + val presenter = createPresenter(settings = settings) + + presenter.start() + + assertNull(presenter.scope) + } + + @Test + fun `GIVEN review quality feature is not enabled WHEN starting the presenter THEN don't observe the store`() { + val presenter = createPresenter( + settings = mockk { + every { shouldShowTotalCookieProtectionCFR } returns false + }, + shoppingExperienceFeature = mockk { + every { isEnabled } returns false + }, + ) + + presenter.start() + + assertNull(presenter.scope) + } + + @Test + fun `GIVEN the user opted in the shopping feature AND the opted in shopping CFR should be shown WHEN the tab is not loading THEN the CFR is shown`() { + val tab = createTab(url = "") + val browserStore = createBrowserStore( + tab = tab, + selectedTabId = tab.id, + ) + + val presenter = createPresenter( + settings = mockk { + every { shouldShowTotalCookieProtectionCFR } returns false + every { shouldShowReviewQualityCheckCFR } returns true + every { reviewQualityCheckOptInTimeInMillis } returns System.currentTimeMillis() - Settings.TWO_DAYS_MS + }, + browserStore = browserStore, + ) + every { presenter.showShoppingCFR(any()) } just Runs + + presenter.start() + + assertNotNull(presenter.scope) + + browserStore.dispatch(ContentAction.UpdateLoadingStateAction(tab.id, true)).joinBlocking() + verify(exactly = 0) { presenter.showShoppingCFR(eq(true)) } + + browserStore.dispatch(ShoppingProductAction.UpdateProductUrlStatusAction(tab.id, true)).joinBlocking() + verify(exactly = 0) { presenter.showShoppingCFR(eq(true)) } + + browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 100)).joinBlocking() + verify(exactly = 0) { presenter.showShoppingCFR(eq(true)) } + + browserStore.dispatch(ContentAction.UpdateLoadingStateAction(tab.id, false)).joinBlocking() + verify { presenter.showShoppingCFR(eq(true)) } + } + /** * Creates and return a [spyk] of a [BrowserToolbarCFRPresenter] that can handle actually showing CFRs. */ @@ -197,11 +298,13 @@ class BrowserToolbarCFRPresenterTest { settings: Settings = mockk { every { shouldShowTotalCookieProtectionCFR } returns true every { shouldShowCookieBannerReEngagementDialog() } returns false + every { shouldShowReviewQualityCheckCFR } returns false }, toolbar: BrowserToolbar = mockk(), sessionId: String? = null, ) = spyk(createPresenter(context, anchor, browserStore, settings, toolbar, sessionId)) { every { showTcpCfr() } just Runs + every { showShoppingCFR(any()) } just Runs } /** @@ -212,17 +315,23 @@ class BrowserToolbarCFRPresenterTest { context: Context = mockk { every { getString(R.string.tcp_cfr_message) } returns "Test" every { getColor(any()) } returns 0 + every { getString(R.string.pref_key_should_show_review_quality_cfr) } returns "test" }, - anchor: View = mockk(), + anchor: View = mockk(relaxed = true), browserStore: BrowserStore = mockk(), settings: Settings = mockk(relaxed = true) { every { shouldShowTotalCookieProtectionCFR } returns true every { shouldShowCookieBannerReEngagementDialog() } returns false + every { shouldShowReviewQualityCheckCFR } returns true }, toolbar: BrowserToolbar = mockk { every { findViewById(R.id.mozac_browser_toolbar_security_indicator) } returns anchor + every { findViewById(R.id.mozac_browser_toolbar_page_actions) } returns anchor }, sessionId: String? = null, + shoppingExperienceFeature: ShoppingExperienceFeature = mockk { + every { isEnabled } returns true + }, ) = spyk( BrowserToolbarCFRPresenter( context = context, @@ -230,6 +339,7 @@ class BrowserToolbarCFRPresenterTest { settings = settings, toolbar = toolbar, sessionId = sessionId, + shoppingExperienceFeature = shoppingExperienceFeature, ), ) diff --git a/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt index 6ca08083a..8053c8e1e 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/store/ReviewQualityCheckStoreTest.kt @@ -48,11 +48,13 @@ class ReviewQualityCheckStoreTest { @Test fun `GIVEN the user has not opted in the feature WHEN the user opts in THEN state should display opted in UI`() = runTest { + var cfrConditionUpdated = false val tested = ReviewQualityCheckStore( middleware = provideReviewQualityCheckMiddleware( reviewQualityCheckPreferences = FakeReviewQualityCheckPreferences( isEnabled = false, isProductRecommendationsEnabled = false, + updateCFRCallback = { cfrConditionUpdated = true }, ), ), ) @@ -64,6 +66,7 @@ class ReviewQualityCheckStoreTest { val expected = ReviewQualityCheckState.OptedIn(productRecommendationsPreference = false) assertEquals(expected, tested.state) + assertEquals(true, cfrConditionUpdated) } @Test @@ -157,7 +160,7 @@ class ReviewQualityCheckStoreTest { } @Test - fun `GIVEN the user has opted in the feature WHEN the a product analysis fetch fails THEN state should reflect that`() = + fun `WHEN the user opts in the feature THEN update the preferences`() = runTest { val reviewQualityCheckService = mock() whenever(reviewQualityCheckService.fetchProductReview()).thenReturn(null) @@ -211,6 +214,7 @@ class ReviewQualityCheckStoreTest { private class FakeReviewQualityCheckPreferences( private val isEnabled: Boolean = false, private val isProductRecommendationsEnabled: Boolean = false, + private val updateCFRCallback: () -> Unit = { }, ) : ReviewQualityCheckPreferences { override suspend fun enabled(): Boolean = isEnabled @@ -221,4 +225,8 @@ private class FakeReviewQualityCheckPreferences( override suspend fun setProductRecommendationsEnabled(isEnabled: Boolean) { } + + override suspend fun updateCFRCondition(time: Long) { + updateCFRCallback() + } } From b4c9ceb4dbf1b75c7d775d3970f2e1d5564f2a15 Mon Sep 17 00:00:00 2001 From: JohanLorenzo Date: Thu, 7 Sep 2023 15:33:11 +0000 Subject: [PATCH 064/209] Update Fenix initial_experiments.json based on the current first-run experiments in experimenter --- app/src/main/res/raw/initial_experiments.json | 114 ------------------ 1 file changed, 114 deletions(-) diff --git a/app/src/main/res/raw/initial_experiments.json b/app/src/main/res/raw/initial_experiments.json index 43ce01db1..4701aa7b3 100644 --- a/app/src/main/res/raw/initial_experiments.json +++ b/app/src/main/res/raw/initial_experiments.json @@ -403,120 +403,6 @@ "featureValidationOptOut": false, "localizations": null, "locales": null - }, - { - "schemaVersion": "1.12.0", - "slug": "splash-screen-max-duration-test", - "id": "splash-screen-max-duration-test", - "arguments": {}, - "application": "org.mozilla.firefox", - "appName": "fenix", - "appId": "org.mozilla.firefox", - "channel": "release", - "userFacingName": "Splash screen max duration test", - "userFacingDescription": "Testing a splashscreen on app launch.", - "isEnrollmentPaused": true, - "isRollout": false, - "bucketConfig": { - "randomizationUnit": "nimbus_id", - "namespace": "fenix-splash-screen-release-1", - "start": 0, - "count": 10000, - "total": 10000 - }, - "featureIds": [ - "splash-screen" - ], - "probeSets": [], - "outcomes": [], - "branches": [ - { - "slug": "control", - "ratio": 1, - "feature": { - "featureId": "this-is-included-for-mobile-pre-96-support", - "enabled": false, - "value": {} - }, - "features": [ - { - "featureId": "splash-screen", - "enabled": true, - "value": { - "enabled": false, - "maximum_duration_ms": 0 - } - } - ] - }, - { - "slug": "treatment-a", - "ratio": 1, - "feature": { - "featureId": "this-is-included-for-mobile-pre-96-support", - "enabled": false, - "value": {} - }, - "features": [ - { - "featureId": "splash-screen", - "enabled": true, - "value": { - "enabled": true, - "maximum_duration_ms": 2500 - } - } - ] - }, - { - "slug": "treatment-b", - "ratio": 1, - "feature": { - "featureId": "this-is-included-for-mobile-pre-96-support", - "enabled": false, - "value": {} - }, - "features": [ - { - "featureId": "splash-screen", - "enabled": true, - "value": { - "enabled": true, - "maximum_duration_ms": 6000 - } - } - ] - }, - { - "slug": "treatment-c", - "ratio": 1, - "feature": { - "featureId": "this-is-included-for-mobile-pre-96-support", - "enabled": false, - "value": {} - }, - "features": [ - { - "featureId": "splash-screen", - "enabled": true, - "value": { - "enabled": true, - "maximum_duration_ms": 11000 - } - } - ] - } - ], - "targeting": "((is_already_enrolled) || ((isFirstRun == 'true') && (app_version|versionCompare('116.!') >= 0) && (region in ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'])))", - "startDate": "2023-07-24", - "enrollmentEndDate": "2023-08-09", - "endDate": null, - "proposedDuration": 42, - "proposedEnrollment": 14, - "referenceBranch": "control", - "featureValidationOptOut": false, - "localizations": null, - "locales": null } ] } From 200dab4054253b5d1f2c2325ddf3bea93b3eb085 Mon Sep 17 00:00:00 2001 From: Noah Bond Date: Wed, 6 Sep 2023 11:15:15 -0700 Subject: [PATCH 065/209] Bug 1847575 - Create UI component for shopping analysis status --- .../shopping/ui/ReviewQualityCheckInfoCard.kt | 215 ++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt new file mode 100644 index 000000000..356e055f4 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt @@ -0,0 +1,215 @@ +/* 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.shopping.ui + +import androidx.compose.foundation.background +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Card +import androidx.compose.material.Icon +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.tooling.preview.PreviewParameter +import androidx.compose.ui.tooling.preview.PreviewParameterProvider +import androidx.compose.ui.unit.dp +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.LinkText +import org.mozilla.fenix.compose.LinkTextState +import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.compose.button.PrimaryButton +import org.mozilla.fenix.theme.FirefoxTheme + +private val cardShape = RoundedCornerShape(8.dp) + +/** + * Review Quality Check info UI. + * + * @param title The primary text of the info message. + * @param type The [ReviewQualityCheckInfoType] of message to display. + * @param modifier Modifier to be applied to the card. + * @param description The optional secondary piece of text. + * @param linkText An optional piece of text with a clickable substring. + * @param hyperlinkText The text within [linkText] that is clickable. + * @param linkURL The optional URL to return when the link is clicked. + * @param buttonText The text to show in the optional button. + * @param onLinkClick Invoked when the link is clicked. When not-null, the link will be visible. + * @param onButtonClick Invoked when the button is clicked. When not-null, the button will be visible. + * @param icon The UI to display before the text, typically an image or loading spinner. + */ +@Composable +fun ReviewQualityCheckInfoCard( + title: String, + type: ReviewQualityCheckInfoType, + modifier: Modifier = Modifier, + description: String? = null, + linkText: String = "", + hyperlinkText: String = "", + linkURL: String = "", + buttonText: String = "", + onLinkClick: (() -> Unit)? = null, + onButtonClick: (() -> Unit)? = null, + icon: @Composable () -> Unit, +) { + Card( + modifier = modifier, + shape = cardShape, + backgroundColor = type.cardBackgroundColor, + elevation = 0.dp, + ) { + Column(modifier = Modifier.padding(horizontal = 12.dp, vertical = 8.dp)) { + Row { + icon() + + Spacer(modifier = Modifier.width(12.dp)) + + Column { + Text( + text = title, + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.headline8, + ) + + description?.let { + Spacer(modifier = Modifier.height(4.dp)) + + Text( + text = description, + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.body2, + ) + } + + onLinkClick?.let { + Spacer(modifier = Modifier.height(4.dp)) + + LinkText( + text = linkText, + linkTextState = LinkTextState( + text = hyperlinkText, + url = linkURL, + onClick = { onLinkClick() }, + ), + style = FirefoxTheme.typography.body2.copy( + color = FirefoxTheme.colors.textPrimary, + ), + linkTextColor = FirefoxTheme.colors.textPrimary, + linkTextDecoration = TextDecoration.Underline, + ) + } + } + } + + onButtonClick?.let { + Spacer(modifier = Modifier.height(8.dp)) + + PrimaryButton( + text = buttonText, + textColor = type.buttonTextColor, + backgroundColor = type.buttonBackgroundColor, + onClick = onButtonClick, + ) + } + } + } +} + +/** + * The possible types of a [ReviewQualityCheckInfoCard]. + */ +enum class ReviewQualityCheckInfoType { + + Warning, + Confirmation, + Error, + Info, + ; + + val cardBackgroundColor: Color + @Composable + get() = when (this) { + Warning -> FirefoxTheme.colors.layerWarning + Confirmation -> FirefoxTheme.colors.layerConfirmation + Error -> FirefoxTheme.colors.layerError + Info -> FirefoxTheme.colors.layerInfo + } + + val buttonBackgroundColor: Color + @Composable + get() = when (this) { + Warning -> FirefoxTheme.colors.actionWarning + Confirmation -> FirefoxTheme.colors.actionConfirmation + Error -> FirefoxTheme.colors.actionError + Info -> FirefoxTheme.colors.actionInfo + } + + val buttonTextColor: Color + @Composable + get() = when { + this == Info && !isSystemInDarkTheme() -> FirefoxTheme.colors.textOnColorPrimary + else -> FirefoxTheme.colors.textPrimary + } +} + +private class PreviewModel( + val messageType: ReviewQualityCheckInfoType, + val iconId: Int, +) + +private class PreviewModelParameterProvider : PreviewParameterProvider { + override val values: Sequence + get() = sequenceOf( + PreviewModel(ReviewQualityCheckInfoType.Warning, R.drawable.mozac_ic_warning_fill_24), + PreviewModel(ReviewQualityCheckInfoType.Confirmation, R.drawable.mozac_ic_checkmark_24), + PreviewModel(ReviewQualityCheckInfoType.Error, R.drawable.mozac_ic_information_fill_24), + PreviewModel(ReviewQualityCheckInfoType.Info, R.drawable.mozac_ic_information_fill_24), + ) +} + +@LightDarkPreview +@Composable +private fun InfoCardPreview( + @PreviewParameter(PreviewModelParameterProvider::class) model: PreviewModel, +) { + FirefoxTheme { + Box( + modifier = Modifier + .background(color = FirefoxTheme.colors.layer1) + .padding(16.dp), + ) { + ReviewQualityCheckInfoCard( + title = "Title text", + type = model.messageType, + modifier = Modifier.fillMaxWidth(), + description = "Description text", + linkText = "Primary link text with an underlined hyperlink.", + hyperlinkText = "underlined hyperlink", + buttonText = "Button text", + onLinkClick = {}, + onButtonClick = {}, + icon = { + Icon( + painter = painterResource(id = model.iconId), + contentDescription = null, + modifier = Modifier.size(24.dp), + tint = FirefoxTheme.colors.iconPrimary, + ) + }, + ) + } + } +} From 3db5fbce225cfe91c041d503ea0d9bac3e61e68e Mon Sep 17 00:00:00 2001 From: Gabriel Luong Date: Wed, 6 Sep 2023 22:04:51 -0400 Subject: [PATCH 066/209] Bug 1851678 - Catch AutofillApiException exception when fetching autofill data and setting startup metrics --- .../main/java/org/mozilla/fenix/FenixApplication.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt index 561758c40..cfe33e9ac 100644 --- a/app/src/main/java/org/mozilla/fenix/FenixApplication.kt +++ b/app/src/main/java/org/mozilla/fenix/FenixApplication.kt @@ -28,6 +28,7 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.async import kotlinx.coroutines.launch import mozilla.appservices.Megazord +import mozilla.appservices.autofill.AutofillApiException import mozilla.components.browser.state.action.SystemAction import mozilla.components.browser.state.selector.selectedTab import mozilla.components.browser.state.state.searchEngines @@ -837,9 +838,13 @@ open class FenixApplication : LocaleAwareApplication(), Provider { @OptIn(DelicateCoroutinesApi::class) GlobalScope.launch(IO) { - val autoFillStorage = applicationContext.components.core.autofillStorage - Addresses.savedAll.set(autoFillStorage.getAllAddresses().size.toLong()) - CreditCards.savedAll.set(autoFillStorage.getAllCreditCards().size.toLong()) + try { + val autoFillStorage = applicationContext.components.core.autofillStorage + Addresses.savedAll.set(autoFillStorage.getAllAddresses().size.toLong()) + CreditCards.savedAll.set(autoFillStorage.getAllCreditCards().size.toLong()) + } catch (e: AutofillApiException) { + logger.error("Failed to fetch autofill data", e) + } try { val passwordsStorage = applicationContext.components.core.passwordsStorage From 0bd49e299ed78eb02813cb3c88916fde4b6f5c2b Mon Sep 17 00:00:00 2001 From: mike a Date: Tue, 15 Aug 2023 14:50:10 -0700 Subject: [PATCH 067/209] =?UTF-8?q?Bug=201845613=20=E2=80=93=C2=A0restore?= =?UTF-8?q?=20hidden=20engines=20for=20unified=20search=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 5 +++++ app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 10 ++++++++++ app/src/main/res/values/preference_keys.xml | 1 + 3 files changed, 16 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index d4ce06e5f..80b6ed638 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -367,6 +367,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { components.core.contileTopSitesUpdater.startPeriodicWork() } + if (settings().enableUnifiedSearchSettingsUI && !settings().hiddenEnginesRestored) { + settings().hiddenEnginesRestored = true + components.useCases.searchUseCases.restoreHiddenSearchEngines.invoke() + } + // To assess whether the Pocket stories are to be downloaded or not multiple SharedPreferences // are read possibly needing to load them on the current thread. Move that to a background thread. lifecycleScope.launch(IO) { diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index fb503c682..7a241f5ab 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -1846,4 +1846,14 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Indicates if the new Search settings UI is enabled. */ var enableUnifiedSearchSettingsUI: Boolean = showUnifiedSearchFeature && FeatureFlags.unifiedSearchSettings + + /** + * Indicates if hidden engines were restored due to migration to unified search settings UI. + * Should be removed once we expect the majority of the users to migrate. + * Tracking: https://bugzilla.mozilla.org/show_bug.cgi?id=1850767 + */ + var hiddenEnginesRestored: Boolean by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_hidden_engines_restored), + default = false, + ) } diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 9b2ec6631..2d6b9c930 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -75,6 +75,7 @@ pref_key_is_first_splash_screen_shown pref_key_nimbus_last_fetch pref_key_home_blocklist + pref_key_hidden_engines_restored pref_key_telemetry From 5d75244515b94a70a1ddebe0528edebf358091ea Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Mon, 7 Aug 2023 14:18:03 -0700 Subject: [PATCH 068/209] Bug 1845232 - Adds action to clear private browsing --- .../mozilla/fenix/browser/BrowserFragment.kt | 34 +++++++++++++------ .../toolbar/BrowserToolbarController.kt | 12 +++++++ .../interactor/BrowserToolbarInteractor.kt | 9 +++++ .../org/mozilla/fenix/home/HomeFragment.kt | 6 +++- app/src/main/res/values/strings.xml | 6 +++- .../DefaultBrowserToolbarControllerTest.kt | 12 +++++++ .../DefaultBrowserToolbarInteractorTest.kt | 7 ++++ 7 files changed, 74 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 8f9c59803..16c4c987f 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -37,6 +37,7 @@ import mozilla.components.support.base.feature.UserInteractionHandler import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import mozilla.components.support.ktx.kotlinx.coroutines.flow.ifAnyChanged import org.mozilla.fenix.GleanMetrics.ReaderMode +import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.TabCollectionStorage @@ -96,17 +97,30 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { ) } - val homeAction = BrowserToolbar.Button( - imageDrawable = AppCompatResources.getDrawable( - context, - R.drawable.mozac_ic_home_24, - )!!, - contentDescription = context.getString(R.string.browser_toolbar_home), - iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context), - listener = browserToolbarInteractor::onHomeButtonClicked, - ) + val isPrivate = (activity as HomeActivity).browsingModeManager.mode.isPrivate + val leadingAction = if (isPrivate && context.settings().feltPrivateBrowsingEnabled) { + BrowserToolbar.Button( + imageDrawable = AppCompatResources.getDrawable( + context, + R.drawable.mozac_ic_data_clearance_24, + )!!, + contentDescription = context.getString(R.string.browser_toolbar_erase), + iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context), + listener = browserToolbarInteractor::onEraseButtonClicked, + ) + } else { + BrowserToolbar.Button( + imageDrawable = AppCompatResources.getDrawable( + context, + R.drawable.mozac_ic_home_24, + )!!, + contentDescription = context.getString(R.string.browser_toolbar_home), + iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context), + listener = browserToolbarInteractor::onHomeButtonClicked, + ) + } - browserToolbarView.view.addNavigationAction(homeAction) + browserToolbarView.view.addNavigationAction(leadingAction) updateToolbarActions(isTablet = resources.getBoolean(R.bool.tablet)) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt index 08545bfcf..979afddb3 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarController.kt @@ -29,6 +29,7 @@ import org.mozilla.fenix.components.toolbar.interactor.BrowserToolbarInteractor import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.settings +import org.mozilla.fenix.home.HomeFragment import org.mozilla.fenix.home.HomeScreenViewModel /** @@ -47,6 +48,11 @@ interface BrowserToolbarController { * @see [BrowserToolbarInteractor.onHomeButtonClicked] */ fun handleHomeButtonClick() + + /** + * @see [BrowserToolbarInteractor.onEraseButtonClicked] + */ + fun handleEraseButtonClick() } @Suppress("LongParameterList") @@ -180,6 +186,12 @@ class DefaultBrowserToolbarController( } } + override fun handleEraseButtonClick() { + homeViewModel.sessionToDelete = HomeFragment.ALL_PRIVATE_TABS + val directions = BrowserFragmentDirections.actionGlobalHome() + navController.navigate(directions) + } + companion object { internal const val TELEMETRY_BROWSER_IDENTIFIER = "browserMenu" } diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt index 9bad62488..ce0f73286 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt @@ -27,6 +27,11 @@ interface BrowserToolbarInteractor { * Navigates to the Home screen. Called when a user taps on the Home button. */ fun onHomeButtonClicked() + + /** + * Deletase all tabs and navigates to the Home screen. Called when a user taps on the erase button. + */ + fun onEraseButtonClicked() } /** @@ -77,4 +82,8 @@ class DefaultBrowserToolbarInteractor( override fun onHomeButtonClicked() { browserToolbarController.handleHomeButtonClick() } + + override fun onEraseButtonClicked() { + browserToolbarController.handleEraseButtonClick() + } } diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index c7c0e1f04..5edb3dd00 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -664,7 +664,11 @@ class HomeFragment : Fragment() { } val snackbarMessage = if (sessionCode == ALL_PRIVATE_TABS) { - getString(R.string.snackbar_private_tabs_closed) + if (requireContext().settings().feltPrivateBrowsingEnabled) { + getString(R.string.snackbar_private_data_deleted) + } else { + getString(R.string.snackbar_private_tabs_closed) + } } else { getString(R.string.snackbar_tabs_closed) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e2149b8c8..c576c360f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -214,7 +214,9 @@ Home screen - + + Erase browsing history Selected language @@ -1273,6 +1275,8 @@ Private tab closed Private tabs closed + + Private browsing data deleted UNDO diff --git a/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt b/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt index ce652ca7b..0d3376590 100644 --- a/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarControllerTest.kt @@ -53,6 +53,7 @@ import org.mozilla.fenix.browser.readermode.ReaderModeController import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings import org.mozilla.fenix.helpers.FenixRobolectricTestRunner +import org.mozilla.fenix.home.HomeFragment import org.mozilla.fenix.home.HomeScreenViewModel @RunWith(FenixRobolectricTestRunner::class) @@ -366,6 +367,17 @@ class DefaultBrowserToolbarControllerTest { assertNotNull(Events.browserToolbarHomeTapped.testGetValue()) } + @Test + fun handleEraseButtonClicked() { + val controller = createController() + controller.handleEraseButtonClick() + + verify { + homeViewModel.sessionToDelete = HomeFragment.ALL_PRIVATE_TABS + navController.navigate(BrowserFragmentDirections.actionGlobalHome()) + } + } + private fun createController( activity: HomeActivity = this.activity, customTabSessionId: String? = null, diff --git a/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarInteractorTest.kt b/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarInteractorTest.kt index e68d763ad..f6a4107db 100644 --- a/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarInteractorTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/toolbar/DefaultBrowserToolbarInteractorTest.kt @@ -80,4 +80,11 @@ class DefaultBrowserToolbarInteractorTest { verify { browserToolbarController.handleHomeButtonClick() } } + + @Test + fun onEraseButtonClicked() { + interactor.onEraseButtonClicked() + + verify { browserToolbarController.handleEraseButtonClick() } + } } From d916e92967dc694075de18e99c4443f235a77b69 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Tue, 29 Aug 2023 16:53:45 -0700 Subject: [PATCH 069/209] Bug 1845232 - Adds CFR for clear private browsing aciton --- app/pbm.fml.yaml | 2 +- .../toolbar/BrowserToolbarCFRPresenter.kt | 69 ++++++++++++++++- .../components/toolbar/ToolbarIntegration.kt | 1 + .../interactor/BrowserToolbarInteractor.kt | 2 +- .../java/org/mozilla/fenix/utils/Settings.kt | 9 +++ app/src/main/res/values/preference_keys.xml | 2 + app/src/main/res/values/strings.xml | 5 ++ .../toolbar/BrowserToolbarCFRPresenterTest.kt | 77 +++++++++++-------- 8 files changed, 130 insertions(+), 37 deletions(-) diff --git a/app/pbm.fml.yaml b/app/pbm.fml.yaml index 46055d61f..7b22ed8a3 100644 --- a/app/pbm.fml.yaml +++ b/app/pbm.fml.yaml @@ -13,7 +13,7 @@ features: defaults: - channel: developer value: - felt-privacy-enabled: true + felt-privacy-enabled: false - channel: nightly value: felt-privacy-enabled: false diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt index 7d65977be..5aa0e32df 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt @@ -19,6 +19,7 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.cancel import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filter +import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapNotNull import kotlinx.coroutines.flow.transformWhile import mozilla.components.browser.state.selector.findCustomTabOrSelectedTab @@ -66,6 +67,7 @@ class BrowserToolbarCFRPresenter( private val browserStore: BrowserStore, private val settings: Settings, private val toolbar: BrowserToolbar, + private val isPrivate: Boolean, private val sessionId: String? = null, private val shoppingExperienceFeature: ShoppingExperienceFeature = DefaultShoppingExperienceFeature( context.settings(), @@ -111,6 +113,25 @@ class BrowserToolbarCFRPresenter( } } + ToolbarCFR.ERASE -> { + scope = browserStore.flowScoped { flow -> + flow + .mapNotNull { it.findCustomTabOrSelectedTab(sessionId) } + .filter { it.content.private } + .map { it.content.progress } + // The "transformWhile" below ensures that the 100% progress is only collected once. + .transformWhile { progress -> + emit(progress) + progress != 100 + } + .filter { it == 100 } + .collect { + scope?.cancel() + showEraseCfr() + } + } + } + ToolbarCFR.NONE -> { // no-op } @@ -118,6 +139,10 @@ class BrowserToolbarCFRPresenter( } private fun getCFRToShow(): ToolbarCFR = when { + settings.shouldShowEraseActionCFR && isPrivate -> { + ToolbarCFR.ERASE + } + settings.shouldShowTotalCookieProtectionCFR && ( !settings.shouldShowCookieBannerReEngagementDialog() || settings.openTabsCount >= CFR_MINIMUM_NUMBER_OPENED_TABS @@ -144,6 +169,48 @@ class BrowserToolbarCFRPresenter( scope?.cancel() } + @VisibleForTesting + internal fun showEraseCfr() { + CFRPopup( + anchor = toolbar.findViewById( + R.id.mozac_browser_toolbar_navigation_actions, + ), + properties = CFRPopupProperties( + popupAlignment = INDICATOR_CENTERED_IN_ANCHOR, + popupBodyColors = listOf( + getColor(context, R.color.fx_mobile_layer_color_gradient_end), + getColor(context, R.color.fx_mobile_layer_color_gradient_start), + ), + popupVerticalOffset = CFR_TO_ANCHOR_VERTICAL_PADDING.dp, + dismissButtonColor = getColor(context, R.color.fx_mobile_icon_color_oncolor), + indicatorDirection = if (settings.toolbarPosition == ToolbarPosition.TOP) { + CFRPopup.IndicatorDirection.UP + } else { + CFRPopup.IndicatorDirection.DOWN + }, + ), + onDismiss = { + when (it) { + true -> TrackingProtection.tcpCfrExplicitDismissal.record(NoExtras()) + false -> TrackingProtection.tcpCfrImplicitDismissal.record(NoExtras()) + } + }, + text = { + FirefoxTheme { + Text( + text = context.getString(R.string.erase_action_cfr_message), + color = FirefoxTheme.colors.textOnColorPrimary, + style = FirefoxTheme.typography.body2, + ) + } + }, + ).run { + settings.shouldShowEraseActionCFR = false + popup = this + show() + } + } + @VisibleForTesting internal fun showTcpCfr() { CFRPopup( @@ -257,5 +324,5 @@ class BrowserToolbarCFRPresenter( * The CFR to be shown in the toolbar. */ private enum class ToolbarCFR { - TCP, SHOPPING, SHOPPING_OPTED_IN, NONE + TCP, SHOPPING, SHOPPING_OPTED_IN, ERASE, NONE } diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt index 5f35eafdf..d37346e9a 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/ToolbarIntegration.kt @@ -99,6 +99,7 @@ class DefaultToolbarIntegration( browserStore = context.components.core.store, settings = context.settings(), toolbar = toolbar, + isPrivate = isPrivate, sessionId = sessionId, ) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt index ce0f73286..6bd6358c3 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/interactor/BrowserToolbarInteractor.kt @@ -29,7 +29,7 @@ interface BrowserToolbarInteractor { fun onHomeButtonClicked() /** - * Deletase all tabs and navigates to the Home screen. Called when a user taps on the erase button. + * Deletes all tabs and navigates to the Home screen. Called when a user taps on the erase button. */ fun onEraseButtonClicked() } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 7a241f5ab..14e054026 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -779,6 +779,15 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = { enabledTotalCookieProtectionCFR }, ) + /** + * Indicates if the total cookie protection CRF should be shown. + */ + var shouldShowEraseActionCFR by lazyFeatureFlagPreference( + appContext.getPreferenceKey(R.string.pref_key_should_show_erase_action_popup), + featureFlag = true, + default = { feltPrivateBrowsingEnabled }, + ) + val blockCookiesSelectionInCustomTrackingProtection by stringPreference( key = appContext.getPreferenceKey(R.string.pref_key_tracking_protection_custom_cookies_select), default = if (enabledTotalCookieProtection) { diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 2d6b9c930..215ca733e 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -276,6 +276,8 @@ pref_key_should_show_home_onboarding_dialog pref_key_should_show_total_cookie_protection_popup + + pref_key_should_show_erase_action_popup pref_key_debug_settings diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c576c360f..fcf943fe3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -87,6 +87,11 @@ Learn about Total Cookie Protection + + + Tap here to start a fresh private session. Delete your history, cookies — everything. + + Camera access needed. Go to Android settings, tap permissions, and tap allow. diff --git a/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt b/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt index 07c08208c..4f49da5a6 100644 --- a/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenterTest.kt @@ -136,12 +136,41 @@ class BrowserToolbarCFRPresenterTest { } @Test - fun `GIVEN the TCP CFR should not be shown WHEN the feature starts THEN don't observe the store for updates`() { + fun `GIVEN the Erase CFR should be shown WHEN in private mode and the current tab is fully loaded THEN the Erase CFR is only shown once`() { + val tab = createTab(url = "", private = true) + + val browserStore = createBrowserStore( + tab = tab, + selectedTabId = tab.id, + ) + + val presenter = createPresenterThatShowsCFRs( + browserStore = browserStore, + settings = mockk { + every { shouldShowEraseActionCFR } returns true + }, + isPrivate = true, + ) + + presenter.start() + + assertNotNull(presenter.scope) + + browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 99)).joinBlocking() + browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 100)).joinBlocking() + browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 100)).joinBlocking() + browserStore.dispatch(ContentAction.UpdateProgressAction(tab.id, 100)).joinBlocking() + verify { presenter.showEraseCfr() } + } + + @Test + fun `GIVEN no CFR shown WHEN the feature starts THEN don't observe the store for updates`() { val presenter = createPresenter( settings = mockk { every { shouldShowTotalCookieProtectionCFR } returns false every { shouldShowCookieBannerReEngagementDialog() } returns false every { shouldShowReviewQualityCheckCFR } returns false + every { shouldShowEraseActionCFR } returns false }, ) @@ -152,15 +181,15 @@ class BrowserToolbarCFRPresenterTest { @Test fun `GIVEN the store is observed for updates WHEN the presenter is stopped THEN stop observing the store`() { - val tcpScope: CoroutineScope = mockk { + val scope: CoroutineScope = mockk { every { cancel() } just Runs } val presenter = createPresenter() - presenter.scope = tcpScope + presenter.scope = scope presenter.stop() - verify { tcpScope.cancel() } + verify { scope.cancel() } } @Test @@ -203,6 +232,7 @@ class BrowserToolbarCFRPresenterTest { every { shouldShowTotalCookieProtectionCFR } returns false every { shouldShowReviewQualityCheckCFR } returns true every { reviewQualityCheckOptInTimeInMillis } returns System.currentTimeMillis() + every { shouldShowEraseActionCFR } returns false }, ) every { presenter.showShoppingCFR(any()) } just Runs @@ -224,35 +254,6 @@ class BrowserToolbarCFRPresenterTest { verify { presenter.showShoppingCFR(eq(false)) } } - @Test - fun `GIVEN review quality CFR was previously displayed WHEN starting the presenter THEN don't observe the store`() { - val settings = mockk { - every { shouldShowReviewQualityCheckCFR } returns false - every { shouldShowTotalCookieProtectionCFR } returns false - } - val presenter = createPresenter(settings = settings) - - presenter.start() - - assertNull(presenter.scope) - } - - @Test - fun `GIVEN review quality feature is not enabled WHEN starting the presenter THEN don't observe the store`() { - val presenter = createPresenter( - settings = mockk { - every { shouldShowTotalCookieProtectionCFR } returns false - }, - shoppingExperienceFeature = mockk { - every { isEnabled } returns false - }, - ) - - presenter.start() - - assertNull(presenter.scope) - } - @Test fun `GIVEN the user opted in the shopping feature AND the opted in shopping CFR should be shown WHEN the tab is not loading THEN the CFR is shown`() { val tab = createTab(url = "") @@ -265,6 +266,7 @@ class BrowserToolbarCFRPresenterTest { settings = mockk { every { shouldShowTotalCookieProtectionCFR } returns false every { shouldShowReviewQualityCheckCFR } returns true + every { shouldShowEraseActionCFR } returns false every { reviewQualityCheckOptInTimeInMillis } returns System.currentTimeMillis() - Settings.TWO_DAYS_MS }, browserStore = browserStore, @@ -299,12 +301,15 @@ class BrowserToolbarCFRPresenterTest { every { shouldShowTotalCookieProtectionCFR } returns true every { shouldShowCookieBannerReEngagementDialog() } returns false every { shouldShowReviewQualityCheckCFR } returns false + every { shouldShowEraseActionCFR } returns false }, toolbar: BrowserToolbar = mockk(), + isPrivate: Boolean = false, sessionId: String? = null, - ) = spyk(createPresenter(context, anchor, browserStore, settings, toolbar, sessionId)) { + ) = spyk(createPresenter(context, anchor, browserStore, settings, toolbar, sessionId, isPrivate)) { every { showTcpCfr() } just Runs every { showShoppingCFR(any()) } just Runs + every { showEraseCfr() } just Runs } /** @@ -322,13 +327,16 @@ class BrowserToolbarCFRPresenterTest { settings: Settings = mockk(relaxed = true) { every { shouldShowTotalCookieProtectionCFR } returns true every { shouldShowCookieBannerReEngagementDialog() } returns false + every { shouldShowEraseActionCFR } returns true every { shouldShowReviewQualityCheckCFR } returns true }, toolbar: BrowserToolbar = mockk { every { findViewById(R.id.mozac_browser_toolbar_security_indicator) } returns anchor every { findViewById(R.id.mozac_browser_toolbar_page_actions) } returns anchor + every { findViewById(R.id.mozac_browser_toolbar_navigation_actions) } returns anchor }, sessionId: String? = null, + isPrivate: Boolean = false, shoppingExperienceFeature: ShoppingExperienceFeature = mockk { every { isEnabled } returns true }, @@ -339,6 +347,7 @@ class BrowserToolbarCFRPresenterTest { settings = settings, toolbar = toolbar, sessionId = sessionId, + isPrivate = isPrivate, shoppingExperienceFeature = shoppingExperienceFeature, ), ) From 0f9c0402a92c55a814c42a41c3ec1b14cd91f89a Mon Sep 17 00:00:00 2001 From: mike a Date: Tue, 4 Jul 2023 11:27:18 +0900 Subject: [PATCH 070/209] =?UTF-8?q?Bug=201841572=20=E2=80=93=20added=20sty?= =?UTF-8?q?les=20to=20checkbox=20menu=20item=20views=20and=20overrode=20it?= =?UTF-8?q?=20on=20fenix=20side=20to=20give=20checkbox=20button=20more=20s?= =?UTF-8?q?pace=20for=20text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit   --- app/src/main/res/values/dimens.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 5c3b851c9..daabb8552 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -11,6 +11,10 @@ 314dp 8dp 8dp + 0dp + 8dp + 8dp + 16dp 56dp 16dp 48dp From d6dc375ead78e0f7574bc69616249433de9e1918 Mon Sep 17 00:00:00 2001 From: Logan Rosen Date: Sun, 23 Jul 2023 00:55:18 -0400 Subject: [PATCH 071/209] Bug 1829018 - Remove and clean up `Settings.enableTaskContinuityEnhancements` --- .../java/org/mozilla/fenix/ext/AppState.kt | 7 +- .../org/mozilla/fenix/home/HomeFragment.kt | 28 +++--- .../home/sessioncontrol/SessionControlView.kt | 2 +- .../fenix/settings/SecretSettingsFragment.kt | 6 -- .../org/mozilla/fenix/tabstray/TabsTray.kt | 1 - .../fenix/tabstray/ext/SyncedDeviceTabs.kt | 34 ++----- .../fenix/tabstray/syncedtabs/SyncedTabs.kt | 89 +++++++------------ .../syncedtabs/SyncedTabsIntegration.kt | 5 +- .../viewholders/SyncedTabsPageViewHolder.kt | 2 - .../java/org/mozilla/fenix/utils/Settings.kt | 8 -- app/src/main/res/values/preference_keys.xml | 2 - app/src/main/res/values/static_strings.xml | 2 - .../res/xml/secret_settings_preferences.xml | 5 -- .../fenix/sync/ext/SyncedDeviceTabsTest.kt | 4 +- 14 files changed, 60 insertions(+), 135 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/ext/AppState.kt b/app/src/main/java/org/mozilla/fenix/ext/AppState.kt index 478022cbe..d0491be7f 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/AppState.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/AppState.kt @@ -187,9 +187,8 @@ fun AppState.shouldShowRecentTabs(settings: Settings): Boolean { } /** - * Determines whether a recent synced tab section should be shown, based on user preference - * and the availability of Synced tabs. + * Determines whether a recent synced tab section should be shown, based on the availability of Synced tabs. */ -fun AppState.shouldShowRecentSyncedTabs(settings: Settings): Boolean { - return (settings.enableTaskContinuityEnhancements && recentSyncedTabState is RecentSyncedTabState.Success) +fun AppState.shouldShowRecentSyncedTabs(): Boolean { + return recentSyncedTabState is RecentSyncedTabState.Success } diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 5edb3dd00..b059396c1 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -294,21 +294,19 @@ class HomeFragment : Fragment() { view = binding.root, ) - if (requireContext().settings().enableTaskContinuityEnhancements) { - recentSyncedTabFeature.set( - feature = RecentSyncedTabFeature( - context = requireContext(), - appStore = requireComponents.appStore, - syncStore = requireComponents.backgroundServices.syncStore, - storage = requireComponents.backgroundServices.syncedTabsStorage, - accountManager = requireComponents.backgroundServices.accountManager, - historyStorage = requireComponents.core.historyStorage, - coroutineScope = viewLifecycleOwner.lifecycleScope, - ), - owner = viewLifecycleOwner, - view = binding.root, - ) - } + recentSyncedTabFeature.set( + feature = RecentSyncedTabFeature( + context = requireContext(), + appStore = requireComponents.appStore, + syncStore = requireComponents.backgroundServices.syncStore, + storage = requireComponents.backgroundServices.syncedTabsStorage, + accountManager = requireComponents.backgroundServices.accountManager, + historyStorage = requireComponents.core.historyStorage, + coroutineScope = viewLifecycleOwner.lifecycleScope, + ), + owner = viewLifecycleOwner, + view = binding.root, + ) } if (requireContext().settings().showRecentBookmarksFeature) { diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt index 03e37182a..6eadcc4d2 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlView.kt @@ -140,7 +140,7 @@ private fun AppState.toAdapterList(settings: Settings): List = when showCollectionPlaceholder, messaging.messageToShow[FenixMessageSurfaceId.HOMESCREEN], shouldShowRecentTabs(settings), - shouldShowRecentSyncedTabs(settings), + shouldShowRecentSyncedTabs(), recentHistory, pocketStories, firstFrameDrawn, diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index 67b5199d0..635efce5d 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -46,12 +46,6 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } - requirePreference(R.string.pref_key_enable_task_continuity).apply { - isVisible = true - isChecked = context.settings().enableTaskContinuityEnhancements - onPreferenceChangeListener = SharedPreferenceUpdater() - } - requirePreference(R.string.pref_key_enable_tabs_tray_to_compose).apply { isVisible = true isChecked = context.settings().enableTabsTrayToCompose diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt index 64e7c9365..79f3dded0 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTray.kt @@ -383,7 +383,6 @@ private fun SyncedTabsPage( SyncedTabsList( syncedTabs = syncedTabs, - taskContinuityEnabled = true, onTabClick = onTabClick, ) } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/ext/SyncedDeviceTabs.kt b/app/src/main/java/org/mozilla/fenix/tabstray/ext/SyncedDeviceTabs.kt index f66bf6560..39462fa9b 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/ext/SyncedDeviceTabs.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/ext/SyncedDeviceTabs.kt @@ -11,32 +11,16 @@ import org.mozilla.fenix.tabstray.syncedtabs.SyncedTabsListItem /** * Converts a list of [SyncedDeviceTabs] into a list of [SyncedTabsListItem]. */ -fun List.toComposeList( - taskContinuityEnabled: Boolean, -): List = asSequence().flatMap { (device, tabs) -> - if (taskContinuityEnabled) { - val deviceTabs = if (tabs.isEmpty()) { - emptyList() - } else { - tabs.map { - val url = it.active().url - val titleText = it.active().title.ifEmpty { url.trimmed() } - SyncedTabsListItem.Tab(titleText, url, it) - } - } - - sequenceOf(SyncedTabsListItem.DeviceSection(device.displayName, deviceTabs)) +fun List.toComposeList(): List = asSequence().flatMap { (device, tabs) -> + val deviceTabs = if (tabs.isEmpty()) { + emptyList() } else { - val deviceTabs = if (tabs.isEmpty()) { - sequenceOf(SyncedTabsListItem.NoTabs) - } else { - tabs.asSequence().map { - val url = it.active().url - val titleText = it.active().title.ifEmpty { url.trimmed() } - SyncedTabsListItem.Tab(titleText, url, it) - } + tabs.map { + val url = it.active().url + val titleText = it.active().title.ifEmpty { url.trimmed() } + SyncedTabsListItem.Tab(titleText, url, it) } - - sequenceOf(SyncedTabsListItem.Device(device.displayName)) + deviceTabs } + + sequenceOf(SyncedTabsListItem.DeviceSection(device.displayName, deviceTabs)) }.toList() diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt b/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt index f7950474a..489914cd8 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabs.kt @@ -50,7 +50,6 @@ private const val EXPANDED_BY_DEFAULT = true * Top-level list UI for displaying Synced Tabs in the Tabs Tray. * * @param syncedTabs The tab UI items to be displayed. - * @param taskContinuityEnabled Indicates whether the Task Continuity enhancements should be visible for users. * @param onTabClick The lambda for handling clicks on synced tabs. */ @SuppressWarnings("LongMethod") @@ -58,7 +57,6 @@ private const val EXPANDED_BY_DEFAULT = true @Composable fun SyncedTabsList( syncedTabs: List, - taskContinuityEnabled: Boolean, onTabClick: (SyncTab) -> Unit, ) { val listState = rememberLazyListState() @@ -71,70 +69,46 @@ fun SyncedTabsList( .testTag(TabsTrayTestTag.syncedTabsList), state = listState, ) { - if (taskContinuityEnabled) { - syncedTabs.forEachIndexed { index, syncedTabItem -> - when (syncedTabItem) { - is SyncedTabsListItem.DeviceSection -> { - val sectionExpanded = expandedState[index] + syncedTabs.forEachIndexed { index, syncedTabItem -> + when (syncedTabItem) { + is SyncedTabsListItem.DeviceSection -> { + val sectionExpanded = expandedState[index] - stickyHeader { - SyncedTabsSectionHeader( - headerText = syncedTabItem.displayName, - expanded = sectionExpanded, - ) { - expandedState[index] = !sectionExpanded - } - } - - if (sectionExpanded) { - if (syncedTabItem.tabs.isNotEmpty()) { - items(syncedTabItem.tabs) { syncedTab -> - FaviconListItem( - label = syncedTab.displayTitle, - description = syncedTab.displayURL, - url = syncedTab.displayURL, - onClick = { onTabClick(syncedTab.tab) }, - ) - } - } else { - item { SyncedTabsNoTabsItem() } - } + stickyHeader { + SyncedTabsSectionHeader( + headerText = syncedTabItem.displayName, + expanded = sectionExpanded, + ) { + expandedState[index] = !sectionExpanded } } - is SyncedTabsListItem.Error -> { - item { - SyncedTabsErrorItem( - errorText = syncedTabItem.errorText, - errorButton = syncedTabItem.errorButton, - ) + if (sectionExpanded) { + if (syncedTabItem.tabs.isNotEmpty()) { + items(syncedTabItem.tabs) { syncedTab -> + FaviconListItem( + label = syncedTab.displayTitle, + description = syncedTab.displayURL, + url = syncedTab.displayURL, + onClick = { onTabClick(syncedTab.tab) }, + ) + } + } else { + item { SyncedTabsNoTabsItem() } } } - else -> { - // no-op - } } - } - } else { - items(syncedTabs) { syncedTabItem -> - when (syncedTabItem) { - is SyncedTabsListItem.Device -> SyncedTabsSectionHeader(headerText = syncedTabItem.displayName) - is SyncedTabsListItem.Error -> SyncedTabsErrorItem( - errorText = syncedTabItem.errorText, - errorButton = syncedTabItem.errorButton, - ) - is SyncedTabsListItem.NoTabs -> SyncedTabsNoTabsItem() - is SyncedTabsListItem.Tab -> { - FaviconListItem( - label = syncedTabItem.displayTitle, - description = syncedTabItem.displayURL, - url = syncedTabItem.displayURL, - onClick = { onTabClick(syncedTabItem.tab) }, + + is SyncedTabsListItem.Error -> { + item { + SyncedTabsErrorItem( + errorText = syncedTabItem.errorText, + errorButton = syncedTabItem.errorButton, ) } - else -> { - // no-op - } + } + else -> { + // no-op } } } @@ -300,7 +274,6 @@ private fun SyncedTabsListPreview() { Box(Modifier.background(FirefoxTheme.colors.layer1)) { SyncedTabsList( syncedTabs = getFakeSyncedTabList(), - taskContinuityEnabled = true, ) { println("Tab clicked") } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabsIntegration.kt b/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabsIntegration.kt index 2bb98f986..6281609ef 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabsIntegration.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/syncedtabs/SyncedTabsIntegration.kt @@ -15,7 +15,6 @@ import mozilla.components.service.fxa.manager.FxaAccountManager import mozilla.components.support.base.feature.LifecycleAwareFeature import mozilla.components.support.base.observer.Observable import mozilla.components.support.base.observer.ObserverRegistry -import org.mozilla.fenix.ext.settings import org.mozilla.fenix.tabstray.FloatingActionButtonBinding import org.mozilla.fenix.tabstray.TabsTrayAction import org.mozilla.fenix.tabstray.TabsTrayStore @@ -92,9 +91,7 @@ class SyncedTabsIntegration( override fun displaySyncedTabs(syncedTabs: List) { store.dispatch( TabsTrayAction.UpdateSyncedTabs( - syncedTabs.toComposeList( - context.settings().enableTaskContinuityEnhancements, - ), + syncedTabs.toComposeList(), ), ) } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/viewholders/SyncedTabsPageViewHolder.kt b/app/src/main/java/org/mozilla/fenix/tabstray/viewholders/SyncedTabsPageViewHolder.kt index 27fdcfcf1..58ef98f1f 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/viewholders/SyncedTabsPageViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/viewholders/SyncedTabsPageViewHolder.kt @@ -8,7 +8,6 @@ import android.view.View import androidx.compose.ui.platform.ComposeView import androidx.recyclerview.widget.RecyclerView import mozilla.components.lib.state.ext.observeAsComposableState -import org.mozilla.fenix.ext.settings import org.mozilla.fenix.tabstray.SyncedTabsInteractor import org.mozilla.fenix.tabstray.TabsTrayState import org.mozilla.fenix.tabstray.TabsTrayStore @@ -35,7 +34,6 @@ class SyncedTabsPageViewHolder( FirefoxTheme(theme = Theme.getTheme(allowPrivateTheme = false)) { SyncedTabsList( syncedTabs = tabs ?: emptyList(), - taskContinuityEnabled = composeView.context.settings().enableTaskContinuityEnhancements, onTabClick = interactor::onSyncedTabClicked, ) } diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 14e054026..ee9fcdf89 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -1623,14 +1623,6 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true, ) - /** - * Indicates if the Task Continuity enhancements are enabled. - */ - var enableTaskContinuityEnhancements by booleanPreference( - key = appContext.getPreferenceKey(R.string.pref_key_enable_task_continuity), - default = true, - ) - /** * Indicates if the Unified Search feature should be visible. */ diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 215ca733e..803477161 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -250,8 +250,6 @@ pref_key_show_top_sites pref_key_enable_contile - - pref_key_enable_task_continuity pref_key_frecency_filter_query diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 24759128e..5daecf21d 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -40,8 +40,6 @@ Nimbus Experiments Use Nimbus Preview Collection (requires restart) - - Enable Task Continuity Custom Glean server URL (requires restart) diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 3360c80db..4a86711d0 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -15,11 +15,6 @@ android:key="@string/pref_key_nimbus_use_preview" android:title="@string/preferences_nimbus_use_preview_collection" app:iconSpaceReserved="false" /> - Date: Wed, 6 Sep 2023 17:41:40 +0300 Subject: [PATCH 072/209] Bug 1851006 - SearchEngineSuggestionProvider should always be added to the provider list. --- .../fenix/search/awesomebar/AwesomeBarView.kt | 4 +--- .../search/awesomebar/AwesomeBarViewTest.kt | 21 +++---------------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt index 2286fa723..197098e9c 100644 --- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt +++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt @@ -318,9 +318,7 @@ class AwesomeBarView( providersToAdd.add(getLocalTabsProvider(state.searchEngineSource, true)) } - if (!activity.settings().showUnifiedSearchFeature) { - providersToAdd.add(searchEngineSuggestionProvider) - } + providersToAdd.add(searchEngineSuggestionProvider) return providersToAdd } diff --git a/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt b/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt index 3cbc2a0aa..3a55e35a4 100644 --- a/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/search/awesomebar/AwesomeBarViewTest.kt @@ -765,7 +765,7 @@ class AwesomeBarViewTest { } @Test - fun `GIVEN unified search feature is enabled WHEN configuring providers THEN don't add the engine suggestions provider`() { + fun `GIVEN a search is made by the user WHEN configuring providers THEN search engine suggestion provider should always be added`() { val settings: Settings = mockk(relaxed = true) { every { showUnifiedSearchFeature } returns true } @@ -776,21 +776,6 @@ class AwesomeBarViewTest { val result = awesomeBarView.getProvidersToAdd(state) - assertEquals(0, result.filterIsInstance().size) - } - - @Test - fun `GIVEN unified search feature is disabled WHEN configuring providers THEN add the engine suggestions provider`() { - val settings: Settings = mockk(relaxed = true) { - every { showUnifiedSearchFeature } returns false - } - every { activity.settings() } returns settings - val state = getSearchProviderState( - searchEngineSource = SearchEngineSource.Default(mockk(relaxed = true)), - ) - - val result = awesomeBarView.getProvidersToAdd(state) - assertEquals(1, result.filterIsInstance().size) } @@ -834,7 +819,7 @@ class AwesomeBarViewTest { } @Test - fun `GIVEN a search from the default engine with no suggestions asked WHEN configuring providers THEN don't add any provider`() { + fun `GIVEN a search from the default engine with no suggestions asked WHEN configuring providers THEN add only search engine suggestion provider`() { val settings: Settings = mockk(relaxed = true) { every { showUnifiedSearchFeature } returns true } @@ -862,7 +847,7 @@ class AwesomeBarViewTest { assertEquals(0, result.filterIsInstance().size) assertEquals(0, result.filterIsInstance().size) assertEquals(0, result.filterIsInstance().size) - assertEquals(0, result.filterIsInstance().size) + assertEquals(1, result.filterIsInstance().size) } @Test From d2a78f37df920dbb39f8c8b269c097d5fc006b8c Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Wed, 23 Aug 2023 16:57:09 +0300 Subject: [PATCH 073/209] Bug 1850730 - General settings TestRail matching --- .../mozilla/fenix/ui/AddressAutofillTest.kt | 13 +- .../org/mozilla/fenix/ui/ComposeSmokeTest.kt | 15 -- .../fenix/ui/CreditCardAutofillTest.kt | 129 +++++------------- .../java/org/mozilla/fenix/ui/LoginsTest.kt | 64 +++++---- .../mozilla/fenix/ui/SettingsCustomizeTest.kt | 8 +- .../mozilla/fenix/ui/SettingsGeneralTest.kt | 65 ++++----- .../mozilla/fenix/ui/SettingsHomepageTest.kt | 57 +++----- .../java/org/mozilla/fenix/ui/SmokeTest.kt | 15 -- 8 files changed, 133 insertions(+), 233 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt index f326b1abb..b6244395b 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/AddressAutofillTest.kt @@ -41,6 +41,7 @@ class AddressAutofillTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836845 @SmokeTest @Test fun verifyAddressAutofillTest() { @@ -81,6 +82,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836856 @SmokeTest @Test fun deleteSavedAddressTest() { @@ -111,6 +113,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836840 @Test fun verifyAddAddressViewTest() { homeScreen { @@ -124,6 +127,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836841 @Test fun verifyEditAddressViewTest() { homeScreen { @@ -149,6 +153,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836839 @Test fun verifyAddressAutofillToggleTest() { val addressFormPage = @@ -196,6 +201,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836847 @Test fun verifyManageAddressesPromptOptionTest() { val addressFormPage = @@ -234,9 +240,10 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836849 @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1814032") @Test - fun verifyAddressAutofillSelectionTest() { + fun verifyMultipleAddressesSelectionTest() { val addressFormPage = TestAssetHelper.getAddressFormAsset(mockWebServer) @@ -301,6 +308,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836850 @Test fun verifySavedAddressCanBeEditedTest() { homeScreen { @@ -339,6 +347,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836848 @Test fun verifyStateFieldUpdatesInAccordanceWithCountryFieldTest() { homeScreen { @@ -355,6 +364,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836858 @Test fun verifyFormFieldCanBeFilledManuallyTest() { val addressFormPage = @@ -397,6 +407,7 @@ class AddressAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1836838 @Test fun verifyAutofillAddressSectionTest() { homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt index 0f80d3731..32c64c095 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt @@ -299,19 +299,4 @@ class ComposeSmokeTest { assertPlaybackState(browserStore, MediaSession.PlaybackState.PAUSED) } } - - // For API>23 - // Verifies the default browser switch opens the system default apps menu. - @Test - fun changeDefaultBrowserSetting() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyDefaultBrowserToggle(false) - clickDefaultBrowserSwitch() - verifyAndroidDefaultAppsMenuAppears() - } - // Dismiss the request - mDevice.pressBack() - } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt index 46c8557eb..18c7c3546 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CreditCardAutofillTest.kt @@ -7,7 +7,6 @@ package org.mozilla.fenix.ui import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before -import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest @@ -62,6 +61,7 @@ class CreditCardAutofillTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512792 @SmokeTest @Test fun verifyCreditCardAutofillTest() { @@ -99,32 +99,10 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512798 @SmokeTest @Test fun deleteSavedCreditCardUsingToolbarButtonTest() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - }.openAutofillSubMenu { - clickAddCreditCardButton() - fillAndSaveCreditCard( - MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, - MockCreditCard1.MOCK_NAME_ON_CARD, - MockCreditCard1.MOCK_EXPIRATION_MONTH, - MockCreditCard1.MOCK_EXPIRATION_YEAR, - ) - clickManageSavedCreditCardsButton() - clickSecuredCreditCardsLaterButton() - clickSavedCreditCard() - clickDeleteCreditCardToolbarButton() - clickConfirmDeleteCreditCardButton() - verifyAddCreditCardsButton() - } - } - - @SmokeTest - @Test - fun cancelDeleteSavedCreditCardUsingToolbarButtonTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -142,35 +120,16 @@ class CreditCardAutofillTest { clickDeleteCreditCardToolbarButton() clickCancelDeleteCreditCardButton() verifyEditCreditCardToolbarTitle() - } - } - - @SmokeTest - @Test - fun deleteSavedCreditCardUsingMenuButtonTest() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - }.openAutofillSubMenu { - clickAddCreditCardButton() - fillAndSaveCreditCard( - MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, - MockCreditCard1.MOCK_NAME_ON_CARD, - MockCreditCard1.MOCK_EXPIRATION_MONTH, - MockCreditCard1.MOCK_EXPIRATION_YEAR, - ) - clickManageSavedCreditCardsButton() - clickSecuredCreditCardsLaterButton() - clickSavedCreditCard() - clickDeleteCreditCardMenuButton() + clickDeleteCreditCardToolbarButton() clickConfirmDeleteCreditCardButton() verifyAddCreditCardsButton() } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2271192 @SmokeTest @Test - fun cancelDeleteSavedCreditCardUsingMenuButtonTest() { + fun deleteSavedCreditCardUsingMenuButtonTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -188,9 +147,13 @@ class CreditCardAutofillTest { clickDeleteCreditCardMenuButton() clickCancelDeleteCreditCardButton() verifyEditCreditCardToolbarTitle() + clickDeleteCreditCardMenuButton() + clickConfirmDeleteCreditCardButton() + verifyAddCreditCardsButton() } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512788 @Test fun verifyCreditCardsSectionTest() { homeScreen { @@ -214,6 +177,7 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1859917 @Test fun verifyManageCreditCardsPromptOptionTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) @@ -243,6 +207,7 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512790 @Test fun verifyCreditCardsAutofillToggleTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) @@ -283,6 +248,7 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512795 @Test fun verifyEditCardsViewTest() { homeScreen { @@ -318,6 +284,7 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512796 @Test fun verifyEditedCardIsSavedTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) @@ -365,8 +332,9 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512797 @Test - fun verifyCreditCardCannotBeSavedWithoutCardNumberTest() { + fun verifyCreditCardCannotBeSavedWithoutCardNumberOrNameTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -390,29 +358,7 @@ class CreditCardAutofillTest { clickSaveCreditCardToolbarButton() verifyEditCreditCardToolbarTitle() verifyCreditCardNumberErrorMessage() - } - } - - @Test - fun verifyCreditCardCannotBeSavedWithoutNameOnCardTest() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - }.openAutofillSubMenu { - verifyCreditCardsAutofillSection(true, false) - clickAddCreditCardButton() - fillAndSaveCreditCard( - MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, - MockCreditCard1.MOCK_NAME_ON_CARD, - MockCreditCard1.MOCK_EXPIRATION_MONTH, - MockCreditCard1.MOCK_EXPIRATION_YEAR, - ) - clickManageSavedCreditCardsButton() - clickSecuredCreditCardsLaterButton() - verifySavedCreditCardsSection( - MockCreditCard1.MOCK_LAST_CARD_DIGITS, - MockCreditCard1.MOCK_EXPIRATION_MONTH_AND_YEAR, - ) + }.goBackToSavedCreditCards { clickSavedCreditCard() clearNameOnCreditCard() clickSaveCreditCardToolbarButton() @@ -421,8 +367,9 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512794 @Test - fun verifyMultipleCreditCardsCanBeSavedTest() { + fun verifyMultipleCreditCardsCanBeAddedTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) homeScreen { @@ -476,8 +423,9 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2271304 @Test - fun verifyDoNotSaveCreditCardFromFormTest() { + fun verifyDoNotSaveCreditCardFromPromptTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) navigationToolbar { @@ -496,8 +444,9 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1779194 @Test - fun verifySaveCreditCardFromFormTest() { + fun verifySaveCreditCardFromPromptTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) navigationToolbar { @@ -522,6 +471,7 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2271305 @Test fun verifyCancelCreditCardUpdatePromptTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) @@ -572,6 +522,7 @@ class CreditCardAutofillTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1779195 @Test fun verifyConfirmCreditCardUpdatePromptTest() { val creditCardFormPage = TestAssetHelper.getCreditCardFormAsset(mockWebServer) @@ -622,9 +573,9 @@ class CreditCardAutofillTest { } } - @Ignore("Failing, see https://bugzilla.mozilla.org/show_bug.cgi?id=1847774") + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1512791 @Test - fun verifySavedCreditCardsRedirectionToAutofillAfterInterruptionTest() { + fun verifyCreditCardRedirectionsToAutofillSectionAfterInterruptionTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -639,33 +590,15 @@ class CreditCardAutofillTest { ) clickManageSavedCreditCardsButton() clickSecuredCreditCardsLaterButton() - verifySavedCreditCardsSection( - MockCreditCard1.MOCK_LAST_CARD_DIGITS, - MockCreditCard1.MOCK_EXPIRATION_MONTH_AND_YEAR, - ) + clickSavedCreditCard() putAppToBackground() bringAppToForeground() verifyAutofillToolbarTitle() - } - } - - @Test - fun verifyEditCreditCardRedirectionToAutofillAfterInterruptionTest() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - }.openAutofillSubMenu { - verifyCreditCardsAutofillSection(true, false) - clickAddCreditCardButton() - fillAndSaveCreditCard( - MockCreditCard1.MOCK_CREDIT_CARD_NUMBER, - MockCreditCard1.MOCK_NAME_ON_CARD, - MockCreditCard1.MOCK_EXPIRATION_MONTH, - MockCreditCard1.MOCK_EXPIRATION_YEAR, - ) clickManageSavedCreditCardsButton() - clickSecuredCreditCardsLaterButton() - clickSavedCreditCard() + verifySavedCreditCardsSection( + MockCreditCard1.MOCK_LAST_CARD_DIGITS, + MockCreditCard1.MOCK_EXPIRATION_MONTH_AND_YEAR, + ) putAppToBackground() bringAppToForeground() verifyAutofillToolbarTitle() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt index 442e1776c..a2ec7ef4f 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/LoginsTest.kt @@ -67,6 +67,7 @@ class LoginsTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2092713 // Tests the Logins and passwords menu items and default values @Test fun loginsAndPasswordsSettingsItemsTest() { @@ -82,10 +83,11 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517816 // Tests only for initial state without signing in. // For tests after signing in, see SyncIntegration test suite @Test - fun savedLoginsMenuItemsTest() { + fun verifySavedLoginsListTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -101,8 +103,9 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2092925 @Test - fun syncLoginsMenuItemsTest() { + fun verifySyncLoginsOptionsTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -115,8 +118,12 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/523839 @Test - fun saveLoginsAndPasswordsOptionsItemsTest() { + fun saveLoginFromPromptTest() { + val saveLoginTest = + TestAssetHelper.getSaveLoginAsset(mockWebServer) + homeScreen { }.openThreeDotMenu { }.openSettings { @@ -124,12 +131,8 @@ class LoginsTest { }.openSaveLoginsAndPasswordsOptions { verifySaveLoginsOptionsView() } - } - @Test - fun saveLoginFromPromptTest() { - val saveLoginTest = - TestAssetHelper.getSaveLoginAsset(mockWebServer) + exitMenu() navigationToolbar { }.enterURLAndEnterToBrowser(saveLoginTest.url) { @@ -152,8 +155,9 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/960412 @Test - fun openWebsiteForSavedLoginTest() { + fun openLoginWebsiteInBrowserTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/loginForm" val originWebsite = "mozilla-mobile.github.io" val userName = "test" @@ -179,6 +183,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517817 @Test fun neverSaveLoginFromPromptTest() { val saveLoginTest = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -206,9 +211,10 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1508171 @SmokeTest @Test - fun updateSavedLoginTest() { + fun verifyUpdatedLoginIsSavedTest() { val saveLoginTest = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -241,6 +247,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1049971 @SmokeTest @Test fun verifyMultipleLoginsSelectionsTest() { @@ -277,6 +284,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/875849 @Test fun verifyEditLoginsViewTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/loginForm" @@ -305,6 +313,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/875851 @Test fun verifyEditedLoginsAreSavedTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/v2.0/loginForm.html" @@ -342,6 +351,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2266452 @Test fun verifyLoginWithNoUserNameCanNotBeSavedTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/loginForm" @@ -371,6 +381,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2266453 @Test fun verifyLoginWithoutPasswordCanNotBeSavedTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/loginForm" @@ -401,6 +412,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/876531 @Test fun verifyEditModeDismissalDoesNotSaveLoginCredentialsTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/loginForm" @@ -431,6 +443,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/876532 @Test fun verifyDeleteLoginButtonTest() { val loginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -461,6 +474,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517818 @SmokeTest @Test fun verifyNeverSaveLoginOptionTest() { @@ -484,6 +498,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517819 @Test fun verifyAutofillToggleTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/v2.0/loginForm.html" @@ -524,9 +539,10 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/593768 @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1812995") @Test - fun verifyLoginIsNotUpdatedTest() { + fun doNotSaveOptionWillNotUpdateALoginTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/v2.0/loginForm.html" val originWebsite = "mozilla-mobile.github.io" @@ -572,6 +588,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2090455 @Test fun searchLoginsByUsernameTest() { val firstLoginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -618,6 +635,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/608834 @Test fun searchLoginsByUrlTest() { val firstLoginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -664,6 +682,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2266441 @Test fun verifyLastUsedLoginSortingOptionTest() { val firstLoginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -710,6 +729,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2266442 @Test fun verifyAlphabeticalLoginSortingOptionTest() { val firstLoginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) @@ -754,6 +774,7 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1518435 @Test fun verifyAddLoginManuallyTest() { val loginPage = "https://mozilla-mobile.github.io/testapp/v2.0/loginForm.html" @@ -792,8 +813,9 @@ class LoginsTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2068215 @Test - fun verifyCopyUsernameTest() { + fun verifyCopyLoginCredentialsToClipboardTest() { val firstLoginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) navigationToolbar { @@ -809,24 +831,6 @@ class LoginsTest { viewSavedLoginDetails("test@example.com") clickCopyUserNameButton() verifySnackBarText("Username copied to clipboard") - } - } - - @Test - fun verifyCopyPasswordTest() { - val firstLoginPage = TestAssetHelper.getSaveLoginAsset(mockWebServer) - - navigationToolbar { - }.enterURLAndEnterToBrowser(firstLoginPage.url) { - clickSubmitLoginButton() - verifySaveLoginPromptIsDisplayed() - clickPageObject(itemWithText("Save")) - }.openThreeDotMenu { - }.openSettings { - }.openLoginsAndPasswordSubMenu { - }.openSavedLogins { - tapSetupLater() - viewSavedLoginDetails("test@example.com") clickCopyPasswordButton() verifySnackBarText("Password copied to clipboard") } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt index 72619bea9..78b0b4af8 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsCustomizeTest.kt @@ -49,8 +49,9 @@ class SettingsCustomizeTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/344212 @Test - fun changeThemeSettingTest() { + fun changeThemeOfTheAppTest() { // Goes through the settings and changes the default search engine, then verifies it changes. homeScreen { }.openThreeDotMenu { @@ -64,6 +65,7 @@ class SettingsCustomizeTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/466571 @Test fun setToolbarPositionTest() { homeScreen { @@ -88,8 +90,9 @@ class SettingsCustomizeTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1058682 @Test - fun swipeToolbarGesturePreferenceOffTest() { + fun turnOffSwipeToSwitchTabsPreferenceTest() { val firstWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val secondWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) @@ -114,6 +117,7 @@ class SettingsCustomizeTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1992289 @Test fun pullToRefreshPreferenceTest() { homeScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsGeneralTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsGeneralTest.kt index 3fb4a0be9..8e4c16577 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsGeneralTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsGeneralTest.kt @@ -53,8 +53,9 @@ class SettingsGeneralTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2092697 @Test - fun settingsGeneralItemsTests() { + fun verifyGeneralSettingsItemsTest() { homeScreen { }.openThreeDotMenu { }.openSettings { @@ -76,9 +77,10 @@ class SettingsGeneralTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/344213 @SmokeTest @Test - fun changeAccessibiltySettings() { + fun verifyFontSizingChangeTest() { // Goes through the settings and changes the default text on a webpage, then verifies if the text has changed. val fenixApp = activityIntentTestRule.activity.applicationContext as FenixApplication val webpage = getLoremIpsumAsset(mockWebServer).url @@ -107,9 +109,10 @@ class SettingsGeneralTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/516079 @SmokeTest @Test - fun switchLanguageTest() { + fun setAppLanguageDifferentThanSystemLanguageTest() { val enLanguageHeaderText = getStringResource(R.string.preferences_language) homeScreen { @@ -132,6 +135,7 @@ class SettingsGeneralTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/516080 @Test fun searchInLanguagesListTest() { val systemLocaleDefault = getStringResource(R.string.default_locale_text) @@ -153,10 +157,11 @@ class SettingsGeneralTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/516078 // Because it requires changing system prefs, this test will run only on Debug builds @Ignore("Failing due to app translation bug, see: https://github.com/mozilla-mobile/fenix/issues/26729") @Test - fun frenchSystemLocaleTest() { + fun verifyFollowDeviceLanguageTest() { val frenchLocale = Locale("fr", "FR") runWithSystemLocaleChanged(frenchLocale, activityIntentTestRule) { @@ -172,47 +177,18 @@ class SettingsGeneralTest { } } - @SmokeTest - @Test - fun verifyHomepageOptionSummaryUpdatesTest() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifySettingsOptionSummary("Homepage", "Open on homepage after four hours") - }.openHomepageSubMenu { - verifySelectedOpeningScreenOption("Homepage after four hours of inactivity") - clickOpeningScreenOption("Homepage") - verifySelectedOpeningScreenOption("Homepage") - }.goBack { - verifySettingsOptionSummary("Homepage", "Open on homepage") - }.openHomepageSubMenu { - clickOpeningScreenOption("Last tab") - verifySelectedOpeningScreenOption("Last tab") - }.goBack { - verifySettingsOptionSummary("Homepage", "Open on last tab") - } - } - + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1360557 @Test fun tabsSettingsMenuItemsTest() { homeScreen { }.openThreeDotMenu { }.openSettings { + verifyTabsButton() + verifySettingsOptionSummary("Tabs", "Close manually") }.openTabsSubMenu { verifyTabViewOptions() verifyCloseTabsOptions() verifyMoveOldTabsToInactiveOptions() - } - } - - @Test - fun verifyTabsOptionSummaryUpdatesTest() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyTabsButton() - verifySettingsOptionSummary("Tabs", "Close manually") - }.openTabsSubMenu { verifySelectedCloseTabsOption("Never") clickClosedTabsOption("After one day") verifySelectedCloseTabsOption("After one day") @@ -230,4 +206,21 @@ class SettingsGeneralTest { verifySettingsOptionSummary("Tabs", "Close after one month") } } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/243583 + // For API>23 + // Verifies the default browser switch opens the system default apps menu. + @SmokeTest + @Test + fun changeDefaultBrowserSetting() { + homeScreen { + }.openThreeDotMenu { + }.openSettings { + verifyDefaultBrowserToggle(false) + clickDefaultBrowserSwitch() + verifyAndroidDefaultAppsMenuAppears() + } + // Dismiss the request + mDevice.pressBack() + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt index 4f0fa2247..769add7bf 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsHomepageTest.kt @@ -49,6 +49,7 @@ class SettingsHomepageTest { mockWebServer.shutdown() } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1564843 @Test fun verifyHomepageSettingsTest() { homeScreen { @@ -59,6 +60,7 @@ class SettingsHomepageTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1564859 @Test fun verifyShortcutOptionTest() { // en-US defaults @@ -90,6 +92,7 @@ class SettingsHomepageTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1565003 @Test fun verifyRecentlyVisitedOptionTest() { activityIntentTestRule.applySettingsExceptions { @@ -109,26 +112,7 @@ class SettingsHomepageTest { } } - @Test - fun verifyPocketOptionTest() { - activityIntentTestRule.applySettingsExceptions { - it.isRecentTabsFeatureEnabled = false - it.isRecentlyVisitedFeatureEnabled = false - } - val genericURL = getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - }.goToHomescreen { - verifyPocketSectionIsDisplayed() - }.openThreeDotMenu { - }.openCustomizeHome { - clickPocketButton() - }.goBackToHomeScreen { - verifyPocketSectionIsNotDisplayed() - } - } - + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1564999 @SmokeTest @Test fun jumpBackInOptionTest() { @@ -146,6 +130,7 @@ class SettingsHomepageTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1565000 @SmokeTest @Test fun recentBookmarksOptionTest() { @@ -165,48 +150,47 @@ class SettingsHomepageTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1569831 @SmokeTest @Test - fun startOnHomepageTest() { + fun verifyOpeningScreenOptionsTest() { val genericURL = getGenericAsset(mockWebServer, 1) navigationToolbar { }.enterURLAndEnterToBrowser(genericURL.url) { }.openThreeDotMenu { }.openSettings { + verifySettingsOptionSummary("Homepage", "Open on homepage after four hours") }.openHomepageSubMenu { + verifySelectedOpeningScreenOption("Homepage after four hours of inactivity") clickOpeningScreenOption("Homepage") + verifySelectedOpeningScreenOption("Homepage") } restartApp(activityIntentTestRule) homeScreen { verifyHomeScreen() - } - } - - @SmokeTest - @Test - fun startOnLastTabTest() { - val firstWebPage = getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(firstWebPage.url) { - }.goToHomescreen { }.openThreeDotMenu { - }.openCustomizeHome { + }.openSettings { + verifySettingsOptionSummary("Homepage", "Open on homepage") + }.openHomepageSubMenu { clickOpeningScreenOption("Last tab") + verifySelectedOpeningScreenOption("Last tab") + }.goBack { + verifySettingsOptionSummary("Homepage", "Open on last tab") } restartApp(activityIntentTestRule) browserScreen { - verifyUrl(firstWebPage.url.toString()) + verifyUrl(genericURL.url.toString()) } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1569843 @Test - fun ignoreStartOnHomeWhenLaunchedByExternalLinkTest() { + fun verifyOpeningScreenAfterLaunchingExternalLinkTest() { val genericPage = getGenericAsset(mockWebServer, 1) homeScreen { @@ -230,9 +214,10 @@ class SettingsHomepageTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1676359 @Ignore("Intermittent test: https://github.com/mozilla-mobile/fenix/issues/26559") @Test - fun setWallpaperTest() { + fun verifyWallpaperChangeTest() { val wallpapers = listOf( "Wallpaper Item: amethyst", "Wallpaper Item: cerulean", diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt index 992906be5..36d640095 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt @@ -295,19 +295,4 @@ class SmokeTest { assertPlaybackState(browserStore, MediaSession.PlaybackState.PAUSED) } } - - // For API>23 - // Verifies the default browser switch opens the system default apps menu. - @Test - fun changeDefaultBrowserSetting() { - homeScreen { - }.openThreeDotMenu { - }.openSettings { - verifyDefaultBrowserToggle(false) - clickDefaultBrowserSwitch() - verifyAndroidDefaultAppsMenuAppears() - } - // Dismiss the request - mDevice.pressBack() - } } From 14be2d4b58f4df32f6970a046c80b01d33a366ec Mon Sep 17 00:00:00 2001 From: AndiAJ Date: Fri, 8 Sep 2023 14:06:02 +0300 Subject: [PATCH 074/209] Bug 1851419 - Disable searchHistoryNotRememberedInPrivateBrowsingTest UI test --- app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt index 80b26f8f2..27db22987 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SearchTest.kt @@ -708,6 +708,7 @@ class SearchTest { } } + @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1851419") @SmokeTest @Test fun searchHistoryNotRememberedInPrivateBrowsingTest() { From 491e524698c7e585bd46b589af734bf245f4ec54 Mon Sep 17 00:00:00 2001 From: Harrison Oglesby Date: Thu, 7 Sep 2023 14:24:18 -0700 Subject: [PATCH 075/209] Bug 1847819 - Add new Homescreen description for Total Private Browsing Mode. --- .../viewholders/FeltPrivacyInfoCard.kt | 88 +++++++++++++++++++ .../PrivateBrowsingDescriptionViewHolder.kt | 15 +++- app/src/main/res/values/strings.xml | 13 +++ 3 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt new file mode 100644 index 000000000..4edd382be --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/FeltPrivacyInfoCard.kt @@ -0,0 +1,88 @@ +/* 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.home.sessioncontrol.viewholders + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Card +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.LinkText +import org.mozilla.fenix.compose.LinkTextState +import org.mozilla.fenix.theme.FirefoxTheme + +/** + * Total Private Browsing Mode homepage informational card. + * + * @param onLearnMoreClick Invoked when the user clicks on the who can see my activity link. + */ +@Composable +fun FeltPrivacyModeInfoCard( + onLearnMoreClick: () -> Unit, +) { + Card( + modifier = Modifier + .wrapContentHeight(), + backgroundColor = FirefoxTheme.colors.layerAccentNonOpaque, + shape = RoundedCornerShape(8.dp), + elevation = 5.dp, + ) { + Column( + modifier = Modifier.padding(16.dp), + ) { + Text( + text = stringResource(id = R.string.felt_privacy_desc_card_title), + style = FirefoxTheme.typography.headline7, + color = FirefoxTheme.colors.textPrimary, + ) + + Spacer(modifier = Modifier.height(8.dp)) + + LinkText( + text = stringResource( + id = R.string.felt_privacy_info_card_subtitle, + stringResource(id = R.string.app_name), + stringResource(id = R.string.felt_privacy_info_card_subtitle_link_text), + ), + linkTextState = LinkTextState( + text = stringResource(id = R.string.felt_privacy_info_card_subtitle_link_text), + url = "", + onClick = { onLearnMoreClick() }, + ), + style = FirefoxTheme.typography.body2.copy( + color = FirefoxTheme.colors.textPrimary, + ), + linkTextDecoration = TextDecoration.Underline, + ) + } + } +} + +@Composable +@Preview +private fun FeltPrivacyModeDescriptionPreview() { + FirefoxTheme { + Column( + modifier = Modifier.background(FirefoxTheme.colors.layer1) + .fillMaxSize(), + ) { + FeltPrivacyModeInfoCard( + onLearnMoreClick = {}, + ) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt index 08af2e6aa..ec1b0ea0d 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.unit.sp import androidx.lifecycle.LifecycleOwner import org.mozilla.fenix.R import org.mozilla.fenix.compose.ComposeViewHolder +import org.mozilla.fenix.ext.settings import org.mozilla.fenix.home.privatebrowsing.interactor.PrivateBrowsingInteractor import org.mozilla.fenix.theme.FirefoxTheme @@ -51,9 +52,17 @@ class PrivateBrowsingDescriptionViewHolder( @Composable override fun Content() { - PrivateBrowsingDescription( - onLearnMoreClick = interactor::onLearnMoreClicked, - ) + val settings = composeView.context.settings() + + if (settings.feltPrivateBrowsingEnabled) { + FeltPrivacyModeInfoCard( + onLearnMoreClick = interactor::onLearnMoreClicked, + ) + } else { + PrivateBrowsingDescription( + onLearnMoreClick = interactor::onLearnMoreClicked, + ) + } } companion object { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fcf943fe3..12da7ea0a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -65,6 +65,19 @@ Common myths about private browsing + + + Leave no traces on this device + + %1$s deletes your cookies, history, and site data when you close all your private windows. %2$s + + Who might be able to see my activity? + Launch your next private tab in one tap. From 47239a274ecdb028c449132625d9b764f1195115 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 9 Sep 2023 00:03:30 +0000 Subject: [PATCH 076/209] Import translations from android-l10n --- app/src/main/res/values-en-rCA/strings.xml | 179 +++++++++++++-------- 1 file changed, 115 insertions(+), 64 deletions(-) diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml index 530dbb34a..e83063e9f 100644 --- a/app/src/main/res/values-en-rCA/strings.xml +++ b/app/src/main/res/values-en-rCA/strings.xml @@ -251,7 +251,7 @@ %s will share everything you type in the address bar with your default search engine. - + Search %s Search directly from the address bar @@ -262,6 +262,9 @@ This time search in: + + %s search engine + Meet your personalized homepage. Recent tabs, bookmarks, and search results will appear here. @@ -297,51 +300,51 @@ Not now - + - Make %s your go-to browser + Make %s your go-to browser Make Firefox your go-to browser - %1$s puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our %2$s. + %1$s puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our %2$s. Firefox puts people over profits and defends your privacy by blocking cross-site trackers.\n\nLearn more in our privacy notice. - privacy notice + privacy notice - Set as default browser + Set as default browser - Not now + Not now - Hop from phone to laptop and back + Hop from phone to laptop and back - Grab tabs and passwords from your other devices to pick up where you left off. + Grab tabs and passwords from your other devices to pick up where you left off. - Sign in + Sign in - Not now + Not now - Notifications help you do more with %s + Notifications help you do more with %s Notifications help you do more with Firefox - Send tabs between devices, manage downloads, and get tips on getting the most out of %s. + Send tabs between devices, manage downloads, and get tips on getting the most out of %s. Send tabs between devices, manage downloads, and get tips on getting the most out of Firefox. - Turn on notifications + Turn on notifications - Not now + Not now @@ -361,10 +364,20 @@ General About + + Select one + + Manage search shortcuts + + Edit engines visible in the search menu + + Engines visible on the search menu Default search engine Search + + Search engines Address bar @@ -409,22 +422,14 @@ Cancel - Request support - Send request - Cookie Banner Reduction - Request support for this site? - Request to support site submitted. - Request sent On for this site - - Request to support site submitted Support request sent @@ -433,8 +438,6 @@ Turn on Cookie Banner Reduction for %1$s? Turn off Cookie Banner Reduction for %1$s? - - This site is currently not supported by Cookie Banner Reduction. Would you like our team to review this website and add support in the future? %1$s can’t automatically reject cookie requests on this site. You can send a request to support this site in the future. @@ -538,6 +541,11 @@ Never External download manager + + Enable Gecko logs + + Quitting the application to apply changes… + Add-ons @@ -602,12 +610,18 @@ Classic %s - Limited Edition + Limited Edition + + Artist series - The new Independent Voices collection. %s + The new Independent Voices collection. %s + + The Independent Voices collection. %s - The new Independent Voices collection. + The new Independent Voices collection. + + The Independent Voices collection. Try a splash of colour @@ -621,7 +635,19 @@ Add-on is already installed + + + Add-ons are temporarily disabled + + One or more add-ons stopped working, making your system unstable. %1$s unsuccessfully tried to restart the add-on(s).\n\nAdd-ons won’t be restarted during your current session.\n\nRemoving or disabling add-ons may fix this issue. + + Try restarting add-ons + + Continue with add-ons disabled + + + Manage account Sync now @@ -1187,8 +1213,16 @@ Share Save as PDF - + Unable to generate PDF + + Dismiss + + Unable to print + + Unable to print this page + + Print Send to device @@ -1327,12 +1361,16 @@ %d tabs - Browsing history and site data + Browsing history and site data + + Browsing history %d addresses - Cookies + Cookies + + Cookies and site data You’ll be logged out of most sites @@ -1387,60 +1425,60 @@ - Welcome to a better internet + Welcome to a better internet - A browser built for people, not profits. + A browser built for people, not profits. - Pick up where you left off + Pick up where you left off - Sync tabs and passwords across devices for seamless screen-switching. + Sync tabs and passwords across devices for seamless screen-switching. - Sign in + Sign in Sync is on - Privacy protection by default + Privacy protection by default - %1$s automatically stops companies from secretly following you around the web. + %1$s automatically stops companies from secretly following you around the web. - Featuring Total Cookie Protection to stop trackers from using cookies to stalk you across sites. + Featuring Total Cookie Protection to stop trackers from using cookies to stalk you across sites. - Standard (default) + Standard (default) - Balanced for privacy and performance. Pages load normally. + Balanced for privacy and performance. Pages load normally. - Strict + Strict - Blocks more trackers so pages load faster, but some on-page functionally may break. + Blocks more trackers so pages load faster, but some on-page functionally may break. - Pick your toolbar placement + Pick your toolbar placement - Keep it on the bottom, or move it to the top. + Keep it on the bottom, or move it to the top. - You control your data + You control your data - Firefox gives you control over what you share online and what you share with us. + Firefox gives you control over what you share online and what you share with us. - Read our privacy notice + Read our privacy notice - Ready to open up an amazing internet? + Ready to open up an amazing internet? - Start browsing + Start browsing - Choose your theme + Choose your theme - Save some battery and your eyesight with dark mode. + Save some battery and your eyesight with dark mode. - Automatic + Automatic - Adapts to your device settings + Adapts to your device settings - Dark theme + Dark theme - Light theme + Light theme Tabs sent! @@ -1476,12 +1514,8 @@ Protection Settings Enhanced Tracking Protection - - Browse without being followed Now featuring Total Cookie Protection, our most powerful barrier yet against cross-site trackers. - - Keep your data to yourself. %s protects you from many of the most common trackers that follow what you do online. %s protects you from many of the most common trackers that follow what you do online. @@ -1489,16 +1523,12 @@ Standard (default) - balanced for privacy and performance. Pages load normally. - Pages will load normally, but block fewer trackers. What’s blocked by standard tracking protection Strict - Blocks more trackers so pages load faster, but some on-page functionality may break. - Stronger tracking protection and faster performance, but some sites may not work properly. What’s blocked by strict tracking protection @@ -1853,6 +1883,8 @@ Add search engine + + Add new search engine Edit search engine @@ -1866,16 +1898,35 @@ Other + + Name Name + + Search engine name + + Search string URL Search string to use + + URL to use for search Replace query with “%s”. Example:\nhttps://www.google.com/search?q=%s Custom search engine details + + Search suggestion API (optional) + + Search suggestion API URL + + Replace query with “%s”. Example:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Replace query with “%s”. Example:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Save + Enter search engine name From 2bc455243ca297fd213e8a231515a3d99cda8a35 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sun, 10 Sep 2023 00:03:42 +0000 Subject: [PATCH 077/209] Import translations from android-l10n --- app/src/main/res/values-co/strings.xml | 62 ++++++++++++++------------ 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/app/src/main/res/values-co/strings.xml b/app/src/main/res/values-co/strings.xml index 3dfc9d6ed..1c29e4266 100644 --- a/app/src/main/res/values-co/strings.xml +++ b/app/src/main/res/values-co/strings.xml @@ -380,6 +380,8 @@ Mutore di ricerca predefinitu Ricerca + + Mutori di ricerca Barra d’indirizzu @@ -1369,12 +1371,16 @@ %d unghjette - Cronolugia di navigazione è dati di siti + Cronolugia di navigazione è dati di siti + + Cronolugia di navigazione %d indirizzi web - Canistrelli + Canistrelli + + Canistrelli è dati di siti Serete disghjuntu(a) di a maiò parte di i siti @@ -1429,61 +1435,61 @@ - Benvenuta in un Internet più bellu + Benvenuta in un Internet più bellu - Un navigatore cuncepitu per a ghjente, micca per i prufiti. + Un navigatore cuncepitu per a ghjente, micca per i prufiti. - Ripigliate induve vi site piantati + Ripigliate induve vi site piantati - Sincrunizate l’unghjette è e parolle d’intesa trà i vostri apparechji per passà d’un screnu à l’altru senza straziu. + Sincrunizate l’unghjette è e parolle d’intesa trà i vostri apparechji per passà d’un screnu à l’altru senza straziu. - Cunnettesi + Cunnettesi Sincrunizazione attivata - Prutezzione attiva di a vita privata + Prutezzione attiva di a vita privata - %1$s impedisce autumaticamente l’imprese di seguitavvi d’una manera sicreta nant’à u Web. + %1$s impedisce autumaticamente l’imprese di seguitavvi d’una manera sicreta nant’à u Web. - A funzione di prutezzione tutale contr’à i canistrelli permette d’impedisce l’elementi di spiunagiu d’impiegà i canistrelli per seguitavvi d’un situ à l’altru. + A funzione di prutezzione tutale contr’à i canistrelli permette d’impedisce l’elementi di spiunagiu d’impiegà i canistrelli per seguitavvi d’un situ à l’altru. - Classica (predefinita) + Classica (predefinita) - Equilibratu trà a cunfidenzialità è a perfurmenza. E pagine si caricanu nurmalmente. + Equilibratu trà a cunfidenzialità è a perfurmenza. E pagine si caricanu nurmalmente. - Severa + Severa - Bluccheghja più di perseguitatori è cusì e pagine si caricanu piu prestu, ma certi siti puderianu ùn micca funziunà currettamente. + Bluccheghja più di perseguitatori è cusì e pagine si caricanu piu prestu, ma certi siti puderianu ùn micca funziunà currettamente. - Sceglie a pusizione di a vostra barra d’attrezzi + Sceglie a pusizione di a vostra barra d’attrezzi - Lasciatela quaghjò o dispiazzatela quassù. + Lasciatela quaghjò o dispiazzatela quassù. - Gardate u cuntrollu di i vostri dati + Gardate u cuntrollu di i vostri dati - Firefox vi dà u cuntrollu nant’à ciò chì vò spartite in linea è nant’à ciò chì vò spartite cù noi. + Firefox vi dà u cuntrollu nant’à ciò chì vò spartite in linea è nant’à ciò chì vò spartite cù noi. - Leghjite a nostra pulitica di cunfidenzialità + Leghjite a nostra pulitica di cunfidenzialità - Pronti à scopre un Internet incredibule ? + Pronti à scopre un Internet incredibule ? - Principià a navigazione + Principià a navigazione - Sciglite u vostru tema + Sciglite u vostru tema - Ecunumizate a vostra batteria è i vostri ochji grazia à u modu scuru. + Ecunumizate a vostra batteria è i vostri ochji grazia à u modu scuru. - Autumaticu + Autumaticu - S’adatta à e preferenze di u vostru apparechju + S’adatta à e preferenze di u vostru apparechju - Tema scuru + Tema scuru - Tema chjaru + Tema chjaru Unghjette mandate ! @@ -1931,7 +1937,7 @@ Indirizzu web di l’API per e sugestioni di ricerca - Rimpiazzà a richiesta da « %s». Esempiu :\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Rimpiazzà a richiesta da « %s». Esempiu :\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s Arregistrà From 8344abf3e4c04724f1f42bc114455c81d5fc07e3 Mon Sep 17 00:00:00 2001 From: t-p-white Date: Fri, 8 Sep 2023 15:46:13 +0100 Subject: [PATCH 078/209] Bug 1851548 - Top sites are aligned to the left with Compose Top Sites enabled --- .../main/java/org/mozilla/fenix/home/topsites/TopSites.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt index 608f0c3ad..fcf3cdf9d 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt @@ -116,7 +116,10 @@ fun TopSites( HorizontalPager( state = pagerState, ) { page -> - Column { + Column( + modifier = Modifier.fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + ) { val topSitesWindows = topSites.windowed( size = TOP_SITES_PER_PAGE, step = TOP_SITES_PER_PAGE, From f85c762e1449d27a777454f214a061eb9f50dfbd Mon Sep 17 00:00:00 2001 From: github-actions Date: Mon, 11 Sep 2023 00:03:37 +0000 Subject: [PATCH 079/209] Import translations from android-l10n --- app/src/main/res/values-tr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index b4028ca8a..51c8d58fa 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -904,9 +904,9 @@ Gizli sekme ekle - Gizli + GİZLİ - Eşitle + EŞİTLE Tüm sekmeleri paylaş From 3fddd3df77ee66b23b3cbb4beeb1ab1edfbdaa18 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 14:00:06 +0300 Subject: [PATCH 080/209] Bug 1849833 - Replace qualified name with import. --- app/build.gradle | 3 ++- build.gradle | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index df6ae8cba..c2155d3da 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,6 +16,7 @@ import com.android.build.OutputFile import groovy.json.JsonOutput import org.gradle.internal.logging.text.StyledTextOutput.Style import org.gradle.internal.logging.text.StyledTextOutputFactory +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import static org.gradle.api.tasks.testing.TestResult.ResultType @@ -471,7 +472,7 @@ nimbus { experimenterManifest = ".experimenter.yaml" } -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { +tasks.withType(KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs += [ "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", diff --git a/build.gradle b/build.gradle index e40b20bc9..fe526b4bc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,7 @@ +import io.gitlab.arturbosch.detekt.Detekt +import io.gitlab.arturbosch.detekt.DetektCreateBaselineTask +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { @@ -162,7 +166,7 @@ allprojects { } } - tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { + tasks.withType(KotlinCompile).configureEach { kotlinOptions.jvmTarget = "17" kotlinOptions.allWarningsAsErrors = true kotlinOptions.freeCompilerArgs += [ @@ -193,7 +197,7 @@ detekt { } } -tasks.withType(io.gitlab.arturbosch.detekt.Detekt).configureEach() { +tasks.withType(Detekt).configureEach() { autoCorrect = true exclude "**/test/**" @@ -204,7 +208,7 @@ tasks.withType(io.gitlab.arturbosch.detekt.Detekt).configureEach() { } // Apply same path exclusions as for the main task -tasks.withType(io.gitlab.arturbosch.detekt.DetektCreateBaselineTask).configureEach() { +tasks.withType(DetektCreateBaselineTask).configureEach() { exclude "**/test/**" exclude "**/androidTest/**" exclude "**/build/**" @@ -243,7 +247,7 @@ task ktlintFormat(type: JavaExec, group: "formatting") { jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED") } -tasks.withType(io.gitlab.arturbosch.detekt.Detekt.class).configureEach { +tasks.withType(Detekt.class).configureEach { exclude("**/resources/**") exclude("**/tmp/**") } From f1f380a770874ca4f6ea36123ab7776f4408c409 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 14:19:48 +0300 Subject: [PATCH 081/209] Bug 1849833 - Replace deprecated kotlinOptions method. --- app/build.gradle | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index c2155d3da..b63e310f4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -473,11 +473,7 @@ nimbus { } tasks.withType(KotlinCompile).configureEach { - kotlinOptions { - freeCompilerArgs += [ - "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - ] - } + kotlinOptions.freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } dependencies { From 1b7c3f5631e45255f88408c8beaf7f8ac2f32097 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 14:30:11 +0300 Subject: [PATCH 082/209] Bug 1849833 - Replace all with configureEach. This avoids unnecessary configuration. --- app/build.gradle | 6 +++--- benchmark/build.gradle | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b63e310f4..9a59bf57d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -254,7 +254,7 @@ android { namespace 'org.mozilla.fenix' } -android.applicationVariants.all { variant -> +android.applicationVariants.configureEach { variant -> // ------------------------------------------------------------------------------------------------- // Generate version codes for builds @@ -709,7 +709,7 @@ if (project.hasProperty("coverage")) { toolVersion = Versions.jacoco } - android.applicationVariants.all { variant -> + android.applicationVariants.configureEach { variant -> tasks.register("jacoco${variant.name.capitalize()}TestReport", JacocoReport) { dependsOn "test${variant.name.capitalize()}UnitTest" @@ -847,7 +847,7 @@ if (gradle.hasProperty('localProperties.autoPublish.glean.dir')) { apply from: "../${gleanSrcDir}/build-scripts/substitute-local-glean.gradle" } -android.applicationVariants.all { variant -> +android.applicationVariants.configureEach { variant -> tasks.register("apkSize${variant.name.capitalize()}", ApkSizeTask) { variantName = variant.name apks = variant.outputs.collect { output -> output.outputFile.name } diff --git a/benchmark/build.gradle b/benchmark/build.gradle index 509794ab6..e917c0bdd 100644 --- a/benchmark/build.gradle +++ b/benchmark/build.gradle @@ -46,7 +46,7 @@ android { * and that's applied to the app module. Since there are no other uses of the glean plugin in the * benchmark module, we do this manually here. */ -configurations.all { +configurations.configureEach { resolutionStrategy.capabilitiesResolution.withCapability("org.mozilla.telemetry:glean-native") { def toBeSelected = candidates.find { it.id instanceof ModuleComponentIdentifier && it.id.module.contains('geckoview') } if (toBeSelected != null) { From b92867654f27c6f460de47e5ce8d088a4eb49dc5 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 14:40:01 +0300 Subject: [PATCH 083/209] Bug 1849833 - Use configureEach to avoid unnecessary configuration. --- settings.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/settings.gradle b/settings.gradle index dd6a86e2a..54c987c52 100644 --- a/settings.gradle +++ b/settings.gradle @@ -30,10 +30,10 @@ gradle.projectsLoaded { -> // Disables A-C tests and lint when building Fenix. gradle.allprojects { project -> if (project.projectDir.absolutePath.contains("/android-components/")) { - project.tasks.withType(Test) { + project.tasks.withType(Test).configureEach { enabled = false } - project.tasks.whenTaskAdded { task -> + project.tasks.configureEach { task -> if (task.name.contains("lint")) { task.enabled = false } From 1f930111f572852d643d89fdf9ce7557fed243a9 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 15:01:20 +0300 Subject: [PATCH 084/209] Bug 1849833 - Replace deprecated compileSdkVersion. This is replaced by defaultConfig compileSdk. --- app/build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9a59bf57d..60ad7d13b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,8 +23,6 @@ import static org.gradle.api.tasks.testing.TestResult.ResultType apply from: 'benchmark.gradle' android { - compileSdkVersion config.compileSdkVersion - project.maybeConfigForJetpackBenchmark(it) if (project.hasProperty("testBuildType")) { // Allowing to configure the test build type via command line flag (./gradlew -PtestBuildType=beta ..) @@ -35,6 +33,7 @@ android { defaultConfig { applicationId "org.mozilla" minSdkVersion config.minSdkVersion + compileSdk config.compileSdkVersion targetSdkVersion config.targetSdkVersion versionCode 1 versionName Config.generateDebugVersionName() From 1eda8620ff0cc7cc9d9426d50df2c4ca08503aca Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 15:21:25 +0300 Subject: [PATCH 085/209] Bug 1849833 - Replace deprecated flavorDimensions property. Also do not add unused dimension 'engine'. --- app/build.gradle | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 60ad7d13b..b934dd0e1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -185,9 +185,7 @@ android { animationsDisabled = true } - flavorDimensions "engine" - - flavorDimensions "product" + flavorDimensions.add("product") productFlavors { fenix { From 0991e4bbc8a188a7724a0f892570534e05a7a8eb Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 16:02:54 +0300 Subject: [PATCH 086/209] Bug 1849833 - Use tasks.register to avoid unnecessary configuration. --- app/build.gradle | 8 ++++---- build.gradle | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b934dd0e1..0941143c6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -767,22 +767,22 @@ tasks.register('printVariants') { } } -task buildTranslationArray { +tasks.register('buildTranslationArray') { // This isn't running as a task, instead the array is build when the gradle file is parsed. // https://github.com/mozilla-mobile/fenix/issues/14175 def foundLocales = new StringBuilder() foundLocales.append("new String[]{") fileTree("src/main/res").visit { FileVisitDetails details -> - if(details.file.path.endsWith("${File.separator}strings.xml")){ - def languageCode = details.file.parent.tokenize(File.separator).last().replaceAll('values-','').replaceAll('-r','-') + if (details.file.path.endsWith("${File.separator}strings.xml")) { + def languageCode = details.file.parent.tokenize(File.separator).last().replaceAll('values-', '').replaceAll('-r', '-') languageCode = (languageCode == "values") ? "en-US" : languageCode foundLocales.append("\"").append(languageCode).append("\"").append(",") } } foundLocales.append("}") - def foundLocalesString = foundLocales.toString().replaceAll(',}','}') + def foundLocalesString = foundLocales.toString().replaceAll(',}', '}') android.defaultConfig.buildConfigField "String[]", "SUPPORTED_LOCALE_ARRAY", foundLocalesString } diff --git a/build.gradle b/build.gradle index fe526b4bc..c05d6a148 100644 --- a/build.gradle +++ b/build.gradle @@ -239,7 +239,7 @@ tasks.register('ktlint', JavaExec) { args "app/src/**/*.kt", "!**/build/**/*.kt", "--baseline=ktlint-baseline.xml" } -task ktlintFormat(type: JavaExec, group: "formatting") { +tasks.register('ktlintFormat', JavaExec) { description = "Fix Kotlin code style deviations." classpath = configurations.ktlint mainClass.set("com.pinterest.ktlint.Main") From fd001d5ee45f737e26d47a008cd829091e2158a7 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Wed, 23 Aug 2023 18:49:19 +0300 Subject: [PATCH 087/209] Bug 1849833 - Replace deprecated OutputFile and VariantOutput. --- app/build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 0941143c6..c473a8995 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,4 @@ +import com.android.build.api.variant.FilterConfiguration import org.apache.tools.ant.util.StringUtils plugins { @@ -12,7 +13,6 @@ apply plugin: 'jacoco' apply plugin: 'androidx.navigation.safeargs.kotlin' apply plugin: 'com.google.android.gms.oss-licenses-plugin' -import com.android.build.OutputFile import groovy.json.JsonOutput import org.gradle.internal.logging.text.StyledTextOutput.Style import org.gradle.internal.logging.text.StyledTextOutputFactory @@ -277,7 +277,7 @@ android.applicationVariants.configureEach { variant -> variant.outputs.each { output -> def isMozillaOnline = project.hasProperty("mozillaOnline") || gradle.hasProperty("localProperties.mozillaOnline") - def abi = output.getFilter(OutputFile.ABI) + def abi = output.getFilter(FilterConfiguration.FilterType.ABI.name()) // If it is a Mozilla Online build, use a unified version code of armeabi-v7a def arch = (isMozillaOnline) ? "armeabi-v7a" : abi // We use the same version code generator, that we inherited from Fennec, across all channels - even on @@ -711,8 +711,8 @@ if (project.hasProperty("coverage")) { dependsOn "test${variant.name.capitalize()}UnitTest" reports { - xml.enabled = true - html.enabled = true + xml.enabled true + html.enabled true } def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', @@ -748,7 +748,7 @@ tasks.register('printVariants') { doLast { def variants = android.applicationVariants.collect { variant -> [ apks: variant.outputs.collect { output -> [ - abi: output.getFilter(com.android.build.VariantOutput.FilterType.ABI), + abi: output.getFilter(FilterConfiguration.FilterType.ABI.name()), fileName: output.outputFile.name ]}, build_type: variant.buildType.name, From d75dcaf52e3c71436c51315feffc16e200cf7e87 Mon Sep 17 00:00:00 2001 From: mcarare <48995920+mcarare@users.noreply.github.com> Date: Thu, 24 Aug 2023 15:48:47 +0300 Subject: [PATCH 088/209] Bug 1849833 - Replace deprecated main with mainClass. See https://docs.gradle.org/7.6/dsl/org.gradle.api.tasks.JavaExec.html#org.gradle.api.tasks.JavaExec:main. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c05d6a148..7d21a7211 100644 --- a/build.gradle +++ b/build.gradle @@ -235,7 +235,7 @@ tasks.register('ktlint', JavaExec) { group = "verification" description = "Check Kotlin code style." classpath = configurations.ktlint - main = "com.pinterest.ktlint.Main" + mainClass.set("com.pinterest.ktlint.Main") args "app/src/**/*.kt", "!**/build/**/*.kt", "--baseline=ktlint-baseline.xml" } From 508ea3ad3cde2906aee0724fac38c61847376c0e Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Fri, 8 Sep 2023 15:05:40 +0200 Subject: [PATCH 089/209] Bug 1825116 - add license info to animated_splash_screen.xml --- app/src/beta/res/drawable/animated_splash_screen.xml | 3 +++ app/src/debug/res/drawable/animated_splash_screen.xml | 3 +++ app/src/main/res/drawable/animated_splash_screen.xml | 3 +++ app/src/nightly/res/drawable/animated_splash_screen.xml | 3 +++ app/src/release/res/drawable/animated_splash_screen.xml | 3 +++ 5 files changed, 15 insertions(+) diff --git a/app/src/beta/res/drawable/animated_splash_screen.xml b/app/src/beta/res/drawable/animated_splash_screen.xml index 5d0d00b8e..02b55b57a 100644 --- a/app/src/beta/res/drawable/animated_splash_screen.xml +++ b/app/src/beta/res/drawable/animated_splash_screen.xml @@ -1,3 +1,6 @@ + diff --git a/app/src/debug/res/drawable/animated_splash_screen.xml b/app/src/debug/res/drawable/animated_splash_screen.xml index 4e96325db..e2b7ead51 100644 --- a/app/src/debug/res/drawable/animated_splash_screen.xml +++ b/app/src/debug/res/drawable/animated_splash_screen.xml @@ -1,3 +1,6 @@ + diff --git a/app/src/main/res/drawable/animated_splash_screen.xml b/app/src/main/res/drawable/animated_splash_screen.xml index 4e96325db..e2b7ead51 100644 --- a/app/src/main/res/drawable/animated_splash_screen.xml +++ b/app/src/main/res/drawable/animated_splash_screen.xml @@ -1,3 +1,6 @@ + diff --git a/app/src/nightly/res/drawable/animated_splash_screen.xml b/app/src/nightly/res/drawable/animated_splash_screen.xml index 255d27492..27301cb41 100644 --- a/app/src/nightly/res/drawable/animated_splash_screen.xml +++ b/app/src/nightly/res/drawable/animated_splash_screen.xml @@ -1,3 +1,6 @@ + diff --git a/app/src/release/res/drawable/animated_splash_screen.xml b/app/src/release/res/drawable/animated_splash_screen.xml index 184895b38..49ff2d4ab 100644 --- a/app/src/release/res/drawable/animated_splash_screen.xml +++ b/app/src/release/res/drawable/animated_splash_screen.xml @@ -1,3 +1,6 @@ + From 920e1e2b1c72a59f8526304c5fbe81361848c1ef Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Fri, 8 Sep 2023 15:30:32 +0200 Subject: [PATCH 090/209] Bug 1825116 - delete trailing whitespace from docs --- docs/architecture-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture-overview.md b/docs/architecture-overview.md index f0ef8f184..5a53f434a 100644 --- a/docs/architecture-overview.md +++ b/docs/architecture-overview.md @@ -16,7 +16,7 @@ A store of State. See [mozilla.components.lib.state.Store](https://github.com/mozilla-mobile/firefox-android/blob/main/android-components/components/lib/state/src/main/java/mozilla/components/lib/state/Store.kt) -Holds app State. +Holds app State. Receives [Actions](#action), which are used to compute new State using [Reducers](#reducer) and can have [Middlewares](#middleware) attached which respond to and manipulate actions. From 2d325b7bd3820d842169b150d8e41033a27a3cd0 Mon Sep 17 00:00:00 2001 From: Harrison Oglesby Date: Fri, 8 Sep 2023 10:34:57 -0700 Subject: [PATCH 091/209] Revert "Bug 1845235 - Add "Private" label to Felt Privacy mode home screen" This reverts commit a4d9aa5b310b4f623979882fc78495defa595a98. --- .../drawable/ic_wordmark_text_felt_privacy.png | Bin 4852 -> 0 bytes app/src/main/res/layout/fragment_home.xml | 4 ++-- app/src/main/res/values/attrs.xml | 2 -- app/src/main/res/values/dimens.xml | 2 -- app/src/main/res/values/styles.xml | 7 ------- 5 files changed, 2 insertions(+), 13 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_wordmark_text_felt_privacy.png diff --git a/app/src/main/res/drawable/ic_wordmark_text_felt_privacy.png b/app/src/main/res/drawable/ic_wordmark_text_felt_privacy.png deleted file mode 100644 index 42781f8303162089a59485bae1f041622841b1c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4852 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 diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index fa5394fd2..f65a56c8e 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -69,8 +69,6 @@ - - diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index daabb8552..c4f764c9c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -82,8 +82,6 @@ 8dp 18dp 10dp - 32dp - 4dp diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index fc5f49a1a..629e9227a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -126,8 +126,6 @@ @drawable/ic_logo_wordmark_normal @drawable/ic_wordmark_text_normal @drawable/ic_wordmark_logo - @dimen/wordmark_text_height - @dimen/wordmark_text_margin_top @color/fx_mobile_layer_color_1 @drawable/home_bottom_bar_background @drawable/home_bottom_bar_background_top @@ -319,8 +317,6 @@ @drawable/ic_logo_wordmark_private @drawable/ic_wordmark_text_private @drawable/ic_wordmark_logo - @dimen/wordmark_text_height - @dimen/wordmark_text_margin_top @drawable/private_home_background_gradient @drawable/private_home_bottom_bar_background_gradient @drawable/private_home_bottom_bar_background_gradient_top @@ -340,9 +336,6 @@ From 5286a9140694e0a720235e39e6a62b78fe446b10 Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 12 Sep 2023 00:03:12 +0000 Subject: [PATCH 092/209] Import translations from android-l10n --- app/src/main/res/values-be/strings.xml | 16 ++++++++++++++-- app/src/main/res/values-gn/strings.xml | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index ac70d5d7f..b3e75e627 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -166,7 +166,7 @@ Дадаткі - Інфармацыя аб уліковым запісе + Ваш уліковы запіс Няма дадаткаў @@ -178,7 +178,7 @@ Бібліятэка - Версія для камп’ютара + Версія для ПК Дадаць на хатні экран @@ -638,6 +638,16 @@ Дадатак ужо ўсталяваны + + + Дадаткі часова адключаны + + Адзін ці некалькі дадаткаў перасталі працаваць, што зрабіла вашу сістэму нестабільнай. %1$s беспаспяхова спрабаваў перазапусціць дадатак(і).\n\nДадаткі не будуць перазапушчаны ў часе бягучага сеансу.\n\nВыдаленне або адключэнне дадаткаў можа вырашыць гэтую праблему. + + Паспрабаваць перазапусціць дадаткі + + Працягнуць з адключанымі дадаткамі + Кіраванне ўліковым запісам @@ -1948,6 +1958,8 @@ URL-адрас API пошукавых прапаноў Замяніце запыт на «%s». Прыклад:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Замяніце запыт на «%s». Прыклад:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Захаваць diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 0cca19095..2a69974d3 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -781,7 +781,7 @@ Techaukaha Poravorã - Techaukaha rembipuru renda + Techaukaha rembiporu renda Ambue techaukahakuéra From 4d583ff930213056ec7eb6b01978de7eebf1c3a5 Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Mon, 11 Sep 2023 23:17:10 +0300 Subject: [PATCH 093/209] Bug 1843536 - Fix tab reordering animation issues --- .../fenix/tabstray/TabsTrayTabLayouts.kt | 30 ++++++++++++------- .../browser/compose/ReorderableGrid.kt | 14 +++++++-- .../browser/compose/ReorderableList.kt | 17 ++++++++--- 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt index 76211adf3..3b72af512 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/TabsTrayTabLayouts.kt @@ -14,9 +14,9 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.GridItemSpan import androidx.compose.foundation.lazy.grid.LazyVerticalGrid -import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.lazy.grid.itemsIndexed import androidx.compose.foundation.lazy.grid.rememberLazyGridState -import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -131,7 +131,7 @@ fun TabLayout( } @OptIn(ExperimentalFoundationApi::class) -@Suppress("LongParameterList") +@Suppress("LongParameterList", "LongMethod") @Composable private fun TabGrid( tabs: List, @@ -197,11 +197,15 @@ private fun TabGrid( } } - items( + itemsIndexed( items = tabs, - key = { tab -> tab.id }, - ) { tab -> - DragItemContainer(state = reorderState, key = tab.id) { + key = { _, tab -> tab.id }, + ) { index, tab -> + DragItemContainer( + state = reorderState, + position = index + if (header != null) 1 else 0, + key = tab.id, + ) { TabGridItem( tab = tab, thumbnailSize = tabThumbnailSize, @@ -288,11 +292,15 @@ private fun TabList( } } - items( + itemsIndexed( items = tabs, - key = { tab -> tab.id }, - ) { tab -> - DragItemContainer(state = reorderState, key = tab.id) { + key = { _, tab -> tab.id }, + ) { index, tab -> + DragItemContainer( + state = reorderState, + position = index + if (header != null) 1 else 0, + key = tab.id, + ) { TabListItem( tab = tab, thumbnailSize = tabThumbnailSize, diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt index 5c5ce2cf8..45a809b1c 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableGrid.kt @@ -102,11 +102,17 @@ class GridReorderState internal constructor( private var draggingItemCumulatedOffset by mutableStateOf(Offset.Zero) private var draggingItemInitialOffset by mutableStateOf(Offset.Zero) internal var moved by mutableStateOf(false) - internal val draggingItemOffset: Offset + private val draggingItemOffset: Offset get() = draggingItemLayoutInfo?.let { item -> draggingItemInitialOffset + draggingItemCumulatedOffset - item.offset.toOffset() } ?: Offset.Zero + internal fun computeItemOffset(index: Int): Offset { + val itemAtIndex = gridState.layoutInfo.visibleItemsInfo.firstOrNull { info -> info.index == index } + ?: return Offset.Zero + return draggingItemInitialOffset + draggingItemCumulatedOffset - itemAtIndex.offset.toOffset() + } + private val draggingItemLayoutInfo: LazyGridItemInfo? get() = gridState.layoutInfo.visibleItemsInfo.firstOrNull { it.key == draggingItemKey } @@ -202,6 +208,7 @@ class GridReorderState internal constructor( * * @param state State of the lazy grid. * @param key Key of the item to be displayed. + * @param position Position in the grid of the item to be displayed. * @param content Content of the item to be displayed. */ @ExperimentalFoundationApi @@ -209,6 +216,7 @@ class GridReorderState internal constructor( fun LazyGridItemScope.DragItemContainer( state: GridReorderState, key: Any, + position: Int, content: @Composable () -> Unit, ) { val modifier = when (key) { @@ -216,8 +224,8 @@ fun LazyGridItemScope.DragItemContainer( Modifier .zIndex(1f) .graphicsLayer { - translationX = state.draggingItemOffset.x - translationY = state.draggingItemOffset.y + translationX = state.computeItemOffset(position).x + translationY = state.computeItemOffset(position).y } } diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt index da2c0b857..dd48559e4 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt @@ -17,6 +17,7 @@ import androidx.compose.foundation.lazy.LazyListItemInfo import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableFloatStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope @@ -93,14 +94,20 @@ class ListReorderState internal constructor( var draggingItemKey by mutableStateOf(null) private set - private var draggingItemCumulatedOffset by mutableStateOf(0f) - private var draggingItemInitialOffset by mutableStateOf(0f) + private var draggingItemCumulatedOffset by mutableFloatStateOf(0f) + private var draggingItemInitialOffset by mutableFloatStateOf(0f) internal var moved by mutableStateOf(false) - internal val draggingItemOffset: Float + private val draggingItemOffset: Float get() = draggingItemLayoutInfo?.let { item -> draggingItemInitialOffset + draggingItemCumulatedOffset - item.offset } ?: 0f + internal fun computeItemOffset(index: Int): Float { + val itemAtIndex = listState.layoutInfo.visibleItemsInfo.firstOrNull { info -> info.index == index } + ?: return draggingItemOffset + return draggingItemInitialOffset + draggingItemCumulatedOffset - itemAtIndex.offset + } + private val draggingItemLayoutInfo: LazyListItemInfo? get() = listState.layoutInfo.visibleItemsInfo.firstOrNull { it.key == draggingItemKey } @@ -192,6 +199,7 @@ class ListReorderState internal constructor( * * @param state List reordering state. * @param key Key of the item to be displayed. + * @param position Position in the list of the item to be displayed. * @param content Content of the item to be displayed. */ @ExperimentalFoundationApi @@ -199,6 +207,7 @@ class ListReorderState internal constructor( fun LazyItemScope.DragItemContainer( state: ListReorderState, key: Any, + position: Int, content: @Composable () -> Unit, ) { val modifier = when (key) { @@ -206,7 +215,7 @@ fun LazyItemScope.DragItemContainer( Modifier .zIndex(1f) .graphicsLayer { - translationY = state.draggingItemOffset + translationY = state.computeItemOffset(position) } } From f9611626ac7ba8188a9eac84499f09702bd36989 Mon Sep 17 00:00:00 2001 From: "oana.horvath" Date: Mon, 11 Sep 2023 15:57:32 +0300 Subject: [PATCH 094/209] Bug 1852533 - Main menu tests TestRail matching --- .../mozilla/fenix/ui/AddToHomeScreenTest.kt | 60 -- .../org/mozilla/fenix/ui/CollectionTest.kt | 14 + .../org/mozilla/fenix/ui/ComposeSmokeTest.kt | 588 +++++++++--------- .../java/org/mozilla/fenix/ui/MainMenuTest.kt | 338 +++++----- .../org/mozilla/fenix/ui/PDFViewerTest.kt | 61 +- .../java/org/mozilla/fenix/ui/SmokeTest.kt | 580 +++++++++-------- .../mozilla/fenix/ui/ThreeDotMenuMainTest.kt | 203 ------ .../SettingsSubMenuAddonsManagerRobot.kt | 17 + .../androidTest/flank-arm-beta.yml | 1 - .../flank-arm-legacy-api-tests.yml | 1 - .../androidTest/flank-arm-start-test.yml | 1 - 11 files changed, 823 insertions(+), 1041 deletions(-) delete mode 100644 app/src/androidTest/java/org/mozilla/fenix/ui/ThreeDotMenuMainTest.kt diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt index 4f6601071..92b79bb65 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt @@ -4,7 +4,6 @@ package org.mozilla.fenix.ui -import androidx.core.net.toUri import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before @@ -13,22 +12,12 @@ import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityIntentTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText -import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper -import org.mozilla.fenix.ui.robots.browserScreen -import org.mozilla.fenix.ui.robots.clickPageObject import org.mozilla.fenix.ui.robots.homeScreen -import org.mozilla.fenix.ui.robots.navigationToolbar import org.mozilla.fenix.ui.robots.searchScreen class AddToHomeScreenTest { private lateinit var mockWebServer: MockWebServer - private val downloadTestPage = - "https://storage.googleapis.com/mobile_test_assets/test_app/downloads.html" - private val pdfFileName = "washington.pdf" - private val pdfFileURL = "storage.googleapis.com/mobile_test_assets/public/washington.pdf" - private val pdfFileContent = "Washington Crossing the Delaware" @get:Rule val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() @@ -46,36 +35,6 @@ class AddToHomeScreenTest { mockWebServer.shutdown() } - // Verifies the Add to home screen option in a tab's 3 dot menu - @SmokeTest - @Test - fun mainMenuAddToHomeScreenTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val shortcutTitle = TestHelper.generateRandomString(5) - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(website.url) { - }.openThreeDotMenu { - expandMenu() - }.openAddToHomeScreen { - clickCancelShortcutButton() - } - - browserScreen { - }.openThreeDotMenu { - expandMenu() - }.openAddToHomeScreen { - verifyShortcutTextFieldTitle("Test_Page_1") - addShortcutName(shortcutTitle) - clickAddShortcutButton() - clickAddAutomaticallyButton() - }.openHomeScreenShortcut(shortcutTitle) { - verifyUrl(website.url.toString()) - verifyTabCounter("1") - } - } - @SmokeTest @Test fun addPrivateBrowsingShortcutTest() { @@ -92,23 +51,4 @@ class AddToHomeScreenTest { verifyCommonMythsLink() } } - - @SmokeTest - @Test - fun addPDFToHomeScreenTest() { - navigationToolbar { - }.enterURLAndEnterToBrowser(downloadTestPage.toUri()) { - clickPageObject(itemContainingText(pdfFileName)) - verifyUrl(pdfFileURL) - verifyPageContent(pdfFileContent) - }.openThreeDotMenu { - expandMenu() - }.openAddToHomeScreen { - verifyShortcutTextFieldTitle(pdfFileName) - clickAddShortcutButton() - clickAddAutomaticallyButton() - }.openHomeScreenShortcut(pdfFileName) { - verifyUrl(pdfFileURL) - } - } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt index ad0572471..fd34537b0 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CollectionTest.kt @@ -15,6 +15,7 @@ import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.HomeActivityIntentTestRule +import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton import org.mozilla.fenix.ui.robots.browserScreen @@ -94,6 +95,19 @@ class CollectionTest { } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2283299 + @Test + fun createFirstCollectionFromMainMenuTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + }.openSaveToCollection { + verifyCollectionNameTextField() + } + } + @SmokeTest @Test fun verifyExpandedCollectionItemsTest() { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt index 32c64c095..14d66dd2c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt @@ -1,302 +1,286 @@ -/* 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/. */ - -@file:Suppress("DEPRECATION") - -package org.mozilla.fenix.ui - -import android.view.View -import androidx.compose.ui.test.junit4.AndroidComposeTestRule -import androidx.core.net.toUri -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.rule.ActivityTestRule -import androidx.test.uiautomator.UiDevice -import mozilla.components.browser.state.store.BrowserStore -import mozilla.components.concept.engine.mediasession.MediaSession -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before -import org.junit.Ignore -import org.junit.Rule -import org.junit.Test -import org.mozilla.fenix.IntentReceiverActivity -import org.mozilla.fenix.R -import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityIntentTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.RetryTestRule -import org.mozilla.fenix.helpers.TestAssetHelper -import org.mozilla.fenix.helpers.TestHelper.assertYoutubeAppOpens -import org.mozilla.fenix.helpers.TestHelper.registerAndCleanupIdlingResources -import org.mozilla.fenix.helpers.ViewVisibilityIdlingResource -import org.mozilla.fenix.ui.robots.browserScreen -import org.mozilla.fenix.ui.robots.clickPageObject -import org.mozilla.fenix.ui.robots.homeScreen -import org.mozilla.fenix.ui.robots.navigationToolbar - -/** - * Test Suite that contains a part of the Smoke and Sanity tests defined in TestRail: - * https://testrail.stage.mozaws.net/index.php?/suites/view/3192 - * Other smoke tests have been marked with the @SmokeTest annotation throughout the ui package in order to limit this class expansion. - * These tests will verify different functionalities of the app as a way to quickly detect regressions in main areas - */ -@Suppress("ForbiddenComment") -@SmokeTest -class ComposeSmokeTest { - private lateinit var mDevice: UiDevice - private lateinit var mockWebServer: MockWebServer - private val customMenuItem = "TestMenuItem" - private lateinit var browserStore: BrowserStore - - @get:Rule(order = 0) - val activityTestRule = AndroidComposeTestRule( - HomeActivityIntentTestRule.withDefaultSettingsOverrides( - tabsTrayRewriteEnabled = true, - ), - ) { it.activity } - - @get: Rule(order = 1) - val intentReceiverActivityTestRule = ActivityTestRule( - IntentReceiverActivity::class.java, - true, - false, - ) - - @Rule(order = 2) - @JvmField - val retryTestRule = RetryTestRule(3) - - @Before - fun setUp() { - // Initializing this as part of class construction, below the rule would throw a NPE - // So we are initializing this here instead of in all related tests. - browserStore = activityTestRule.activity.components.core.store - - mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - - // Device or AVD requires a Google Services Android OS installation with Play Store installed - // Verifies the Open in app button when an app is installed - @Test - fun mainMenuOpenInAppTest() { - val youtubeURL = "vnd.youtube://".toUri() - - navigationToolbar { - }.enterURLAndEnterToBrowser(youtubeURL) { - verifyNotificationDotOnMainMenu() - }.openThreeDotMenu { - }.clickOpenInApp { - assertYoutubeAppOpens() - } - } - - // Verifies that deleting a Bookmarks folder also removes the item from inside it. - @Test - fun deleteNonEmptyBookmarkFolderTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - browserScreen { - createBookmark(website.url) - }.openThreeDotMenu { - }.openBookmarks { - verifyBookmarkTitle("Test_Page_1") - createFolder("My Folder") - verifyFolderTitle("My Folder") - }.openThreeDotMenu("Test_Page_1") { - }.clickEdit { - clickParentFolderSelector() - selectFolder("My Folder") - navigateUp() - saveEditBookmark() - createFolder("My Folder 2") - verifyFolderTitle("My Folder 2") - }.openThreeDotMenu("My Folder 2") { - }.clickEdit { - clickParentFolderSelector() - selectFolder("My Folder") - navigateUp() - saveEditBookmark() - }.openThreeDotMenu("My Folder") { - }.clickDelete { - cancelFolderDeletion() - verifyFolderTitle("My Folder") - }.openThreeDotMenu("My Folder") { - }.clickDelete { - confirmDeletion() - verifyDeleteSnackBarText() - verifyBookmarkIsDeleted("My Folder") - verifyBookmarkIsDeleted("My Folder 2") - verifyBookmarkIsDeleted("Test_Page_1") - navigateUp() - } - - browserScreen { - }.openThreeDotMenu { - verifyAddBookmarkButton() - } - } - - @Test - fun shareTabsFromTabsTrayTest() { - val firstWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val secondWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 2) - val firstWebsiteTitle = firstWebsite.title - val secondWebsiteTitle = secondWebsite.title - val sharingApp = "Gmail" - val sharedUrlsString = "${firstWebsite.url}\n\n${secondWebsite.url}" - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(firstWebsite.url) { - verifyPageContent(firstWebsite.content) - }.openComposeTabDrawer(activityTestRule) { - }.openNewTab { - }.submitQuery(secondWebsite.url.toString()) { - verifyPageContent(secondWebsite.content) - }.openComposeTabDrawer(activityTestRule) { - verifyExistingOpenTabs("Test_Page_1") - verifyExistingOpenTabs("Test_Page_2") - }.openThreeDotMenu { - verifyShareAllTabsButton() - }.clickShareAllTabsButton { - verifyShareTabsOverlay(firstWebsiteTitle, secondWebsiteTitle) - verifySharingWithSelectedApp( - sharingApp, - sharedUrlsString, - "$firstWebsiteTitle, $secondWebsiteTitle", - ) - } - } - - @Test - fun privateTabsTrayWithOpenedTabTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - }.togglePrivateBrowsingMode() - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(website.url) { - }.openComposeTabDrawer(activityTestRule) { - verifyNormalBrowsingButtonIsSelected(false) - verifyPrivateBrowsingButtonIsSelected(true) - verifySyncedTabsButtonIsSelected(false) - verifyThreeDotButton() - verifyNormalTabCounter() - verifyPrivateTabsList() - verifyExistingOpenTabs(website.title) - verifyTabCloseButton() - verifyTabThumbnail() - verifyFab() - } - } - - // Test running on beta/release builds in CI: - // caution when making changes to it, so they don't block the builds - @Test - fun noHistoryInPrivateBrowsingTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - }.togglePrivateBrowsingMode() - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(website.url) { - mDevice.waitForIdle() - }.openThreeDotMenu { - }.openHistory { - verifyEmptyHistoryView() - } - } - - @Test - fun mainMenuInstallPWATest() { - val pwaPage = "https://mozilla-mobile.github.io/testapp/" - - navigationToolbar { - }.enterURLAndEnterToBrowser(pwaPage.toUri()) { - verifyNotificationDotOnMainMenu() - }.openThreeDotMenu { - }.clickInstall { - clickAddAutomaticallyButton() - }.openHomeScreenShortcut("TEST_APP") { - mDevice.waitForIdle() - verifyNavURLBarHidden() - } - } - - // Verifies that reader mode is detected and the custom appearance controls are displayed - @Test - fun verifyReaderViewAppearanceUI() { - val readerViewPage = - TestAssetHelper.getLoremIpsumAsset(mockWebServer) - val estimatedReadingTime = "1 - 2 minutes" - - navigationToolbar { - }.enterURLAndEnterToBrowser(readerViewPage.url) { - mDevice.waitForIdle() - } - - registerAndCleanupIdlingResources( - ViewVisibilityIdlingResource( - activityTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions), - View.VISIBLE, - ), - ) {} - - navigationToolbar { - verifyReaderViewDetected(true) - toggleReaderView() - } - - browserScreen { - waitForPageToLoad() - verifyPageContent(estimatedReadingTime) - }.openThreeDotMenu { - verifyReaderViewAppearance(true) - }.openReaderViewAppearance { - verifyAppearanceFontGroup(true) - verifyAppearanceFontSansSerif(true) - verifyAppearanceFontSerif(true) - verifyAppearanceFontIncrease(true) - verifyAppearanceFontDecrease(true) - verifyAppearanceColorGroup(true) - verifyAppearanceColorDark(true) - verifyAppearanceColorLight(true) - verifyAppearanceColorSepia(true) - } - } - - @Ignore("Failing, see https://bugzilla.mozilla.org/show_bug.cgi?id=1846941") - @Test - fun tabMediaControlButtonTest() { - val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) - - navigationToolbar { - }.enterURLAndEnterToBrowser(audioTestPage.url) { - mDevice.waitForIdle() - clickPageObject(itemWithText("Play")) - assertPlaybackState(browserStore, MediaSession.PlaybackState.PLAYING) - }.openComposeTabDrawer(activityTestRule) { - verifyTabMediaControlButtonState("Pause") - clickTabMediaControlButton("Pause") - verifyTabMediaControlButtonState("Play") - }.openTab(audioTestPage.title) { - assertPlaybackState(browserStore, MediaSession.PlaybackState.PAUSED) - } - } -} +/* 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/. */ + +@file:Suppress("DEPRECATION") + +package org.mozilla.fenix.ui + +import android.view.View +import androidx.compose.ui.test.junit4.AndroidComposeTestRule +import androidx.core.net.toUri +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.rule.ActivityTestRule +import androidx.test.uiautomator.UiDevice +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.mediasession.MediaSession +import okhttp3.mockwebserver.MockWebServer +import org.junit.After +import org.junit.Before +import org.junit.Ignore +import org.junit.Rule +import org.junit.Test +import org.mozilla.fenix.IntentReceiverActivity +import org.mozilla.fenix.R +import org.mozilla.fenix.customannotations.SmokeTest +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.helpers.AndroidAssetDispatcher +import org.mozilla.fenix.helpers.HomeActivityIntentTestRule +import org.mozilla.fenix.helpers.MatcherHelper.itemWithText +import org.mozilla.fenix.helpers.RetryTestRule +import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.registerAndCleanupIdlingResources +import org.mozilla.fenix.helpers.ViewVisibilityIdlingResource +import org.mozilla.fenix.ui.robots.browserScreen +import org.mozilla.fenix.ui.robots.clickPageObject +import org.mozilla.fenix.ui.robots.homeScreen +import org.mozilla.fenix.ui.robots.navigationToolbar + +/** + * Test Suite that contains a part of the Smoke and Sanity tests defined in TestRail: + * https://testrail.stage.mozaws.net/index.php?/suites/view/3192 + * Other smoke tests have been marked with the @SmokeTest annotation throughout the ui package in order to limit this class expansion. + * These tests will verify different functionalities of the app as a way to quickly detect regressions in main areas + */ +@Suppress("ForbiddenComment") +@SmokeTest +class ComposeSmokeTest { + private lateinit var mDevice: UiDevice + private lateinit var mockWebServer: MockWebServer + private val customMenuItem = "TestMenuItem" + private lateinit var browserStore: BrowserStore + + @get:Rule(order = 0) + val activityTestRule = AndroidComposeTestRule( + HomeActivityIntentTestRule.withDefaultSettingsOverrides( + tabsTrayRewriteEnabled = true, + ), + ) { it.activity } + + @get: Rule(order = 1) + val intentReceiverActivityTestRule = ActivityTestRule( + IntentReceiverActivity::class.java, + true, + false, + ) + + @Rule(order = 2) + @JvmField + val retryTestRule = RetryTestRule(3) + + @Before + fun setUp() { + // Initializing this as part of class construction, below the rule would throw a NPE + // So we are initializing this here instead of in all related tests. + browserStore = activityTestRule.activity.components.core.store + + mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + mockWebServer = MockWebServer().apply { + dispatcher = AndroidAssetDispatcher() + start() + } + } + + @After + fun tearDown() { + mockWebServer.shutdown() + } + + // Verifies that deleting a Bookmarks folder also removes the item from inside it. + @Test + fun deleteNonEmptyBookmarkFolderTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + browserScreen { + createBookmark(website.url) + }.openThreeDotMenu { + }.openBookmarks { + verifyBookmarkTitle("Test_Page_1") + createFolder("My Folder") + verifyFolderTitle("My Folder") + }.openThreeDotMenu("Test_Page_1") { + }.clickEdit { + clickParentFolderSelector() + selectFolder("My Folder") + navigateUp() + saveEditBookmark() + createFolder("My Folder 2") + verifyFolderTitle("My Folder 2") + }.openThreeDotMenu("My Folder 2") { + }.clickEdit { + clickParentFolderSelector() + selectFolder("My Folder") + navigateUp() + saveEditBookmark() + }.openThreeDotMenu("My Folder") { + }.clickDelete { + cancelFolderDeletion() + verifyFolderTitle("My Folder") + }.openThreeDotMenu("My Folder") { + }.clickDelete { + confirmDeletion() + verifyDeleteSnackBarText() + verifyBookmarkIsDeleted("My Folder") + verifyBookmarkIsDeleted("My Folder 2") + verifyBookmarkIsDeleted("Test_Page_1") + navigateUp() + } + + browserScreen { + }.openThreeDotMenu { + verifyAddBookmarkButton() + } + } + + @Test + fun shareTabsFromTabsTrayTest() { + val firstWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val secondWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 2) + val firstWebsiteTitle = firstWebsite.title + val secondWebsiteTitle = secondWebsite.title + val sharingApp = "Gmail" + val sharedUrlsString = "${firstWebsite.url}\n\n${secondWebsite.url}" + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(firstWebsite.url) { + verifyPageContent(firstWebsite.content) + }.openComposeTabDrawer(activityTestRule) { + }.openNewTab { + }.submitQuery(secondWebsite.url.toString()) { + verifyPageContent(secondWebsite.content) + }.openComposeTabDrawer(activityTestRule) { + verifyExistingOpenTabs("Test_Page_1") + verifyExistingOpenTabs("Test_Page_2") + }.openThreeDotMenu { + verifyShareAllTabsButton() + }.clickShareAllTabsButton { + verifyShareTabsOverlay(firstWebsiteTitle, secondWebsiteTitle) + verifySharingWithSelectedApp( + sharingApp, + sharedUrlsString, + "$firstWebsiteTitle, $secondWebsiteTitle", + ) + } + } + + @Test + fun privateTabsTrayWithOpenedTabTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + homeScreen { + }.togglePrivateBrowsingMode() + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(website.url) { + }.openComposeTabDrawer(activityTestRule) { + verifyNormalBrowsingButtonIsSelected(false) + verifyPrivateBrowsingButtonIsSelected(true) + verifySyncedTabsButtonIsSelected(false) + verifyThreeDotButton() + verifyNormalTabCounter() + verifyPrivateTabsList() + verifyExistingOpenTabs(website.title) + verifyTabCloseButton() + verifyTabThumbnail() + verifyFab() + } + } + + // Test running on beta/release builds in CI: + // caution when making changes to it, so they don't block the builds + @Test + fun noHistoryInPrivateBrowsingTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + homeScreen { + }.togglePrivateBrowsingMode() + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(website.url) { + mDevice.waitForIdle() + }.openThreeDotMenu { + }.openHistory { + verifyEmptyHistoryView() + } + } + + @Test + fun mainMenuInstallPWATest() { + val pwaPage = "https://mozilla-mobile.github.io/testapp/" + + navigationToolbar { + }.enterURLAndEnterToBrowser(pwaPage.toUri()) { + verifyNotificationDotOnMainMenu() + }.openThreeDotMenu { + }.clickInstall { + clickAddAutomaticallyButton() + }.openHomeScreenShortcut("TEST_APP") { + mDevice.waitForIdle() + verifyNavURLBarHidden() + } + } + + // Verifies that reader mode is detected and the custom appearance controls are displayed + @Test + fun verifyReaderViewAppearanceUI() { + val readerViewPage = + TestAssetHelper.getLoremIpsumAsset(mockWebServer) + val estimatedReadingTime = "1 - 2 minutes" + + navigationToolbar { + }.enterURLAndEnterToBrowser(readerViewPage.url) { + mDevice.waitForIdle() + } + + registerAndCleanupIdlingResources( + ViewVisibilityIdlingResource( + activityTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions), + View.VISIBLE, + ), + ) {} + + navigationToolbar { + verifyReaderViewDetected(true) + toggleReaderView() + } + + browserScreen { + waitForPageToLoad() + verifyPageContent(estimatedReadingTime) + }.openThreeDotMenu { + verifyReaderViewAppearance(true) + }.openReaderViewAppearance { + verifyAppearanceFontGroup(true) + verifyAppearanceFontSansSerif(true) + verifyAppearanceFontSerif(true) + verifyAppearanceFontIncrease(true) + verifyAppearanceFontDecrease(true) + verifyAppearanceColorGroup(true) + verifyAppearanceColorDark(true) + verifyAppearanceColorLight(true) + verifyAppearanceColorSepia(true) + } + } + + @Ignore("Failing, see https://bugzilla.mozilla.org/show_bug.cgi?id=1846941") + @Test + fun tabMediaControlButtonTest() { + val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) + + navigationToolbar { + }.enterURLAndEnterToBrowser(audioTestPage.url) { + mDevice.waitForIdle() + clickPageObject(itemWithText("Play")) + assertPlaybackState(browserStore, MediaSession.PlaybackState.PLAYING) + }.openComposeTabDrawer(activityTestRule) { + verifyTabMediaControlButtonState("Pause") + clickTabMediaControlButton("Pause") + verifyTabMediaControlButtonState("Play") + }.openTab(audioTestPage.title) { + assertPlaybackState(browserStore, MediaSession.PlaybackState.PAUSED) + } + } +} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt index cd27e4fe5..17c589e73 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/MainMenuTest.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.ui +import androidx.core.net.toUri import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import mozilla.components.concept.engine.utils.EngineReleaseChannel @@ -12,17 +13,20 @@ import org.junit.After import org.junit.Before import org.junit.Rule import org.junit.Test -import org.mozilla.fenix.R import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.ext.components import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.RecyclerViewIdlingResource +import org.mozilla.fenix.helpers.HomeActivityIntentTestRule +import org.mozilla.fenix.helpers.MatcherHelper import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper +import org.mozilla.fenix.helpers.TestHelper.assertYoutubeAppOpens import org.mozilla.fenix.helpers.TestHelper.runWithCondition +import org.mozilla.fenix.ui.robots.browserScreen +import org.mozilla.fenix.ui.robots.clickContextMenuItem import org.mozilla.fenix.ui.robots.clickPageObject +import org.mozilla.fenix.ui.robots.homeScreen +import org.mozilla.fenix.ui.robots.longClickPageObject import org.mozilla.fenix.ui.robots.navigationToolbar class MainMenuTest { @@ -30,7 +34,7 @@ class MainMenuTest { private lateinit var mockWebServer: MockWebServer @get:Rule - val activityTestRule = HomeActivityTestRule.withDefaultSettingsOverrides() + val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() @Before fun setUp() { @@ -46,9 +50,9 @@ class MainMenuTest { mockWebServer.shutdown() } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233849 @Test - fun verifyPageMainMenuItemsTest() { + fun verifyTabMainMenuItemsTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) navigationToolbar { @@ -59,109 +63,182 @@ class MainMenuTest { } } + // Verifies the list of items in the homescreen's 3 dot main menu + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233848 @SmokeTest @Test - fun openMainMenuNewTabItemTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { + fun homeMainMenuItemsTest() { + homeScreen { }.openThreeDotMenu { - }.clickNewTabButton { - verifySearchView() + verifyHomeThreeDotMainMenuItems(isRequestDesktopSiteEnabled = false) + }.openBookmarks { + verifyBookmarksMenuView() + }.goBack { + }.openThreeDotMenu { + }.openHistory { + verifyHistoryMenuView() + }.goBack { + }.openThreeDotMenu { + }.openDownloadsManager { + verifyEmptyDownloadsList() + }.goBack { + }.openThreeDotMenu { + }.openAddonsManagerMenu { + verifyAddonsListIsDisplayed(true) + }.goBack { + }.openThreeDotMenu { + }.openSyncSignIn { + verifyTurnOnSyncMenu() + }.goBack {} + homeScreen { + }.openThreeDotMenu { + }.openWhatsNew { + verifyWhatsNewURL() + }.goToHomescreen { + }.openThreeDotMenu { + }.openHelp { + verifyHelpUrl() + }.goToHomescreen { + }.openThreeDotMenu { + }.openCustomizeHome { + verifyHomePageView() + }.goBackToHomeScreen { + }.openThreeDotMenu { + }.openSettings { + verifySettingsView() } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2284134 @Test - fun openMainMenuBookmarksItemTest() { + fun openNewTabTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { }.openThreeDotMenu { - }.openBookmarks { - verifyBookmarksMenuView() + }.clickNewTabButton { + verifySearchView() + }.submitQuery("test") { + verifyTabCounter("2") } } + // Device or AVD requires a Google Services Android OS installation with Play Store installed + // Verifies the Open in app button when an app is installed + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/387756 @SmokeTest @Test - fun openMainMenuHistoryItemTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + fun openInAppFunctionalityTest() { + val youtubeURL = "vnd.youtube://".toUri() navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.enterURLAndEnterToBrowser(youtubeURL) { + verifyNotificationDotOnMainMenu() }.openThreeDotMenu { - }.openHistory { - verifyHistoryListExists() + }.clickOpenInApp { + assertYoutubeAppOpens() } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2284323 @Test - fun openMainMenuAddonsTest() { + fun openSyncAndSaveDataTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { + mDevice.waitForIdle() }.openThreeDotMenu { - }.openAddonsManagerMenu { - TestHelper.registerAndCleanupIdlingResources( - RecyclerViewIdlingResource( - activityTestRule.activity.findViewById(R.id.add_ons_list), - 1, - ), - ) { - verifyAddonsItems() - } + }.openSyncSignIn { + verifyTurnOnSyncMenu() } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/243840 @Test - fun openMainMenuSyncItemTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + fun findInPageTest() { + val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 3) navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { mDevice.waitForIdle() }.openThreeDotMenu { - }.openSyncSignIn { - verifyTurnOnSyncMenu() + verifyThreeDotMenuExists() + verifyFindInPageButton() + }.openFindInPage { + verifyFindInPageNextButton() + verifyFindInPagePrevButton() + verifyFindInPageCloseButton() + enterFindInPageQuery("a") + verifyFindNextInPageResult("1/3") + clickFindInPageNextButton() + verifyFindNextInPageResult("2/3") + clickFindInPageNextButton() + verifyFindNextInPageResult("3/3") + clickFindInPagePrevButton() + verifyFindPrevInPageResult("2/3") + clickFindInPagePrevButton() + verifyFindPrevInPageResult("1/3") + }.closeFindInPageWithCloseButton { + verifyFindInPageBar(false) + }.openThreeDotMenu { + }.openFindInPage { + enterFindInPageQuery("3") + verifyFindNextInPageResult("1/1") + }.closeFindInPageWithBackButton { + verifyFindInPageBar(false) } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2283303 @Test - fun openMainMenuFindInPageTest() { + fun switchDesktopSiteModeOnOffTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) navigationToolbar { }.enterURLAndEnterToBrowser(defaultWebPage.url) { }.openThreeDotMenu { - }.openFindInPage { - verifyFindInPageSearchBarItems() + }.switchDesktopSiteMode { + }.openThreeDotMenu { + verifyDesktopSiteModeEnabled(true) + }.switchDesktopSiteMode { + }.openThreeDotMenu { + verifyDesktopSiteModeEnabled(false) } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1314137 @Test - fun mainMenuDesktopSiteTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + fun setDesktopSiteBeforePageLoadTest() { + val webPage = TestAssetHelper.getGenericAsset(mockWebServer, 4) - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { + homeScreen { }.openThreeDotMenu { + verifyDesktopSiteModeEnabled(false) }.switchDesktopSiteMode { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(webPage.url) { + }.openThreeDotMenu { + verifyDesktopSiteModeEnabled(true) + }.closeBrowserMenuToBrowser { + clickPageObject(MatcherHelper.itemContainingText("Link 1")) }.openThreeDotMenu { verifyDesktopSiteModeEnabled(true) + }.closeBrowserMenuToBrowser { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(webPage.url) { + longClickPageObject(MatcherHelper.itemWithText("Link 2")) + clickContextMenuItem("Open link in new tab") + TestHelper.clickSnackbarButton("SWITCH") + }.openThreeDotMenu { + verifyDesktopSiteModeEnabled(false) } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2283302 @Test - fun mainMenuReportSiteIssueTest() { + fun reportSiteIssueTest() { runWithCondition( // This test will not run on RC builds because the "Report site issue button" is not available. activityTestRule.activity.components.core.engine.version.releaseChannel !== EngineReleaseChannel.RELEASE, @@ -177,34 +254,38 @@ class MainMenuTest { } } + // Verifies the Add to home screen option in a tab's 3 dot menu + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/410724 @SmokeTest @Test - fun openMainMenuAddToCollectionTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) + fun addPageShortcutToHomeScreenTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val shortcutTitle = TestHelper.generateRandomString(5) - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(website.url) { }.openThreeDotMenu { - }.openSaveToCollection { - verifyCollectionNameTextField() + expandMenu() + }.openAddToHomeScreen { + clickCancelShortcutButton() } - } - - // Test running on beta/release builds in CI: - // caution when making changes to it, so they don't block the builds - @SmokeTest - @Test - fun openMainMenuSettingsItemTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { + browserScreen { }.openThreeDotMenu { - }.openSettings { - verifySettingsView() + expandMenu() + }.openAddToHomeScreen { + verifyShortcutTextFieldTitle("Test_Page_1") + addShortcutName(shortcutTitle) + clickAddShortcutButton() + clickAddAutomaticallyButton() + }.openHomeScreenShortcut(shortcutTitle) { + verifyUrl(website.url.toString()) + verifyTabCounter("1") } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/329893 @SmokeTest @Test fun mainMenuShareButtonTest() { @@ -218,56 +299,9 @@ class MainMenuTest { } } - @SmokeTest + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/233604 @Test - fun mainMenuRefreshButtonTest() { - val refreshWebPage = TestAssetHelper.getRefreshAsset(mockWebServer) - - navigationToolbar { - }.enterURLAndEnterToBrowser(refreshWebPage.url) { - mDevice.waitForIdle() - }.openThreeDotMenu { - verifyThreeDotMenuExists() - }.refreshPage { - verifyPageContent("REFRESHED") - } - } - - @SmokeTest - @Test - fun mainMenuForceRefreshTest() { - val refreshWebPage = TestAssetHelper.getRefreshAsset(mockWebServer) - - navigationToolbar { - }.enterURLAndEnterToBrowser(refreshWebPage.url) { - mDevice.waitForIdle() - }.openThreeDotMenu { - verifyThreeDotMenuExists() - }.forceRefreshPage { - verifyPageContent("REFRESHED") - } - } - - @Test - fun goBackTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) - - navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { - mDevice.waitForIdle() - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(nextWebPage.url) { - verifyUrl(nextWebPage.url.toString()) - }.openThreeDotMenu { - }.goToPreviousPage { - mDevice.waitForIdle() - verifyUrl(defaultWebPage.url.toString()) - } - } - - @Test - fun goForwardTest() { + fun navigateBackAndForwardTest() { val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1) val nextWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 2) @@ -276,87 +310,45 @@ class MainMenuTest { mDevice.waitForIdle() }.openNavigationToolbar { }.enterURLAndEnterToBrowser(nextWebPage.url) { - mDevice.waitForIdle() verifyUrl(nextWebPage.url.toString()) }.openThreeDotMenu { }.goToPreviousPage { mDevice.waitForIdle() verifyUrl(defaultWebPage.url.toString()) - } - - // Re-open the three-dot menu for verification - navigationToolbar { }.openThreeDotMenu { - verifyThreeDotMenuExists() }.goForward { verifyUrl(nextWebPage.url.toString()) } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2195819 + @SmokeTest @Test - fun findInPageTest() { - val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 3) + fun refreshPageButtonTest() { + val refreshWebPage = TestAssetHelper.getRefreshAsset(mockWebServer) navigationToolbar { - }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.enterURLAndEnterToBrowser(refreshWebPage.url) { mDevice.waitForIdle() }.openThreeDotMenu { verifyThreeDotMenuExists() - verifyFindInPageButton() - }.openFindInPage { - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() - enterFindInPageQuery("a") - verifyFindNextInPageResult("1/3") - clickFindInPageNextButton() - verifyFindNextInPageResult("2/3") - clickFindInPageNextButton() - verifyFindNextInPageResult("3/3") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("2/3") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/3") - }.closeFindInPageWithCloseButton { - verifyFindInPageBar(false) - }.openThreeDotMenu { - }.openFindInPage { - enterFindInPageQuery("3") - verifyFindNextInPageResult("1/1") - }.closeFindInPageWithBackButton { - verifyFindInPageBar(false) + }.refreshPage { + verifyPageContent("REFRESHED") } } + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2265657 @Test - fun pdfFindInPageTest() { - val genericURL = - TestAssetHelper.getGenericAsset(mockWebServer, 3) + fun forceRefreshPageTest() { + val refreshWebPage = TestAssetHelper.getRefreshAsset(mockWebServer) navigationToolbar { - }.enterURLAndEnterToBrowser(genericURL.url) { - clickPageObject(itemWithText("PDF form file")) + }.enterURLAndEnterToBrowser(refreshWebPage.url) { + mDevice.waitForIdle() }.openThreeDotMenu { verifyThreeDotMenuExists() - verifyFindInPageButton() - }.openFindInPage { - verifyFindInPageNextButton() - verifyFindInPagePrevButton() - verifyFindInPageCloseButton() - enterFindInPageQuery("l") - verifyFindNextInPageResult("1/2") - clickFindInPageNextButton() - verifyFindNextInPageResult("2/2") - clickFindInPagePrevButton() - verifyFindPrevInPageResult("1/2") - }.closeFindInPageWithCloseButton { - verifyFindInPageBar(false) - }.openThreeDotMenu { - }.openFindInPage { - enterFindInPageQuery("p") - verifyFindNextInPageResult("1/1") - }.closeFindInPageWithBackButton { - verifyFindInPageBar(false) + }.forceRefreshPage { + verifyPageContent("REFRESHED") } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt index 9b50e27f3..841785d1c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/PDFViewerTest.kt @@ -4,6 +4,7 @@ package org.mozilla.fenix.ui +import androidx.core.net.toUri import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import okhttp3.mockwebserver.MockWebServer @@ -15,10 +16,10 @@ import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher import org.mozilla.fenix.helpers.Constants.PackageName.GOOGLE_DOCS import org.mozilla.fenix.helpers.HomeActivityIntentTestRule +import org.mozilla.fenix.helpers.MatcherHelper import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset import org.mozilla.fenix.helpers.TestHelper.assertExternalAppOpens import org.mozilla.fenix.helpers.TestHelper.deleteDownloadedFileOnStorage @@ -28,6 +29,11 @@ import org.mozilla.fenix.ui.robots.navigationToolbar class PDFViewerTest { private lateinit var mockWebServer: MockWebServer + private val downloadTestPage = + "https://storage.googleapis.com/mobile_test_assets/test_app/downloads.html" + private val pdfFileName = "washington.pdf" + private val pdfFileURL = "storage.googleapis.com/mobile_test_assets/public/washington.pdf" + private val pdfFileContent = "Washington Crossing the Delaware" @get:Rule val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() @@ -50,7 +56,7 @@ class PDFViewerTest { @Test fun openPDFInBrowserTest() { val genericURL = - TestAssetHelper.getGenericAsset(mockWebServer, 3) + getGenericAsset(mockWebServer, 3) navigationToolbar { }.enterURLAndEnterToBrowser(genericURL.url) { @@ -88,4 +94,55 @@ class PDFViewerTest { } deleteDownloadedFileOnStorage(downloadFile) } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2283305 + @Test + fun pdfFindInPageTest() { + val genericURL = getGenericAsset(mockWebServer, 3) + + navigationToolbar { + }.enterURLAndEnterToBrowser(genericURL.url) { + clickPageObject(MatcherHelper.itemWithText("PDF form file")) + }.openThreeDotMenu { + verifyThreeDotMenuExists() + verifyFindInPageButton() + }.openFindInPage { + verifyFindInPageNextButton() + verifyFindInPagePrevButton() + verifyFindInPageCloseButton() + enterFindInPageQuery("l") + verifyFindNextInPageResult("1/2") + clickFindInPageNextButton() + verifyFindNextInPageResult("2/2") + clickFindInPagePrevButton() + verifyFindPrevInPageResult("1/2") + }.closeFindInPageWithCloseButton { + verifyFindInPageBar(false) + }.openThreeDotMenu { + }.openFindInPage { + enterFindInPageQuery("p") + verifyFindNextInPageResult("1/1") + }.closeFindInPageWithBackButton { + verifyFindInPageBar(false) + } + } + + // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2284297 + @Test + fun addPDFToHomeScreenTest() { + navigationToolbar { + }.enterURLAndEnterToBrowser(downloadTestPage.toUri()) { + clickPageObject(MatcherHelper.itemContainingText(pdfFileName)) + verifyUrl(pdfFileURL) + verifyPageContent(pdfFileContent) + }.openThreeDotMenu { + expandMenu() + }.openAddToHomeScreen { + verifyShortcutTextFieldTitle(pdfFileName) + clickAddShortcutButton() + clickAddAutomaticallyButton() + }.openHomeScreenShortcut(pdfFileName) { + verifyUrl(pdfFileURL) + } + } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt index 36d640095..6ce8ea706 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/SmokeTest.kt @@ -1,298 +1,282 @@ -/* 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/. */ - -@file:Suppress("DEPRECATION") - -package org.mozilla.fenix.ui - -import android.view.View -import androidx.compose.ui.test.junit4.AndroidComposeTestRule -import androidx.core.net.toUri -import androidx.test.platform.app.InstrumentationRegistry -import androidx.test.rule.ActivityTestRule -import androidx.test.uiautomator.UiDevice -import mozilla.components.browser.state.store.BrowserStore -import mozilla.components.concept.engine.mediasession.MediaSession -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.mozilla.fenix.IntentReceiverActivity -import org.mozilla.fenix.R -import org.mozilla.fenix.customannotations.SmokeTest -import org.mozilla.fenix.ext.components -import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityIntentTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.RetryTestRule -import org.mozilla.fenix.helpers.TestAssetHelper -import org.mozilla.fenix.helpers.TestHelper.assertYoutubeAppOpens -import org.mozilla.fenix.helpers.TestHelper.registerAndCleanupIdlingResources -import org.mozilla.fenix.helpers.ViewVisibilityIdlingResource -import org.mozilla.fenix.ui.robots.browserScreen -import org.mozilla.fenix.ui.robots.clickPageObject -import org.mozilla.fenix.ui.robots.homeScreen -import org.mozilla.fenix.ui.robots.navigationToolbar - -/** - * Test Suite that contains a part of the Smoke and Sanity tests defined in TestRail: - * https://testrail.stage.mozaws.net/index.php?/suites/view/3192 - * Other smoke tests have been marked with the @SmokeTest annotation throughout the ui package in order to limit this class expansion. - * These tests will verify different functionalities of the app as a way to quickly detect regressions in main areas - */ -@Suppress("ForbiddenComment") -@SmokeTest -class SmokeTest { - private lateinit var mDevice: UiDevice - private lateinit var mockWebServer: MockWebServer - private lateinit var browserStore: BrowserStore - - @get:Rule(order = 0) - val activityTestRule = AndroidComposeTestRule( - HomeActivityIntentTestRule.withDefaultSettingsOverrides(), - { it.activity }, - ) - - @get: Rule(order = 1) - val intentReceiverActivityTestRule = ActivityTestRule( - IntentReceiverActivity::class.java, - true, - false, - ) - - @Rule(order = 2) - @JvmField - val retryTestRule = RetryTestRule(3) - - @Before - fun setUp() { - // Initializing this as part of class construction, below the rule would throw a NPE - // So we are initializing this here instead of in all related tests. - browserStore = activityTestRule.activity.components.core.store - - mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - - // Device or AVD requires a Google Services Android OS installation with Play Store installed - // Verifies the Open in app button when an app is installed - @Test - fun mainMenuOpenInAppTest() { - val youtubeURL = "vnd.youtube://".toUri() - - navigationToolbar { - }.enterURLAndEnterToBrowser(youtubeURL) { - verifyNotificationDotOnMainMenu() - }.openThreeDotMenu { - }.clickOpenInApp { - assertYoutubeAppOpens() - } - } - - // Verifies that deleting a Bookmarks folder also removes the item from inside it. - @Test - fun deleteNonEmptyBookmarkFolderTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - browserScreen { - createBookmark(website.url) - }.openThreeDotMenu { - }.openBookmarks { - verifyBookmarkTitle("Test_Page_1") - createFolder("My Folder") - verifyFolderTitle("My Folder") - }.openThreeDotMenu("Test_Page_1") { - }.clickEdit { - clickParentFolderSelector() - selectFolder("My Folder") - navigateUp() - saveEditBookmark() - createFolder("My Folder 2") - verifyFolderTitle("My Folder 2") - }.openThreeDotMenu("My Folder 2") { - }.clickEdit { - clickParentFolderSelector() - selectFolder("My Folder") - navigateUp() - saveEditBookmark() - }.openThreeDotMenu("My Folder") { - }.clickDelete { - cancelFolderDeletion() - verifyFolderTitle("My Folder") - }.openThreeDotMenu("My Folder") { - }.clickDelete { - confirmDeletion() - verifyDeleteSnackBarText() - verifyBookmarkIsDeleted("My Folder") - verifyBookmarkIsDeleted("My Folder 2") - verifyBookmarkIsDeleted("Test_Page_1") - navigateUp() - } - - browserScreen { - }.openThreeDotMenu { - verifyAddBookmarkButton() - } - } - - @Test - fun shareTabsFromTabsTrayTest() { - val firstWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 1) - val secondWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 2) - val firstWebsiteTitle = firstWebsite.title - val secondWebsiteTitle = secondWebsite.title - val sharingApp = "Gmail" - val sharedUrlsString = "${firstWebsite.url}\n\n${secondWebsite.url}" - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(firstWebsite.url) { - verifyPageContent(firstWebsite.content) - }.openTabDrawer { - }.openNewTab { - }.submitQuery(secondWebsite.url.toString()) { - verifyPageContent(secondWebsite.content) - }.openTabDrawer { - verifyExistingOpenTabs("Test_Page_1") - verifyExistingOpenTabs("Test_Page_2") - }.openTabsListThreeDotMenu { - verifyShareAllTabsButton() - }.clickShareAllTabsButton { - verifyShareTabsOverlay(firstWebsiteTitle, secondWebsiteTitle) - verifySharingWithSelectedApp( - sharingApp, - sharedUrlsString, - "$firstWebsiteTitle, $secondWebsiteTitle", - ) - } - } - - @Test - fun privateTabsTrayWithOpenedTabTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - }.togglePrivateBrowsingMode() - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(website.url) { - }.openTabDrawer { - verifyNormalBrowsingButtonIsSelected(false) - verifyPrivateBrowsingButtonIsSelected(true) - verifySyncedTabsButtonIsSelected(false) - verifyTabTrayOverflowMenu(true) - verifyTabsTrayCounter() - verifyExistingTabList() - verifyExistingOpenTabs(website.title) - verifyCloseTabsButton(website.title) - verifyOpenedTabThumbnail() - verifyPrivateBrowsingNewTabButton() - } - } - - // Test running on beta/release builds in CI: - // caution when making changes to it, so they don't block the builds - @Test - fun noHistoryInPrivateBrowsingTest() { - val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) - - homeScreen { - }.togglePrivateBrowsingMode() - - homeScreen { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(website.url) { - mDevice.waitForIdle() - }.openThreeDotMenu { - }.openHistory { - verifyEmptyHistoryView() - } - } - - @Test - fun mainMenuInstallPWATest() { - val pwaPage = "https://mozilla-mobile.github.io/testapp/" - - navigationToolbar { - }.enterURLAndEnterToBrowser(pwaPage.toUri()) { - verifyNotificationDotOnMainMenu() - }.openThreeDotMenu { - }.clickInstall { - clickAddAutomaticallyButton() - }.openHomeScreenShortcut("TEST_APP") { - mDevice.waitForIdle() - verifyNavURLBarHidden() - } - } - - // Verifies that reader mode is detected and the custom appearance controls are displayed - @Test - fun verifyReaderViewAppearanceUI() { - val readerViewPage = - TestAssetHelper.getLoremIpsumAsset(mockWebServer) - val estimatedReadingTime = "1 - 2 minutes" - - navigationToolbar { - }.enterURLAndEnterToBrowser(readerViewPage.url) { - mDevice.waitForIdle() - } - - registerAndCleanupIdlingResources( - ViewVisibilityIdlingResource( - activityTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions), - View.VISIBLE, - ), - ) {} - - navigationToolbar { - verifyReaderViewDetected(true) - toggleReaderView() - } - - browserScreen { - waitForPageToLoad() - verifyPageContent(estimatedReadingTime) - }.openThreeDotMenu { - verifyReaderViewAppearance(true) - }.openReaderViewAppearance { - verifyAppearanceFontGroup(true) - verifyAppearanceFontSansSerif(true) - verifyAppearanceFontSerif(true) - verifyAppearanceFontIncrease(true) - verifyAppearanceFontDecrease(true) - verifyAppearanceColorGroup(true) - verifyAppearanceColorDark(true) - verifyAppearanceColorLight(true) - verifyAppearanceColorSepia(true) - } - } - - @Test - fun tabMediaControlButtonTest() { - val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) - - navigationToolbar { - }.enterURLAndEnterToBrowser(audioTestPage.url) { - mDevice.waitForIdle() - clickPageObject(itemWithText("Play")) - assertPlaybackState(browserStore, MediaSession.PlaybackState.PLAYING) - }.openTabDrawer { - verifyTabMediaControlButtonState("Pause") - clickTabMediaControlButton("Pause") - verifyTabMediaControlButtonState("Play") - }.openTab(audioTestPage.title) { - assertPlaybackState(browserStore, MediaSession.PlaybackState.PAUSED) - } - } -} +/* 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/. */ + +@file:Suppress("DEPRECATION") + +package org.mozilla.fenix.ui + +import android.view.View +import androidx.compose.ui.test.junit4.AndroidComposeTestRule +import androidx.core.net.toUri +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.rule.ActivityTestRule +import androidx.test.uiautomator.UiDevice +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.mediasession.MediaSession +import okhttp3.mockwebserver.MockWebServer +import org.junit.After +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.mozilla.fenix.IntentReceiverActivity +import org.mozilla.fenix.R +import org.mozilla.fenix.customannotations.SmokeTest +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.helpers.AndroidAssetDispatcher +import org.mozilla.fenix.helpers.HomeActivityIntentTestRule +import org.mozilla.fenix.helpers.MatcherHelper.itemWithText +import org.mozilla.fenix.helpers.RetryTestRule +import org.mozilla.fenix.helpers.TestAssetHelper +import org.mozilla.fenix.helpers.TestHelper.registerAndCleanupIdlingResources +import org.mozilla.fenix.helpers.ViewVisibilityIdlingResource +import org.mozilla.fenix.ui.robots.browserScreen +import org.mozilla.fenix.ui.robots.clickPageObject +import org.mozilla.fenix.ui.robots.homeScreen +import org.mozilla.fenix.ui.robots.navigationToolbar + +/** + * Test Suite that contains a part of the Smoke and Sanity tests defined in TestRail: + * https://testrail.stage.mozaws.net/index.php?/suites/view/3192 + * Other smoke tests have been marked with the @SmokeTest annotation throughout the ui package in order to limit this class expansion. + * These tests will verify different functionalities of the app as a way to quickly detect regressions in main areas + */ +@Suppress("ForbiddenComment") +@SmokeTest +class SmokeTest { + private lateinit var mDevice: UiDevice + private lateinit var mockWebServer: MockWebServer + private lateinit var browserStore: BrowserStore + + @get:Rule(order = 0) + val activityTestRule = AndroidComposeTestRule( + HomeActivityIntentTestRule.withDefaultSettingsOverrides(), + { it.activity }, + ) + + @get: Rule(order = 1) + val intentReceiverActivityTestRule = ActivityTestRule( + IntentReceiverActivity::class.java, + true, + false, + ) + + @Rule(order = 2) + @JvmField + val retryTestRule = RetryTestRule(3) + + @Before + fun setUp() { + // Initializing this as part of class construction, below the rule would throw a NPE + // So we are initializing this here instead of in all related tests. + browserStore = activityTestRule.activity.components.core.store + + mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + mockWebServer = MockWebServer().apply { + dispatcher = AndroidAssetDispatcher() + start() + } + } + + @After + fun tearDown() { + mockWebServer.shutdown() + } + + // Verifies that deleting a Bookmarks folder also removes the item from inside it. + @Test + fun deleteNonEmptyBookmarkFolderTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + browserScreen { + createBookmark(website.url) + }.openThreeDotMenu { + }.openBookmarks { + verifyBookmarkTitle("Test_Page_1") + createFolder("My Folder") + verifyFolderTitle("My Folder") + }.openThreeDotMenu("Test_Page_1") { + }.clickEdit { + clickParentFolderSelector() + selectFolder("My Folder") + navigateUp() + saveEditBookmark() + createFolder("My Folder 2") + verifyFolderTitle("My Folder 2") + }.openThreeDotMenu("My Folder 2") { + }.clickEdit { + clickParentFolderSelector() + selectFolder("My Folder") + navigateUp() + saveEditBookmark() + }.openThreeDotMenu("My Folder") { + }.clickDelete { + cancelFolderDeletion() + verifyFolderTitle("My Folder") + }.openThreeDotMenu("My Folder") { + }.clickDelete { + confirmDeletion() + verifyDeleteSnackBarText() + verifyBookmarkIsDeleted("My Folder") + verifyBookmarkIsDeleted("My Folder 2") + verifyBookmarkIsDeleted("Test_Page_1") + navigateUp() + } + + browserScreen { + }.openThreeDotMenu { + verifyAddBookmarkButton() + } + } + + @Test + fun shareTabsFromTabsTrayTest() { + val firstWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val secondWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 2) + val firstWebsiteTitle = firstWebsite.title + val secondWebsiteTitle = secondWebsite.title + val sharingApp = "Gmail" + val sharedUrlsString = "${firstWebsite.url}\n\n${secondWebsite.url}" + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(firstWebsite.url) { + verifyPageContent(firstWebsite.content) + }.openTabDrawer { + }.openNewTab { + }.submitQuery(secondWebsite.url.toString()) { + verifyPageContent(secondWebsite.content) + }.openTabDrawer { + verifyExistingOpenTabs("Test_Page_1") + verifyExistingOpenTabs("Test_Page_2") + }.openTabsListThreeDotMenu { + verifyShareAllTabsButton() + }.clickShareAllTabsButton { + verifyShareTabsOverlay(firstWebsiteTitle, secondWebsiteTitle) + verifySharingWithSelectedApp( + sharingApp, + sharedUrlsString, + "$firstWebsiteTitle, $secondWebsiteTitle", + ) + } + } + + @Test + fun privateTabsTrayWithOpenedTabTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + homeScreen { + }.togglePrivateBrowsingMode() + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(website.url) { + }.openTabDrawer { + verifyNormalBrowsingButtonIsSelected(false) + verifyPrivateBrowsingButtonIsSelected(true) + verifySyncedTabsButtonIsSelected(false) + verifyTabTrayOverflowMenu(true) + verifyTabsTrayCounter() + verifyExistingTabList() + verifyExistingOpenTabs(website.title) + verifyCloseTabsButton(website.title) + verifyOpenedTabThumbnail() + verifyPrivateBrowsingNewTabButton() + } + } + + // Test running on beta/release builds in CI: + // caution when making changes to it, so they don't block the builds + @Test + fun noHistoryInPrivateBrowsingTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + + homeScreen { + }.togglePrivateBrowsingMode() + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(website.url) { + mDevice.waitForIdle() + }.openThreeDotMenu { + }.openHistory { + verifyEmptyHistoryView() + } + } + + @Test + fun mainMenuInstallPWATest() { + val pwaPage = "https://mozilla-mobile.github.io/testapp/" + + navigationToolbar { + }.enterURLAndEnterToBrowser(pwaPage.toUri()) { + verifyNotificationDotOnMainMenu() + }.openThreeDotMenu { + }.clickInstall { + clickAddAutomaticallyButton() + }.openHomeScreenShortcut("TEST_APP") { + mDevice.waitForIdle() + verifyNavURLBarHidden() + } + } + + // Verifies that reader mode is detected and the custom appearance controls are displayed + @Test + fun verifyReaderViewAppearanceUI() { + val readerViewPage = + TestAssetHelper.getLoremIpsumAsset(mockWebServer) + val estimatedReadingTime = "1 - 2 minutes" + + navigationToolbar { + }.enterURLAndEnterToBrowser(readerViewPage.url) { + mDevice.waitForIdle() + } + + registerAndCleanupIdlingResources( + ViewVisibilityIdlingResource( + activityTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions), + View.VISIBLE, + ), + ) {} + + navigationToolbar { + verifyReaderViewDetected(true) + toggleReaderView() + } + + browserScreen { + waitForPageToLoad() + verifyPageContent(estimatedReadingTime) + }.openThreeDotMenu { + verifyReaderViewAppearance(true) + }.openReaderViewAppearance { + verifyAppearanceFontGroup(true) + verifyAppearanceFontSansSerif(true) + verifyAppearanceFontSerif(true) + verifyAppearanceFontIncrease(true) + verifyAppearanceFontDecrease(true) + verifyAppearanceColorGroup(true) + verifyAppearanceColorDark(true) + verifyAppearanceColorLight(true) + verifyAppearanceColorSepia(true) + } + } + + @Test + fun tabMediaControlButtonTest() { + val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) + + navigationToolbar { + }.enterURLAndEnterToBrowser(audioTestPage.url) { + mDevice.waitForIdle() + clickPageObject(itemWithText("Play")) + assertPlaybackState(browserStore, MediaSession.PlaybackState.PLAYING) + }.openTabDrawer { + verifyTabMediaControlButtonState("Pause") + clickTabMediaControlButton("Pause") + verifyTabMediaControlButtonState("Play") + }.openTab(audioTestPage.title) { + assertPlaybackState(browserStore, MediaSession.PlaybackState.PAUSED) + } + } +} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ThreeDotMenuMainTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ThreeDotMenuMainTest.kt deleted file mode 100644 index afa02ef05..000000000 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ThreeDotMenuMainTest.kt +++ /dev/null @@ -1,203 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.ui - -import okhttp3.mockwebserver.MockWebServer -import org.junit.After -import org.junit.Before -import org.junit.Rule -import org.junit.Test -import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityTestRule -import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText -import org.mozilla.fenix.helpers.MatcherHelper.itemWithText -import org.mozilla.fenix.helpers.TestAssetHelper -import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton -import org.mozilla.fenix.ui.robots.clickContextMenuItem -import org.mozilla.fenix.ui.robots.clickPageObject -import org.mozilla.fenix.ui.robots.homeScreen -import org.mozilla.fenix.ui.robots.longClickPageObject - -/** - * Tests for verifying the main three dot menu options - * - */ - -class ThreeDotMenuMainTest { - private lateinit var mockWebServer: MockWebServer - - @get:Rule - val activityTestRule = HomeActivityTestRule.withDefaultSettingsOverrides() - - @Before - fun setUp() { - mockWebServer = MockWebServer().apply { - dispatcher = AndroidAssetDispatcher() - start() - } - } - - @After - fun tearDown() { - mockWebServer.shutdown() - } - - // Verifies the list of items in the homescreen's 3 dot main menu - @Test - fun homeThreeDotMenuItemsTest() { - homeScreen { - }.openThreeDotMenu { - verifyHomeThreeDotMainMenuItems(isRequestDesktopSiteEnabled = false) - }.openBookmarks { - verifyBookmarksMenuView() - }.goBack { - }.openThreeDotMenu { - }.openHistory { - verifyHistoryMenuView() - }.goBack { - }.openThreeDotMenu { - }.openDownloadsManager { - verifyEmptyDownloadsList() - }.goBack { - }.openThreeDotMenu { - }.openAddonsManagerMenu { - verifyAddonsItems() - }.goBack { - }.openThreeDotMenu { - }.openSyncSignIn { - verifyTurnOnSyncMenu() - }.goBack { - // Desktop toggle - }.openThreeDotMenu { - }.switchDesktopSiteMode { - } - homeScreen { - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(isRequestDesktopSiteEnabled = true) - }.openWhatsNew { - verifyWhatsNewURL() - }.goToHomescreen { - }.openThreeDotMenu { - }.openHelp { - verifyHelpUrl() - }.goToHomescreen { - }.openThreeDotMenu { - }.openCustomizeHome { - verifyHomePageView() - }.goBackToHomeScreen { - }.openThreeDotMenu { - }.openSettings { - verifySettingsView() - } - } - - // Verifies the list of items in the homescreen's 3 dot main menu in private browsing - @Test - fun privateHomeThreeDotMenuItemsTest() { - homeScreen { - }.togglePrivateBrowsingMode() - homeScreen { - }.openThreeDotMenu { - verifyHomeThreeDotMainMenuItems(isRequestDesktopSiteEnabled = false) - }.openBookmarks { - verifyBookmarksMenuView() - }.goBack { - }.openThreeDotMenu { - }.openHistory { - verifyHistoryMenuView() - }.goBack { - }.openThreeDotMenu { - }.openDownloadsManager { - verifyEmptyDownloadsList() - }.goBack { - }.openThreeDotMenu { - }.openAddonsManagerMenu { - verifyAddonsItems() - }.goBack { - }.openThreeDotMenu { - }.openSyncSignIn { - verifyTurnOnSyncMenu() - }.goBack { - // Desktop toggle - }.openThreeDotMenu { - }.switchDesktopSiteMode { - } - homeScreen { - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(isRequestDesktopSiteEnabled = true) - }.openWhatsNew { - verifyWhatsNewURL() - }.goToHomescreen { - }.openThreeDotMenu { - }.openHelp { - verifyHelpUrl() - }.goToHomescreen { - }.openThreeDotMenu { - }.openCustomizeHome { - verifyHomePageView() - }.goBackToHomeScreen { - }.openThreeDotMenu { - }.openSettings { - verifySettingsView() - } - } - - @Test - fun setDesktopSiteBeforePageLoadTest() { - val webPage = TestAssetHelper.getGenericAsset(mockWebServer, 4) - - homeScreen { - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(false) - }.switchDesktopSiteMode { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(webPage.url) { - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(true) - }.closeBrowserMenuToBrowser { - clickPageObject(itemContainingText("Link 1")) - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(true) - }.closeBrowserMenuToBrowser { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(webPage.url) { - longClickPageObject(itemWithText("Link 2")) - clickContextMenuItem("Open link in new tab") - clickSnackbarButton("SWITCH") - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(false) - } - } - - @Test - fun privateBrowsingSetDesktopSiteBeforePageLoadTest() { - val webPage = TestAssetHelper.getGenericAsset(mockWebServer, 4) - - homeScreen { - }.togglePrivateBrowsingMode() - - homeScreen { - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(false) - }.switchDesktopSiteMode { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(webPage.url) { - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(true) - }.closeBrowserMenuToBrowser { - clickPageObject(itemContainingText("Link 1")) - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(true) - }.closeBrowserMenuToBrowser { - }.openNavigationToolbar { - }.enterURLAndEnterToBrowser(webPage.url) { - longClickPageObject(itemWithText("Link 2")) - clickContextMenuItem("Open link in private tab") - clickSnackbarButton("SWITCH") - }.openThreeDotMenu { - verifyDesktopSiteModeEnabled(false) - } - } -} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt index 0c0cf2ebc..86d01b8b1 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/SettingsSubMenuAddonsManagerRobot.kt @@ -41,6 +41,7 @@ import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeLong import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort import org.mozilla.fenix.helpers.TestHelper.appName import org.mozilla.fenix.helpers.TestHelper.mDevice +import org.mozilla.fenix.helpers.TestHelper.packageName import org.mozilla.fenix.helpers.TestHelper.restartApp import org.mozilla.fenix.helpers.TestHelper.scrollToElementByText import org.mozilla.fenix.helpers.click @@ -51,6 +52,22 @@ import org.mozilla.fenix.helpers.ext.waitNotNull */ class SettingsSubMenuAddonsManagerRobot { + fun verifyAddonsListIsDisplayed(shouldBeDisplayed: Boolean) { + if (shouldBeDisplayed) { + assertTrue( + mDevice.findObject( + UiSelector().resourceId("$packageName:id/add_ons_list"), + ).waitForExists(waitingTime), + ) + } else { + assertTrue( + mDevice.findObject( + UiSelector().resourceId("$packageName:id/add_ons_list"), + ).waitUntilGone(waitingTime), + ) + } + } + fun verifyAddonPermissionPrompt(addonName: String) { mDevice.waitNotNull(Until.findObject(By.text("Add $addonName?")), waitingTime) diff --git a/automation/taskcluster/androidTest/flank-arm-beta.yml b/automation/taskcluster/androidTest/flank-arm-beta.yml index 8a7880454..eac00bc0e 100644 --- a/automation/taskcluster/androidTest/flank-arm-beta.yml +++ b/automation/taskcluster/androidTest/flank-arm-beta.yml @@ -21,7 +21,6 @@ gcloud: test-targets: - class org.mozilla.fenix.ui.HistoryTest#visitedUrlHistoryTest - - class org.mozilla.fenix.ui.MainMenuTest#openMainMenuSettingsItemTest - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest diff --git a/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml b/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml index 024d137a2..7a7465c1e 100644 --- a/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml +++ b/automation/taskcluster/androidTest/flank-arm-legacy-api-tests.yml @@ -26,7 +26,6 @@ gcloud: - class org.mozilla.fenix.ui.MainMenuTest#goBackTest - class org.mozilla.fenix.ui.MainMenuTest#goForwardTest - class org.mozilla.fenix.ui.HistoryTest#visitedUrlHistoryTest - - class org.mozilla.fenix.ui.MainMenuTest#openMainMenuSettingsItemTest - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest diff --git a/automation/taskcluster/androidTest/flank-arm-start-test.yml b/automation/taskcluster/androidTest/flank-arm-start-test.yml index ba96cadf6..540ddc145 100644 --- a/automation/taskcluster/androidTest/flank-arm-start-test.yml +++ b/automation/taskcluster/androidTest/flank-arm-start-test.yml @@ -21,7 +21,6 @@ gcloud: test-targets: - class org.mozilla.fenix.ui.HistoryTest#visitedUrlHistoryTest - - class org.mozilla.fenix.ui.MainMenuTest#openMainMenuSettingsItemTest - class org.mozilla.fenix.ui.SettingsSearchTest#toggleSearchSuggestionsTest - class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest - class org.mozilla.fenix.ui.SmokeTest#noHistoryInPrivateBrowsingTest From ccddbd33190f54d56240babf837b091b4bda4562 Mon Sep 17 00:00:00 2001 From: jackyzy823 Date: Sat, 2 Sep 2023 09:28:49 +0800 Subject: [PATCH 095/209] Bug 1850933 - Override onProvideAssistContent in ExternalAppBrowserActivity --- .../fenix/customtabs/ExternalAppBrowserActivity.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt index 429ff9eb0..2b70d5551 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserActivity.kt @@ -4,7 +4,11 @@ package org.mozilla.fenix.customtabs +import android.app.assist.AssistContent import android.content.Intent +import android.net.Uri +import android.os.Build +import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import androidx.navigation.NavDestination import androidx.navigation.NavDirections @@ -117,4 +121,11 @@ open class ExternalAppBrowserActivity : HomeActivity() { internal fun getExternalTabId(): String? { return getIntentSessionId(SafeIntent(intent)) } + + @RequiresApi(Build.VERSION_CODES.M) + override fun onProvideAssistContent(outContent: AssistContent?) { + super.onProvideAssistContent(outContent) + val currentTabUrl = getExternalTab()?.content?.url + outContent?.webUri = currentTabUrl?.let { Uri.parse(it) } + } } From 61431c6b593e7966061987ebc17b3cab5427c527 Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Wed, 6 Sep 2023 09:15:32 -0400 Subject: [PATCH 096/209] Bug 1848100 - Implement add-ons installation failed listener --- .../fenix/addons/AddonsManagementFragment.kt | 33 +-- .../extension/WebExtensionPromptFeature.kt | 151 ++++++++++-- .../addons/AddonsManagementFragmentTest.kt | 24 -- .../WebExtensionPromptFeatureTest.kt | 219 ++++++++++++++++++ 4 files changed, 349 insertions(+), 78 deletions(-) create mode 100644 app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt diff --git a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt index aa6f4332c..eebdc56cf 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt @@ -21,12 +21,10 @@ import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.launch -import mozilla.components.concept.engine.webextension.WebExtensionInstallException import mozilla.components.feature.addons.Addon import mozilla.components.feature.addons.AddonManager import mozilla.components.feature.addons.AddonManagerException import mozilla.components.feature.addons.ui.AddonsManagerAdapter -import mozilla.components.feature.addons.ui.translateName import mozilla.components.support.base.feature.ViewBoundFeatureWrapper import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.Config @@ -34,14 +32,12 @@ import org.mozilla.fenix.R import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.databinding.FragmentAddOnsManagementBinding import org.mozilla.fenix.ext.components -import org.mozilla.fenix.ext.getRootView import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.runIfFragmentIsAttached import org.mozilla.fenix.ext.settings import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.extension.WebExtensionPromptFeature import org.mozilla.fenix.theme.ThemeManager -import java.util.concurrent.CancellationException /** * Fragment use for managing add-ons. @@ -56,11 +52,6 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) private val webExtensionPromptFeature = ViewBoundFeatureWrapper() private var addons: List = emptyList() - /** - * Whether or not an add-on installation is in progress. - */ - private var isInstallationInProgress = false - private var installExternalAddonComplete: Boolean set(value) { arguments?.putBoolean(BUNDLE_KEY_INSTALL_EXTERNAL_ADDON_COMPLETE, value) @@ -138,7 +129,6 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) excludedAddonIDs, ) } - isInstallationInProgress = false binding?.addOnsProgressBar?.isVisible = false binding?.addOnsEmptyMessage?.isVisible = false @@ -163,7 +153,6 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) getString(R.string.mozac_feature_addons_failed_to_query_add_ons), ) } - isInstallationInProgress = false binding?.addOnsProgressBar?.isVisible = false binding?.addOnsEmptyMessage?.isVisible = true } @@ -230,30 +219,12 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) addon, onSuccess = { runIfFragmentIsAttached { - isInstallationInProgress = false adapter?.updateAddon(it) binding?.addonProgressOverlay?.overlayCardView?.visibility = View.GONE } }, - onError = { _, e -> - this@AddonsManagementFragment.view?.let { view -> - // No need to display an error message if installation was cancelled by the user. - if (e !is CancellationException && e !is WebExtensionInstallException.UserCancelled) { - val rootView = activity?.getRootView() ?: view - var messageId = R.string.mozac_feature_addons_failed_to_install - if (e is WebExtensionInstallException.Blocklisted) { - messageId = R.string.mozac_feature_addons_blocklisted - } - context?.let { - showErrorSnackBar( - text = getString(messageId, addon.translateName(it)), - anchorView = rootView, - ) - } - } - binding?.addonProgressOverlay?.overlayCardView?.visibility = View.GONE - isInstallationInProgress = false - } + onError = { _, _ -> + binding?.addonProgressOverlay?.overlayCardView?.visibility = View.GONE }, ) binding?.addonProgressOverlay?.cancelButton?.setOnClickListener { diff --git a/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt b/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt index de69be0ff..1deb041e3 100644 --- a/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt +++ b/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.extension import android.content.Context import android.view.Gravity import androidx.annotation.VisibleForTesting +import androidx.appcompat.app.AlertDialog import androidx.fragment.app.FragmentManager import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.cancel @@ -15,12 +16,15 @@ import kotlinx.coroutines.flow.mapNotNull import mozilla.components.browser.state.action.WebExtensionAction import mozilla.components.browser.state.state.extension.WebExtensionPromptRequest import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.webextension.WebExtensionInstallException import mozilla.components.feature.addons.Addon import mozilla.components.feature.addons.toInstalledState import mozilla.components.feature.addons.ui.AddonInstallationDialogFragment import mozilla.components.feature.addons.ui.PermissionsDialogFragment import mozilla.components.lib.state.ext.flowScoped import mozilla.components.support.base.feature.LifecycleAwareFeature +import mozilla.components.support.ktx.android.content.appVersionName +import mozilla.components.ui.widgets.withCenterAlignedButtons import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.theme.ThemeManager @@ -51,26 +55,49 @@ class WebExtensionPromptFeature( flow.mapNotNull { state -> state.webExtensionPromptRequest }.distinctUntilChanged().collect { promptRequest -> - // The install flow in Fenix relies on an [Addon] object so let's convert the (GeckoView) - // extension into a minimal add-on. The missing metadata will be fetched when the user - // opens the add-ons manager. - val addon = Addon.newFromWebExtension(promptRequest.extension) when (promptRequest) { - is WebExtensionPromptRequest.Permissions -> handlePermissionRequest( - addon, - promptRequest, - ) + is WebExtensionPromptRequest.AfterInstallation -> { + handleAfterInstallationRequest(promptRequest) + } - is WebExtensionPromptRequest.PostInstallation -> handlePostInstallationRequest( - addon.copy(installedState = promptRequest.extension.toInstalledState()), - ) + is WebExtensionPromptRequest.BeforeInstallation.InstallationFailed -> { + handleBeforeInstallationRequest(promptRequest) + consumePromptRequest() + } } } } tryToReAttachButtonHandlersToPreviousDialog() } + private fun handleAfterInstallationRequest(promptRequest: WebExtensionPromptRequest.AfterInstallation) { + // The install flow in Fenix relies on an [Addon] object so let's convert the (GeckoView) + // extension into a minimal add-on. The missing metadata will be fetched when the user + // opens the add-ons manager. + val addon = Addon.newFromWebExtension(promptRequest.extension) + when (promptRequest) { + is WebExtensionPromptRequest.AfterInstallation.Permissions -> handlePermissionRequest( + addon, + promptRequest, + ) + is WebExtensionPromptRequest.AfterInstallation.PostInstallation -> handlePostInstallationRequest( + addon.copy(installedState = promptRequest.extension.toInstalledState()), + ) + } + } + + private fun handleBeforeInstallationRequest(promptRequest: WebExtensionPromptRequest.BeforeInstallation) { + when (promptRequest) { + is WebExtensionPromptRequest.BeforeInstallation.InstallationFailed -> { + handleInstallationFailedRequest( + exception = promptRequest.exception, + ) + consumePromptRequest() + } + } + } + private fun handlePostInstallationRequest( addon: Addon, ) { @@ -79,13 +106,73 @@ class WebExtensionPromptFeature( private fun handlePermissionRequest( addon: Addon, - promptRequest: WebExtensionPromptRequest.Permissions, + promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions, ) { - if (hasExistingPermissionDialogFragment()) { - return + if (hasExistingPermissionDialogFragment()) return + showPermissionDialog( + addon, + promptRequest, + ) + } + + @VisibleForTesting + internal fun handleInstallationFailedRequest( + exception: WebExtensionInstallException, + ) { + val addonName = exception.extensionName ?: "" + var title = context.getString(R.string.mozac_feature_addons_failed_to_install, "") + val message = when (exception) { + is WebExtensionInstallException.Blocklisted -> { + context.getString(R.string.mozac_feature_addons_blocklisted, addonName) + } + + is WebExtensionInstallException.UserCancelled -> { + // We don't want to show an error message when users cancel installation. + return + } + + is WebExtensionInstallException.Unknown -> { + // Making sure we don't have a + // Title = Failed to install + // Message = Failed to install $addonName + title = "" + if (addonName.isNotEmpty()) { + context.getString(R.string.mozac_feature_addons_failed_to_install, addonName) + } else { + context.getString(R.string.mozac_feature_addons_failed_to_install_generic) + } + } + + is WebExtensionInstallException.NetworkFailure -> { + context.getString(R.string.mozac_feature_addons_failed_to_install_network_error) + } + + is WebExtensionInstallException.CorruptFile -> { + context.getString(R.string.mozac_feature_addons_failed_to_install_corrupt_error) + } + + is WebExtensionInstallException.NotSigned -> { + context.getString( + R.string.mozac_feature_addons_failed_to_install_not_signed_error, + ) + } + + is WebExtensionInstallException.Incompatible -> { + val appName = context.getString(R.string.app_name) + val version = context.appVersionName + context.getString( + R.string.mozac_feature_addons_failed_to_install_incompatible_error, + addonName, + appName, + version, + ) + } } - showPermissionDialog(addon, promptRequest) + showDialog( + title = title, + message = message, + ) } /** @@ -98,7 +185,7 @@ class WebExtensionPromptFeature( @VisibleForTesting internal fun showPermissionDialog( addon: Addon, - promptRequest: WebExtensionPromptRequest.Permissions, + promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions, ) { if (!isInstallationInProgress && !hasExistingPermissionDialogFragment()) { val dialog = PermissionsDialogFragment.newInstance( @@ -135,8 +222,8 @@ class WebExtensionPromptFeature( findPreviousPermissionDialogFragment()?.let { dialog -> dialog.onPositiveButtonClicked = { addon -> store.state.webExtensionPromptRequest?.let { promptRequest -> - if (addon.id == promptRequest.extension.id && - promptRequest is WebExtensionPromptRequest.Permissions + if (promptRequest is WebExtensionPromptRequest.AfterInstallation.Permissions && + addon.id == promptRequest.extension.id ) { handleApprovedPermissions(promptRequest) } @@ -144,7 +231,7 @@ class WebExtensionPromptFeature( } dialog.onNegativeButtonClicked = { store.state.webExtensionPromptRequest?.let { promptRequest -> - if (promptRequest is WebExtensionPromptRequest.Permissions) { + if (promptRequest is WebExtensionPromptRequest.AfterInstallation.Permissions) { handleDeniedPermissions(promptRequest) } } @@ -154,8 +241,8 @@ class WebExtensionPromptFeature( findPreviousPostInstallationDialogFragment()?.let { dialog -> dialog.onConfirmButtonClicked = { addon, allowInPrivateBrowsing -> store.state.webExtensionPromptRequest?.let { promptRequest -> - if (addon.id == promptRequest.extension.id && - promptRequest is WebExtensionPromptRequest.PostInstallation + if (promptRequest is WebExtensionPromptRequest.AfterInstallation.PostInstallation && + addon.id == promptRequest.extension.id ) { handlePostInstallationButtonClicked( allowInPrivateBrowsing = allowInPrivateBrowsing, @@ -173,12 +260,12 @@ class WebExtensionPromptFeature( } } - private fun handleDeniedPermissions(promptRequest: WebExtensionPromptRequest.Permissions) { + private fun handleDeniedPermissions(promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions) { promptRequest.onConfirm(false) consumePromptRequest() } - private fun handleApprovedPermissions(promptRequest: WebExtensionPromptRequest.Permissions) { + private fun handleApprovedPermissions(promptRequest: WebExtensionPromptRequest.AfterInstallation.Permissions) { promptRequest.onConfirm(true) consumePromptRequest() } @@ -267,6 +354,24 @@ class WebExtensionPromptFeature( consumePromptRequest() } + @VisibleForTesting + internal fun showDialog( + title: String, + message: String, + ) { + context.let { + AlertDialog.Builder(it) + .setTitle(title) + .setPositiveButton(android.R.string.ok) { _, _ -> } + .setCancelable(false) + .setMessage( + message, + ) + .show() + .withCenterAlignedButtons() + } + } + companion object { private const val PERMISSIONS_DIALOG_FRAGMENT_TAG = "ADDONS_PERMISSIONS_DIALOG_FRAGMENT" private const val POST_INSTALLATION_DIALOG_FRAGMENT_TAG = diff --git a/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt index 8c57ee1c2..235bebe2e 100644 --- a/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt @@ -6,15 +6,11 @@ package org.mozilla.fenix.addons import android.content.Context import androidx.coordinatorlayout.widget.CoordinatorLayout -import io.mockk.CapturingSlot import io.mockk.every import io.mockk.mockk import io.mockk.spyk import io.mockk.verify -import mozilla.components.concept.engine.webextension.WebExtensionInstallException import mozilla.components.feature.addons.Addon -import mozilla.components.feature.addons.AddonManager -import mozilla.components.feature.addons.ui.translateName import org.junit.Before import org.junit.Test import org.mozilla.fenix.R @@ -61,24 +57,4 @@ class AddonsManagementFragmentTest { fragment.installExternalAddon(supportedAddons, "d1") verify { fragment.showErrorSnackBar(addonAlreadyInstalledErrorMessage) } } - - @Test - fun `GIVEN add-on is installed WHEN add-on is blocklisted THEN error is shown`() { - val addonManger = mockk() - val addon = Addon("1") - val onError = CapturingSlot<((String, Throwable) -> Unit)>() - val expectedErrorMessage = fragment.getString( - R.string.mozac_feature_addons_blocklisted, - addon.translateName(context), - ) - - every { fragment.provideAccessibilityServicesEnabled() } returns false - every { fragment.provideAddonManger() } returns addonManger - every { addonManger.installAddon(addon, any(), capture(onError)) } returns mockk() - - fragment.installAddon(addon) - onError.captured("", WebExtensionInstallException.Blocklisted(mockk())) - - verify { fragment.showErrorSnackBar(expectedErrorMessage) } - } } diff --git a/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt b/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt new file mode 100644 index 000000000..af5efe5f7 --- /dev/null +++ b/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt @@ -0,0 +1,219 @@ +/* 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.extension + +import io.mockk.every +import io.mockk.just +import io.mockk.mockk +import io.mockk.runs +import io.mockk.spyk +import io.mockk.verify +import mozilla.components.browser.state.action.WebExtensionAction.UpdatePromptRequestWebExtensionAction +import mozilla.components.browser.state.state.extension.WebExtensionPromptRequest +import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.concept.engine.webextension.WebExtensionInstallException +import mozilla.components.support.ktx.android.content.appVersionName +import mozilla.components.support.test.ext.joinBlocking +import mozilla.components.support.test.robolectric.testContext +import mozilla.components.support.test.rule.MainCoroutineRule +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.FenixRobolectricTestRunner + +@RunWith(FenixRobolectricTestRunner::class) +class WebExtensionPromptFeatureTest { + + private lateinit var webExtensionPromptFeature: WebExtensionPromptFeature + private lateinit var store: BrowserStore + + @get:Rule + val coroutinesTestRule = MainCoroutineRule() + + @Before + fun setup() { + store = BrowserStore() + webExtensionPromptFeature = spyk( + WebExtensionPromptFeature( + store = store, + context = testContext, + fragmentManager = mockk(relaxed = true), + ), + ) + } + + @Test + fun `WHEN InstallationFailed is dispatched THEN handleInstallationFailedRequest is called`() { + webExtensionPromptFeature.start() + + every { webExtensionPromptFeature.handleInstallationFailedRequest(any()) } just runs + + store.dispatch( + UpdatePromptRequestWebExtensionAction( + WebExtensionPromptRequest.BeforeInstallation.InstallationFailed( + mockk(), + mockk(), + ), + ), + ).joinBlocking() + + verify { webExtensionPromptFeature.handleInstallationFailedRequest(any()) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with network error THEN showDialog with the correct message`() { + val expectedTitle = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, "") + val exception = WebExtensionInstallException.NetworkFailure( + extensionName = "name", + throwable = Exception(), + ) + val expectedMessage = + testContext.getString( + R.string.mozac_feature_addons_failed_to_install_network_error, + "name", + ) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with Blocklisted error THEN showDialog with the correct message`() { + val expectedTitle = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, "") + val extensionName = "extensionName" + val exception = WebExtensionInstallException.Blocklisted( + extensionName = extensionName, + throwable = Exception(), + ) + val expectedMessage = + testContext.getString(R.string.mozac_feature_addons_blocklisted, extensionName) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with UserCancelled error THEN do not showDialog`() { + val expectedTitle = "" + val extensionName = "extensionName" + val exception = WebExtensionInstallException.UserCancelled( + extensionName = extensionName, + throwable = Exception(), + ) + val expectedMessage = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, extensionName) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify(exactly = 0) { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with Unknown error THEN showDialog with the correct message`() { + val expectedTitle = "" + val extensionName = "extensionName" + val exception = WebExtensionInstallException.Unknown( + extensionName = extensionName, + throwable = Exception(), + ) + val expectedMessage = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, extensionName) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with Unknown error and no extension name THEN showDialog with the correct message`() { + val expectedTitle = "" + val exception = WebExtensionInstallException.Unknown( + extensionName = null, + throwable = Exception(), + ) + val expectedMessage = + testContext.getString(R.string.mozac_feature_addons_failed_to_install_generic) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with CorruptFile error THEN showDialog with the correct message`() { + val expectedTitle = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, "") + val exception = WebExtensionInstallException.CorruptFile( + throwable = Exception(), + ) + val expectedMessage = + testContext.getString(R.string.mozac_feature_addons_failed_to_install_corrupt_error) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with NotSigned error THEN showDialog with the correct message`() { + val expectedTitle = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, "") + val exception = WebExtensionInstallException.NotSigned( + throwable = Exception(), + ) + val expectedMessage = + testContext.getString(R.string.mozac_feature_addons_failed_to_install_not_signed_error) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } + + @Test + fun `WHEN calling handleInstallationFailedRequest with Incompatible error THEN showDialog with the correct message`() { + val expectedTitle = + testContext.getString(R.string.mozac_feature_addons_failed_to_install, "") + val extensionName = "extensionName" + val exception = WebExtensionInstallException.Incompatible( + extensionName = extensionName, + throwable = Exception(), + ) + val appName = testContext.getString(R.string.app_name) + val version = testContext.appVersionName + val expectedMessage = + testContext.getString( + R.string.mozac_feature_addons_failed_to_install_incompatible_error, + extensionName, + appName, + version, + ) + + webExtensionPromptFeature.handleInstallationFailedRequest( + exception = exception, + ) + + verify { webExtensionPromptFeature.showDialog(expectedTitle, expectedMessage) } + } +} From 0e1412c6519ab4ebb08949dcb4ea3466ff660293 Mon Sep 17 00:00:00 2001 From: DreVla Date: Thu, 17 Aug 2023 12:41:32 +0300 Subject: [PATCH 097/209] Bug 1845747 - Add "Add search widget" card for Juno Onboarding Added a new card for the Juno Onboarding, "Add search widget to homescreen". This is an experiment that aims to increase DAU and searches. --- app/metrics.yaml | 99 ++++++ app/onboarding.fml.yaml | 11 + .../view/JunoOnboardingMapperTest.kt | 40 ++- app/src/main/AndroidManifest.xml | 7 + .../onboarding/JunoOnboardingFragment.kt | 53 +++- .../JunoOnboardingTelemetryRecorder.kt | 43 +++ .../fenix/onboarding/WidgetPinnedReceiver.kt | 83 +++++ .../onboarding/view/JunoOnboardingMapper.kt | 29 +- .../onboarding/view/JunoOnboardingScreen.kt | 41 ++- .../onboarding/view/OnboardingPageUiData.kt | 3 + .../drawable/ic_onboarding_search_widget.xml | 293 ++++++++++++++++++ app/src/main/res/values/strings.xml | 11 + .../view/JunoOnboardingMapperTest.kt | 46 +++ 13 files changed, 745 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/onboarding/WidgetPinnedReceiver.kt create mode 100644 app/src/main/res/drawable/ic_onboarding_search_widget.xml diff --git a/app/metrics.yaml b/app/metrics.yaml index d68c093a7..8aeb63e4a 100644 --- a/app/metrics.yaml +++ b/app/metrics.yaml @@ -1318,6 +1318,105 @@ onboarding: metadata: tags: - Onboarding + add_search_widget_card: + type: event + description: | + User viewed juno onboarding add search widget card. + extra_keys: + element_type: + type: string + description: | + Type of element that was viewed. + action: + type: string + description: | + Type of action taken by the user. + sequence_position: + type: string + description: | + Position of the onboarding card in the onboarding flow. + sequence_id: + type: string + description: | + Identifier for the sequence. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1848960 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/3310 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: 126 + metadata: + tags: + - Onboarding + add_search_widget: + type: event + description: | + User tapped on Add Firefox Widget in juno onboarding. + extra_keys: + element_type: + type: string + description: | + Type of element that was viewed. + action: + type: string + description: | + Type of action taken by the user. + sequence_position: + type: string + description: | + Position of the onboarding card in the onboarding flow. + sequence_id: + type: string + description: | + Identifier for the sequence. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1848960 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/3310 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: 126 + metadata: + tags: + - Onboarding + skip_add_search_widget: + type: event + description: | + User tapped on skip add search widget button in juno onboarding. + extra_keys: + element_type: + type: string + description: | + Type of element that was viewed. + action: + type: string + description: | + Type of action taken by the user. + sequence_position: + type: string + description: | + Position of the onboarding card in the onboarding flow. + sequence_id: + type: string + description: | + Identifier for the sequence. + bugs: + - https://bugzilla.mozilla.org/show_bug.cgi?id=1848960 + data_reviews: + - https://github.com/mozilla-mobile/firefox-android/pull/3310 + data_sensitivity: + - interaction + notification_emails: + - android-probes@mozilla.com + expires: 126 + metadata: + tags: + - Onboarding privacy_policy: type: event description: | diff --git a/app/onboarding.fml.yaml b/app/onboarding.fml.yaml index 1f004cb10..1922b43ce 100644 --- a/app/onboarding.fml.yaml +++ b/app/onboarding.fml.yaml @@ -23,6 +23,15 @@ features: primary-button-label: juno_onboarding_default_browser_positive_button secondary-button-label: juno_onboarding_default_browser_negative_button + add-search-widget: + card-type: add-search-widget + title: juno_onboarding_add_search_widget_title + body: juno_onboarding_add_search_widget_description + image-res: ic_onboarding_search_widget + ordering: 15 + primary-button-label: juno_onboarding_add_search_widget_positive_button + secondary-button-label: juno_onboarding_add_search_widget_negative_button + sync-sign-in: card-type: sync-sign-in title: juno_onboarding_sign_in_title @@ -108,3 +117,5 @@ enums: description: Allows user to sync with a Firefox account. notification-permission: description: Allows user to enable notification permission. + add-search-widget: + description: Allows user to add search widget to homescreen. diff --git a/app/src/androidTest/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt b/app/src/androidTest/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt index 4016c16ef..d74edfcd4 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt @@ -20,15 +20,27 @@ class JunoOnboardingMapperTest { HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true) @Test - fun showNotificationTrue_pagesToDisplay_returnsSortedListOfAllConvertedPages() { + fun showNotificationTrue_showAddWidgetFalse_pagesToDisplay_returnsSortedListOfAllConvertedPages_withoutAddWidgetPage() { val expected = listOf(defaultBrowserPageUiData, syncPageUiData, notificationPageUiData) - assertEquals(expected, unsortedAllKnownCardData.toPageUiData(true)) + assertEquals(expected, unsortedAllKnownCardData.toPageUiData(true, false)) } @Test - fun showNotificationFalse_pagesToDisplay_returnsSortedListOfConvertedPagesWithoutNotificationPage() { + fun showNotificationFalse_showAddWidgetFalse_pagesToDisplay_returnsSortedListOfConvertedPages_withoutNotificationPage_and_addWidgetPage() { val expected = listOf(defaultBrowserPageUiData, syncPageUiData) - assertEquals(expected, unsortedAllKnownCardData.toPageUiData(false)) + assertEquals(expected, unsortedAllKnownCardData.toPageUiData(false, false)) + } + + @Test + fun showNotificationFalse_showAddWidgetTrue_pagesToDisplay_returnsSortedListOfAllConvertedPages_withoutNotificationPage() { + val expected = listOf(defaultBrowserPageUiData, addSearchWidgetPageUiData, syncPageUiData) + assertEquals(expected, unsortedAllKnownCardData.toPageUiData(false, true)) + } + + @Test + fun showNotificationTrue_and_showAddWidgetTrue_pagesToDisplay_returnsSortedListOfConvertedPages() { + val expected = listOf(defaultBrowserPageUiData, addSearchWidgetPageUiData, syncPageUiData, notificationPageUiData) + assertEquals(expected, unsortedAllKnownCardData.toPageUiData(true, true)) } } @@ -41,6 +53,15 @@ private val defaultBrowserPageUiData = OnboardingPageUiData( primaryButtonLabel = "default browser primary button text", secondaryButtonLabel = "default browser secondary button text", ) +private val addSearchWidgetPageUiData = OnboardingPageUiData( + type = OnboardingPageUiData.Type.ADD_SEARCH_WIDGET, + imageRes = R.drawable.ic_onboarding_search_widget, + title = "add search widget title", + description = "add search widget body with link text", + linkText = "link text", + primaryButtonLabel = "add search widget primary button text", + secondaryButtonLabel = "add search widget secondary button text", +) private val syncPageUiData = OnboardingPageUiData( type = OnboardingPageUiData.Type.SYNC_SIGN_IN, imageRes = R.drawable.ic_onboarding_sync, @@ -68,6 +89,16 @@ private val defaultBrowserCardData = OnboardingCardData( secondaryButtonLabel = StringHolder(null, "default browser secondary button text"), ordering = 10, ) +private val addSearchWidgetCardData = OnboardingCardData( + cardType = OnboardingCardType.ADD_SEARCH_WIDGET, + imageRes = R.drawable.ic_onboarding_search_widget, + title = StringHolder(null, "add search widget title"), + body = StringHolder(null, "add search widget body with link text"), + linkText = StringHolder(null, "link text"), + primaryButtonLabel = StringHolder(null, "add search widget primary button text"), + secondaryButtonLabel = StringHolder(null, "add search widget secondary button text"), + ordering = 15, +) private val syncCardData = OnboardingCardData( cardType = OnboardingCardType.SYNC_SIGN_IN, imageRes = R.drawable.ic_onboarding_sync, @@ -91,4 +122,5 @@ private val unsortedAllKnownCardData = listOf( syncCardData, notificationCardData, defaultBrowserCardData, + addSearchWidgetCardData, ) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 302b5ed10..a2c21352f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -338,6 +338,13 @@ android:resource="@xml/search_widget_info" /> + + + + + + diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingFragment.kt b/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingFragment.kt index 640d82955..5f96d6005 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingFragment.kt @@ -5,7 +5,10 @@ package org.mozilla.fenix.onboarding import android.annotation.SuppressLint +import android.appwidget.AppWidgetManager +import android.content.ComponentName import android.content.Context +import android.content.IntentFilter import android.content.pm.ActivityInfo import android.os.Build import android.os.Bundle @@ -18,6 +21,7 @@ import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.LocalContext import androidx.core.app.NotificationManagerCompat import androidx.fragment.app.Fragment +import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.navigation.fragment.findNavController import mozilla.components.support.base.ext.areNotificationsEnabledSafe import org.mozilla.fenix.R @@ -34,14 +38,21 @@ import org.mozilla.fenix.onboarding.view.telemetrySequenceId import org.mozilla.fenix.onboarding.view.toPageUiData import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.theme.FirefoxTheme +import org.mozilla.gecko.search.SearchWidgetProvider /** * Fragment displaying the juno onboarding flow. */ class JunoOnboardingFragment : Fragment() { - private val pagesToDisplay by lazy { pagesToDisplay(shouldShowNotificationPage(requireContext())) } + private val pagesToDisplay by lazy { + pagesToDisplay( + canShowNotificationPage(requireContext()), + canShowAddWidgetCard(), + ) + } private val telemetryRecorder by lazy { JunoOnboardingTelemetryRecorder() } + private val pinAppWidgetReceiver = WidgetPinnedReceiver() @SuppressLint("SourceLockedOrientationActivity") override fun onCreate(savedInstanceState: Bundle?) { @@ -49,6 +60,9 @@ class JunoOnboardingFragment : Fragment() { if (isNotATablet()) { activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT } + val filter = IntentFilter(WidgetPinnedReceiver.ACTION) + LocalBroadcastManager.getInstance(requireContext()) + .registerReceiver(pinAppWidgetReceiver, filter) } @RequiresApi(Build.VERSION_CODES.TIRAMISU) @@ -74,6 +88,7 @@ class JunoOnboardingFragment : Fragment() { if (isNotATablet()) { activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED } + LocalBroadcastManager.getInstance(requireContext()).unregisterReceiver(pinAppWidgetReceiver) } @RequiresApi(Build.VERSION_CODES.TIRAMISU) @@ -141,6 +156,15 @@ class JunoOnboardingFragment : Fragment() { pagesToDisplay.sequencePosition(OnboardingPageUiData.Type.NOTIFICATION_PERMISSION), ) }, + onAddFirefoxWidgetClick = { + showAddSearchWidgetDialog() + }, + onSkipFirefoxWidgetClick = { + telemetryRecorder.onSkipAddWidgetClick( + pagesToDisplay.telemetrySequenceId(), + pagesToDisplay.sequencePosition(OnboardingPageUiData.Type.ADD_SEARCH_WIDGET), + ) + }, onFinish = { onFinish( sequenceId = pagesToDisplay.telemetrySequenceId(), @@ -157,6 +181,19 @@ class JunoOnboardingFragment : Fragment() { ) } + private fun showAddSearchWidgetDialog() { + // Requesting to pin app widget is only available for Android 8.0 and above + if (canShowAddWidgetCard()) { + val appWidgetManager = AppWidgetManager.getInstance(activity) + val searchWidgetProvider = + ComponentName(requireActivity(), SearchWidgetProvider::class.java) + if (appWidgetManager.isRequestPinAppWidgetSupported) { + val successCallback = WidgetPinnedReceiver.getPendingIntent(requireContext()) + appWidgetManager.requestPinAppWidget(searchWidgetProvider, null, successCallback) + } + } + } + private fun onFinish(sequenceId: String, sequencePosition: String) { requireComponents.fenixOnboarding.finish() findNavController().nav( @@ -169,12 +206,20 @@ class JunoOnboardingFragment : Fragment() { ) } - private fun shouldShowNotificationPage(context: Context) = + private fun canShowNotificationPage(context: Context) = !NotificationManagerCompat.from(context.applicationContext) .areNotificationsEnabledSafe() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU + private fun canShowAddWidgetCard() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O + private fun isNotATablet() = !resources.getBoolean(R.bool.tablet) - private fun pagesToDisplay(showNotificationPage: Boolean): List = - FxNimbus.features.junoOnboarding.value().cards.values.toPageUiData(showNotificationPage) + private fun pagesToDisplay( + showNotificationPage: Boolean, + showAddWidgetPage: Boolean, + ): List = + FxNimbus.features.junoOnboarding.value().cards.values.toPageUiData( + showNotificationPage, + showAddWidgetPage, + ) } diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingTelemetryRecorder.kt b/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingTelemetryRecorder.kt index c1b048e4f..c820a9df8 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingTelemetryRecorder.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/JunoOnboardingTelemetryRecorder.kt @@ -49,6 +49,17 @@ class JunoOnboardingTelemetryRecorder { ) } + OnboardingPageUiData.Type.ADD_SEARCH_WIDGET -> { + Onboarding.addSearchWidgetCard.record( + Onboarding.AddSearchWidgetCardExtra( + action = ACTION_IMPRESSION, + elementType = ET_ONBOARDING_CARD, + sequenceId = sequenceId, + sequencePosition = sequencePosition, + ), + ) + } + OnboardingPageUiData.Type.SYNC_SIGN_IN -> { Onboarding.signInCard.record( Onboarding.SignInCardExtra( @@ -121,6 +132,22 @@ class JunoOnboardingTelemetryRecorder { ) } + /** + * Records add search widget click event. + * @param sequenceId The identifier of the onboarding sequence shown to the user. + * @param sequencePosition The sequence position of the page for which the impression occurred. + */ + fun onAddSearchWidgetClick(sequenceId: String, sequencePosition: String) { + Onboarding.addSearchWidget.record( + Onboarding.AddSearchWidgetExtra( + action = ACTION_CLICK, + elementType = ET_PRIMARY_BUTTON, + sequenceId = sequenceId, + sequencePosition = sequencePosition, + ), + ) + } + /** * Records skip set to default click event. * @param sequenceId The identifier of the onboarding sequence shown to the user. @@ -153,6 +180,22 @@ class JunoOnboardingTelemetryRecorder { ) } + /** + * Records skip add widget click event. + * @param sequenceId The identifier of the onboarding sequence shown to the user. + * @param sequencePosition The sequence position of the page for which the impression occurred. + */ + fun onSkipAddWidgetClick(sequenceId: String, sequencePosition: String) { + Onboarding.skipAddSearchWidget.record( + Onboarding.SkipAddSearchWidgetExtra( + action = ACTION_CLICK, + elementType = ET_SECONDARY_BUTTON, + sequenceId = sequenceId, + sequencePosition = sequencePosition, + ), + ) + } + /** * Records skip notification permission click event. * @param sequenceId The identifier of the onboarding sequence shown to the user. diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/WidgetPinnedReceiver.kt b/app/src/main/java/org/mozilla/fenix/onboarding/WidgetPinnedReceiver.kt new file mode 100644 index 000000000..a036f1668 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/onboarding/WidgetPinnedReceiver.kt @@ -0,0 +1,83 @@ +/* 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.onboarding + +import android.app.PendingIntent +import android.appwidget.AppWidgetManager +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.localbroadcastmanager.content.LocalBroadcastManager +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import mozilla.components.support.utils.PendingIntentUtils +import org.mozilla.fenix.onboarding.view.JunoOnboardingScreen + +/** + * Receiver required to catch callback from Launcher when prompted + * to add search widget from the Juno Onboarding. + */ +class WidgetPinnedReceiver : BroadcastReceiver() { + + companion object { + const val ACTION = "org.mozilla.fenix.onboarding.WidgetPinnedReceiver.PIN_SEARCH_WIDGET_SUCCESS" + + /** + * Prepare success callback for when requesting to pin Search Widget. + */ + fun getPendingIntent(context: Context): PendingIntent { + val callbackIntent = Intent(context, WidgetPinnedReceiver::class.java) + val bundle = Bundle() + bundle.putInt(AppWidgetManager.EXTRA_APPWIDGET_ID, 1) + callbackIntent.putExtras(bundle) + return PendingIntent.getBroadcast( + context, + 0, + callbackIntent, + PendingIntentUtils.defaultFlags or PendingIntent.FLAG_UPDATE_CURRENT, + ) + } + } + + /** + * Object containing boolean that updates behavior of Add Search Widget + * card from [JunoOnboardingScreen]. + * - True if widget added successfully and app resumed from launcher add widget dialog. + * - False if dialog opened but widget was not added. + */ + object WidgetPinnedState { + private val _isPinned = MutableStateFlow(false) + val isPinned: StateFlow = _isPinned + + /** + * Update state when resumed to add search widget card + * and the widget was added successfully. + */ + fun widgetPinned() { + _isPinned.value = true + } + } + + override fun onReceive(context: Context?, intent: Intent?) { + if (context == null || intent == null) { + return + } else if (intent.action == ACTION) { + // Returned to fragment, go to next page and update button behavior. + WidgetPinnedState.widgetPinned() + } + + val widgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1) + + if (widgetId == -1) { + // No widget id received. + return + } else { + // Callback from system, widget pinned successfully, update compose now. + val updateIntent = Intent(ACTION) + LocalBroadcastManager.getInstance(context).sendBroadcast(updateIntent) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt index 5b3e4578b..b57d489d9 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt @@ -12,12 +12,21 @@ import org.mozilla.fenix.settings.SupportUtils /** * Returns a list of all the required Nimbus 'cards' that have been converted to [OnboardingPageUiData]. */ -internal fun Collection.toPageUiData(showNotificationPage: Boolean): List = +internal fun Collection.toPageUiData( + showNotificationPage: Boolean, + canShowAddWidgetPage: Boolean, +): List = filter { - if (it.cardType == OnboardingCardType.NOTIFICATION_PERMISSION) { - showNotificationPage - } else { - true + when (it.cardType) { + OnboardingCardType.NOTIFICATION_PERMISSION -> { + showNotificationPage + } + OnboardingCardType.ADD_SEARCH_WIDGET -> { + canShowAddWidgetPage + } + else -> { + true + } } }.sortedBy { it.ordering } .map { it.toPageUiData() } @@ -36,6 +45,7 @@ private fun OnboardingCardType.toPageUiDataType() = when (this) { OnboardingCardType.DEFAULT_BROWSER -> OnboardingPageUiData.Type.DEFAULT_BROWSER OnboardingCardType.SYNC_SIGN_IN -> OnboardingPageUiData.Type.SYNC_SIGN_IN OnboardingCardType.NOTIFICATION_PERMISSION -> OnboardingPageUiData.Type.NOTIFICATION_PERMISSION + OnboardingCardType.ADD_SEARCH_WIDGET -> OnboardingPageUiData.Type.ADD_SEARCH_WIDGET } /** @@ -52,6 +62,8 @@ internal fun mapToOnboardingPageState( onSignInSkipClick: () -> Unit, onNotificationPermissionButtonClick: () -> Unit, onNotificationPermissionSkipClick: () -> Unit, + onAddFirefoxWidgetClick: () -> Unit, + onAddFirefoxWidgetSkipClick: () -> Unit, ): OnboardingPageState = when (onboardingPageUiData.type) { OnboardingPageUiData.Type.DEFAULT_BROWSER -> createOnboardingPageState( onboardingPageUiData = onboardingPageUiData, @@ -60,6 +72,13 @@ internal fun mapToOnboardingPageState( onUrlClick = onPrivacyPolicyClick, ) + OnboardingPageUiData.Type.ADD_SEARCH_WIDGET -> createOnboardingPageState( + onboardingPageUiData = onboardingPageUiData, + onPositiveButtonClick = onAddFirefoxWidgetClick, + onNegativeButtonClick = onAddFirefoxWidgetSkipClick, + onUrlClick = onPrivacyPolicyClick, + ) + OnboardingPageUiData.Type.SYNC_SIGN_IN -> createOnboardingPageState( onboardingPageUiData = onboardingPageUiData, onPositiveButtonClick = onSignInButtonClick, diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt index fa86aabd9..a5a20a135 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingScreen.kt @@ -19,6 +19,8 @@ import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.State +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.snapshotFlow @@ -30,12 +32,15 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollSource import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import mozilla.components.lib.state.ext.observeAsComposableState import org.mozilla.fenix.R import org.mozilla.fenix.components.components import org.mozilla.fenix.compose.PagerIndicator import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.onboarding.JunoOnboardingTelemetryRecorder +import org.mozilla.fenix.onboarding.WidgetPinnedReceiver.WidgetPinnedState import org.mozilla.fenix.theme.FirefoxTheme /** @@ -50,11 +55,13 @@ import org.mozilla.fenix.theme.FirefoxTheme * @param onNotificationPermissionButtonClick Invoked when positive button on notification page is * clicked. * @param onSkipNotificationClick Invoked when negative button on notification page is clicked. + * @param onAddFirefoxWidgetClick Invoked when positive button on add search widget page is clicked. + * @param onSkipFirefoxWidgetClick Invoked when negative button on add search widget page is clicked. * @param onFinish Invoked when the onboarding is completed. * @param onImpression Invoked when a page in the pager is displayed. */ @Composable -@Suppress("LongParameterList") +@Suppress("LongParameterList", "LongMethod") fun JunoOnboardingScreen( pagesToDisplay: List, onMakeFirefoxDefaultClick: () -> Unit, @@ -64,6 +71,8 @@ fun JunoOnboardingScreen( onSkipSignInClick: () -> Unit, onNotificationPermissionButtonClick: () -> Unit, onSkipNotificationClick: () -> Unit, + onAddFirefoxWidgetClick: () -> Unit, + onSkipFirefoxWidgetClick: () -> Unit, onFinish: (pageType: OnboardingPageUiData) -> Unit, onImpression: (pageType: OnboardingPageUiData) -> Unit, ) { @@ -71,6 +80,9 @@ fun JunoOnboardingScreen( val pagerState = rememberPagerState(pageCount = { pagesToDisplay.size }) val isSignedIn: State = components.backgroundServices.syncStore .observeAsComposableState { it.account != null } + val telemetryRecorder by lazy { JunoOnboardingTelemetryRecorder() } + val widgetPinnedFlow: StateFlow = WidgetPinnedState.isPinned + val isWidgetPinnedState by widgetPinnedFlow.collectAsState() BackHandler(enabled = pagerState.currentPage > 0) { coroutineScope.launch { @@ -100,6 +112,16 @@ fun JunoOnboardingScreen( } } + LaunchedEffect(isWidgetPinnedState) { + if (isWidgetPinnedState) { + scrollToNextPageOrDismiss() + telemetryRecorder.onAddSearchWidgetClick( + pagesToDisplay.telemetrySequenceId(), + pagesToDisplay.sequencePosition(OnboardingPageUiData.Type.ADD_SEARCH_WIDGET), + ) + } + } + JunoOnboardingContent( pagesToDisplay = pagesToDisplay, pagerState = pagerState, @@ -130,6 +152,17 @@ fun JunoOnboardingScreen( scrollToNextPageOrDismiss() onSkipNotificationClick() }, + onAddFirefoxWidgetClick = { + if (isWidgetPinnedState) { + scrollToNextPageOrDismiss() + } else { + onAddFirefoxWidgetClick() + } + }, + onSkipFirefoxWidgetClick = { + scrollToNextPageOrDismiss() + onSkipFirefoxWidgetClick() + }, ) } @@ -145,6 +178,8 @@ private fun JunoOnboardingContent( onSignInSkipClick: () -> Unit, onNotificationPermissionButtonClick: () -> Unit, onNotificationPermissionSkipClick: () -> Unit, + onAddFirefoxWidgetClick: () -> Unit, + onSkipFirefoxWidgetClick: () -> Unit, ) { val nestedScrollConnection = remember { DisableForwardSwipeNestedScrollConnection(pagerState) } @@ -171,6 +206,8 @@ private fun JunoOnboardingContent( onSignInSkipClick = onSignInSkipClick, onNotificationPermissionButtonClick = onNotificationPermissionButtonClick, onNotificationPermissionSkipClick = onNotificationPermissionSkipClick, + onAddFirefoxWidgetClick = onAddFirefoxWidgetClick, + onAddFirefoxWidgetSkipClick = onSkipFirefoxWidgetClick, ) OnboardingPage(pageState = onboardingPageState) } @@ -225,6 +262,8 @@ private fun JunoOnboardingScreenPreview() { onSignInSkipClick = {}, onNotificationPermissionButtonClick = {}, onNotificationPermissionSkipClick = {}, + onAddFirefoxWidgetClick = {}, + onSkipFirefoxWidgetClick = {}, ) } } diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPageUiData.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPageUiData.kt index 9c0b357fc..10dc40e03 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPageUiData.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/view/OnboardingPageUiData.kt @@ -32,6 +32,9 @@ data class OnboardingPageUiData( SYNC_SIGN_IN( telemetryId = "sync", ), + ADD_SEARCH_WIDGET( + telemetryId = "search_widget", + ), NOTIFICATION_PERMISSION( telemetryId = "notification", ), diff --git a/app/src/main/res/drawable/ic_onboarding_search_widget.xml b/app/src/main/res/drawable/ic_onboarding_search_widget.xml new file mode 100644 index 000000000..75dc5ee5e --- /dev/null +++ b/app/src/main/res/drawable/ic_onboarding_search_widget.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 12da7ea0a..ec9751750 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -350,6 +350,17 @@ Turn on notifications Not now + + Try the Firefox search widget + + With Firefox on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. + + Add Firefox widget + + Not now diff --git a/app/src/test/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt b/app/src/test/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt index ff2278636..a48b4edd3 100644 --- a/app/src/test/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt +++ b/app/src/test/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapperTest.kt @@ -45,6 +45,8 @@ class JunoOnboardingMapperTest { onSignInSkipClick = {}, onNotificationPermissionButtonClick = {}, onNotificationPermissionSkipClick = {}, + onAddFirefoxWidgetClick = {}, + onAddFirefoxWidgetSkipClick = {}, ) assertEquals(expected, actual) @@ -78,6 +80,8 @@ class JunoOnboardingMapperTest { onSignInSkipClick = unitLambda, onNotificationPermissionButtonClick = {}, onNotificationPermissionSkipClick = {}, + onAddFirefoxWidgetClick = {}, + onAddFirefoxWidgetSkipClick = {}, ) assertEquals(expected, actual) @@ -111,6 +115,48 @@ class JunoOnboardingMapperTest { onSignInSkipClick = {}, onNotificationPermissionButtonClick = unitLambda, onNotificationPermissionSkipClick = unitLambda, + onAddFirefoxWidgetClick = {}, + onAddFirefoxWidgetSkipClick = {}, + ) + + assertEquals(expected, actual) + } + + @Test + fun `GIVEN an add search widget page WHEN mapToOnboardingPageState is called THEN creates the expected OnboardingPageState`() { + val expected = OnboardingPageState( + imageRes = R.drawable.ic_onboarding_search_widget, + title = "add search widget title", + description = "add search widget body with link text", + linkTextState = LinkTextState( + text = "link text", + url = SupportUtils.getMozillaPageUrl(SupportUtils.MozillaPage.PRIVATE_NOTICE), + onClick = stringLambda, + ), + primaryButton = Action("add search widget primary button text", unitLambda), + secondaryButton = Action("add search widget secondary button text", unitLambda), + ) + + val onboardingPageUiData = OnboardingPageUiData( + type = OnboardingPageUiData.Type.ADD_SEARCH_WIDGET, + imageRes = R.drawable.ic_onboarding_search_widget, + title = "add search widget title", + description = "add search widget body with link text", + linkText = "link text", + primaryButtonLabel = "add search widget primary button text", + secondaryButtonLabel = "add search widget secondary button text", + ) + val actual = mapToOnboardingPageState( + onboardingPageUiData = onboardingPageUiData, + onMakeFirefoxDefaultClick = {}, + onMakeFirefoxDefaultSkipClick = {}, + onPrivacyPolicyClick = stringLambda, + onSignInButtonClick = {}, + onSignInSkipClick = {}, + onNotificationPermissionButtonClick = {}, + onNotificationPermissionSkipClick = {}, + onAddFirefoxWidgetClick = unitLambda, + onAddFirefoxWidgetSkipClick = unitLambda, ) assertEquals(expected, actual) From b6561d54e1c4c08e89e19a361e2215488764e56c Mon Sep 17 00:00:00 2001 From: DreVla Date: Mon, 28 Aug 2023 13:16:25 +0300 Subject: [PATCH 098/209] Bug 1845747 - Allow enabling/disabling of onboarding cards As there might be situations where experiments require disabling certain juno onboarding cards and enabling others, a new flag has been added to the `OnboardingCardData` which gives more freedom and options to the experimenter. This flag is by default set to true. --- app/onboarding.fml.yaml | 5 +++++ .../mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt | 8 ++++---- app/src/main/res/values/strings.xml | 6 +++--- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/onboarding.fml.yaml b/app/onboarding.fml.yaml index 1922b43ce..4382e17dc 100644 --- a/app/onboarding.fml.yaml +++ b/app/onboarding.fml.yaml @@ -25,6 +25,7 @@ features: add-search-widget: card-type: add-search-widget + enabled: false title: juno_onboarding_add_search_widget_title body: juno_onboarding_add_search_widget_description image-res: ic_onboarding_search_widget @@ -68,6 +69,10 @@ objects: description: The type of the card. # This should never be defaulted. default: default-browser + enabled: + type: Boolean + description: If true, this card is shown to the user. + default: true title: type: Text description: The title text displayed to the user. diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt index b57d489d9..8d8a5e4a6 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/view/JunoOnboardingMapper.kt @@ -14,18 +14,18 @@ import org.mozilla.fenix.settings.SupportUtils */ internal fun Collection.toPageUiData( showNotificationPage: Boolean, - canShowAddWidgetPage: Boolean, + showAddWidgetPage: Boolean, ): List = filter { when (it.cardType) { OnboardingCardType.NOTIFICATION_PERMISSION -> { - showNotificationPage + it.enabled && showNotificationPage } OnboardingCardType.ADD_SEARCH_WIDGET -> { - canShowAddWidgetPage + it.enabled && showAddWidgetPage } else -> { - true + it.enabled } } }.sortedBy { it.ordering } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ec9751750..5c7976fce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -350,13 +350,13 @@ Turn on notifications Not now - Try the Firefox search widget - With Firefox on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. - Add Firefox widget From 3cb357045893f51fba53a99ad7425600c9e0ae78 Mon Sep 17 00:00:00 2001 From: Jackie Johnson <107960801+jjSDET@users.noreply.github.com> Date: Tue, 12 Sep 2023 12:24:30 -0500 Subject: [PATCH 099/209] Bug 1852803 - Disable verifyCookieBannerReductionTest --- .../java/org/mozilla/fenix/ui/CookieBannerReductionTest.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerReductionTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerReductionTest.kt index 2f8f8f453..5dbf3e417 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerReductionTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/CookieBannerReductionTest.kt @@ -5,6 +5,7 @@ package org.mozilla.fenix.ui import androidx.core.net.toUri +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest @@ -20,6 +21,7 @@ class CookieBannerReductionTest { val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true) // Bug causing flakiness https://bugzilla.mozilla.org/show_bug.cgi?id=1807440 + @Ignore("Disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1852803") @SmokeTest @Test fun verifyCookieBannerReductionTest() { From 8ce2736c51d13a92e1a07ac3621e84853009a90f Mon Sep 17 00:00:00 2001 From: jackyzy823 Date: Tue, 25 Jul 2023 21:06:35 +0800 Subject: [PATCH 100/209] Bug 1845292 - Remember scroll position in BookmarkView --- .../java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt index a2d2f5435..3ea3e0f37 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkView.kt @@ -8,6 +8,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.view.isVisible import androidx.navigation.NavController +import androidx.recyclerview.widget.RecyclerView import mozilla.appservices.places.BookmarkRoot import mozilla.components.concept.storage.BookmarkNode import mozilla.components.support.base.feature.UserInteractionHandler @@ -137,6 +138,8 @@ class BookmarkView( private val bookmarkAdapter = BookmarkAdapter(binding.bookmarksEmptyView, interactor) init { + bookmarkAdapter.stateRestorationPolicy = RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY + binding.bookmarkList.apply { adapter = bookmarkAdapter } From 55da305c3fcb0c2ed018ec1e6479ae8ca290437c Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Fri, 25 Aug 2023 18:25:49 +0300 Subject: [PATCH 101/209] Bug 1840090 - Add content strings for shopping experience --- .../java/org/mozilla/fenix/compose/String.kt | 31 ++++ .../fenix/shopping/ui/ProductAnalysis.kt | 36 +++-- .../ReviewQualityCheckContextualOnboarding.kt | 55 ++++++- .../shopping/ui/ReviewQualityCheckScaffold.kt | 2 +- app/src/main/res/values/static_strings.xml | 51 +----- app/src/main/res/values/strings.xml | 149 ++++++++++++++++++ 6 files changed, 258 insertions(+), 66 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/compose/String.kt diff --git a/app/src/main/java/org/mozilla/fenix/compose/String.kt b/app/src/main/java/org/mozilla/fenix/compose/String.kt new file mode 100644 index 000000000..a62fd048f --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/compose/String.kt @@ -0,0 +1,31 @@ +/* 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.compose + +import android.graphics.Typeface +import android.text.style.StyleSpan +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.core.text.HtmlCompat +import androidx.core.text.getSpans + +/** + * Method used to transform HTML strings containing bold style to [AnnotatedString] to be used inside composables. + */ +fun parseHtml(html: String): AnnotatedString { + val text = HtmlCompat.fromHtml(html, HtmlCompat.FROM_HTML_MODE_COMPACT) + return buildAnnotatedString { + append(text) + for (span in text.getSpans()) { + if (span.style == Typeface.BOLD) { + val start = text.getSpanStart(span) + val end = text.getSpanEnd(span) + addStyle(SpanStyle(fontWeight = FontWeight.Bold), start, end) + } + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt index 9bc0cf2d9..a6682d136 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt @@ -39,6 +39,7 @@ import org.mozilla.fenix.compose.ClickableSubstringLink import org.mozilla.fenix.compose.SwitchWithLabel import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.button.SecondaryButton +import org.mozilla.fenix.compose.parseHtml import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.shopping.store.ReviewQualityCheckState import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.HighlightType @@ -89,17 +90,10 @@ fun ProductAnalysis( highlights = productAnalysis.highlights, modifier = Modifier.fillMaxWidth(), ) - - Text( - text = stringResource(R.string.review_quality_check_highlights_caption), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.caption, - modifier = Modifier.padding(horizontal = 16.dp), - ) } ReviewQualityCheckExpandableCard( - title = stringResource(id = R.string.review_quality_check_info_title), + title = stringResource(id = R.string.review_quality_check_explanation_title), modifier = Modifier.fillMaxWidth(), ) { ReviewQualityInfo( @@ -332,19 +326,27 @@ private fun ReviewQualityInfo( modifier = modifier, verticalArrangement = Arrangement.spacedBy(24.dp), ) { + val adjustedGradingText = + stringResource(id = R.string.review_quality_check_explanation_body_adjusted_grading) // Any and all text formatting (bullets, inline substring bolding, etc.) will be handled as // follow-up when the copy is finalized. // Bug 1848219 Text( - text = stringResource(id = R.string.review_quality_check_info_overview), + text = stringResource( + id = R.string.review_quality_check_explanation_body_reliability, + stringResource(R.string.shopping_product_name), + ), color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.body2, ) - val link = stringResource(R.string.review_quality_check_info_learn_more_link) + val link = stringResource( + id = R.string.review_quality_check_info_learn_more_link, + stringResource(R.string.shopping_product_name), + ) val text = stringResource(R.string.review_quality_check_info_learn_more, link) - val linkStartIndex = text.indexOf(link) val context = LocalContext.current + val linkStartIndex = text.indexOf(link) val linkEndIndex = linkStartIndex + link.length ClickableSubstringLink( text = text, @@ -362,12 +364,6 @@ private fun ReviewQualityInfo( }, ) - Text( - text = stringResource(id = R.string.review_quality_check_info_review_grade_header), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.body2, - ) - ReviewGradingScaleInfo( reviewGrades = listOf( ReviewQualityCheckState.Grade.A, @@ -391,6 +387,12 @@ private fun ReviewQualityInfo( info = stringResource(id = R.string.review_quality_check_info_grade_info_DF), modifier = Modifier.fillMaxWidth(), ) + + Text( + text = remember(adjustedGradingText) { parseHtml(adjustedGradingText) }, + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.body2, + ) } } diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt index f3b349ce3..c92e804d3 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckContextualOnboarding.kt @@ -13,6 +13,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import org.mozilla.fenix.R @@ -44,7 +47,21 @@ fun ColumnScope.ReviewQualityCheckContextualOnboarding( Spacer(modifier = Modifier.height(16.dp)) Text( - text = stringResource(R.string.review_quality_check_contextual_onboarding_description), + text = createDescriptionString(), + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.body2, + textAlign = TextAlign.Center, + modifier = Modifier.align(Alignment.CenterHorizontally), + ) + + Spacer(modifier = Modifier.height(12.dp)) + + Text( + text = stringResource( + id = R.string.review_quality_check_contextual_onboarding_learn_more, + stringResource(id = R.string.shopping_product_name), + stringResource(id = R.string.review_quality_check_contextual_onboarding_learn_more_link), + ), color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.body2, textAlign = TextAlign.Center, @@ -70,10 +87,44 @@ fun ColumnScope.ReviewQualityCheckContextualOnboarding( Spacer(modifier = Modifier.height(8.dp)) Text( - text = stringResource(R.string.review_quality_check_contextual_onboarding_caption), + text = stringResource( + R.string.review_quality_check_contextual_onboarding_caption, + stringResource(R.string.shopping_product_name), + stringResource(id = R.string.review_quality_check_contextual_onboarding_privacy_policy), + stringResource(id = R.string.review_quality_check_contextual_onboarding_terms_use), + ), color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.caption, textAlign = TextAlign.Center, modifier = Modifier.align(Alignment.CenterHorizontally), ) } + +@Composable +private fun createDescriptionString( + retailers: List = listOf( + R.string.review_quality_check_retailer_name_amazon, + R.string.review_quality_check_retailer_name_bestbuy, + R.string.review_quality_check_retailer_name_walmart, + ), +) = buildAnnotatedString { + val description = stringResource( + id = R.string.review_quality_check_contextual_onboarding_description, + stringResource(retailers[0]), + stringResource(R.string.app_name), + stringResource(retailers[1]), + stringResource(retailers[2]), + ) + append(description) + + retailers.forEach { + val retailer = stringResource(id = it) + val start = description.indexOf(retailer) + + addStyle( + style = SpanStyle(fontWeight = FontWeight.Bold), + start = start, + end = start + retailer.length, + ) + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt index e0614923a..b311b5fde 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckScaffold.kt @@ -94,7 +94,7 @@ private fun Header() { Spacer(modifier = Modifier.width(10.dp)) Text( - text = stringResource(R.string.review_quality_check), + text = stringResource(R.string.review_quality_check_feature_name), color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.headline6, ) diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 5daecf21d..113c254c3 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -26,6 +26,8 @@ AS Pocket + + Fakespot @@ -109,50 +111,7 @@ URL copied to clipboard successfully - - - Review quality check - - Close review quality check - Review quality check - Reliable reviews - Only some reliable reviews - Unreliable reviews - %1$s out of 5 stars - How reliable are the reviews? - Shop based on real reviews - Review quality check is a new feature from Firefox. It helps you understand how reliable the reviews are for a product, when you shop on Amazon, Best Buy, and Walmart. \n\nAnd, it’s all powered by AI technology from Fakespot, a popular browser extension that’s now built in. - Yes, check review quality - Not now - Analysis powered by Fakespot.com. Learn more. - Settings - Show products recommended by Firefox - Turn off review quality check - Adjusted rating - Unreliable reviews removed - Summarized using information provided by Fakespot.com. View full analysis - Highlights from recent reviews - Show less - Show more - Quality - Price - Shipping - Packaging and appearance - Competitiveness - How reliable are the reviews? - Firefox uses AI technology from Fakespot to analyze the quality and reliability of product reviews. This is only provided to help you assess review quality, not product quality.\n - \n - We assign each product’s reviews a letter grade from A to F.\n - \n - A higher grade means we believe the reviews are likely from real customers who left honest, unbiased reviews. \n - A lower grade means we believe the reviews are likely from paid or biased reviewers. - \n\nThe adjusted rating is based on review quality, with unreliable reviews removed. - \n\nHelpful snippets are pulled from recent Amazon reviews (from the last 80 days), that we believe to be reliable. - Learn more about %s - how Fakespot determines review quality. - Review grading scale: - We believe the reviews to be reliable - We believe there’s a mix of reliable and unreliable reviews - We believe the reviews are unreliable - + Amazon + Best Buy + Walmart diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5c7976fce..341b343d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2101,10 +2101,159 @@ Go to settings + + + Review checker + + Reliable reviews + + Mix of reliable and unreliable reviews + + Unreliable reviews + + How reliable are these reviews? + + Adjusted rating + + Unreliable reviews removed + + Highlights from recent reviews + + How we determine review quality + + We use AI technology from %s by Mozilla to check the reliability of product reviews. This will only help you assess review quality, not product quality. + + letter grade from A to F.]]> + + Reliable reviews. We believe the reviews are likely from real customers who left honest, unbiased reviews. + + We believe there’s a mix of reliable and unreliable reviews. + + Unreliable reviews. We believe the reviews are likely fake or from biased reviewers. + + adjusted rating is based only on reviews we believe to be reliable.]]> + + Highlights are from %s reviews within the last 80 days that we believe to be reliable.]]> + + Learn more about %s. + + how %s by Mozilla determines review quality + + Settings + + Show ads in review checker + + You’ll see occasional ads for relevant products. All ads must meet our review quality standards. %s + + Learn more + + Turn off review checker + + More to consider + + Ad by %s + + Review checker is powered by %s. + + %s by Mozilla + + New info to check + + Check now + + Not enough reviews yet + + When this product has more reviews, we’ll be able to check their quality. + + Product is not available + + If you see this product is back in stock, report it and we’ll work on checking the reviews. + + Report this product is back in stock + + Checking review quality + + Checking review quality + + This could take about 60 seconds. + + Thanks for reporting! + + We should have info about this product’s reviews within 24 hours. Please check back. + + We can’t check these reviews + + Unfortunately, we can’t check the review quality for certain types of products. For example, gift cards and streaming video, music, and games. + + Info coming soon + + We should have info about this product’s reviews within 24 hours. Please check back. + + Analysis is up to date + + Got it + + No info available right now + + We’re working to resolve the issue. Please check back soon. + + No network connection + + Check your network connection and then try reloading the page. + + No info about these reviews yet + + To know whether this product’s reviews are reliable, check the review quality. It only takes about 60 seconds. + + Check review quality + + Try our trusted guide to product reviews + + See how reliable product reviews are on %1$s before you buy. Review checker, an experimental feature from %2$s, is built right into the browser. It works on %3$s and %4$s, too. + + Using the power of %1$s by Mozilla, we help you avoid biased and inauthentic reviews. Our AI model is always improving to protect you as you shop. %2$s + + Learn more + + By selecting “Yes, try it” you agree to %1$s by Mozilla’s %2$s and %3$s. + + privacy policy + + terms of use + + Yes, try it + + Not now Find out if you can trust this product’s reviews — before you buy. + + Try review checker Are these reviews reliable? Check now to see an adjusted rating. + + Open review checker + + Beta + + Open Review quality check + + Close review quality check + + %1$s out of 5 stars + + Show less + + Show more + + Quality + + Price + + Shipping + + Packaging and appearance + + Competitiveness From a272a0d585d70db2e8db6bd6193e130bf8bf52d2 Mon Sep 17 00:00:00 2001 From: Olivia Hall Date: Tue, 12 Sep 2023 10:36:43 -0400 Subject: [PATCH 102/209] Bug 1851691 - FeatureFlag and Debug Preferences for Translations This patch adds a feature flag of `translations` and a debug preference of `pref_key_enable_translations` for developing translations. Currently, the feature flag guards the option to enable translations and is set to debug channels. These options will slowly adjust for wider audiences as development progresses. --- app/src/main/java/org/mozilla/fenix/FeatureFlags.kt | 6 ++++++ .../org/mozilla/fenix/settings/SecretSettingsFragment.kt | 7 +++++++ app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 8 ++++++++ app/src/main/res/values/preference_keys.xml | 1 + app/src/main/res/values/static_strings.xml | 2 ++ app/src/main/res/xml/secret_settings_preferences.xml | 5 +++++ 6 files changed, 29 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index d3d63c17b..1bcd42c5b 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -67,4 +67,10 @@ object FeatureFlags { * Enables the lib-state HistoryFragment refactor */ val historyFragmentLibStateRefactor = Config.channel.isNightlyOrDebug + + /** + * Allows users to enable translations. + * Preference to fully enable translations is pref_key_enable_translations. + */ + val translations = Config.channel.isDebug } diff --git a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt index 635efce5d..a1753f7a7 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SecretSettingsFragment.kt @@ -12,6 +12,7 @@ import androidx.preference.PreferenceFragmentCompat import androidx.preference.SwitchPreference import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.Config +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav @@ -64,6 +65,12 @@ class SecretSettingsFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } + requirePreference(R.string.pref_key_enable_translations).apply { + isVisible = FeatureFlags.translations + isChecked = context.settings().enableTranslations + onPreferenceChangeListener = SharedPreferenceUpdater() + } + // for performance reasons, this is only available in Nightly or Debug builds requirePreference(R.string.pref_key_custom_glean_server_url).apply { isVisible = Config.channel.isNightlyOrDebug && BuildConfig.GLEAN_CUSTOM_URL.isNullOrEmpty() diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index ee9fcdf89..cb4fed330 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -1814,6 +1814,14 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = FxNimbus.features.shoppingExperience.value().enabled, ) + /** + * Indicates if Firefox translations are enabled. + */ + var enableTranslations by booleanPreference( + key = appContext.getPreferenceKey(R.string.pref_key_enable_translations), + default = false, + ) + /** * Adjust Activated User sent */ diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 803477161..cf367c7cb 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -352,6 +352,7 @@ pref_key_custom_sponsored_stories_city pref_key_enable_compose_top_sites pref_key_enable_shopping_experience + pref_key_enable_translations pref_key_growth_set_as_default diff --git a/app/src/main/res/values/static_strings.xml b/app/src/main/res/values/static_strings.xml index 113c254c3..dd89e6b8a 100644 --- a/app/src/main/res/values/static_strings.xml +++ b/app/src/main/res/values/static_strings.xml @@ -68,6 +68,8 @@ Enable Compose Top Sites Enable Shopping Experience + + Enable Firefox Translations Make inactive diff --git a/app/src/main/res/xml/secret_settings_preferences.xml b/app/src/main/res/xml/secret_settings_preferences.xml index 4a86711d0..3c529d2bc 100644 --- a/app/src/main/res/xml/secret_settings_preferences.xml +++ b/app/src/main/res/xml/secret_settings_preferences.xml @@ -30,6 +30,11 @@ android:key="@string/pref_key_enable_shopping_experience" android:title="@string/preferences_debug_settings_shopping_experience" app:iconSpaceReserved="false" /> + Date: Wed, 13 Sep 2023 00:03:10 +0000 Subject: [PATCH 103/209] Import translations from android-l10n --- app/src/main/res/values-da/strings.xml | 26 ++++++++++++++++++++++---- app/src/main/res/values-fr/strings.xml | 14 ++++++++++++-- app/src/main/res/values-gn/strings.xml | 18 +++++++++--------- 3 files changed, 43 insertions(+), 15 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 003949214..69b21db21 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -375,6 +375,8 @@ Standard-søgetjeneste Søgning + + Søgetjenester Adressefelt @@ -632,6 +634,16 @@ Tilføjelsen er allerede installeret + + + Tilføjelser er midlertidigt deaktiveret + + En eller flere tilføjelser holdt op med at virke, hvilket gjorde dit system ustabilt. %1$s prøvede uden held at genstarte tilføjelsen/tilføjelserne.\n\nTilføjelser bliver ikke genstartet under den nuværende session.\n\nFjernelse eller deaktivering af tilføjelser kan løse dette problem. + + Prøv at genstarte tilføjelser + + Fortsæt med tilføjelser deaktiveret + Håndter konto @@ -1347,12 +1359,16 @@ %d faneblade - Browserhistorik og webstedsdata + Browserhistorik og webstedsdata + + Browserhistorik %d adresser - Cookies + Cookies + + Cookies og websteds-data Du vil blive logget ud fra de fleste websteder @@ -1894,7 +1910,7 @@ URL til brug for søgning - Erstat forespørgslen med “%s”, Eksempel: \n https://www.google.com/search?q=%s + Erstat forespørgslen med "%s”. Eksempel:\nhttps://www.google.com/search?q=%s Detaljer om tilpasset søgetjeneste @@ -1904,7 +1920,9 @@ URL til søgeforslags-API - Erstat forespørgslen med “%s”. Eksempel:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Erstat forespørgslen med "%s". Eksempel:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + + Erstat forespørgslen med "%s". Eksempel:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Gem diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ec088f4d1..60291eac4 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -640,6 +640,16 @@ Ce module complémentaire est déjà installé + + + Modules complémentaires temporairement désactivés + + Un module complémentaire, ou plusieurs, a cessé de fonctionner entraînant l’instabilité de votre système. %1$s a tenté de le (ou les) redémarrer sans succès.\n\nCes modules complémentaires ne seront pas redémarrés pendant la session actuelle.\n\nSupprimer ou désactiver les modules complémentaires peut résoudre le problème. + + Essayer de redémarrer les modules + + Continuer avec les modules désactivés + Gérer le compte @@ -1387,14 +1397,14 @@ %d onglets - Historique de navigation et données de sites + Historique de navigation et données de sites Historique de navigation %d adresses web - Cookies + Cookies Cookies et données de sites diff --git a/app/src/main/res/values-gn/strings.xml b/app/src/main/res/values-gn/strings.xml index 2a69974d3..7c0ace108 100644 --- a/app/src/main/res/values-gn/strings.xml +++ b/app/src/main/res/values-gn/strings.xml @@ -230,7 +230,7 @@ Ñe’ẽ poravopyre - Eipuru mba’e’oka ñe’ẽ + Eiporu mba’e’oka ñe’ẽ Eheka ñe’ẽ @@ -296,7 +296,7 @@ Marandu’i ne pytyvõta ejapovéta %s ndive - Embojuehe tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre, ehendu ñemoñe’ẽ mba’éichapa eipuruporãta %s rekorosã ñemigua ha ambue. + Embojuehe tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre, ehendu ñemoñe’ẽ mba’éichapa eiporuporãta %s rekorosã ñemigua ha ambue. Ku’ejey @@ -340,10 +340,10 @@ Marandu’i ne pytyvõta ejapove hag̃ua Firefox ndive - Emondo tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre ha ehecháta ñemoñe’ẽ eipuru porã hag̃ua %s. + Emondo tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre ha ehecháta ñemoñe’ẽ eiporu porã hag̃ua %s. - Emondo tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre ha ehecháta ñemoñe’ẽ eipuru porã hag̃ua Firefox. + Emondo tendayke mba’e’oka pa’ũme, eñangareko ñemboguejýre ha ehecháta ñemoñe’ẽ eiporu porã hag̃ua Firefox. Emyandy marandu’i @@ -1507,7 +1507,7 @@ Eiporavo ne téma - Eipuru’ive batería ha emombytu’u nde resa iñypytũvévape. + Eiporu’ive batería ha emombytu’u nde resa iñypytũvévape. ijeheguietéva @@ -1534,7 +1534,7 @@ Eñepyrũ tembiapo ne ra’ãngamýi ndive - Eipuru ñandutiveve + Eiporu ñandutiveve Emoheñói embojuehe hag̃ua Firefox mba’e’oka ndive.]]> @@ -1721,7 +1721,7 @@ Emyenyhẽjey %1$s-pe - Emoĩmba ha eñongatu poruhára réra ha ñe’ẽñemi ñanduti rendápe eipuru aja %1$s. + Emoĩmba ha eñongatu poruhára réra ha ñe’ẽñemi ñanduti rendápe eiporu aja %1$s. Emyanyhẽjey ambue apps-pe @@ -1885,7 +1885,7 @@ Embojuruja ne mba’e’oka - Embojuruja eipuru hag̃ua kuatia’atã ñemurã marandu mbyatypyre + Embojuruja eiporu hag̃ua kuatia’atã ñemurã marandu mbyatypyre Embojuaju kundaharape @@ -1961,7 +1961,7 @@ Jehekaha juajuha eipurútava - URL eipurukuaáva eheka hag̃ua + URL eiporukuaáva eheka hag̃ua Emoambue porandu “%s” ndive. Techapyrã:https://www.google.com/search?q=%s From e2a0ee65be7b60f884628f26e9f13a3f77083379 Mon Sep 17 00:00:00 2001 From: Alexandru2909 Date: Tue, 12 Sep 2023 10:28:25 +0300 Subject: [PATCH 104/209] Bug 1852623 - Fix list tab reordering animation when dragging first element --- .../tabstray/browser/compose/ReorderableList.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt index dd48559e4..de8557050 100644 --- a/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt +++ b/app/src/main/java/org/mozilla/fenix/tabstray/browser/compose/ReorderableList.kt @@ -32,6 +32,7 @@ import androidx.compose.ui.platform.LocalViewConfiguration import androidx.compose.ui.zIndex import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.launch +import kotlin.math.abs /** * Remember the reordering state for reordering list items. @@ -157,7 +158,7 @@ class ListReorderState internal constructor( } val draggingItem = draggingItemLayoutInfo ?: return - if (!moved && draggingItemCumulatedOffset > touchSlop) { + if (!moved && abs(draggingItemCumulatedOffset) > touchSlop) { onExitLongPress() } val startOffset = draggingItem.offset + draggingItemOffset @@ -169,12 +170,16 @@ class ListReorderState internal constructor( } if (targetItem != null && targetItem.key !in ignoredItems) { - if (draggingItem.index == listState.firstVisibleItemIndex) { + if (draggingItem.index == listState.firstVisibleItemIndex || + targetItem.index == listState.firstVisibleItemIndex + ) { scope.launch { - listState.scrollBy(-draggingItem.size.toFloat()) + onMove.invoke(draggingItem, targetItem) + listState.scrollBy(draggingItem.size.toFloat()) } + } else { + onMove.invoke(draggingItem, targetItem) } - onMove.invoke(draggingItem, targetItem) } else { val overscroll = when { draggingItemCumulatedOffset > 0 -> From d3ce9b083f313f52ca366daa49b408a1d62f12aa Mon Sep 17 00:00:00 2001 From: rahulsainani Date: Tue, 12 Sep 2023 14:05:04 +0200 Subject: [PATCH 105/209] Bug 1852748 - Add quotes around each highlight snippet --- .../shopping/middleware/ProductAnalysisMapper.kt | 5 ++++- .../middleware/ProductAnalysisMapperTest.kt | 16 ++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapper.kt b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapper.kt index c7dc5c026..2cf93f315 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapper.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapper.kt @@ -67,7 +67,7 @@ private fun Highlight.highlightsForType(highlightType: HighlightType) = HighlightType.SHIPPING -> shipping HighlightType.PACKAGING_AND_APPEARANCE -> appearance HighlightType.COMPETITIVENESS -> competitiveness - } + }?.map { it.surroundWithQuotes() } /** * GeckoView sets 0.0 as default instead of null for adjusted rating. This maps 0.0 to null making @@ -80,3 +80,6 @@ private fun Double.toFloatOrNull(): Float? = } else { toFloat() } + +private fun String.surroundWithQuotes(): String = + "\"$this\"" diff --git a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapperTest.kt b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapperTest.kt index 5fcae3634..5bc5470da 100644 --- a/app/src/test/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapperTest.kt +++ b/app/src/test/java/org/mozilla/fenix/shopping/middleware/ProductAnalysisMapperTest.kt @@ -38,11 +38,11 @@ class ProductAnalysisMapperTest { adjustedRating = 3.4f, productUrl = "https://example.com", highlights = sortedMapOf( - HighlightType.QUALITY to listOf("quality"), - HighlightType.PRICE to listOf("price"), - HighlightType.SHIPPING to listOf("shipping"), - HighlightType.PACKAGING_AND_APPEARANCE to listOf("appearance"), - HighlightType.COMPETITIVENESS to listOf("competitiveness"), + HighlightType.QUALITY to listOf("\"quality\""), + HighlightType.PRICE to listOf("\"price\""), + HighlightType.SHIPPING to listOf("\"shipping\""), + HighlightType.PACKAGING_AND_APPEARANCE to listOf("\"appearance\""), + HighlightType.COMPETITIVENESS to listOf("\"competitiveness\""), ), ) @@ -73,9 +73,9 @@ class ProductAnalysisMapperTest { adjustedRating = 3.4f, productUrl = "https://example.com", highlights = sortedMapOf( - HighlightType.QUALITY to listOf("quality"), - HighlightType.PACKAGING_AND_APPEARANCE to listOf("appearance"), - HighlightType.COMPETITIVENESS to listOf("competitiveness"), + HighlightType.QUALITY to listOf("\"quality\""), + HighlightType.PACKAGING_AND_APPEARANCE to listOf("\"appearance\""), + HighlightType.COMPETITIVENESS to listOf("\"competitiveness\""), ), ) From 87352ad48ba297e824bfbf3d55123589a0651d74 Mon Sep 17 00:00:00 2001 From: rahulsainani Date: Tue, 12 Sep 2023 12:55:49 +0200 Subject: [PATCH 106/209] Bug 1841600 - Add review checker shopping icons --- .../org/mozilla/fenix/browser/BrowserFragment.kt | 12 ++++-------- .../mozilla/fenix/shopping/ui/ProductAnalysis.kt | 11 +++++------ app/src/main/res/drawable/ic_shopping_cart.xml | 13 ------------- 3 files changed, 9 insertions(+), 27 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_shopping_cart.xml diff --git a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt index 16c4c987f..b764f6225 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt @@ -217,17 +217,13 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler { private fun initReviewQualityCheck(context: Context, view: View) { val reviewQualityCheck = - BrowserToolbar.ToggleButton( - image = AppCompatResources.getDrawable( - context, - R.drawable.ic_shopping_cart, - )!!, - imageSelected = AppCompatResources.getDrawable( + BrowserToolbar.Button( + imageDrawable = AppCompatResources.getDrawable( context, - R.drawable.ic_shopping_cart, + R.drawable.mozac_ic_shopping_24, )!!, contentDescription = context.getString(R.string.browser_menu_review_quality_check), - contentDescriptionSelected = context.getString(R.string.browser_menu_review_quality_check_close), + iconTintColorResource = ThemeManager.resolveAttribute(R.attr.textPrimary, context), visible = { reviewQualityCheckAvailable }, listener = { findNavController().navigate( diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt index a6682d136..82a0703d4 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt @@ -432,30 +432,29 @@ private fun HighlightType.toHighlight() = HighlightType.COMPETITIVENESS -> Highlight.COMPETITIVENESS } -// As part of Bug 1841600, update iconResourceId for each highlight type. private enum class Highlight( val titleResourceId: Int, val iconResourceId: Int, ) { QUALITY( titleResourceId = R.string.review_quality_check_highlights_type_quality, - iconResourceId = R.drawable.ic_shopping_cart, + iconResourceId = R.drawable.mozac_ic_quality_24, ), PRICE( titleResourceId = R.string.review_quality_check_highlights_type_price, - iconResourceId = R.drawable.ic_shopping_cart, + iconResourceId = R.drawable.mozac_ic_price_24, ), SHIPPING( titleResourceId = R.string.review_quality_check_highlights_type_shipping, - iconResourceId = R.drawable.ic_shopping_cart, + iconResourceId = R.drawable.mozac_ic_shipping_24, ), PACKAGING_AND_APPEARANCE( titleResourceId = R.string.review_quality_check_highlights_type_packaging_appearance, - iconResourceId = R.drawable.ic_shopping_cart, + iconResourceId = R.drawable.mozac_ic_packaging_24, ), COMPETITIVENESS( titleResourceId = R.string.review_quality_check_highlights_type_competitiveness, - iconResourceId = R.drawable.ic_shopping_cart, + iconResourceId = R.drawable.mozac_ic_competitiveness_24, ), } diff --git a/app/src/main/res/drawable/ic_shopping_cart.xml b/app/src/main/res/drawable/ic_shopping_cart.xml deleted file mode 100644 index ff274f022..000000000 --- a/app/src/main/res/drawable/ic_shopping_cart.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - From 50b493a41c0c819a8d1955d550a8f8b327575a33 Mon Sep 17 00:00:00 2001 From: iorgamgabriel Date: Mon, 14 Aug 2023 15:40:28 +0300 Subject: [PATCH 107/209] Bug 1845020 - The hint for search suggestions in private mode should be disabled if search suggestions in normal browsing are disabled. --- .../main/java/org/mozilla/fenix/search/SearchDialogController.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt b/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt index 89018d378..aee067958 100644 --- a/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt +++ b/app/src/main/java/org/mozilla/fenix/search/SearchDialogController.kt @@ -157,6 +157,7 @@ class SearchDialogController( SearchFragmentAction.AllowSearchSuggestionsInPrivateModePrompt( text.isNotEmpty() && activity.browsingModeManager.mode.isPrivate && + settings.shouldShowSearchSuggestions && !settings.shouldShowSearchSuggestionsInPrivate && !settings.showSearchSuggestionsInPrivateOnboardingFinished, ), From c6d17ce38abfc0805c53d8467a147139029bdb19 Mon Sep 17 00:00:00 2001 From: "oana.horvath" Date: Wed, 13 Sep 2023 13:02:07 +0300 Subject: [PATCH 108/209] Bug 1846941 - Wait for media button to appear in tabMediaControlButtonTest --- .../java/org/mozilla/fenix/ui/ComposeSmokeTest.kt | 2 -- .../org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt index 14d66dd2c..0f935a16c 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeSmokeTest.kt @@ -17,7 +17,6 @@ import mozilla.components.concept.engine.mediasession.MediaSession import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before -import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.IntentReceiverActivity @@ -265,7 +264,6 @@ class ComposeSmokeTest { } } - @Ignore("Failing, see https://bugzilla.mozilla.org/show_bug.cgi?id=1846941") @Test fun tabMediaControlButtonTest() { val audioTestPage = TestAssetHelper.getAudioPageAsset(mockWebServer) diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt index 4193c06a8..e163d8f74 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTabDrawerRobot.kt @@ -14,6 +14,7 @@ import androidx.compose.ui.test.assertIsNotSelected import androidx.compose.ui.test.assertIsSelected import androidx.compose.ui.test.filter import androidx.compose.ui.test.hasAnyChild +import androidx.compose.ui.test.hasContentDescription import androidx.compose.ui.test.hasParent import androidx.compose.ui.test.hasTestTag import androidx.compose.ui.test.hasText @@ -272,7 +273,9 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest /** * Verifies a tab's media button matches [action] when there is only one tab with media. */ + @OptIn(ExperimentalTestApi::class) fun verifyTabMediaControlButtonState(action: String) { + composeTestRule.waitUntilAtLeastOneExists(hasContentDescription(action), waitingTime) composeTestRule.tabMediaControlButton(action) .assertExists() } @@ -280,7 +283,9 @@ class ComposeTabDrawerRobot(private val composeTestRule: HomeActivityComposeTest /** * Clicks a tab's media button when there is only one tab with media. */ + @OptIn(ExperimentalTestApi::class) fun clickTabMediaControlButton(action: String) { + composeTestRule.waitUntilAtLeastOneExists(hasContentDescription(action), waitingTime) composeTestRule.tabMediaControlButton(action) .performClick() } From 2bc4b7a5648070f8c57f8d628d0a100e99107717 Mon Sep 17 00:00:00 2001 From: Cathy Lu Date: Tue, 15 Aug 2023 22:20:18 -0500 Subject: [PATCH 109/209] Bug 1847024 - Create update analysis card component --- .../fenix/shopping/ui/ProductAnalysis.kt | 48 +++++++++++++++++++ .../ui/ReviewQualityCheckBottomSheet.kt | 3 ++ .../shopping/ui/ReviewQualityCheckInfoCard.kt | 5 ++ 3 files changed, 56 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt index 82a0703d4..04ca96e10 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material.Icon import androidx.compose.material.Text @@ -59,10 +60,12 @@ import org.mozilla.fenix.theme.FirefoxTheme * @param modifier The modifier to be applied to the Composable. */ @Composable +@Suppress("LongParameterList") fun ProductAnalysis( productRecommendationsEnabled: Boolean, productAnalysis: AnalysisPresent, onOptOutClick: () -> Unit, + onReanalyzeClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, onReviewGradeLearnMoreClick: (String) -> Unit, modifier: Modifier = Modifier, @@ -71,6 +74,12 @@ fun ProductAnalysis( modifier = modifier, verticalArrangement = Arrangement.spacedBy(16.dp), ) { + if (productAnalysis.needsAnalysis) { + ReanalyzeCard( + onReanalyzeClick = onReanalyzeClick, + ) + } + if (productAnalysis.reviewGrade != null) { ReviewGradeCard( reviewGrade = productAnalysis.reviewGrade, @@ -111,6 +120,27 @@ fun ProductAnalysis( } } +@Composable +private fun ReanalyzeCard( + onReanalyzeClick: () -> Unit, +) { + ReviewQualityCheckInfoCard( + title = stringResource(R.string.review_quality_check_outdated_analysis_warning_title), + type = ReviewQualityCheckInfoType.AnalysisUpdate, + modifier = Modifier.fillMaxWidth(), + buttonText = stringResource(R.string.review_quality_check_outdated_analysis_warning_action), + onButtonClick = onReanalyzeClick, + icon = { + Icon( + painter = painterResource(id = R.drawable.mozac_ic_information_fill_24), + contentDescription = null, + modifier = Modifier.size(24.dp), + tint = FirefoxTheme.colors.iconPrimary, + ) + }, + ) +} + @Composable private fun ReviewGradeCard( reviewGrade: ReviewQualityCheckState.Grade, @@ -504,6 +534,7 @@ private fun ProductAnalysisPreview() { ), ), onOptOutClick = {}, + onReanalyzeClick = {}, onProductRecommendationsEnabledStateChange = { productRecommendationsEnabled.value = it }, @@ -530,3 +561,20 @@ private fun ReviewQualityInfoPreview() { } } } + +@Composable +@LightDarkPreview +private fun ReanalyzeCardPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = FirefoxTheme.colors.layer1) + .padding(all = 16.dp), + ) { + ReanalyzeCard( + onReanalyzeClick = {}, + ) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt index fbff0c37f..04a263cf1 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt @@ -55,6 +55,7 @@ fun ReviewQualityCheckBottomSheet( onRequestDismiss() store.dispatch(ReviewQualityCheckAction.OptOut) }, + onReanalyzeClick = {}, onProductRecommendationsEnabledStateChange = { store.dispatch(ReviewQualityCheckAction.ToggleProductRecommendation) }, @@ -83,6 +84,7 @@ fun ReviewQualityCheckBottomSheet( private fun ProductReview( state: ReviewQualityCheckState.OptedIn, onOptOutClick: () -> Unit, + onReanalyzeClick: () -> Unit, onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, onReviewGradeLearnMoreClick: (String) -> Unit, ) { @@ -96,6 +98,7 @@ private fun ProductReview( productRecommendationsEnabled = state.productRecommendationsPreference, productAnalysis = productReviewState, onOptOutClick = onOptOutClick, + onReanalyzeClick = onReanalyzeClick, onProductRecommendationsEnabledStateChange = onProductRecommendationsEnabledStateChange, onReviewGradeLearnMoreClick = onReviewGradeLearnMoreClick, ) diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt index 356e055f4..2cae0d088 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckInfoCard.kt @@ -137,6 +137,7 @@ enum class ReviewQualityCheckInfoType { Confirmation, Error, Info, + AnalysisUpdate, ; val cardBackgroundColor: Color @@ -146,6 +147,7 @@ enum class ReviewQualityCheckInfoType { Confirmation -> FirefoxTheme.colors.layerConfirmation Error -> FirefoxTheme.colors.layerError Info -> FirefoxTheme.colors.layerInfo + AnalysisUpdate -> Color.Transparent } val buttonBackgroundColor: Color @@ -155,12 +157,14 @@ enum class ReviewQualityCheckInfoType { Confirmation -> FirefoxTheme.colors.actionConfirmation Error -> FirefoxTheme.colors.actionError Info -> FirefoxTheme.colors.actionInfo + AnalysisUpdate -> FirefoxTheme.colors.actionSecondary } val buttonTextColor: Color @Composable get() = when { this == Info && !isSystemInDarkTheme() -> FirefoxTheme.colors.textOnColorPrimary + this == AnalysisUpdate -> FirefoxTheme.colors.textActionSecondary else -> FirefoxTheme.colors.textPrimary } } @@ -177,6 +181,7 @@ private class PreviewModelParameterProvider : PreviewParameterProvider Date: Wed, 13 Sep 2023 03:16:29 -0400 Subject: [PATCH 110/209] Bug 1852967 - Update mozac_feature_addons_blocklisted strings --- .../org/mozilla/fenix/extension/WebExtensionPromptFeature.kt | 2 +- .../org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt | 2 +- .../mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt b/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt index 1deb041e3..d9a38488f 100644 --- a/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt +++ b/app/src/main/java/org/mozilla/fenix/extension/WebExtensionPromptFeature.kt @@ -123,7 +123,7 @@ class WebExtensionPromptFeature( var title = context.getString(R.string.mozac_feature_addons_failed_to_install, "") val message = when (exception) { is WebExtensionInstallException.Blocklisted -> { - context.getString(R.string.mozac_feature_addons_blocklisted, addonName) + context.getString(R.string.mozac_feature_addons_blocklisted_1, addonName) } is WebExtensionInstallException.UserCancelled -> { diff --git a/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt b/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt index 235bebe2e..c56c1ac0c 100644 --- a/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt +++ b/app/src/test/java/org/mozilla/fenix/addons/AddonsManagementFragmentTest.kt @@ -34,7 +34,7 @@ class AddonsManagementFragmentTest { every { fragment.showErrorSnackBar(any()) } returns Unit every { fragment.getString(R.string.addon_not_supported_error) } returns addonNotSupportedErrorMessage every { fragment.getString(R.string.addon_already_installed) } returns addonAlreadyInstalledErrorMessage - every { fragment.getString(R.string.mozac_feature_addons_blocklisted) } returns addonAlreadyInstalledErrorMessage + every { fragment.getString(R.string.mozac_feature_addons_blocklisted_1) } returns addonAlreadyInstalledErrorMessage } @Test diff --git a/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt b/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt index af5efe5f7..8370922f9 100644 --- a/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt +++ b/app/src/test/java/org/mozilla/fenix/extension/WebExtensionPromptFeatureTest.kt @@ -95,7 +95,7 @@ class WebExtensionPromptFeatureTest { throwable = Exception(), ) val expectedMessage = - testContext.getString(R.string.mozac_feature_addons_blocklisted, extensionName) + testContext.getString(R.string.mozac_feature_addons_blocklisted_1, extensionName) webExtensionPromptFeature.handleInstallationFailedRequest( exception = exception, From a405f63fb7dc0dbcbc04fb94df457e190d2d93e3 Mon Sep 17 00:00:00 2001 From: Arturo Mejia Date: Wed, 13 Sep 2023 11:34:21 -0400 Subject: [PATCH 111/209] Bug 1852984 - Show the right theme for the extensions process crash dialog. --- .../fenix/addons/ExtensionProcessDisabledController.kt | 4 ++-- .../fenix/addons/ExtensionProcessDisabledControllerTest.kt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt index b2b5c6a2c..2f819b342 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt @@ -4,9 +4,9 @@ package org.mozilla.fenix.addons -import android.app.AlertDialog import android.content.Context import androidx.annotation.UiContext +import androidx.appcompat.app.AlertDialog import mozilla.components.browser.state.action.ExtensionProcessDisabledPopupAction import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.engine.Engine @@ -70,7 +70,7 @@ class ExtensionProcessDisabledController( @UiContext context: Context, store: BrowserStore, engine: Engine = context.components.core.engine, - builder: AlertDialog.Builder = AlertDialog.Builder(context, R.style.DialogStyleNormal), + builder: AlertDialog.Builder = AlertDialog.Builder(context), appName: String = context.appName, ) : ExtensionProcessDisabledPopupFeature( store, diff --git a/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt b/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt index fd85f5a54..e0825ebbc 100644 --- a/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/addons/ExtensionProcessDisabledControllerTest.kt @@ -4,9 +4,9 @@ package org.mozilla.fenix.addons -import android.app.AlertDialog import android.content.Context import android.content.DialogInterface.OnClickListener +import androidx.appcompat.app.AlertDialog import mozilla.components.browser.state.action.ExtensionProcessDisabledPopupAction import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.engine.Engine From 671f2ba80a67aeed9482420eaa0ff9b55b93d0a7 Mon Sep 17 00:00:00 2001 From: Noah Bond Date: Wed, 13 Sep 2023 09:42:47 -0700 Subject: [PATCH 112/209] Bug 1852305 - Add review grade info to all error states --- .../fenix/shopping/ui/ProductAnalysis.kt | 175 +--------------- .../fenix/shopping/ui/ProductAnalysisError.kt | 75 +++++++ .../ui/ReviewQualityCheckBottomSheet.kt | 9 +- .../ui/ReviewQualityCheckSettingsCard.kt | 117 +++++++++++ .../shopping/ui/ReviewQualityInfoCard.kt | 196 ++++++++++++++++++ 5 files changed, 401 insertions(+), 171 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt create mode 100644 app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckSettingsCard.kt create mode 100644 app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt index 04ca96e10..41f5bfba9 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysis.kt @@ -30,18 +30,13 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush -import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.unit.dp import org.mozilla.fenix.R -import org.mozilla.fenix.compose.ClickableSubstringLink -import org.mozilla.fenix.compose.SwitchWithLabel import org.mozilla.fenix.compose.annotation.LightDarkPreview import org.mozilla.fenix.compose.button.SecondaryButton -import org.mozilla.fenix.compose.parseHtml -import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.shopping.store.ReviewQualityCheckState import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.HighlightType import org.mozilla.fenix.shopping.store.ReviewQualityCheckState.OptedIn.ProductReviewState.AnalysisPresent @@ -101,21 +96,16 @@ fun ProductAnalysis( ) } - ReviewQualityCheckExpandableCard( - title = stringResource(id = R.string.review_quality_check_explanation_title), + ReviewQualityInfoCard( modifier = Modifier.fillMaxWidth(), - ) { - ReviewQualityInfo( - modifier = Modifier.fillMaxWidth(), - onLearnMoreClick = onReviewGradeLearnMoreClick, - ) - } + onLearnMoreClick = onReviewGradeLearnMoreClick, + ) - SettingsCard( - modifier = Modifier.fillMaxWidth(), + ReviewQualityCheckSettingsCard( productRecommendationsEnabled = productRecommendationsEnabled, onProductRecommendationsEnabledStateChange = onProductRecommendationsEnabledStateChange, onTurnOffReviewQualityCheckClick = onOptOutClick, + modifier = Modifier.fillMaxWidth(), ) } } @@ -316,143 +306,6 @@ private fun HighlightTitle(highlightType: HighlightType) { } } -@Composable -private fun SettingsCard( - productRecommendationsEnabled: Boolean, - onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, - onTurnOffReviewQualityCheckClick: () -> Unit, - modifier: Modifier = Modifier, -) { - ReviewQualityCheckExpandableCard( - modifier = modifier, - title = stringResource(R.string.review_quality_check_settings_title), - ) { - Column { - Spacer(modifier = Modifier.height(8.dp)) - - SwitchWithLabel( - checked = productRecommendationsEnabled, - onCheckedChange = onProductRecommendationsEnabledStateChange, - label = stringResource(R.string.review_quality_check_settings_recommended_products), - ) - - Spacer(modifier = Modifier.height(16.dp)) - - SecondaryButton( - text = stringResource(R.string.review_quality_check_settings_turn_off), - onClick = onTurnOffReviewQualityCheckClick, - ) - } - } -} - -@Suppress("Deprecation") -@Composable -private fun ReviewQualityInfo( - modifier: Modifier = Modifier, - onLearnMoreClick: (String) -> Unit, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.spacedBy(24.dp), - ) { - val adjustedGradingText = - stringResource(id = R.string.review_quality_check_explanation_body_adjusted_grading) - // Any and all text formatting (bullets, inline substring bolding, etc.) will be handled as - // follow-up when the copy is finalized. - // Bug 1848219 - Text( - text = stringResource( - id = R.string.review_quality_check_explanation_body_reliability, - stringResource(R.string.shopping_product_name), - ), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.body2, - ) - - val link = stringResource( - id = R.string.review_quality_check_info_learn_more_link, - stringResource(R.string.shopping_product_name), - ) - val text = stringResource(R.string.review_quality_check_info_learn_more, link) - val context = LocalContext.current - val linkStartIndex = text.indexOf(link) - val linkEndIndex = linkStartIndex + link.length - ClickableSubstringLink( - text = text, - textStyle = FirefoxTheme.typography.body2, - clickableStartIndex = linkStartIndex, - clickableEndIndex = linkEndIndex, - onClick = { - onLearnMoreClick( - // Placeholder Sumo page - SupportUtils.getSumoURLForTopic( - context, - SupportUtils.SumoTopic.HELP, - ), - ) - }, - ) - - ReviewGradingScaleInfo( - reviewGrades = listOf( - ReviewQualityCheckState.Grade.A, - ReviewQualityCheckState.Grade.B, - ), - info = stringResource(id = R.string.review_quality_check_info_grade_info_AB), - modifier = Modifier.fillMaxWidth(), - ) - - ReviewGradingScaleInfo( - reviewGrades = listOf(ReviewQualityCheckState.Grade.C), - info = stringResource(id = R.string.review_quality_check_info_grade_info_C), - modifier = Modifier.fillMaxWidth(), - ) - - ReviewGradingScaleInfo( - reviewGrades = listOf( - ReviewQualityCheckState.Grade.D, - ReviewQualityCheckState.Grade.F, - ), - info = stringResource(id = R.string.review_quality_check_info_grade_info_DF), - modifier = Modifier.fillMaxWidth(), - ) - - Text( - text = remember(adjustedGradingText) { parseHtml(adjustedGradingText) }, - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.body2, - ) - } -} - -@Composable -private fun ReviewGradingScaleInfo( - reviewGrades: List, - info: String, - modifier: Modifier = Modifier, -) { - Row( - modifier = modifier.semantics(mergeDescendants = true) {}, - verticalAlignment = Alignment.Top, - horizontalArrangement = Arrangement.spacedBy(8.dp), - ) { - reviewGrades.forEach { grade -> - ReviewGradeCompact(grade = grade) - } - - if (reviewGrades.size == 1) { - Spacer(modifier = Modifier.width(24.dp)) - } - - Text( - text = info, - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.body2, - ) - } -} - private fun HighlightType.toHighlight() = when (this) { HighlightType.QUALITY -> Highlight.QUALITY @@ -544,24 +397,6 @@ private fun ProductAnalysisPreview() { } } -@Composable -@LightDarkPreview -private fun ReviewQualityInfoPreview() { - FirefoxTheme { - Box( - modifier = Modifier - .fillMaxWidth() - .background(color = FirefoxTheme.colors.layer1) - .padding(all = 16.dp), - ) { - ReviewQualityInfo( - modifier = Modifier.fillMaxWidth(), - onLearnMoreClick = {}, - ) - } - } -} - @Composable @LightDarkPreview private fun ReanalyzeCardPreview() { diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt new file mode 100644 index 000000000..2fa117c69 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ProductAnalysisError.kt @@ -0,0 +1,75 @@ +/* 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.shopping.ui + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.theme.FirefoxTheme + +/** + * Product analysis error UI + * + * @param productRecommendationsEnabled The current state of the product recommendations toggle. + * @param onReviewGradeLearnMoreClick Invoked when the user clicks to learn more about review grades. + * @param onOptOutClick Invoked when the user opts out of the review quality check feature. + * @param onProductRecommendationsEnabledStateChange Invoked when the user changes the product + * recommendations toggle state. + * @param modifier Modifier to apply to the layout. + */ +@Composable +fun ProductAnalysisError( + productRecommendationsEnabled: Boolean, + onReviewGradeLearnMoreClick: (String) -> Unit, + onOptOutClick: () -> Unit, + onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, + modifier: Modifier = Modifier, +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(16.dp), + ) { + // Error UI to be done in Bug 1840113 + + ReviewQualityInfoCard( + onLearnMoreClick = onReviewGradeLearnMoreClick, + ) + + ReviewQualityCheckSettingsCard( + productRecommendationsEnabled = productRecommendationsEnabled, + onProductRecommendationsEnabledStateChange = onProductRecommendationsEnabledStateChange, + onTurnOffReviewQualityCheckClick = onOptOutClick, + modifier = Modifier.fillMaxWidth(), + ) + } +} + +@Composable +@LightDarkPreview +private fun ProductAnalysisErrorPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = FirefoxTheme.colors.layer1) + .padding(all = 16.dp), + ) { + ProductAnalysisError( + productRecommendationsEnabled = true, + onReviewGradeLearnMoreClick = {}, + onOptOutClick = {}, + onProductRecommendationsEnabledStateChange = {}, + modifier = Modifier.fillMaxWidth(), + ) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt index 04a263cf1..df9fd87e2 100644 --- a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckBottomSheet.kt @@ -6,6 +6,7 @@ package org.mozilla.fenix.shopping.ui import androidx.compose.animation.Crossfade import androidx.compose.animation.animateContentSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -105,7 +106,13 @@ private fun ProductReview( } is ReviewQualityCheckState.OptedIn.ProductReviewState.Error -> { - // Bug 1840113 + ProductAnalysisError( + productRecommendationsEnabled = state.productRecommendationsPreference, + onReviewGradeLearnMoreClick = onReviewGradeLearnMoreClick, + onOptOutClick = onOptOutClick, + onProductRecommendationsEnabledStateChange = onProductRecommendationsEnabledStateChange, + modifier = Modifier.fillMaxWidth(), + ) } is ReviewQualityCheckState.OptedIn.ProductReviewState.Loading -> { diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckSettingsCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckSettingsCard.kt new file mode 100644 index 000000000..7cb2e52a2 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityCheckSettingsCard.kt @@ -0,0 +1,117 @@ +/* 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.shopping.ui + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.SwitchWithLabel +import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.compose.button.SecondaryButton +import org.mozilla.fenix.theme.FirefoxTheme + +/** + * Review quality check settings card UI. Contains toggles to disable product recommendations and + * the entire review quality check feature. + * + * @param productRecommendationsEnabled The current state of the product recommendations toggle. + * @param onProductRecommendationsEnabledStateChange Invoked when the user changes the product + * recommendations toggle state. + * @param onTurnOffReviewQualityCheckClick Invoked when the user opts out of the review quality check feature. + * @param modifier Modifier to apply to the layout. + */ +@Composable +fun ReviewQualityCheckSettingsCard( + productRecommendationsEnabled: Boolean, + onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, + onTurnOffReviewQualityCheckClick: () -> Unit, + modifier: Modifier = Modifier, +) { + ReviewQualityCheckExpandableCard( + modifier = modifier, + title = stringResource(R.string.review_quality_check_settings_title), + ) { + SettingsContent( + productRecommendationsEnabled = productRecommendationsEnabled, + onProductRecommendationsEnabledStateChange = onProductRecommendationsEnabledStateChange, + onTurnOffReviewQualityCheckClick = onTurnOffReviewQualityCheckClick, + modifier = Modifier.fillMaxWidth(), + ) + } +} + +@Composable +private fun SettingsContent( + productRecommendationsEnabled: Boolean, + onProductRecommendationsEnabledStateChange: (Boolean) -> Unit, + onTurnOffReviewQualityCheckClick: () -> Unit, + modifier: Modifier = Modifier, +) { + Column(modifier = modifier) { + Spacer(modifier = Modifier.height(8.dp)) + + SwitchWithLabel( + checked = productRecommendationsEnabled, + onCheckedChange = onProductRecommendationsEnabledStateChange, + label = stringResource(R.string.review_quality_check_settings_recommended_products), + ) + + Spacer(modifier = Modifier.height(16.dp)) + + SecondaryButton( + text = stringResource(R.string.review_quality_check_settings_turn_off), + onClick = onTurnOffReviewQualityCheckClick, + ) + } +} + +@LightDarkPreview +@Composable +private fun ReviewQualityCheckSettingsCardPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = FirefoxTheme.colors.layer1) + .padding(all = 16.dp), + ) { + ReviewQualityCheckSettingsCard( + productRecommendationsEnabled = true, + onProductRecommendationsEnabledStateChange = {}, + onTurnOffReviewQualityCheckClick = {}, + modifier = Modifier.fillMaxWidth(), + ) + } + } +} + +@LightDarkPreview +@Composable +private fun SettingsContentPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = FirefoxTheme.colors.layer1) + .padding(all = 16.dp), + ) { + SettingsContent( + productRecommendationsEnabled = true, + onProductRecommendationsEnabledStateChange = {}, + onTurnOffReviewQualityCheckClick = {}, + modifier = Modifier.fillMaxWidth(), + ) + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt new file mode 100644 index 000000000..cdcda14b5 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/shopping/ui/ReviewQualityInfoCard.kt @@ -0,0 +1,196 @@ +/* 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.shopping.ui + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.unit.dp +import org.mozilla.fenix.R +import org.mozilla.fenix.compose.ClickableSubstringLink +import org.mozilla.fenix.compose.annotation.LightDarkPreview +import org.mozilla.fenix.compose.parseHtml +import org.mozilla.fenix.settings.SupportUtils +import org.mozilla.fenix.shopping.store.ReviewQualityCheckState +import org.mozilla.fenix.theme.FirefoxTheme + +/** + * Info card UI containing an explanation of the review quality. + * + * @param modifier Modifier to apply to the layout. + * @param onLearnMoreClick Invoked when the user clicks to learn more about review grades. + */ +@Composable +fun ReviewQualityInfoCard( + modifier: Modifier = Modifier, + onLearnMoreClick: (String) -> Unit, +) { + ReviewQualityCheckExpandableCard( + title = stringResource(id = R.string.review_quality_check_explanation_title), + modifier = modifier, + ) { + ReviewQualityInfo( + modifier = Modifier.fillMaxWidth(), + onLearnMoreClick = onLearnMoreClick, + ) + } +} + +@Suppress("Deprecation") +@Composable +private fun ReviewQualityInfo( + modifier: Modifier = Modifier, + onLearnMoreClick: (String) -> Unit, +) { + Column( + modifier = modifier, + verticalArrangement = Arrangement.spacedBy(24.dp), + ) { + val adjustedGradingText = + stringResource(id = R.string.review_quality_check_explanation_body_adjusted_grading) + // Any and all text formatting (bullets, inline substring bolding, etc.) will be handled as + // follow-up when the copy is finalized. + // Bug 1848219 + Text( + text = stringResource( + id = R.string.review_quality_check_explanation_body_reliability, + stringResource(R.string.shopping_product_name), + ), + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.body2, + ) + + val link = stringResource( + id = R.string.review_quality_check_info_learn_more_link, + stringResource(R.string.shopping_product_name), + ) + val text = stringResource(R.string.review_quality_check_info_learn_more, link) + val context = LocalContext.current + val linkStartIndex = text.indexOf(link) + val linkEndIndex = linkStartIndex + link.length + ClickableSubstringLink( + text = text, + textStyle = FirefoxTheme.typography.body2, + clickableStartIndex = linkStartIndex, + clickableEndIndex = linkEndIndex, + onClick = { + onLearnMoreClick( + // Placeholder Sumo page + SupportUtils.getSumoURLForTopic( + context, + SupportUtils.SumoTopic.HELP, + ), + ) + }, + ) + + ReviewGradingScaleInfo( + reviewGrades = listOf( + ReviewQualityCheckState.Grade.A, + ReviewQualityCheckState.Grade.B, + ), + info = stringResource(id = R.string.review_quality_check_info_grade_info_AB), + modifier = Modifier.fillMaxWidth(), + ) + + ReviewGradingScaleInfo( + reviewGrades = listOf(ReviewQualityCheckState.Grade.C), + info = stringResource(id = R.string.review_quality_check_info_grade_info_C), + modifier = Modifier.fillMaxWidth(), + ) + + ReviewGradingScaleInfo( + reviewGrades = listOf( + ReviewQualityCheckState.Grade.D, + ReviewQualityCheckState.Grade.F, + ), + info = stringResource(id = R.string.review_quality_check_info_grade_info_DF), + modifier = Modifier.fillMaxWidth(), + ) + + Text( + text = remember(adjustedGradingText) { parseHtml(adjustedGradingText) }, + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.body2, + ) + } +} + +@Composable +private fun ReviewGradingScaleInfo( + reviewGrades: List, + info: String, + modifier: Modifier = Modifier, +) { + Row( + modifier = modifier.semantics(mergeDescendants = true) {}, + verticalAlignment = Alignment.Top, + horizontalArrangement = Arrangement.spacedBy(8.dp), + ) { + reviewGrades.forEach { grade -> + ReviewGradeCompact(grade = grade) + } + + if (reviewGrades.size == 1) { + Spacer(modifier = Modifier.width(24.dp)) + } + + Text( + text = info, + color = FirefoxTheme.colors.textPrimary, + style = FirefoxTheme.typography.body2, + ) + } +} + +@Composable +@LightDarkPreview +private fun ReviewQualityInfoCardPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = FirefoxTheme.colors.layer1) + .padding(all = 16.dp), + ) { + ReviewQualityInfoCard( + modifier = Modifier.fillMaxWidth(), + onLearnMoreClick = {}, + ) + } + } +} + +@Composable +@LightDarkPreview +private fun ReviewQualityInfoPreview() { + FirefoxTheme { + Box( + modifier = Modifier + .fillMaxWidth() + .background(color = FirefoxTheme.colors.layer1) + .padding(all = 16.dp), + ) { + ReviewQualityInfo( + modifier = Modifier.fillMaxWidth(), + onLearnMoreClick = {}, + ) + } + } +} From 3f9d00be841a6a9a0b1b1c2fb9af7a086148e40b Mon Sep 17 00:00:00 2001 From: github-actions Date: Thu, 14 Sep 2023 00:03:14 +0000 Subject: [PATCH 113/209] Import translations from android-l10n --- app/src/main/res/values-be/strings.xml | 32 ++++ app/src/main/res/values-cs/strings.xml | 125 +++++++++++++ app/src/main/res/values-cy/strings.xml | 189 ++++++++++++++++++++ app/src/main/res/values-da/strings.xml | 9 +- app/src/main/res/values-de/strings.xml | 189 ++++++++++++++++++++ app/src/main/res/values-el/strings.xml | 78 +++++++++ app/src/main/res/values-en-rCA/strings.xml | 191 ++++++++++++++++++++ app/src/main/res/values-es-rAR/strings.xml | 172 ++++++++++++++++++ app/src/main/res/values-es-rCL/strings.xml | 148 ++++++++++++++++ app/src/main/res/values-fi/strings.xml | 88 ++++++++++ app/src/main/res/values-fr/strings.xml | 69 ++++++++ app/src/main/res/values-hy-rAM/strings.xml | 191 ++++++++++++++++++++ app/src/main/res/values-ia/strings.xml | 193 ++++++++++++++++++++ app/src/main/res/values-it/strings.xml | 195 +++++++++++++++++++++ app/src/main/res/values-iw/strings.xml | 190 ++++++++++++++++++++ app/src/main/res/values-kab/strings.xml | 32 ++++ app/src/main/res/values-kk/strings.xml | 28 +++ app/src/main/res/values-ko/strings.xml | 192 ++++++++++++++++++++ app/src/main/res/values-nl/strings.xml | 191 ++++++++++++++++++++ app/src/main/res/values-nn-rNO/strings.xml | 42 +++++ app/src/main/res/values-ru/strings.xml | 190 ++++++++++++++++++++ app/src/main/res/values-sk/strings.xml | 192 ++++++++++++++++++++ app/src/main/res/values-sv-rSE/strings.xml | 10 ++ app/src/main/res/values-tg/strings.xml | 31 ++++ app/src/main/res/values-tr/strings.xml | 68 +++++++ app/src/main/res/values-vi/strings.xml | 183 +++++++++++++++++++ 26 files changed, 3214 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index b3e75e627..bc6737615 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -86,6 +86,7 @@ Даведайцеся аб поўнай ахове кукаў + Патрабуецца доступ да камеры. Перайдзіце ў налады Android, націсніце "Дазволы", і затым "Дазволіць". @@ -223,6 +224,9 @@ Хатні экран + + Сцерці гісторыю аглядання Абраная мова @@ -346,6 +350,15 @@ Не зараз + + Паспрабуйце віджэт пошуку Firefox + + Дадаць віджэт Firefox + + Не зараз + Адкрыць новую картку %1$s @@ -2180,6 +2193,25 @@ Перайсці ў налады + + Даведайцеся больш пра %s. + + Налады + + Праверыць зараз + + Паказаць менш + + Паказаць больш + + Якасць + + Кошт + + Дастаўка + + Канкурэнтаздольнасць + згарнуць diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 1e78428bb..ec4c5fd57 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -67,6 +67,10 @@ Časté omyly o fungování anonymního prohlížení + + + Nezanechávejte na tomto zařízení žádné stopy + Jedním klepnutím spustí další anonymní panel. @@ -89,6 +93,7 @@ Zjistit více o úplné ochraně před cookies + Pro tuto funkci je potřeba povolit přístup k fotoaparátu. Ten můžete povolit v nastavení oprávnění aplikací v systému Android. @@ -229,6 +234,9 @@ Domovská obrazovka + + Vymazat historii prohlížení Vybraný jazyk @@ -351,6 +359,9 @@ Teď ne + + Teď ne + Otevřít nový panel v aplikaci %1$s @@ -2168,6 +2179,120 @@ Přejít do nastavení + + + Kontrola recenzí + + Spolehlivé recenze + + Směs spolehlivých a nespolehlivých recenzí + + Nespolehlivé recenze + + Jak spolehlivé jsou tyto recenze? + + Upravené hodnocení + + Nespolehlivé recenze odebrány + + Vybrané nedávné recenze + + Jak určujeme kvalitu recenze + + Spolehlivé recenze. Věříme, že recenze pocházejí pravděpodobně od skutečných zákazníků, kteří zanechali upřímné a nezaujaté recenze. + + Věříme, že je zde směs spolehlivých a nespolehlivých recenzí. + + Nespolehlivé recenze. Domníváme se, že tyto recenze jsou pravděpodobně falešné a nebo od zaujatých recenzentů. + + Zjistit více o %s. + + Nastavení + + Zobrazovat reklamy v kontrole recenzí + + Zjistěte více + + Vypnout kontrolu recenzí + + Další ke zvážení + + Reklama od %s + + Kontrola recenzí používá technologii %s. + + %s od Mozilly + + Nové informace ke zkontrolování + + Zkontrolovat + + Zatím nemá dostatek recenzí + + Produkt není k dispozici + + Nahlaste, že je tento produkt opět skladem + + Kontroluje se kvalita recenzí + + Kontroluje se kvalita recenzí + + Může to trvat asi 60 sekund. + + Děkujeme za nahlášení! + + Tyto recenze nemůžeme zkontrolovat + + Informace již brzy + + Informace o hodnocení tohoto produktu bychom měli mít k dispozici do 24 hodin. Prosím, zkontrolujte to znovu. + + Analýza je aktuální + + Rozumím + + V tuto chvíli nejsou k dispozici žádné informace + + Pracujeme na vyřešení problému. Zkuste to prosím později. + + Žádné síťové připojení + + Zkontrolujte připojení k síti a zkuste stránku načíst znovu. + + Zatím žádné informace o těchto recenzích + + Chcete-li zjistit, zda jsou recenze tohoto produktu spolehlivé, zkontrolujte kvalitu recenzí. Zabere to jen asi 60 sekund. + + Zkontrolovat kvalitu recenzí + + Zjistit více + + zásady ochrany osobních údajů + + zásady používání + + Ano, vyzkoušet + + Teď ne + + Vyzkoušet kontrolu recenzí + + Beta + + Zobrazit méně + + Zobrazit více + + Kvalita + + Cena + + Doprava + + Balení a vzhled + + Konkurenceschopnost + sbalit diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 1363c0d50..d5d2be1b3 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -66,6 +66,19 @@        Mythau cyffredin am bori preifat      + + + Gadael dim ôl ar y ddyfais hon + + Mae %1$s yn dileu eich cwcis, hanes, a data gwefan pan fyddwch yn cau eich holl ffenestri preifat. %2$s + + Pwy efallai fyddai’n gallu gweld fy ngweithgarwch? + Agor eich tab preifat gydag un tap. @@ -88,6 +101,11 @@ Dysgwch am Ddiogelwch Cyflawn Cwcis + + + Tapiwch yma i ddechrau sesiwn breifat newydd. Bydd yn dileu eich hanes, cwcis — popeth. + + Mae angen mynediad i’r camera. Ewch i osodiadau Android, tapiwch Permissions, a thapio Allow. @@ -224,6 +242,9 @@ Sgrin cartref + + Dileu hanes pori Dewi iaith @@ -345,6 +366,18 @@ Nid nawr + + Rhowch gynnig ar declyn chwilio Firefox + + Gyda Firefox ar eich sgrin gartref, bydd gennych fynediad hawdd i’r porwr preifatrwydd yn gyntaf sy’n rhwystro tracwyr traws-safle. + + Ychwanegu teclyn Firefox + + Nid nawr + Agor tab %1$s newydd @@ -1322,6 +1355,8 @@ Tabiau preifat wedi’u cau + + Data pori preifat wedi’i ddileu DADWNEUD @@ -2148,6 +2183,160 @@ Mynd i’r gosodiadau + + + Gwirydd adolygiadau + + Adolygiadau dibynadwy + + Cymysgedd o adolygiadau dibynadwy ac annibynadwy + + Adolygiadau annibynadwy + + Pa mor ddibynadwy yw’r adolygiadau hyn? + + Gradd wedi’i haddasu + + Dilëwyd yr adolygiadau annibynadwy + + Uchafbwyntiau o adolygiadau diweddar + + Sut rydym yn mesur ansawdd adolygiadau + + Rydym yn defnyddio technoleg AI o %s gan Mozilla i wirio dibynadwyedd adolygiadau cynnyrch. Bydd hyn dim ond yn eich helpu i asesu ansawdd adolygiad, nid ansawdd y cynnyrch. + + gradd llythyren o A i F i adolygiadau pob cynnyrch.]]> + + Adolygiadau dibynadwy. Rydym yn credu fod yr adolygiadau’n debygol o fod gan gwsmeriaid go iawn sydd wedi gadael adolygiadau gonest, diduedd. + + Rydym yn credu fod yna gymysgedd o adolygiadau dibynadwy ac annibynadwy. + + Adolygiadau annibynadwy. Rydym yn credu fod yr adolygiadau yn debygol o fod yn rhai ffug neu gan adolygwyr rhagfarnllyd. + + gradd wedi’i addasu yn seiliedig ar adolygiadau y credwn eu bod yn ddibynadwy yn unig.]]> + + Uchafbwyntiau o adolygiadau %s o fewn yr 80 diwrnod diwethaf y credwn eu bod yn ddibynadwy.]]> + + Dysgwch ragor am %s. + + sut mae %s gan Mozilla yn pennu ansawdd adolygiadau + + Gosodiadau + + Dangos hysbysebion yn y gwiriwr adolygiadau + + Fe welwch hysbysebion achlysurol ar gyfer cynnyrch perthnasol. Rhaid i bob hysbyseb fodloni ein safonau ansawdd adolygiadau. %s + + Dysgu rhagor + + Diffodd y gwiriwr adolygiadau + + Rhagor i feddwl amdanyn nhw + + Hysbyseb gan %s + + Mae’r gwiriwr adolygiadau yn cael ei bweru gan %s. + + %s gan Mozilla + + Gwybodaeth newydd i’w wirio + + Gwirio nawr + + Dim digon o adolygiadau eto + + Pan fydd gan y cynnyrch hwn fwy o adolygiadau, byddwn yn gallu gwirio eu hansawdd. + + Nid yw’r cynnyrch ar gael + + Os ydych yn gweld fod y cynnyrch hwn nôl mewn stoc, rhowch wybod i ni ac fe wnawn ni ddiweddaru’r dadansoddiad. + + Adrodd fod y cynnyrch hwn nôl mewn stoc + + Gwirio ansawdd adolygiadau + + Gwirio ansawdd adolygiadau + + Gall hyn gymryd tua 60 eiliad. + + Diolch am adrodd! + + Dylai fod gennym dadansoddiad wedi’i ddiweddaru o fewn 24 awr. Dewch nôl i weld. + + Methu gwirio’r adolygiadau hyn + + Yn anffodus, ni allwn wirio ansawdd adolygu ar gyfer rhai mathau o gynnyrch. Er enghraifft, cardiau rhodd a ffrydio fideo, cerddoriaeth a gemau. + + Gwybodaeth yn dod cyn hir + + Dylai fod gennym dadansoddiad wedi’i ddiweddaru o fewn 24 awr. Dewch nôl i weld. + + Mae’r dadansoddiad yn gyfredol + + Iawn + + Dim gwybodaeth ar gael ar hyn o bryd + + Rydym yn gweithio i ddatrys y mater. Dewch nôl cyn bo hir. + + Dim cysylltiad rhwydwaith + + Gwiriwch eich cysylltiad rhwydwaith ac yna ceisiwch ail-lwytho’r dudalen. + + Dim gwybodaeth am yr adolygiadau hyn eto + + I wybod a yw adolygiadau’r cynnyrch hwn yn ddibynadwy, gwiriwch ansawdd yr adolygiadau. Dim ond tua 60 eiliad y mae’n ei gymryd. + + Gwirio ansawdd yr adolygiad + + Rhowch gynnig ar ein canllaw dibynadwy i adolygiadau cynnyrch + + Gweld pa mor ddibynadwy yw adolygiadau cynnyrch ar %1$s cyn i chi brynu. Mae gwiriwr adolygiadau, nodwedd arbrofol gan %2$s, wedi’i gynnwys yn y porwr. Mae’n gweithio ar %3$s a %4$s hefyd. + + Gan ddefnyddio pŵer %1$s gan Mozilla, rydym yn eich helpu i osgoi adolygiadau rhagfarnllyd ac annilys. Mae ein model AI bob amser yn gwella i’ch diogelu wrth i chi siopa. %2$s + + Dysgu rhagor + + Trwy ddewis “Iawn, rhoi cynnig arno” rydych yn cytuno i %2$s a %3$s %1$s gan Mozilla. + + polisi preifatrwydd + + telerau defnydd + + Iawn, rhoi cynnig arno + + Nid nawr + + Darganfyddwch a allwch ymddiried yn adolygiadau’r cynnyrch hwn - cyn i chi brynu. + + Rhowch gynnig ar y gwiriwr adolygiadau + + A yw’r adolygiadau hyn yn ddibynadwy? Gwiriwch nawr i weld sgôr wedi’i addasu. + + Agor y gwiriwr adolygiadau + + Beta + + Agor y gwiriwr ansawdd adolygiadau + + Cau’r gwiriwr ansawdd adolygiadau + + %1$s allan o 5 seren + + Dangos llai + + Dangos rhagor + + Ansawdd + + Pris + + Cludiant + + Pecynnu ac ymddangosiad + + Cystadleurwydd + cau diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 69b21db21..e7e415e2f 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -87,6 +87,7 @@ Læs om Komplet Cookiebeskyttelse + Adgang til kamera er nødvendig. Gå til Indstillinger i Android, tryk på Tilladelser, og tryk så på Tillad. @@ -1414,7 +1415,7 @@ Sletter browserdata… - Slet alle websteder i "%s" + Slet alle websteder i “%s” Annuller @@ -1910,7 +1911,7 @@ URL til brug for søgning - Erstat forespørgslen med "%s”. Eksempel:\nhttps://www.google.com/search?q=%s + Erstat forespørgslen med “%s”. Eksempel:\nhttps://www.google.com/search?q=%s Detaljer om tilpasset søgetjeneste @@ -1920,9 +1921,9 @@ URL til søgeforslags-API - Erstat forespørgslen med "%s". Eksempel:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s + Erstat forespørgslen med “%s”. Eksempel:\nhttp://suggestqueries.google.com/complete/search?client=firefox&q=%s - Erstat forespørgslen med "%s". Eksempel:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s + Erstat forespørgslen med “%s”. Eksempel:\nhttps://suggestqueries.google.com/complete/search?client=firefox&q=%s Gem diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e60bd4aa7..efdf2aaf3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -69,6 +69,19 @@ Häufige Missverständnisse über das Surfen im Privaten Modus + + + Auf diesem Gerät keine Spuren hinterlassen + + %1$s löscht Ihre Cookies, Chronik und Website-Daten, wenn Sie alle Ihre privaten Fenster schließen. %2$s + + Wer könnte meine Aktivität sehen? + Starten Sie Ihren nächsten privaten Tab mit einem Fingertipp. @@ -91,6 +104,11 @@ Weitere Informationen über den vollständigen Cookie-Schutz + + + Tippen Sie hier, um eine neue private Sitzung zu beginnen. Löschen Sie Ihre Chronik, Cookies – alles. + + Kamerazugriff erforderlich. Öffnen Sie die Android-Einstellungen, tippen Sie auf Berechtigungen und tippen Sie auf Erlauben. @@ -229,6 +247,9 @@ Startbildschirm + + Browser-Chronik löschen Gewählte Sprache @@ -352,6 +373,18 @@ Nicht jetzt + + Probieren Sie das Firefox-Such-Widget aus + + Mit Firefox auf Ihrem Startbildschirm haben Sie einfachen Zugriff auf den Browser, für den Ihre Privatsphäre an erster Stelle steht, der seitenübergreifende Tracker blockiert. + + Firefox-Widget hinzufügen + + Jetzt nicht + Neuen %1$s-Tab öffnen @@ -1351,6 +1384,8 @@ Privater Tab geschlossen Private Tabs geschlossen + + Daten im privaten Modus gelöscht RÜCKGÄNGIG @@ -2182,6 +2217,160 @@ Einstellungen öffnen + + + Rezensionsprüfer + + Zuverlässige Bewertungen + + Mischung aus zuverlässigen und unzuverlässigen Bewertungen + + Unzuverlässige Bewertungen + + Wie zuverlässig sind diese Bewertungen? + + Bewertungen angepasst + + Unzuverlässige Bewertungen entfernt + + Highlights aus aktuellen Bewertungen + + Wie wir die Qualität der Überprüfung bestimmen + + Wir verwenden die KI-Technologie von %s von Mozilla, um die Zuverlässigkeit von Produktbewertungen zu überprüfen. Dies hilft nur bei der Einschätzung der Qualität der Bewertung, nicht der Produktqualität. + + Bewertung von A bis F.]]> + + Zuverlässige Bewertungen. Wir glauben, dass die Bewertungen von echten Kunden stammen, die ehrliche und unvoreingenommene Bewertungen hinterlassen. + + Wir glauben, dass es eine Mischung aus zuverlässigen und unzuverlässigen Bewertungen gibt. + + Unzuverlässige Bewertungen. Wir glauben, dass die Bewertungen wahrscheinlich gefälscht, oder von voreingenommenen Bewertern sind. + + angepasste Bewertung basiert nur auf Bewertungen, die wir für zuverlässig halten.]]> + + Highlights stammen von %s-Bewertungen innerhalb der letzten 80 Tage, die wir für zuverlässig halten.]]> + + Weitere Informationen zu %s. + + Wie %s von Mozilla die Qualität der Bewertungen feststellt + + Einstellungen + + Werbung im Rezensionsprüfer anzeigen + + Sie sehen gelegentlich Anzeigen für relevante Produkte. Alle Anzeigen müssen unseren Qualitätsstandards für Bewertungen entsprechen. %s + + Weitere Informationen + + Rezensionsprüfer abschalten + + Weitere Möglichkeiten + + Anzeige von %s + + Rezensionsprüfer wird bereitgestellt von %s. + + %s von Mozilla + + Neue Informationen zum Überprüfen + + Jetzt prüfen + + Noch nicht genügend Bewertungen + + Wenn dieses Produkt mehr Bewertungen hat, können wir deren Qualität überprüfen. + + Produkt ist nicht verfügbar + + Wenn Sie sehen, dass dieses Produkt wieder auf Lager ist, melden Sie es und wir arbeiten an der Überprüfung der Bewertungen. + + Melden, dass dieses Produkt wieder auf Lager ist + + Qualität der Bewertung wird überprüft + + Qualität der Bewertung wird überprüft + + Dies kann etwa 60 Sekunden dauern. + + Danke für die Meldung! + + Wir sollten innerhalb von 24 Stunden Informationen über die Bewertungen dieses Produkts haben. Bitte versuchen Sie es später noch einmal. + + Wir können diese Bewertungen nicht überprüfen + + Leider können wir die Qualität der Bewertungen für bestimmte Arten von Produkten nicht überprüfen. Zum Beispiel Geschenkkarten und Video-Streaming, Musik und Spiele. + + Weitere Informationen folgen in Kürze + + Wir sollten innerhalb von 24 Stunden Informationen über die Bewertungen dieses Produkts haben. Bitte versuchen Sie es später noch einmal. + + Die Analyse ist aktuell + + Verstanden + + Derzeit sind keine Informationen verfügbar + + Wir arbeiten an einer Lösung des Problems. Bitte schauen Sie bald wieder vorbei. + + Keine Netzwerkverbindung + + Überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie dann, die Seite neu zu laden. + + Noch keine Informationen zu diesen Bewertungen + + Um zu wissen, ob die Bewertungen dieses Produkts zuverlässig sind, überprüfen Sie die Qualität der Bewertungen. Es dauert nur etwa 60 Sekunden. + + Qualität der Bewertung überprüfen + + Lesen Sie unseren vertrauenswürdigen Leitfaden zur Produktbewertung + + Sehen Sie sich vor dem Kauf an, wie zuverlässig Produktbewertungen auf %1$s sind. Der Rezensionsprüfer, eine experimentelle Funktion von %2$s, ist direkt in den Browser integriert. Es funktioniert auch auf %3$s und %4$s. + + Wir nutzen das Potenzial von %1$s von Mozilla, um Ihnen dabei zu helfen, voreingenommene und nicht authentische Bewertungen zu vermeiden. Unser KI-Modell wird ständig verbessert, um Sie beim Einkaufen zu schützen. %2$s + + Weitere Informationen + + Indem Sie „Ja, ausprobieren“ auswählen, stimmen Sie der %2$s und den %3$s von %1$s zu, das von Mozilla angeboten wird. + + Datenschutzerklärung + + Nutzungsbedingungen + + Ja, ausprobieren + + Jetzt nicht + + Finden Sie heraus, ob Sie den Bewertungen dieses Produkts vertrauen können – bevor Sie es kaufen. + + Rezensionsprüfer ausprobieren + + Sind diese Bewertungen vertrauenswürdig? Überprüfen Sie es jetzt, um eine angepasste Bewertung zu sehen. + + Rezensionsprüfer öffnen + + Beta + + Qualitätskontrolle der Bewertungen öffnen + + Qualitätskontrolle der Bewertungen schließen + + %1$s von 5 Sternen + + Weniger anzeigen + + Mehr anzeigen + + Qualität + + Preis + + Versand + + Verpackung und Aussehen + + Wettbewerbsfähigkeit + Einklappen diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 7ea48c5b2..19287d638 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -93,6 +93,7 @@ Μάθετε για την Ολική προστασία cookie + Απαιτείται πρόσβαση στην κάμερα. Μεταβείτε στις Ρυθμίσεις Android, πατήστε «Δικαιώματα» και επιλέξτε «Να επιτρέπεται». @@ -353,6 +354,9 @@ Όχι τώρα + + Όχι τώρα + Άνοιγμα νέας καρτέλας %1$s @@ -2172,6 +2176,80 @@ Μετάβαση στις ρυθμίσεις + + + Έλεγχος κριτικών + + Αξιόπιστες κριτικές + + Μίγμα αξιόπιστων και αναξιόπιστων κριτικών + + Αναξιόπιστες κριτικές + + Πόσο αξιόπιστες είναι αυτές οι κριτικές; + + Προσαρμοσμένη βαθμολογία + + Μάθετε περισσότερα σχετικά με το %s. + + πώς το %s της Mozilla προσδιορίζει την ποιότητα των κριτικών + + Ρυθμίσεις + + Εμφάνιση διαφημίσεων στον έλεγχο κριτικών + + Μάθετε περισσότερα + + Απενεργοποίηση ελέγχου κριτικών + + Περισσότερες εναλλακτικές + + Διαφήμιση από το %s + + %s από τη Mozilla + + Έλεγχος τώρα + + Το προϊόν δεν είναι διαθέσιμο + + Έλεγχος ποιότητας κριτικής + + Έλεγχος ποιότητας κριτικής + + Ευχαριστούμε για την αναφορά! + + Δεν υπάρχει σύνδεση στο δίκτυο + + Μάθετε περισσότερα + + Επιλέγοντας «Έναρξη δοκιμής», αποδέχεστε την %2$s και τους %3$s του %1$s, που παρέχεται από τη Mozilla. + + πολιτική απορρήτου + + όρους χρήσης + + Έναρξη δοκιμής + + Όχι τώρα + + Beta + + %1$s από 5 αστέρια + + Εμφάνιση λιγότερων + + Εμφάνιση περισσότερων + + Ποιότητα + + Τιμή + + Αποστολή + + Συσκευασία και εμφάνιση + + Ανταγωνισμός + σύμπτυξη diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml index e83063e9f..5bf748eb0 100644 --- a/app/src/main/res/values-en-rCA/strings.xml +++ b/app/src/main/res/values-en-rCA/strings.xml @@ -66,6 +66,19 @@ Common myths about private browsing + + + Leave no traces on this device + + %1$s deletes your cookies, history, and site data when you close all your private windows. %2$s + + Who might be able to see my activity? + Launch your next private tab in one tap. @@ -88,6 +101,11 @@ Learn about Total Cookie Protection + + + Tap here to start a fresh private session. Delete your history, cookies — everything. + + Camera access needed. Go to Android settings, tap permissions, and tap allow. @@ -225,6 +243,9 @@ Home screen + + Erase browsing history Selected language @@ -346,6 +367,18 @@ Not now + + Try the Firefox search widget + + With Firefox on your home screen, you’ll have easy access to the privacy-first browser that blocks cross-site trackers. + + Add Firefox widget + + Not now + Open a new %1$s tab @@ -1315,6 +1348,8 @@ Private tab closed Private tabs closed + + Private browsing data deleted UNDO @@ -2137,6 +2172,162 @@ Go to settings + + + Review checker + + Reliable reviews + + Mix of reliable and unreliable reviews + + Unreliable reviews + + How reliable are these reviews? + + Adjusted rating + + Unreliable reviews removed + + Highlights from recent reviews + + How we determine review quality + + We use AI technology from %s by Mozilla to check the reliability of product reviews. This will only help you assess review quality, not product quality. + + + letter grade from A to F.]]> + + Reliable reviews. We believe the reviews are likely from real customers who left honest, unbiased reviews. + + We believe there’s a mix of reliable and unreliable reviews. + + Unreliable reviews. We believe the reviews are likely fake or from biased reviewers. + + adjusted rating is based only on reviews we believe to be reliable.]]> + + Highlights are from %s reviews within the last 80 days that we believe to be reliable.]]> + + Learn more about %s. + + how %s by Mozilla determines review quality + + Settings + + Show ads in review checker + + You’ll see occasional ads for relevant products. All ads must meet our review quality standards. %s + + Learn more + + Turn off review checker + + More to consider + + + Ad by %s + + Review checker is powered by %s. + + %s by Mozilla + + New info to check + + Check now + + Not enough reviews yet + + When this product has more reviews, we’ll be able to check their quality. + + Product is not available + + If you see this product is back in stock, report it and we’ll work on checking the reviews. + + Report this product is back in stock + + Checking review quality + + Checking review quality + + This could take about 60 seconds. + + Thanks for reporting! + + We should have info about this product’s reviews within 24 hours. Please check back. + + We can’t check these reviews + + Unfortunately, we can’t check the review quality for certain types of products. For example, gift cards and streaming video, music, and games. + + Info coming soon + + We should have info about this product’s reviews within 24 hours. Please check back. + + Analysis is up to date + + Got it + + No info available right now + + We’re working to resolve the issue. Please check back soon. + + No network connection + + Check your network connection and then try reloading the page. + + No info about these reviews yet + + To know whether this product’s reviews are reliable, check the review quality. It only takes about 60 seconds. + + Check review quality + + Try our trusted guide to product reviews + + See how reliable product reviews are on %1$s before you buy. Review checker, an experimental feature from %2$s, is built right into the browser. It works on %3$s and %4$s, too. + + Using the power of %1$s by Mozilla, we help you avoid biased and inauthentic reviews. Our AI model is always improving to protect you as you shop. %2$s + + Learn more + + By selecting “Yes, try it” you agree to %1$s by Mozilla’s %2$s and %3$s. + + privacy policy + + terms of use + + Yes, try it + + Not now + + Find out if you can trust this product’s reviews — before you buy. + + Try review checker + + Are these reviews reliable? Check now to see an adjusted rating. + + Open review checker + + Beta + + Open Review quality check + + Close review quality check + + %1$s out of 5 stars + + Show less + + Show more + + Quality + + Price + + Shipping + + Packaging and appearance + + Competitiveness + collapse diff --git a/app/src/main/res/values-es-rAR/strings.xml b/app/src/main/res/values-es-rAR/strings.xml index fc06c0ebc..a08e2ee75 100644 --- a/app/src/main/res/values-es-rAR/strings.xml +++ b/app/src/main/res/values-es-rAR/strings.xml @@ -66,6 +66,14 @@ %1$s elimina tu historial de búsqueda y navegación cuando salís de la aplicación o cerrás todas las pestañas privadas. Si bien esto no te hace anónimo en los sitios web o con tu proveedor de servicios de Internet, resulta más fácil mantener privado lo que hacés en línea respecto de cualquier otra persona que use este dispositivo. Mitos comunes sobre la navegación privada + + + No dejes rastros en este dispositivo + + ¿Quién podría ver mi actividad? + Abrir la próxima pestaña privada con un solo toque. @@ -89,6 +97,7 @@ Conocé sobre la protección total de cookies + Se necesita acceso a la cámara. Andá a la configuración de Android, pulsá permisos y permitir. @@ -227,6 +236,9 @@ Pantalla de inicio + + Borrar historial de navegación Idioma seleccionado @@ -353,6 +365,18 @@ No ahora + + Probá el widget de búsqueda de Firefox + + Con Firefox en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. + + Agregar widget de Firefox + + No ahora + Abrir una nueva pestaña de %1$s @@ -1342,6 +1366,8 @@ Pestaña privada cerrada Pestañas privada cerradas + + Se eliminaron los datos de navegación privada DESHACER @@ -2176,6 +2202,152 @@ Ir a ajustes + + + Verificador de revisiones + + Revisiones confiables + + Mezcla de revisiones confiables y no confiables + + Revisiones no confiables + + ¿Qué tan confiables son estas revisiones? + + Calificación ajustada + + Revisiones no confiables eliminadas + + Destacados de revisiones recientes + + Cómo determinamos la calidad de las revisiones + + Usamos tecnología de IA de %s by Mozilla para verificar la confiabilidad de las revisiones del producto. Esto solo te ayudará a evaluar la calidad de las reseñas, no la calidad del producto. + + calificación con una letra de la A a la F.]]> + + Revisiones confiables. Creemos que las revisiones probablemente provengan de clientes reales que dejaron revisiones honestas e imparciales. + + Creemos que hay una mezcla de revisiones confiables y no confiables. + + Revisiones poco fiables. Creemos que las revisiones probablemente sean falsas o provengan de revisores sesgados. + + valoración ajustada se basa únicamente en las revisiones que creemos fiables.]]> + + Lo más destacado proviene de %s revisiones de los últimos 80 días que creemos ser confiables.]]> + + Aprender más sobre %s. + + cómo %s de Mozilla determina la calidad de las reseñas + + Configuración + + Mostrar publicidad en el verificador de revisiones + + Verás anuncios ocasionales de productos relevantes. Todos los anuncios deben cumplir con nuestros estándares de calidad de valoraciones. %s + + Conocer más + + Desactivar el verificador de revisiones + + Más para considerar + + Anuncio de %s + + El verificador de revisiones funciona con %s. + + %s de Mozilla + + Nueva información para verificar + + Comprueba ahora + + Aún no hay suficientes revisiones + + Cuando este producto tenga más revisiones, podremos verificar su calidad. + + Producto no disponible + + Si ves que este producto está nuevamente disponible, infórmanos y trabajaremos en verificar las revisiones. + + Informar que este producto vuelve a estar en stock. + + Verificar la calidad de la revisión + + Verificar la calidad de la revisión + + Esto puede tardar unos 60 segundos. + + ¡Gracias por informarnos! + + Deberíamos tener información sobre las valoraciones de este producto en las próximas 24 horas. Por favor revisa. + + No podemos comprobar estas revisiones + + Lamentablemente, no podemos verificar la calidad de las revisiones de ciertos tipos de productos. Por ejemplo, tarjetas regalo y streaming de vídeos, música y juegos. + + Próximamente + + Deberíamos tener información sobre las valoraciones de este producto en las próximas 24 horas. Por favor revisa. + + El análisis está actualizado + + Entendido + + No hay información disponible en este momento + + Estamos trabajando para resolver este problema. Vuelva pronto. + + No hay conexion de red + + Verifique su conexión de red y luego intente recargar la página. + + Aún no hay información sobre estas revisiones + + Para saber si las valoraciones de este producto son fiables, verifica la calidad de las valoraciones. Solo toma unos 60 segundos. + + Verificar la calidad de las valoraciones + + Pruebe nuestra guía confiable de reseñas de productos + + Conocer más + + política de privacidad + + términos de uso + + Sí, pruébalo + + No ahora + + Descubre si puedes confiar en las reseñas de este producto antes de comprarlo. + + Probá el verificador de revisiones + + ¿Son confiables estas revisiones? Mirá ahora para ver una calificación ajustada. + + Abrir el verificador de revisiones + + Beta + + Verificación de calidad de revisión abierta + + Cerrar control de calidad de la valoración + + Mostrar menos + + Mostrar más + + Calidad + + Precio + + Envío + + Empaquetado y apariencia + + Competitividad + contraer diff --git a/app/src/main/res/values-es-rCL/strings.xml b/app/src/main/res/values-es-rCL/strings.xml index 9a9282c3e..87ddc6fdd 100644 --- a/app/src/main/res/values-es-rCL/strings.xml +++ b/app/src/main/res/values-es-rCL/strings.xml @@ -65,6 +65,19 @@ Mitos comunes sobre la navegación privada + + + No dejes rastros en este dispositivo + + %1$s elimina tus cookies, historial y datos del sitio cuando cierras todas tus ventanas privadas. %2$s + + ¿Quién podría ver mi actividad? + Iniciar tu siguiente pestaña privada con un solo toque. @@ -87,6 +100,11 @@ Aprende acerca de la protección total contra cookies + + + Toca aquí para iniciar una nueva sesión privada. Elimina tu historial, cookies — todo. + + Se necesita acceso a la cámara. Ve a los ajustes de Android, toca en permisos y luego en permitir. @@ -224,6 +242,9 @@ Pantalla de inicio + + Eliminar historial de navegación Idioma seleccionado @@ -346,6 +367,18 @@ Ahora no + + Prueba el widget de búsqueda de Firefox + + Con Firefox en tu pantalla de inicio, tendrás fácil acceso al navegador que prioriza la privacidad y bloquea los rastreadores entre sitios. + + Añadir widget de Firefox + + Ahora no + Abrir una nueva pestaña de %1$s @@ -1319,6 +1352,8 @@ Pestaña privada cerrada Pestañas privadas cerradas + + Datos de navegación privada eliminados DESHACER @@ -2145,6 +2180,119 @@ Ir a ajustes + + + Verificador de reseñas + + Reseñas confiables + + Mezcla de reseñas confiables y no confiables + + Revisiones poco confiables + + ¿Qué tan confiables son estas revisiones? + + Calificación ajustada + + Se eliminaron las reseñas poco confiables + + Aspectos destacados de reseñas recientes + + Cómo determinamos la calidad de las reseñas + + Revisiones confiables. Creemos que las reseñas probablemente provienen de clientes reales que dejaron reseñas honestas e imparciales. + + Creemos que hay una combinación de reseñas confiables y no confiables. + + Reseñas poco fiables. Creemos que las reseñas probablemente son falsas o provienen de revisores sesgados. + + calificación ajustada se basa únicamente en reseñas que consideramos confiables.]]> + + puntos destacados provienen de reseñas de %s de los últimos 80 días que creemos que son confiables.]]> + + Aprender más sobre %s. + + cómo %s de Mozilla determina la calidad de las reseñas + + Ajustes + + Mostrar anuncios en el verificador de reseñas + + Verás anuncios ocasionales de productos relevantes. Todos los anuncios deben cumplir con nuestros estándares de calidad de revisión. %s + + Aprender más + + Desactivar el verificador de reseñas + + Más para considerar + + Anuncio de %s + + %s de Mozilla + + Nueva información para comprobar + + Comprobar ahora + + Aún no hay suficientes reseñas + + El producto no está disponible + + + Informar que este producto volvió a estar disponible + + Comprobando la calidad de la reseña + + Comprobando la calidad de la reseña + + Esto podría tardar unos 60 segundos. + + ¡Gracias por informar! + + Entendido + + Comprobar la calidad de la reseña + + Prueba nuestra guía confiable de reseñas de productos + + Mira cuán confiables son las reseñas de productos en %1$s antes de comprar. El verificador de reseñas, una función experimental de %2$s, está integrado directamente en el navegador. También funciona en %3$s y %4$s. + + Aprender más + + política de privacidad + + términos de uso + + Si, probarlo + + Ahora no + + Descubre si puedes confiar en las reseñas de este producto — antes de comprarlo. + + Probar el verificador de reseñas + + Abrir verificador de reseñas + + Beta + + Abrir verificador de calidad de reseñas + + Cerrar verificador de calidad de reseñas + + %1$s de 5 estrellas + + Mostrar menos + + Mostrar más + + Calidad + + Precio + + Envío + + Competitividad + contraer diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 0d693cdad..0467d2728 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -67,6 +67,19 @@ Yleiset myytit yksityisestä selaamisesta + + + Älä jätä jälkiä tähän laitteeseen + + %1$s poistaa evästeet, historian ja sivustotiedot, kun suljet kaikki yksityiset ikkunasi. %2$s + + Kuka voi nähdä toimintani? + Avaa seuraava yksityinen välilehti yhdellä napautuksella. @@ -90,6 +103,11 @@ Lue lisää totaalisesta evästesuojasta + + + Aloita uusi yksityinen istunto napauttamalla tästä. Poista historia, evästeet — kaikki. + + Kameran käyttöoikeus vaaditaan. Siirry Androidin asetuksiin, napauta käyttöoikeudet ja napauta salli. @@ -229,6 +247,9 @@ Aloitusnäkymä + + Tyhjennä selaushistoria Valittu kieli @@ -352,6 +373,9 @@ Ei nyt + + Ei nyt + Avaa uusi %1$s-välilehti @@ -1335,6 +1359,8 @@ Yksityinen välilehti suljettu Yksityiset välilehdet suljettu + + Yksityiset selaustiedot poistettu KUMOA @@ -2170,6 +2196,68 @@ Siirry asetuksiin + + + Arvostelun tarkistin + + Luotettavat arvostelut + + Sekoitus luotettavia ja epäluotettavia arvosteluja + + Epäluotettavat arvostelut + + Kuinka luotettavia nämä arvostelut ovat? + + Kohokohdat viimeaikaisista arvosteluista + + Kuinka määritämme arvostelun laadun + + Lue lisää + + Poista arvostelujen tarkistus käytöstä + + %s Mozillalta + + Tarkista nyt + + Tuote ei ole saatavilla + + Tämä voi kestää noin 60 sekuntia. + + Selvä + + Ei verkkoyhteyttä + + Tarkista arvostelun laatu + + Lue lisää + + Kyllä, kokeile + + Ei nyt + + Ota selvää, voitko luottaa tämän tuotteen arvosteluihin – ennen kuin ostat. + + Kokeile arvostelujen tarkistusta + + Avaa arvostelujen tarkistus + + %1$s/5 tähteä + + Näytä vähemmän + + Näytä lisää + + Laatu + + Hinta + + Toimitus + + Paketointi ja ulkoasu + + Kilpailukyky + supista diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 60291eac4..ea8e04951 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -89,6 +89,7 @@ En savoir plus sur la protection totale contre les cookies + Accès à la caméra nécessaire. Accédez aux paramètres Android, appuyez sur Autorisations, puis sur Autoriser. @@ -2178,6 +2179,74 @@ Ouvrir les paramètres + + + Vérificateur d’avis + + Avis fiables + + Mélange d’avis fiables et non fiables + + Avis non fiables + + Quelle est la fiabilité de ces avis ? + + Note ajustée + + Avis non fiables supprimés + + Comment nous déterminons la qualité d’un avis + + Paramètres + + Afficher des publicités dans le vérificateur d’avis + + En savoir plus + + Désactiver le vérificateur d’avis + + Publicité de %s + + Le vérificateur d’avis fonctionne grâce à %s. + + Vérifier maintenant + + Pas encore assez d’avis + + Le produit n’est pas disponible + + + Signaler que ce produit est de retour en stock + + Merci de nous l’avoir signalé ! + + Nous travaillons à résoudre ce problème. Veuillez réessayer ultérieurement. + + Aucune connexion réseau + + En savoir plus + + politique de confidentialité + + conditions d’utilisation + + Bêta + + Moins de détails + + Plus de détails + + Qualité + + Prix + + Expédition + + Emballage et apparence + + + Compétitivité + réduire diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml index 17200807e..8f1b66a4f 100644 --- a/app/src/main/res/values-hy-rAM/strings.xml +++ b/app/src/main/res/values-hy-rAM/strings.xml @@ -64,6 +64,19 @@ %1$s-ը մաքրում է որոնման և զննարկման պատմությունը, երբ փակում եք ներդիրը կամ դուրս եք գալիս հավելվածից: Չնայած դա ձեզ անանուն չի դարձնում կայքերի կամ ձեր համացանցի ծառայություններ մատուցողի համար, այն ավելի հեշտ է դարձնում ձեր առցանց ակտիվության գաղտնիությունը այն դեպքում, եթե մեկ ուրիշը ևս օգտագործում է տվյալ սարքը: Տարածված առասպելներ գաղտնի դիտարկման վերաբերյալ + + + Այս սարքի վրա հետքեր չթողնել + + %1$s-ը ջնջում է ձեր թխուկները, պատմությունը և կայքի տվյալները, երբ փակում եք ձեր բոլոր մասնավոր պատուհանները: %2$s + + Ո՞վ կարող է տեսնել իմ գործունեությունը: + Գործարկեք հաջորդ անձնական ներդիրը մեկ հպումով: @@ -86,6 +99,11 @@ Իմացեք Total Cookie Protection-ի մասին + + + Հպեք այստեղ՝ նոր մասնավոր աշխատաշրջան սկսելու համար: Ջնջեք ձեր պատմությունը, թխուկները՝ ամեն ինչ: + + Անհրաժեշտ է տեսախցիկի մատչում: Անցեք Android-ի կարգավորումներ, հպեք թույլտվություններին և հպեք թույլատրել: @@ -224,6 +242,9 @@ Հիմնական էկրան + + Ջնջել դիտարկման պատմությունը Ընտրված լեզուն @@ -345,6 +366,18 @@ Ոչ հիմա + + Փորձեք Firefox-ի որոնման վիդջեթը + + Եթե Firefox-ը ձեր հիմնական էկրանին լինի, դուք հեշտությամբ մուտք կունենաք գաղտնիությունը առաջին տեղում զննիչին, որն արգելափակում է միջկայքային հետագծումները: + + Ավելացնել Firefox վիդջեթ + + Ոչ հիմա + Բացել նոր %1$s ներդիր @@ -1319,6 +1352,8 @@ Գաղտնի ներդիրը փակվեց Գաղտնի ներդիրները փակվեցին + + Մասնավոր զննարկման տվյալները ջնջվել են ՀԵՏԱՐԿԵԼ @@ -2144,6 +2179,162 @@ Անցնել Կարգավորումներին + + + Վերանայման ստուգիչ + + Հուսալի կարծիքներ + + Հուսալի և անվստահելի կարծիքների խառնուրդ + + Անվստահելի կարծիքներ + + Որքանո՞վ են վստահելի այս կարծիքները: + + Ճշգրտված վարկանիշ + + Անվստահելի կարծիքները հեռացվեցին + + Գունանշումներ վերջին կարծիքներից + + Ինչպես ենք մենք որոշում կարծիքների որակը + + Մենք օգտագործում ենք AI տեխնոլոգիա %s-ից Mozilla-ի կողմից՝ արտադրանքի կարծիքների հավաստիությունը ստուգելու համար: Սա միայն կօգնի ձեզ գնահատել կարծիքների որակը, այլ ոչ թե արտադրանքի որակը: + + տառային գնահատական՝ A-ից մինչև F:]]> + + + Հուսալի կարծիքներ: Մենք կարծում ենք, որ կարծիքները, հավանաբար, իրական հաճախորդներից են, ովքեր թողել են ազնիվ, անաչառ կարծիքներ: + + Մենք հավատում ենք, որ կա հուսալի և անվստահելի կարծիքների խառնուրդ: + + Անվստահելի կարծիքներ: Մենք կարծում ենք, որ կարծիքները, հավանաբար, կեղծ են կամ կողմնակալ գրախոսների կողմից: + + Ճշգրտված վարկանիշը հիմնված է միայն այն կարծիքների վրա, որոնք մենք վստահելի ենք համարում:]]> + + Գունանշումները վերջին 80 օրվա ընթացքում %s կարծիքներից են, որոնք, մեր կարծիքով, հուսալի են:]]> + + Իմացեք ավելին %s-ի մասին: + + ինչպես %s-ը է Mozilla-ի կողմից որոշում կարծիքների որակը + + Կարգավորումներ + + Ցուցադրել գովազդը կարծիքների ստուգիչում + + Դուք երբեմն կտեսնեք համապատասխան ապրանքների գովազդներ: Բոլոր գովազդները պետք է համապատասխանեն կարծիքների որակի մեր չափանիշներին: %s + + Իմանալ ավելին + + Անջատեք վերանայման ստուգիչը + + Ավելի շատ հաշվի առնել + + Գովազդ %s-ի կողմից + + Կարծիքների ստուգիչն աշխատում է %s-ի կողմից: + + %s Mozilla-ի կողմից + + Նոր տեղեկատվություն ստուգելու համար + + Ստուգիր հիմա + + Դեռևս բավարար ակնարկներ չկան + + Երբ այս ապրանքն ավելի շատ կարծիքներ ունենա, մենք կկարողանանք ստուգել դրանց որակը: + + Ապրանքը հասանելի չէ + + Եթե տեսնեք, որ այս ապրանքը կրկին պահեստում է, հաղորդեք դրա մասին, և մենք կաշխատենք ստուգել ակնարկները: + + Հաղորդեք, որ այս ապրանքը կրկին պահեստում է + + Կարծիքի որակի ստուգում + + Կարծիքի որակի ստուգում + + Սա կարող է տևել մոտ 60 վայրկյան: + + Շնորհակալություն հայտնելու համար: + + Մենք պետք է 24 ժամվա ընթացքում տեղեկություններ ունենանք այս ապրանքի կարծիքների մասին: Խնդրում ենք նորից ստուգել: + + Մենք չենք կարող ստուգել այս կարծիքները + + Ցավոք, մենք չենք կարող ստուգել որոշ տեսակի ապրանքների կարծիքների որակը: Օրինակ՝ նվեր քարտեր և հոսքային տեսանյութերի, երաժշտության և խաղեր: + + Տեղեկությունները շուտով + + Մենք պետք է 24 ժամվա ընթացքում տեղեկություններ ունենանք այս ապրանքի կարծիքների մասին: Խնդրում ենք նորից ստուգել: + + Վերլուծությունն արդիական է + + Հասկացա + + Այս պահին տեղեկություններ չկան + + Մենք աշխատում ենք խնդիրը լուծելու ուղղությամբ։ Խնդրում ենք նորից ստուգել շուտով: + + Չկա ցանցային կապակցում + + Ստուգեք ձեր ցանցային կապակցումը և փորձեք վերաբեռնել էջը: + + Այս կարծիքների մասին դեռ տեղեկություններ չկան + + Իմանալու համար, թե արդյոք այս ապրանքի կարծիքները հուսալի են, ստուգեք կարծիքների որակը: Դա կտևի ընդամենը մոտ 60 վայրկյան: + + Ստուգեք կարծիքի որակը + + Փորձեք արտադրանքի կարծիքների մեր վստահելի ուղեցույցը + + Գնելուց առաջ տեսեք, թե որքան հուսալի են արտադրանքի կարծիքները %1$s-ում: Կարծիքների ստուգիչը՝ %2$s-ի փորձարարական յուրահատկությունն է և ներկառուցված է հենց զննիչում: Այն աշխատում է նաև %3$s-ի և %4$s-ի վրա: + + Օգտագործելով %1$s-ի հզորությունը Mozilla-ի կողմից՝ մենք օգնում ենք ձեզ խուսափել կողմնակալ և ոչ վավերական կարծիքներից: Մեր AI մոդելը միշտ բարելավվում է՝ պաշտպանելու ձեզ գնումներ կատարելիս: %2$s + + Իմանալ ավելին + + + Ընտրելով «Այո, փորձիր»՝ դուք համաձայնում եք %1$s-ը Mozilla-ի կողմիցի %2$s-ին և %3$s-ին: + + գաղտնիության դրույթներ + + օգտվելու կանոններ + + Այո, փորձիր + + Ոչ հիմա + + Իմացեք, թե արդյոք կարող եք վստահել այս ապրանքի կարծիքներին՝ նախքան գնելը: + + Վերանայման ստուգիչ + + Արդյո՞ք այս կարծիքները հուսալի են: Ստուգեք հիմա՝ ճշգրտված գնահատականը տեսնելու համար: + + Բացել կարծիքների ստուգիչը + + Բետա + + Բացել կարծիքների որակի ստուգումը + + Փակել կարծիքի որակի ստուգումը + + %1$s-ը 5 քայլից + + Ցուցադրել ավելի քիչ + + Ցուցադրել ավելին + + Որակ + + Գին + + Առաքում + + Փաթեթավորում և տեսք + + Մրցունակություն + Կոծկել diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml index d33eb415b..1b85cb16a 100644 --- a/app/src/main/res/values-ia/strings.xml +++ b/app/src/main/res/values-ia/strings.xml @@ -66,6 +66,20 @@ Mythos commun sur le navigation private + + + Non lassar tracias sur iste apparato + + %1$s dele tu cookies, chronologia e le datos del sitos web quando tu claude tote le fenestras private. %2$s + + + Qui poterea vider mi activitate? + Lancea le proxime scheda private con un tocco. @@ -88,6 +102,12 @@ Pro saper plus re le Protection total del cookies + + + + Tocca ci pro initiar un fresc session in privato. Dele tu chronologia, cookies: omne cosa. + + Accesso al camera necessari. Vade al parametros de Android, tocca Permissiones e tocca Permitter. @@ -226,6 +246,9 @@ Pagina initial + + Eliminar le chronologia de navigation Lingua seligite @@ -351,6 +374,18 @@ Non ora + + Prova le widget de recerca de Firefox + + Con Firefox sur tu pagina initial, tu habera facile accesso al navigator de maxime discretion que bloca traciatores inter-sitos. + + Adde le widget Firefox + + Non ora + Aperir un nove scheda %1$s @@ -1361,6 +1396,8 @@ Scheda private claudite Schedas private claudite + + Datos de navigation private delite DISFACER @@ -2205,6 +2242,162 @@ Ir a parametros + + + Verificator de recension + + Recensiones fidabile + + Mixtura de recensiones fidabile e non fidabile + + Recensiones non fidabile + + Quanto fidabile es iste recensiones? + + Classification adjustate + + Recensiones non fidabile removite + + Aspectos notabile ab recensiones recente + + Nostre modo de definir le qualitate de revision + + Nos usa le technologia de intelligentia artificial de %s per Mozilla pro controlar le fidabilitate del recensiones de producto. Iste solo te adjutara evalutar le qualitate del recensiones, non qualitate del productos. + + littera de classification ab A a F.]]> + + Recensiones fidabile. Nos crede probabile que le recensiones es de clientes real qui lassava honeste, recensiones sin prejudicios. + + + Nos crede que il ha un mixtura de recensiones fidabile e non fidabile. + + Recensiones non fidabile. Nos crede probabile que le recensiones es false o de revisores prevenite. + + classification adjustate es basate solo sur recensiones que nos crede fidabile.]]> + + Aspectos notabile es ab %s recensiones in le ultime 80 dies que nos crede fidabile.]]> + + Pro saper plus re %s. + + como %s per Mozilla determina le qualitate de revision + + Parametros + + Monstrar avisos publicitari in le verificator de recension + + Tu videra avisos publicitari occasional pro productos pertinente. Tote le avisos publicitari debe satisfacer nostre standards de qualitate del recensiones. %s + + Saper plus + + Disactivar le verificator de recension + + Altero a considerar + + Aviso publicitari per %s + + Le verificator de recension es supportate per %s. + + %s per Mozilla + + Nove informationes a controlar + + Controlar ora + + Revisiones ancora non bastante + + Quando iste producto habera plus de recensiones, nos potera controlar su qualitate. + + Le producto non es disponibile + + Si tu videra que iste producto es retro in stock, reporta lo e nos laborara pro controlar le recensiones. + + Reporta que iste producto es retro in stock + + Controlante qualitate de recension + + + Controlante qualitate de recension + + Isto pote prender circa 60 secundas. + + Gratias pro reportar! + + Nos deberea haber info re iste recensiones de producto in 24 horas. Controla plus tarde. + + Nos non pote controlar iste recensiones + + Infortunatemente, nos non pote verificar le qualitate de recension pro certe typos de productos. Per exemplo, cartas dono e diffusion multimedial video, musica, e jocos. + + Info a venir tosto + + Nos deberea haber info re iste recensiones de producto in 24 horas. Controla plus tarde. + + Analyse actualisate + + Comprendite + + Nulle info disponibile al momento + + Nos labora pro resolver le problema. Retenta tosto. + + Nulle connexion de rete + + Verifica tu connexion de rete e pois, tenta recargar le pagina. + + Nulle info ancora re iste recensiones + + Pro saper si iste recensiones de producto es fidabile, controla le qualitate de recension. Illo emplea solo circa 60 secundas. + + Controlar qualitate de recension + + Prova nostre guida digne de fide pro recensiones de producto + + Vide quanto fidabile es le recensiones de producto sur %1$s ante que tu compra. Verificator de recension, un function experimental de %2$s, es producite justo in le navigator. Illo ancora functiona sur %3$s e %4$s. + + Per le potentia de %1$s per Mozilla, nos te adjuta a evitar recensiones prevenite e inauthentic. Nostre modello de intelligentia artificial sempre meliora pro proteger te dum tu compra. %2$s + + Pro saper plus + + Seligente “Si, prova lo” tu concorda con le %2$s e le %3$s de %1$s per Mozilla. + + politica de confidentialitate + + terminos de uso + + Si, essaya lo + + Non ora + + Discoperi si tu pote fider te de iste recensiones de producto, ante que tu compra. + + Prova verificator de recension + + Es iste recensiones fidabile? Consulta ora pro vider un classification adjustate. + + Aperir le verificator de recension + + Beta + + Aperir Controlo de qualitate del recensiones + + Clauder controlo de qualitate del recensiones + + %1$s ex 5 stellas + + Monstrar minus + + Monstrar plus + + Qualitate + + Precio + + Expedition + + Imballage e apparentia + + Competitivitate + contraher diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b21b089c3..f10d82e61 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -66,6 +66,20 @@ %1$s cancella la cronologia di ricerca e di navigazione dalle schede anonime quando le chiudi o esci dall’app. Questo non ti rende anonimo nei confronti dei siti web o del tuo fornitore di servizi internet, ma è utile per impedire a chi usa il tuo stesso dispositivo di vedere la tua attività online. Miti da sfatare sulla navigazione anonima + + + Non lasciare tracce su questo dispositivo + + + %1$s elimina i cookie, la cronologia e i dati dei siti web quando chiudi tutte le finestre anonime. %2$s + + Chi potrebbe vedere la mia attività? + Apri la prossima scheda anonima con un solo tocco. @@ -88,6 +102,12 @@ Ulteriori informazioni sulla Protezione totale per i cookie + + + + Tocca qui per avviare una nuova sessione anonima. Elimina cronologia, cookie… tutto. + + È richiesto l’accesso alla fotocamera. Puoi acconsentire all’accesso dalla scheda dei permessi nelle impostazioni di Android. @@ -227,6 +247,9 @@ Schermata principale + + Elimina cronologia di navigazione Lingua selezionata @@ -350,6 +373,18 @@ Non adesso + + Prova il widget di ricerca di Firefox + + Con Firefox nella schermata iniziale, potrai accedere facilmente a un browser dedicato alla privacy che blocca i traccianti intersito. + + Aggiungi widget di Firefox + + Non ora + Apri una nuova scheda in %1$s @@ -1353,6 +1388,8 @@ Scheda anonima chiusa Schede anonime chiuse + + Eliminati dati della navigazione anonima ANNULLA @@ -2190,6 +2227,164 @@ Vai alle impostazioni + + + Verifica recensioni + + Recensioni affidabili + + Un misto di recensioni affidabili e inaffidabili + + Recensioni inaffidabili + + Quanto sono affidabili queste recensioni? + + Valutazione rettificata + + Recensioni inaffidabili rimosse + + In evidenza dalle recensioni recenti + + Come determiniamo la qualità delle recensioni + + Utilizziamo la tecnologia IA di %s by Mozilla per analizzare l’affidabilità delle recensioni sui prodotti. Questa analisi ti aiuterà solo a valutare la qualità delle recensioni, non la qualità del prodotto. + + voto in lettere dalla A alla F.]]> + + Recensioni affidabili. Riteniamo che le recensioni provengano con buona probabilità da clienti reali che hanno lasciato recensioni oneste e imparziali. + + Crediamo che ci sia un misto di recensioni affidabili e inaffidabili. + + Recensioni inaffidabili. Riteniamo che le recensioni siano false o provenienti da revisori di parte. + + valutazione rettificata si basa esclusivamente su recensioni che riteniamo affidabili.]]> + + in evidenza provengono dalle recensioni su %s degli ultimi 80 giorni che riteniamo affidabili.]]> + + Scopri ulteriori informazioni su %s. + + come %s by Mozilla determina la qualità delle recensioni + + Impostazioni + + Mostra annunci nella verifica recensioni + + Verranno visualizzati annunci occasionali per prodotti pertinenti. Tutti gli annunci devono soddisfare i nostri standard di qualità per le recensioni. %s + + Ulteriori informazioni + + Disattiva la verifica recensioni + + Altri prodotti da valutare + + Annuncio di %s + + Verifica recensioni con tecnologia %s. + + + %s by Mozilla + + Nuove informazioni da controllare + + Controlla adesso + + Non ci sono ancora abbastanza recensioni + + Non appena questo prodotto avrà più recensioni, saremo in grado di verificarne la qualità. + + Il prodotto non è disponibile + + Se noti che questo prodotto è di nuovo disponibile, segnalacelo e lavoreremo per verificarne le recensioni. + + Segnala che questo prodotto è di nuovo disponibile + + + Verifica qualità della recensioni in corso + + Verifica qualità della recensioni in corso + + Questa operazione potrebbe richiedere circa 60 secondi. + + Grazie per la segnalazione! + + Dovremmo avere informazioni su questo prodotto entro 24 ore. Ricontrolla più tardi. + + Impossibile verificare queste recensioni + + + Purtroppo non è possibile verificare la qualità delle recensioni per alcuni tipi di prodotto come carte regalo, video in streaming e giochi. + + Informazioni disponibili a breve + + Dovremmo avere informazioni su questo prodotto entro 24 ore. Ricontrolla più tardi. + + L’analisi è aggiornata + + OK + + Nessuna informazione disponibile in questo momento + + Stiamo lavorando per risolvere il problema. Ricontrolla a breve. + + Nessuna connessione di rete + + Controlla la connessione di rete e prova a ricaricare la pagina. + + Non ci sono ancora informazioni su queste recensioni + + + Per sapere se le recensioni di questo prodotto sono affidabili, verificane la qualità. Ci vogliono solo circa 60 secondi. + + Verifica qualità della recensioni + + Prova la nostra guida per ottenere affidabili recensioni di prodotti + + Scopri quanto sono affidabili le recensioni dei prodotti su %1$s prima di acquistarli. Verifica recensioni, una funzione sperimentale di %2$s, è integrata direttamente nel browser. Funziona anche su %3$s e %4$s. + + Utilizzando la tecnologia di %1$s by Mozilla, ti aiutiamo a evitare recensioni di parte e non autentiche. Il nostro modello di intelligenza artificiale migliora costantemente per proteggerti mentre fai acquisti. %2$s + + Ulteriori informazioni + + Selezionando “Sì, provalo” accetti l’%2$s e i %3$s di %1$s by Mozilla. + + informativa sulla privacy + + termini di utilizzo + + Sì, provalo + + Non ora + + Prima di acquistare, scopri se puoi fidarti delle recensioni di questo prodotto. + + Prova verifica recensioni + + Queste recensioni sono affidabili? Controlla ora per vedere la valutazione rettificata. + + Apri verifica recensioni + + Beta + + Apri verifica qualità recensioni + + Chiudi verifica qualità recensioni + + %1$s su 5 stelle + + Nascondi dettagli + + Mostra dettagli + + Qualità + + Prezzo + + Spedizione + + Imballaggio e aspetto + + Competitività + comprimi diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 71d7240a5..19e8beb61 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -66,6 +66,19 @@ מיתוסים נפוצים על גלישה פרטית + + + לא להשאיר עקבות במכשיר זה + + ‏%1$s מוחק את העוגיות, ההיסטוריה ונתוני האתר שלך כאשר כל החלונות הפרטיים שלך נסגרים. %2$s + + מי יכול לראות את הפעילות שלי? + פתיחת הלשונית הפרטית הבאה שלך בהקשה אחת. @@ -88,6 +101,11 @@ מידע נוסף על הגנת עוגיות מלאה + + + יש להקיש כאן כדי להתחיל הפעלה פרטית חדשה. פעולה זו תמחק את ההיסטוריה והעוגיות שלך - הכל. + + דרושה גישה למצלמה. יש לעבור להגדרות ה־Android, להקיש על הרשאות ולאחר מכן על ״לאפשר״. @@ -224,6 +242,9 @@ מסך הבית + + מחיקת היסטורית גלישה שפה נבחרת @@ -330,6 +351,18 @@ לא כעת + + נסו את ווידג’ט החיפוש של Firefox + + עם Firefox במסך הבית שלך, תהיה לך גישה קלה לדפדפן ששם את הפרטיות בעדיפות ראשונה, ושחוסם רכיבי מעקב חוצי אתרים. + + הוספת ווידג’ט של Firefox + + לא כעת + פתיחת לשונית %1$s חדשה @@ -1255,6 +1288,8 @@ הלשונית הפרטית נסגרה הלשוניות הפרטיות נסגרו + + נתוני הגלישה הפרטית נמחקו ביטול @@ -2083,6 +2118,161 @@ מעבר להגדרות + + + בודק הסקירות + + סקירות אמינות + + שילוב של סקירות אמינות ובלתי אמינות + + סקירות בלתי אמינות + + עד כמה הסקירות האלו אמינות? + + דירוג מותאם + + סקירות בלתי אמינות הוסרו + + דגשים מהסקירות האחרונות + + כיצד אנו קובעים את איכות הסקירות + + אנו משתמשים בטכנולוגיית AI של %s מבית Mozilla כדי לנתח את המהימנות של סקירות מוצרים. ניתוח זה רק יעזור לך להעריך את איכות הסקירות, לא את איכות המוצר. + + ציון אות מ־A עד F.]]> + + סקירות אמינות. אנו מאמינים שהסקירות הן ככל הנראה מלקוחות אמיתיים שהשאירו סקירות כנות ושאינן משוחדות. + + אנו מאמינים שיש שילוב של סקירות אמינות ובלתי אמינות. + + סקירות בלתי אמינות. אנו מאמינים שהסקירות כנראה מזויפות או של סוקרים מוטים או משוחדים. + + הדירוג המותאם מבוסס רק על סקירות שאנו מאמינים שהן אמינות.]]> + + הדגשים הם מסקירות של %s במהלך 80 הימים האחרונים, שאנו מאמינים שהן אמינות.]]> + + מידע נוסף על %s. + + כיצד %s מבית Mozilla קובע את איכות הסקירות + + הגדרות + + הצגת פרסומות בבודק הסקירות + + מדי פעם יוצגו פרסומות עבור מוצרים רלוונטיים. כל הפרסומות חייבות לעמוד בתקני איכות הסקירות שלנו. %s + + מידע נוסף + + כיבוי בודק הסקירות + + פרסומת מאת %s + + בודק הסקירות מופעל על־ידי %s. + + %s מאת Moziila + + + מידע חדש לבדיקה + + ביצוע בדיקה כעת + + אין מספיק סקירות עדיין + + כאשר למוצר זה יהיו סקירות נוספות, נוכל לבדוק את האיכות שלהן. + + המוצר אינו זמין + + אם מוצר זה חזר למלאי, נא לדווח על כך ואנו נעבוד על בדיקת הסקירות. + + שליחת דיווח שמוצר זה חזר למלאי + + בתהליך בדיקת איכות הסקירות + + בתהליך בדיקת איכות הסקירות + + פעולה זו יכולה להימשך כ־60 שניות. + + תודה על הדיווח! + + + אמור להיות לנו מידע על הסקירות של מוצר זה תוך 24 שעות. נא לבדוק שוב אז. + + אין באפשרותנו לבדוק סקירות אלה + + למרבה הצער, איננו יכולים לבדוק את איכות הסקירות עבור סוגים מסויימים של מוצרים. למשל, כרטיסי מתנה והזרמת וידאו, מוזיקה ומשחקים. + + מידע יבוא בקרוב + + אמור להיות לנו מידע על הסקירות של מוצר זה תוך 24 שעות. נא לבדוק שוב אז. + + הניתוח עדכני + + הבנתי + + אין מידע זמין כרגע + + אנחנו עובדים על פתרון הבעיה. נא לבדוק שוב בקרוב. + + אין חיבור לרשת + + נא לבדוק את החיבור שלך לרשת ולנסות לטעון מחדש את הדף. + + אין עדיין מידע על סקירות אלה + + כדי לדעת האם הסקירות של מוצר זה אמינות, יש לבדוק את איכות הסקירות. פעולה זו נמשכת כ־60 שניות. + + בדיקת איכות הסקירות + + נסו את המדריך המהימן שלנו לסקירות מוצרים + + ניתן לבדוק עד כמה ביקורות מוצר אמינות ב-%1$s לפני הקנייה. בודק הסקירות, תכונה ניסיונית מאת %2$s, מובנה ישירות בדפדפן. הוא עובד גם על %3$s ו־%4$s. + + באמצעות הכוח של %1$s מאת Mozilla, אנו עוזרים לך להימנע מסקירות מוטות ולא אותנטיות. מודל הבינה המלאכותית שלנו משתפר תמיד כדי להגן עליך בזמן הקנייה. %2$s + + מידע נוסף + + + בחירה באפשרות ״כן, ארצה לנסות״ מהווה הסכמה ל%2$s ול%3$s של %1$s מאת Mozilla. + + הצהרת הפרטיות + + תנאי השימוש + + כן, ארצה לנסות + + לא כעת + + לגלות האם ניתן לסמוך על הסקירות של המוצר הזה - לפני הקנייה. + + לנסות את בודק הסקירות + + האם הסקירות האלו אמינות? ניתן לבדוק כעת כדי לראות דירוג מותאם. + + פתיחת בודק הסקירות + + Beta + + פתיחת הבודק של איכות הסקירות + + סגירת הבודק של איכות הסקירות + + %1$s מתוך 5 כוכבים + + להציג פחות + + להציג יותר + + איכות + + מחיר + + משלוח + + אריזה ומראה + + תחרותיות + לכווץ diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index 92f66f1cc..7ba09273a 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -91,6 +91,7 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Issin ugar ɣef ummesten asemday mgal inagan n tuqqna + Isɛa anekcum ɣer tkamiṛat. Ddu ɣer iɣewwaṛen Android, sit ɣef tisirag, sakin senned sireg. @@ -2174,6 +2175,37 @@ Tiktiwin tigejdanin yuzzlen ur nṣeḥḥi ara Ddu ɣer yiɣewwaren + + Iɣewwaṛen + + Issin ugar + + %s s Mozilla + + Talɣut tamaynut ara yettusneqden + + Senqed tura + + Awi-t + + Tasertit n tbaḍnit + + tiwtilin n useqdec + + Ih, ɛreḍ tikkelt niḍen + + Mačči tura + + Beta + + Sken drus + + Sken ugar + + Taɣara + + Ssuma + fneẓ diff --git a/app/src/main/res/values-kk/strings.xml b/app/src/main/res/values-kk/strings.xml index fd874e6a8..8ad3e48f4 100644 --- a/app/src/main/res/values-kk/strings.xml +++ b/app/src/main/res/values-kk/strings.xml @@ -85,6 +85,7 @@ Cookie файлдарынан Толық қорғаныс туралы білу + Камера рұқсаты керек. Android баптауларына өтіп, Рұқсаттарды ашып, "Рұқсат ету" таңдаңыз. @@ -220,6 +221,9 @@ Бастапқы экран + + Шолу тарихын өшіру Таңдалған тіл @@ -343,6 +347,15 @@ Қазір емес + + Firefox іздеу виджетін қолданып көру + + Firefox виджетін қосу + + Қазір емес + Жаңа %1$s бетін ашу @@ -1315,6 +1328,8 @@ Жекелік беті жабылды Жекелік беттер жабылды + + Жеке шолу деректері өшірілді БОЛДЫРМАУ @@ -2147,6 +2162,19 @@ Баптауларға өту + + Баптаулар + + Көбірек білу + + Қазір тексеру + + Түсіндім + + Иә, қолданып көру + + Қазір емес + бүктеу diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index cbf0c9368..c400d3018 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -71,6 +71,19 @@ 사생활 보호 모드에 관한 흔한 오해 + + + 이 기기에 흔적을 남기지 마세요 + + %1$s는 모든 사생활 보호 창을 닫을 때 쿠키, 기록 및 사이트 데이터를 삭제합니다. %2$s + + 누가 내 활동을 볼 수 있나요? + 한 번 눌러 다음 사생활 보호 탭을 시작합니다. @@ -93,6 +106,12 @@ 전체 쿠키 보호에 대해 알아보기 + + + + 새 사생활 세션을 시작하려면 여기를 누르세요. 기록, 쿠키 등 모든 것을 삭제하세요. + + 카메라 액세스가 필요합니다. Android 설정으로 이동하여 권한을 누른 다음 허용을 누르세요. @@ -231,6 +250,9 @@ 홈 화면 + + 방문 기록 삭제 선택된 언어 @@ -354,6 +376,19 @@ 나중에 + + Firefox 검색 위젯을 사용해 보세요 + + + 홈 화면에 Firefox를 사용하면, 교차 사이트 추적기를 차단하는 개인 정보 보호 우선 브라우저에 쉽게 접근할 수 있습니다. + + Firefox 위젯 추가 + + 나중에 + 새 %1$s 탭 열기 @@ -1360,6 +1395,8 @@ 사생활 보호 탭 닫힘 사생활 보호 탭 닫힘 + + 사생활 보호 모드 데이터 삭제됨 실행 취소 @@ -2202,6 +2239,161 @@ 설정으로 이동 + + + 리뷰 검사기 + + 신뢰할 수 있는 리뷰 + + 신뢰할 수 있는 리뷰와 신뢰할 수 없는 리뷰가 혼합됨 + + 신뢰할 수 없는 리뷰 + + 이 리뷰는 얼마나 신뢰할 수 있나요? + + 조정된 평점 + + 신뢰할 수 없는 리뷰는 삭제됨 + + 최근 리뷰의 하이라이트 + + 리뷰 품질을 결정하는 방법 + + Mozilla의 %s AI 기술을 사용하여 제품 리뷰의 신뢰성을 확인합니다. 이는 제품 품질이 아닌 리뷰 품질을 평가하는 데에만 도움이 됩니다. + + 문자 등급이 부여됩니다.]]> + + 신뢰할 수 있는 리뷰. 솔직하고 공정한 리뷰를 남긴 실제 고객의 리뷰일 가능성이 높다고 생각합니다. + + 신뢰할 수 있는 리뷰와 신뢰할 수 없는 리뷰가 혼합되어 있다고 생각합니다. + + 신뢰할 수 없는 리뷰. 리뷰가 가짜이거나 편향된 리뷰어의 리뷰일 가능성이 있다고 생각합니다. + + 조정된 평점은 신뢰할 수 있다고 믿는 리뷰만을 기반으로 합니다.]]> + + 하이라이트는 지난 80일 동안 신뢰할 수 있는 %s의 리뷰에서 나온 것입니다.]]> + + %s에 대해 더 알아보세요. + + Mozilla의 %s이 리뷰 품질을 결정하는 방법 + + 설정 + + 리뷰 검사기에 광고 표시 + + 관련 제품에 대한 광고가 가끔 표시됩니다. 모든 광고는 리뷰 품질 기준을 충족해야 합니다. %s + + 더 알아보기 + + 리뷰 검사기 끄기 + + 더 보기 + + %s의 광고 + + 리뷰 검사기는 %s에 의해 제공됩니다. + + Mozilla의 %s + + 확인해야 할 새로운 정보 + + 지금 확인 + + 아직 리뷰가 충분하지 않음 + + 이 제품에 대한 리뷰가 더 많아지면 품질을 확인할 수 있을 것입니다. + + 제품을 사용할 수 없음 + + 이 제품이 재입고된 것을 확인하시면, 보고해 주시면 리뷰를 확인하도록 하겠습니다. + + 이 제품이 재입고되었다고 보고 + + 리뷰 품질 확인 중 + + 리뷰 품질 확인 중 + + 이 작업은 약 60초 정도 걸릴 수 있습니다. + + 보고해 주셔서 감사합니다! + + 24시간 이내에 이 제품의 리뷰에 대한 정보를 받아야 합니다. 다시 확인해 주세요. + + 리뷰를 확인할 수 없음 + + 안타깝게도 특정 유형의 제품에 대해서는 리뷰 품질을 확인할 수 없습니다. 예를 들어 기프트 카드, 스트리밍 동영상, 음악, 게임 등이 있습니다. + + 곧 정보 제공 예정 + + 24시간 이내에 이 제품의 리뷰에 대한 정보를 받아야 합니다. 다시 확인해 주세요. + + 분석이 최신 상태 + + 확인 + + 현재 사용 가능한 정보가 없음 + + 문제를 해결하기 위해 노력하고 있습니다. 곧 다시 확인하시기 바랍니다. + + 네트워크 연결 없음 + + 네트워크 연결을 확인한 후 페이지를 새로 고침해 보세요. + + 이 리뷰에 대한 정보가 아직 없음 + + 이 제품의 리뷰가 신뢰할 수 있는지 확인하려면 리뷰 품질을 확인하세요. 약 60초밖에 걸리지 않습니다. + + 리뷰 품질 확인 + + 제품 리뷰에 대한 신뢰할 수 있는 가이드를 사용해 보세요 + + 구매하기 전에 %1$s에 대한 제품 리뷰가 얼마나 신뢰할 수 있는지 확인하세요. %2$s의 실험 기능인 리뷰 검사기가 브라우저에 바로 내장되어 있습니다. %3$s 및 %4$s에서도 작동합니다. + + Mozilla의 %1$s 기능을 사용하여 편향되고 허위 리뷰를 방지하는 데 도움을 드립니다. AI 모델은 쇼핑하는 동안 사용자를 보호하기 위해 항상 개선되고 있습니다. %2$s + + 더 알아보기 + + "사용해보기"를 선택하면 Mozilla %2$s 및 %3$s의 %1$s에 동의하게 됩니다. + + 개인정보처리방침 + + 이용 약관 + + 사용해보기 + + 나중에 + + 구매하기 전에 이 제품의 리뷰를 신뢰할 수 있는지 알아보세요. + + 리뷰 검사기 사용해보기 + + 이 리뷰는 신뢰할 수 있나요? 조정된 평점을 보려면 지금 확인하세요. + + 리뷰 검사기 열기 + + Beta + + + 리뷰 품질 확인 열기 + + 리뷰 품질 확인 닫기 + + 별 5개 중 %1$s개 + + 간단히 보기 + + 자세히 보기 + + 품질 + + 가격 + + 배송 + + 포장 및 외관 + + 경쟁력 + 접기 diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 62fa1cfc0..85e2c9f2d 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -71,6 +71,19 @@ + + + Laat geen sporen achter op dit apparaat + + %1$s verwijdert uw cookies, geschiedenis en websitegegevens wanneer u al uw privévensters sluit. %2$s + + Wie kan mijn activiteit zien? + Start uw volgende privétabblad met één tik. @@ -93,6 +106,11 @@ Meer info over Totale cookiebescherming + + + Tik hier om een nieuwe privésessie te starten. Verwijder uw geschiedenis, cookies – alles. + + Cameratoegang vereist. Ga naar uw Android-instellingen, tik op machtigingen en tik op toestaan. @@ -231,6 +249,9 @@ Startscherm + + Navigatiegeschiedenis wissen Geselecteerde taal @@ -354,6 +375,18 @@ Niet nu + + Probeer de Firefox-zoekwidget + + Met Firefox op uw startscherm hebt u eenvoudig toegang tot de privacygerichte browser die cross-sitetrackers blokkeert. + + Firefox-widget toevoegen + + Niet nu + Een nieuw %1$s-tabblad openen @@ -1333,6 +1366,8 @@ Privétabblad gesloten Privétabbladen gesloten + + Privénavigatiegegevens verwijderd ONGEDAAN MAKEN @@ -2160,6 +2195,162 @@ Naar Instellingen + + + Beoordelingscontrole + + Betrouwbare beoordelingen + + Mix van betrouwbare en onbetrouwbare beoordelingen + + Onbetrouwbare beoordelingen + + Hoe betrouwbaar zijn deze beoordelingen? + + Aangepaste waardering + + Onbetrouwbare beoordelingen verwijderd + + Hoogtepunten uit recente beoordelingen + + Hoe wij de kwaliteit van beoordelingen bepalen + + We gebruiken AI-technologie van %s door Mozilla om de betrouwbaarheid van productbeoordelingen te analyseren. Hiermee kunt u alleen de kwaliteit van beoordelingen vaststellen, niet de productkwaliteit. + + letterwaarde toe, van A tot F.]]> + + Betrouwbare beoordelingen. Wij zijn van mening dat de beoordelingen waarschijnlijk afkomstig zijn van echte klanten die eerlijke, onpartijdige beoordelingen hebben achtergelaten. + + Wij geloven dat er een mix is van betrouwbare en onbetrouwbare beoordelingen. + + Onbetrouwbare beoordelingen. Wij zijn van mening dat de beoordelingen waarschijnlijk nep zijn of afkomstig zijn van bevooroordeelde beoordelaars. + + aangepaste waardering is alleen gebaseerd op beoordelingen die wij betrouwbaar achten.]]> + + Hoogtepunten zijn afkomstig van beoordelingen van %s in de afgelopen 80 dagen die volgens ons betrouwbaar zijn.]]> + + Meer info over %s. + + hoe %s door Mozilla de beoordelingskwaliteit bepaalt + + Instellingen + + Advertenties tonen in beoordelingscontrole + + U ziet af en toe advertenties voor relevante producten. Alle advertenties moeten voldoen aan onze kwaliteitsnormen voor beoordelingen. %s + + Meer info + + Beoordelingscontrole uitschakelen + + Meer overwegingen + + Advertentie van %s + + Beoordelingscontrole wordt mogelijk gemaakt door %s. + + %s door Mozilla + + Nieuwe te controleren informatie + + Nu controleren + + Nog niet genoeg beoordelingen + + Wanneer dit product meer beoordelingen heeft, kunnen we hun kwaliteit beoordelen. + + Product is niet beschikbaar + + Als u ziet dat dit product weer op voorraad is, meld dit dan aan ons en wij zullen eraan werken om de beoordelingen te controleren. + + Melden dat dit product weer op voorraad is + + Beoordelingskwaliteit controleren + + Beoordelingskwaliteit controleren + + Dit kan ongeveer 60 seconden duren. + + Bedankt voor het melden! + + We zouden binnen 24 uur info over de beoordelingen van dit product moeten hebben. Kom later nog eens terug. + + We kunnen deze beoordelingen niet controleren + + Helaas kunnen we de beoordelingskwaliteit voor bepaalde soorten producten niet controleren. Dit betreft bijvoorbeeld cadeaubonnen en streaming video, muziek en games. + + Binnenkort info + + We zouden binnen 24 uur info over de beoordelingen van dit product moeten hebben. Kom later nog eens terug. + + Analyse is actueel + + Begrepen + + Er is momenteel geen info beschikbaar + + We werken eraan om het probleem op te lossen. Kom binnenkort nog eens terug. + + Geen netwerkverbinding + + Controleer uw netwerkverbinding en probeer vervolgens de pagina opnieuw te laden. + + Nog geen info over deze beoordelingen + + Controleer de beoordelingskwaliteit om te ontdekken of de beoordelingen van dit product betrouwbaar zijn. Het duurt slechts ongeveer 60 seconden. + + Beoordelingskwaliteit controleren + + Probeer onze vertrouwde gids voor productbeoordelingen + + Bekijk hoe betrouwbaar de productbeoordelingen op %1$s zijn voordat u koopt. Beoordelingscontrole, een experimentele functie van %2$s, is rechtstreeks in de browser ingebouwd. Het werkt ook op %3$s en %4$s. + + Met behulp van de kracht van %1$s door Mozilla helpen we u bevooroordeelde en niet-authentieke beoordelingen te voorkomen. Ons AI-model wordt voortdurend verbeterd om u te beschermen terwijl u winkelt. %2$s + + Meer info + + Door ‘Ja, proberen’ te selecteren, gaat u akkoord met het %2$s en de %3$s van %1$s door Mozilla. + + privacybeleid + + gebruiksvoorwaarden + + + Ja, proberen + + Niet nu + + Ontdek of u de beoordelingen van dit product kunt vertrouwen – voordat u het koopt. + + Probeer beoordelingscontrole + + Zijn deze beoordelingen betrouwbaar? Kijk nu voor een aangepaste waardering. + + + Beoordelingscontrole openen + + Beta + + Beoordelingskwaliteitscontrole openen + + Beoordelingskwaliteitscontrole sluiten + + %1$s van 5 sterren + + Minder tonen + + Meer tonen + + Kwaliteit + + Prijs + + Verzending + + Verpakking en uiterlijk + + Concurrentievermogen + samenvouwen diff --git a/app/src/main/res/values-nn-rNO/strings.xml b/app/src/main/res/values-nn-rNO/strings.xml index 6d79dda99..eb7a6805a 100644 --- a/app/src/main/res/values-nn-rNO/strings.xml +++ b/app/src/main/res/values-nn-rNO/strings.xml @@ -68,6 +68,10 @@ å behalde det du gjer på nettet privat frå alle andre som brukar denne eininga. Vanlege mytar om privat nettlesing + + + Etterlèt ingen spor på denne eininga + Opne neste private fane med eitt trykk. @@ -91,6 +95,7 @@ Les meir om totalt vern mot infokapslar + Kameratilgang er nødvendig. Gå til Android-innstillingar, trykk på løyve, og trykk på tillat. @@ -228,6 +233,9 @@ Startskjerm + + Slett nettlesarhistorikk Valt språk @@ -350,6 +358,9 @@ Ikkje no + + Ikkje no + Opne ei ny %1$s-fane @@ -2172,6 +2183,37 @@ Gå til innstillingar + + Pålitelege vurderingar + + Upålitelege vurderingar + + Høgdepunkt frå nylege vurderingar + + Les meir om %s. + + Innstillingar + + Les meir + + Meir å vurdere + + Kontroller no + + Ikkje nok vurderingar enno + + Beta + + Vis mindre + + Vis meir + + Kvalitet + + Pris + + Konkurranseevne + slå saman diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a4a245627..e1a77c759 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -69,6 +69,19 @@ Распространённые мифы о приватном просмотре + + + Не оставлять следов на этом устройстве + + %1$s удаляет ваши куки, историю и данные сайтов, когда вы закрываете все свои приватные окна. %2$s + + Кто может видеть мою активность? + Запустите следующую приватную вкладку одним касанием. @@ -92,6 +105,11 @@ Узнайте о Полной защите от кук + + + Нажмите здесь, чтобы начать новый приватный сеанс. Удалите свою историю, куки — всё. + + Требуется доступ к камере. Перейдите в системные настройки приложения, выберите «Разрешения», затем нажмите «Камера» и выберите «Разрешить». @@ -233,6 +251,9 @@ Домашний экран + + Удалить историю веб-сёрфинга Текущий язык @@ -356,6 +377,18 @@ Не сейчас + + Попробуйте виджет поиска Firefox + + Разместив Firefox на главном экране, вы получите легкий доступ к браузеру, ориентированному на конфиденциальность, который блокирует межсайтовое отслеживание. + + Добавить виджет Firefox + + Не сейчас + Открыть новую вкладку %1$s @@ -1349,6 +1382,8 @@ Приватная вкладка закрыта Приватные вкладки закрыты + + Данные приватного просмотра удалены ОТМЕНИТЬ @@ -2177,6 +2212,161 @@ Перейти в настройки + + + Инструмент проверки отзывов + + Достоверные отзывы + + Смесь достоверных и недостоверных отзывов + + Недостоверные отзывы + + Насколько достоверны эти отзывы? + + Скорректированный рейтинг + + Недостоверные отзывы удалены + + Основные моменты из недавних обзоров + + Как мы определяем качество отзывов + + Мы используем технологию ИИ от %s от Mozilla для проверки достоверности обзоров продуктов. Это поможет вам оценить только качество отзывов, а не качество продукта. + + буквенную оценку от A до F.]]> + + Достоверные отзывы. Мы считаем, что эти отзывы, скорее всего, написаны реальными клиентами, которые оставили честные и объективные отзывы. + + Мы считаем, что здесь находится смесь достоверных и недостоверных отзывов. + + Недостоверные отзывы. Мы считаем, что эти отзывы, скорее всего, фейковые или написаны предвзятыми рецензентами. + + Скорректированная оценка основана только на отзывах, которые мы считаем достоверными.]]> + + Основные сведения взяты из отзывов %s за последние 80 дней, которые мы считаем надежными.]]> + + Узнайте больше о %s. + + как %s от Mozilla определяет качество отзывов + + Настройки + + Показывать рекламу в инструменте проверки отзывов + + Время от времени вы будете видеть рекламу соответствующих продуктов. Все объявления должны соответствовать нашим стандартам качества проверки. %s + + Подробнее + + Отключить инструмент проверки отзывов + + На что ещё обратить внимание + + Реклама от %s + + Инструмент проверки отзывов работает на %s. + + %s от Mozilla + + Новая информация для проверки + + Проверить сейчас + + Пока недостаточно отзывов + + Когда у этого товара будет больше отзывов, мы сможем проверить его качество. + + Товар недоступен + + Если вы увидите, что этот товар снова в наличии, сообщите об этом, и мы проверим отзывы. + + Сообщить, что этот товар снова в наличии + + Проверяем качество обзора + + Проверяем качество обзора + + Это может занять около 60 секунд. + + Спасибо за сообщение! + + Мы должны получить информацию об отзывах об этом продукте в течение 24 часов. Пожалуйста, зайдите позже. + + Мы не можем проверить эти отзывы + + К сожалению, мы не можем проверить качество отзывов по некоторым видам товаров. Например, подарочные карты и потоковое видео, музыку и игры. + + Информация скоро появится + + Мы должны получить информацию об отзывах об этом продукте в течение 24 часов. Пожалуйста, зайдите позже. + + Анализ актуален + + Понятно + + На данный момент нет доступной информации + + Мы работаем над решением проблемы. Пожалуйста, зайдите в ближайшее время. + + Нет подключения к сети + + Проверьте подключение к сети и попробуйте перезагрузить страницу. + + Информации об этих отзывах пока нет + + Чтобы узнать, достоверны ли отзывы об этом продукте, проверьте качество обзора. Это займет всего около 60 секунд. + + Проверить качество обзора + + Оцените наше руководство по достоверности обзоров продуктов + + Прежде чем купить, посмотрите, насколько надежны отзывы о продуктах на %1$s. Проверка отзывов — экспериментальная функция от %2$s — встроена прямо в браузер. Она также работает на %3$s и %4$s. + + Используя возможности %1$s от Mozilla, мы помогаем вам избежать предвзятых и недостоверных отзывов. Наша модель искусственного интеллекта постоянно совершенствуется, чтобы защитить вас во время покупок. %2$s + + Узнать больше + + Выбрав «Да, попробовать», вы соглашаетесь с %1$s от Mozilla %2$s и %3$s. + + политика приватности + + условия использования + + Да, попробовать + + Не сейчас + + Прежде чем покупать, выясните, можно ли доверять отзывам об этом продукте. + + + Попробуйте инструмент проверки отзывов + + Эти отзывы заслуживают доверия? Проверьте сейчас, чтобы увидеть скорректированный рейтинг. + + Открыть инструмент проверки отзывов + + Бета + + Открыть проверку качества обзора + + Закрыть проверку качества обзора + + %1$s из 5 звезд + + Показать меньше + + Показать больше + + Качество + + Цена + + Доставка + + Упаковка и внешний вид + + Конкурентоспособность + свернуть diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index c69ff993a..d0813f6c8 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -66,6 +66,20 @@ Časté mýty o súkromnom prehliadaní + + + Nezanechávajte na tomto zariadení žiadne stopy + + + Keď zatvoríte všetky súkromné okná, %1$s odstráni vaše súbory cookie, históriu a údaje stránok. %2$s + + Kto však môže vidieť moju aktivitu? + Spustite svoju ďalšiu súkromnú kartu jediným ťuknutím. @@ -88,6 +102,12 @@ Prečítajte si o Úplnej ochrane súborov cookie + + + + Ťuknutím sem spustíte novú súkromnú reláciu. Vymažte svoju históriu, súbory cookie – všetko. + + Vyžaduje sa prístup ku fotoaparátu. Prejdite do nastavení Androidu a udeľte aplikácii dané povolenie. @@ -227,6 +247,9 @@ Úvodná obrazovka + + Vymazať históriu prehliadania Vybraný jazyk @@ -351,6 +374,18 @@ Teraz nie + + Vyskúšajte vyhľadávaciu miniaplikáciu Firefoxu + + S Firefoxom na vašej domovskej obrazovke budete mať jednoduchý prístup k prehliadaču s ochranou súkromia na prvom mieste, ktorý blokuje sledovacie prvky stránok. + + Pridať miniaplikáciu Firefox + + Teraz nie + Otvoriť novú kartu %1$su @@ -1332,6 +1367,8 @@ Súkromná karta bola zavretá Súkromné karty boli zavreté + + Údaje súkromného prehliadania boli odstránené SPÄŤ @@ -2157,6 +2194,161 @@ Prejsť do nastavení + + + Kontrola recenzií + + Spoľahlivé recenzie + + Mix spoľahlivých a nespoľahlivých recenzií + + Nespoľahlivé recenzie + + Ako spoľahlivé sú tieto recenzie? + + Upravené hodnotenie + + Nespoľahlivé recenzie boli odstránené + + To najlepšie z nedávnych recenzií + + Ako určujeme kvalitu recenzie + + Na kontrolu spoľahlivosti recenzií produktov používame AI technológiu %s od Mozilly. Analýza vám pomôže posúdiť kvalitu recenzie, nie kvalitu produktu. + + známku od A po F.]]> + + Spoľahlivé recenzie. Veríme, že recenzie sú pravdepodobne od skutočných zákazníkov, ktorí zanechali úprimné a nezaujaté recenzie. + + Myslíme si, že je tu mix spoľahlivých a nespoľahlivých recenzií. + + Nespoľahlivé recenzie. Sme presvedčení, že recenzie sú pravdepodobne falošné alebo od zaujatých recenzentov. + + Upravené hodnotenie je založené iba na recenziách, ktoré považujeme za spoľahlivé.]]> + + Najdôležitejšie informácie pochádzajú z recenzií v obchode %s uverejnených za posledných 80 dní, ktoré považujeme za spoľahlivé.]]> + + Ďalšie informácie o tom, %s. + + ako %s od Mozilly určuje kvalitu recenzie + + Nastavenia + + Zobrazovať reklamy v nástroji Kontrola recenzií + + Príležitostne sa vám budú zobrazovať reklamy na relevantné produkty. Všetky reklamy musia spĺňať naše štandardy kvality recenzií. %s + + Ďalšie informácie + + Vypnúť Kontrolu recenzií + + Ďalšie na zváženie + + Reklama od %s + + Kontrola recenzií používa technológiu %s. + + %s od Mozilly + + Nové informácie na skontrolovanie + + Skontrolovať teraz + + Zatiaľ nie je dostatok recenzií + + Keď bude mať tento produkt viac recenzií, budeme môcť skontrolovať ich kvalitu. + + Produkt nie je dostupný + + Ak zistíte, že tento produkt je opäť na sklade, nahláste to a my budeme pracovať na kontrole recenzií. + + Oznámiť, že tento produkt je opäť na sklade + + Kontroluje sa kvalita recenzií + + Kontroluje sa kvalita recenzií + + Môže to trvať asi 60 sekúnd. + + Ďakujeme za nahlásenie! + + Informácie o recenziách tohto produktu by sme mali mať do 24 hodín. Príďte sa pozrieť. + + Tieto recenzie nemôžeme skontrolovať + + Bohužiaľ nemôžeme skontrolovať kvalitu recenzií určitých typov produktov. Napríklad darčekové karty alebo streamovanie videa, hudby a hier. + + Informácie už čoskoro + + Informácie o recenziách tohto produktu by sme mali mať do 24 hodín. Príďte sa pozrieť. + + Analýza je aktuálna + + Rozumiem + + Momentálne nie sú dostupné žiadne informácie + + Pracujeme na vyriešení problému. Skúste sa vrátiť o trochu neskôr. + + Bez pripojenia k sieti + + Skontrolujte pripojenie k sieti a potom skúste stránku znova načítať. + + Zatiaľ žiadne informácie o týchto recenziách + + + Ak chcete vedieť, či sú recenzie tohto produktu spoľahlivé, skontrolujte kvalitu recenzií. Trvá to len asi 60 sekúnd. + + Skontrolovať kvalitu recenzií + + Vyskúšajte nášho dôveryhodného sprievodcu recenziami produktov + + Pred nákupom sa presvedčte, aké spoľahlivé sú recenzie produktov predajcu %1$s. Kontrola recenzií, experimentálna funkcia prehliadača %2$s, je zabudovaná priamo do prehliadača. Podporuje aj %3$s a %4$s. + + Pomocou nástroju %1$s od Mozilly vám pomôžeme vyhnúť sa neobjektívnym a neautentickým recenziám. Náš AI model sa neustále zlepšuje, aby vás chránil pri nakupovaní. %2$s + + Ďalšie informácie + + Výberom možnosti “Áno, vyskúšať” vyjadrujete súhlas s %1$s a %2$s služby %3$s od Mozilly. + + Zásadami ochrany osobných údajov + + Podmienkami používania + + Áno, vyskúšať + + Teraz nie + + Zistite, či môžete dôverovať recenziám tohto produktu - skôr ako si ho kúpite. + + Vyskúšajte Kontrolu recenzií + + Sú tieto recenzie spoľahlivé? Skontrolujte ich teraz, aby ste videli ich upravené hodnotenie. + + Otvoriť Kontrolu recenzií + + Beta + + Otvoriť kontrolu kvality recenzií + + Zavrieť kontrolu kvality recenzií + + %1$s z 5 hviezdičiek + + Zobraziť menej + + Zobraziť viac + + Kvalita + + Cena + + Doprava + + Balenie a vzhľad + + Konkurencieschopnosť + zbaliť diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 7b379f933..65b0bc0b5 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -89,6 +89,7 @@ Läs mer om Totalt skydd mot kakor + Kameraåtkomst behövs. Gå till Android-inställningar, tryck på behörigheter och tryck på tillåt. @@ -353,6 +354,9 @@ Inte nu + + Inte nu + Öppna en ny %1$s-flik @@ -1335,6 +1339,8 @@ Privat flik stängd Privata flikar stängda + + Privat webbläsardata raderades ÅNGRA @@ -2165,6 +2171,10 @@ Gå till inställningar + + + Recensionsgranskare + fäll in diff --git a/app/src/main/res/values-tg/strings.xml b/app/src/main/res/values-tg/strings.xml index ff6c6719e..405124cb8 100644 --- a/app/src/main/res/values-tg/strings.xml +++ b/app/src/main/res/values-tg/strings.xml @@ -89,6 +89,7 @@ Маълумот дар бораи «Муҳофизати пурра аз кукиҳо» + Дастрасии камера лозим аст. Ба «Танзимоти Android» гузаред, ба «Иҷозатҳо» зарба занед, пас ба «Иҷозат додан» зарба занед. @@ -350,6 +351,9 @@ Ҳоло не + + Ҳоло не + Кушодани варақаи нави %1$s @@ -2159,6 +2163,33 @@ Гузариш ба танзимот + + Маълумоти бештар дар бораи «%s». + + Танзимот + + Маълумоти бештар + + Фаҳмидам + + Маълумоти бештар + + Ҳоло не + + Камтар нишон диҳед + + Бештар нишон диҳед + + Сифат + + Нарх + + Бурдарасонӣ + + Бастабандӣ ва намуди зоҳирӣ + + Рақобатпазирӣ + печондан diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 51c8d58fa..fd6cb52d1 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -88,6 +88,7 @@ Komple Çerez Koruması hakkında bilgi al + Kamera erişimi gerekiyor. Android ayarlarına gidin, izinlere girin ve izin verin. @@ -225,6 +226,9 @@ Ana ekran + + Gezinti geçmişini temizle Seçili dil @@ -349,6 +353,9 @@ Şimdi değil + + Şimdi değil + Yeni %1$s sekmesi aç @@ -1325,6 +1332,8 @@ Gizli sekme kapatıldı Gizli sekmeler kapatıldı + + Gizli gezinti verileri silindi GERİ AL @@ -2152,6 +2161,65 @@ Ayarlara git + + + Değerlendirme kontrolcüsü + + Güvenilir değerlendirmeler + + Ayarlar + + Değerlendirme kontrolcüsünü kapat + + Mozilla’dan %s + + Şimdi kontrol et + + Henüz yeterli değerlendirme yok + + Bu ürüne daha fazla değerlendirme geldiğinde değerlendirmelerin kalitelerini kontrol edebileceğiz. + + Ürün mevcut değil + + Değerlendirme kalitesi kontrol ediliyor + + Değerlendirme kalitesi kontrol ediliyor + + Bildirdiğiniz için teşekkürler! + + Bu değerlendirmeleri kontrol edemiyoruz + + Analiz güncel + + Şu anda bilgi yok + + Ağ bağlantısı yok + + Bu değerlendirmeler hakkında henüz bilgi yok + + Değerlendirme kalitesini kontrol et + + Daha fazla bilgi alın + + Şimdi değil + + Beta + + + 5 üzerinden %1$s yıldız + + Daha az göster + + Daha fazla göster + + Kalite + + Fiyat + + Kargo + + Paketleme ve görünüm + daralt diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index e193f10e1..6471d7dab 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -66,6 +66,19 @@ Những lầm tưởng phổ biến về duyệt web riêng tư + + + Không để lại dấu vết trên thiết bị này + + %1$s xóa cookie, lịch sử và dữ liệu trang web của bạn khi bạn đóng tất cả các cửa sổ riêng tư của mình. %2$s + + Ai có thể xem hoạt động của tôi? + Khởi chạy thẻ riêng tư tiếp theo của bạn chỉ bằng một lần nhấn. @@ -88,6 +101,11 @@ Tìm hiểu về trình chống cookie chung + + + Nhấn vào đây để bắt đầu phiên riêng tư mới. Xóa lịch sử, cookie của bạn — mọi thứ. + + Cần có quyền truy cập máy ảnh. Đi tới cài đặt Android, chạm vào quyền và chạm cho phép. @@ -224,6 +242,9 @@ Màn hình chính + + Xóa lịch sử duyệt web Ngôn ngữ được chọn @@ -346,6 +367,18 @@ Không phải bây giờ + + Hãy thử tiện ích Firefox tìm kiếm + + Với Firefox trên màn hình chính, bạn sẽ dễ dàng truy cập vào trình duyệt ưu tiên quyền riêng tư để chặn các trình theo dõi trên nhiều trang web. + + Thêm tiện ích Firefox + + Không phải bây giờ + Mở thẻ %1$s mới @@ -1315,6 +1348,8 @@ Đã đóng thẻ riêng tư Đã đóng các thẻ riêng tư + + Đã xóa dữ liệu duyệt web riêng tư HOÀN TÁC @@ -2137,6 +2172,154 @@ Đi đến cài đặt + + + Trình kiểm tra đánh giá + + Đánh giá đáng tin cậy + + Kết hợp các đánh giá đáng tin cậy và không đáng tin cậy + + Đánh giá không đáng tin cậy + + Những đánh giá này đáng tin cậy đến mức nào? + + Đánh giá đã được điều chỉnh + + Đã xóa các đánh giá không đáng tin cậy + + Điểm nổi bật từ các đánh giá gần đây + + Cách chúng tôi xác định chất lượng đánh giá + + Chúng tôi sử dụng công nghệ AI từ %s bởi Mozilla để kiểm tra độ tin cậy của các đánh giá sản phẩm. Điều này chỉ giúp bạn đánh giá được chất lượng đánh giá chứ không phải chất lượng sản phẩm. + + điểm bằng chữ cái từ A đến F.]]> + + Đánh giá đáng tin cậy. Chúng tôi tin rằng các đánh giá có thể đến từ những khách hàng thực sự đã để lại những đánh giá trung thực, không thiên vị. + + Chúng tôi tin rằng có sự kết hợp giữa các đánh giá đáng tin cậy và không đáng tin cậy. + + Đánh giá không đáng tin cậy. Chúng tôi tin rằng các đánh giá có thể là giả mạo hoặc từ những người đánh giá thiên vị. + + Đánh giá đã được điều chỉnh chỉ dựa trên những đánh giá mà chúng tôi tin là đáng tin cậy.]]> + + Điểm nổi bật từ %s đánh giá trong vòng 80 ngày qua mà chúng tôi tin là đáng tin cậy.]]> + + Tìm hiểu thêm về %s. + + cách %s bởi Mozilla xác định chất lượng đánh giá + + Cài đặt + + Hiển thị quảng cáo trong trình kiểm tra đánh giá + + Bạn sẽ thấy quảng cáo không thường xuyên cho các sản phẩm có liên quan. Tất cả quảng cáo phải đáp ứng tiêu chuẩn chất lượng đánh giá của chúng tôi. %s + + Tìm hiểu thêm + + Tắt trình kiểm tra đánh giá + + Thêm điều cần xem xét + + Quảng cáo bởi %s + + Trình kiểm tra đánh giá được cung cấp bởi %s. + + %s bởi Mozilla + + Thông tin mới cần kiểm tra + + Kiểm tra ngay + + Chưa đủ đánh giá + + Khi sản phẩm này có nhiều đánh giá hơn, chúng tôi sẽ có thể kiểm tra chất lượng của chúng. + + Sản phẩm không có sẵn + + Nếu bạn thấy sản phẩm này đã có hàng trở lại, hãy báo cáo và chúng tôi sẽ kiểm tra đánh giá. + + Báo sản phẩm này đã có hàng trở lại + + Đang kiểm tra chất lượng đánh giá + + Đang kiểm tra chất lượng đánh giá + + Quá trình này có thể mất khoảng 60 giây. + + Cảm ơn bạn đã báo cáo! + + Chúng tôi sẽ có thông tin về đánh giá của sản phẩm này trong vòng 24 giờ. Hãy kiểm tra lại sau. + + Chúng tôi không thể kiểm tra những đánh giá này + + Rất tiếc, chúng tôi không thể kiểm tra chất lượng đánh giá đối với một số loại sản phẩm nhất định. Ví dụ: thẻ quà tặng và truyền phát video, âm nhạc và trò chơi. + + Thông tin sắp ra mắt + + Chúng tôi sẽ có thông tin về đánh giá của sản phẩm này trong vòng 24 giờ. Hãy kiểm tra lại sau. + + Phân tích đã được cập nhật + + Đã hiểu + + Hiện không có thông tin nào + + Chúng tôi đang làm việc để giải quyết sự cố. Hãy kiểm tra lại sau. + + Không có kết nối mạng + + Hãy kiểm tra kết nối mạng của bạn rồi thử tải lại trang. + + Chưa có thông tin về những đánh giá này + + Để biết liệu đánh giá của sản phẩm này có đáng tin cậy hay không, hãy kiểm tra chất lượng đánh giá. Chỉ mất khoảng 60 giây. + + Kiểm tra chất lượng đánh giá + + Hãy thử hướng dẫn đáng tin cậy của chúng tôi để đánh giá sản phẩm + + Xem đánh giá sản phẩm đáng tin cậy trên %1$s trước khi bạn mua. Trình kiểm tra đánh giá, một tính năng thử nghiệm từ %2$s, được tích hợp ngay trong trình duyệt. Nó cũng hoạt động trên %3$s và %4$s. + + Sử dụng %1$s bởi Mozilla, chúng tôi giúp bạn tránh những đánh giá thiên vị và không xác thực. Mô hình AI của chúng tôi luôn cải tiến để bảo vệ bạn khi bạn mua sắm. %2$s + + Tìm hiểu thêm + + Bằng cách chọn “Có, hãy thử nó” bạn đã đồng ý với %2$s và %3$s của %1$s bởi Mozilla. + + chính sách riêng tư + + điều khoản sử dụng + + Có, hãy thử nó + + Không phải bây giờ + + Tìm hiểu xem bạn có thể tin tưởng vào đánh giá của sản phẩm này không — trước khi bạn mua. + + Hãy thử trình kiểm tra đánh giá + + Những đánh giá này có đáng tin cậy không? Kiểm tra ngay bây giờ để xem xếp hạng được điều chỉnh. + + Mở trình kiểm tra đánh giá + + Beta + + Mở Kiểm tra chất lượng đánh giá + + Đóng Kiểm tra chất lượng đánh giá + + %1$s trên tổng số 5 sao + + Xem ít hơn + + Xem thêm + + Chất lượng + + Giá + thu gọn From 079347af06e8cff5926944e3a985a9516f7c1c34 Mon Sep 17 00:00:00 2001 From: Zac McKenney Date: Fri, 8 Sep 2023 12:39:48 -0700 Subject: [PATCH 114/209] Bug 1852335 - Renamed WebExtensionPopupFeature and ExtensionProcessDisabledPopupFeature to observers --- app/src/main/java/org/mozilla/fenix/HomeActivity.kt | 10 +++++----- .../fenix/addons/ExtensionProcessDisabledController.kt | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index 80b6ed638..eac9e913b 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -80,7 +80,7 @@ import mozilla.components.support.utils.BrowsersCache import mozilla.components.support.utils.ManufacturerCodes import mozilla.components.support.utils.SafeIntent import mozilla.components.support.utils.toSafeIntent -import mozilla.components.support.webextensions.WebExtensionPopupFeature +import mozilla.components.support.webextensions.WebExtensionPopupObserver import mozilla.telemetry.glean.private.NoExtras import org.mozilla.experiments.nimbus.initializeTooling import org.mozilla.fenix.GleanMetrics.AppIcon @@ -190,11 +190,11 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { private var isToolbarInflated = false - private val webExtensionPopupFeature by lazy { - WebExtensionPopupFeature(components.core.store, ::openPopup) + private val webExtensionPopupObserver by lazy { + WebExtensionPopupObserver(components.core.store, ::openPopup) } - private val extensionProcessDisabledPopupFeature by lazy { + private val extensionProcessDisabledPopupObserver by lazy { ExtensionProcessDisabledController(this@HomeActivity, components.core.store) } @@ -346,7 +346,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { } supportActionBar?.hide() - lifecycle.addObservers(webExtensionPopupFeature, extensionProcessDisabledPopupFeature, serviceWorkerSupport) + lifecycle.addObservers(webExtensionPopupObserver, extensionProcessDisabledPopupObserver, serviceWorkerSupport) if (shouldAddToRecentsScreen(intent)) { intent.removeExtra(START_IN_RECENTS_SCREEN) diff --git a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt index 2f819b342..5a900989e 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/ExtensionProcessDisabledController.kt @@ -11,7 +11,7 @@ import mozilla.components.browser.state.action.ExtensionProcessDisabledPopupActi import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.engine.Engine import mozilla.components.support.ktx.android.content.appName -import mozilla.components.support.webextensions.ExtensionProcessDisabledPopupFeature +import mozilla.components.support.webextensions.ExtensionProcessDisabledPopupObserver import org.mozilla.fenix.GleanMetrics.Addons import org.mozilla.fenix.R import org.mozilla.fenix.ext.components @@ -72,7 +72,7 @@ class ExtensionProcessDisabledController( engine: Engine = context.components.core.engine, builder: AlertDialog.Builder = AlertDialog.Builder(context), appName: String = context.appName, -) : ExtensionProcessDisabledPopupFeature( +) : ExtensionProcessDisabledPopupObserver( store, { presentDialog(context, store, engine, builder, appName) }, ) From db09db8d2e23358b1f208f0a8e3ed614794b21b0 Mon Sep 17 00:00:00 2001 From: DreVla Date: Mon, 24 Jul 2023 12:03:52 +0300 Subject: [PATCH 115/209] Bug 1845039 - Create new UI Tests for Compose Top Sites Since the old UI tests don't work for the new Compose Top Sites elements, new tests have been created. --- .../fenix/helpers/FeatureSettingsHelper.kt | 5 + .../helpers/FeatureSettingsHelperDelegate.kt | 4 + .../fenix/helpers/HomeActivityTestRule.kt | 8 + .../mozilla/fenix/ui/ComposeTopSitesTest.kt | 260 ++++++++++++++++++ .../mozilla/fenix/ui/robots/BrowserRobot.kt | 15 + .../fenix/ui/robots/ComposeTopSitesRobot.kt | 171 ++++++++++++ .../fenix/ui/robots/HomeScreenRobot.kt | 5 + .../java/org/mozilla/fenix/FeatureFlags.kt | 3 +- .../mozilla/fenix/home/topsites/TopSites.kt | 42 ++- .../fenix/home/topsites/TopSitesTestTag.kt | 18 ++ 10 files changed, 523 insertions(+), 8 deletions(-) create mode 100644 app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt create mode 100644 app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt create mode 100644 app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesTestTag.kt diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelper.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelper.kt index a95fb9216..a42fe1a31 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelper.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelper.kt @@ -82,6 +82,11 @@ interface FeatureSettingsHelper { */ var tabsTrayRewriteEnabled: Boolean + /** + * Enable or disable the Top Sites to Compose rewrite. + */ + var composeTopSitesEnabled: Boolean + fun applyFlagUpdates() fun resetAllFeatureFlags() diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelperDelegate.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelperDelegate.kt index cf1828002..c31fcf756 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelperDelegate.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/FeatureSettingsHelperDelegate.kt @@ -37,6 +37,7 @@ class FeatureSettingsHelperDelegate() : FeatureSettingsHelper { isOpenInAppBannerEnabled = settings.shouldShowOpenInAppBanner, etpPolicy = getETPPolicy(settings), tabsTrayRewriteEnabled = settings.enableTabsTrayToCompose, + composeTopSitesEnabled = settings.enableComposeTopSites, ) /** @@ -66,6 +67,7 @@ class FeatureSettingsHelperDelegate() : FeatureSettingsHelper { override var isOpenInAppBannerEnabled: Boolean by updatedFeatureFlags::isOpenInAppBannerEnabled override var etpPolicy: ETPPolicy by updatedFeatureFlags::etpPolicy override var tabsTrayRewriteEnabled: Boolean by updatedFeatureFlags::tabsTrayRewriteEnabled + override var composeTopSitesEnabled: Boolean by updatedFeatureFlags::composeTopSitesEnabled override fun applyFlagUpdates() { applyFeatureFlags(updatedFeatureFlags) @@ -91,6 +93,7 @@ class FeatureSettingsHelperDelegate() : FeatureSettingsHelper { settings.userOptOutOfReEngageCookieBannerDialog = !featureFlags.isCookieBannerReductionDialogEnabled settings.shouldShowOpenInAppBanner = featureFlags.isOpenInAppBannerEnabled settings.enableTabsTrayToCompose = featureFlags.tabsTrayRewriteEnabled + settings.enableComposeTopSites = featureFlags.composeTopSitesEnabled setETPPolicy(featureFlags.etpPolicy) } } @@ -110,6 +113,7 @@ private data class FeatureFlags( var isOpenInAppBannerEnabled: Boolean, var etpPolicy: ETPPolicy, var tabsTrayRewriteEnabled: Boolean, + var composeTopSitesEnabled: Boolean, ) internal fun getETPPolicy(settings: Settings): ETPPolicy { diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt index dd8b13e14..9243a102f 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/HomeActivityTestRule.kt @@ -56,6 +56,7 @@ class HomeActivityTestRule( isOpenInAppBannerEnabled: Boolean = settings.shouldShowOpenInAppBanner, etpPolicy: ETPPolicy = getETPPolicy(settings), tabsTrayRewriteEnabled: Boolean = false, + composeTopSitesEnabled: Boolean = false, ) : this(initialTouchMode, launchActivity, skipOnboarding) { this.isHomeOnboardingDialogEnabled = isHomeOnboardingDialogEnabled this.isPocketEnabled = isPocketEnabled @@ -70,6 +71,7 @@ class HomeActivityTestRule( this.isOpenInAppBannerEnabled = isOpenInAppBannerEnabled this.etpPolicy = etpPolicy this.tabsTrayRewriteEnabled = tabsTrayRewriteEnabled + this.composeTopSitesEnabled = composeTopSitesEnabled } /** @@ -114,6 +116,7 @@ class HomeActivityTestRule( launchActivity: Boolean = true, skipOnboarding: Boolean = false, tabsTrayRewriteEnabled: Boolean = false, + composeTopSitesEnabled: Boolean = false, ) = HomeActivityTestRule( initialTouchMode = initialTouchMode, launchActivity = launchActivity, @@ -125,6 +128,7 @@ class HomeActivityTestRule( isWallpaperOnboardingEnabled = false, isCookieBannerReductionDialogEnabled = false, isOpenInAppBannerEnabled = false, + composeTopSitesEnabled = composeTopSitesEnabled, ) } } @@ -164,6 +168,7 @@ class HomeActivityIntentTestRule internal constructor( isOpenInAppBannerEnabled: Boolean = settings.shouldShowOpenInAppBanner, etpPolicy: ETPPolicy = getETPPolicy(settings), tabsTrayRewriteEnabled: Boolean = false, + composeTopSitesEnabled: Boolean = false, ) : this(initialTouchMode, launchActivity, skipOnboarding) { this.isHomeOnboardingDialogEnabled = isHomeOnboardingDialogEnabled this.isPocketEnabled = isPocketEnabled @@ -178,6 +183,7 @@ class HomeActivityIntentTestRule internal constructor( this.isOpenInAppBannerEnabled = isOpenInAppBannerEnabled this.etpPolicy = etpPolicy this.tabsTrayRewriteEnabled = tabsTrayRewriteEnabled + this.composeTopSitesEnabled = composeTopSitesEnabled } private val longTapUserPreference = getLongPressTimeout() @@ -259,6 +265,7 @@ class HomeActivityIntentTestRule internal constructor( launchActivity: Boolean = true, skipOnboarding: Boolean = false, tabsTrayRewriteEnabled: Boolean = false, + composeTopSitesEnabled: Boolean = false, ) = HomeActivityIntentTestRule( initialTouchMode = initialTouchMode, launchActivity = launchActivity, @@ -270,6 +277,7 @@ class HomeActivityIntentTestRule internal constructor( isWallpaperOnboardingEnabled = false, isCookieBannerReductionDialogEnabled = false, isOpenInAppBannerEnabled = false, + composeTopSitesEnabled = composeTopSitesEnabled, ) } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt new file mode 100644 index 000000000..58df3b027 --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/ComposeTopSitesTest.kt @@ -0,0 +1,260 @@ +/* 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.ui + +import androidx.compose.ui.test.junit4.AndroidComposeTestRule +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.uiautomator.UiDevice +import okhttp3.mockwebserver.MockWebServer +import org.junit.After +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.mozilla.fenix.R +import org.mozilla.fenix.customannotations.SmokeTest +import org.mozilla.fenix.helpers.AndroidAssetDispatcher +import org.mozilla.fenix.helpers.HomeActivityTestRule +import org.mozilla.fenix.helpers.RetryTestRule +import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.fenix.helpers.TestHelper.clickSnackbarButton +import org.mozilla.fenix.helpers.TestHelper.generateRandomString +import org.mozilla.fenix.helpers.TestHelper.getStringResource +import org.mozilla.fenix.helpers.TestHelper.waitUntilSnackbarGone +import org.mozilla.fenix.ui.robots.browserScreen +import org.mozilla.fenix.ui.robots.homeScreenWithComposeTopSites +import org.mozilla.fenix.ui.robots.navigationToolbar + +/** + * Tests Top Sites functionality + * + * - Verifies 'Add to Firefox Home' UI functionality + * - Verifies 'Top Sites' context menu UI functionality + * - Verifies 'Top Site' usage UI functionality + * - Verifies existence of default top sites available on the home-screen + */ + +class ComposeTopSitesTest { + private lateinit var mDevice: UiDevice + private lateinit var mockWebServer: MockWebServer + + @get:Rule + val composeTestRule = + AndroidComposeTestRule( + HomeActivityTestRule.withDefaultSettingsOverrides( + composeTopSitesEnabled = true, + ), + ) { it.activity } + + @get:Rule + val retryTestRule = RetryTestRule(3) + + @Before + fun setUp() { + mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) + mockWebServer = MockWebServer().apply { + dispatcher = AndroidAssetDispatcher() + start() + } + } + + @After + fun tearDown() { + mockWebServer.shutdown() + } + + @SmokeTest + @Test + fun verifyAddToFirefoxHome() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + } + } + + @Test + fun verifyOpenTopSiteNormalTab() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openTopSiteTabWithTitle(title = defaultWebPage.title) { + verifyUrl(defaultWebPage.url.toString().replace("http://", "")) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { + verifyTopSiteContextMenuItems() + } + + // Dismiss context menu popup + mDevice.pressBack() + } + + @Test + fun verifyOpenTopSitePrivateTab() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { + verifyTopSiteContextMenuItems() + }.openTopSiteInPrivate() { + verifyCurrentPrivateSession(composeTestRule.activity.applicationContext) + } + } + + @Test + fun verifyRenameTopSite() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + val newPageTitle = generateRandomString(5) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + waitForPageToLoad() + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { + verifyTopSiteContextMenuItems() + }.renameTopSite(newPageTitle) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(newPageTitle) + } + } + + @Test + fun verifyRemoveTopSite() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { + verifyTopSiteContextMenuItems() + }.removeTopSite { + verifyNotExistingTopSiteItem(defaultWebPage.title) + } + } + + @Test + fun verifyUndoRemoveTopSite() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { + verifyTopSiteContextMenuItems() + }.removeTopSite { + clickSnackbarButton("UNDO") + verifyExistingTopSiteItem(defaultWebPage.title) + } + } + + @Test + fun verifyRemoveTopSiteFromMainMenu() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + }.openThreeDotMenu { + expandMenu() + verifyAddToShortcutsButton(true) + }.addToFirefoxHome { + verifySnackBarText(getStringResource(R.string.snackbar_added_to_shortcuts)) + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openTopSiteTabWithTitle(defaultWebPage.title) { + }.openThreeDotMenu { + verifyRemoveFromShortcutsButton() + }.clickRemoveFromShortcuts { + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyNotExistingTopSiteItem(defaultWebPage.title) + } + } + + // Expected for en-us defaults + @Test + fun verifyDefaultTopSitesList() { + homeScreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + val topSitesTitles = arrayListOf("Google", "Top Articles", "Wikipedia") + topSitesTitles.forEach { value -> + verifyExistingTopSiteItem(value) + } + } + } + + @SmokeTest + @Test + fun addAndRemoveMostViewedTopSiteTest() { + val defaultWebPage = getGenericAsset(mockWebServer, 1) + + for (i in 0..1) { + navigationToolbar { + }.enterURLAndEnterToBrowser(defaultWebPage.url) { + waitForPageToLoad() + } + } + + browserScreen { + }.goToHomescreenWithComposeTopSites(composeTestRule) { + verifyExistingTopSitesList() + verifyExistingTopSiteItem(defaultWebPage.title) + }.openContextMenuOnTopSitesWithTitle(defaultWebPage.title) { + }.deleteTopSiteFromHistory { + verifySnackBarText(getStringResource(R.string.snackbar_top_site_removed)) + waitUntilSnackbarGone() + }.openThreeDotMenu { + }.openHistory { + verifyEmptyHistoryView() + } + } +} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt index 348f8f20c..7d2ed6bcc 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -1057,6 +1057,21 @@ class BrowserRobot { return HomeScreenRobot.Transition() } + fun goToHomescreenWithComposeTopSites(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTopSitesRobot.() -> Unit): ComposeTopSitesRobot.Transition { + clickPageObject(itemWithDescription("Home screen")) + + mDevice.findObject(UiSelector().resourceId("$packageName:id/homeLayout")) + .waitForExists(waitingTime) || + mDevice.findObject( + UiSelector().text( + getStringResource(R.string.onboarding_home_screen_jump_back_contextual_hint_2), + ), + ).waitForExists(waitingTime) + + ComposeTopSitesRobot(composeTestRule).interact() + return ComposeTopSitesRobot.Transition(composeTestRule) + } + fun goBack(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { mDevice.pressBack() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt new file mode 100644 index 000000000..595465dc0 --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/ComposeTopSitesRobot.kt @@ -0,0 +1,171 @@ +/* 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.ui.robots + +import android.widget.EditText +import androidx.compose.ui.test.ExperimentalTestApi +import androidx.compose.ui.test.filter +import androidx.compose.ui.test.hasAnyChild +import androidx.compose.ui.test.hasTestTag +import androidx.compose.ui.test.hasText +import androidx.compose.ui.test.junit4.ComposeTestRule +import androidx.compose.ui.test.longClick +import androidx.compose.ui.test.onAllNodesWithTag +import androidx.compose.ui.test.onFirst +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick +import androidx.compose.ui.test.performScrollTo +import androidx.compose.ui.test.performTouchInput +import androidx.test.espresso.Espresso +import androidx.test.espresso.action.ViewActions +import androidx.test.espresso.matcher.ViewMatchers +import org.hamcrest.CoreMatchers +import org.hamcrest.Matchers +import org.mozilla.fenix.R +import org.mozilla.fenix.helpers.HomeActivityComposeTestRule +import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText +import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime +import org.mozilla.fenix.home.topsites.TopSitesTestTag + +/** + * Implementation of Robot Pattern for the Compose Top Sites. + */ +class ComposeTopSitesRobot(private val composeTestRule: HomeActivityComposeTestRule) { + + fun verifyExistingTopSitesList() = + composeTestRule.onNodeWithTag(TopSitesTestTag.topSites).assertExists() + + @OptIn(ExperimentalTestApi::class) + fun verifyExistingTopSiteItem(vararg titles: String) { + titles.forEach { title -> + itemContainingText(title).waitForExists(waitingTime) + composeTestRule.waitUntilAtLeastOneExists(hasText(title), waitingTime) + composeTestRule.topSiteItem(title).assertExists() + } + } + + fun verifyNotExistingTopSiteItem(vararg titles: String) { + titles.forEach { title -> + itemContainingText(title).waitForExists(waitingTime) + composeTestRule.topSiteItem(title).assertDoesNotExist() + } + } + + fun verifyTopSiteContextMenuItems() { + verifyTopSiteContextMenuOpenInPrivateTabButton() + verifyTopSiteContextMenuRemoveButton() + verifyTopSiteContextMenuRenameButton() + } + + fun verifyTopSiteContextMenuOpenInPrivateTabButton() { + composeTestRule.contextMenuItemOpenInPrivateTab().assertExists() + } + + fun verifyTopSiteContextMenuRenameButton() { + composeTestRule.contextMenuItemRename().assertExists() + } + + fun verifyTopSiteContextMenuRemoveButton() { + composeTestRule.contextMenuItemRemove().assertExists() + } + + class Transition(private val composeTestRule: HomeActivityComposeTestRule) { + + fun openTopSiteTabWithTitle( + title: String, + interact: BrowserRobot.() -> Unit, + ): BrowserRobot.Transition { + composeTestRule.topSiteItem(title).performScrollTo().performClick() + + BrowserRobot().interact() + return BrowserRobot.Transition() + } + + fun openTopSiteInPrivate( + interact: BrowserRobot.() -> Unit, + ): BrowserRobot.Transition { + composeTestRule.contextMenuItemOpenInPrivateTab().performClick() + composeTestRule.waitForIdle() + + BrowserRobot().interact() + return BrowserRobot.Transition() + } + + fun openContextMenuOnTopSitesWithTitle( + title: String, + interact: ComposeTopSitesRobot.() -> Unit, + ): Transition { + composeTestRule.topSiteItem(title).performScrollTo().performTouchInput { + longClick() + } + + ComposeTopSitesRobot(composeTestRule).interact() + return Transition(composeTestRule) + } + + fun renameTopSite( + title: String, + interact: ComposeTopSitesRobot.() -> Unit, + ): Transition { + composeTestRule.contextMenuItemRename().performClick() + Espresso.onView( + Matchers.allOf( + ViewMatchers.withId(R.id.top_site_title), + CoreMatchers.instanceOf(EditText::class.java), + ), + ) + .perform(ViewActions.replaceText(title)) + Espresso.onView(ViewMatchers.withId(android.R.id.button1)) + .perform((ViewActions.click())) + + ComposeTopSitesRobot(composeTestRule).interact() + return Transition(composeTestRule) + } + + @OptIn(ExperimentalTestApi::class) + fun removeTopSite( + interact: ComposeTopSitesRobot.() -> Unit, + ): Transition { + composeTestRule.contextMenuItemRemove().performClick() + composeTestRule.waitUntilDoesNotExist(hasTestTag(TopSitesTestTag.remove), waitingTime) + + ComposeTopSitesRobot(composeTestRule).interact() + return Transition(composeTestRule) + } + + @OptIn(ExperimentalTestApi::class) + fun deleteTopSiteFromHistory( + interact: BrowserRobot.() -> Unit, + ): BrowserRobot.Transition { + composeTestRule.contextMenuItemRemove().performClick() + composeTestRule.waitUntilDoesNotExist(hasTestTag(TopSitesTestTag.remove), waitingTime) + + BrowserRobot().interact() + return BrowserRobot.Transition() + } + } +} + +/** + * Obtains the top site with the provided [title]. + */ +private fun ComposeTestRule.topSiteItem(title: String) = + onAllNodesWithTag(TopSitesTestTag.topSiteItemRoot).filter(hasAnyChild(hasText(title))).onFirst() + +/** + * Obtains the option to open in private tab the top site + */ +private fun ComposeTestRule.contextMenuItemOpenInPrivateTab() = + onAllNodesWithTag(TopSitesTestTag.openInPrivateTab).onFirst() + +/** + * Obtains the option to rename the top site + */ +private fun ComposeTestRule.contextMenuItemRename() = onAllNodesWithTag(TopSitesTestTag.rename).onFirst() + +/** + * Obtains the option to remove the top site + */ +private fun ComposeTestRule.contextMenuItemRemove() = onAllNodesWithTag(TopSitesTestTag.remove).onFirst() diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt index c823298ff..0622a0592 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt @@ -781,6 +781,11 @@ fun homeScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition return HomeScreenRobot.Transition() } +fun homeScreenWithComposeTopSites(composeTestRule: HomeActivityComposeTestRule, interact: ComposeTopSitesRobot.() -> Unit): ComposeTopSitesRobot.Transition { + ComposeTopSitesRobot(composeTestRule).interact() + return ComposeTopSitesRobot.Transition(composeTestRule) +} + private fun homeScreenList() = UiScrollable( UiSelector() diff --git a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt index 1bcd42c5b..96da99a8f 100644 --- a/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt +++ b/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt @@ -55,7 +55,8 @@ object FeatureFlags { /** * Enables compose on the top sites. */ - const val composeTopSites = false + // const val composeTopSites = false + const val composeTopSites = true /** * Enables new search settings UI with two extra fragments, for managing the default engine diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt index fcf3cdf9d..46d4fb430 100644 --- a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSites.kt @@ -34,6 +34,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment +import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color @@ -43,8 +44,11 @@ import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTagsAsResourceId import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp @@ -87,9 +91,9 @@ private const val TOP_SITES_FAVICON_SIZE = 36 * @param onSponsorPrivacyClicked Invoked when the user clicks on the "Our sponsors & your privacy" * menu item. */ -@OptIn(ExperimentalFoundationApi::class) +@OptIn(ExperimentalFoundationApi::class, ExperimentalComposeUiApi::class) @Composable -@Suppress("LongParameterList") +@Suppress("LongParameterList", "LongMethod") fun TopSites( topSites: List, topSiteColors: TopSiteColors = TopSiteColors.colors(), @@ -101,12 +105,19 @@ fun TopSites( onSettingsClicked: () -> Unit, onSponsorPrivacyClicked: () -> Unit, ) { + val pageCount = ceil((topSites.size.toDouble() / TOP_SITES_PER_PAGE)).toInt() + Column( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .semantics { + testTagsAsResourceId = true + } + .testTag(TopSitesTestTag.topSites), horizontalAlignment = Alignment.CenterHorizontally, ) { val pagerState = rememberPagerState( - pageCount = { ceil((topSites.size.toDouble() / TOP_SITES_PER_PAGE)).toInt() }, + pageCount = { pageCount }, ) Box( @@ -230,8 +241,8 @@ data class TopSiteColors( * @param onTopSiteClick Invoked when the user clicks on a top site. * @param onTopSiteLongClick Invoked when the user long clicks on a top site. */ -@Suppress("LongParameterList") -@OptIn(ExperimentalFoundationApi::class) +@Suppress("LongParameterList", "LongMethod") +@OptIn(ExperimentalFoundationApi::class, ExperimentalComposeUiApi::class) @Composable private fun TopSiteItem( topSite: TopSite, @@ -243,7 +254,13 @@ private fun TopSiteItem( ) { var menuExpanded by remember { mutableStateOf(false) } - Box { + Box( + modifier = Modifier + .semantics { + testTagsAsResourceId = true + } + .testTag(TopSitesTestTag.topSiteItemRoot), + ) { Column( modifier = Modifier .combinedClickable( @@ -282,6 +299,11 @@ private fun TopSiteItem( } Text( + modifier = Modifier + .semantics { + testTagsAsResourceId = true + } + .testTag(TopSitesTestTag.topSiteTitle), text = topSite.title ?: topSite.url, color = topSiteColors.titleTextColor, overflow = TextOverflow.Ellipsis, @@ -304,6 +326,8 @@ private fun TopSiteItem( } ContextualMenu( + modifier = Modifier + .testTag(TopSitesTestTag.topSiteContextualMenu), menuItems = menuItems, showMenu = menuExpanded, onDismissRequest = { menuExpanded = false }, @@ -428,6 +452,7 @@ private fun getMenuItems( result.add( MenuItem( title = stringResource(id = R.string.bookmark_menu_open_in_private_tab_button), + testTag = TopSitesTestTag.openInPrivateTab, onClick = { onOpenInPrivateTabClicked(topSite) }, ), ) @@ -436,6 +461,7 @@ private fun getMenuItems( result.add( MenuItem( title = stringResource(id = R.string.rename_top_site), + testTag = TopSitesTestTag.rename, onClick = { onRenameTopSiteClicked(topSite) }, ), ) @@ -451,6 +477,7 @@ private fun getMenuItems( R.string.delete_from_history }, ), + testTag = TopSitesTestTag.remove, onClick = { onRemoveTopSiteClicked(topSite) }, ), ) @@ -460,6 +487,7 @@ private fun getMenuItems( result.add( MenuItem( title = stringResource(id = R.string.delete_from_history), + testTag = TopSitesTestTag.remove, onClick = { onRemoveTopSiteClicked(topSite) }, ), ) diff --git a/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesTestTag.kt b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesTestTag.kt new file mode 100644 index 000000000..864cf71b2 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/home/topsites/TopSitesTestTag.kt @@ -0,0 +1,18 @@ +/* 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.home.topsites + +internal object TopSitesTestTag { + const val topSites = "top_sites_list" + + const val topSiteItemRoot = "$topSites.top_site_item" + const val topSiteTitle = "$topSiteItemRoot.top_site_title" + + // Contextual/DropDown menu + const val topSiteContextualMenu = "$topSites.top_site_contextual_menu" + const val openInPrivateTab = "$topSiteContextualMenu.open_in_private_tab" + const val rename = "$topSiteContextualMenu.rename" + const val remove = "$topSiteContextualMenu.remove" +} From 9e34847daaa2891659b76cd07c9ffa2a474a2cec Mon Sep 17 00:00:00 2001 From: DreVla Date: Wed, 8 Mar 2023 15:22:04 +0200 Subject: [PATCH 116/209] Bug 1812461 - Update CFR Popups to be sticky CFRPopup default properties have been changed so a popup does not dismiss anymore on a click outside or a back press. Additionally, popups will reappear if the screen is rotated and the popup was not dismissed. --- .../fenix/components/toolbar/BrowserToolbarCFRPresenter.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt index 5aa0e32df..fa9d0b32b 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt @@ -233,7 +233,10 @@ class BrowserToolbarCFRPresenter( ), onDismiss = { when (it) { - true -> TrackingProtection.tcpCfrExplicitDismissal.record(NoExtras()) + true -> { + TrackingProtection.tcpCfrExplicitDismissal.record(NoExtras()) + settings.shouldShowTotalCookieProtectionCFR = false + } false -> TrackingProtection.tcpCfrImplicitDismissal.record(NoExtras()) } }, From 4f96cde8c52b10430f4432ce1b452ec350756ae2 Mon Sep 17 00:00:00 2001 From: DreVla Date: Tue, 14 Mar 2023 12:44:28 +0200 Subject: [PATCH 117/209] Bug 1812461 - Prevent Cookie Banner dismissal by back press --- .../dialog/CookieBannerReEngagementDialogCompose.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/dialog/CookieBannerReEngagementDialogCompose.kt b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/dialog/CookieBannerReEngagementDialogCompose.kt index 79a93c243..5128d4782 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/dialog/CookieBannerReEngagementDialogCompose.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/quicksettings/protections/cookiebanners/dialog/CookieBannerReEngagementDialogCompose.kt @@ -70,7 +70,7 @@ fun CookieBannerReEngagementDialogCompose( onNotNowButtonClicked: () -> Unit, ) { Dialog( - properties = DialogProperties(dismissOnBackPress = true, dismissOnClickOutside = false), + properties = DialogProperties(dismissOnBackPress = false, dismissOnClickOutside = false), onDismissRequest = onNotNowButtonClicked, ) { Surface( From 611df98d22da4fc7b49bb52567495b75cef20681 Mon Sep 17 00:00:00 2001 From: DreVla Date: Tue, 14 Mar 2023 13:06:10 +0200 Subject: [PATCH 118/209] Bug 1812461 - Migrate private browsing recommend PopupWindow to CFRPopup Because previously the `privateBrowsingRecommend` Popup was using PopupWindow from android widget, it could not be modified to respect to PopupWindow behaviors. Therefore, we decided to migrate it to the CFRPopup. --- .../mozilla/fenix/ui/AddToHomeScreenTest.kt | 46 +++++- .../fenix/ui/robots/AddToHomeScreenRobot.kt | 28 ++-- .../toolbar/BrowserToolbarCFRPresenter.kt | 1 - .../org/mozilla/fenix/home/HomeFragment.kt | 151 ++++++++++++------ .../fenix/onboarding/HomeCFRPresenter.kt | 22 +-- .../res/drawable/cfr_background_gradient.xml | 20 --- .../res/drawable/rounded_gray_corners.xml | 8 - .../main/res/layout/pbm_shortcut_popup.xml | 74 --------- 8 files changed, 166 insertions(+), 184 deletions(-) delete mode 100644 app/src/main/res/drawable/cfr_background_gradient.xml delete mode 100644 app/src/main/res/drawable/rounded_gray_corners.xml delete mode 100644 app/src/main/res/layout/pbm_shortcut_popup.xml diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt index 92b79bb65..4e03051f7 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/AddToHomeScreenTest.kt @@ -4,15 +4,19 @@ package org.mozilla.fenix.ui +import androidx.compose.ui.test.junit4.AndroidComposeTestRule import okhttp3.mockwebserver.MockWebServer import org.junit.After import org.junit.Before +import org.junit.Ignore import org.junit.Rule import org.junit.Test import org.mozilla.fenix.customannotations.SmokeTest import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityIntentTestRule +import org.mozilla.fenix.helpers.HomeActivityTestRule +import org.mozilla.fenix.helpers.TestAssetHelper import org.mozilla.fenix.helpers.TestHelper +import org.mozilla.fenix.ui.robots.browserScreen import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.searchScreen @@ -20,7 +24,8 @@ class AddToHomeScreenTest { private lateinit var mockWebServer: MockWebServer @get:Rule - val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() + val composeTestRule = + AndroidComposeTestRule(HomeActivityTestRule.withDefaultSettingsOverrides()) { it.activity } @Before fun setUp() { @@ -35,14 +40,45 @@ class AddToHomeScreenTest { mockWebServer.shutdown() } + // Verifies the Add to home screen option in a tab's 3 dot menu + @SmokeTest + @Test + fun mainMenuAddToHomeScreenTest() { + val website = TestAssetHelper.getGenericAsset(mockWebServer, 1) + val shortcutTitle = TestHelper.generateRandomString(5) + + homeScreen { + }.openNavigationToolbar { + }.enterURLAndEnterToBrowser(website.url) { + }.openThreeDotMenu { + expandMenu() + }.openAddToHomeScreen { + clickCancelShortcutButton() + } + + browserScreen { + }.openThreeDotMenu { + expandMenu() + }.openAddToHomeScreen { + verifyShortcutTextFieldTitle("Test_Page_1") + addShortcutName(shortcutTitle) + clickAddShortcutButton() + clickAddAutomaticallyButton() + }.openHomeScreenShortcut(shortcutTitle) { + verifyUrl(website.url.toString()) + verifyTabCounter("1") + } + } + + @Ignore("Failure, more details at: https://bugzilla.mozilla.org/show_bug.cgi?id=1830005") @SmokeTest @Test fun addPrivateBrowsingShortcutTest() { homeScreen { }.triggerPrivateBrowsingShortcutPrompt { - verifyNoThanksPrivateBrowsingShortcutButton() - verifyAddPrivateBrowsingShortcutButton() - clickAddPrivateBrowsingShortcutButton() + verifyNoThanksPrivateBrowsingShortcutButton(composeTestRule) + verifyAddPrivateBrowsingShortcutButton(composeTestRule) + clickAddPrivateBrowsingShortcutButton(composeTestRule) clickAddAutomaticallyButton() }.openHomeScreenShortcut("Private ${TestHelper.appName}") {} searchScreen { diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt index 7f98007af..1f72353e0 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/AddToHomeScreenRobot.kt @@ -5,23 +5,21 @@ package org.mozilla.fenix.ui.robots import android.os.Build -import androidx.test.espresso.Espresso.onView -import androidx.test.espresso.assertion.ViewAssertions.matches -import androidx.test.espresso.matcher.ViewMatchers -import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.ComposeTestRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.performClick import androidx.test.uiautomator.By import androidx.test.uiautomator.UiScrollable import androidx.test.uiautomator.UiSelector import androidx.test.uiautomator.Until import org.junit.Assert.assertTrue -import org.mozilla.fenix.R import org.mozilla.fenix.helpers.MatcherHelper.assertItemContainingTextExists import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime import org.mozilla.fenix.helpers.TestHelper.mDevice import org.mozilla.fenix.helpers.TestHelper.packageName -import org.mozilla.fenix.helpers.click import java.util.regex.Pattern /** @@ -29,11 +27,11 @@ import java.util.regex.Pattern */ class AddToHomeScreenRobot { - fun verifyAddPrivateBrowsingShortcutButton() = assertAddPrivateBrowsingShortcutButton() + fun verifyAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = assertAddPrivateBrowsingShortcutButton(composeTestRule) - fun verifyNoThanksPrivateBrowsingShortcutButton() = assertNoThanksPrivateBrowsingShortcutButton() + fun verifyNoThanksPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = assertNoThanksPrivateBrowsingShortcutButton(composeTestRule) - fun clickAddPrivateBrowsingShortcutButton() = addPrivateBrowsingShortcutButton().click() + fun clickAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = composeTestRule.onNodeWithTag("private.add").performClick() fun addShortcutName(title: String) = shortcutTextField.setText(title) @@ -104,15 +102,11 @@ fun addToHomeScreen(interact: AddToHomeScreenRobot.() -> Unit): AddToHomeScreenR private fun addAutomaticallyButton() = mDevice.findObject(UiSelector().textContains("add automatically")) -private fun addPrivateBrowsingShortcutButton() = onView(withId(R.id.cfr_pos_button)) +private fun assertAddPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = + composeTestRule.onNodeWithTag("private.add").assertIsDisplayed() -private fun assertAddPrivateBrowsingShortcutButton() = addPrivateBrowsingShortcutButton() - .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) - -private fun noThanksPrivateBrowsingShortcutButton() = onView(withId(R.id.cfr_neg_button)) - -private fun assertNoThanksPrivateBrowsingShortcutButton() = noThanksPrivateBrowsingShortcutButton() - .check(matches(ViewMatchers.withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) +private fun assertNoThanksPrivateBrowsingShortcutButton(composeTestRule: ComposeTestRule) = + composeTestRule.onNodeWithTag("private.cancel").assertIsDisplayed() private val cancelAddToHomeScreenButton = itemWithResId("$packageName:id/cancel_button") diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt index fa9d0b32b..48597a009 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarCFRPresenter.kt @@ -271,7 +271,6 @@ class BrowserToolbarCFRPresenter( } }, ).run { - settings.shouldShowTotalCookieProtectionCFR = false popup = this show() TrackingProtection.tcpCfrShown.record(NoExtras()) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index b059396c1..df8031053 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -10,16 +10,27 @@ import android.content.res.Configuration import android.graphics.drawable.ColorDrawable import android.net.Uri import android.os.Bundle -import android.view.Gravity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Button -import android.widget.LinearLayout -import android.widget.PopupWindow import androidx.annotation.VisibleForTesting +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.Text +import androidx.compose.material.TextButton +import androidx.compose.ui.ExperimentalComposeUiApi +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTag +import androidx.compose.ui.semantics.testTagsAsResourceId +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.content.ContextCompat +import androidx.core.content.ContextCompat.getColor import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -47,6 +58,8 @@ import mozilla.components.browser.state.state.BrowserState import mozilla.components.browser.state.state.TabSessionState import mozilla.components.browser.state.state.selectedOrDefaultSearchEngine import mozilla.components.browser.state.store.BrowserStore +import mozilla.components.compose.cfr.CFRPopup +import mozilla.components.compose.cfr.CFRPopupProperties import mozilla.components.concept.storage.FrecencyThresholdOption import mozilla.components.concept.sync.AccountObserver import mozilla.components.concept.sync.AuthType @@ -61,6 +74,7 @@ import mozilla.components.lib.state.ext.consumeFlow import mozilla.components.lib.state.ext.consumeFrom import mozilla.components.service.glean.private.NoExtras import mozilla.components.support.base.feature.ViewBoundFeatureWrapper +import mozilla.components.ui.colors.PhotonColors import org.mozilla.fenix.GleanMetrics.HomeScreen import org.mozilla.fenix.GleanMetrics.Homepage import org.mozilla.fenix.GleanMetrics.PrivateBrowsingShortcutCfr @@ -77,10 +91,8 @@ import org.mozilla.fenix.databinding.FragmentHomeBinding import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.containsQueryParameters import org.mozilla.fenix.ext.hideToolbar -import org.mozilla.fenix.ext.increaseTapArea import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.requireComponents -import org.mozilla.fenix.ext.runIfFragmentIsAttached import org.mozilla.fenix.ext.scaleToBottomOfView import org.mozilla.fenix.ext.settings import org.mozilla.fenix.home.pocket.DefaultPocketStoriesController @@ -111,11 +123,11 @@ import org.mozilla.fenix.perf.runBlockingIncrement import org.mozilla.fenix.search.toolbar.DefaultSearchSelectorController import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.TabsTrayAccessPoint +import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wallpapers.Wallpaper import java.lang.ref.WeakReference -import kotlin.math.min @Suppress("TooManyFunctions", "LargeClass") class HomeFragment : Fragment() { @@ -828,49 +840,95 @@ class HomeFragment : Fragment() { requireComponents.useCases.sessionUseCases.updateLastAccess() } - @SuppressLint("InflateParams") + private var recommendPrivateBrowsingCFR: CFRPopup? = null + + @OptIn(ExperimentalComposeUiApi::class) + @Suppress("LongMethod") private fun recommendPrivateBrowsingShortcut() { context?.let { context -> - val layout = LayoutInflater.from(context) - .inflate(R.layout.pbm_shortcut_popup, null) - val privateBrowsingRecommend = - PopupWindow( - layout, - min( - (resources.displayMetrics.widthPixels / CFR_WIDTH_DIVIDER).toInt(), - (resources.displayMetrics.heightPixels / CFR_WIDTH_DIVIDER).toInt(), + CFRPopup( + anchor = binding.privateBrowsingButton, + properties = CFRPopupProperties( + popupWidth = 256.dp, + popupAlignment = CFRPopup.PopupAlignment.INDICATOR_CENTERED_IN_ANCHOR, + popupBodyColors = listOf( + getColor(context, R.color.fx_mobile_layer_color_gradient_end), + getColor(context, R.color.fx_mobile_layer_color_gradient_start), ), - LinearLayout.LayoutParams.WRAP_CONTENT, - true, - ) - layout.findViewById