From 3c0334141c0e2bf9142279bb3467ce62008eb9f6 Mon Sep 17 00:00:00 2001 From: Kate Glazko Date: Wed, 19 Aug 2020 14:48:22 -0700 Subject: [PATCH 01/16] No Issue: Fix Lint Issues Downloads Manager --- .../mozilla/fenix/library/downloads/DownloadAdapter.kt | 1 - .../mozilla/fenix/library/downloads/DownloadController.kt | 1 - .../fenix/library/downloads/DownloadFragmentStore.kt | 8 +++++++- .../org/mozilla/fenix/library/downloads/DownloadView.kt | 2 -- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt index 95ce6f247..71fc6d0f4 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadAdapter.kt @@ -1,4 +1,3 @@ - /* 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/. */ diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadController.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadController.kt index 9cc676272..ccd30c136 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadController.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadController.kt @@ -1,4 +1,3 @@ - /* 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/. */ diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragmentStore.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragmentStore.kt index 2078064a7..c79d45027 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragmentStore.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadFragmentStore.kt @@ -16,7 +16,13 @@ import mozilla.components.lib.state.Store * @property size The size in bytes of the download item * @property contentType The type of file the download is */ -data class DownloadItem(val id: Long, val fileName: String?, val filePath: String, val size: String, val contentType: String?) +data class DownloadItem( + val id: Long, + val fileName: String?, + val filePath: String, + val size: String, + val contentType: String? +) /** * The [Store] for holding the [DownloadFragmentState] and applying [DownloadFragmentAction]s. diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt index 3261ee91e..809d8ff53 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt @@ -1,5 +1,3 @@ - - /* 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/. */ From 0de8aedd6f9ce39e5d8e59a21b5fd22f4739a8ee Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Wed, 19 Aug 2020 18:03:25 -0400 Subject: [PATCH 02/16] No issue: Fix missing FeatureFlags imports --- .../org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt | 1 + app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index 4ae5b3f59..ff549ffa2 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -24,6 +24,7 @@ import mozilla.components.browser.state.selector.findTab import mozilla.components.browser.state.store.BrowserStore import mozilla.components.concept.storage.BookmarksStorage import mozilla.components.support.ktx.android.content.getColorFromAttr +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.browser.browsingmode.BrowsingMode diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt index 8036399ea..579e4bf95 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt @@ -21,6 +21,7 @@ import mozilla.components.concept.sync.AccountObserver import mozilla.components.concept.sync.AuthType import mozilla.components.concept.sync.OAuthAccount import mozilla.components.support.ktx.android.content.getColorFromAttr +import org.mozilla.fenix.FeatureFlags import org.mozilla.fenix.R import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.settings From 86c5a38ed82b25ffb9cc551d698aeeacbf9554ab Mon Sep 17 00:00:00 2001 From: Kate Glazko Date: Wed, 19 Aug 2020 15:45:08 -0700 Subject: [PATCH 03/16] For #13939: Missing empty state for downloads view --- .../mozilla/fenix/library/downloads/DownloadView.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt index 809d8ff53..89bfe9172 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt @@ -7,8 +7,10 @@ package org.mozilla.fenix.library.downloads import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.isVisible import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.SimpleItemAnimator +import kotlinx.android.synthetic.main.component_downloads.* import kotlinx.android.synthetic.main.component_downloads.view.* import mozilla.components.support.base.feature.UserInteractionHandler import org.mozilla.fenix.R @@ -58,6 +60,8 @@ class DownloadView( state.mode === DownloadFragmentState.Mode.Normal mode = state.mode + updateEmptyState(state.items.isNotEmpty()) + downloadAdapter.updateMode(state.mode) downloadAdapter.updateDownloads(state.items) @@ -66,6 +70,14 @@ class DownloadView( ) } + fun updateEmptyState(userHasDownloads: Boolean) { + download_list.isVisible = userHasDownloads + download_empty_view.isVisible = !userHasDownloads + if (!userHasDownloads) { + download_empty_view.announceForAccessibility(context.getString(R.string.download_empty_message)) + } + } + override fun onBackPressed(): Boolean { return interactor.onBackPressed() } From 35d585d7acfebeb152f1f79afeb05cdeb768ef9b Mon Sep 17 00:00:00 2001 From: MickeyMoz Date: Wed, 19 Aug 2020 19:44:46 +0000 Subject: [PATCH 04/16] Update Android Components version to 56.0.20200819190136. --- buildSrc/src/main/java/AndroidComponents.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/AndroidComponents.kt b/buildSrc/src/main/java/AndroidComponents.kt index 1560073ba..ff43297b6 100644 --- a/buildSrc/src/main/java/AndroidComponents.kt +++ b/buildSrc/src/main/java/AndroidComponents.kt @@ -3,5 +3,5 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ object AndroidComponents { - const val VERSION = "54.0.20200818130156" + const val VERSION = "56.0.20200819190136" } From e4e16bc4453ab652a4142a391ee696eb43ec4adc Mon Sep 17 00:00:00 2001 From: Mozilla L10n Automation Bot Date: Thu, 20 Aug 2020 00:10:30 +0000 Subject: [PATCH 05/16] Import l10n. --- app/src/main/res/values-ast/strings.xml | 16 ++++++ app/src/main/res/values-cak/strings.xml | 27 +++++---- app/src/main/res/values-el/strings.xml | 64 ++++++++++++++++++++++ app/src/main/res/values-fy-rNL/strings.xml | 45 ++++++++++----- app/src/main/res/values-rm/strings.xml | 60 ++++++++++++++++---- 5 files changed, 176 insertions(+), 36 deletions(-) diff --git a/app/src/main/res/values-ast/strings.xml b/app/src/main/res/values-ast/strings.xml index 94f1bff1b..a2e72cc6b 100644 --- a/app/src/main/res/values-ast/strings.xml +++ b/app/src/main/res/values-ast/strings.xml @@ -27,6 +27,8 @@ %1$d esbillaes + + Amiestu d\'una coleción nueva Nome @@ -247,6 +249,8 @@ Sincroniza los marcadores, l\'historial y muncho más cola to cuenta de Firefox Cuenta de Firefox + + Reconéutate pa siguir cola sincronización Llingua @@ -364,6 +368,11 @@ Activación de Sync + + Aniciar sesión pa reconeutar + + Desaniciar la cuenta + firefox.com/pair]]> @@ -473,6 +482,9 @@ %1$s (en privao) + + Guardar + Desaniciar l\'historial @@ -659,6 +671,8 @@ Esbillóse %d llingüeta ¡Guardáronse les llingüetes! + + ¡Guardóse la coleición! ¡Guardóse la llingüeta! @@ -690,6 +704,8 @@ Unviar a tolos preseos + + Reconexón con Sync Coneutar otru preséu diff --git a/app/src/main/res/values-cak/strings.xml b/app/src/main/res/values-cak/strings.xml index c333c6ea9..5fcff53bc 100644 --- a/app/src/main/res/values-cak/strings.xml +++ b/app/src/main/res/values-cak/strings.xml @@ -27,6 +27,16 @@ %1$s ruwi\' ejaqon. Tachapa\' richin nak\'ëx ruwi\'. + + %1$d xcha\' + + Titz\'aqatisäx k\'ak\'a\' mol + + B\'i\'aj + + + Ticha\' mol + %1$s b\'anon ruma Mozilla. @@ -151,14 +161,10 @@ Tiwachib\'ëx - - Choj okem Runuk\'ulem kanob\'äl - - Tikanöx pa - Wakami tikanöx rik\'in: + Wakami tikanöx rik\'in: Titz\'ajb\'äl ri ximonel pa ri molwuj @@ -270,8 +276,6 @@ Taq rusamajib\'al nuk\'unel Näj chojmirisanem pa USB - - Kek\'ut retal pitz\'b\'äl richin nikanöx Kek\'ut pe ri taq chilab\'enïk richin yakanon @@ -524,6 +528,9 @@ %1$s (Ichinan Rub\'anikil) + + Tiyak + Tiyuj natab\'äl @@ -649,7 +656,7 @@ Xyuj %1$s - + Taq yaketal xeyuj TITZOLÏX @@ -1458,9 +1465,7 @@ Achi\'el: \nhttps://www.google.com/search?q=%s K\'o chik jun tikirib\'äl molojri\'ïl rik\'in re b\'i\'aj re\' - - Tok rik\'in jun Rub\'i\' Rutaqoya\'l Firefox - + Tokisäx jun chik okisab\'äl Tajuxub\'ej chik awi\'. diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 962a21a6c..a457e1d17 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -39,6 +39,9 @@ Αποθήκευση επιλεγμένων καρτελών στη συλλογή + + Τέλος λειτουργίας πολλαπλής επιλογής + Το %1$s αναπτύσσεται από τη Mozilla. @@ -231,6 +234,10 @@ Προσθήκη συντόμευσης ιδιωτικής περιήγησης Προσβασιμότητα + + Προσαρμοσμένος διακομιστής λογαριασμού Firefox + + Προσαρμοσμένος διακομιστής Sync Λογαριασμός @@ -305,6 +312,10 @@ Συγχρονισμός… + + Αποτυχία συγχρονισμού. Τελευταία επιτυχία: %s + + Αποτυχία συγχρονισμού. Τελευταίος συγχρονισμός: ποτέ Τελευταίος συγχρονισμός: %s @@ -317,6 +328,8 @@ Ληφθείσες καρτέλες + + Ειδοποιήσεις για καρτέλες που λαμβάνονται από άλλες συσκευές Firefox. Ελήφθη καρτέλα @@ -329,6 +342,8 @@ Προστασία από καταγραφή Προστασία από καταγραφή + + Φραγή περιεχομένου και σεναρίων που σας παρακολουθούν στο διαδίκτυο Εξαιρέσεις @@ -358,6 +373,8 @@ Ενεργοποίηση Sync + + Σάρωση κωδικού σύζευξης στο Firefox για υπολογιστή Σύνδεση @@ -612,8 +629,13 @@ Άκυρο URL Κανένας σελιδοδείκτης εδώ + + Το %1$s διαγράφηκε Οι σελιδοδείκτες διαγράφηκαν + + Διαγραφή επιλεγμένων φακέλων ΑΝΑΙΡΕΣΗ @@ -857,6 +879,10 @@ Διαγραφή δεδομένων περιήγησης Διαγραφή δεδομένων περιήγησης στην έξοδο + + Διαγράφει αυτόματα τα δεδομένα περιήγησης όταν επιλέγετε "Έξοδος" από το κύριο μενού + + Διαγράφει αυτόματα τα δεδομένα περιήγησης όταν επιλέγετε \"Quit\" από το κύριο μενού Έξοδος @@ -1079,6 +1105,8 @@ Τα δικαιώματά σας + + Βιβλιοθήκες ανοιχτού κώδικα που χρησιμοποιούμε Τι νέο υπάρχει στο %s Εισάγετε ξανά το PIN σας + + Ξεκλειδώστε για να δείτε τις αποθηκευμένες συνδέσεις σας Αυτή η σύνδεση δεν είναι ασφαλής. Οι λογαριασμοί που εισάγονται εδώ ενδέχεται να παραβιαστούν. @@ -1198,16 +1228,22 @@ Αντιγραφή ονόματος χρήστη Αντιγραφή ιστοσελίδας + + Άνοιγμα σελίδας στο πρόγραμμα περιήγησης Εμφάνιση κωδικού πρόσβασης Απόκρυψη κωδικού πρόσβασης + + Ξεκλειδώστε για να δείτε τις αποθηκευμένες συνδέσεις σας Αργότερα Ρύθμιση τώρα Ξεκλειδώστε τη συσκευή σας + + Ζουμ σε όλες τις ιστοσελίδες Όνομα (Α-Ω) @@ -1236,14 +1272,20 @@ Νήμα αναζήτησης προς χρήση + + Αντικαταστήστε το ερώτημα με “%s”. Παράδειγμα:\nhttps://www.google.com/search?q=%s Μάθετε περισσότερα + + Λεπτομέρειες προσαρμοσμένης μηχανής αναζήτησης Σύνδεσμος "Μάθετε περισσότερα" Εισάγετε όνομα μηχανής αναζήτησης + + Η μηχανή αναζήτησης με το όνομα “%s” υπάρχει ήδη. Εισάγετε νήμα αναζήτησης @@ -1252,8 +1294,15 @@ Δημιουργήθηκε to %s + + Το %s αποθηκεύτηκε + + Το %s διαγράφηκε + Καλώς ορίσατε στο νέο %s + + Σας περιμένει ένα πλήρως ανασχεδιασμένο πρόγραμμα περιήγησης, με βελτιωμένη απόδοση και λειτουργίες που θα σας βοηθήσουν να κάνετε περισσότερα στο διαδίκτυο.\n\nΠαρακαλούμε περιμένετε ενώ ενημερώνουμε το %s με το Ενημέρωση του %s… @@ -1263,6 +1312,8 @@ Κωδικοί πρόσβασης + + Για να το επιτρέψετε: 1. Μεταβείτε στις Ρυθμίσεις Android @@ -1301,6 +1352,12 @@ Διαγραφή Επιλογές σύνδεσης + + Το επεξεργάσιμο πεδίο κειμένου της διεύθυνσης ιστού της σύνδεσης. + + Το επεξεργάσιμο πεδίο κειμένου για το όνομα χρήστη της σύνδεσης. + + Το επεξεργάσιμο πεδίο κειμένου για τον κωδικό πρόσβασης της σύνδεσης. Αποθήκευση αλλαγών στη σύνδεση. @@ -1325,9 +1382,16 @@ Παρακαλούμε ενεργοποιήστε το συγχρονισμό καρτελών. + + Δεν έχετε καμία άλλη καρτέλα ανοικτή στο Firefox σε άλλες σας συσκευές. + + Δείτε μια λίστα καρτελών από τις άλλες συσκευές σας. Σύνδεση στο Sync + + + Έχετε φτάσει το ανώτατο όριο κορυφαίων ιστοσελίδων OK, το κατάλαβα diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml index 520f356bb..68786bdca 100644 --- a/app/src/main/res/values-fy-rNL/strings.xml +++ b/app/src/main/res/values-fy-rNL/strings.xml @@ -25,6 +25,29 @@ %1$s iepen ljepblêden. Tik om tusken ljepblêden te wikseljen. + + %1$d selektearre + + Nije kolleksje tafoegje + + Namme + + Kolleksje selektearje + + Multiseleksjemodus ferlitte + + Selektearre ljepblêden yn kolleksje bewarje + + %1$s selektearre + + Seleksje %1$s ûngedien makke + + Multiseleksjemodus ferlitten + + Multiseleksjemodus aktivearre, selektearje ljepblêden om yn in kolleksje te bewarjen + + Selektearre + %1$s is makke troch Mozilla. @@ -150,8 +173,8 @@ Scanne - - Sykmasine + + Sykmasine Ynstellingen sykmasine @@ -282,6 +305,8 @@ Keppelingen iepenje yn apps + + Eksterne downloadbehearder Add-ons @@ -510,6 +535,9 @@ %1$s (priveemodus) + + Bewarje + Skiednis wiskje @@ -1431,9 +1459,7 @@ Der bestiet al in oanmelding mei dy brûkersnamme - - Ferbine mei in Firefox-account. - + In oar apparaat ferbine. Graach opnij autentisearje. @@ -1455,13 +1481,4 @@ OK, begrepen - - - Fluchkeppelingen - - Sykje mei - - Diskear sykje mei: - - Sykfluchkeppelingen toane diff --git a/app/src/main/res/values-rm/strings.xml b/app/src/main/res/values-rm/strings.xml index 8349f9197..c438b914b 100644 --- a/app/src/main/res/values-rm/strings.xml +++ b/app/src/main/res/values-rm/strings.xml @@ -24,6 +24,29 @@ %1$s tabs averts. Tutgar per midar tab. + + %1$d tschernids + + Agiuntar ina nova collecziun + + Num + + Tscherner ina collecziun + + Sortir dal modus da tscherna multipla + + Memorisar ils tabs tschernids en ina collecziun + + %1$s tschernì + + %1$s betg tschernì + + Sortì dal modus da tscherna multipla + + Avert il modus da tscherna multipla, tscherner ils tabs per als memorisar en ina collecziun + + Tschernì + %1$s vegn sviluppà da Mozilla. @@ -144,14 +167,12 @@ Scannar - - Scursanidas + + Maschina da tschertgar Parameters da la maschina da tschertgar - - Tschertgar cun - Questa giada, tschertgar cun: + Questa giada, tschertgar cun: Encollar la colliaziun en l\'archiv provisoric @@ -258,8 +279,8 @@ Utensils per sviluppaders Debugging a distanza via USB - - Mussar las scursanidas per tschertgas + + Mussar las maschinas da tschertgar Mussar propostas da tschertga @@ -277,6 +298,8 @@ Parameters dal conto Avrir colliaziuns en apps + + Administraziun da telechargiadas externa Supplements @@ -505,6 +528,9 @@ %1$s (modus privat) + + Memorisar + Stizzar la cronologia @@ -570,6 +596,8 @@ Tscherner in ordinatur Vuls ti propi stizzar quest ordinatur? + + %s vegn a stizzar ils elements tschernids. Stizzà %1$s @@ -624,8 +652,10 @@ Stizzà %1$s - + Stizzà ils segnapaginas + + Stizzar ils ordinaturs tschernids REVOCAR @@ -718,6 +748,8 @@ %d tab tschernì Memorisà ils tabs! + + Memorisà la collecziun! Memorisà il tab! @@ -825,6 +857,10 @@ REFUSAR Vuls ti propi stizzar %1$s? + + Cun stizzar quest tab vegn l\'entira collecziun stizzada. Ti pos da tut temp crear novas collecziuns. + + Stizzar %1$s? Stizzar @@ -1231,6 +1267,8 @@ Las infurmaziuns d\'annunzia ed ils pleds-clav betg memorisads vegnan mussadas qua. Las infurmaziuns d\'annunzia ed ils pleds-clav na vegnan betg memorisads per questas paginas. + + Stizzar tut las excepziuns Tschertgar datas d\'annunzia @@ -1270,6 +1308,8 @@ Copiar il num d\'utilisader Copiar la pagina + + Avrir la website en il navigatur Mussar il pled-clav @@ -1422,9 +1462,7 @@ Datas d\'annunzia cun quest num d\'utilisader existan gia - - Connectar cun in conto da Firefox. - + Colliar in auter apparat. Re-autentifitgescha per plaschair. From 751efb7bfbc2930fcbe5cd4a1b90f9ffca8c701e Mon Sep 17 00:00:00 2001 From: Kate Glazko Date: Wed, 19 Aug 2020 16:02:43 -0700 Subject: [PATCH 06/16] For #13940: Pull To Refresh View Causes Throbber Downloads --- .../java/org/mozilla/fenix/library/downloads/DownloadView.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt index 89bfe9172..76989458d 100644 --- a/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/downloads/DownloadView.kt @@ -56,8 +56,7 @@ class DownloadView( fun update(state: DownloadFragmentState) { - view.swipe_refresh.isEnabled = - state.mode === DownloadFragmentState.Mode.Normal + view.swipe_refresh.isEnabled = false mode = state.mode updateEmptyState(state.items.isNotEmpty()) From 499ff83b18d1f30e5c3b5cb60de6beac7939a0ac Mon Sep 17 00:00:00 2001 From: Mugurell Date: Wed, 12 Aug 2020 14:19:42 +0300 Subject: [PATCH 07/16] For #8578 - Don't attempt to use different addons icons backgrounds After the change from AC #8054 specifying different addons icons backgrounds is not possible anymore. All favicons used all throughout the app will have the same background. --- .../java/org/mozilla/fenix/addons/AddonsManagementFragment.kt | 1 - 1 file changed, 1 deletion(-) 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 e6bc5e57b..20c32bc3a 100644 --- a/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/addons/AddonsManagementFragment.kt @@ -120,7 +120,6 @@ class AddonsManagementFragment : Fragment(R.layout.fragment_add_ons_management) addonNameTextColor = ThemeManager.resolveAttribute(R.attr.primaryText, context), addonSummaryTextColor = ThemeManager.resolveAttribute(R.attr.secondaryText, context), sectionsTypeFace = ResourcesCompat.getFont(context, R.font.metropolis_semibold), - addonBackgroundIconColor = ThemeManager.resolveAttribute(R.attr.inset, requireContext()), addonAllowPrivateBrowsingLabelDrawableRes = R.drawable.ic_add_on_private_browsing_label ) } From feae7fff2fd525ab37fbc1105b691e1f3578977e Mon Sep 17 00:00:00 2001 From: Elise Richards Date: Thu, 20 Aug 2020 11:05:11 -0500 Subject: [PATCH 08/16] =?UTF-8?q?FNX-14498=20=E2=81=83=20For=20#9487:=20im?= =?UTF-8?q?prove=20fxa=20onboarding=20manual=20sign=20in=20card=20(#13317)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Replace strings, add learn more, hook up button * Constrain learn more and icon to the text * View holder tests * Lint * Update homescreen ui test --- .../fenix/ui/robots/HomeScreenRobot.kt | 4 +- .../OnboardingAutomaticSignInViewHolder.kt | 4 +- .../OnboardingManualSignInViewHolder.kt | 24 +++++------ .../fenix/onboarding/OnboardingController.kt | 22 ++++++++++ .../fenix/onboarding/OnboardingInteractor.kt | 14 +++++++ .../mozilla/fenix/settings/SupportUtils.kt | 4 ++ .../ic_onboarding_avatar_anonymous_large.xml | 16 +++++++ .../layout/onboarding_automatic_signin.xml | 2 +- .../res/layout/onboarding_manual_signin.xml | 42 ++++++++++++++++--- app/src/main/res/values/strings.xml | 7 ++-- ...OnboardingAutomaticSignInViewHolderTest.kt | 14 +++---- .../OnboardingManualSignInViewHolderTest.kt | 17 +++++++- 12 files changed, 135 insertions(+), 35 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt create mode 100644 app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt create mode 100644 app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml 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 f1e24be71..8540e2a0a 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 @@ -553,11 +553,11 @@ private fun assertWelcomeHeader() = .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) private fun assertGetTheMostHeader() = - onView(allOf(withText("Get the most out of Firefox Preview."))) + onView(allOf(withText("Start syncing bookmarks, passwords, and more with your Firefox account."))) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) private fun assertAccountsSignInButton() = - onView(ViewMatchers.withResourceName("turn_on_sync_button")) + onView(ViewMatchers.withResourceName("fxa_sign_in_button")) .check(matches(withEffectiveVisibility(Visibility.VISIBLE))) private fun assertGetToKnowHeader() = diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt index 39c49a414..c09fb31d2 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingAutomaticSignInViewHolder.kt @@ -31,9 +31,9 @@ class OnboardingAutomaticSignInViewHolder( private val headerText = view.header_text init { - view.turn_on_sync_button.setOnClickListener { + view.fxa_sign_in_button.setOnClickListener { scope.launch { - onClick(it.turn_on_sync_button) + onClick(it.fxa_sign_in_button) } } } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt index e4fa6d5a3..f7b04965a 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/onboarding/OnboardingManualSignInViewHolder.kt @@ -5,40 +5,40 @@ package org.mozilla.fenix.home.sessioncontrol.viewholders.onboarding import android.view.View -import androidx.core.content.ContextCompat import androidx.navigation.Navigation import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.onboarding_manual_signin.view.* -import mozilla.components.support.ktx.android.content.getDrawableWithTint -import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event +import org.mozilla.fenix.ext.addUnderline import org.mozilla.fenix.ext.components import org.mozilla.fenix.home.HomeFragmentDirections +import org.mozilla.fenix.onboarding.OnboardingController +import org.mozilla.fenix.onboarding.OnboardingInteractor class OnboardingManualSignInViewHolder(view: View) : RecyclerView.ViewHolder(view) { private val headerText = view.header_text init { - view.turn_on_sync_button.setOnClickListener { + val interactor = OnboardingInteractor(OnboardingController(itemView.context)) + + view.fxa_sign_in_button.setOnClickListener { it.context.components.analytics.metrics.track(Event.OnboardingManualSignIn) val directions = HomeFragmentDirections.actionGlobalTurnOnSync() Navigation.findNavController(view).navigate(directions) } + + view.learn_more.addUnderline() + view.learn_more.setOnClickListener { + interactor.onLearnMoreClicked() + } } fun bind() { val context = itemView.context - - val appName = context.getString(R.string.app_name) - headerText.text = context.getString(R.string.onboarding_firefox_account_header, appName) - val icon = context.getDrawableWithTint( - R.drawable.ic_onboarding_firefox_accounts, - ContextCompat.getColor(context, R.color.white_color) - ) - headerText.putCompoundDrawablesRelativeWithIntrinsicBounds(start = icon) + headerText.text = context.getString(R.string.onboarding_firefox_account_header) } companion object { diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt new file mode 100644 index 000000000..3e1945103 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingController.kt @@ -0,0 +1,22 @@ +/* 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.content.Context +import org.mozilla.fenix.BrowserDirection +import org.mozilla.fenix.HomeActivity +import org.mozilla.fenix.settings.SupportUtils + +class OnboardingController( + private val context: Context +) { + fun handleLearnMoreClicked() { + (context as HomeActivity).openToBrowserAndLoad( + searchTermOrURL = SupportUtils.getFirefoxAccountSumoUrl(), + newTab = true, + from = BrowserDirection.FromHome + ) + } +} diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt new file mode 100644 index 000000000..ad11d459c --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/onboarding/OnboardingInteractor.kt @@ -0,0 +1,14 @@ +/* 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 + +class OnboardingInteractor(private val onboardingController: OnboardingController) { + + /** + * Called when the user clicks the learn more link + * @param url the url the suggestion was providing + */ + fun onLearnMoreClicked() = onboardingController.handleLearnMoreClicked() +} diff --git a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt index a1a613cc1..3e1bae04a 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt @@ -74,6 +74,10 @@ object SupportUtils { return "https://support.mozilla.org/$langTag/kb/$escapedTopic" } + fun getFirefoxAccountSumoUrl(): String { + return "https://support.mozilla.org/kb/access-mozilla-services-firefox-account" + } + fun getMozillaPageUrl(page: MozillaPage, locale: Locale = Locale.getDefault()): String { val path = page.path val langTag = getLanguageTag(locale) diff --git a/app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml b/app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml new file mode 100644 index 000000000..422897fd9 --- /dev/null +++ b/app/src/main/res/drawable/ic_onboarding_avatar_anonymous_large.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/src/main/res/layout/onboarding_automatic_signin.xml b/app/src/main/res/layout/onboarding_automatic_signin.xml index d96855dcc..2b88fd85d 100644 --- a/app/src/main/res/layout/onboarding_automatic_signin.xml +++ b/app/src/main/res/layout/onboarding_automatic_signin.xml @@ -22,7 +22,7 @@ tools:text="@string/onboarding_firefox_account_auto_signin_header_2" />