diff options
24 files changed, 287 insertions, 34 deletions
diff --git a/PermissionController/res/values-ca/strings.xml b/PermissionController/res/values-ca/strings.xml index e61f41507..20ca0abed 100644 --- a/PermissionController/res/values-ca/strings.xml +++ b/PermissionController/res/values-ca/strings.xml @@ -457,7 +457,7 @@ <string name="incident_report_dialog_title" msgid="669104389325204095">"Vols compartir les dades de depuració?"</string> <string name="incident_report_dialog_intro" msgid="5897733669850951832">"El sistema ha detectat un problema."</string> <string name="incident_report_dialog_text" msgid="5675553296891757523">"<xliff:g id="APP_NAME_0">%1$s</xliff:g> sol·licita penjar un informe d\'errors des d\'aquest dispositiu generat el dia <xliff:g id="DATE">%2$s</xliff:g> (<xliff:g id="TIME">%3$s</xliff:g>). Els informes d\'errors inclouen informació personal sobre el dispositiu o informació registrada per les aplicacions, com ara noms d\'usuaris, dades de la ubicació, identificadors del dispositiu i informació de la xarxa. Comparteix informes d\'errors només amb persones i aplicacions de confiança. Vols permetre que <xliff:g id="APP_NAME_1">%4$s</xliff:g> pengi un informe d\'errors?"</string> - <string name="incident_report_error_dialog_text" msgid="4189647113387092272">"S\'ha produït un error en processar l\'informe d\'errors de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g> i, per tant, s\'han denegat les dades de depuració detallades. Sentim la interrupció."</string> + <string name="incident_report_error_dialog_text" msgid="4189647113387092272">"Hi ha hagut un error en processar l\'informe d\'errors de l\'aplicació <xliff:g id="APP_NAME">%1$s</xliff:g> i, per tant, s\'han denegat les dades de depuració detallades. Sentim la interrupció."</string> <string name="incident_report_dialog_allow_label" msgid="2970242967721155239">"Permet"</string> <string name="incident_report_dialog_deny_label" msgid="3535314290677579383">"Denega"</string> <string name="adjust_user_sensitive_title" msgid="4196724451314280527">"Configuració avançada"</string> diff --git a/PermissionController/res/values-el/strings.xml b/PermissionController/res/values-el/strings.xml index a0982e7a9..e8afe33f3 100644 --- a/PermissionController/res/values-el/strings.xml +++ b/PermissionController/res/values-el/strings.xml @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"ice"</string> <string name="role_home_label" msgid="3871847846649769412">"Προεπ. εφαρμογή αρχικής οθόνης"</string> <string name="role_home_short_label" msgid="8544733747952272337">"Εφαρμογή αρχικής οθόνης"</string> - <string name="role_home_description" msgid="7997371519626556675">"Εφαρμογές, που συχνά αποκαλούνται εφαρμογές εκκίνησης, που αντικαθιστούν τις Αρχικές οθόνες στη συσκευή σας Android και σας δίνουν πρόσβαση στα περιεχόμενα και τις λειτουργίες της συσκευή σας"</string> + <string name="role_home_description" msgid="7997371519626556675">"Εφαρμογές, που συχνά αποκαλούνται εφαρμογές εκκίνησης, που αντικαθιστούν τις Αρχικές οθόνες στη συσκευή σας Android και σας δίνουν πρόσβαση στα περιεχόμενα και τις λειτουργίες της συσκευής σας"</string> <string name="role_home_request_title" msgid="738136983453341081">"Ορισμός εφαρμογής <xliff:g id="APP_NAME">%1$s</xliff:g> ως προεπιλεγμένης εφαρμογής αρχικής οθόνης;"</string> <string name="role_home_request_description" msgid="2658833966716057673">"Δεν απαιτούνται άδειες"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"εφαρμογή εκκίνησης"</string> diff --git a/PermissionController/res/values-eu/strings.xml b/PermissionController/res/values-eu/strings.xml index 8160770ea..7acae1dbc 100644 --- a/PermissionController/res/values-eu/strings.xml +++ b/PermissionController/res/values-eu/strings.xml @@ -256,7 +256,7 @@ <string name="allowed_storage_scoped" msgid="5383645873719086975">"Multimedia-fitx. soilik erabiltzeko baimena dutenak"</string> <string name="allowed_storage_full" msgid="5356699280625693530">"Fitxategi guztiak kudeatzeko baimena dutenak"</string> <string name="ask_header" msgid="2633816846459944376">"Galdetu beti"</string> - <string name="denied_header" msgid="903209608358177654">"Baimendu gabekoak"</string> + <string name="denied_header" msgid="903209608358177654">"Baimendu gabe"</string> <string name="permission_group_name_with_device_name" msgid="8798741850536024820">"<xliff:g id="PERM_GROUP_NAME">%1$s</xliff:g> (<xliff:g id="DEVICE_NAME">%2$s</xliff:g>)"</string> <string name="storage_footer_hyperlink_text" msgid="8873343987957834810">"Ikusi fitxategi guztiak atzi ditzaketen aplikazio gehiago"</string> <string name="days" msgid="609563020985571393">"{count,plural, =1{1 egun}other{# egun}}"</string> @@ -355,9 +355,9 @@ <string name="accessibility_service_dialog_bottom_text_multiple" msgid="7009848932395519852">"Aplikazio horiek pantaila, egiten dituzun ekintzak eta idazten dituzun gauzak ikusi ahalko dituzte, bai eta ekintzak gauzatu eta pantaila kontrolatu ere."</string> <string name="role_assistant_label" msgid="4727586018198208128">"Laguntzaile digitalaren aplikazio lehenetsia"</string> <string name="role_assistant_short_label" msgid="3369003713187703399">"Laguntzaile digitalaren aplikazioa"</string> - <string name="role_assistant_description" msgid="6622458130459922952">"Ikusten ari zaren pantailako informazioaren araberako laguntza eskain diezazukete laguntza-aplikazioek. Zenbait aplikaziok abiarazlea eta ahots bidezko zerbitzuak onartzen dituzte laguntza integratua eskaintzeko."</string> + <string name="role_assistant_description" msgid="6622458130459922952">"Ikusten ari zaren pantailako informazioaren araberako laguntza eskain diezazukete laguntza-aplikazioek. Zenbait aplikaziok exekutatzeko tresna eta ahots bidezko zerbitzuak onartzen dituzte laguntza integratua eskaintzeko."</string> <string name="role_browser_label" msgid="2877796144554070207">"Arakatzaile lehenetsia"</string> - <string name="role_browser_short_label" msgid="6745009127123292296">"Arakatzaile-aplikazioa"</string> + <string name="role_browser_short_label" msgid="6745009127123292296">"Arakatzaile- aplikazioa"</string> <string name="role_browser_description" msgid="3465253637499842671">"Interneteko sarbidea ematen dizuten eta sakatzen dituzun estekak bistaratzen dituzten aplikazioak"</string> <string name="role_browser_request_title" msgid="2895200507835937192">"<xliff:g id="APP_NAME">%1$s</xliff:g> ezarri nahi duzu arakatzaile lehenetsi gisa?"</string> <string name="role_browser_request_description" msgid="5888803407905985941">"Ez du behar baimenik"</string> @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"ice"</string> <string name="role_home_label" msgid="3871847846649769412">"Hasierako aplikazio lehenetsia"</string> <string name="role_home_short_label" msgid="8544733747952272337">"Hasierako aplikazioa"</string> - <string name="role_home_description" msgid="7997371519626556675">"Android-eko gailuko orri nagusiak ordezten dituzten aplikazioak (\"abiarazle\" ere deitzen zaie). Gailuko eduki eta eginbideetarako sarbidea ematen dute."</string> + <string name="role_home_description" msgid="7997371519626556675">"Android-eko gailuko orri nagusiak ordezten dituzten aplikazioak (\"exekutatzeko tresna\" ere deitzen zaie). Gailuko eduki eta eginbideetarako sarbidea ematen dute."</string> <string name="role_home_request_title" msgid="738136983453341081">"<xliff:g id="APP_NAME">%1$s</xliff:g> ezarri nahi duzu hasierako aplikazio lehenetsi gisa?"</string> <string name="role_home_request_description" msgid="2658833966716057673">"Ez du behar baimenik"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"abiarazlea"</string> diff --git a/PermissionController/res/values-fa/strings.xml b/PermissionController/res/values-fa/strings.xml index 49f4a86d7..1ef41ea6d 100644 --- a/PermissionController/res/values-fa/strings.xml +++ b/PermissionController/res/values-fa/strings.xml @@ -256,7 +256,7 @@ <string name="allowed_storage_scoped" msgid="5383645873719086975">"مجاز فقط برای دسترسی به رسانهها"</string> <string name="allowed_storage_full" msgid="5356699280625693530">"مجاز برای مدیریت همه فایلها"</string> <string name="ask_header" msgid="2633816846459944376">"هربار پرسیده شود"</string> - <string name="denied_header" msgid="903209608358177654">"مجاز نبودن"</string> + <string name="denied_header" msgid="903209608358177654">"مجاز نیست"</string> <string name="permission_group_name_with_device_name" msgid="8798741850536024820">"<xliff:g id="PERM_GROUP_NAME">%1$s</xliff:g> در <xliff:g id="DEVICE_NAME">%2$s</xliff:g>"</string> <string name="storage_footer_hyperlink_text" msgid="8873343987957834810">"دیدن برنامههای دیگری که به همه فایلها دسترسی دارند"</string> <string name="days" msgid="609563020985571393">"{count,plural, =1{یک روز}one{# روز}other{# روز}}"</string> @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"ice"</string> <string name="role_home_label" msgid="3871847846649769412">"برنامه صفحه اصلی پیشفرض"</string> <string name="role_home_short_label" msgid="8544733747952272337">"برنامه صفحه اصلی"</string> - <string name="role_home_description" msgid="7997371519626556675">"برنامههای عموماً موسوم به راهانداز، که جایگزین صفحههای اصلی در دستگاه Android میشوند و امکان دسترسی به محتواها و ویژگیهای دستگاه را میدهند"</string> + <string name="role_home_description" msgid="7997371519626556675">"برنامههایی (موسوم به راهانداز) که جایگزین صفحههای اصلی در دستگاه Android میشوند و امکان دسترسی به محتواها و ویژگیهای دستگاه را میدهند"</string> <string name="role_home_request_title" msgid="738136983453341081">"<xliff:g id="APP_NAME">%1$s</xliff:g> بهعنوان برنامه صفحه اصلی پیشفرض تنظیم شود؟"</string> <string name="role_home_request_description" msgid="2658833966716057673">"اجازه لازم نیست"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"راهانداز"</string> diff --git a/PermissionController/res/values-km/strings.xml b/PermissionController/res/values-km/strings.xml index 82f5c1919..60e0590ce 100644 --- a/PermissionController/res/values-km/strings.xml +++ b/PermissionController/res/values-km/strings.xml @@ -80,7 +80,7 @@ <string name="additional_permissions" msgid="5801285469338873430">"ការអនុញ្ញាតបន្ថែម"</string> <string name="app_permissions_info_button_label" msgid="7633312050729974623">"បើកព័ត៌មានកម្មវិធី"</string> <string name="additional_permissions_more" msgid="5681220714755304407">"{count,plural, =1{# ទៀត}other{# ទៀត}}"</string> - <string name="old_sdk_deny_warning" msgid="2382236998845153919">"កម្មវិធីនេះត្រូវបានរចនាឡើងសម្រាប់កំណែចាស់ជាងនេះរបស់ Android ។ ការបដិសេធការអនុញ្ញាតអាចបណ្តាលឱ្យវាបំពេញមុខងារមិនដូចការគ្រោងទុកតទៅទៀតទេ។"</string> + <string name="old_sdk_deny_warning" msgid="2382236998845153919">"កម្មវិធីនេះត្រូវបានរចនាឡើងសម្រាប់កំណែចាស់ជាងនេះរបស់ Android ។ ការបដិសេធការអនុញ្ញាតអាចបណ្តាលឱ្យវាលែងអាចបំពេញមុខងារដូចការគ្រោងទុក។"</string> <string name="storage_supergroup_warning_allow" msgid="103093462784523190">"កម្មវិធីនេះត្រូវបានរចនាឡើងសម្រាប់កំណែចាស់ជាងនេះរបស់ Android។ ប្រសិនបើអ្នកផ្ដល់ការអនុញ្ញាតនេះ នោះសិទ្ធិចូលប្រើទំហំផ្ទុកទាំងអស់ (រូមទាំងរូបថត វីដេអូ តន្ត្រី សំឡេង និងឯកសារផ្សេងទៀត) នឹងត្រូវបានអនុញ្ញាត។"</string> <string name="storage_supergroup_warning_deny" msgid="6420765672683284347">"កម្មវិធីនេះត្រូវបានរចនាឡើងសម្រាប់កំណែចាស់ជាងនេះរបស់ Android។ ប្រសិនបើអ្នកបដិសេធការអនុញ្ញាតនេះ នោះសិទ្ធិចូលប្រើទំហំផ្ទុកទាំងអស់ (រូមទាំងរូបថត វីដេអូ តន្ត្រី សំឡេង និងឯកសារផ្សេងទៀត) នឹងត្រូវបានបដិសេធ។"</string> <string name="default_permission_description" msgid="4624464917726285203">"ប្រតិបត្តិការសកម្មភាពមិនស្គាល់"</string> @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"ក្នុងករណីមានអាសន្ន"</string> <string name="role_home_label" msgid="3871847846649769412">"កម្មវិធីទំព័រដើមលំនាំដើម"</string> <string name="role_home_short_label" msgid="8544733747952272337">"កម្មវិធីទំព័រដើម"</string> - <string name="role_home_description" msgid="7997371519626556675">"កម្មវិធីដែលជាទូទៅហៅថាកម្មវិធីចាប់ផ្ដើម ដែលជំនួសអេក្រង់ដើមនៅលើឧបករណ៍ Android របស់អ្នក និងផ្ដល់លទ្ធភាពឱ្យអ្នកចូលប្រើខ្លឹមសារ និងមុខងាររបស់ឧបករណ៍អ្នក"</string> + <string name="role_home_description" msgid="7997371519626556675">"កម្មវិធីដែលគេច្រើនតែហៅថាកម្មវិធីចាប់ផ្ដើម វាជំនួសអេក្រង់ដើមនៅលើឧបករណ៍ Android របស់អ្នក និងផ្ដល់លទ្ធភាពឱ្យអ្នកចូលប្រើខ្លឹមសារ និងមុខងាររបស់ឧបករណ៍អ្នក"</string> <string name="role_home_request_title" msgid="738136983453341081">"កំណត់ <xliff:g id="APP_NAME">%1$s</xliff:g> ជាកម្មវិធីទំព័រដើមលំនាំដើមរបស់អ្នក?"</string> <string name="role_home_request_description" msgid="2658833966716057673">"មិនត្រូវការការអនុញ្ញាតទេ"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"កម្មវិធីចាប់ផ្ដើម"</string> diff --git a/PermissionController/res/values-my/strings.xml b/PermissionController/res/values-my/strings.xml index b29ee2286..c488a296c 100644 --- a/PermissionController/res/values-my/strings.xml +++ b/PermissionController/res/values-my/strings.xml @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"ရေခဲ"</string> <string name="role_home_label" msgid="3871847846649769412">"မူရင်း ပင်မစာမျက်နှာအက်ပ်"</string> <string name="role_home_short_label" msgid="8544733747952272337">"ပင်မစာမျက်နှာ အက်ပ်"</string> - <string name="role_home_description" msgid="7997371519626556675">"သင့် Android စက်ပစ္စည်းပေါ်ရှိ \'ပင်မစာမျက်နှာများ\' ကိုအစားထိုးသော ဖွင့်စနစ်များဟု ခေါ်လေ့ရှိသည့် အက်ပ်များနှင့် သင့်စက်ပစ္စည်း၏ အကြောင်းအရာနှင့် ဝန်ဆောင်မှုများသို့ ဝင်သုံးခွင့်ပေးသော အက်ပ်များ"</string> + <string name="role_home_description" msgid="7997371519626556675">"သင့်စက်၏ အကြောင်းအရာနှင့် တူးလ်များကို သုံးခွင့်ပေးပြီး သင့် Android စက်ပစ္စည်းပေါ်ရှိ \'ပင်မစာမျက်နှာများ\' ကိုအစားထိုးသော ဖွင့်စနစ်များဟု ခေါ်လေ့ရှိသည့် အက်ပ်များ"</string> <string name="role_home_request_title" msgid="738136983453341081">"<xliff:g id="APP_NAME">%1$s</xliff:g> ကို သင့်မူရင်း ပင်မစာမျက်နှာ အက်ပ်အဖြစ် သတ်မှတ်လိုပါသလား။"</string> <string name="role_home_request_description" msgid="2658833966716057673">"ခွင့်ပြုချက် မလိုပါ"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"ဖွင့်တင်ပေးသူ"</string> diff --git a/PermissionController/res/values-pt-rBR/strings.xml b/PermissionController/res/values-pt-rBR/strings.xml index 330ee5680..fea62d7e7 100644 --- a/PermissionController/res/values-pt-rBR/strings.xml +++ b/PermissionController/res/values-pt-rBR/strings.xml @@ -362,7 +362,7 @@ <string name="role_browser_request_title" msgid="2895200507835937192">"Definir <xliff:g id="APP_NAME">%1$s</xliff:g> como navegador padrão?"</string> <string name="role_browser_request_description" msgid="5888803407905985941">"Nenhuma permissão necessária"</string> <string name="role_dialer_label" msgid="1100224146343237968">"App de telefone padrão"</string> - <string name="role_dialer_short_label" msgid="7186888549465352489">"App de Telefone"</string> + <string name="role_dialer_short_label" msgid="7186888549465352489">"App de telefone"</string> <string name="role_dialer_description" msgid="8768708633696539612">"Apps que permitem fazer e receber chamadas no seu dispositivo."</string> <string name="role_dialer_request_title" msgid="5959618560705912058">"Definir <xliff:g id="APP_NAME">%1$s</xliff:g> como seu app de telefone padrão?"</string> <string name="role_dialer_request_description" msgid="6288839625724909320">"Este app poderá acessar contatos, câmera, microfone, telefone e SMS"</string> diff --git a/PermissionController/res/values-pt/strings.xml b/PermissionController/res/values-pt/strings.xml index 330ee5680..fea62d7e7 100644 --- a/PermissionController/res/values-pt/strings.xml +++ b/PermissionController/res/values-pt/strings.xml @@ -362,7 +362,7 @@ <string name="role_browser_request_title" msgid="2895200507835937192">"Definir <xliff:g id="APP_NAME">%1$s</xliff:g> como navegador padrão?"</string> <string name="role_browser_request_description" msgid="5888803407905985941">"Nenhuma permissão necessária"</string> <string name="role_dialer_label" msgid="1100224146343237968">"App de telefone padrão"</string> - <string name="role_dialer_short_label" msgid="7186888549465352489">"App de Telefone"</string> + <string name="role_dialer_short_label" msgid="7186888549465352489">"App de telefone"</string> <string name="role_dialer_description" msgid="8768708633696539612">"Apps que permitem fazer e receber chamadas no seu dispositivo."</string> <string name="role_dialer_request_title" msgid="5959618560705912058">"Definir <xliff:g id="APP_NAME">%1$s</xliff:g> como seu app de telefone padrão?"</string> <string name="role_dialer_request_description" msgid="6288839625724909320">"Este app poderá acessar contatos, câmera, microfone, telefone e SMS"</string> diff --git a/PermissionController/res/values-tr/strings.xml b/PermissionController/res/values-tr/strings.xml index 14f6885af..467d98bdc 100644 --- a/PermissionController/res/values-tr/strings.xml +++ b/PermissionController/res/values-tr/strings.xml @@ -369,7 +369,7 @@ <string name="role_dialer_search_keywords" msgid="3324448983559188087">"çevirici"</string> <string name="role_sms_label" msgid="8456999857547686640">"Varsayılan SMS uygulaması"</string> <string name="role_sms_short_label" msgid="4371444488034692243">"SMS uygulaması"</string> - <string name="role_sms_description" msgid="3424020199148153513">"Kısa mesajlar, fotoğraflar, videolar ve başka içerikler göndermek ve almak için telefon numaranızı kullanmanıza olanak tanıyan uygulamalar"</string> + <string name="role_sms_description" msgid="3424020199148153513">"Kısa mesaj, fotoğraf ve video gibi içerikleri göndermek ve almak için telefon numaranızı kullanabileceğiniz uygulamalar"</string> <string name="role_sms_request_title" msgid="7953552109601185602">"<xliff:g id="APP_NAME">%1$s</xliff:g> varsayılan SMS uygulamanız olarak ayarlansın mı?"</string> <string name="role_sms_request_description" msgid="2691004766132144886">"Bu uygulama Kamera, Kişiler, Dosyalar ve medya, Mikrofon, Telefon ve SMS\'inize erişebilecek"</string> <string name="role_sms_search_keywords" msgid="8022048144395047352">"kısa mesaj, kısa mesaj gönderme, mesajlar, mesajlaşma"</string> @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"acil durumda"</string> <string name="role_home_label" msgid="3871847846649769412">"Varsayılan ana ekran uygulaması"</string> <string name="role_home_short_label" msgid="8544733747952272337">"Ana ekran uygulaması"</string> - <string name="role_home_description" msgid="7997371519626556675">"Android cihazınızın Ana ekranı yerine geçen ve cihazınızın içeriklerine ve özelliklerine erişmenizi sağlayan, genellikle başlatıcı olarak adlandırılan uygulamalar"</string> + <string name="role_home_description" msgid="7997371519626556675">"Android cihazınızın ana ekranı yerine geçen, cihazınızın içeriklerine ve özelliklerine erişmenizi sağlayan, genellikle başlatıcılar olarak adlandırılan uygulamalar"</string> <string name="role_home_request_title" msgid="738136983453341081">"<xliff:g id="APP_NAME">%1$s</xliff:g>, varsayılan ana ekran uygulamanız olarak ayarlansın mı?"</string> <string name="role_home_request_description" msgid="2658833966716057673">"Herhangi bir izin gerekli değil"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"başlatıcı"</string> diff --git a/PermissionController/res/values-uk/strings.xml b/PermissionController/res/values-uk/strings.xml index 1bc0f759b..38490365f 100644 --- a/PermissionController/res/values-uk/strings.xml +++ b/PermissionController/res/values-uk/strings.xml @@ -381,7 +381,7 @@ <string name="role_emergency_search_keywords" msgid="1920007722599213358">"в екстреному випадку"</string> <string name="role_home_label" msgid="3871847846649769412">"Додаток головного екрана за умовчанням"</string> <string name="role_home_short_label" msgid="8544733747952272337">"Додаток головного екрана"</string> - <string name="role_home_description" msgid="7997371519626556675">"Додатки, які заміняють головний екран і забезпечують доступ до вмісту та функцій пристрою Android (так звані панелі запуску)"</string> + <string name="role_home_description" msgid="7997371519626556675">"Додатки, які заміняють головний екран і забезпечують доступ до вмісту й функцій пристрою Android (так звані панелі запуску)"</string> <string name="role_home_request_title" msgid="738136983453341081">"Чи має <xliff:g id="APP_NAME">%1$s</xliff:g> використовуватись як додаток головного екрана за умовчанням?"</string> <string name="role_home_request_description" msgid="2658833966716057673">"Дозволи не потрібні"</string> <string name="role_home_search_keywords" msgid="3830755001192666285">"панель запуску"</string> diff --git a/PermissionController/res/values-zh-rHK/strings.xml b/PermissionController/res/values-zh-rHK/strings.xml index bfc2db95e..3f278f113 100644 --- a/PermissionController/res/values-zh-rHK/strings.xml +++ b/PermissionController/res/values-zh-rHK/strings.xml @@ -369,7 +369,7 @@ <string name="role_dialer_search_keywords" msgid="3324448983559188087">"撥號器"</string> <string name="role_sms_label" msgid="8456999857547686640">"預設短訊應用程式"</string> <string name="role_sms_short_label" msgid="4371444488034692243">"短訊應用程式"</string> - <string name="role_sms_description" msgid="3424020199148153513">"此類應用程式允許你使用自己手機號碼傳送和接收短訊、相片、影片和其他資料"</string> + <string name="role_sms_description" msgid="3424020199148153513">"此類應用程式允許你使用自己的手機號碼傳送和接收短訊、相片、影片和其他資料"</string> <string name="role_sms_request_title" msgid="7953552109601185602">"要將「<xliff:g id="APP_NAME">%1$s</xliff:g>」設為預設短訊應用程式嗎?"</string> <string name="role_sms_request_description" msgid="2691004766132144886">"此應用程式將可存取你的相機、通訊錄、檔案和媒體、麥克風、電話及短訊"</string> <string name="role_sms_search_keywords" msgid="8022048144395047352">"短訊, 發短訊, 訊息, 傳送短訊"</string> diff --git a/PermissionController/res/xml/roles.xml b/PermissionController/res/xml/roles.xml index b067c41b5..9bd675ba0 100644 --- a/PermissionController/res/xml/roles.xml +++ b/PermissionController/res/xml/roles.xml @@ -1630,6 +1630,9 @@ name="android.permission.health.READ_HEART_RATE" featureFlag="android.permission.flags.Flags.replaceBodySensorPermissionEnabled" /> <permission + name="android.permission.health.READ_SKIN_TEMPERATURE" + featureFlag="android.permission.flags.Flags.platformSkinTemperatureEnabled" /> + <permission name="android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND" featureFlag="android.permission.flags.Flags.replaceBodySensorPermissionEnabled" /> </permissions> diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/ui/model/PermissionUsageDetailsViewModelTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/ui/model/PermissionUsageDetailsViewModelTest.kt index 06292ce8b..edaea9aba 100644 --- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/ui/model/PermissionUsageDetailsViewModelTest.kt +++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/ui/model/PermissionUsageDetailsViewModelTest.kt @@ -32,6 +32,7 @@ import com.android.permissioncontroller.appops.data.model.v31.DiscretePackageOps import com.android.permissioncontroller.permission.domain.usecase.v31.GetPermissionGroupUsageDetailsUseCase import com.android.permissioncontroller.permission.ui.model.v31.PermissionUsageDetailsViewModel.PermissionUsageDetailsUiState import com.android.permissioncontroller.permission.ui.model.v31.PermissionUsageDetailsViewModelV2 +import com.android.permissioncontroller.permission.utils.LocationUtils import com.android.permissioncontroller.permission.utils.StringUtils import com.android.permissioncontroller.permission.utils.Utils import com.android.permissioncontroller.pm.data.model.v31.PackageInfoModel @@ -93,6 +94,7 @@ class PermissionUsageDetailsViewModelTest { .mockStatic(DeviceUtils::class.java) .mockStatic(StringUtils::class.java) .mockStatic(Flags::class.java) + .mockStatic(LocationUtils::class.java) .strictness(Strictness.LENIENT) .startMocking() @@ -109,6 +111,7 @@ class PermissionUsageDetailsViewModelTest { ) ) .thenReturn("Duration Summary") + whenever(LocationUtils.isLocationProvider(any(), any())).thenReturn(false) packageInfos = mapOf( diff --git a/SafetyCenter/Resources/res/raw-v36/safety_center_config.xml b/SafetyCenter/Resources/res/raw-v36/safety_center_config.xml new file mode 100644 index 000000000..de033ac44 --- /dev/null +++ b/SafetyCenter/Resources/res/raw-v36/safety_center_config.xml @@ -0,0 +1,158 @@ +<!-- + ~ Copyright (C) 2024 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +<safety-center-config> + <safety-sources-config> + <safety-sources-group + id="AndroidLockScreenSources" + title="@com.android.safetycenter.resources:string/lock_screen_sources_title" + summary="@com.android.safetycenter.resources:string/lock_screen_sources_summary"> + <dynamic-safety-source + id="AndroidLockScreen" + packageName="com.android.settings" + profile="primary_profile_only" + title="@com.android.safetycenter.resources:string/lock_screen_title" + summary="@com.android.safetycenter.resources:string/lock_screen_summary_disabled" + searchTerms="@com.android.safetycenter.resources:string/lock_screen_search_terms" + initialDisplayState="disabled" + notificationsAllowed="true"/> + <dynamic-safety-source + id="AndroidBiometrics" + packageName="com.android.settings" + profile="all_profiles" + title="@com.android.safetycenter.resources:string/biometrics_title" + titleForWork="@com.android.safetycenter.resources:string/biometrics_title_for_work" + titleForPrivateProfile="@com.android.safetycenter.resources:string/biometrics_title_for_private_profile" + searchTerms="@com.android.safetycenter.resources:string/biometrics_search_terms" + initialDisplayState="hidden"/> + </safety-sources-group> + <safety-sources-group + id="AndroidCellularNetworkSecuritySources" + title="@com.android.safetycenter.resources:string/cellular_network_security_title" + summary="@com.android.safetycenter.resources:string/cellular_network_security_summary"> + <dynamic-safety-source + id="AndroidCellularNetworkSecurity" + packageName="com.android.phone" + profile="primary_profile_only" + notificationsAllowed="true" + initialDisplayState="hidden"/> + </safety-sources-group> + <safety-sources-group + id="AndroidPrivacySources" + title="@com.android.safetycenter.resources:string/privacy_sources_title" + summary="@com.android.safetycenter.resources:string/privacy_sources_summary" + statelessIconType="privacy"> + <static-safety-source + id="AndroidPermissionManager" + profile="primary_profile_only" + intentAction="android.intent.action.MANAGE_PERMISSIONS" + title="@com.android.safetycenter.resources:string/permission_manager_title" + summary="@com.android.safetycenter.resources:string/permission_manager_summary" + searchTerms="@com.android.safetycenter.resources:string/permission_manager_search_terms"/> + <dynamic-safety-source + id="AndroidHealthConnect" + profile="primary_profile_only" + packageName="com.android.healthconnect.controller" + initialDisplayState="hidden" + refreshOnPageOpenAllowed="false" + title="@com.android.safetycenter.resources:string/health_connect_title" + searchTerms="@com.android.safetycenter.resources:string/health_connect_search_terms"/> + <dynamic-safety-source + id="AndroidPrivacyAppDataSharingUpdates" + packageName="com.android.permissioncontroller" + profile="primary_profile_only" + initialDisplayState="hidden" + refreshOnPageOpenAllowed="true" + title="@com.android.safetycenter.resources:string/app_data_sharing_updates_title" + searchTerms="@com.android.safetycenter.resources:string/app_data_sharing_updates_search_terms"/> + <static-safety-source + id="AndroidPrivacyControls" + profile="primary_profile_only" + intentAction="android.settings.PRIVACY_CONTROLS" + title="@com.android.safetycenter.resources:string/privacy_controls_title" + summary="@com.android.safetycenter.resources:string/privacy_controls_summary" + searchTerms="@com.android.safetycenter.resources:string/privacy_controls_search_terms"/> + <issue-only-safety-source + id="AndroidAccessibility" + packageName="com.android.permissioncontroller" + profile="all_profiles" + notificationsAllowed="true" + refreshOnPageOpenAllowed="true"/> + <issue-only-safety-source + id="AndroidNotificationListener" + packageName="com.android.permissioncontroller" + profile="primary_profile_only" + notificationsAllowed="true" + refreshOnPageOpenAllowed="true"/> + <issue-only-safety-source + id="AndroidBackgroundLocation" + packageName="com.android.permissioncontroller" + profile="all_profiles" + notificationsAllowed="true" + refreshOnPageOpenAllowed="true"/> + <issue-only-safety-source + id="AndroidPermissionAutoRevoke" + packageName="com.android.permissioncontroller" + profile="all_profiles" + notificationsAllowed="true" + refreshOnPageOpenAllowed="true"/> + <issue-only-safety-source + id="AndroidCertificateTransparency" + packageName="android" + profile="primary_profile_only" + notificationsAllowed="false" + refreshOnPageOpenAllowed="true"/> + </safety-sources-group> + <safety-sources-group + id="AndroidPrivacySourcesAdditional" + title="@com.android.safetycenter.resources:string/privacy_additional_title"> + <static-safety-source + id="AndroidPermissionUsage" + profile="primary_profile_only" + intentAction="android.intent.action.REVIEW_PERMISSION_USAGE" + title="@com.android.safetycenter.resources:string/permission_usage_title" + summary="@com.android.safetycenter.resources:string/permission_usage_summary" + searchTerms="@com.android.safetycenter.resources:string/permission_usage_search_terms"/> + <dynamic-safety-source + id="AndroidPrivateSpace" + packageName="com.android.settings" + profile="primary_profile_only" + title="@com.android.safetycenter.resources:string/private_space_title" + summary="@com.android.safetycenter.resources:string/private_space_summary" + searchTerms="@com.android.safetycenter.resources:string/private_space_search_terms" + initialDisplayState="hidden" + maxSeverityLevel="0"/> + </safety-sources-group> + <safety-sources-group + id="AndroidAdvancedSources" + title="@com.android.safetycenter.resources:string/advanced_title"> + <dynamic-safety-source + id="AndroidWorkPolicyInfo" + packageName="com.android.permissioncontroller" + profile="primary_profile_only" + title="@com.android.safetycenter.resources:string/work_policy_title" + initialDisplayState="hidden" + refreshOnPageOpenAllowed="true"/> + <static-safety-source + id="AndroidMoreSettings" + profile="primary_profile_only" + intentAction="com.android.settings.MORE_SECURITY_PRIVACY_SETTINGS" + title="@com.android.safetycenter.resources:string/more_settings_title" + summary="@com.android.safetycenter.resources:string/more_settings_summary" + searchTerms="@com.android.safetycenter.resources:string/more_settings_search_terms"/> + </safety-sources-group> + </safety-sources-config> +</safety-center-config> diff --git a/tests/cts/permissionmultiuser/Android.bp b/tests/cts/permissionmultiuser/Android.bp index b86b02205..23aafb7e0 100644 --- a/tests/cts/permissionmultiuser/Android.bp +++ b/tests/cts/permissionmultiuser/Android.bp @@ -33,6 +33,7 @@ android_test { "compatibility-device-util-axt", "ctstestrunner-axt", "Harrier", + "bedstead-multiuser", "modules-utils-build_system", "Nene", ], diff --git a/tests/cts/permissionmultiuser/src/android/permissionmultiuser/cts/AppDataSharingUpdatesTest.kt b/tests/cts/permissionmultiuser/src/android/permissionmultiuser/cts/AppDataSharingUpdatesTest.kt index 2067dec51..f3309bd3c 100644 --- a/tests/cts/permissionmultiuser/src/android/permissionmultiuser/cts/AppDataSharingUpdatesTest.kt +++ b/tests/cts/permissionmultiuser/src/android/permissionmultiuser/cts/AppDataSharingUpdatesTest.kt @@ -58,6 +58,7 @@ import com.android.bedstead.harrier.annotations.EnsureSecureSettingSet import com.android.bedstead.harrier.annotations.RequireDoesNotHaveFeature import com.android.bedstead.harrier.annotations.RequireNotWatch import com.android.bedstead.harrier.annotations.RequireSdkVersion +import com.android.bedstead.multiuser.additionalUser import com.android.bedstead.multiuser.annotations.RequireRunOnAdditionalUser import com.android.bedstead.permissions.CommonPermissions.INTERACT_ACROSS_USERS import com.android.compatibility.common.util.ApiTest diff --git a/tests/cts/permissionpolicy/res/raw/android_manifest.xml b/tests/cts/permissionpolicy/res/raw/android_manifest.xml index f548119b6..2eff8b0af 100644 --- a/tests/cts/permissionpolicy/res/raw/android_manifest.xml +++ b/tests/cts/permissionpolicy/res/raw/android_manifest.xml @@ -3915,6 +3915,20 @@ android:protectionLevel="signature|installer" /> <uses-permission android:name="android.permission.MANAGE_ENHANCED_CONFIRMATION_STATES" /> + <!-- Allows an application to toggle the device's advanced protection mode status. + @FlaggedApi("android.security.aapm_api") + @SystemApi + @hide --> + <permission android:name="android.permission.SET_ADVANCED_PROTECTION_MODE" + android:protectionLevel="signature|privileged" + android:featureFlag="android.security.aapm_api"/> + + <!-- Allows an application to query the device's advanced protection mode status. + @FlaggedApi("android.security.aapm_api") --> + <permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" + android:protectionLevel="normal" + android:featureFlag="android.security.aapm_api"/> + <!-- @SystemApi @hide Allows an application to set a device owner on retail demo devices.--> <permission android:name="android.permission.PROVISION_DEMO_DEVICE" android:protectionLevel="signature|setup|knownSigner" @@ -8287,6 +8301,14 @@ android:protectionLevel="internal" android:featureFlag="android.content.pm.verification_service" /> + <!-- Allows app to enter trade-in-mode. + <p>Protection level: signature|privileged + @hide + --> + <permission android:name="android.permission.ENTER_TRADE_IN_MODE" + android:protectionLevel="signature|privileged" + android:featureFlag="com.android.tradeinmode.flags.enable_trade_in_mode" /> + <!-- Attribution for Geofencing service. --> <attribution android:tag="GeofencingService" android:label="@string/geofencing_service"/> <!-- Attribution for Country Detector. --> diff --git a/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt index e434e9c70..55f028e17 100644 --- a/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt +++ b/tests/cts/permissionui/src/android/permissionui/cts/ReviewAccessibilityServicesTest.kt @@ -190,7 +190,7 @@ class ReviewAccessibilityServicesTest { !uiDevice.performActionAndWait( { block() }, Until.newWindow(), - NEW_WINDOW_TIMEOUT_MILLIS + NEW_WINDOW_TIMEOUT_MILLIS, ) if (timeoutOccurred) { @@ -212,17 +212,11 @@ class ReviewAccessibilityServicesTest { private fun waitForSettingsButtonToDisappear() { SystemUtil.eventually { - findPCObjectByClassAndText(false, - "android.widget.Button", - "Settings" - ) + findPCObjectByClassAndText(false, "android.widget.Button", "Settings") } } - private fun findObjectByTextWithoutRetry( - shouldBePresent: Boolean, - text: String, - ): UiObject2? { + private fun findObjectByTextWithoutRetry(shouldBePresent: Boolean, text: String): UiObject2? { val containsWithoutCaseSelector = By.text(Pattern.compile(".*$text.*", Pattern.CASE_INSENSITIVE)) val view = @@ -235,7 +229,7 @@ class ReviewAccessibilityServicesTest { assertEquals( "Expected to find view with text $text: $shouldBePresent", shouldBePresent, - view != null + view != null, ) return view } @@ -251,15 +245,16 @@ class ReviewAccessibilityServicesTest { private fun findPCObjectByClassAndText( shouldBePresent: Boolean, className: String, - text: String + text: String, ): UiObject2? { - val selector = By.pkg(packageName) - .clazz(className) - .text(text) + val selector = By.pkg(packageName).clazz(className).text(text) val view = waitFindObjectOrNull(selector) assertEquals( "Expected to find view with packageName '$packageName' className '$className' " + - "text '$text' : $shouldBePresent", shouldBePresent, view != null) + "text '$text' : $shouldBePresent", + shouldBePresent, + view != null, + ) return view } } diff --git a/tests/cts/role/Android.bp b/tests/cts/role/Android.bp index f0095b7dd..5751aaada 100644 --- a/tests/cts/role/Android.bp +++ b/tests/cts/role/Android.bp @@ -33,6 +33,7 @@ android_test { "compatibility-device-util-axt", "ctstestrunner-axt", "Harrier", + "bedstead-multiuser", "platform-test-annotations", "truth", ], diff --git a/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java b/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java index 4ba8b33e7..e3bf054b0 100644 --- a/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java +++ b/tests/cts/role/src/android/app/role/cts/RoleManagerTest.java @@ -16,6 +16,7 @@ package android.app.role.cts; +import static com.android.bedstead.multiuser.MultiUserDeviceStateExtensionsKt.privateProfile; import static com.android.compatibility.common.util.SystemUtil.callWithShellPermissionIdentity; import static com.android.compatibility.common.util.SystemUtil.runShellCommand; import static com.android.compatibility.common.util.SystemUtil.runShellCommandOrThrow; @@ -184,6 +185,7 @@ public class RoleManagerTest { @Before public void setUp() throws Exception { + assumeTrue(RoleManagerUtil.INSTANCE.isCddCompliantScreenSize()); saveRoleHolder(); installApp(); wakeUpScreen(); @@ -864,7 +866,7 @@ public class RoleManagerTest { return; } - UserHandle privateProfile = sDeviceState.privateProfile().userHandle(); + UserHandle privateProfile = privateProfile(sDeviceState).userHandle(); assertThat(privateProfile).isNotNull(); installPackage(APP_APK_PATH, privateProfile); installPackage(APP_CLONE_APK_PATH, privateProfile); diff --git a/tests/cts/role/src/android/app/role/cts/RoleManagerUtil.kt b/tests/cts/role/src/android/app/role/cts/RoleManagerUtil.kt new file mode 100644 index 000000000..10a3834a2 --- /dev/null +++ b/tests/cts/role/src/android/app/role/cts/RoleManagerUtil.kt @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.app.role.cts + +import android.content.res.Configuration +import android.content.res.Resources +import android.util.Log + +object RoleManagerUtil { + private val TAG = RoleManagerUtil::class.java.getSimpleName() + + /** + * This method checks for the minimum screen size described in CDD {@see + * https://source.android.com/docs/compatibility/14/android-14-cdd#7111_screen_size_and_shape} + */ + fun isCddCompliantScreenSize(): Boolean { + if ( + Resources.getSystem().configuration.uiMode and Configuration.UI_MODE_TYPE_MASK == + Configuration.UI_MODE_TYPE_WATCH + ) { + Log.d(TAG, "UI mode is UI_MODE_TYPE_WATCH, skipping the min dp check") + return true + } + + val screenSize = + Resources.getSystem().configuration.screenLayout and + Configuration.SCREENLAYOUT_SIZE_MASK + return when (screenSize) { + Configuration.SCREENLAYOUT_SIZE_SMALL -> hasMinScreenSize(426, 320) + Configuration.SCREENLAYOUT_SIZE_NORMAL -> hasMinScreenSize(480, 320) + Configuration.SCREENLAYOUT_SIZE_LARGE -> hasMinScreenSize(640, 480) + Configuration.SCREENLAYOUT_SIZE_XLARGE -> hasMinScreenSize(960, 720) + else -> { + Log.e(TAG, "Unknown screen size: $screenSize") + true + } + } + } + + private fun hasMinScreenSize(minWidthDp: Int, minHeightDp: Int): Boolean { + val dpi = Resources.getSystem().displayMetrics.densityDpi + val widthDp = (160f / dpi) * Resources.getSystem().displayMetrics.widthPixels + val heightDp = (160f / dpi) * Resources.getSystem().displayMetrics.heightPixels + + // CDD does seem to follow width & height convention correctly, hence checking both ways + return (widthDp >= minWidthDp && heightDp >= minHeightDp) || + (widthDp >= minHeightDp && heightDp >= minWidthDp) + } +} diff --git a/tests/functional/safetycenter/multiusers/Android.bp b/tests/functional/safetycenter/multiusers/Android.bp index 30024221b..745e763f0 100644 --- a/tests/functional/safetycenter/multiusers/Android.bp +++ b/tests/functional/safetycenter/multiusers/Android.bp @@ -36,6 +36,7 @@ android_test { "Harrier", "Nene", "TestApp", + "bedstead-enterprise", "com.android.permission.flags-aconfig-java-export", ], test_suites: [ diff --git a/tests/functional/safetycenter/multiusers/src/android/safetycenter/functional/multiusers/SafetyCenterMultiUsersTest.kt b/tests/functional/safetycenter/multiusers/src/android/safetycenter/functional/multiusers/SafetyCenterMultiUsersTest.kt index 7c2062e8d..82ca0365c 100644 --- a/tests/functional/safetycenter/multiusers/src/android/safetycenter/functional/multiusers/SafetyCenterMultiUsersTest.kt +++ b/tests/functional/safetycenter/multiusers/src/android/safetycenter/functional/multiusers/SafetyCenterMultiUsersTest.kt @@ -51,6 +51,10 @@ import com.android.bedstead.multiuser.annotations.EnsureHasNoPrivateProfile import com.android.bedstead.enterprise.annotations.EnsureHasWorkProfile import com.android.bedstead.enterprise.annotations.EnsureHasDeviceOwner import com.android.bedstead.enterprise.annotations.EnsureHasNoDeviceOwner +import com.android.bedstead.enterprise.workProfile +import com.android.bedstead.multiuser.additionalUser +import com.android.bedstead.multiuser.cloneProfile +import com.android.bedstead.multiuser.privateProfile import com.android.bedstead.nene.TestApis import com.android.bedstead.nene.types.OptionalBoolean.TRUE import com.android.compatibility.common.util.DisableAnimationRule diff --git a/tests/hostside/safetycenter/Android.bp b/tests/hostside/safetycenter/Android.bp index 10258f95b..931dfb719 100644 --- a/tests/hostside/safetycenter/Android.bp +++ b/tests/hostside/safetycenter/Android.bp @@ -33,7 +33,7 @@ java_test_host { static_libs: [ "cts-statsd-atom-host-test-utils", ], - data: [":SafetyCenterHostSideTestsHelper"], + device_common_data: [":SafetyCenterHostSideTestsHelper"], test_suites: [ "general-tests", "mts-permission", |