Merge "Fix storage summary background colors." into oc-dev
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 9416bfe..f6d7562 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -34,7 +34,7 @@
<string name="header_category_wireless_networks" msgid="5110914332313954940">"Bežična veza i mreže"</string>
<string name="header_category_connections" msgid="6471513040815680662">"Veze"</string>
<string name="header_category_device" msgid="4544026001618307754">"Uređaj"</string>
- <string name="header_category_personal" msgid="3310195187905720823">"Lično"</string>
+ <string name="header_category_personal" msgid="3310195187905720823">"Lični"</string>
<string name="header_category_access" msgid="7580499097416970962">"Pristup"</string>
<string name="header_category_system" msgid="2816866961183068977">"Sistem"</string>
<string name="radio_info_data_connection_enable" msgid="8656750679353982712">"Omogući vezu za prenos podataka"</string>
@@ -584,7 +584,7 @@
<item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> aktivne aplikacije</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aktivnih aplikacija</item>
</plurals>
- <string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
+ <string name="manage_trust_agents" msgid="4629279457536987768">"Pouzdani agenti"</string>
<string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Da biste ga koristili, prvo podesite zaključavanje ekrana"</string>
<string name="manage_trust_agents_summary" msgid="1475819820389620546">"Ništa"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
@@ -962,7 +962,7 @@
<string name="search_settings" msgid="1910951467596035063">"Pretraga"</string>
<string name="search_settings_summary" msgid="9205656546570654169">"Upravljanje podešavanjima pretrage i istorijom"</string>
<string name="search_settings_no_results" msgid="8799027492641230999">"Nema rezultata"</string>
- <string name="display_settings" msgid="7965901687241669598">"Prikaz"</string>
+ <string name="display_settings" msgid="7965901687241669598">"Ekran"</string>
<string name="accelerometer_title" msgid="7854608399547349157">"Automatsko rotiranje ekrana"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Promeni položaj automatski prilikom rotiranja tableta"</string>
<string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Automatska promena položaja prilikom rotacije telefona"</string>
@@ -2190,7 +2190,7 @@
<string name="no_device_admins" msgid="4846602835339095768">"Nema dostupnih aplikacija za administratora uređaja"</string>
<string name="personal_device_admin_title" msgid="2849617316347669861">"Lični"</string>
<string name="managed_device_admin_title" msgid="7853955652864478435">"Posao"</string>
- <string name="no_trust_agents" msgid="7450273545568977523">"Trust agents - Nedostupno"</string>
+ <string name="no_trust_agents" msgid="7450273545568977523">"Nema dostupnih pouzdanih agenata"</string>
<string name="add_device_admin_msg" msgid="1501847129819382149">"Aktiviraj aplikaciju za administratore?"</string>
<string name="add_device_admin" msgid="4192055385312215731">"Aktiviraj ovu aplikaciju za administratore uređaja"</string>
<string name="device_admin_add_title" msgid="3140663753671809044">"Administrator uređaja"</string>
@@ -3035,7 +3035,7 @@
<string name="storage_used" msgid="7128074132917008743">"Memorijski prostor u upotrebi"</string>
<string name="change" msgid="6657848623929839991">"Promeni"</string>
<string name="change_storage" msgid="600475265207060436">"Promenite memoriju"</string>
- <string name="notifications_label" msgid="8543457911148619898">"Obaveštenja aplikacije"</string>
+ <string name="notifications_label" msgid="8543457911148619898">"Obaveštenja o aplikaciji"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"Uključena"</string>
<string name="notifications_disabled" msgid="334416731283131597">"Sve je isključeno"</string>
<string name="notifications_partly_blocked" msgid="592071133950126656">"Uključenih kategorija: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3155,12 +3155,12 @@
<string name="usb_use_power_only" msgid="6426550616883919530">"Napajanje"</string>
<string name="usb_use_power_only_desc" msgid="3461232831015575152">"Punite povezani uređaj. Radi samo sa uređajima koji podržavaju punjenje preko USB-a."</string>
<string name="usb_use_file_transfers" msgid="7409600791007250137">"Prenos datoteka"</string>
- <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Prenosi datoteke na drugi uređaj"</string>
+ <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Prenosite datoteke na drugi uređaj"</string>
<string name="usb_use_photo_transfers" msgid="7794775645350330454">"Prenos slika (PTP)"</string>
- <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Prenosi slike ili datoteke ako MTP nije podržan (PTP)"</string>
+ <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Prenosite slike ili datoteke ako MTP nije podržan (PTP)"</string>
<string name="usb_use_MIDI" msgid="870922185938298263">"Korišćenje uređaja u MIDI režimu"</string>
- <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristi ovaj uređaj kao MIDI"</string>
- <string name="usb_use" msgid="3256040963685055320">"Upotrebite USB za:"</string>
+ <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristite ovaj uređaj kao MIDI"</string>
+ <string name="usb_use" msgid="3256040963685055320">"Koristite USB za:"</string>
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Punjenje uređaja"</string>
<string name="usb_summary_power_only" msgid="3629517713817003738">"Napajanje"</string>
@@ -3264,7 +3264,7 @@
<string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"Uto 18:02"</string>
<string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"Uto 18:03"</string>
<string name="disconnected" msgid="4836600637485526329">"Nije povezano"</string>
- <string name="data_usage_summary_format" msgid="7507047900192160585">"Koristi se <xliff:g id="AMOUNT">%1$s</xliff:g> podataka"</string>
+ <string name="data_usage_summary_format" msgid="7507047900192160585">"Iskorišćeno je <xliff:g id="AMOUNT">%1$s</xliff:g> podataka"</string>
<plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
<item quantity="one">Isključeno za <xliff:g id="COUNT">%d</xliff:g> aplikaciju</item>
<item quantity="few">Isključeno za <xliff:g id="COUNT">%d</xliff:g> aplikacije</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index dcf1762..d36f152 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"বিজ্ঞপ্তি"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"উন্নত"</string>
<string name="profile_section_header" msgid="2320848161066912001">"কর্মস্থলের বিজ্ঞপ্তিগুলি"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"আইকন ব্যাজের অনুমতি দিন"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"মিটমিট করা আলো"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"লক স্ক্রীনে"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"সমস্ত বিজ্ঞপ্তির সামগ্রীগুলি দেখান"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 7007974..e48441f 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1759,12 +1759,12 @@
<string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Kreirati vidžet i omogućiti pristup?"</string>
<string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"Nakon što kreirate vidžet, <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> može pristupiti svim podacima koje prikazuje."</string>
<string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"Uvijek dopusti da aplikacija <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> kreira vidžete i koristi njihove podatke"</string>
- <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>h <xliff:g id="MINUTES">%3$d</xliff:g>m <xliff:g id="SECONDS">%4$d</xliff:g>s"</string>
- <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g>h <xliff:g id="MINUTES">%2$d</xliff:g>m <xliff:g id="SECONDS">%3$d</xliff:g>s"</string>
- <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g>m <xliff:g id="SECONDS">%2$d</xliff:g>s"</string>
- <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g>s"</string>
- <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>h <xliff:g id="MINUTES">%3$d</xliff:g>m"</string>
- <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> s <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
+ <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g> d, <xliff:g id="HOURS">%2$d</xliff:g> h, <xliff:g id="MINUTES">%3$d</xliff:g> min, <xliff:g id="SECONDS">%4$d</xliff:g> s"</string>
+ <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min, <xliff:g id="SECONDS">%3$d</xliff:g> s"</string>
+ <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g> min, <xliff:g id="SECONDS">%2$d</xliff:g> s"</string>
+ <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g> s"</string>
+ <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g> d, <xliff:g id="HOURS">%2$d</xliff:g> h, <xliff:g id="MINUTES">%3$d</xliff:g> min"</string>
+ <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
<string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
<string name="usage_stats_label" msgid="5890846333487083609">"Statistika korištenja"</string>
<string name="testing_usage_stats" msgid="7823048598893937339">"Statistika korištenja"</string>
@@ -1950,7 +1950,7 @@
<string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Ekran uključen"</string>
<string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS uključen"</string>
<string name="battery_stats_camera_on_label" msgid="4935637383628414968">"Kamera je uključena"</string>
- <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"Lampa je uključena"</string>
+ <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"Svjetiljka je uključena"</string>
<string name="battery_stats_wifi_running_label" msgid="1845839195549226252">"Wi-Fi"</string>
<string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Aktivan"</string>
<!-- no translation found for battery_stats_phone_signal_label (4137799310329041341) -->
@@ -1967,7 +1967,7 @@
<string name="controls_subtitle" msgid="390468421138288702">"Podesite potrošnju energije"</string>
<string name="packages_subtitle" msgid="4736416171658062768">"Uključeni paketi"</string>
<string name="power_screen" msgid="3023346080675904613">"Ekran"</string>
- <string name="power_flashlight" msgid="7794409781003567614">"Lampa"</string>
+ <string name="power_flashlight" msgid="7794409781003567614">"Svjetiljka"</string>
<string name="power_camera" msgid="4976286950934622605">"Fotoaparat"</string>
<string name="power_wifi" msgid="1135085252964054957">"Wi‑Fi"</string>
<string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
@@ -1996,7 +1996,7 @@
<string name="usage_type_audio" msgid="6957269406840886290">"Zvuk"</string>
<string name="usage_type_video" msgid="4295357792078579944">"Video"</string>
<string name="usage_type_camera" msgid="8299433109956769757">"Kamera"</string>
- <string name="usage_type_flashlight" msgid="1516392356962208230">"Lampa"</string>
+ <string name="usage_type_flashlight" msgid="1516392356962208230">"Svjetiljka"</string>
<string name="usage_type_on_time" msgid="3351200096173733159">"Vrijeme rada"</string>
<string name="usage_type_no_coverage" msgid="3797004252954385053">"Vrijeme bez signala"</string>
<string name="usage_type_total_battery_capacity" msgid="3798285287848675346">"Ukupni kapacitet baterije"</string>
@@ -2013,7 +2013,7 @@
<string name="battery_desc_standby" product="default" msgid="3009080001948091424">"Potrošnja baterije kada je telefon u stanju pripravnosti"</string>
<string name="battery_desc_radio" msgid="5479196477223185367">"Potrošnja baterije za mobilni radio"</string>
<string name="battery_sugg_radio" msgid="8211336978326295047">"Prebacite se na način rada u avionu kako biste štedili napajanje na područjima u kojima nema pokrivenosti mobilnom mrežom"</string>
- <string name="battery_desc_flashlight" msgid="2908579430841025494">"Potrošnja baterije upotrebom baterijske lampe"</string>
+ <string name="battery_desc_flashlight" msgid="2908579430841025494">"Potrošnja baterije upotrebom svjetiljke"</string>
<string name="battery_desc_camera" msgid="7375389919760613499">"Potrošnja baterije upotrebom kamere"</string>
<string name="battery_desc_display" msgid="5432795282958076557">"Potrošnja baterije na prikaz i pozadinsko osvjetljenje"</string>
<string name="battery_sugg_display" msgid="3370202402045141760">"Smanjite osvjetljenje ekrana i/ili trajanje perioda do isključivanja ekrana"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c33d5a9..84db437 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1488,7 +1488,7 @@
<string name="applications_settings" msgid="5281808652705396152">"Informació d\'aplicacions"</string>
<string name="applications_settings_summary" msgid="6683465446264515367">"Gestiona les aplicacions i configura les dreceres d\'inici ràpid"</string>
<string name="applications_settings_header" msgid="1014813055054356646">"Configuració de l\'aplicació"</string>
- <string name="install_applications" msgid="4872012136210802181">"Orígens desconeguts"</string>
+ <string name="install_applications" msgid="4872012136210802181">"Fonts desconegudes"</string>
<string name="install_applications_title" msgid="4987712352256508946">"Permet totes les fonts d\'apl."</string>
<string name="install_all_warning" product="tablet" msgid="8310489909586138165">"La tauleta i les dades personals són més vulnerables a atacs d\'aplicacions desconegudes. En instal·lar aplicacions d\'aquesta font, acceptes que ets responsable de qualsevol dany a la tauleta i qualsevol pèrdua de dades que es pugui produir per l\'ús d\'aquestes aplicacions."</string>
<string name="install_all_warning" product="default" msgid="1952257127370115988">"El telèfon i les dades personals són més vulnerables a atacs d\'aplicacions desconegudes. En instal·lar aplicacions d\'aquesta font, acceptes que ets responsable de qualsevol dany al telèfon i qualsevol pèrdua de dades que es pugui produir per l\'ús d\'aquestes aplicacions."</string>
@@ -2859,7 +2859,7 @@
<string name="app_notification_block_summary" msgid="4744020456943215352">"No mostris mai aquestes notificacions"</string>
<string name="notification_content_block_title" msgid="5854232570963006360">"Mostra notificacions"</string>
<string name="notification_content_block_summary" msgid="7746185794438882389">"No mostris mai notificacions a l\'àrea de notificacions ni en dispositius perifèrics"</string>
- <string name="notification_badge_title" msgid="7734903868300369178">"Permet l\'etiqueta de la icona"</string>
+ <string name="notification_badge_title" msgid="7734903868300369178">"Permet el símbol de la icona"</string>
<string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Fes prioritària"</string>
<string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permet que aquestes notificacions continuïn interrompent quan el mode No molestis estigui configurat com a Només amb prioritat"</string>
<string name="app_notification_visibility_override_title" msgid="2187232730902430718">"A la pantalla de bloqueig"</string>
@@ -3189,7 +3189,7 @@
<string name="system_alert_window_on" msgid="2939489395109048888">"Sí"</string>
<string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
<string name="install_other_apps" msgid="6986686991775883017">"Instal·lar aplicacions desconegudes"</string>
- <string name="keywords_install_other_apps" msgid="761078076051006558">"instal·lar aplicacions orígens desconeguts"</string>
+ <string name="keywords_install_other_apps" msgid="761078076051006558">"instal·lar aplicacions fonts desconegudes"</string>
<string name="write_settings" msgid="4797457275727195681">"Modificar configuració sistema"</string>
<string name="keywords_write_settings" msgid="6415597272561105138">"modifica la configuració del sistema i hi escriu"</string>
<string name="write_settings_summary" msgid="4302268998611412696">"<xliff:g id="COUNT_0">%1$d</xliff:g> de: <xliff:g id="COUNT_1">%2$d</xliff:g> aplicacions poden modificar configuració del sistema"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index faad3b8..5cab08b 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -733,7 +733,7 @@
<string name="wifi_more" msgid="3195296805089107950">"Mere"</string>
<string name="wifi_setup_wps" msgid="8128702488486283957">"Automatisk konfig. (WPS)"</string>
<string name="wifi_show_advanced" msgid="3409422789616520979">"Avancerede valgmuligheder"</string>
- <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"Rullelisten Avancerede indstillinger. Tryk to gange for at skjule listen."</string>
+ <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"Rullelisten Avancerede valgmuligheder. Tryk to gange for at skjule listen."</string>
<string name="wifi_advanced_toggle_description_collapsed" msgid="1463812308429197263">"Rullelisten Avancerede valgmuligheder. Tryk to gange for at udvide listen."</string>
<string name="wifi_wps_setup_title" msgid="8207552222481570175">"Wi-Fi Protected Setup"</string>
<string name="wifi_wps_setup_msg" msgid="315174329121275092">"Starter WPS..."</string>
@@ -1012,7 +1012,7 @@
<string name="screensaver_settings_summary_dock" msgid="2072657401664633283">"Når enheden er tilsluttet en dockingstation"</string>
<string name="screensaver_settings_summary_never" msgid="5165622985174349585">"Aldrig"</string>
<string name="screensaver_settings_summary_off" msgid="2481581696365146473">"Fra"</string>
- <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"Aktivér pauseskærmen for at kontrollere, hvad der sker, når telefonen er sat i dockingstationen og/eller går i dvale."</string>
+ <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"Aktivér pauseskærmen for at administrere, hvad der sker, når telefonen er sat i dockingstationen og/eller går i dvale."</string>
<string name="screensaver_settings_when_to_dream" msgid="7262410541382890146">"Starttidspunkt"</string>
<string name="screensaver_settings_current" msgid="4663846038247130023">"Aktuel pauseskærm"</string>
<string name="screensaver_settings_dream_start" msgid="4998187847985120168">"Start nu"</string>
@@ -1527,7 +1527,7 @@
<string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Du har valgt at tillade, at denne app opretter widgets og får adgang til deres data."</string>
<string name="auto_launch_disable_text" msgid="7800385822185540166">"Der er ikke angivet nogen standarder."</string>
<string name="clear_activities" msgid="7408923511535174430">"Ryd standarder"</string>
- <string name="screen_compatibility_text" msgid="1616155457673106022">"Denne app er muligvis ikke beregnet til din skærm. Her kan du kontrollere, hvordan den skal tilpasses til din skærm."</string>
+ <string name="screen_compatibility_text" msgid="1616155457673106022">"Denne app er muligvis ikke beregnet til din skærm. Her kan du administrere, hvordan den skal tilpasses til din skærm."</string>
<string name="ask_compatibility" msgid="7225195569089607846">"Spørg, når der startes"</string>
<string name="enable_compatibility" msgid="5806819252068617811">"Skaler app"</string>
<string name="unknown" msgid="1592123443519355854">"Ukendt"</string>
@@ -2374,7 +2374,7 @@
<string name="vpn_ipsec_user_cert" msgid="6880651510020187230">"IPSec-brugercertifikat"</string>
<string name="vpn_ipsec_ca_cert" msgid="91338213449148229">"IPSec CA-certifikat"</string>
<string name="vpn_ipsec_server_cert" msgid="6599276718456935010">"IPSec-servercertifikat"</string>
- <string name="vpn_show_options" msgid="7182688955890457003">"Vis avancerede indstillinger"</string>
+ <string name="vpn_show_options" msgid="7182688955890457003">"Vis avancerede valgmuligheder"</string>
<string name="vpn_search_domains" msgid="5391995501541199624">"DNS-søgedomæner"</string>
<string name="vpn_dns_servers" msgid="5570715561245741829">"DNS-servere (f.eks. 8.8.8.8)"</string>
<string name="vpn_routes" msgid="3818655448226312232">"Videresendelsesruter (f.eks. 10.0.0.0/8)"</string>
@@ -3380,7 +3380,7 @@
<string name="button_confirm_convert_fbe" msgid="7101855374850373091">"Ryd og konvertér"</string>
<string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"Nulstil antalsbegrænsning i ShortcutManager"</string>
<string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"Antalsbegrænsning i ShortcutManager er nulstillet"</string>
- <string name="notification_suggestion_title" msgid="4506524937307816475">"Kontrollér underretninger for låseskærm"</string>
+ <string name="notification_suggestion_title" msgid="4506524937307816475">"Konfigurer underretninger for låseskærm"</string>
<string name="notification_suggestion_summary" msgid="8521159741445416875">"Vis eller skjul indhold i underretninger"</string>
<string name="page_tab_title_summary" msgid="4070309266374993258">"Alle"</string>
<string name="page_tab_title_support" msgid="6330657582897417458">"Support"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index da22430..2eada5e 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1294,7 +1294,7 @@
<string name="master_clear_desc" product="default" msgid="4800386183314202571">"Cette action effacera toutes les données du "<b>"stockage interne"</b>" de votre téléphone, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et des applications"</li>\n<li>"Les applications téléchargées"</li></string>
<string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Vous êtes actuellement connecté aux comptes suivants :\n"</string>
<string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"D\'autres personnes utilisent cet appareil.\n"</string>
- <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musique"</li>\n<li>"Photos"</li>\n<li>"Autres données utilisateur"</li></string>
+ <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"La musique"</li>\n<li>"Les photos"</li>\n<li>"Les autres données utilisateur"</li>"."</string>
<string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7744115866662613411">\n\n"Pour supprimer la musique, les photos et les autres données utilisateur, vous devez effacer la "<b>"mémoire de stockage USB"</b>"."</string>
<string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"Pour supprimer la musique, les photos et les autres données utilisateur, vous devez formater la "<b>"carte SD"</b>"."</string>
<string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"Effacer la mémoire USB"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 3c9d43d..f693ad8 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1485,7 +1485,7 @@
<string name="lock_settings_profile_unified_summary" msgid="9008819078132993492">"O mesmo que o bloqueo da pantalla do dispositivo"</string>
<string name="manageapplications_settings_title" msgid="7041951105633616745">"Xestionar aplicacións"</string>
<string name="manageapplications_settings_summary" msgid="1794401500935451259">"Xestiona e elimina as aplicacións instaladas"</string>
- <string name="applications_settings" msgid="5281808652705396152">"Información da aplicación"</string>
+ <string name="applications_settings" msgid="5281808652705396152">"Información das aplicacións"</string>
<string name="applications_settings_summary" msgid="6683465446264515367">"Xestiona aplicacións e configura atallos de inicio rápido"</string>
<string name="applications_settings_header" msgid="1014813055054356646">"Configuración da aplicación"</string>
<string name="install_applications" msgid="4872012136210802181">"Fontes descoñecidas"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 64f77ea..e968c5c 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -2537,7 +2537,7 @@
<string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"発信履歴がこのユーザーと共有されます。"</string>
<string name="user_enable_calling_and_sms_confirm_title" msgid="7243308401401932681">"通話とSMSをONにしますか?"</string>
<string name="user_enable_calling_and_sms_confirm_message" msgid="4025082715546544967">"通話とSMSの履歴がこのユーザーと共有されます。"</string>
- <string name="emergency_info_title" msgid="208607506217060337">"緊急情報"</string>
+ <string name="emergency_info_title" msgid="208607506217060337">"緊急時情報"</string>
<string name="emergency_info_summary" msgid="5062945162967838521">"<xliff:g id="USER_NAME">%1$s</xliff:g>の情報と連絡先"</string>
<string name="application_restrictions" msgid="8207332020898004394">"アプリとコンテンツの許可"</string>
<string name="apps_with_restrictions_header" msgid="3660449891478534440">"制限のあるアプリ"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 556c72d..97e01ab 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"ಅಧಿಸೂಚನೆಗಳು"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"ಸುಧಾರಿತ"</string>
<string name="profile_section_header" msgid="2320848161066912001">"ಕೆಲಸದ ಅಧಿಸೂಚನೆಗಳು"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"ಐಕಾನ್ ಬ್ಯಾಡ್ಜ್ಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ಮಿನುಗುವ ಬೆಳಕು"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ಅಧಿಸೂಚನೆ ವಿಷಯವನ್ನು ಪೂರ್ತಿ ತೋರಿಸು"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index d8141a5..5b47d8d 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"അറിയിപ്പുകൾ"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"വിപുലമായത്"</string>
<string name="profile_section_header" msgid="2320848161066912001">"ഔദ്യോഗിക അറിയിപ്പുകൾ"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"ഐക്കൺ ബാഡ്ജുകൾ അനുവദിക്കുക"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ലൈറ്റ് മിന്നുക"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"ലോക്ക് സ്ക്രീനിൽ"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"എല്ലാ അറിയിപ്പുകളും കാണിക്കുക"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index b82e4b6..23a89e5 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"सूचनाहरू"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"उन्नत"</string>
<string name="profile_section_header" msgid="2320848161066912001">"कार्यका सूचनाहरू"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"आइकनका ब्याजहरूलाई अनुमति दिनुहोस्"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"झिम झिम गर्ने बत्ती"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"लक स्क्रिनमा"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"सबै सूचना सामग्री देखाउनुहोस्"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index dcb5ef1..8dd5f70 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"ਸੂਚਨਾਵਾਂ"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"ਉੱਨਤ"</string>
<string name="profile_section_header" msgid="2320848161066912001">"ਕੰਮ ਸਬੰਧੀ ਸੂਚਨਾਵਾਂ"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"ਪ੍ਰਤੀਕ ਬੈਜਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"ਲਾਈਟ ਨੂੰ ਟਿਮ-ਟਿਮਾਓ"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"ਲੌਕ ਸਕ੍ਰੀਨ \'ਤੇ"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ਸਾਰੀ ਸੂਚਨਾ ਸਮੱਗਰੀ ਦਿਖਾਓ"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 76d5435..5a70258 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -2831,8 +2831,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"Upozornenia"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"Rozšírené"</string>
<string name="profile_section_header" msgid="2320848161066912001">"Pracovné upozornenia"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"Povoliť odznaky na ikonách"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"Blikanie"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na uzamknutej obrazovke"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Zobrazovať všetok obsah upozornení"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5de847b..8519b16 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -34,7 +34,7 @@
<string name="header_category_wireless_networks" msgid="5110914332313954940">"Бежична веза и мреже"</string>
<string name="header_category_connections" msgid="6471513040815680662">"Везе"</string>
<string name="header_category_device" msgid="4544026001618307754">"Уређај"</string>
- <string name="header_category_personal" msgid="3310195187905720823">"Лично"</string>
+ <string name="header_category_personal" msgid="3310195187905720823">"Лични"</string>
<string name="header_category_access" msgid="7580499097416970962">"Приступ"</string>
<string name="header_category_system" msgid="2816866961183068977">"Систем"</string>
<string name="radio_info_data_connection_enable" msgid="8656750679353982712">"Омогући везу за пренос података"</string>
@@ -584,7 +584,7 @@
<item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> активне апликације</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> активних апликација</item>
</plurals>
- <string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
+ <string name="manage_trust_agents" msgid="4629279457536987768">"Поуздани агенти"</string>
<string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Да бисте га користили, прво подесите закључавање екрана"</string>
<string name="manage_trust_agents_summary" msgid="1475819820389620546">"Ништа"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
@@ -962,7 +962,7 @@
<string name="search_settings" msgid="1910951467596035063">"Претрага"</string>
<string name="search_settings_summary" msgid="9205656546570654169">"Управљање подешавањима претраге и историјом"</string>
<string name="search_settings_no_results" msgid="8799027492641230999">"Нема резултата"</string>
- <string name="display_settings" msgid="7965901687241669598">"Приказ"</string>
+ <string name="display_settings" msgid="7965901687241669598">"Екран"</string>
<string name="accelerometer_title" msgid="7854608399547349157">"Аутоматско ротирање екрана"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Промени положај аутоматски приликом ротирања таблета"</string>
<string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Аутоматска промена положаја приликом ротације телефона"</string>
@@ -2190,7 +2190,7 @@
<string name="no_device_admins" msgid="4846602835339095768">"Нема доступних апликација за администратора уређаја"</string>
<string name="personal_device_admin_title" msgid="2849617316347669861">"Лични"</string>
<string name="managed_device_admin_title" msgid="7853955652864478435">"Посао"</string>
- <string name="no_trust_agents" msgid="7450273545568977523">"Trust agents - Недоступно"</string>
+ <string name="no_trust_agents" msgid="7450273545568977523">"Нема доступних поузданих агената"</string>
<string name="add_device_admin_msg" msgid="1501847129819382149">"Активирај апликацију за администраторе?"</string>
<string name="add_device_admin" msgid="4192055385312215731">"Активирај ову апликацију за администраторе уређаја"</string>
<string name="device_admin_add_title" msgid="3140663753671809044">"Администратор уређаја"</string>
@@ -3035,7 +3035,7 @@
<string name="storage_used" msgid="7128074132917008743">"Меморијски простор у употреби"</string>
<string name="change" msgid="6657848623929839991">"Промени"</string>
<string name="change_storage" msgid="600475265207060436">"Промените меморију"</string>
- <string name="notifications_label" msgid="8543457911148619898">"Обавештења апликације"</string>
+ <string name="notifications_label" msgid="8543457911148619898">"Обавештења о апликацији"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"Укључена"</string>
<string name="notifications_disabled" msgid="334416731283131597">"Све је искључено"</string>
<string name="notifications_partly_blocked" msgid="592071133950126656">"Укључених категорија: <xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3155,12 +3155,12 @@
<string name="usb_use_power_only" msgid="6426550616883919530">"Напајање"</string>
<string name="usb_use_power_only_desc" msgid="3461232831015575152">"Пуните повезани уређај. Ради само са уређајима који подржавају пуњење преко USB-а."</string>
<string name="usb_use_file_transfers" msgid="7409600791007250137">"Пренос датотека"</string>
- <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Преноси датотеке на други уређај"</string>
+ <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Преносите датотеке на други уређај"</string>
<string name="usb_use_photo_transfers" msgid="7794775645350330454">"Пренос слика (PTP)"</string>
- <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Преноси слике или датотеке ако MTP није подржан (PTP)"</string>
+ <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Преносите слике или датотеке ако MTP није подржан (PTP)"</string>
<string name="usb_use_MIDI" msgid="870922185938298263">"Коришћење уређаја у MIDI режиму"</string>
- <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користи овај уређај као MIDI"</string>
- <string name="usb_use" msgid="3256040963685055320">"Употребите USB за:"</string>
+ <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користите овај уређај као MIDI"</string>
+ <string name="usb_use" msgid="3256040963685055320">"Користите USB за:"</string>
<string name="usb_pref" msgid="1400617804525116158">"USB"</string>
<string name="usb_summary_charging_only" msgid="7544327009143659751">"Пуњење уређаја"</string>
<string name="usb_summary_power_only" msgid="3629517713817003738">"Напајање"</string>
@@ -3264,7 +3264,7 @@
<string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"Уто 18:02"</string>
<string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"Уто 18:03"</string>
<string name="disconnected" msgid="4836600637485526329">"Није повезано"</string>
- <string name="data_usage_summary_format" msgid="7507047900192160585">"Користи се <xliff:g id="AMOUNT">%1$s</xliff:g> података"</string>
+ <string name="data_usage_summary_format" msgid="7507047900192160585">"Искоришћено је <xliff:g id="AMOUNT">%1$s</xliff:g> података"</string>
<plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
<item quantity="one">Искључено за <xliff:g id="COUNT">%d</xliff:g> апликацију</item>
<item quantity="few">Искључено за <xliff:g id="COUNT">%d</xliff:g> апликације</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index d300f72..ad2adc2 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"నోటిఫికేషన్లు"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"అధునాతనం"</string>
<string name="profile_section_header" msgid="2320848161066912001">"కార్యాలయ నోటిఫికేషన్లు"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"చిహ్నం బ్యాడ్జ్లను అనుమతించండి"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"కాంతి మిణుకుమిణుకు అనేలా ఉంచు"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"లాక్ స్క్రీన్పై"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"మొత్తం నోటిఫికేషన్ కంటెంట్ను చూపు"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 199bf64..d1fc04c 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -2775,8 +2775,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"اطلاعات"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"جدید ترین"</string>
<string name="profile_section_header" msgid="2320848161066912001">"دفتری اطلاعات"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"آئیکن بیجز کی اجازت دیں"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"بلنک لائٹ"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"قفل اسکرین پر"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"سبھی اطلاعی مواد دکھائیں"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index b179ffa..1dbf691 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1735,9 +1735,9 @@
<string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"物理键盘"</string>
<string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"物理键盘设置"</string>
<string name="gadget_picker_title" msgid="98374951396755811">"选择小工具"</string>
- <string name="widget_picker_title" msgid="9130684134213467557">"选择小部件"</string>
- <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建小部件并查看其数据?"</string>
- <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"当您创建小部件后,“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”将能查看其显示的所有数据。"</string>
+ <string name="widget_picker_title" msgid="9130684134213467557">"选择微件"</string>
+ <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建微件并查看其数据?"</string>
+ <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"当您创建微件后,“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”将能查看其显示的所有数据。"</string>
<string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"始终允许“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”创建微件并查看其数据"</string>
<string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>天<xliff:g id="HOURS">%2$d</xliff:g>小时<xliff:g id="MINUTES">%3$d</xliff:g>分<xliff:g id="SECONDS">%4$d</xliff:g>秒"</string>
<string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g>小时<xliff:g id="MINUTES">%2$d</xliff:g>分<xliff:g id="SECONDS">%3$d</xliff:g>秒"</string>
@@ -2777,8 +2777,7 @@
<string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
<string name="advanced_section_header" msgid="8833934850242546903">"高级"</string>
<string name="profile_section_header" msgid="2320848161066912001">"工作通知"</string>
- <!-- no translation found for notification_badging_title (5125022693565388760) -->
- <skip />
+ <string name="notification_badging_title" msgid="5125022693565388760">"允许在图标上显示标记"</string>
<string name="notification_pulse_title" msgid="1905382958860387030">"闪烁指示灯"</string>
<string name="lock_screen_notifications_title" msgid="6173076173408887213">"屏幕锁定时"</string>
<string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"显示所有通知内容"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8e3fbe2..dc7e567 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4686,6 +4686,8 @@
<!-- Description for battery usage time for an app, i.e. Used for 30min. Note: ^1 should be used in all translations [CHAR LIMIT=60] -->
<string name="battery_used_for">Used for <xliff:g id="time">^1</xliff:g></string>
+ <!-- Description for battery screen usage time for an app, i.e. Screen usage 30min. Note: ^1 should be used in all translations [CHAR LIMIT=60] -->
+ <string name="battery_screen_usage">Screen usage <xliff:g id="time">^1</xliff:g></string>
<!-- Description for battery usage info for an app, i.e. 60% used by facebook. [CHAR LIMIT=60] -->
<string name="battery_used_by"><xliff:g id="percent">%1$s</xliff:g> used by <xliff:g id="app">%2$s</xliff:g></string>
<!-- Description for percentage of battery usage for an app, i.e. Screen: 30% of overall battery. [CHAR LIMIT=60] -->
@@ -8618,10 +8620,6 @@
<!-- Preference label for the Files storage section. [CHAR LIMIT=50] -->
<string name="storage_files">Files</string>
- <!-- Main settings screen item's title to go into the storage settings screen [CHAR LIMIT=25] -->
- <string name="storage_settings_2" product="tablet">Tablet storage</string>
- <string name="storage_settings_2" product="default">Phone storage</string>
-
<!-- Summary of a single storage volume used space. [CHAR LIMIT=24] -->
<string name="storage_size_large_alternate"><xliff:g id="number" example="128">^1</xliff:g><small> <xliff:g id="unit" example="KB">^2</xliff:g></small></string>
<!-- Summary of a single storage volume total space. [CHAR LIMIT=48]-->
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index bed3aa6..718bb23 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -39,7 +39,7 @@
android:summary="@string/summary_placeholder"/>
<SwitchPreference
- android:key="gesture_swipe_down_fingerprint"
+ android:key="gesture_swipe_down_fingerprint_notifications"
android:title="@string/fingerprint_swipe_for_notifications_title"
android:summary="@string/fingerprint_swipe_for_notifications_summary"/>
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 0089ed7..a60276c 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -423,6 +423,11 @@
android:title="@string/show_all_anrs"
android:summary="@string/show_all_anrs_summary"/>
+ <SwitchPreference
+ android:key="show_notification_channel_warnings"
+ android:title="@string/show_notification_channel_warnings"
+ android:summary="@string/show_notification_channel_warnings_summary"/>
+
<Preference
android:key="inactive_apps"
android:title="@string/inactive_apps_title"
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 7f740f3..50e6891 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -97,12 +97,12 @@
android:title="@string/lift_to_wake_title" />
<Preference
- android:key="gesture_double_tap_screen"
+ android:key="gesture_double_tap_screen_display_summary"
android:title="@string/ambient_display_title"
android:fragment="com.android.settings.gestures.DoubleTapScreenSettings" />
<Preference
- android:key="gesture_pick_up"
+ android:key="gesture_pick_up_display_summary"
android:title="@string/ambient_display_pickup_title"
android:fragment="com.android.settings.gestures.PickupGestureSettings" />
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index ca5ce45..6e65da6 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -66,32 +66,32 @@
android:title="@string/gesture_preference_title">
<Preference
- android:key="gesture_assist"
+ android:key="gesture_assist_input_summary"
android:title="@string/assist_gesture_title"
android:fragment="com.android.settings.gestures.AssistGestureSettings"/>
<Preference
- android:key="gesture_swipe_down_fingerprint"
+ android:key="gesture_swipe_down_fingerprint_input_summary"
android:title="@string/fingerprint_swipe_for_notifications_title"
android:fragment="com.android.settings.gestures.SwipeToNotificationSettings"/>
<Preference
- android:key="gesture_double_tap_power"
+ android:key="gesture_double_tap_power_input_summary"
android:title="@string/double_tap_power_for_camera_title"
android:fragment="com.android.settings.gestures.DoubleTapPowerSettings"/>
<Preference
- android:key="gesture_double_twist"
+ android:key="gesture_double_twist_input_summary"
android:title="@string/double_twist_for_camera_mode_title"
android:fragment="com.android.settings.gestures.DoubleTwistGestureSettings"/>
<Preference
- android:key="gesture_double_tap_screen"
+ android:key="gesture_double_tap_screen_input_summary"
android:title="@string/ambient_display_title"
android:fragment="com.android.settings.gestures.DoubleTapScreenSettings"/>
<Preference
- android:key="gesture_pick_up"
+ android:key="gesture_pick_up_input_summary"
android:title="@string/ambient_display_pickup_title"
android:fragment="com.android.settings.gestures.PickupGestureSettings"/>
@@ -105,7 +105,7 @@
android:dialogTitle="@string/pointer_speed"/>
<Preference
- android:key="tts_settings"
+ android:key="tts_settings_summary"
android:title="@string/tts_settings_title"
android:fragment="com.android.settings.tts.TextToSpeechSettings"/>
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
index eadf45f..a96fb6b 100644
--- a/res/xml/manage_assist.xml
+++ b/res/xml/manage_assist.xml
@@ -26,7 +26,7 @@
android:fragment="com.android.settings.applications.assist.DefaultAssistPicker"/>
<Preference
- android:key="gesture_assist"
+ android:key="gesture_assist_application"
android:title="@string/assist_gesture_title"
android:fragment="com.android.settings.gestures.AssistGestureSettings"/>
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 98844fa..b70a133 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -54,6 +54,8 @@
private static final String KEY_AUTO_BRIGHTNESS = "auto_brightness";
private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
+ private static final String KEY_PICK_UP = "gesture_pick_up_display_summary";
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_display_summary";
@Override
public int getMetricsCategory() {
@@ -100,9 +102,10 @@
controllers.add(new ScreenSaverPreferenceController(context));
AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context);
controllers.add(new PickupGesturePreferenceController(
- context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
+ context, lifecycle, ambientDisplayConfig, UserHandle.myUserId(), KEY_PICK_UP));
controllers.add(new DoubleTapScreenPreferenceController(
- context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
+ context, lifecycle, ambientDisplayConfig, UserHandle.myUserId(),
+ KEY_DOUBLE_TAP_SCREEN));
controllers.add(new TapToWakePreferenceController(context));
controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
controllers.add(new VrDisplayPreferenceController(context));
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index e9b7481..ab9f358 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -93,6 +93,7 @@
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
import com.android.settings.fuelgauge.BatteryEntry;
+import com.android.settings.fuelgauge.BatteryStatsHelperLoader;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.notification.AppNotificationSettings;
import com.android.settings.notification.NotificationBackend;
@@ -143,6 +144,7 @@
private static final int LOADER_CHART_DATA = 2;
private static final int LOADER_STORAGE = 3;
+ private static final int LOADER_BATTERY = 4;
private static final int DLG_FORCE_STOP = DLG_BASE + 1;
private static final int DLG_DISABLE = DLG_BASE + 2;
@@ -204,6 +206,31 @@
private String mBatteryPercent;
private BatteryUtils mBatteryUtils;
+ private final LoaderCallbacks<BatteryStatsHelper> mBatteryCallbacks =
+ new LoaderCallbacks<BatteryStatsHelper>() {
+
+ @Override
+ public Loader<BatteryStatsHelper> onCreateLoader(int id, Bundle args) {
+ return new BatteryStatsHelperLoader(getContext(), args);
+ }
+
+ @Override
+ public void onLoadFinished(Loader<BatteryStatsHelper> loader,
+ BatteryStatsHelper batteryHelper) {
+ mBatteryHelper = batteryHelper;
+ if (mPackageInfo != null) {
+ mSipper = findTargetSipper(batteryHelper, mPackageInfo.applicationInfo.uid);
+ if (getActivity() != null) {
+ updateBattery();
+ }
+ }
+ }
+
+ @Override
+ public void onLoaderReset(Loader<BatteryStatsHelper> loader) {
+ }
+ };
+
private boolean handleDisableable(Button button) {
boolean disableable = false;
// Try to prevent the user from bricking their phone
@@ -362,7 +389,6 @@
} else {
removePreference(KEY_DATA);
}
- mBatteryHelper = new BatteryStatsHelper(getActivity(), true);
mBatteryUtils = BatteryUtils.getInstance(getContext());
}
@@ -386,7 +412,7 @@
mDataCallbacks);
loaderManager.restartLoader(LOADER_STORAGE, Bundle.EMPTY, this);
}
- new BatteryUpdater().execute();
+ getLoaderManager().initLoader(LOADER_BATTERY, Bundle.EMPTY, mBatteryCallbacks);
new MemoryUpdater().execute();
updateDynamicPrefs();
}
@@ -625,6 +651,19 @@
return showIt;
}
+ @VisibleForTesting
+ BatterySipper findTargetSipper(BatteryStatsHelper batteryHelper, int uid) {
+ List<BatterySipper> usageList = batteryHelper.getUsageList();
+ for (int i = 0, size = usageList.size(); i < size; i++) {
+ BatterySipper sipper = usageList.get(i);
+ if (sipper.getUid() == uid) {
+ return sipper;
+ }
+ }
+
+ return null;
+ }
+
private boolean signaturesMatch(String pkg1, String pkg2) {
if (pkg1 != null && pkg2 != null) {
try {
@@ -719,7 +758,7 @@
}
private void updateBattery() {
- if (mSipper != null) {
+ if (mSipper != null && mBatteryHelper != null) {
mBatteryPreference.setEnabled(true);
final int dischargeAmount = mBatteryHelper.getStats().getDischargeAmount(
BatteryStats.STATS_SINCE_CHARGED);
@@ -1343,33 +1382,6 @@
}
- private class BatteryUpdater extends AsyncTask<Void, Void, Void> {
- @Override
- protected Void doInBackground(Void... params) {
- mBatteryHelper.create((Bundle) null);
- mBatteryHelper.refreshStats(BatteryStats.STATS_SINCE_CHARGED,
- mUserManager.getUserProfiles());
- List<BatterySipper> usageList = mBatteryHelper.getUsageList();
- final int N = usageList.size();
- for (int i = 0; i < N; i++) {
- BatterySipper sipper = usageList.get(i);
- if (sipper.getUid() == mPackageInfo.applicationInfo.uid) {
- mSipper = sipper;
- break;
- }
- }
- return null;
- }
-
- @Override
- protected void onPostExecute(Void result) {
- if (getActivity() == null) {
- return;
- }
- refreshUi();
- }
- }
-
/**
* Elicit this class for testing. Test cannot be done in robolectric because it
* invokes the new API.
diff --git a/src/com/android/settings/applications/assist/ManageAssist.java b/src/com/android/settings/applications/assist/ManageAssist.java
index 824c0b1..aa71c9a 100644
--- a/src/com/android/settings/applications/assist/ManageAssist.java
+++ b/src/com/android/settings/applications/assist/ManageAssist.java
@@ -38,6 +38,7 @@
public class ManageAssist extends DashboardFragment {
private static final String TAG = "ManageAssist";
+ private static final String KEY_ASSIST = "gesture_assist_application";
@Override
protected String getLogTag() {
@@ -71,7 +72,7 @@
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new DefaultAssistPreferenceController(context));
- controllers.add(new AssistGesturePreferenceController(context, lifecycle));
+ controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
controllers.add(new AssistContextPreferenceController(context, lifecycle));
controllers.add(new AssistScreenshotPreferenceController(context, lifecycle));
controllers.add(new AssistFlashScreenPreferenceController(context, lifecycle));
@@ -94,5 +95,13 @@
public List<PreferenceController> getPreferenceControllers(Context context) {
return buildPreferenceControllers(context, null /* lifecycle */);
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ keys.add(KEY_ASSIST);
+ return keys;
+ }
+
};
}
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
index 7eb7fdd..59496dd 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
@@ -17,6 +17,7 @@
package com.android.settings.bluetooth;
import android.app.Notification;
+import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.bluetooth.BluetoothDevice;
@@ -45,6 +46,12 @@
private static final String NOTIFICATION_TAG_PBAP = "Phonebook Access" ;
private static final String NOTIFICATION_TAG_MAP = "Message Access";
private static final String NOTIFICATION_TAG_SAP = "SIM Access";
+ /* TODO: Consolidate this multiple defined but common channel ID with other
+ * handlers that declare and use the same channel ID */
+ private static final String BLUETOOTH_NOTIFICATION_CHANNEL =
+ "bluetooth_notification_channel";
+
+ private NotificationChannel mNotificationChannel = null;
Context mContext;
int mRequestType;
@@ -151,7 +158,16 @@
deviceAlias, deviceAlias);
break;
}
- Notification notification = new Notification.Builder(context)
+ NotificationManager notificationManager =
+ (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+ if (mNotificationChannel == null) {
+ mNotificationChannel = new NotificationChannel(BLUETOOTH_NOTIFICATION_CHANNEL,
+ context.getString(R.string.bluetooth),
+ NotificationManager.IMPORTANCE_HIGH);
+ notificationManager.createNotificationChannel(mNotificationChannel);
+ }
+ Notification notification = new Notification.Builder(context,
+ BLUETOOTH_NOTIFICATION_CHANNEL)
.setContentTitle(title)
.setTicker(message)
.setContentText(message)
@@ -169,9 +185,6 @@
notification.flags |= Notification.FLAG_NO_CLEAR; // Cannot be set with the builder.
- NotificationManager notificationManager =
- (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-
notificationManager.notify(getNotificationTag(mRequestType), NOTIFICATION_ID,
notification);
}
diff --git a/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java b/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
index 69f174b..d1c7c7a 100644
--- a/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
+++ b/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
@@ -111,6 +111,9 @@
mPreferenceKeySet.add(prefKey);
return;
}
+ // TODO: Remove count logging to save some resource.
+ mMetricsFeature.count(mContext, prefKey + "|" + value, 1);
+
// Pref key exists in set, log it's change in metrics.
mMetricsFeature.action(mContext, MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE,
Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, prefKey),
diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index e06c869..74a6091 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -226,6 +226,8 @@
private static final String SHOW_ALL_ANRS_KEY = "show_all_anrs";
+ private static final String SHOW_NOTIFICATION_CHANNEL_WARNINGS_KEY = "show_notification_channel_warnings";
+
private static final String TERMINAL_APP_PACKAGE = "com.android.terminal";
private static final String KEY_CONVERT_FBE = "convert_to_file_encryption";
@@ -326,6 +328,8 @@
private SwitchPreference mShowAllANRs;
+ private SwitchPreference mShowNotificationChannelWarnings;
+
private ColorModePreference mColorModePreference;
private SwitchPreference mForceResizable;
@@ -523,6 +527,11 @@
mAllPrefs.add(mShowAllANRs);
mResetSwitchPrefs.add(mShowAllANRs);
+ mShowNotificationChannelWarnings = (SwitchPreference) findPreference(
+ SHOW_NOTIFICATION_CHANNEL_WARNINGS_KEY);
+ mAllPrefs.add(mShowNotificationChannelWarnings);
+ mResetSwitchPrefs.add(mShowNotificationChannelWarnings);
+
Preference hdcpChecking = findPreference(HDCP_CHECKING_KEY);
if (hdcpChecking != null) {
mAllPrefs.add(hdcpChecking);
@@ -788,6 +797,7 @@
updateImmediatelyDestroyActivitiesOptions();
updateAppProcessLimitOptions();
updateShowAllANRsOptions();
+ updateShowNotificationChannelWarningsOptions();
mVerifyAppsOverUsbController.updatePreference();
updateOtaDisableAutomaticUpdateOptions();
updateBugreportOptions();
@@ -2268,6 +2278,19 @@
getActivity().getContentResolver(), Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0);
}
+ private void writeShowNotificationChannelWarningsOptions() {
+ Settings.Global.putInt(getActivity().getContentResolver(),
+ Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS,
+ mShowNotificationChannelWarnings.isChecked() ? 1 : 0);
+ }
+
+ private void updateShowNotificationChannelWarningsOptions() {
+ final int defaultWarningEnabled = Build.IS_DEBUGGABLE ? 1 : 0;
+ updateSwitchPreference(mShowNotificationChannelWarnings, Settings.Global.getInt(
+ getActivity().getContentResolver(),
+ Settings.Global.SHOW_NOTIFICATION_CHANNEL_WARNINGS, defaultWarningEnabled) != 0);
+ }
+
private void confirmEnableOemUnlock() {
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
@@ -2454,6 +2477,8 @@
writeImmediatelyDestroyActivitiesOptions();
} else if (preference == mShowAllANRs) {
writeShowAllANRsOptions();
+ } else if (preference == mShowNotificationChannelWarnings) {
+ writeShowNotificationChannelWarningsOptions();
} else if (preference == mForceHardwareUi) {
writeHardwareUiOptions();
} else if (preference == mForceMsaa) {
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index b2bad3a..ce9ea9b 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -235,7 +235,7 @@
args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
StorageDashboardFragment.class.getName(), args, null,
- R.string.storage_settings_2, null, false, getMetricsCategory());
+ R.string.storage_settings, null, false, getMetricsCategory());
intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
getActivity().startActivity(intent);
finish();
@@ -280,7 +280,7 @@
if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.getId())) {
startFragment(this, StorageDashboardFragment.class.getCanonicalName(),
- R.string.storage_settings_2, 0, args);
+ R.string.storage_settings, 0, args);
} else {
// TODO: Go to the StorageDashboardFragment once it fully handles all of the
// SD card cases and other private internal storage cases.
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
index e6e6bcd..8078ad6 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
@@ -159,6 +159,14 @@
startIconAnimation();
}
+ @Override
+ protected void onPause() {
+ super.onPause();
+ if (mSidecar != null) {
+ mSidecar.setListener(null);
+ }
+ }
+
private void startIconAnimation() {
mIconAnimationDrawable.start();
}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
index 107838c..5152d31 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
@@ -134,7 +134,7 @@
return;
}
}
- getFragmentManager().beginTransaction().remove(mSidecar).commit();
+ getFragmentManager().beginTransaction().remove(mSidecar).commitAllowingStateLoss();
mSidecar = null;
startActivityForResult(getEnrollingIntent(), ENROLLING);
}
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
index 7fc7a04..cbfec0c 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
@@ -31,6 +31,8 @@
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.password.IFingerprintManager;
+import java.util.ArrayList;
+
/**
* Sidecar fragment to handle the state around fingerprint enrollment.
*/
@@ -46,6 +48,57 @@
private boolean mDone;
private int mUserId;
private IFingerprintManager mFingerprintManager;
+ private ArrayList<QueuedEvent> mQueuedEvents;
+
+ private abstract class QueuedEvent {
+ public abstract void send(Listener listener);
+ }
+
+ private class QueuedEnrollmentProgress extends QueuedEvent {
+ int enrollmentSteps;
+ int remaining;
+ public QueuedEnrollmentProgress(int enrollmentSteps, int remaining) {
+ this.enrollmentSteps = enrollmentSteps;
+ this.remaining = remaining;
+ }
+
+ @Override
+ public void send(Listener listener) {
+ listener.onEnrollmentProgressChange(enrollmentSteps, remaining);
+ }
+ }
+
+ private class QueuedEnrollmentHelp extends QueuedEvent {
+ int helpMsgId;
+ CharSequence helpString;
+ public QueuedEnrollmentHelp(int helpMsgId, CharSequence helpString) {
+ this.helpMsgId = helpMsgId;
+ this.helpString = helpString;
+ }
+
+ @Override
+ public void send(Listener listener) {
+ listener.onEnrollmentHelp(helpString);
+ }
+ }
+
+ private class QueuedEnrollmentError extends QueuedEvent {
+ int errMsgId;
+ CharSequence errString;
+ public QueuedEnrollmentError(int errMsgId, CharSequence errString) {
+ this.errMsgId = errMsgId;
+ this.errString = errString;
+ }
+
+ @Override
+ public void send(Listener listener) {
+ listener.onEnrollmentError(errMsgId, errString);
+ }
+ }
+
+ public FingerprintEnrollSidecar() {
+ mQueuedEvents = new ArrayList<>();
+ }
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -103,6 +156,13 @@
public void setListener(Listener listener) {
mListener = listener;
+ if (mListener != null) {
+ for (int i=0; i<mQueuedEvents.size(); i++) {
+ QueuedEvent event = mQueuedEvents.get(i);
+ event.send(mListener);
+ }
+ mQueuedEvents.clear();
+ }
}
public int getEnrollmentSteps() {
@@ -129,6 +189,8 @@
mDone = remaining == 0;
if (mListener != null) {
mListener.onEnrollmentProgressChange(mEnrollmentSteps, remaining);
+ } else {
+ mQueuedEvents.add(new QueuedEnrollmentProgress(mEnrollmentSteps, remaining));
}
}
@@ -136,6 +198,8 @@
public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
if (mListener != null) {
mListener.onEnrollmentHelp(helpString);
+ } else {
+ mQueuedEvents.add(new QueuedEnrollmentHelp(helpMsgId, helpString));
}
}
@@ -143,6 +207,8 @@
public void onEnrollmentError(int errMsgId, CharSequence errString) {
if (mListener != null) {
mListener.onEnrollmentError(errMsgId, errString);
+ } else {
+ mQueuedEvents.add(new QueuedEnrollmentError(errMsgId, errString));
}
mEnrolling = false;
}
diff --git a/src/com/android/settings/fuelgauge/BatteryMeterView.java b/src/com/android/settings/fuelgauge/BatteryMeterView.java
index 53f490f..b9ed1e4 100644
--- a/src/com/android/settings/fuelgauge/BatteryMeterView.java
+++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java
@@ -38,8 +38,6 @@
@VisibleForTesting
ColorFilter mAccentColorFilter;
- private int mLevel;
-
public BatteryMeterView(Context context) {
this(context, null, 0);
}
@@ -66,7 +64,6 @@
}
public void setBatteryLevel(int level) {
- mLevel = level;
mDrawable.setBatteryLevel(level);
if (level < mDrawable.getCriticalLevel()) {
mDrawable.setBatteryColorFilter(mErrorColorFilter);
@@ -75,10 +72,6 @@
}
}
- public int getBatteryLevel() {
- return mLevel;
- }
-
public void setCharging(boolean charging) {
mDrawable.setCharging(charging);
}
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 8e730c0..849144a 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -185,9 +185,7 @@
return drainType == BatterySipper.DrainType.IDLE
|| drainType == BatterySipper.DrainType.CELL
- || drainType == BatterySipper.DrainType.WIFI
|| drainType == BatterySipper.DrainType.SCREEN
- || drainType == BatterySipper.DrainType.BLUETOOTH
|| drainType == BatterySipper.DrainType.UNACCOUNTED
|| drainType == BatterySipper.DrainType.OVERCOUNTED
|| (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP
diff --git a/src/com/android/settings/fuelgauge/FakeUid.java b/src/com/android/settings/fuelgauge/FakeUid.java
index 6f92b3d..6cb5c64 100644
--- a/src/com/android/settings/fuelgauge/FakeUid.java
+++ b/src/com/android/settings/fuelgauge/FakeUid.java
@@ -45,6 +45,11 @@
}
@Override
+ public Timer getAggregatedPartialWakelockTimer() {
+ return null;
+ }
+
+ @Override
public ArrayMap<String, ? extends Timer> getSyncStats() {
return null;
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index d0343c3..b3d07b8 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -16,8 +16,6 @@
package com.android.settings.fuelgauge;
-import android.animation.Animator;
-import android.animation.ValueAnimator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -43,7 +41,6 @@
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
-import android.view.animation.AnimationUtils;
import android.widget.TextView;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -87,10 +84,6 @@
private static final String KEY_BATTERY_HEADER = "battery_header";
private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10;
private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10;
- private static final int BATTERY_ANIMATION_DURATION_MS_PER_LEVEL = 30;
-
- @VisibleForTesting
- static final String ARG_BATTERY_LEVEL = "key_battery_level";
private static final String KEY_SCREEN_USAGE = "screen_usage";
private static final String KEY_TIME_SINCE_LAST_FULL_CHARGE = "last_full_charge";
@@ -112,8 +105,6 @@
new FooterPreferenceMixin(this, getLifecycle());
@VisibleForTesting
- int mBatteryLevel;
- @VisibleForTesting
boolean mShowAllApps = false;
@VisibleForTesting
PowerGaugePreference mScreenUsagePref;
@@ -133,8 +124,6 @@
super.onCreate(icicle);
setAnimationAllowed(true);
- mBatteryLevel = getContext().getResources().getInteger(
- com.android.internal.R.integer.config_criticalBatteryWarningLevel) + 1;
mBatteryLayoutPref = (LayoutPreference) findPreference(KEY_BATTERY_HEADER);
mAppListGroup = (PreferenceGroup) findPreference(KEY_APP_LIST);
mScreenUsagePref = (PowerGaugePreference) findPreference(KEY_SCREEN_USAGE);
@@ -148,14 +137,6 @@
}
@Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- if (savedInstanceState != null) {
- mBatteryLevel = savedInstanceState.getInt(ARG_BATTERY_LEVEL);
- }
- }
-
- @Override
public int getMetricsCategory() {
return MetricsEvent.FUELGAUGE_POWER_USAGE_SUMMARY;
}
@@ -163,8 +144,6 @@
@Override
public void onResume() {
super.onResume();
-
- initHeaderPreference();
}
@Override
@@ -183,12 +162,6 @@
}
@Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putInt(ARG_BATTERY_LEVEL, mBatteryLevel);
- }
-
- @Override
public boolean onPreferenceTreeClick(Preference preference) {
if (KEY_BATTERY_HEADER.equals(preference.getKey())) {
performBatteryHeaderClick();
@@ -596,46 +569,15 @@
.findViewById(R.id.battery_header_icon);
final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);
final TextView summary1 = (TextView) mBatteryLayoutPref.findViewById(R.id.summary1);
+ timeText.setText(Utils.formatPercentage(info.batteryLevel));
if (info.remainingLabel == null ) {
summary1.setText(info.statusLabel);
} else {
summary1.setText(info.remainingLabel);
}
+
+ batteryView.setBatteryLevel(info.batteryLevel);
batteryView.setCharging(!info.discharging);
- startBatteryHeaderAnimationIfNecessary(batteryView, timeText, mBatteryLevel,
- info.batteryLevel);
- }
-
- @VisibleForTesting
- void initHeaderPreference() {
- final BatteryMeterView batteryView = (BatteryMeterView) mBatteryLayoutPref
- .findViewById(R.id.battery_header_icon);
- final TextView timeText = (TextView) mBatteryLayoutPref.findViewById(R.id.battery_percent);
-
- batteryView.setBatteryLevel(mBatteryLevel);
- timeText.setText(Utils.formatPercentage(mBatteryLevel));
- }
-
- @VisibleForTesting
- void startBatteryHeaderAnimationIfNecessary(BatteryMeterView batteryView, TextView timeTextView,
- int prevLevel, int currentLevel) {
- mBatteryLevel = currentLevel;
- final int diff = Math.abs(prevLevel - currentLevel);
- if (diff != 0) {
- final ValueAnimator animator = ValueAnimator.ofInt(prevLevel, currentLevel);
- animator.setDuration(BATTERY_ANIMATION_DURATION_MS_PER_LEVEL * diff);
- animator.setInterpolator(AnimationUtils.loadInterpolator(getContext(),
- android.R.interpolator.fast_out_slow_in));
- animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
- @Override
- public void onAnimationUpdate(ValueAnimator animation) {
- final Integer level = (Integer) animation.getAnimatedValue();
- batteryView.setBatteryLevel(level);
- timeTextView.setText(Utils.formatPercentage(level));
- }
- });
- animator.start();
- }
}
@VisibleForTesting
@@ -652,7 +594,7 @@
final CharSequence timeSequence = Utils.formatElapsedTime(getContext(), usageTimeMs,
false);
preference.setSummary(
- TextUtils.expandTemplate(getText(R.string.battery_used_for), timeSequence));
+ TextUtils.expandTemplate(getText(R.string.battery_screen_usage), timeSequence));
}
}
diff --git a/src/com/android/settings/gestures/AssistGesturePreferenceController.java b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
index f0ba888..c858511 100644
--- a/src/com/android/settings/gestures/AssistGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
@@ -35,7 +35,7 @@
implements OnPause, OnResume {
private static final String PREF_KEY_VIDEO = "gesture_assist_video";
- private static final String PREF_KEY_ASSIST_GESTURE = "gesture_assist";
+ private final String mAssistGesturePrefKey;
private final AssistGestureFeatureProvider mFeatureProvider;
private final SettingObserver mSettingObserver;
@@ -44,11 +44,12 @@
private PreferenceScreen mScreen;
private Preference mPreference;
- public AssistGesturePreferenceController(Context context, Lifecycle lifecycle) {
+ public AssistGesturePreferenceController(Context context, Lifecycle lifecycle, String key) {
super(context, lifecycle);
mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
mSettingObserver = new SettingObserver();
mWasAvailable = isAvailable();
+ mAssistGesturePrefKey = key;
}
@Override
@@ -110,7 +111,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_ASSIST_GESTURE;
+ return mAssistGesturePrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/AssistGestureSettings.java b/src/com/android/settings/gestures/AssistGestureSettings.java
index 238b8b6..0c4f278 100644
--- a/src/com/android/settings/gestures/AssistGestureSettings.java
+++ b/src/com/android/settings/gestures/AssistGestureSettings.java
@@ -34,6 +34,8 @@
private static final String TAG = "AssistGesture";
+ private static final String KEY_ASSIST = "gesture_assist";
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
@@ -57,7 +59,7 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new AssistGesturePreferenceController(context, lifecycle));
+ controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
controllers.add(new AssistGestureSensitivityPreferenceController(context, lifecycle));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
index d38902e..ba1d0f6 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
@@ -20,18 +20,16 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class DoubleTapPowerPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_tap_power_video";
- private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
+ private final String mDoubleTapPowerKey;
- public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle) {
+ public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle, String key) {
super(context, lifecycle);
+ mDoubleTapPowerKey = key;
}
@Override
@@ -47,7 +45,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_DOUBLE_TAP_POWER;
+ return mDoubleTapPowerKey;
}
@Override
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index 467cec8..a880c32 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -33,6 +33,7 @@
public class DoubleTapPowerSettings extends DashboardFragment {
private static final String TAG = "DoubleTapPower";
+ private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
@Override
public int getMetricsCategory() {
@@ -57,7 +58,8 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
+ controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle,
+ KEY_DOUBLE_TAP_POWER));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
index 49e8f51..5f8dfb4 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
@@ -21,26 +21,24 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class DoubleTapScreenPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video";
- private static final String PREF_KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
+ private final String mDoubleTapScreenPrefKey;
private final AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
public DoubleTapScreenPreferenceController(Context context, Lifecycle lifecycle,
- AmbientDisplayConfiguration config, @UserIdInt int userId) {
+ AmbientDisplayConfiguration config, @UserIdInt int userId, String key) {
super(context, lifecycle);
mAmbientConfig = config;
mUserId = userId;
+ mDoubleTapScreenPrefKey = key;
}
@Override
@@ -50,7 +48,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_DOUBLE_TAP_SCREEN;
+ return mDoubleTapScreenPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 887ac80..0804e7b 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -35,6 +35,7 @@
public class DoubleTapScreenSettings extends DashboardFragment {
private static final String TAG = "DoubleTapScreen";
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
@Override
public int getMetricsCategory() {
@@ -60,7 +61,8 @@
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle,
- new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
+ new AmbientDisplayConfiguration(context), UserHandle.myUserId(),
+ KEY_DOUBLE_TAP_SCREEN));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
index 46a8cbb..cf5cfab 100644
--- a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
+++ b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
@@ -33,6 +33,7 @@
public class DoubleTwistGestureSettings extends DashboardFragment {
private static final String TAG = "DoubleTwistGesture";
+ private static final String KEY_DOUBLE_TWIST = "gesture_double_twist";
@Override
public int getMetricsCategory() {
@@ -57,7 +58,7 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
+ controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
return controllers;
}
diff --git a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
index c5174fd..f1c7455 100644
--- a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
@@ -24,19 +24,17 @@
import android.support.v7.preference.Preference;
import android.text.TextUtils;
-import android.util.ArrayMap;
import com.android.settings.R;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class DoubleTwistPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_double_twist_video";
- private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist";
+ private final String mDoubleTwistPrefKey;
- public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle) {
+ public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle, String key) {
super(context, lifecycle);
+ mDoubleTwistPrefKey = key;
}
@Override
@@ -52,7 +50,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_DOUBLE_TWIST;
+ return mDoubleTwistPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
index ce20f15..c0e6009 100644
--- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
@@ -21,26 +21,24 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class PickupGesturePreferenceController extends GesturePreferenceController {
private static final String PREF_VIDEO_KEY = "gesture_pick_up_video";
- private static final String PREF_KEY_PICK_UP = "gesture_pick_up";
+ private final String mPickUpPrefKey;
private final AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
public PickupGesturePreferenceController(Context context, Lifecycle lifecycle,
- AmbientDisplayConfiguration config, @UserIdInt int userId) {
+ AmbientDisplayConfiguration config, @UserIdInt int userId, String key) {
super(context, lifecycle);
mAmbientConfig = config;
mUserId = userId;
+ mPickUpPrefKey = key;
}
@Override
@@ -60,7 +58,7 @@
@Override
public String getPreferenceKey() {
- return PREF_KEY_PICK_UP;
+ return mPickUpPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index 0fe6097..874f690 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -35,6 +35,7 @@
public class PickupGestureSettings extends DashboardFragment {
private static final String TAG = "PickupGestureSettings";
+ private static final String KEY_PICK_UP = "gesture_pick_up";
@Override
public int getMetricsCategory() {
@@ -60,7 +61,7 @@
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new PickupGesturePreferenceController(context, lifecycle,
- new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
+ new AmbientDisplayConfiguration(context), UserHandle.myUserId(), KEY_PICK_UP));
return controllers;
}
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index 22b88fc..2a62674 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -20,23 +20,22 @@
import android.provider.Settings;
import android.support.v7.preference.Preference;
-import android.util.ArrayMap;
import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
public class SwipeToNotificationPreferenceController extends GesturePreferenceController {
private static final String PREF_KEY_VIDEO = "gesture_swipe_down_fingerprint_video";
- private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint";
+ private final String mSwipeDownFingerPrefKey;
- public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle) {
+ public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle,
+ String key) {
super(context, lifecycle);
+ mSwipeDownFingerPrefKey = key;
}
@Override
public String getPreferenceKey() {
- return PREF_KEY_SWIPE_DOWN_FINGERPRINT;
+ return mSwipeDownFingerPrefKey;
}
@Override
diff --git a/src/com/android/settings/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index 6c136c2..f19565a 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -34,6 +34,8 @@
private static final String TAG = "SwipeToNotifSettings";
+ private static final String KEY = "gesture_swipe_down_fingerprint";
+
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.SETTINGS_GESTURE_SWIPE_TO_NOTIFICATION;
@@ -57,7 +59,7 @@
private static List<PreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<PreferenceController> controllers = new ArrayList<>();
- controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
+ controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle, KEY));
return controllers;
}
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 1999970..1c4d642 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -58,6 +58,14 @@
private static final String TAG = "LangAndInputSettings";
+ private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
+ private static final String KEY_ASSIST = "gesture_assist_input_summary";
+ private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_input_summary";
+ private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power_input_summary";
+ private static final String KEY_DOUBLE_TWIST = "gesture_double_twist_input_summary";
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_input_summary";
+ private static final String KEY_PICK_UP = "gesture_pick_up_input_summary";
+
private AmbientDisplayConfiguration mAmbientDisplayConfig;
@Override
@@ -110,14 +118,16 @@
controllers.add(gameControllerPreferenceController);
// Gestures
- controllers.add(new AssistGesturePreferenceController(context, lifecycle));
- controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
- controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
- controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
- controllers.add(new PickupGesturePreferenceController(
- context, lifecycle, ambientDisplayConfiguration, UserHandle.myUserId()));
- controllers.add(new DoubleTapScreenPreferenceController(
- context, lifecycle, ambientDisplayConfiguration, UserHandle.myUserId()));
+ controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
+ controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
+ KEY_SWIPE_DOWN));
+ controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
+ controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle,
+ KEY_DOUBLE_TAP_POWER));
+ controllers.add(new PickupGesturePreferenceController(context, lifecycle,
+ ambientDisplayConfiguration, UserHandle.myUserId(), KEY_PICK_UP));
+ controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle,
+ ambientDisplayConfiguration, UserHandle.myUserId(), KEY_DOUBLE_TAP_SCREEN));
controllers.add(new DefaultAutofillPreferenceController(context));
return controllers;
}
@@ -179,5 +189,20 @@
return buildPreferenceControllers(context, null,
new AmbientDisplayConfiguration(context));
}
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ // Duplicates in summary and details pages.
+ keys.add(KEY_TEXT_TO_SPEECH);
+ keys.add(KEY_ASSIST);
+ keys.add(KEY_SWIPE_DOWN);
+ keys.add(KEY_DOUBLE_TAP_POWER);
+ keys.add(KEY_DOUBLE_TWIST);
+ keys.add(KEY_DOUBLE_TAP_SCREEN);
+ keys.add(KEY_PICK_UP);
+
+ return keys;
+ }
};
}
diff --git a/src/com/android/settings/language/TtsPreferenceController.java b/src/com/android/settings/language/TtsPreferenceController.java
index 0d1c753..a734e4b 100644
--- a/src/com/android/settings/language/TtsPreferenceController.java
+++ b/src/com/android/settings/language/TtsPreferenceController.java
@@ -23,7 +23,8 @@
public class TtsPreferenceController extends PreferenceController {
- private static final String KEY_TTS_SETTINGS = "tts_settings";
+ private static final String KEY_VOICE_CATEGORY = "voice_category";
+ private static final String KEY_TTS_SETTINGS = "tts_settings_summary";
private final TtsEngines mTtsEngines;
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index a1c5263..d9da051 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -35,6 +35,8 @@
public class ConfigureNotificationSettings extends DashboardFragment {
private static final String TAG = "ConfigNotiSettings";
+ private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_notifications";
+
@Override
public int getMetricsCategory() {
return MetricsEvent.CONFIGURE_NOTIFICATION;
@@ -68,7 +70,8 @@
lifecycle.addObserver(pulseController);
lifecycle.addObserver(lockScreenNotificationController);
}
- controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
+ controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
+ KEY_SWIPE_DOWN));
controllers.add(badgeController);
controllers.add(pulseController);
controllers.add(lockScreenNotificationController);
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index dd1e4a4..a5d922d 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -225,7 +225,7 @@
mButtonsPref = (LayoutPreference) screen.findPreference(KEY_BUTTONS_PREF);
mSignInButton = (Button) mButtonsPref.findViewById(R.id.right_button);
- mSignInButton.setText(com.android.internal.R.string.network_available_sign_in);
+ mSignInButton.setText(R.string.support_sign_in_button_text);
mSignInButton.setOnClickListener(
view -> mConnectivityManagerWrapper.startCaptivePortalApp(mNetwork));
diff --git a/tests/robotests/assets/whitelist_duplicate_index_key b/tests/robotests/assets/whitelist_duplicate_index_key
index 5b5153c..6ced706 100644
--- a/tests/robotests/assets/whitelist_duplicate_index_key
+++ b/tests/robotests/assets/whitelist_duplicate_index_key
@@ -1,12 +1,6 @@
add_users_when_locked
additional_system_update_settings
dashboard_tile_placeholder
-gesture_assist
-gesture_double_tap_power
-gesture_double_tap_screen
-gesture_double_twist
-gesture_pick_up
-gesture_swipe_down_fingerprint
lock_screen_notifications
screen_zoom
usage_access
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
new file mode 100644
index 0000000..f0c87cf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
@@ -0,0 +1,36 @@
+package com.android.settings;
+
+import android.content.Context;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.testutils.XmlTestUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DisplaySettingsTest {
+
+ @Test
+ public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
+ final Context context = RuntimeEnvironment.application;
+ final DisplaySettings fragment = new DisplaySettings();
+ final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
+ fragment.getPreferenceScreenResId());
+ final List<String> preferenceKeys = new ArrayList<>();
+
+ for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
+ preferenceKeys.add(controller.getPreferenceKey());
+ }
+ // Nightmode is currently hidden
+ preferenceKeys.remove("night_mode");
+
+ assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
index 17910bf..a09aeec 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
@@ -18,6 +18,7 @@
import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
@@ -65,12 +66,17 @@
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
+import java.util.ArrayList;
+import java.util.List;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public final class InstalledAppDetailsTest {
private static final String PACKAGE_NAME = "test_package_name";
+ private static final int TARGET_UID = 111;
+ private static final int OTHER_UID = 222;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@@ -87,6 +93,8 @@
@Mock
private BatterySipper mBatterySipper;
@Mock
+ private BatterySipper mOtherBatterySipper;
+ @Mock
private BatteryStatsHelper mBatteryStatsHelper;
@Mock
private BatteryStats.Uid mUid;
@@ -105,6 +113,8 @@
mBatterySipper.drainType = BatterySipper.DrainType.IDLE;
mBatterySipper.uidObj = mUid;
+ doReturn(TARGET_UID).when(mBatterySipper).getUid();
+ doReturn(OTHER_UID).when(mOtherBatterySipper).getUid();
doReturn(mActivity).when(mAppDetail).getActivity();
doReturn(mShadowContext).when(mAppDetail).getContext();
doReturn(mPackageManager).when(mActivity).getPackageManager();
@@ -388,4 +398,15 @@
verify(mActivity).invalidateOptionsMenu();
}
+
+ @Test
+ public void findTargetSipper_findCorrectSipper() {
+ List<BatterySipper> usageList = new ArrayList<>();
+ usageList.add(mBatterySipper);
+ usageList.add(mOtherBatterySipper);
+ doReturn(usageList).when(mBatteryStatsHelper).getUsageList();
+
+ assertThat(mAppDetail.findTargetSipper(mBatteryStatsHelper, TARGET_UID)).isEqualTo(
+ mBatterySipper);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
index f6a8587..03759ec 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
@@ -214,12 +214,6 @@
}
@Test
- public void testShouldHideSipper_TypeWifi_ReturnTrue() {
- mNormalBatterySipper.drainType = BatterySipper.DrainType.WIFI;
- assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
- }
-
- @Test
public void testShouldHideSipper_TypeCell_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.CELL;
assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
@@ -232,12 +226,6 @@
}
@Test
- public void testShouldHideSipper_TypeBluetooth_ReturnTrue() {
- mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
- assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
- }
-
- @Test
public void testShouldHideSipper_TypeSystem_ReturnTrue() {
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
when(mNormalBatterySipper.getUid()).thenReturn(Process.ROOT_UID);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 0856d2d..615424c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -17,7 +17,6 @@
import android.content.Context;
import android.content.Intent;
-import android.os.Bundle;
import android.os.PowerManager;
import android.os.Process;
import android.text.TextUtils;
@@ -130,6 +129,8 @@
@Mock
private LayoutPreference mBatteryLayoutPref;
@Mock
+ private TextView mBatteryPercentText;
+ @Mock
private TextView mSummary1;
@Mock
private BatteryInfo mBatteryInfo;
@@ -140,7 +141,6 @@
@Mock
private SettingsActivity mSettingsActivity;
- private TextView mBatteryPercentText;
private List<BatterySipper> mUsageList;
private Context mRealContext;
private TestFragment mFragment;
@@ -164,7 +164,7 @@
mLastFullChargePref = new PowerGaugePreference(mRealContext);
mFragment = spy(new TestFragment(mContext));
mFragment.initFeatureProvider();
- mBatteryMeterView = spy(new BatteryMeterView(mRealContext));
+ mBatteryMeterView = new BatteryMeterView(mRealContext);
mBatteryMeterView.mDrawable = new BatteryMeterView.BatteryMeterDrawable(mRealContext, 0);
doNothing().when(mFragment).restartBatteryStatsLoader();
@@ -187,7 +187,6 @@
mCellBatterySipper.drainType = BatterySipper.DrainType.CELL;
mCellBatterySipper.totalPowerMah = POWER_MAH;
- mBatteryPercentText = new TextView(mRealContext);
when(mBatteryLayoutPref.findViewById(R.id.summary1)).thenReturn(mSummary1);
when(mBatteryLayoutPref.findViewById(R.id.battery_percent)).thenReturn(mBatteryPercentText);
when(mBatteryLayoutPref.findViewById(R.id.battery_header_icon))
@@ -281,50 +280,6 @@
}
@Test
- public void testInitHeaderPreference_initCorrectly() {
- mFragment.mBatteryLevel = 100;
-
- mFragment.initHeaderPreference();
-
- assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(100);
- assertThat(mBatteryPercentText.getText().toString()).isEqualTo("100%");
- }
-
- @Test
- public void testStartBatteryHeaderAnimationIfNecessary_batteryLevelChanged_animationStarted() {
- final int prevLevel = 100;
- final int curLevel = 80;
-
- mFragment.startBatteryHeaderAnimationIfNecessary(mBatteryMeterView, mBatteryPercentText,
- prevLevel, curLevel);
-
- assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(curLevel);
- assertThat(mBatteryPercentText.getText().toString()).isEqualTo("80%");
- }
-
- @Test
- public void testOnSaveInstanceState_saveBatteryLevel() {
- Bundle bundle = new Bundle();
- mFragment.mBatteryLevel = BATTERY_LEVEL;
- // mock it to stop crash in getPreferenceScreen
- doReturn(null).when(mFragment).getPreferenceScreen();
-
- mFragment.onSaveInstanceState(bundle);
-
- assertThat(bundle.getInt(PowerUsageSummary.ARG_BATTERY_LEVEL)).isEqualTo(BATTERY_LEVEL);
- }
-
- @Test
- public void testOnActivityCreated_setBatteryLevel() {
- Bundle bundle = new Bundle();
- bundle.putInt(PowerUsageSummary.ARG_BATTERY_LEVEL, BATTERY_LEVEL);
-
- mFragment.onActivityCreated(bundle);
-
- assertThat(mFragment.mBatteryLevel).isEqualTo(BATTERY_LEVEL);
- }
-
- @Test
public void testExtractKeyFromSipper_typeAPPUidObjectNull_returnPackageNames() {
mNormalBatterySipper.uidObj = null;
mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
@@ -362,10 +317,10 @@
@Test
public void testSetUsageSummary_timeMoreThanOneMinute_setSummary() {
final long usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS;
- doReturn(mRealContext.getText(R.string.battery_used_for)).when(mFragment).getText(
- R.string.battery_used_for);
+ doReturn(mRealContext.getText(R.string.battery_screen_usage)).when(mFragment).getText(
+ R.string.battery_screen_usage);
doReturn(mRealContext).when(mFragment).getContext();
- final String expectedSummary = "Used for 2m";
+ final String expectedSummary = "Screen usage 2m";
mFragment.setUsageSummary(mPreference, usageTimeMs);
diff --git a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
index 9862f83..e83e237 100644
--- a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
@@ -52,12 +52,14 @@
private FakeFeatureFactory mFactory;
private AssistGesturePreferenceController mController;
+ private static final String KEY_ASSIST = "gesture_assist";
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
FakeFeatureFactory.setupForTest(mContext);
mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
- mController = new AssistGesturePreferenceController(mContext, null);
+ mController = new AssistGesturePreferenceController(mContext, null, KEY_ASSIST);
}
@Test
@@ -77,7 +79,7 @@
// Set the setting to be enabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), ASSIST_GESTURE_ENABLED, 1);
- mController = new AssistGesturePreferenceController(context, null);
+ mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -87,7 +89,7 @@
// Set the setting to be disabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), ASSIST_GESTURE_ENABLED, 0);
- mController = new AssistGesturePreferenceController(context, null);
+ mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
index bdb3522..d7961e3 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
@@ -47,11 +47,12 @@
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private PreferenceScreen mScreen;
private DoubleTapPowerPreferenceController mController;
+ private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new DoubleTapPowerPreferenceController(mContext, null);
+ mController = new DoubleTapPowerPreferenceController(mContext, null, KEY_DOUBLE_TAP_POWER);
}
@Test
@@ -78,7 +79,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
- mController = new DoubleTapPowerPreferenceController(context, null);
+ mController = new DoubleTapPowerPreferenceController(context, null, KEY_DOUBLE_TAP_POWER);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -89,7 +90,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1);
- mController = new DoubleTapPowerPreferenceController(context, null);
+ mController = new DoubleTapPowerPreferenceController(context, null, KEY_DOUBLE_TAP_POWER);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
index adf8b75..442d11d 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
@@ -46,11 +46,13 @@
private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
private DoubleTapScreenPreferenceController mController;
+ private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new DoubleTapScreenPreferenceController(
- mContext, null, mAmbientDisplayConfiguration, 0);
+ mContext, null, mAmbientDisplayConfiguration, 0, KEY_DOUBLE_TAP_SCREEN);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
index 9bf6655..8393fc3 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
@@ -53,11 +53,12 @@
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private SensorManager mSensorManager;
private DoubleTwistPreferenceController mController;
+ private static final String KEY_DOUBLE_TWIST = "gesture_double_twist";
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new DoubleTwistPreferenceController(mContext, null);
+ mController = new DoubleTwistPreferenceController(mContext, null, KEY_DOUBLE_TWIST);
}
@Test
@@ -98,7 +99,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
- mController = new DoubleTwistPreferenceController(context, null);
+ mController = new DoubleTwistPreferenceController(context, null, KEY_DOUBLE_TWIST);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -109,7 +110,7 @@
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(),
CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0);
- mController = new DoubleTwistPreferenceController(context, null);
+ mController = new DoubleTwistPreferenceController(context, null, KEY_DOUBLE_TWIST);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
index 9dce074..46c0f65 100644
--- a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
@@ -47,11 +47,13 @@
private PickupGesturePreferenceController mController;
+ private static final String KEY_PICK_UP = "gesture_pick_up";
+
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mController = new PickupGesturePreferenceController(
- mContext, null, mAmbientDisplayConfiguration, 0);
+ mContext, null, mAmbientDisplayConfiguration, 0, KEY_PICK_UP);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index e909667..cf26cb2 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -45,11 +45,12 @@
private Context mContext;
private SwipeToNotificationPreferenceController mController;
+ private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint";
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new SwipeToNotificationPreferenceController(mContext, null);
+ mController = new SwipeToNotificationPreferenceController(mContext, null, KEY_SWIPE_DOWN);
}
@Test
@@ -75,7 +76,7 @@
// Set the setting to be enabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
- mController = new SwipeToNotificationPreferenceController(context, null);
+ mController = new SwipeToNotificationPreferenceController(context, null, KEY_SWIPE_DOWN);
assertThat(mController.isSwitchPrefEnabled()).isTrue();
}
@@ -85,7 +86,7 @@
// Set the setting to be disabled.
final Context context = ShadowApplication.getInstance().getApplicationContext();
Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
- mController = new SwipeToNotificationPreferenceController(context, null);
+ mController = new SwipeToNotificationPreferenceController(context, null, KEY_SWIPE_DOWN);
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
index 8c23cbf..527b1cd 100644
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
@@ -18,7 +18,9 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -44,6 +46,8 @@
import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.fuelgauge.PowerUsageSummary;
+import com.android.settings.testutils.XmlTestUtils;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
import org.junit.Before;
@@ -52,6 +56,7 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
@@ -144,6 +149,37 @@
verify(loader).setSummary(provider, null);
}
+ @Test
+ public void testNonIndexableKeys_existInXmlLayout() {
+ final Context context = spy(RuntimeEnvironment.application);
+ //(InputManager) context.getSystemService(Context.INPUT_SERVICE);
+ InputManager manager = mock(InputManager.class);
+ when(manager.getInputDeviceIds()).thenReturn(new int[]{});
+ doReturn(manager).when(context).getSystemService(Context.INPUT_SERVICE);
+ final List<String> niks = LanguageAndInputSettings.SEARCH_INDEX_DATA_PROVIDER
+ .getNonIndexableKeys(context);
+ final int xmlId = (new LanguageAndInputSettings()).getPreferenceScreenResId();
+
+ final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+ assertThat(keys).containsAllIn(niks);
+ }
+
+ @Test
+ public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
+ final Context context = RuntimeEnvironment.application;
+ final LanguageAndInputSettings fragment = new LanguageAndInputSettings();
+ final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
+ fragment.getPreferenceScreenResId());
+ final List<String> preferenceKeys = new ArrayList<>();
+
+ for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
+ preferenceKeys.add(controller.getPreferenceKey());
+ }
+
+ assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
+ }
+
/**
* Test fragment to expose lifecycle and context so we can verify behavior for observables.
*/
diff --git a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
index 6175093..42c5301 100644
--- a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
@@ -108,7 +108,7 @@
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.language_and_input;
+ sir.xmlResId = R.xml.data_usage;
return Arrays.asList(sir);
}
@@ -121,13 +121,7 @@
final List<String> nonIndexableKeys = provider
.getNonIndexableKeys(RuntimeEnvironment.application);
- assertThat(nonIndexableKeys).containsAllOf("phone_language", "spellcheckers_settings",
- "key_user_dictionary_settings", "gesture_settings_category", "gesture_assist",
- "gesture_swipe_down_fingerprint", "gesture_double_tap_power",
- "gesture_double_twist", "gesture_double_tap_screen", "gesture_pick_up",
- "pointer_speed", "tts_settings",
- "game_controller_settings_category", "vibrate_input_devices");
+ assertThat(nonIndexableKeys).containsAllOf("status_header", "limit_summary",
+ "restrict_background");
}
-
-
}