From b454862005841e59faa7566fc7e707b7fc6fad08 Mon Sep 17 00:00:00 2001 From: Sreyas Date: Wed, 20 Jan 2021 18:01:20 -0800 Subject: [PATCH 001/889] Refactoring startShareActivity to allow crop to be passed in. This is necessary to start a share activity based on a single image from Launcher. Bug: 169772466, 169799864 Change-Id: I8a2baaa978a83f289e558dcd5d9be5ca6a164b2f --- quickstep/src/com/android/quickstep/ImageActionsApi.java | 4 ++-- quickstep/src/com/android/quickstep/TaskOverlayFactory.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/quickstep/ImageActionsApi.java b/quickstep/src/com/android/quickstep/ImageActionsApi.java index b04905ca60..cb4d53a82b 100644 --- a/quickstep/src/com/android/quickstep/ImageActionsApi.java +++ b/quickstep/src/com/android/quickstep/ImageActionsApi.java @@ -83,8 +83,8 @@ public class ImageActionsApi { * Share the image this api was constructed with. */ @UiThread - public void startShareActivity() { - ImageActionUtils.startShareActivity(mContext, mBitmapSupplier, null, null, TAG); + public void startShareActivity(Rect crop) { + ImageActionUtils.startShareActivity(mContext, mBitmapSupplier, crop, null, TAG); } /** diff --git a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java index 6677724982..93ebd5aa26 100644 --- a/quickstep/src/com/android/quickstep/TaskOverlayFactory.java +++ b/quickstep/src/com/android/quickstep/TaskOverlayFactory.java @@ -159,7 +159,7 @@ public class TaskOverlayFactory implements ResourceBasedOverride { @Override public void onShare() { if (isAllowedByPolicy) { - endLiveTileMode(mImageApi::startShareActivity); + endLiveTileMode(() -> mImageApi.startShareActivity(null)); } else { showBlockedByPolicyMessage(); } From 650fe52313d9a35de32ad94bb8910bd8d47dc74c Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Tue, 26 Jan 2021 13:39:27 -0800 Subject: [PATCH 002/889] Turn ENABLE_DEVICE_SEARCH to DeviceConfig flag Change-Id: I6e161bf36b315613bd2f13886cf4ef50470469b0 --- src/com/android/launcher3/config/FeatureFlags.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 1c5c222084..086d665fcb 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -95,7 +95,7 @@ public final class FeatureFlags { "ENABLE_SUGGESTED_ACTIONS_OVERVIEW", true, "Show chip hints on the overview screen"); - public static final BooleanFlag ENABLE_DEVICE_SEARCH = getDebugFlag( + public static final BooleanFlag ENABLE_DEVICE_SEARCH = new DeviceFlag( "ENABLE_DEVICE_SEARCH", false, "Allows on device search in all apps"); public static final BooleanFlag USE_SEARCH_API = getDebugFlag( From fc82c5a92076116b16d0b1b6c4eb6acf5120b8bb Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Tue, 26 Jan 2021 15:06:11 -0800 Subject: [PATCH 003/889] Inherit theme colors on app drawer and folder This way, changes on Theme.DeviceDefault will be reflected on launcher as well. Bug: 173561945 Test: visual Change-Id: I297560253242476f34c47fcd845c44e96873a8b2 --- res/values/styles.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/res/values/styles.xml b/res/values/styles.xml index 067cf7feac..dc7182fe90 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -31,7 +31,7 @@ @@ -87,9 +87,9 @@ true @null @color/folder_dot_color - ?android:attr/colorBackgroundFloating + @color/folder_background_light #FF80868B - ?attr/workspaceTextColor + @color/workspace_text_color_dark true @color/folder_hint_text_color_dark @@ -109,9 +109,9 @@ @color/popup_color_tertiary_dark @style/WidgetContainerTheme.Dark @color/folder_dot_color - ?android:attr/colorBackgroundFloating + @color/folder_background_dark ?android:attr/colorPrimary - ?android:attr/textColorPrimary + @color/workspace_text_color_light false @color/folder_hint_text_color_light true @@ -123,8 +123,8 @@ - + "Du är klar med rörelsen för att gå tillbaka." "Se till att du inte sveper för nära skärmens nederkant." "Öppna inställningarna om du vill ändra rörelsens känslighet" "Återgå genom att svepa från vänster" @@ -62,19 +61,15 @@ "Se till att du sveper från nederkanten på skärmen." "Se till att du sveper i en jämn rörelse innan du släpper." "Se till att du sveper rakt uppåt." - - - - + "Du är klar med rörelsen för att öppna startskärmen. Nu ska du få lära dig hur du går tillbaka." + "Du är klar med rörelsen för att öppna startskärmen." "Svep för att öppna startskärmen" "Svep uppåt från skärmens nederkant. Du kan alltid återgå startskärmen med den här rörelsen." "Se till att du sveper från nederkanten på skärmen." "Testa att trycka längre på fönstret innan du släpper." "Se till att du sveper rakt uppåt och sedan pausar." - - - - + "Du har lärt dig hur du använder rörelser. Om du vill inaktivera rörelser öppnar du inställningarna." + "Du är klar med rörelsen för att byta mellan appar." "Svep för att byta mellan appar" "Svep uppåt från skärmens nederkant. Håll fingret nedtryckt och släpp sedan." "Klart" diff --git a/quickstep/res/values-te/strings.xml b/quickstep/res/values-te/strings.xml index a0351a79e3..0d18e35745 100644 --- a/quickstep/res/values-te/strings.xml +++ b/quickstep/res/values-te/strings.xml @@ -31,11 +31,11 @@ "యాప్ సలహాలు" "అన్ని యాప్‌లు" "మీ సూచించబడిన యాప్‌లు" - "మీ హోమ్ స్క్రీన్‌ దిగువ వరుసలో యాప్ సలహాలను పొందండి" + "మీ మొదటి స్క్రీన్‌ దిగువ వరుసలో యాప్ సలహాలను పొందండి" "మీ హోమ్ స్క్రీన్‌లోని ఇష్టమైన వాటి వరుసలో యాప్ సూచ‌న‌లు పొందండి" - "మీరు ఎక్కువగా ఉపయోగించే యాప్‌లను నేరుగా హోమ్ స్క్రీన్‌లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్‌లు మీ హోమ్ స్క్రీన్ పైకి చేరుకుంటాయి." - "మీరు ఎక్కువగా ఉపయోగించే యాప్‌లను నేరుగా హోమ్ స్క్రీన్‌లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. ఇష్టమైన వాటి వరుసలోని యాప్‌లు మీ హోమ్ స్క్రీన్‌కు చేరుకుంటాయి." - "మీరు ఎక్కువగా ఉపయోగించే యాప్‌లను నేరుగా హోమ్ స్క్రీన్‌లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్‌లు కొత్త ఫోల్డర్‌కు తరలించబడతాయి." + "మీరు ఎక్కువగా ఉపయోగించే యాప్‌లను నేరుగా మొదటి స్క్రీన్‌లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్‌లు మీ మొదటి స్క్రీన్ పైకి చేరుకుంటాయి." + "మీరు ఎక్కువగా ఉపయోగించే యాప్‌లను నేరుగా మొదటి స్క్రీన్‌లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. ఇష్టమైన వాటి వరుసలోని యాప్‌లు మీ మొదటి స్క్రీన్‌కు చేరుకుంటాయి." + "మీరు ఎక్కువగా ఉపయోగించే యాప్‌లను నేరుగా మొదటి స్క్రీన్‌లోనే సులభంగా యాక్సెస్ చేయండి. మీ రోజువారీ కార్యకలాపాలను బట్టి సూచనలు మారతాయి. దిగువ వరుసలోని యాప్‌లు కొత్త ఫోల్డర్‌కు తరలించబడతాయి." "యాప్ సూచ‌న‌లను పొందండి" "వద్దు" "సెట్టింగ్‌లు" diff --git a/quickstep/res/values-th/strings.xml b/quickstep/res/values-th/strings.xml index a13b43b776..1758589f8b 100644 --- a/quickstep/res/values-th/strings.xml +++ b/quickstep/res/values-th/strings.xml @@ -42,7 +42,7 @@ "แอปที่ใช้มากที่สุดจะปรากฎที่นี่และจะเปลี่ยนไปตามการใช้งานประจำ" "ลากแอปออกจากแถวล่างเพื่อดูแอปแนะนำ" "เพิ่มคำแนะนำเกี่ยวกับแอปในพื้นที่ว่างแล้ว" - "เปิดใช้คำแนะนำเกี่ยวกับแอปแล้ว" + "เปิดใช้แอปแนะนำแล้ว" "ปิดใช้คำแนะนำเกี่ยวกับแอปอยู่" "แอปที่คาดว่าจะใช้: %1$s" "ตรวจสอบว่าปัดจากขอบด้านซ้ายสุด" diff --git a/quickstep/res/values-zh-rTW/strings.xml b/quickstep/res/values-zh-rTW/strings.xml index f3cb45840c..51bb189cd8 100644 --- a/quickstep/res/values-zh-rTW/strings.xml +++ b/quickstep/res/values-zh-rTW/strings.xml @@ -31,16 +31,16 @@ "應用程式建議" "所有應用程式" "系統預測你會使用的應用程式" - "在主畫面的底部取得應用程式建議" + "在主畫面底部顯示應用程式建議" "在主畫面的收藏列取得應用程式建議" - "在主畫面上輕鬆存取最常使用的應用程式。應用程式建議會依據你的日常使用習慣而有所不同。系統會將底部列出的應用程式上移到主畫面。" - "在主畫面上輕鬆存取最常使用的應用程式。系統會根據你的日常使用習慣提供不同的應用程式建議,並在主畫面顯示收藏列中的應用程式。" - "在主畫面上輕鬆存取最常使用的應用程式。應用程式建議會根據日常安排有所不同。系統會將底部列出的應用程式移到新的資料夾。" + "你可以輕鬆地在主畫面上找到自己常用的應用程式。應用程式建議會依據你的日常使用習慣而有所不同。系統會將底部列出的應用程式上移到主畫面。" + "你可以輕鬆地在主畫面上找到自己常用的應用程式。系統會根據你的日常使用習慣提供不同的應用程式建議,並在主畫面顯示收藏列中的應用程式。" + "你可以輕鬆地在主畫面上找到自己常用的應用程式。應用程式建議會根據日常安排有所不同。系統會將底部列出的應用程式移到新的資料夾。" "取得應用程式建議" "不用了,謝謝" "設定" "最常使用的應用程式會顯示在這裡,顯示的項目會根據日常安排有所不同" - "將應用程式從底部列向外拖曳,即可取得應用程式建議" + "將底部列中顯示的應用程式拖曳出來,即可取得應用程式建議" "應用程式建議已新增到空白位置" "應用程式建議功能已啟用" "應用程式建議功能已停用" @@ -83,7 +83,7 @@ "你可以開始使用手機了" "無障礙工具的導覽設定" "分享" - "擷取螢幕畫面" + "螢幕截圖" "這個應用程式或貴機構不允許執行這個動作" "要略過手勢操作教學課程嗎?" "你之後可以在「%1$s」應用程式找到這些說明" From 6f7135211a8fa810e9f39ee18c57977ea398732b Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 15 Jun 2021 16:44:49 +0000 Subject: [PATCH 064/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I6b33eb1d6dc7db9603e01bbd604bf1b4d5912fc4 --- res/values-af/strings.xml | 18 ++++++++--------- res/values-am/strings.xml | 18 ++++++++--------- res/values-ar/strings.xml | 20 +++++++++---------- res/values-as/strings.xml | 18 ++++++++--------- res/values-az/strings.xml | 24 +++++++++++------------ res/values-b+sr+Latn/strings.xml | 20 +++++++++---------- res/values-be/strings.xml | 18 ++++++++--------- res/values-bg/strings.xml | 18 ++++++++--------- res/values-bn/strings.xml | 22 +++++++++++---------- res/values-bs/strings.xml | 20 +++++++++---------- res/values-ca/strings.xml | 18 ++++++++--------- res/values-cs/strings.xml | 20 +++++++++---------- res/values-da/strings.xml | 22 ++++++++++----------- res/values-de/strings.xml | 20 +++++++++---------- res/values-el/strings.xml | 18 ++++++++--------- res/values-en-rAU/strings.xml | 18 ++++++++--------- res/values-en-rCA/strings.xml | 18 ++++++++--------- res/values-en-rGB/strings.xml | 18 ++++++++--------- res/values-en-rIN/strings.xml | 18 ++++++++--------- res/values-en-rXC/strings.xml | 18 ++++++++--------- res/values-es-rUS/strings.xml | 20 +++++++++---------- res/values-es/strings.xml | 22 ++++++++++----------- res/values-et/strings.xml | 22 ++++++++++----------- res/values-eu/strings.xml | 22 ++++++++++----------- res/values-fa/strings.xml | 20 +++++++++---------- res/values-fi/strings.xml | 20 +++++++++---------- res/values-fr-rCA/strings.xml | 20 +++++++++---------- res/values-fr/strings.xml | 20 +++++++++---------- res/values-gl/strings.xml | 18 ++++++++--------- res/values-gu/strings.xml | 22 +++++++++++---------- res/values-hi/strings.xml | 18 ++++++++--------- res/values-hr/strings.xml | 22 ++++++++++----------- res/values-hu/strings.xml | 18 ++++++++--------- res/values-hy/strings.xml | 22 ++++++++++----------- res/values-in/strings.xml | 22 ++++++++++----------- res/values-is/strings.xml | 18 ++++++++--------- res/values-it/strings.xml | 18 ++++++++--------- res/values-iw/strings.xml | 22 ++++++++++----------- res/values-ja/strings.xml | 24 +++++++++++------------ res/values-ka/strings.xml | 18 ++++++++--------- res/values-kk/strings.xml | 24 +++++++++++------------ res/values-km/strings.xml | 20 +++++++++---------- res/values-kn/strings.xml | 20 ++++++++++--------- res/values-ko/strings.xml | 18 ++++++++--------- res/values-ky/strings.xml | 22 ++++++++++----------- res/values-lo/strings.xml | 20 +++++++++---------- res/values-lt/strings.xml | 18 ++++++++--------- res/values-lv/strings.xml | 18 ++++++++--------- res/values-mk/strings.xml | 18 ++++++++--------- res/values-ml/strings.xml | 24 +++++++++++------------ res/values-mn/strings.xml | 20 +++++++++---------- res/values-mr/strings.xml | 25 +++++++++++++++--------- res/values-ms/strings.xml | 18 ++++++++--------- res/values-my/strings.xml | 18 ++++++++--------- res/values-nb/strings.xml | 18 ++++++++--------- res/values-ne/strings.xml | 33 ++++++++++++++++---------------- res/values-nl/strings.xml | 18 ++++++++--------- res/values-or/strings.xml | 22 ++++++++++----------- res/values-pa/strings.xml | 29 ++++++++++++++-------------- res/values-pl/strings.xml | 18 ++++++++--------- res/values-pt-rPT/strings.xml | 20 +++++++++---------- res/values-pt/strings.xml | 20 +++++++++---------- res/values-ro/strings.xml | 18 ++++++++--------- res/values-ru/strings.xml | 22 ++++++++++----------- res/values-si/strings.xml | 18 ++++++++--------- res/values-sk/strings.xml | 18 ++++++++--------- res/values-sl/strings.xml | 20 +++++++++---------- res/values-sq/strings.xml | 18 ++++++++--------- res/values-sr/strings.xml | 20 +++++++++---------- res/values-sv/strings.xml | 20 +++++++++---------- res/values-sw/strings.xml | 18 ++++++++--------- res/values-ta/strings.xml | 18 ++++++++--------- res/values-te/strings.xml | 30 +++++++++++++++-------------- res/values-th/strings.xml | 22 ++++++++++----------- res/values-tl/strings.xml | 18 ++++++++--------- res/values-tr/strings.xml | 20 +++++++++---------- res/values-uk/strings.xml | 20 +++++++++---------- res/values-ur/strings.xml | 20 ++++++++++--------- res/values-uz/strings.xml | 22 ++++++++++----------- res/values-vi/strings.xml | 18 ++++++++--------- res/values-zh-rCN/strings.xml | 27 ++++++++++++-------------- res/values-zh-rHK/strings.xml | 18 ++++++++--------- res/values-zh-rTW/strings.xml | 18 ++++++++--------- res/values-zu/strings.xml | 20 +++++++++---------- 84 files changed, 854 insertions(+), 842 deletions(-) diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index ad353e11c3..2703eb5e98 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -53,7 +53,9 @@ "Gesprekke" "Nuttige inligting binne jou bereik" "Jy kan legstukke by jou tuisskerm voeg om inligting te kry sonder om programme oop te maak" + "Tik om legstukinstellings te verander" "Het dit" + "Verander legstukinstellings" "Deursoek programme" "Laai tans programme …" "Kon geen programme kry wat by \"%1$s\" pas nie" @@ -154,18 +156,16 @@ "Persoonlik" "Werk" "Werkprofiel" - "Persoonlike programme is apart en van werkprogramme versteek." - "Jou IT-admin kan jou werkprogramme en -data sien" - "Volgende" + + "Het dit" - "Werkprofiel is onderbreek" - "Werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" - "Werkprofiel is onderbreek. Werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" + "Werkprogramme is af" + "Jou werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" + "Werkprogramme is af. Jou werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" "Werkprogramme het \'n kenteken en is sigbaar vir jou IT-administrateur" "Het dit" - "Onderbreek werkprogramme" - "Skakel aan" + "Skakel werkprogramme af" + "Skakel werkprogramme aan" "Filter" - "Onderbreek werkprogramme en kennisgewings" "Misluk: %1$s" diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 34cdc03f0c..846de43d4a 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -53,7 +53,9 @@ "ውይይቶች" "በጣቶችዎ ጫፎች ላይ ጠቃሚ መረጃ" "መተግበሪያዎችን ሳይከፍቱ መረጃ ለማግኘት በመነሻ ማያ ገጽዎ ላይ ምግብሮችን ማከል ይችላሉ" + "የምግብር ቅንብሮችን ለመለወጥ መታ ያድርጉ" "ገባኝ" + "የምግብር ቅንብሮችን ይለውጡ" "መተግበሪያዎችን ፈልግ" "መተግበሪያዎችን በመጫን ላይ…" "ከ«%1$s» ጋር የሚዛመዱ ምንም መተግበሪያዎች አልተገኙም" @@ -154,18 +156,16 @@ "የግል" "ሥራ" "የሥራ መገለጫ" - "የግል ውሂብ የተለየ እና ከሥራ መተግበሪያዎች የተደበቀ ነው" - "የስራ መተግበሪያዎች እና ውሂብ የተለዩ እና ከሥራ መተግበሪያዎች የተደበቁ ናቸው" - "ቀጣይ" + + "ገባኝ" - "የሥራ መገለጫ ባለበት ቆሟል" - "የስራ መተግበሪያዎች ማሳወቂያዎችን ወደ እርስዎ መላክ፣ ባትሪዎን መጠቀም ወይም አካባቢዎ ዘንድ መድረስ አይችሉም" - "የሥራ መገለጫ ባለበት ቆሟል። የስራ መተግበሪያዎች ማሳወቂያዎችን ወደ እርስዎ መላክ፣ ባትሪዎን መጠቀም ወይም አካባቢዎ ዘንድ መድረስ አይችሉም" + "የሥራ መተግበሪያዎች ጠፍተዋል" + "የስራ መተግበሪያዎችዎ ማሳወቂያዎችን ሊልክልዎ፣ ባትሪዎን መጠቀም ወይም አካባቢዎን መድረስ አይችሉም" + "የሥራ መተግበሪያዎች ጠፍተዋል። የስራ መተግበሪያዎችዎ ማሳወቂያዎችን ሊልክልዎ፣ ባትሪዎን መጠቀም ወይም አካባቢዎን መድረስ አይችሉም" "የሥራ መተግበሪያዎች ባጅ የተደረገባቸው ሲሆን ለእርስዎ IT ቡድን ታይ ናቸው" "ገባኝ" - "የሥራ መተግበሪያዎችን ባሉበት አቁም" - "አብራ" + "የሥራ መተግበሪያዎችን ያጥፉ" + "የሥራ መተግበሪያዎችን ያብሩ" "አጣራ" - "የስራ መተግበሪያዎችን እና ማሳወቂያዎችን ባሉበት ያቁሙ" "አልተሳካም፦ %1$s" diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 7a5488fd4a..18ce18c23b 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -61,7 +61,9 @@ "المحادثات" "معلومات مفيدة في متناول يديك" "للحصول على معلومات بدون فتح التطبيقات، يمكنك إضافة الأدوات إلى الشاشة الرئيسية." + "انقر لتغيير إعدادات الأداة" "حسنًا" + "تغيير إعدادات الأداة" "بحث في التطبيقات" "جارٍ تحميل التطبيقات…" "لم يتم العثور على أي تطبيقات تتطابق مع \"%1$s\"" @@ -70,7 +72,7 @@ "الإشعارات" "انقر مرتين مع تثبيت إصبعك لنقل اختصار." "انقر مرتين مع تثبيت إصبعك لنقل اختصار أو استخدام الإجراءات المخصّصة." - "ليس هناك مساحة أخرى في هذه الشاشة الرئيسية." + "لا يتبقى مساحة على هذه الشاشة الرئيسية." "لا يوجد المزيد من الحقول في علبة المفضلة" "قائمة التطبيقات" "قائمة التطبيقات الشخصية" @@ -166,18 +168,16 @@ "شخصية" "للعمل" "الملف الشخصي للعمل" - "إن البيانات الشخصية منفصلة عن تطبيقات العمل ومخفية عنها" - "إن بيانات وتطبيقات العمل مرئية لمشرف تكنولوجيا المعلومات في مؤسستك" - "التالي" + + "حسنًا" - "تم إيقاف الملف الشخصي للعمل مؤقتًا" - "لا يمكن لتطبيقات العمل إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." - "تم إيقاف الملف الشخصي للعمل مؤقتًا. لا يمكن لتطبيقات العمل إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." + "تطبيقات العمل غير مفعّلة" + "لا يمكن لتطبيقات العمل إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." + "تطبيقات العمل غير مفعّلة، وبالتالي لا يمكنها إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." "تحمل تطبيقات العمل شارة وتكون مرئية لمشرف تكنولوجيا المعلومات." "حسنًا" - "إيقاف تطبيقات العمل مؤقتًا" - "تفعيل" + "إيقاف تطبيقات العمل" + "تفعيل تطبيقات العمل" "فلتر" - "إيقاف تطبيقات العمل وإشعاراتها مؤقتًا" "تعذَّر %1$s." diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 1b2d8a11b9..1f217cf7b6 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -53,7 +53,9 @@ "বাৰ্তালাপ" "আপোনাৰ আঙুলিৰে টিপতে উপযোগী তথ্য পাওক" "এপ্‌ নোখোলাকৈ তথ্য পাবলৈ আপুনি নিজৰ গৃহ স্ক্ৰীনত ৱিজেট যোগ দিব পাৰে" + "ৱিজেটৰ ছেটিং সলনি কৰিবলৈ টিপক" "বুজি পালোঁ" + "ৱিজেটৰ ছেটিং সলনি কৰক" "এপসমূহ সন্ধান কৰক" "এপসমূহ ল’ড কৰি থকা হৈছে…" "\"%1$s\"ৰ সৈতে মিলা কোনো এপ্ বিচাৰি পোৱা নগ\'ল" @@ -154,18 +156,16 @@ "ব্যক্তিগত" "কৰ্মস্থান" "কৰ্মস্থানৰ প্ৰ\'ফাইল" - "ব্যক্তিগত ডেটাখিনি পৃথক হয় আৰু সেইখিনি কর্মস্থানৰ এপ্‌সমূহৰ পৰা লুকুওৱা আছে" - "আপোনাৰ আইটি প্ৰশাসকে কর্মস্থানৰ এপ্‌সমূহ আৰু ডেটা দেখা পায়" - "পৰৱৰ্তী" + + "বুজি পালোঁ" - "কৰ্মস্থানৰ প্ৰ\'ফাইলটো পজ কৰা আছে" - "কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" - "কৰ্মস্থানৰ প্ৰ’ফাইলটো পজ কৰা আছে। কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" + "কৰ্মস্থানৰ এপ্‌সমূহ অফ হৈ আছে" + "আপোনাৰ কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" + "কৰ্মস্থানৰ এপ্‌সমূহ অফ হৈ আছে। আপোনাৰ কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" "কর্মস্থানৰ এপ্‌সমূহ প্ৰতীকেৰে চিহ্নিত কৰা হয় আৰু সেইবোৰ আপোনাৰ আইটি প্ৰশাসকৰ বাবে দৃশ্যমান হয়" "বুজি পালোঁ" - "কৰ্মস্থানৰ এপ্‌ পজ কৰক" - "অন কৰক" + "কৰ্মস্থানৰ এপ্‌সমূহ অফ কৰক" + "কৰ্মস্থানৰ এপ্‌সমূহ অন কৰক" "ফিল্টাৰ" - "কর্মস্থানৰ এপ্‌সমূহ আৰু জাননীসমূহ পজ কৰক" "বিফল: %1$s" diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index 41573d91f3..f73e500c4f 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -53,7 +53,9 @@ "Söhbətlər" "Faydalı məlumatlar barmaqlarınızın ucunda" "Tətbiqləri açmadan məlumat almaq üçün Əsas ekrana vidcet əlavə edə bilərsiniz" + "Vidcet ayarlarını dəyişmək üçün toxunun" "Anladım" + "Vidcet ayarlarını dəyişin" "Tətbiqləri axtarın" "Tətbiqlər yüklənir…" "%1$s sorğusuna uyğun tətbiq tapılmadı" @@ -69,7 +71,7 @@ "İş tətbiqlərinin siyahısı" "Silin" "Sistemdən sil" - "Tətbiq infosu" + "Tətbiq haqqında" "Quraşdırın" "Tətbiq təklif olunmasın" "Proqnozlaşdırılan tətbiqi bərkidin" @@ -103,7 +105,7 @@ "Divar kağızı və üslub" "Home ayarları" "Admininiz tərəfindən deaktiv edilib" - "Əsas ekranın firlanmağına icazə verin" + "Əsas ekran çevrilsin" "Telefon çevrilən zaman" "Bildiriş nöqtələri" "Aktiv" @@ -112,7 +114,7 @@ "Bildiriş Nöqtələrini göstərmək üçün %1$s bildirişlərini aktiv edin" "Ayarları dəyişin" "Bildiriş nöqtələrini göstərin" - "Tətbiq ikonalarını Ana ekrana əlavə edin" + "Əsas ekrana nişanlar əlavə edilsin" "Yeni tətbiqlər üçün" "Naməlum" "Yığışdır" @@ -154,18 +156,16 @@ "Şəxsi" "İş" "İş profili" - "Şəxsi data ayrı olur və iş tətbiqlərindən gizlədilir" - "İş tətbiqləri və datasını İT admininiz görə bilir" - "Növbəti" + + "Anladım" - "İş profilinə fasilə verilib" - "İş tətbiqləri sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" - "İş profili durdurulub. İş tətbiqləri sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" + "İş tətbiqləri deaktivdir" + "İş tətbiqləriniz sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" + "İş tətbiqləri deaktivdir. İş tətbiqləriniz sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" "İş tətbiqləri nişanlanıb və İT administratorunuza görünür" "Anladım" - "İş tətbiqlərini durdurun" - "Aktiv edin" + "İş tətbiqlərini deaktiv edin" + "İş tətbiqlərini aktiv edin" "Filtr" - "İş tətbiqlərinə və bildirişlərə fasilə verin" "Alınmadı: %1$s" diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index 1417ea66d4..a5000765fb 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -46,7 +46,7 @@ "%1$s, %2$s" "Vidžeti" - "Pretraga" + "Pretražite" "Obrišite tekst iz okvira za pretragu" "Nije dostupan nijedan vidžet" "Nema rezultata pretrage" @@ -55,7 +55,9 @@ "Konverzacije" "Korisne informacije nadohvat ruke" "Da biste pronašli informacije bez otvaranja aplikacija, možete da dodate vidžete na početni ekran" + "Dodirnite da biste promenili podešavanja vidžeta" "Važi" + "Promenite podešavanja vidžeta" "Pretražite aplikacije" "Aplikacije se učitavaju…" "Nije pronađena nijedna aplikacija za „%1$s“" @@ -157,18 +159,16 @@ "Lične" "Poslovne" "Poslovni profil" - "Lični podaci su odvojeni i sakriveni od aplikacija za posao" - "IT administrator vidi poslovne aplikacije i podatke" - "Dalje" + + "Važi" - "Poslovni profil je pauziran" - "Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" - "Poslovni profil je pauziran. Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" + "Poslovne aplikacije su isključene" + "Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" + "Poslovne aplikacije su isključene. Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" "Poslovne aplikacije su označene značkom i IT administrator može da ih vidi" "Važi" - "Pauziraj poslovne aplikacije" - "Uključi" + "Isključi poslovne aplikacije" + "Uključi poslovne aplikacije" "Filter" - "Pauzirajte poslovne aplikacije i obaveštenja" "Nije uspelo: %1$s" diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index c0047ce133..aa8acd65d0 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -57,7 +57,9 @@ "Размовы" "Карысная інфармацыя ў вас пад рукой" "Каб не адкрываць праграмы для прагляду патрэбнай інфармацыі, дадайце віджэты на галоўны экран" + "Націсніце, каб змяніць налады віджэта" "Зразумела" + "Змяніць налады віджэта" "Пошук праграм" "Праграмы загружаюцца…" "Праграм, якія адпавядаюць запыту \"%1$s\", не знойдзена" @@ -160,18 +162,16 @@ "Асабістыя" "Працоўныя" "Працоўны профіль" - "Асабістыя даныя схаваны і паказваюцца адасоблена ад працоўных праграм" - "Ваш IТ-адміністратар мае доступ да працоўных праграм і іх даных" - "Далей" + + "Зразумела" - "Працоўны профіль прыпынены" - "Працоўныя праграмы не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да даных пра ваша месцазнаходжанне" - "Працоўны профіль прыпынены. Працоўныя праграмы не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да даных пра ваша месцазнаходжанне" + "Працоўныя праграмы выключаны" + "Працоўныя праграмы не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да даных пра ваша месцазнаходжанне" + "Працоўныя праграмы выключаны. Яны не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да вашага месцазнаходжання" "Працоўныя праграмы маюць значкі і бачныя IT-адміністратару" "Зразумела" - "Прыпыніць працоўныя праграмы" - "Уключыць" + "Выключыць працоўныя праграмы" + "Уключыць працоўныя праграмы" "Фільтр" - "Прыпыніць працоўныя праграмы і апавяшчэнні" "Не ўдалося: %1$s" diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 69f20747b7..117ee45e7b 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -53,7 +53,9 @@ "Разговори" "Лесен достъп до полезна информация" "За да получавате информация, без да отваряте приложенията, можете да добавите приспособления към началния екран" + "Докоснете, за да промените настройките на приспособлението" "Разбрах" + "Промяна на настройките на приспособлението" "Търсене в приложенията" "Приложенията се зареждат…" "Няма намерени приложения, съответстващи на „%1$s“" @@ -154,18 +156,16 @@ "Лични" "Служебни" "Служебен потребителски профил" - "Личните данни се съхраняват отделно и са скрити от служебните приложения" - "Служебните приложения и данни са видими за системния ви администратор" - "Напред" + + "Разбрах" - "Служебният потребителски профил е поставен на пауза" - "Служебните приложения не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" - "Служебният потребителски профил е поставен на пауза. Служебните приложения не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" + "Служебните ви приложения са изключени" + "Служебните ви приложения не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" + "Служебните ви приложения са изключени. Те не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" "Служебните приложения са означени със значка и са видими за системния администратор" "Разбрах" - "Поставяне на пауза на служебните приложения" - "Включване" + "Изключване на служебните приложения" + "Включване на служебните приложения" "Филтър" - "Поставете на пауза служебните приложения и известия" "Неуспешно: %1$s" diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index 8c8292d25b..e88e4b923d 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -53,7 +53,11 @@ "কথোপকথন" "সহজেই দরকারি তথ্য পান" "অ্যাপ না খুলে তথ্য পাওয়ার জন্য, আপনার হোম স্ক্রিনে উইজেট যোগ করতে পারেন" + + "বুঝেছি" + + "অ্যাপ খুঁজুন" "অ্যাপ লোড হচ্ছে…" "\"%1$s\" এর সাথে মেলে এমন কোনো অ্যাপ পাওয়া যায়নি" @@ -128,7 +132,7 @@ "এখানে আইটেম সরান" "হোম স্ক্রীনে আইটেম যোগ করা হয়েছে" "আইটেম সরানো হয়েছে" - "ফিরে যান" + "ফিরিয়ে আনুন" "আইটেম সরান" "সারি %1$s কলাম %2$s এ সরান" "অবস্থানে সরান %1$s" @@ -154,18 +158,16 @@ "ব্যক্তিগত" "অফিস" "অফিসের প্রোফাইল" - "অফিসের অ্যাপের থেকে ব্যক্তিগত ডেটা আলাদা করে লুকিয়ে রাখা হয়" - "আপনার আইটি অ্যাডমিন অফিস অ্যাপ এবং ডেটা দেখতে পাবেন" - "পরের" + + "বুঝেছি" - "অফিস প্রোফাইল বন্ধ করা আছে" - "অফিসের অ্যাপ আপনাকে নোটিফিকেশন পাঠাতে পারবে না। এছাড়া, ব্যাটারি ব্যবহার করতে বা লোকেশন অ্যাক্সেস করতে পারবে না" - "অফিসের প্রোফাইল পজ করা আছে। অফিসের অ্যাপ আপনাকে নোটিফিকেশন পাঠাতে পারবে না। এছাড়া, ব্যাটারি ব্যবহার করতে বা লোকেশন অ্যাক্সেস করতে পারবে না" + "অফিসের অ্যাপ বন্ধ আছে" + "অফিসের অ্যাপ আপনাকে নোটিফিকেশন পাঠাতে পারবে না। এছাড়া, ব্যাটারি ব্যবহার করতে বা লোকেশন অ্যাক্সেস করতে পারবে না" + "অফিসের অ্যাপ বন্ধ আছে। আপনার অফিসের অ্যাপ আপনাকে বিজ্ঞপ্তি পাঠাতে, ব্যাটারি ব্যবহার করতে বা লোকেশন অ্যাক্সেস করতে পারবে না" "অফিসের অ্যাপে ব্যাজ যোগ করা হয়েছে এবং আপনার আইটি অ্যাডমিন সেটি দেখতে পাবেন" "বুঝেছি" - "অফিসের অ্যাপ পজ করুন" - "চালু করুন" + "অফিসের অ্যাপ বন্ধ করুন" + "অফিসের অ্যাপ চালু করুন" "ফিল্টার" - "অফিস অ্যাপ এবং বিজ্ঞপ্তি বন্ধ করুন" "কাজটি করা যায়নি: %1$s" diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index bfec27d709..ed7050fa30 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -55,7 +55,9 @@ "Razgovori" "Korisne informacije nadohvat ruke" "Da dobijete informacije bez otvaranja aplikacija, možete dodati vidžete na početni ekran" + "Dodirnite da promijenite postavke vidžeta" "Razumijem" + "Promjena postavki vidžeta" "Pretražite aplikacije" "Aplikacije se učitavaju…" "Nije pronađena nijedna aplikacija za upit \"%1$s\"" @@ -64,7 +66,7 @@ "Obavještenja" "Dodirnite i zadržite da pomjerite prečicu." "Dvaput dodirnite i zadržite da pomjerite prečicu ili da koristite prilagođene radnje." - "Na ovom početnom ekranu nema više prostora." + "Nema više prostora na ovom početnom ekranu." "Nema više prostora u ladici Omiljeno" "Lista aplikacija" "Lista ličnih aplikacija" @@ -157,18 +159,16 @@ "Lične" "Poslovne" "Radni profil" - "Lični podaci su odvojeni i sakriveni od poslovnih aplikacija" - "Vaš IT administrator može vidjeti poslovne aplikacije i podatke" - "Sljedeće" + + "Razumijem" - "Radni profil je pauziran" - "Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju niti pristupiti vašoj lokaciji" - "Radni profil je pauziran. Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju niti pristupiti vašoj lokaciji" + "Poslovne aplikacije su isključene" + "Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju niti pristupiti vašoj lokaciji" + "Poslovne aplikacije su isključene. Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju ili pristupiti vašoj lokaciji" "Poslovne aplikacije su označene i vaš IT administrator ih može vidjeti" "Razumijem" - "Pauziraj poslovne aplikacije" - "Uključi" + "Isključi poslovne aplikacije" + "Uključi poslovne aplikacije" "Filtrirajte" - "Pauzirajte poslovne aplikacije i obavještenja" "Nije uspjelo: %1$s" diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index d35bfc66da..306e0c220f 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -53,7 +53,9 @@ "Converses" "Informació útil a l\'abast de la mà" "Per obtenir informació sense obrir les aplicacions, pots afegir widgets a la pantalla d\'inici" + "Toca per canviar la configuració del widget" "Entesos" + "Canvia la configuració del widget" "Cerca aplicacions" "S\'estan carregant les aplicacions…" "No s\'ha trobat cap aplicació que coincideixi amb \"%1$s\"" @@ -154,18 +156,16 @@ "Personal" "Treball" "Perfil de treball" - "Les dades personals s\'oculten i se separen de les aplicacions de treball" - "L\'administrador de TI pot veure les teves dades i aplicacions de treball" - "Següent" + + "Entesos" - "El perfil de treball està en pausa" - "Les aplicacions de treball no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació" - "El perfil de treball està en pausa. Les aplicacions de treball no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació." + "Les aplicacions de treball estan desactivades" + "Les aplicacions de treball no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació" + "Les aplicacions de treball estan desactivades: no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació" "Les aplicacions de treball tenen una insígnia i són visibles per al teu administrador de TI" "Entesos" - "Posa en pausa les aplicacions de treball" - "Activa" + "Desactiva les aplicacions de treball" + "Activa les aplicacions de treball" "Filtra" - "Posa en pausa les aplicacions i notificacions de treball" "Error: %1$s" diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 558d22f812..70c511fd95 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -57,7 +57,9 @@ "Konverzace" "Užitečné informace na dosah" "Pokud chcete mít informace k dispozici bez otevírání aplikací, můžete si na plochu přidat widgety" + "Klepnutím změníte nastavení widgetu" "Rozumím" + "Změnit nastavení widgetu" "Hledat v aplikacích" "Načítání aplikací…" "Dotazu „%1$s“ neodpovídají žádné aplikace" @@ -118,7 +120,7 @@ "Chcete-li zobrazovat puntíky s oznámením, zapněte oznámení z aplikace %1$s" "Změnit nastavení" "Zobrazovat puntíky s oznámením" - "Přidat na plochu ikony aplikací" + "Přidávat na plochu ikony aplikací" "U nových aplikací" "Neznámé" "Odstranit" @@ -160,18 +162,16 @@ "Osobní" "Pracovní" "Pracovní profil" - "Osobní údaje jsou oddělené a před pracovními aplikacemi jsou skryty" - "Pracovní aplikace a údaje může vidět váš administrátor IT" - "Další" + + "Rozumím" - "Pracovní profil je pozastaven" - "Pracovní aplikace vám nemohou zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" - "Pracovní profil je pozastaven. Pracovní aplikace vám nemohou zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" + "Pracovní aplikace jsou vypnuté" + "Pracovní aplikace vám nemohou zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" + "Pracovní aplikace jsou vypnuté. Nemohou vám zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" "Pracovní aplikace jsou označené a viditelné vašemu administrátorovi IT" "OK" - "Pozastavit pracovní aplikace" - "Zapnout" + "Vypnout pracovní aplikace" + "Zapnout pracovní aplikace" "Filtr" - "Pozastavit pracovní aplikace a oznámení" "Selhalo: %1$s" diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index dea0183e88..5087ac4fb0 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -53,7 +53,9 @@ "Samtaler" "Nyttige oplysninger lige ved hånden" "Hvis du vil have oplysninger uden at åbne apps, kan du føje widgets til din startskærm" + "Tryk for at ændre widgetindstillinger" "OK" + "Skift widgetindstillinger" "Søg efter apps" "Indlæser apps…" "Der blev ikke fundet nogen apps, som matcher \"%1$s\"" @@ -101,11 +103,11 @@ "Mappe: %1$s, %2$d eller flere elementer" "Baggrunde" "Baggrund og stil" - "Indstillinger for startskærm" + "Indst. for startskærm" "Deaktiveret af din administrator" "Tillad rotation af startskærmen" "Når telefonen roteres" - "Notifikationscirkler" + "Notifikationsprikker" "Til" "Fra" "Kræver adgang til notifikationer" @@ -154,18 +156,16 @@ "Personlige" "Arbejde" "Arbejdsprofil" - "Personlige data er adskilt og skjult fra arbejdsapps" - "Arbejdsapps og -data er synlige for din it-administrator" - "Næste" + + "OK" - "Arbejdsprofilen er sat på pause" - "Arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din placering" - "Arbejdsprofilen er sat på pause. Arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din placering" + "Arbejdsapps er deaktiveret" + "Arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din lokation" + "Arbejdsapps er deaktiveret. Dine arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din lokation" "Arbejdsapps har badges og kan ses af din it-administrator" "OK" - "Sæt arbejdsapps på pause" - "Aktivér" + "Deaktiver arbejdsapps" + "Aktivér arbejdsapps" "Filter" - "Sæt arbejdsapps og notifikationer på pause" "Mislykket: %1$s" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 72929cf869..6ff90222ae 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -53,7 +53,9 @@ "Unterhaltungen" "Praktische Informationen – immer zur Hand" "Wenn du Informationen erhalten möchtest, ohne Apps zu öffnen, kannst du deinem Startbildschirm Widgets hinzufügen" + "Tippen, um die Widget-Einstellungen zu ändern" "OK" + "Widget-Einstellungen ändern" "Apps finden" "Apps werden geladen…" "Keine Apps für \"%1$s\" gefunden" @@ -72,7 +74,7 @@ "App-Info" "Installieren" "App nicht vorschlagen" - "Vorgeschlagene App anpinnen" + "Vorgeschlagene App fixieren" "Verknüpfungen installieren" "Ermöglicht einer App das Hinzufügen von Verknüpfungen ohne Eingreifen des Nutzers" "Einstellungen und Verknüpfungen auf dem Startbildschirm lesen" @@ -154,18 +156,16 @@ "Privat" "Geschäftlich" "Arbeitsprofil" - "Personenbezogene Daten sind für geschäftliche Apps nicht sichtbar oder zugänglich" - "Geschäftliche Apps und Daten können von deinem IT-Administrator eingesehen werden" - "Weiter" + + "OK" - "Arbeitsprofil pausiert" - "Geschäftliche Apps können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen" - "Das Arbeitsprofil ist pausiert. Geschäftliche Apps können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen." + "Geschäftliche Apps sind deaktiviert" + "Deine geschäftlichen Apps können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen" + "Geschäftliche Apps sind deaktiviert. Sie können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen." "Geschäftliche Apps sind gekennzeichnet und für deinen IT-Administrator sichtbar" "OK" - "Geschäftliche Apps pausieren" - "Aktivieren" + "Geschäftliche Apps deaktivieren" + "Geschäftliche Apps aktivieren" "Filter" - "Geschäftliche Apps und Benachrichtigungen pausieren" "Fehler: %1$s" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 4e8ecf951f..b6b44f03e1 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -53,7 +53,9 @@ "Συζητήσεις" "Χρήσιμες πληροφορίες στη διάθεσή σας" "Για να λάβετε πληροφορίες χωρίς να ανοίξετε εφαρμογές, μπορείτε να προσθέσετε γραφικά στοιχεία στην αρχική σας οθόνη." + "Πατήστε για αλλαγή των ρυθμίσεων του γραφικού στοιχείου" "Το κατάλαβα" + "Αλλαγή ρυθμίσεων γραφικού στοιχείου" "Αναζήτηση εφαρμογών" "Φόρτωση εφαρμογών…" "Δεν βρέθηκαν εφαρμογές αντιστοίχισης για \"%1$s\"" @@ -154,18 +156,16 @@ "Προσωπικές" "Εργασίας" "Προφίλ εργασίας" - "Τα προσωπικά δεδομένα βρίσκονται σε ξεχωριστή θέση και δεν είναι ορατά από τις εφαρμογές εργασίας" - "Οι εφαρμογές εργασίας και τα δεδομένα τους είναι ορατά στον διαχειριστή IT" - "Επόμενο" + + "Το κατάλαβα" - "Το προφίλ εργασίας έχει τεθεί σε παύση" - "Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας." - "Το προφίλ εργασίας έχει τεθεί σε παύση. Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας." + "Οι εφαρμογές εργασιών είναι απενεργοποιημένες" + "Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας" + "Οι εφαρμογές εργασιών είναι απενεργοποιημένες. Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας" "Οι εφαρμογές εργασιών φέρουν σήμα και είναι ορατές στον διαχειριστή IT σας" "Το κατάλαβα" - "Παύση εφαρμογών εργασιών" - "Ενεργοποίηση" + "Απενεργοποίηση εφαρμογών εργασιών" + "Ενεργοποίηση εφαρμογών εργασιών" "Φίλτρο" - "Παύση εφαρμογών εργασίας και ειδοποιήσεων" "Αποτυχία: %1$s" diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index ecf68038be..0e585f1032 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -53,7 +53,9 @@ "Conversations" "Useful info at your fingertips" "To get info without opening apps, you can add widgets to your home screen" + "Tap to change widget settings" "OK" + "Change widget settings" "Search apps" "Loading apps…" "No apps found matching \'%1$s\'" @@ -154,18 +156,16 @@ "Personal" "Work" "Work profile" - "Personal data is separate and hidden from work apps" - "Work apps and data are visible to your IT admin" - "Next" + + "OK" - "Work profile is paused" - "Work apps can’t send you notifications, use your battery or access your location" - "Work profile is paused. Work apps can’t send you notifications, use your battery or access your location" + "Work apps are off" + "Your work apps can’t send you notifications, use your battery or access your location" + "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" "OK" - "Pause work apps" - "Turn on" + "Turn off work apps" + "Turn on work apps" "Filter" - "Pause work apps and notifications" "Failed: %1$s" diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index ecf68038be..0e585f1032 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -53,7 +53,9 @@ "Conversations" "Useful info at your fingertips" "To get info without opening apps, you can add widgets to your home screen" + "Tap to change widget settings" "OK" + "Change widget settings" "Search apps" "Loading apps…" "No apps found matching \'%1$s\'" @@ -154,18 +156,16 @@ "Personal" "Work" "Work profile" - "Personal data is separate and hidden from work apps" - "Work apps and data are visible to your IT admin" - "Next" + + "OK" - "Work profile is paused" - "Work apps can’t send you notifications, use your battery or access your location" - "Work profile is paused. Work apps can’t send you notifications, use your battery or access your location" + "Work apps are off" + "Your work apps can’t send you notifications, use your battery or access your location" + "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" "OK" - "Pause work apps" - "Turn on" + "Turn off work apps" + "Turn on work apps" "Filter" - "Pause work apps and notifications" "Failed: %1$s" diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index ecf68038be..0e585f1032 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -53,7 +53,9 @@ "Conversations" "Useful info at your fingertips" "To get info without opening apps, you can add widgets to your home screen" + "Tap to change widget settings" "OK" + "Change widget settings" "Search apps" "Loading apps…" "No apps found matching \'%1$s\'" @@ -154,18 +156,16 @@ "Personal" "Work" "Work profile" - "Personal data is separate and hidden from work apps" - "Work apps and data are visible to your IT admin" - "Next" + + "OK" - "Work profile is paused" - "Work apps can’t send you notifications, use your battery or access your location" - "Work profile is paused. Work apps can’t send you notifications, use your battery or access your location" + "Work apps are off" + "Your work apps can’t send you notifications, use your battery or access your location" + "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" "OK" - "Pause work apps" - "Turn on" + "Turn off work apps" + "Turn on work apps" "Filter" - "Pause work apps and notifications" "Failed: %1$s" diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index ecf68038be..0e585f1032 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -53,7 +53,9 @@ "Conversations" "Useful info at your fingertips" "To get info without opening apps, you can add widgets to your home screen" + "Tap to change widget settings" "OK" + "Change widget settings" "Search apps" "Loading apps…" "No apps found matching \'%1$s\'" @@ -154,18 +156,16 @@ "Personal" "Work" "Work profile" - "Personal data is separate and hidden from work apps" - "Work apps and data are visible to your IT admin" - "Next" + + "OK" - "Work profile is paused" - "Work apps can’t send you notifications, use your battery or access your location" - "Work profile is paused. Work apps can’t send you notifications, use your battery or access your location" + "Work apps are off" + "Your work apps can’t send you notifications, use your battery or access your location" + "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" "OK" - "Pause work apps" - "Turn on" + "Turn off work apps" + "Turn on work apps" "Filter" - "Pause work apps and notifications" "Failed: %1$s" diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index 9475db92f1..9add9f4820 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -53,7 +53,9 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎Conversations‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‏‎Useful info at your fingertips‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎To get info without opening apps, you can add widgets to your Home screen‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎Tap to change widget settings‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‎Got it‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‏‎‎Change widget settings‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎Search apps‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎Loading apps…‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎No apps found matching \"‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎\"‎‏‎‎‏‎" @@ -154,18 +156,16 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‏‎‏‎‎Personal‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎Work‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎Work profile‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎Personal data is separate & hidden from work apps‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎Work apps & data are visible to your IT admin‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‎Next‎‏‎‎‏‎" + + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎Got it‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‏‎Work profile is paused‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‎‎‎Work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎Work profile is paused. Work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎Work apps are off‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎Your work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎Work apps are off. Your work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎Work apps are badged and visible to your IT admin‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎Got it‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎Pause work apps‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎Turn on‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‎‎Turn off work apps‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‎Turn on work apps‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‎Filter‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎Pause work apps and notifications‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎Failed: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 1f9d5f1dbd..53e7637707 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -48,12 +48,14 @@ "Borra el texto del cuadro de búsqueda" "No hay widgets disponibles" "La búsqueda no arrojó resultados" - "Personal" + "Personales" "Trabajo" "Conversaciones" "Información útil a tu alcance" "Para recibir información de apps sin abrirlas, puedes agregar widgets a la pantalla principal" + "Presiona para cambiar la configuración del widget" "Entendido" + "Cambiar la configuración del widget" "Buscar apps" "Cargando apps…" "No hay apps que coincidan con \"%1$s\"" @@ -154,18 +156,16 @@ "Personales" "De trabajo" "Perfil de trabajo" - "Los datos personales están separados y ocultos de las apps de trabajo" - "El administrador de TI puede ver las apps de trabajo y los datos" - "Siguiente" + + "Entendido" - "El perfil de trabajo está en pausa" - "Las apps de trabajo no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" - "El perfil de trabajo está en pausa. Las apps de trabajo no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" + "Las apps de trabajo están desactivadas" + "Las apps de trabajo no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" + "Las apps de trabajo están desactivadas y, por ende, no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" "Las apps de trabajo tienen una insignia y el administrador de IT las puede ver" "Entendido" - "Detener apps de trabajo" - "Activar" + "Desactivar las apps de trabajo" + "Activar las apps de trabajo" "Filtro" - "Pon en pausa las apps de trabajo y las notificaciones" "Error: %1$s" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 45061d5882..61bd39d38c 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -48,12 +48,14 @@ "Borrar texto del cuadro de búsqueda" "No hay widgets disponibles" "No hay resultados de búsqueda" - "Personal" + "Personales" "Trabajo" "Conversaciones" "Información útil al alcance de la mano" "Para recibir información sin abrir aplicaciones, puedes añadir widgets a la pantalla de inicio." + "Toca para cambiar los ajustes del widget" "Entendido" + "Cambiar ajustes del widget" "Buscar aplicaciones" "Cargando aplicaciones…" "No se han encontrado aplicaciones que contengan \"%1$s\"" @@ -106,7 +108,7 @@ "Permitir rotación de la pantalla de inicio" "Al girar el teléfono" "Puntos de notificación" - "Activados" + "Activado" "Desactivadas" "Se necesita acceso a las notificaciones" "Para mostrar puntos de notificación, activa las notificaciones de %1$s" @@ -154,18 +156,16 @@ "Personal" "Trabajo" "Perfil de trabajo" - "Los datos personales están separados y ocultos de las aplicaciones de trabajo" - "Tu administrador de TI puede ver tus aplicaciones y datos de trabajo" - "Siguiente" + + "Entendido" - "El perfil de trabajo está en pausa" - "Las aplicaciones de trabajo no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" - "El perfil de trabajo está en pausa. Las aplicaciones de trabajo no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" + "Las aplicaciones de trabajo están desactivadas" + "Tus aplicaciones de trabajo no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" + "Las aplicaciones de trabajo están desactivadas, por lo que no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" "Las aplicaciones de trabajo tienen una insignia y tu administrador de TI las puede ver" "Entendido" - "Pausar aplicaciones de trabajo" - "Activar" + "Desactivar aplicaciones de trabajo" + "Activar aplicaciones de trabajo" "Filtro" - "Pausa apps y notificaciones de trabajo" "Se ha producido un error: %1$s" diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index ef27c2b0a6..e0c8733820 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -48,12 +48,14 @@ "Kustuta otsingukastis olev tekst" "Ühtki vidinat pole saadaval" "Otsingutulemused puuduvad" - "Isiklik" + "Isiklikud" "Töö" "Vestlused" "Kasulik teave on teie käeulatuses" "Teabe saamiseks rakendusi avamata võite oma avakuvale lisada vidinaid" + "Puudutage vidina seadete muutmiseks" "Selge" + "Vidina seadete muutmine" "Otsige rakendusi" "Rakenduste laadimine …" "Päringule „%1$s” ei vastanud ükski rakendus" @@ -62,7 +64,7 @@ "Märguanded" "Otsetee teisaldamiseks puudutage ja hoidke all." "Otsetee teisaldamiseks või kohandatud toimingute kasutamiseks topeltpuudutage ja hoidke all." - "Sellel avaekraanil pole enam ruumi." + "Sellel avakuval pole enam ruumi." "Salves Lemmikud pole rohkem ruumi" "Rakenduste loend" "Isiklike rakenduste loend" @@ -154,18 +156,16 @@ "Isiklik" "Töö" "Tööprofiil" - "Isiklikke andmeid hoitakse töörakendustest eraldi" - "Teie IT-administraator näeb töörakendusi ja -andmeid" - "Järgmine" + + "Selge" - "Tööprofiil on peatatud" - "Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda" - "Tööprofiil on peatatud. Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda" + "Töörakendused on välja lülitatud" + "Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda" + "Töörakendused on välja lülitatud. Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda." "Töörakendustel on märk ja need on teie IT-administraatorile nähtavad" "Selge" - "Peata töörakendused" - "Lülita sisse" + "Lülita töörakendused välja" + "Lülita töörakendused sisse" "Filter" - "Peatage töörakendused ja märguanded" "Nurjus: %1$s" diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 735f6e332f..eb038bae2b 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -42,7 +42,7 @@ %1$d lasterbide %1$d lasterbide - "%1$s: %2$s" + "%1$s, %2$s" "Widgetak" "Bilatu" "Garbitu bilaketa-koadroko testua" @@ -52,8 +52,10 @@ "Lanekoak" "Elkarrizketak" "Informazio erabilgarria beti eskura" - "Aplikazioa ireki beharrik gabe informazioa zuzenean jasotzeko, gehitu widgetak hasierako pantailan" + "Aplikaziorik ireki beharrik gabe informazioa zuzenean jasotzeko, gehitu widgetak hasierako pantailan" + "Sakatu hau widgeten ezarpenak aldatzeko" "Ados" + "Aldatu widgeten ezarpenak" "Bilatu aplikazioetan" "Aplikazioak kargatzen…" "Ez da aurkitu \"%1$s\" bilaketaren emaitzarik" @@ -154,18 +156,16 @@ "Pertsonalak" "Lanekoak" "Laneko profila" - "Datu pertsonalak ez daude laneko aplikazioetan, eta ezin dira haien bidez ikusi" - "IKT saileko administratzaileak laneko aplikazioak eta datuak ikus ditzake" - "Hurrengoa" + + "Ados" - "Laneko profila pausatuta dago" - "Laneko aplikazioek ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu" - "Laneko profila pausatuta dago. Laneko aplikazioek ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu." + "Laneko aplikazioak desaktibatuta daude" + "Laneko aplikazioek ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu" + "Laneko aplikazioak desaktibatuta daude. Hori dela eta, ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu." "Laneko aplikazioek bereizgarriak dituzte, eta IKT saileko administratzaileak ikus ditzake" "Ados" - "Pausatu laneko aplikazioak" - "Aktibatu" + "Desaktibatu laneko aplikazioak" + "Aktibatu laneko aplikazioak" "Iragazi" - "Pausatu laneko aplikazioak eta jakinarazpenak" "Huts egin du: %1$s" diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 29ada372e5..0926e48f81 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -48,12 +48,14 @@ "پاک کردن نوشتار از چارگوش جستجو" "ابزارکی دردسترس نیست" "بدون نتیجه جستجو" - "شخصی" + "ابزارک‌های شخصی" "کار" "مکالمه‌ها" "دسترسی آسان به اطلاعات سودمند" "با افزودن ابزارک‌ها به «صفحه اصلی» می‌توانید اطلاعات را بدون باز کردن برنامه‌ها دریافت کنید" + "برای تغییر تنظیمات ابزارک، ضربه بزنید" "متوجه‌ام" + "تغییر تنظیمات ابزارک" "جستجوی برنامه‌ها" "درحال بارگیری برنامه‌‌ها…" "هیچ برنامه‌ای در مطابقت با «%1$s» پیدا نشد" @@ -154,18 +156,16 @@ "شخصی" "کاری" "نمایه کاری" - "داده‌های شخصی از برنامه‌های کاری جدا و از دسترس آن‌ها پنهان هستند" - "برنامه‌های کاری و داده‌ها برای سرپرست فناوری اطلاعات نمایان هستند" - "بعدی" + + "متوجه‌ام" - "نمایه کاری موقتاً متوقف شده است" - "برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" - "نمایه کاری موقتاً متوقف شده است. برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" + "برنامه‌های کاری خاموش است" + "برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" + "برنامه‌های کاری خاموش است. برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" "برنامه‌های کاری دارای نشان هستند و سرپرست سیستم می‌تواند آن‌ها را ببیند." "متوجه‌ام" - "توقف موقت برنامه‌های کاری" - "روشن کردن" + "خاموش کردن برنامه‌های کاری" + "روشن کردن برنامه‌های کاری" "فیلتر" - "توقف موقت برنامه‌های کاری و اعلان‌ها" "ناموفق بود: %1$s" diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index c4d0655d78..4ebc8d279b 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -48,12 +48,14 @@ "Tyhjennä teksti hakukentästä" "Ei widgetejä käytettävissä" "Ei hakutuloksia" - "Henkilökohtainen" + "Henkilökohtaiset" "Työ" "Keskustelut" "Hyödyllisiä tietoja käden ulottuvilla" "Jos haluat nähdä tietoja avaamatta sovelluksia, voit lisätä aloitusnäytölle widgetejä" + "Napauta, niin voit muuttaa widgetin asetuksia" "OK" + "Muuta widgetin asetuksia" "Hae sovelluksia" "Ladataan sovelluksia…" "%1$s ei palauttanut sovelluksia." @@ -154,18 +156,16 @@ "Henkilökohtaiset" "Työsovellukset" "Työprofiili" - "Henkilökohtainen data pidetään erillään, piilotettuna työsovelluksilta" - "Työsovellukset ja ‑data näkyvät IT-järjestelmänvalvojalle" - "Seuraava" + + "Selvä" - "Työprofiilin käyttö on keskeytetty" - "Työsovellukset eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai paikantaa sijaintiasi" - "Työprofiilin käyttö on keskeytetty. Työsovellukset eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai paikantaa sijaintiasi" + "Työsovellukset ovat pois päältä" + "Työsovellukset eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai paikantaa sijaintiasi" + "Työsovellukset ovat pois päältä. Ne eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai sijaintiasi" "Työsovellukset on merkitty ja ne näkyvät IT-järjestelmänvalvojalle" "OK" - "Keskeytä työsovellusten käyttö" - "Laita päälle" + "Laita työsovellukset pois päältä" + "Laita työsovellukset päälle" "Suodatin" - "Keskeytä työsovellukset ja ‑ilmoitukset" "Epäonnistui: %1$s" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index e7801c9571..0a66787554 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -53,7 +53,9 @@ "Conversations" "Renseignements utiles à portée de main" "Pour obtenir des renseignements sans ouvrir aucune application, vous pouvez ajouter des widgets à votre écran d\'accueil" + "Touchez pour modifier les paramètres du widget" "OK" + "Modifier les paramètres du widget" "Rechercher dans les applications" "Chargement des applications en cours…" "Aucune application trouvée correspondant à « %1$s »" @@ -127,7 +129,7 @@ "Ajouter à l\'écran d\'accueil" "Déplacer l\'élément ici" "Élément ajouté à l\'écran d\'accueil" - "Élément supprimé" + "Élément retiré" "Annuler" "Déplacer l\'élément" "Déplacer vers rangée %1$s colonne %2$s" @@ -154,18 +156,16 @@ "Personnel" "Travail" "Profil professionnel" - "Les données personnelles sont distinctes et masquées des applications professionnelles" - "Les applications et les données professionnelles sont visibles pour votre administrateur informatique" - "Suivant" + + "OK" - "Le profil professionnel est interrompu" - "Les applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" - "Le profil professionnel est interrompu. Les applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" + "Les applications professionnelles sont désactivées" + "Les applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" + "Les applications professionnelles sont désactivées. Vos applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" "Les applications professionnelles sont indiquées par un badge et sont visibles pour votre administrateur informatique" "OK" - "Mettre en pause les applications professionnelles" - "Activer" + "Désactiver les applications professionnelles" + "Activer les applications professionnelles" "Filtrer" - "Interrompre les applications et les notifications professionnelles" "Échec : %1$s" diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index adc04fd0d3..f08f7eb0ba 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -53,7 +53,9 @@ "Conversations" "Infos utiles à portée de main" "Pour obtenir des infos sans ouvrir d\'applis, vous pouvez ajouter des widgets à votre écran d\'accueil" + "Appuyez pour modifier les paramètres du widget" "OK" + "Modifier les paramètres du widget" "Rechercher dans les applications" "Chargement des applications…" "Aucune application ne correspond à la requête \"%1$s\"" @@ -112,7 +114,7 @@ "Pour afficher les pastilles de notification, activez les notifications de l\'application %1$s" "Modifier les paramètres" "Afficher les pastilles de notification" - "Ajouter icônes d\'applis à l\'écran d\'acc." + "Ajouter les icônes des applis à l\'écran d\'accueil" "Pour les nouvelles applications" "Inconnu" "Supprimer" @@ -154,18 +156,16 @@ "Personnelles" "Professionnelles" "Profil professionnel" - "Les applications professionnelles n\'ont pas accès aux données personnelles" - "Votre administrateur informatique a accès à vos applications et données professionnelles" - "Suivant" + + "OK" - "Profil professionnel en pause" - "Les applis professionnelles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position" - "Profil professionnel en pause. Les applis professionnelles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position" + "Les applis professionnelles sont désactivées" + "Vos applis professionnelles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position" + "Vos applis professionnelles sont désactivées. Elles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position." "Les applis professionnelles sont identifiées par un badge et votre administrateur informatique peut les voir" "OK" - "Mettre en pause les applis professionnelles" - "Activer" + "Désactiver les applis professionnelles" + "Activer les applications professionnelles" "Filtre" - "Mettre en pause vos applications et notifications professionnelles" "Échec : %1$s" diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 615c644cc9..6a7a6ef10e 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -53,7 +53,9 @@ "Conversas" "Información útil ao teu alcance" "Se queres obter información sen abrir as aplicacións, podes engadir widgets á pantalla de inicio" + "Toca para cambiar a configuración do widget" "Entendido" + "Cambiar configuración do widget" "Buscar aplicacións" "Cargando aplicacións…" "Non se atoparon aplicacións que coincidan con \"%1$s\"" @@ -154,18 +156,16 @@ "Persoal" "Traballo" "Perfil de traballo" - "Os datos persoais sepáranse e ocúltanse das aplicacións do traballo" - "O teu administrador de TI pode ver as túas aplicacións e datos do traballo" - "Seguinte" + + "Entendido" - "O perfil de traballo está en pausa" - "As aplicacións do traballo non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" - "O perfil de traballo está en pausa. As aplicacións do traballo non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" + "As aplicacións do traballo están desactivadas" + "As aplicacións do traballo non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" + "As aplicacións do traballo están desactivadas e non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" "O administrador de TI pode ver as aplicacións do traballo e engadirlles indicadores" "Entendido" - "Pór en pausa aplicacións do traballo" - "Activar" + "Desactivar aplicacións do traballo" + "Activar aplicacións do traballo" "Filtra" - "Pon en pausa as aplicacións e as notificacións do traballo" "Erro: %1$s" diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index d9ffa68a3b..4b3821ce03 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -53,7 +53,11 @@ "વાતચીતો" "ઉપયોગી માહિતી તમારી આંગળીના ટેરવે" "ઍપને ખોલ્યા વિના માહિતી મેળવવા માટે, તમે તમારી હોમ સ્ક્રીન પર વિજેટ ઉમેરી શકો છો" + + "સમજાઈ ગયું" + + "શોધ ઍપ્લિકેશનો" "ઍપ્લિકેશનો લોડ કરી રહ્યું છે…" "\"%1$s\"થી મેળ ખાતી કોઈ ઍપ્લિકેશનો મળી નથી" @@ -113,7 +117,7 @@ "સેટિંગ્સ બદલો" "નોટિફિકેશન માટેના ચિહ્ન બતાવો" "ઍપના આઇકન હોમ સ્ક્રીન પર ઉમેરો" - "નવી ઍપ્લિકેશનો માટે" + "નવી ઍપ માટે" "અજાણ્યો" "દૂર કરો" "શોધો" @@ -154,18 +158,16 @@ "મનગમતી ઍપ" "ઑફિસની ઍપ" "ઑફિસની પ્રોફાઇલ" - "વ્યક્તિગત ડેટા ઑફિસ માટેની ઍપથી અલગ અને છુપાવીને રાખેલો છે" - "ઑફિસ માટેની ઍપ અને ડેટા તમારા IT વ્યવસ્થાપકને દેખાય છે" - "આગળ" + + "સમજાઈ ગયું" - "ઑફિસની પ્રોફાઇલ થોભાવી છે" - "ઑફિસ માટેની ઍપ તમને નોટિફિકેશન મોકલી શકતી નથી, તમારી બૅટરી વાપરી શકતી નથી કે તમારું સ્થાન ઍક્સેસ કરી શકતી નથી" - "ઑફિસની પ્રોફાઇલ થોભાવી છે. ઑફિસ માટેની ઍપ તમને નોટિફિકેશન મોકલી શકતી નથી, તમારી બૅટરી વાપરી શકતી નથી કે તમારું સ્થાન ઍક્સેસ કરી શકતી નથી" + "ઑફિસ માટેની ઍપ બંધ છે" + "ઑફિસ માટેની તમારી ઍપ તમને નોટિફિકેશન મોકલી શકતી નથી, તમારી બૅટરી વાપરી શકતી નથી કે તમારું સ્થાન ઍક્સેસ કરી શકતી નથી" + "ઑફિસ માટેની ઍપ બંધ છે. ઑફિસ માટેની તમારી ઍપ તમને નોટિફિકેશન મોકલી શકતી નથી, તમારી બૅટરી વાપરી શકતી નથી કે તમારું સ્થાન ઍક્સેસ કરી શકતી નથી" "ઑફિસની ઍપને બૅજ આપેલા હોય છે અને તમારા IT વ્યવસ્થાપક તેમને જોઈ શકે છે" "સમજાઈ ગયું" - "ઑફિસની ઍપ થોભાવો" - "ચાલુ કરો" + "ઑફિસ માટેની ઍપ બંધ કરો" + "ઑફિસ માટેની ઍપ ચાલુ કરો" "ફિલ્ટર કરો" - "ઑફિસ માટેની ઍપ અને નોટિફિકેશન થોભાવો" "નિષ્ફળ: %1$s" diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 5cfb7dbf1b..8af8f066ad 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -53,7 +53,9 @@ "बातचीत" "काम की जानकारी आसानी से पाएं" "ऐप्लिकेशन को खोले बिना उनकी जानकारी पाने के लिए, आप होम स्क्रीन पर विजेट जोड़ सकते हैं" + "विजेट की सेटिंग में बदलाव करने के लिए टैप करें" "ठीक है" + "विजेट की सेटिंग में बदलाव करें" "ऐप सर्च करें" "ऐप्लिकेशन लोड हो रहे हैं…" "\"%1$s\" से मिलता-जुलता कोई ऐप्लिकेशन नहीं मिला" @@ -154,18 +156,16 @@ "निजी ऐप" "काम से जुड़े ऐप" "वर्क प्रोफ़ाइल" - "निजी डेटा को अलग रखा जाता है. साथ ही, ऑफ़िस के काम से जुड़े ऐप्लिकेशन से छिपा कर रखा जाता है" - "ऑफ़िस के काम से जुड़े ऐप्लिकेशन और डेटा, आपके आईटी एडमिन को दिखते हैं" - "आगे बढ़ें" + + "ठीक है" - "वर्क प्रोफ़ाइल रोक दी गई है" - "ऑफ़िस के काम से जुड़े ऐप्लिकेशन आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" - "ऑफ़िस के काम से जुड़े ऐप्लिकेशन रोक दिए गए हैं. ऑफ़िस के काम से जुड़े ऐप्लिकेशन आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" + "ऑफ़िस के काम से जुड़े ऐप्लिकेशन बंद हैं" + "ऑफ़िस के काम से जुड़े आपके ऐप्लिकेशन, आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" + "ऑफ़िस के काम से जुड़े ऐप्लिकेशन बंद हैं. ये ऐप्लिकेशन, आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" "ऑफ़िस के काम से जुड़े ऐप्लिकेशन, बैज किए गए हैं और आईटी एडमिन को दिख रहे हैं" "ठीक है" - "ऑफ़िस के काम से जुड़े ऐप्लिकेशन रोकें" - "चालू करें" + "ऑफ़िस के काम से जुड़े ऐप्लिकेशन बंद करें" + "ऑफ़िस के काम से जुड़े ऐप्लिकेशन चालू करें" "फ़िल्टर" - "ऑफ़िस के काम से जुड़े ऐप्लिकेशन और सूचनाएं रोकें" "पूरा नहीं हुआ: %1$s" diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 6c94f31b49..3f1e1b0762 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -50,12 +50,14 @@ "Izbrišite tekst iz okvira za pretraživanje" "Nije dostupan nijedan widget" "Nema rezultata pretraživanja" - "Osobno" + "Osobni" "Posao" "Razgovori" "Korisne informacije nadohvat ruke" "Da biste dobili informacije bez otvaranja aplikacija, možete dodati widgete na početni zaslon" + "Dodirnite da biste promijenili postavke widgeta" "Shvaćam" + "Promijenite postavke widgeta" "Pretraži aplikacije" "Učitavanje aplikacija…" "Nema aplikacija podudarnih s upitom \"%1$s\"" @@ -115,7 +117,7 @@ "Za prikaz točaka obavijesti uključite obavijesti aplikacije %1$s" "Promjena postavki" "Prikaži točke obavijesti" - "Dodajte ikone aplikacija na početni zaslon" + "Dodaj ikone aplikacija na početni zaslon" "Za nove aplikacije" "Nepoznato" "Ukloni" @@ -157,18 +159,16 @@ "Osobno" "Posao" "Poslovni profil" - "Osobni podaci odvojeni su i skriveni od poslovnih aplikacija" - "Podaci poslovnih aplikacija vidljivi su vašem IT administratoru" - "Dalje" + + "Shvaćam" - "Poslovni profil je pauziran" - "Poslovne aplikacije ne mogu vam slati obavijesti, trošiti bateriju niti pristupiti vašoj lokaciji" - "Poslovni profil je pauziran. Poslovne aplikacije ne mogu vam slati obavijesti, trošiti bateriju niti pristupiti vašoj lokaciji" + "Poslovne aplikacije su isključene" + "Poslovne aplikacije ne mogu vam slati obavijesti, trošiti bateriju niti pristupiti vašoj lokaciji" + "Poslovne aplikacije su isključene. Ne mogu vam slati obavijesti, trošiti bateriju ili pristupiti vašoj lokaciji" "Poslovne su aplikacije označene i vidljive vašem IT administratoru" "Shvaćam" - "Pauziraj poslovne aplikacije" - "Uključi" + "Isključite poslovne aplikacije" + "Uključite poslovne aplikacije" "Filtrirajte" - "Pauzirajte poslovne aplikacije i obavijesti" "Nije uspjelo: %1$s" diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 5e1b032255..09c4d5093a 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -53,7 +53,9 @@ "Beszélgetések" "Hasznos információk egy koppintásnyira" "Ha az alkalmazások megnyitása nélkül szeretne információhoz jutni, felvehet modulokat a kezdőképernyőre." + "Ide koppintva módosíthatja a modulbeállításokat" "Értem" + "A modulbeállítások módosítása" "Alkalmazások keresése" "Alkalmazások betöltése…" "Nem található alkalmazás a(z) „%1$s” lekérdezésre" @@ -154,18 +156,16 @@ "Személyes" "Munkahelyi" "Munkaprofil" - "A személyes adatok el vannak különítve a munkahelyi alkalmazásoktól, amelyek nem is látják őket" - "A munkahelyi alkalmazásokat és adatokat látja a rendszergazda" - "Tovább" + + "Értem" - "A munkaprofil használata szünetel" - "A munkahelyi alkalmazások nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez." - "A munkaprofil szüneteltetve van. A munkahelyi alkalmazások nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez." + "A munkahelyi alkalmazások ki vannak kapcsolva" + "A munkahelyi alkalmazások nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez." + "A munkahelyi alkalmazások ki vannak kapcsolva, nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez" "A munkahelyi alkalmazások jelvénnyel vannak megjelölve, és láthatók a rendszergazda számára" "Értem" - "Munkahelyi alkalmazások szüneteltetése" - "Bekapcsolás" + "Kapcsolja ki a munkahelyi alkalmazásokat" + "Kapcsolja be a munkahelyi alkalmazásokat" "Szűrő" - "Munkahelyi alkalmazások és értesítések szüneteltetése" "Sikertelen: %1$s" diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index f7d6b317aa..ef87d0619c 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -53,7 +53,9 @@ "Զրույցներ" "Օգտակար տեղեկությունները՝ միշտ հասանելի" "Ավելացրեք վիջեթներ ձեր հիմնական էկրանին և ստացեք տեղեկություններ՝ առանց հավելվածները բացելու։" + "Հպեք՝ վիջեթի կարգավորումները փոփոխելու համար" "Եղավ" + "Փոխել վիջեթի կարգավորումները" "Որոնել հավելվածներ" "Հավելվածների բեռնում…" %1$s» հարցմանը համապատասխանող հավելվածներ չեն գտնվել" @@ -101,7 +103,7 @@ "Պանակ՝ %1$s, %2$d կամ ավելի տարրեր" "Պաստառներ" "Պաստառ և ոճ" - "Գլխավոր էջի կարգավորումներ" + "Գլխավոր էկրանի կարգավորումներ" "Անջատվել է ձեր ադմինիստրատորի կողմից" "Թույլ տալ հիմնական էկրանի պտտումը" "Հեռախոսը պտտելու դեպքում" @@ -154,18 +156,16 @@ "Անձնական" "Աշխատանքային" "Աշխատանքային պրոֆիլ" - "Անձնական տվյալները առանձին են և թաքցված են, երբ ցուցադրվում են աշխատանքայինները" - "Աշխատանքային հավելվածներն ու դրանց տվյալները տեսանելի են ձեր ադմինիստրատորին" - "Առաջ" + + "Եղավ" - "Աշխատանքային պրոֆիլը դադարեցված է" - "Աշխատանքային հավելվածները չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել ձեր մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" - "Աշխատանքային պրոֆիլը դադարեցված է։ Աշխատանքային հավելվածները չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել ձեր մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" - "Աշխատանքային հավելվածները նշանակներ ունեն և տեսանելի են ձեր ՏՏ ադմինիստրատորին" + "Աշխատանքային հավելվածներն անջատված են" + "Աշխատանքային հավելվածները չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" + "Աշխատանքային հավելվածներն անջատված են։ Դրանք չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" + "Աշխատանքային հավելվածները նշանակներ ունեն և տեսանելի են ՏՏ ադմինիստրատորին" "Եղավ" - "Դադարեցնել աշխատանքային հավելվածները" - "Միացնել" + "Անջատել աշխատանքային հավելվածները" + "Միացնել աշխատանքային հավելվածները" "Զտեք" - "Դադարեցնել աշխատանքային հավելվածներն ու ծանուցումները" "Չհաջողվեց կատարել գործողությունը (%1$s)" diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 782737c31e..c3cdcfcf6a 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -51,9 +51,11 @@ "Pribadi" "Kantor" "Percakapan" - "Info bermanfaat yang mudah diakses" + "Info yang bermanfaat di ujung jari Anda" "Untuk mendapatkan info tanpa membuka aplikasi, Anda dapat menambahkan widget ke Layar utama" + "Ketuk untuk mengubah setelan widget" "Oke" + "Ubah setelan widget" "Telusuri aplikasi" "Memuat aplikasi…" "Tidak ditemukan aplikasi yang cocok dengan \"%1$s\"" @@ -62,7 +64,7 @@ "Notifikasi" "Sentuh lama untuk memindahkan pintasan." "Ketuk dua kali & tahan untuk memindahkan pintasan atau gunakan tindakan khusus." - "Tidak ada ruang lagi pada layar Utama ini." + "Tidak ada ruang lagi di Layar Utama ini." "Tidak ada ruang tersisa di baki Favorit" "Daftar aplikasi" "Daftar aplikasi pribadi" @@ -154,18 +156,16 @@ "Pribadi" "Kerja" "Profil kerja" - "Data pribadi terpisah & tersembunyi dari aplikasi kerja" - "Aplikasi & data kerja terlihat oleh admin IT" - "Berikutnya" + + "Oke" - "Profil kerja dijeda" - "Aplikasi kerja tidak dapat mengirimi Anda notifikasi, menggunakan baterai, atau mengakses lokasi Anda" - "Profil kerja dijeda. Aplikasi kerja tidak dapat mengirimi Anda notifikasi, menggunakan baterai, atau mengakses lokasi Anda" + "Aplikasi kerja dinonaktifkan" + "Aplikasi kerja tidak dapat mengirimkan notifikasi, menggunakan baterai, atau mengakses lokasi Anda" + "Aplikasi kerja dinonaktifkan. Aplikasi kerja tidak dapat mengirimkan notifikasi, menggunakan baterai, atau mengakses lokasi Anda" "Aplikasi kerja diberi badge dan terlihat oleh admin IT" "Oke" - "Jeda aplikasi kerja" - "Aktifkan" + "Nonaktifkan aplikasi kerja" + "Aktifkan aplikasi kerja" "Filter" - "Jeda notifikasi dan aplikasi kerja" "Gagal: %1$s" diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index b15e86c404..d3774ed827 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -53,7 +53,9 @@ "Samtöl" "Gagnlegar upplýsingar innan seilingar" "Þú getur bætt við græjum á heimaskjáinn til að fá upplýsingar án þess að opna forrit" + "Ýttu til að breyta græjustillingum" "Ég skil" + "Breyta græjustillingum" "Leita í forritum" "Hleður forrit…" "Ekki fundust forrit sem samsvara „%1$s“" @@ -154,18 +156,16 @@ "Persónulegt" "Vinna" "Vinnusnið" - "Persónuupplýsingar eru aðskildar og faldar í vinnuforritum" - "Gögn vinnuforrita eru sýnileg kerfisstjóranum þínum" - "Áfram" + + "Ég skil" - "Hlé gert á vinnusniði" - "Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" - "Hlé gert á vinnusniði. Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" + "Slökkt er á vinnuforritum" + "Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" + "Slökkt er á vinnuforritum. Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" "Vinnuforrit eru merkt og kerfisstjórinn getur séð þau" "Ég skil" - "Setja vinnuforrit í bið" - "Kveikja" + "Slökkva á vinnuforritum" + "Kveikja á vinnuforritum" "Sía" - "Gera hlé á vinnuforritum og tilkynningum" "Mistókst: %1$s" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 23297e4a4b..58135218c0 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -53,7 +53,9 @@ "Conversazioni" "Informazioni utili a portata di mano" "Per ricevere informazioni senza aprire app, puoi aggiungere widget alla schermata Home" + "Tocca per modificare le impostazioni del widget" "OK" + "Modifica le impostazioni del widget" "Cerca nelle app" "Caricamento delle app…" "Nessuna app trovata corrispondente a \"%1$s\"" @@ -154,18 +156,16 @@ "Personali" "Lavoro" "Profilo di lavoro" - "I dati personali sono separati e non sono visibili nelle app di lavoro" - "I dati e le app di lavoro sono visibili all\'amministratore IT" - "Avanti" + + "OK" - "Profilo di lavoro in pausa" - "Le app di lavoro non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" - "Profilo di lavoro in pausa. Le app di lavoro non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" + "Le app di lavoro non sono attive" + "Le app di lavoro non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" + "Le app di lavoro non sono attive e non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" "Le app di lavoro sono contrassegnate con un badge e sono visibili dal tuo amministratore IT" "OK" - "Metti in pausa le app di lavoro" - "Attiva" + "Disattiva app di lavoro" + "Attiva app di lavoro" "Filtra" - "Metti in pausa le app di lavoro e le relative notifiche" "Operazione non riuscita: %1$s" diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 8ec7de366f..f07b4e554d 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -52,12 +52,14 @@ "מחיקת טקסט מתיבת החיפוש" "אין ווידג\'טים זמינים" "אין תוצאות חיפוש" - "אישי" + "ווידג\'טים אישיים" "עבודה" "שיחות" "קבלת מידע שימושי בהקשה" "רוצה לקבל מידע בלי לפתוח אפליקציות? אפשר להוסיף ווידג\'טים למסך הבית" + "אפשר לשנות את הגדרות הווידג\'ט בהקשה" "הבנתי" + "שינוי הגדרות הווידג\'ט" "חיפוש אפליקציות" "טעינת אפליקציות מתבצעת…" "לא נמצאו אפליקציות התואמות ל-\"%1$s\"" @@ -66,7 +68,7 @@ "התראות" "כדי להעביר קיצור דרך למקום אחר יש לגעת ולא להרפות." "כדי להעביר קיצור דרך למקום אחר או להשתמש בפעולות מותאמות אישית\' יש ללחוץ פעמיים ולא להרפות." - "אין עוד מקום במסך דף הבית הזה." + "אין עוד מקום במסך הבית הזה." "אין עוד מקום במגש המועדפים" "רשימת אפליקציות" "רשימת אפליקציות אישיות" @@ -160,18 +162,16 @@ "אישיות" "עבודה" "פרופיל עבודה" - "מידע אישי מאוחסן בנפרד ומוסתר מאפליקציות לעבודה" - "‏אפליקציות לעבודה ונתוני פרופיל העבודה שלך גלויים למנהל ה-IT" - "הבא" + + "הבנתי" - "פרופיל העבודה מושהה" - "האפליקציות לעבודה לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" - "פרופיל העבודה מושהה. האפליקציות לעבודה לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" + "האפליקציות לעבודה מושבתות" + "האפליקציות לעבודה לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" + "האפליקציות לעבודה מושבתות. האפליקציות לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" "‏האפליקציות לעבודה מתויגות ומוצגות למנהל ה-IT" "הבנתי" - "השהיית האפליקציות לעבודה" - "הפעלה" + "כיבוי של אפליקציות לעבודה" + "הפעלה של אפליקציות לעבודה" "סינון" - "השהיה של ההתראות והאפליקציות בפרופיל העבודה" "הפעולה נכשלה: %1$s" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index d54f884372..0d60f6d656 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -53,7 +53,9 @@ "会話" "スワイプだけで役立つ情報をいつでも入手" "ホーム画面にウィジェットを追加すると、アプリを開かずに情報を入手できます" + "タップしてウィジェットの設定を変更する" "OK" + "ウィジェットの設定を変更します" "アプリを検索" "アプリを読み込んでいます…" "「%1$s」に一致するアプリは見つかりませんでした" @@ -62,7 +64,7 @@ "通知" "長押ししてショートカットを移動してください。" "ショートカットをダブルタップして長押ししながら移動するか、カスタム操作を使用してください。" - "このホーム画面に空きスペースがありません。" + "このホーム画面には空きスペースがありません。" "お気に入りトレイに空きスペースがありません" "アプリのリスト" "個人用アプリのリスト" @@ -104,7 +106,7 @@ "ホームの設定" "管理者により無効にされています" "ホーム画面の回転を許可" - "スマートフォンが回転したとき" + "スマートフォンの向きに合わせます" "通知ドット" "ON" "OFF" @@ -113,7 +115,7 @@ "設定を変更" "通知ドットの表示" "ホーム画面にアプリのアイコンを追加" - "新しいアプリをダウンロードしたとき" + "新しいアプリをダウンロードしたときに自動で追加します" "不明" "削除" "検索" @@ -154,18 +156,16 @@ "個人用" "仕事用" "仕事用プロファイル" - "個人用と仕事用のデータは分離され、アプリは別々に表示されます" - "仕事用アプリと仕事用データは IT 管理者に公開されます" - "次へ" + + "OK" - "仕事用プロファイルが一時停止しています" - "仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" - "仕事用プロファイルが一時停止しています。仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" + "仕事用アプリは OFF になっています" + "仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" + "仕事用アプリは OFF になっています。仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" "仕事用アプリはバッジが付き、IT 管理者に公開されます" "OK" - "仕事用アプリを一時停止" - "ON にする" + "仕事用アプリを OFF にする" + "仕事用アプリを ON にする" "フィルタ" - "仕事用のアプリと通知を一時停止します" "失敗: %1$s" diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index 1347d1debc..51246be30b 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -53,7 +53,9 @@ "მიმოწერები" "ადვილად მისაწვდომი სასარგებლო ინფორმაცია" "იმისთვის, რომ ინფორმაცია აპების გაუხსნელად მიიღოთ, შეგიძლიათ, მთავარ ეკრანზე ვიჯეტები დაამატოთ" + "შეეხეთ ვიჯეტის პარამეტრების შესაცვლელად" "გასაგებია" + "ვიჯეტის პარამეტრების შეცვლა" "აპების ძიება" "აპები იტვირთება…" "„%1$s“-ის თანხვედრი აპები არ მოიძებნა" @@ -154,18 +156,16 @@ "პირადი" "სამსახური" "სამსახურის პროფილი" - "პერსონალური მონაცემები განცალკევებულია და თქვენი სამსახურის აპებისთვის უხილავია" - "თქვენი IT ადმინისტრატორი თქვენს სამსახურის აპებში არსებულ მონაცემებს ხედავს" - "შემდეგ" + + "გასაგებია" - "სამსახურის პროფილი დაპაუზებულია" - "სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" - "სამსახურის პროფილი დაპაუზებულია. სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" + "სამსახურის აპები გამორთულია" + "თქვენს სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" + "სამსახურის აპები გამორთულია. თქვენს სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" "სამსახურის აპები ბეჯით არის მონიშნული და ხილულია IT ადმინისტრატორისთვის" "გასაგებია" - "სამსახურის აპების დაპაუზება" - "ჩართვა" + "სამსახურის აპების გამორთვა" + "სამსახურის აპების ჩართვა" "ფილტრი" - "სამსახურის აპებისა და შეტყობინებების დაპაუზება" "ვერ მოხერხდა: %1$s" diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index 640ffca72d..b2753a2e88 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -28,11 +28,11 @@ "Таңбаша қолжетімді емес" "Негізгі экран" "Экранды бөлу" - "Виджетті жылжыту үшін түртіп ұстап тұрыңыз." + "Виджетті жылжыту үшін басып тұрыңыз." "Виджетті жылжыту үшін екі рет түртіңіз де, ұстап тұрыңыз немесе арнаулы әрекеттерді пайдаланыңыз." "%1$d × %2$d" "Ені: %1$d, биіктігі: %2$d" - "Негізгі экранда қозғалту үшін виджетті басып, ұстап тұрыңыз." + "Негізгі экранда қозғалту үшін виджетті басып тұрыңыз." "Негізгі экранға қосу" %1$d виджет @@ -53,14 +53,16 @@ "Әңгімелер" "Саусақпен түртсеңіз болғаны – пайдалы ақпарат көз алдыңызда" "Қолданбаларды ашпай-ақ ақпарат алу үшін негізгі экранға тиісті виджеттерді қосыңыз." + "Виджет параметрлерін өзгерту үшін түртіңіз." "Түсінікті" + "Виджет параметрлерін өзгерту" "Қолданбаларды іздеу" "Қолданбалар жүктелуде…" "\"%1$s\" сұрауына сәйкес келетін қолданбалар жоқ" "Қосымша қолданбалар іздеу" "Қолданба" "Хабарландырулар" - "Таңбашаны жылжыту үшін түртіп ұстап тұрыңыз." + "Таңбашаны жылжыту үшін басып тұрыңыз." "Таңбашаны жылжыту үшін екі рет түртіңіз де, ұстап тұрыңыз немесе арнаулы әрекеттерді пайдаланыңыз." "Бұл Негізгі экранда орын қалмады." "Қалаулылар науасында орын қалмады" @@ -154,18 +156,16 @@ "Жеке" "Жұмыс" "Жұмыс профилі" - "Жеке деректер бөлек орналасқан және жұмыс қолданбаларынан жасырылған" - "Әкімшіңіз жұмыс қолданбалары мен деректерін көре алады" - "Келесі" + + "Түсінікті" - "Жұмыс профилі кідіртілді" - "Жұмыс қолданбалары сізге хабарландырулар жібере алмайды, батареяңызды немесе локацияңызды пайдалана алмайды." - "Жұмыс профилі уақытша тоқтатылды. Жұмыс қолданбалары сізге хабарландырулар жібере алмайды, батареяңызды немесе локацияңызды пайдалана алмайды." + "Жұмыс қолданбалары өшірулі" + "Жұмыс қолданбалары сізге хабарландырулар жібере, батареяңызды немесе локацияңызды пайдалана алмайды." + "Жұмыс қолданбалары өшірулі. Олар сізге хабарландырулар жібере, батареяңызды немесе локацияңызды пайдалана алмайды." "Жұмыс қолданбаларының танымбелгілері бар және олар әкімшіңізге көрінеді." "Түсінікті" - "Жұмыс қолданбаларын тоқтата тұру" - "Қосу" + "Жұмыс қолданбаларын өшіру" + "Жұмыс қолданбаларын қосу" "Сүзгі" - "Жұмыс қолданбалары мен хабарландыруларын кідірту" "Қате шықты: %1$s" diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 4f0964836c..82c9a36123 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -53,7 +53,9 @@ "ការសន្ទនា" "ទទួលបាន​ព័ត៌មានដែលមានប្រយោជន៍​យ៉ាងងាយស្រួល" "ដើម្បីទទួលបាន​ព័ត៌មាន​ដោយមិនចាំបាច់​បើកកម្មវិធី អ្នកអាចបញ្ចូលធាតុ​ក្រាហ្វិកទៅក្នុង​អេក្រង់ដើម​របស់អ្នក" + "ចុចដើម្បីប្ដូរការកំណត់ធាតុ​ក្រាហ្វិក" "យល់ហើយ" + "ប្ដូរការកំណត់ធាតុ​ក្រាហ្វិក" "ស្វែងរក​កម្មវិធី" "កំពុងផ្ទុកកម្មវិធី…" "រកមិនឃើញកម្មវិធី​ដែលត្រូវគ្នាជាមួយ \"%1$s\" ទេ" @@ -62,7 +64,7 @@ "ការ​ជូនដំណឹង" "ចុចឱ្យជាប់​ដើម្បីផ្លាស់ទី​ផ្លូវកាត់​។" "ចុចពីរដង រួចសង្កត់ឱ្យជាប់ ដើម្បីផ្លាស់ទី​ផ្លូវកាត់ ឬប្រើ​សកម្មភាព​តាមបំណង​។" - "គ្មាន​បន្ទប់​នៅ​លើ​អេក្រង់​ដើម​នេះ​ទៀត​ទេ។" + "គ្មាន​កន្លែង​នៅ​លើ​អេក្រង់​ដើម​នេះ​ទៀត​ទេ។" "គ្មាន​បន្ទប់​​ក្នុង​ថាស​និយម​ប្រើ" "បញ្ជីកម្មវិធី" "បញ្ជី​កម្មវិធី​ផ្ទាល់ខ្លួន" @@ -154,18 +156,16 @@ "ផ្ទាល់ខ្លួន" "ការងារ" "កម្រងព័ត៌មានការងារ" - "ទិន្នន័យ​ផ្ទាល់ខ្លួន​ស្ថិតនៅ​ដាច់ដោយឡែក និង​ត្រូវបាន​លាក់ពី​កម្មវិធី​ការងារ" - "ទិន្នន័យ និង​កម្មវិធី​ការងារ​គឺអាចមើលឃើញដោយ​អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក" - "បន្ទាប់" + + "យល់ហើយ" - "កម្រងព័ត៌មានការងារត្រូវបាន​ផ្អាក" - "កម្មវិធី​ការងារ​មិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" - "កម្រងព័ត៌មាន​ការងារ​ត្រូវបាន​ផ្អាក។ កម្មវិធី​ការងារ​មិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" + "កម្មវិធីការងារ​ត្រូវបានបិទ" + "កម្មវិធី​ការងារ​របស់អ្នក​មិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" + "កម្មវិធីការងារ​ត្រូវបានបិទ។ កម្មវិធីការងារ​របស់អ្នកមិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" "កម្មវិធីការងារ​ត្រូវបានដាក់​គ្រឿងសម្គាល់ ហើយ​អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក​អាចមើលឃើញ" "យល់ហើយ" - "ផ្អាក​កម្មវិធី​ការងារ" - "បើក" + "បិទ​កម្មវិធីការងារ" + "បើក​កម្មវិធី​ការងារ" "តម្រង" - "ផ្អាក​ការជូនដំណឹង និង​កម្មវិធី​ការងារ" "បានបរាជ័យ៖ %1$s" diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 9a3075f54d..07a0cc9238 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -53,7 +53,11 @@ "ಸಂವಾದಗಳು" "ನಿಮ್ಮ ಬೆರಳ ತುದಿಯಲ್ಲಿ ಉಪಯುಕ್ತ ಮಾಹಿತಿ" "ಆ್ಯಪ್‌ಗಳನ್ನು ತೆರೆಯದೆಯೇ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು, ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ನೀವು ವಿಜೆಟ್‌ಗಳನ್ನು ಸೇರಿಸಬಹುದು" + + "ಅರ್ಥವಾಯಿತು" + + "ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹುಡುಕಿ" "ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..." "\"%1$s\" ಹೊಂದಿಕೆಯ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ" @@ -154,18 +158,16 @@ "ವೈಯಕ್ತಿಕ" "ಕೆಲಸ" "ಕೆಲಸದ ಪ್ರೊಫೈಲ್" - "ವೈಯಕ್ತಿಕ ಡೇಟಾ ಬೇರೆಯದಾಗಿದೆ ಮತ್ತು ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ನಿಂದ ಮರೆ ಮಾಡಲಾಗಿದೆ" - "ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಗೆ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಡೇಟಾ ಗೋಚರಿಸುತ್ತದೆ" - "ಮುಂದೆ" + + "ಸರಿ" - "ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" - "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" - "ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ. ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" + "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಆಫ್ ಆಗಿವೆ" + "ನಿಮ್ಮ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" + "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಆಫ್ ಆಗಿವೆ. ನಿಮ್ಮ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಬ್ಯಾಡ್ಜ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸುತ್ತದೆ" "ಅರ್ಥವಾಯಿತು" - "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಿ" - "ಆನ್ ಮಾಡಿ" + "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಆಫ್ ಮಾಡಿ" + "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಆನ್ ಮಾಡಿ" "ಫಿಲ್ಟರ್‌" - "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಅಧಿಸೂಚನೆಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಿ" "ವಿಫಲವಾಗಿದೆ: %1$s" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index cce4c8935b..68589d8ea9 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -53,7 +53,9 @@ "대화" "빠르게 유용한 정보 확인" "앱을 열지 않고 정보를 확인하려면 홈 화면에 위젯을 추가하세요." + "탭하여 위젯 설정 변경" "확인" + "위젯 설정 변경" "앱 검색" "앱 로드 중…" "\'%1$s\'과(와) 일치하는 앱이 없습니다." @@ -154,18 +156,16 @@ "개인" "직장" "직장 프로필" - "개인 정보는 직장 앱에서 분리되어 숨겨짐" - "직장 앱 및 데이터가 IT 관리자에게 표시됨" - "다음" + + "확인" - "직장 프로필이 일시중지됨" - "직장 앱에서 알림을 보내거나 배터리를 사용하거나 내 위치 정보에 액세스할 수 없습니다." - "직장 프로필이 일시중지되었습니다. 직장 앱에서 알림을 보내거나 배터리를 사용하거나 내 위치 정보에 액세스할 수 없습니다." + "직장 앱이 꺼져 있음" + "직장 앱에서 알림을 보내거나 배터리를 사용하거나 위치 정보에 액세스할 수 없습니다." + "직장 앱이 꺼져 있습니다. 직장 앱에서 알림을 보내거나 배터리를 사용하거나 위치 정보에 액세스할 수 없습니다." "직장 앱에는 배지가 있으며, IT 관리자는 직장 앱을 확인할 수 있습니다." "확인" - "직장 앱 일시중지" - "사용 설정" + "직장 앱 사용 중지" + "직장 앱 사용 설정" "필터" - "직장 앱 및 알림 일시중지" "실패: %1$s" diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index ed49ff1ae2..919fe45bba 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -48,12 +48,14 @@ "Текстти издөө кутучасынан тазалоо" "Виджет жок" "Издөө жыйынтыктары жок" - "Жеке" + "Жеке виджеттер" "Жумуш" "Сүйлөшүүлөр" "Пайдалуу маалымат манжаңыздын учунда эле турат" "Колдонмолорду ачпастан керектүү маалыматты алуу үчүн Башкы экранга виджеттерди кошуңуз" + "Виджеттин жөндөөлөрүн өзгөртүү үчүн таптап коюңуз" "Түшүндүм" + "Виджеттин жөндөөлөрүн өзгөртүү" "Колдонмолорду издөө" "Колдонмолор жүктөлүүдө…" "\"%1$s\" сурамына дал келген колдонмолор табылган жок" @@ -62,7 +64,7 @@ "Билдирмелер" "Ыкчам баскычты жылдыруу үчүн коё бербей басып туруңуз." "Ыкчам баскычты жылдыруу үчүн эки жолу таптап, кармап туруңуз же ыңгайлаштырылган аракеттерди колдонуңуз." - "Бул Үй экранында бош орун жок." + "Бул экранда бош орун жок." "Тандамалдар тайпасында орун калган жок" "Колдонмолор тизмеси" "Жеке колдономолордун тизмеси" @@ -154,18 +156,16 @@ "Жеке колдонмолор" "Жумуш колдонмолору" "Жумуш профили" - "Жеке маалымат жумуш колдонмолорунан өзүнчө сакталат" - "Жумуш колдонмолору жана маалымат IT администраторго гана көрүнөт" - "Кийинки" + + "Түшүндүм" - "Жумуш профили тындырылган" - "Жумуш колдонмолору билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" - "Жумуш профили тындырылган. Жумуш колдонмолору билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" + "Жумуш колдонмолору өчүк" + "Жумуш колдонмолору билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" + "Жумуш колдонмолору өчүк жана билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" "Жумуш колдонмолору белгиленип, аларды IT администраторлору көрөт" "Түшүндүм" - "Жумуш колдонмолорун тындыруу" - "Күйгүзүү" + "Жумуш колдонмолорун өчүрүү" + "Жумуш колдонмолорун күйгүзүү" "Чыпкалоо" - "Жумуш колдонмолорун жана билдирмелерди тындыруу" "Аткарылган жок: %1$s" diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index ed367d98eb..b91da7d67e 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -53,7 +53,9 @@ "ການສົນທະນາ" "ຂໍ້ມູນທີ່ເປັນປະໂຫຍດຢູ່ປາຍນິ້ວຂອງທ່ານ" "ເພື່ອຮັບຂໍ້ມູນໂດຍບໍ່ຕ້ອງເປີດແອັບ, ທ່ານສາມາດເພີ່ມວິດເຈັດໃສ່ໂຮມສະກຣີນຂອງທ່ານໄດ້" + "ແຕະເພື່ອປ່ຽນການຕັ້ງຄ່າວິດເຈັດ" "ເຂົ້າໃຈແລ້ວ" + "ປ່ຽນການຕັ້ງຄ່າວິດເຈັດ" "ຊອກຫາແອັບ" "ກໍາລັງໂຫຼດແອັບ…" "ບໍ່ພົບແອັບທີ່ກົງກັບ \"%1$s\"" @@ -62,7 +64,7 @@ "ການແຈ້ງເຕືອນ" "ແຕະຄ້າງໄວ້ເພື່ອຍ້າຍທາງລັດ." "ແຕະສອງເທື່ອຄ້າງໄວ້ເພື່ອຍ້າຍທາງລັດ ຫຼື ໃຊ້ຄຳສັ່ງກຳນົດເອງ." - "ບໍ່ມີຫ້ອງເຫຼືອໃນໜ້າຈໍຫຼັກນີ້." + "ບໍ່ມີບ່ອນຫວ່າງໃນໜ້ານີ້." "ບໍ່ມີບ່ອນຫວ່າງໃນຖາດສຳລັບເກັບສິ່ງທີ່ໃຊ້ເປັນປະຈຳ" "ລາຍຊື່ແອັບ" "ລາຍຊື່ແອັບສ່ວນຕົວ" @@ -154,18 +156,16 @@ "ສ່ວນຕົວ" "ວຽກ" "ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ" - "ຂໍ້ມູນສ່ວນຕົວຈະຖືກແຍກອອກ ແລະ ເຊື່ອງໄວ້ຈາກແອັບວຽກ" - "ແອັບ ແລະ ຂໍ້ມູນວຽກຈະສະແດງໃຫ້ຜູ້ເບິ່ງແຍງໄອທີຂອງທ່ານເຫັນ" - "ຕໍ່ໄປ" + + "ເຂົ້າໃຈແລ້ວ" - "ຢຸດໂປຣໄຟລ໌ວຽກໄວ້ຊົ່ວຄາວແລ້ວ" - "ແອັບບ່ອນເຮັດວຽກຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນຫາທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" - "ຢຸດໂປຣໄຟລ໌ບ່ອນເຮັດວຽກໄວ້ຊົ່ວຄາວແລ້ວ. ແອັບບ່ອນເຮັດວຽກຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນຫາທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" + "ແອັບບ່ອນເຮັດວຽກຖືກປິດໄວ້ຢູ່" + "ແອັບບ່ອນເຮັດວຽກຂອງທ່ານຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນຫາທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" + "ແອັບບ່ອນເຮັດວຽກຖືກປິດໄວ້ຢູ່. ແອັບບ່ອນເຮັດວຽກຂອງທ່ານຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນໃຫ້ທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" "ແອັບບ່ອນເຮັດວຽກແມ່ນຖືກຕິດປ້າຍ ແລະ ສະແດງໃຫ້ຜູ້ເບິ່ງແຍງໄອທີຂອງທ່ານເຫັນ" "ເຂົ້າໃຈແລ້ວ" - "ຢຸດແອັບບ່ອນເຮັດວຽກຊົ່ວຄາວ" - "ເປີດໃຊ້" + "ປິດການໃຊ້ແອັບບ່ອນເຮັດວຽກ" + "ເປີດໃຊ້ແອັບບ່ອນເຮັດວຽກ" "ກັ່ນຕອງ" - "ຢຸດແອັບວຽກ ແລະ ການແຈ້ງເຕືອນໄວ້ຊົ່ວຄາວ" "ບໍ່ສຳເລັດ: %1$s" diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 21f99fc127..84414ca486 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -57,7 +57,9 @@ "Pokalbiai" "Lengvai pasiekiama naudinga informacija" "Jei norite gauti informacijos neatidarę programų, galite pridėti valdiklių pagrindiniame ekrane" + "Palieskite, kad pakeistumėte valdiklio nustatymus" "Supratau" + "Pakeisti valdiklio nustatymus" "Paieškos programos" "Įkeliamos programos…" "Nerasta jokių užklausą „%1$s“ atitinkančių programų" @@ -160,18 +162,16 @@ "Asmeninės" "Darbo" "Darbo profilis" - "Asmens duomenys laikomi atskirai ir paslėpti nuo darbo programų" - "Darbo programas ir duomenis mato jūsų IT administratorius" - "Kitas" + + "Supratau" - "Darbo profilis pristabdytas" - "Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" - "Darbo profilis pristabdytas. Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" + "Darbo programos išjungtos" + "Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" + "Darbo programos išjungtos. Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" "Darbo programos yra pažymėtos ženkleliu ir matomos IT administratoriui" "Supratau" - "Pristabdyti darbo programas" - "Įjungti" + "Išjungti darbo programas" + "Įjungti darbo programas" "Filtruoti" - "Pristabdykite darbo programas ir pranešimus" "Nepavyko: %1$s" diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index ad4082be57..0b283d9b48 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -55,7 +55,9 @@ "Sarunas" "Ērta piekļuve noderīgai informācijai" "Lai iegūtu informāciju, neatverot lietotnes, varat pievienot logrīkus sākuma ekrānā." + "Pieskarieties, lai mainītu logrīka iestatījumus." "Labi" + "Mainīt logrīka iestatījumus" "Meklēt lietotnes" "Notiek lietotņu ielāde…" "Vaicājumam “%1$s” neatbilda neviena lietotne" @@ -157,18 +159,16 @@ "Personīgās lietotnes" "Darba lietotnes" "Darba profils" - "Personas dati ir atsevišķi un paslēpti no darba lietotnēm" - "Jūsu IT administrators var skatīt darba lietotnes un datus" - "Tālāk" + + "Labi" - "Darba profila darbība ir pārtraukta" - "Darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." - "Darba profila darbība ir pārtraukta. Darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." + "Darba lietotnes ir izslēgtas" + "Jūsu darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." + "Darba lietotnes ir izslēgtas. Jūsu darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." "Darba lietotnēm ir pievienota emblēma, un tās ir redzamas jūsu IT administratoram" "Labi" - "Pārtraukt darba lietotņu darbību" - "Ieslēgt" + "Izslēgt darba lietotnes" + "Ieslēgt darba lietotnes" "Filtrs" - "Pārtraukt darba lietotņu darbību un paziņojumu sūtīšanu" "Neizdevās: %1$s" diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index f4c960624e..29acbb87b6 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -53,7 +53,9 @@ "Разговори" "Корисни информации на дофат на прстите" "За да добивате информации без да ги отворате апликациите, може да додадете виџети на почетниот екран" + "Допрете за да ги промените поставките за виџетот" "Сфатив" + "Промени ги поставките за виџетот" "Пребарувајте апликации" "Се вчитуваат апликации…" "Не се најдени апликации што одговараат на „%1$s“" @@ -154,18 +156,16 @@ "Лично" "За работа" "Работен профил" - "Личните податоци се одделни и сокриени од работните апликации" - "Работните апликации и податоци се видливи за IT-администраторот" - "Следно" + + "Сфатив" - "Работниот профил е паузиран" - "Работните апликации не можат да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" - "Работниот профил е паузиран. Работните апликации не можат да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" + "Работните апликации се исклучени" + "Работните апликации не може да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" + "Работните апликации се исклучени. Не може да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" "Работните апликации имаат значка и се видливи за IT-администраторот" "Сфатив" - "Паузирај ги работните апликации" - "Вклучи" + "Исклучете ги работните апликации" + "Вклучете ги работните апликации" "Филтер" - "Паузирајте работни апликации и известувања" "Не успеа: %1$s" diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 0359220ac1..53679f15c4 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -43,7 +43,7 @@ %1$d കുറുക്കുവഴി "%1$s, %2$s" - "വിഡ്ജെറ്റുകൾ" + "വിജറ്റുകൾ" "തിരയൽ" "സെർച്ച് ബോക്‌സിൽ നിന്ന് ടെക്‌സ്‌റ്റ് മായ്‌ക്കുക" "ഒരു വിജറ്റുകളും ലഭ്യമല്ല" @@ -53,7 +53,9 @@ "സംഭാഷണങ്ങൾ" "ഉപകാരപ്രദമായ വിവരങ്ങൾ നിങ്ങളുടെ വിരൽത്തുമ്പിൽ" "ആപ്പുകൾ തുറക്കാതെ വിവരങ്ങൾ ലഭിക്കാൻ, നിങ്ങൾക്ക് ഹോം സ്ക്രീനിലേക്ക് വിജറ്റുകൾ ചേർക്കാം" + "വിജറ്റ് ക്രമീകരണം മാറ്റാൻ ടാപ്പ് ചെയ്യുക" "മനസ്സിലായി" + "വിജറ്റ് ക്രമീകരണം മാറ്റുക" "ആപ്പുകൾ തിരയുക" "ആപ്പുകൾ ലോഡുചെയ്യുന്നു..." "\"%1$s\" എന്നതുമായി പൊരുത്തപ്പെടുന്ന ആപ്പുകളൊന്നും കണ്ടെത്തിയില്ല" @@ -112,7 +114,7 @@ "അറിയിപ്പ് ഡോട്ടുകൾ കാണിക്കുന്നതിന്, %1$s എന്നയാളിനായുള്ള ആപ്പ് അറിയിപ്പുകൾ ഓണാക്കുക" "ക്രമീകരണം മാറ്റുക" "അറിയിപ്പ് ഡോട്ടുകൾ കാണിക്കുക" - "ഹോം സ്‌ക്രീനിൽ ആപ്പ് ഐക്കണുകൾ ചേർക്കൂ" + "ഹോം സ്‌ക്രീനിൽ ആപ്പ് ഐക്കണുകൾ ചേർക്കുക" "പുതിയ ആപ്പുകൾക്ക്" "അജ്ഞാതം" "നീക്കംചെയ്യുക" @@ -152,20 +154,18 @@ "അടയ്ക്കൂ" "അറിയിപ്പ് നിരസിച്ചു" "വ്യക്തിപരം" - "ജോലി" + "ഔദ്യോഗികം" "ഔദ്യോഗിക പ്രൊഫൈൽ" - "ഔദ്യോഗിക ആപ്പുകളിൽ നിന്ന് വ്യക്തിപരമായ ഡാറ്റ വേർതിരിച്ച് മറച്ചിരിക്കുന്നു" - "ഔദ്യോഗിക ആപ്പുകളും ഡാറ്റയും നിങ്ങളുടെ ഐടി അഡ്‌മിന് ദൃശ്യമാണ്" - "അടുത്തത്" + + "മനസ്സിലായി" - "ഔദ്യോഗിക പ്രൊഫൈൽ തൽക്കാലം നിർത്തിയിരിക്കുന്നു" - "നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" - "ഔദ്യോഗിക പ്രൊഫൈൽ താൽക്കാലികമായി നിർത്തിയിരിക്കുന്നു. നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" + "ഔദ്യോഗിക ആപ്പുകൾ ഓഫാണ്" + "നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ നിങ്ങളുടെ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" + "ഔദ്യോഗിക ആപ്പുകൾ ഓഫാണ്. നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ നിങ്ങളുടെ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" "ഔദ്യോഗിക ആപ്പുകൾക്ക് ബാഡ്‌ജ് നൽകിയിരിക്കുന്നു, അവ നിങ്ങളുടെ ഐടി അഡ്‌മിന് കാണാനും കഴിയും" "മനസ്സിലായി" - "ഔദ്യോഗിക ആപ്പുകൾ താൽക്കാലികമായി നിർത്തുക" - "ഓണാക്കുക" + "ഔദ്യോഗിക ആപ്പുകൾ ഓഫാക്കുക" + "ഔദ്യോഗിക ആപ്പുകൾ ഓണാക്കുക" "ഫിൽട്ടർ ചെയ്യുക" - "ഔദ്യോഗിക ആപ്പുകളും അറിയിപ്പുകളും താൽക്കാലികമായി നിർത്തുക" "പരാജയപ്പെട്ടു: %1$s" diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 53d382dc85..dc30f552a2 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -48,12 +48,14 @@ "Хайх хэсгээс текстийг арилгах" "Боломжтой жижиг хэрэгсэл байхгүй" "Хайлтын илэрц байхгүй" - "Хувийн" + "Хувийн виджетүүд" "Ажил" "Харилцан яриа" "Хэрэгтэй мэдээллээ хурууныхаа үзүүрээр аваарай" "Аппуудыг нээлгүйгээр мэдээлэл авахын тулд та Үндсэн нүүрэндээ жижиг хэрэгслүүд нэмэх боломжтой" + "Жижиг хэрэгслийн тохиргоог өөрчлөхийн тулд товшино уу" "Ойлголоо" + "Жижиг хэрэгслийн тохиргоог өөрчлөх" "Апп хайх" "Аппыг ачаалж байна..." "\"%1$s\"-д тохирох апп олдсонгүй" @@ -154,18 +156,16 @@ "Хувийн" "Ажил" "Ажлын профайл" - "Хувийн өгөгдөл нь ажлын аппаас тусдаа бөгөөд нуугдмал байна" - "Ажлын апп болон өгөгдөл нь таны мэдээлэл технологийн админд харагдана" - "Дараах" + + "Ойлголоо" - "Ажлын профайлыг түр зогсоосон" - "Ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" - "Ажлын профайлыг түр зогсоосон. Ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" + "Ажлын аппууд унтраалттай байна" + "Таны ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" + "Ажлын аппууд унтраалттай байна. Таны ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" "Ажлын аппуудыг тэмдэглэсэн бөгөөд танай IT админд харагдана" "Ойлголоо" - "Ажлын аппуудыг түр зогсоох" - "Асаах" + "Ажлын аппуудыг унтраах" + "Ажлын аппуудыг асаах" "Шүүлтүүр" - "Ажлын апп болон мэдэгдлийг түр зогсоох" "Амжилтгүй болсон: %1$s" diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index b4c217434e..38acebffad 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -53,7 +53,11 @@ "संभाषणे" "तुमच्यासाठी सहज उपलब्ध असलेली माहिती" "ॲप्स न उघडता माहिती मिळवण्यासाठी, तुम्ही तुमच्या होम स्क्रीनवर विजेट जोडू शकता" + + "समजले" + + "अ‍ॅप्स शोधा" "अ‍ॅप्स लोड करत आहे…" "\"%1$s\" शी जुळणारे कोणतेही अ‍ॅप्स आढळले नाहीत" @@ -154,18 +158,21 @@ "वैयक्तिक" "कार्यालय" "कार्य प्रोफाइल" - "वैयक्तिक डेटा वेगळा असतो आणि तो ऑफिस अ‍ॅप्सपासून लपवलेला असतो" - "कार्य अ‍ॅप्स आणि डेटा तुमच्या अ‍ॅडमिनला दृश्यमान असतो" - "पुढील" + + "समजले" - "कार्य प्रोफाइल थांबवली आहे" - "Work apps तुम्हाला सूचना पाठवू शकत नाहीत, तुमची बॅटरी वापरू शकत नाहीत किंवा तुमचे स्थान अ‍ॅक्सेस करू शकत नाहीत" - "कार्य प्रोफाइल थांबवली आहे. Work apps तुम्हाला सूचना पाठवू शकत नाहीत, तुमची बॅटरी वापरू शकत नाहीत किंवा तुमचे स्थान अ‍ॅक्सेस करू शकत नाहीत" + + + + + + "Work apps ही बॅज केलेली असून तुमच्या IT ॲडमिनला दृश्यमान आहेत" "समजले" - "Work apps थांबवा" - "सुरू करा" + + + + "फिल्टर" - "कार्य अ‍ॅप्स आणि सूचना थांबवा" "हे करता आले नाही: %1$s" diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index f6300ee107..be9496203f 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -53,7 +53,9 @@ "Perbualan" "Maklumat berguna di hujung jari anda" "Untuk mendapatkan maklumat tanpa membuka apl, anda boleh menambahkan widget pada skrin Utama anda" + "Ketik untuk menukar tetapan widget" "OK" + "Tukar tetapan widget" "Cari apl" "Memuatkan apl…" "Tiada apl yang ditemui sepadan dengan \"%1$s\"" @@ -154,18 +156,16 @@ "Peribadi" "Kerja" "Profil kerja" - "Data peribadi adalah berasingan & disembunyikan daripada apl kerja" - "Apl & data kerja kelihatan kepada pentadbir IT anda" - "Seterusnya" + + "OK" - "Profil kerja dijeda" - "Apl kerja tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" - "Profil kerja dijeda. Apl kerja tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" + "Apl kerja dimatikan" + "Apl kerja anda tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" + "Apl kerja dimatikan. Apl kerja anda tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" "Apl kerja mempunyai lencana dan kelihatan kepada pentadbir IT anda" "OK" - "Jeda apl kerja" - "Hidupkan" + "Matikan apl kerja" + "Hidupkan apl kerja" "Tapis" - "Jeda apl kerja dan pemberitahuan" "Gagal: %1$s" diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index c120c24725..480310064f 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -53,7 +53,9 @@ "စကားဝိုင်းများ" "အသုံးဝင်သော အချက်အလက်များကို အလွယ်တကူ ရယူလိုက်ပါ" "အက်ပ်များကိုမဖွင့်ဘဲ အချက်အလက်များရယူရန် သင်၏ ပင်မစာမျက်နှာသို့ ဝိဂျက်များ ထည့်နိုင်သည်" + "ဝိဂျက် ဆက်တင်များကို ပြောင်းရန် တို့ပါ" "ရပြီ" + "ဝိဂျက် ဆက်တင်များကို ပြောင်းပါ" "ရှာဖွေမှု အက်ပ်များ" "အက်ပ်များကို ဖွင့်နေသည်…" "\"%1$s\" နှင့်ကိုက်ညီသည့် အပ်ပ်များကို မတွေ့ပါ" @@ -154,18 +156,16 @@ "ကိုယ်ပိုင်" "အလုပ်" "အလုပ်ပရိုဖိုင်" - "ကိုယ်ပိုင်ဒေတာများသည် သီးသန့်ဖြစ်ပြီး အလုပ်အက်ပ်များမှ ဖျောက်ထားသည်" - "အလုပ်သုံးအက်ပ်နှင့် ဒေတာများကို သင်၏ IT စီမံခန့်ခွဲသူက မြင်ရပါသည်" - "ရှေ့သို့" + + "ရပါပြီ" - "အလုပ်ပရိုဖိုင် ခဏရပ်ထားသည်" - "အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" - "အလုပ်ပရိုဖိုင် ခဏရပ်ထားသည်။ အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" + "အလုပ်သုံးအက်ပ်များ ပိတ်ထားသည်" + "သင်၏ အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" + "အလုပ်သုံးအက်ပ်များ ပိတ်ထားသည်။ သင်၏ အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" "အလုပ်သုံးအက်ပ်များကို တံဆိပ်တပ်ထားပြီး သင်၏ IT စီမံခန့်ခွဲသူက မြင်နိုင်ပါသည်" "ရပြီ" - "အလုပ်သုံးအက်ပ်များကို ခဏရပ်ရန်" - "ဖွင့်ရန်" + "အလုပ်သုံးအက်ပ်များ ပိတ်ရန်" + "အလုပ်သုံးအက်ပ်များ ဖွင့်ရန်" "စစ်ထုတ်ရန်" - "အလုပ်သုံးအက်ပ်နှင့် အကြောင်းကြားချက်များ ခဏရပ်ရန်" "မအောင်မြင်ပါ− %1$s" diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 49d29127f4..55ef7a4cd1 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -53,7 +53,9 @@ "Samtaler" "Lett tilgjengelig nyttig informasjon" "For å se informasjon uten å åpne apper kan du legge til moduler på startskjermen" + "Trykk for å endre modulinnstillinger" "Greit" + "Endre modulinnstillinger" "Søk etter apper" "Laster inn appene …" "Fant ingen apper som samsvarer med «%1$s»" @@ -154,18 +156,16 @@ "Personlig" "Jobb" "Jobbprofil" - "Personlige data er atskilte og skjules fra jobbapper" - "Jobbapper og -data er synlige for IT-administratoren din" - "Neste" + + "Greit" - "Jobbprofilen er satt på pause" - "Jobbapper kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" - "Jobbprofilen er satt på pause. Jobbapper kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" + "Jobbapper er av" + "Jobbapper kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" + "Jobbapper er av. De kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" "Jobbapper er merket og synlige for IT-administratoren din" "Greit" - "Sett jobbapper på pause" - "Slå på" + "Slå av jobbapper" + "Slå på jobbapper" "Filter" - "Sett jobbapper og -varsler på pause" "Mislyktes: %1$s" diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 929e302e19..14dcec8aa2 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -51,11 +51,12 @@ "व्यक्तिगत" "कामसम्बन्धी" "वार्तालापहरू" - + "उपयोगी जानकारी सजिलै प्राप्त गर्नुहोस्" + "एपहरू नखोलिकनै तिनका बारेमा जानकारी प्राप्त गर्न तपाईं आफ्नो होम स्क्रिनमा विजेटहरू हाल्न सक्नुहुन्छ" + - - - + "बुझेँ" + "खोजसम्बन्धी एपहरू" "एपहरू लोड गर्दै…" @@ -65,7 +66,7 @@ "सूचनाहरू" "कुनै सर्टकट सार्न डबल ट्याप गरेर छोइराख्नुहोस्।" "कुनै सर्टकट सार्न वा आफ्नो रोजाइका कारबाही प्रयोग गर्न डबल ट्याप गरेर छोइराख्नुहोस्।" - "यो गृह स्क्रिनमा कुनै थप ठाउँ छैन।" + "यो होम स्क्रिनमा थप ठाउँ छैन।" "मन पर्ने ट्रे अब कुनै ठाँउ छैन" "एपको सूची" "व्यक्तिगत अनुप्रयोगहरूको सूची" @@ -104,9 +105,9 @@ "फोल्डर: %1$s, %2$d वा सोभन्दा बढी वस्तुहरू" "वालपेपरहरु" "वालपेपर तथा शैली" - "गृहपृष्ठका सेटिङहरू" + "होम पेजका सेटिङहरू" "तपाईँको प्रशासकद्वारा असक्षम गरिएको" - "गृह स्क्रिनलाई रोटेट हुन दिइयोस्" + "होम स्क्रिन रोटेट हुन दिइयोस्" "फोनलाई घुमाइँदा" "सूचनाको प्रतीक जनाउने थोप्लाहरू" "सक्रिय" @@ -115,7 +116,7 @@ "सूचनाको प्रतीक जनाउने थोप्लाहरू देखाउन %1$s को एपसम्बन्धी सूचनाहरूलाई सक्रिय गर्नुहोस्" "सेटिङहरू बदल्नुहोस्" "सूचनाको प्रतीक जनाउने थोप्लाहरू देखाउनुहोस्" - "गृह स्क्रिनमा एपका आइकनहरू थप्नुहोस्" + "होम स्क्रिनमा एपका आइकन थपियोस्" "नयाँ एपका लागि" "अज्ञात" "हटाउनुहोस्" @@ -157,18 +158,16 @@ "व्यक्तिगत" "कार्यसम्बन्धी" "कार्य प्रोफाइल" - "व्यक्तिगत डेटा कामसम्बन्धी एपहरूबाट लुकाएर छुट्टै राखिन्छ" - "तपाईंका IT एड्मिनले कामसम्पबन्धी एपहरू र डेटा हेर्न सक्छन्" - "अर्को" + + "बुझेँ" - "कार्यालयको प्रोफाइल पज गरिएको छ" - "कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" - "कामसम्बन्धी प्रोफाइल पज गरिएको छ। कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" + "कामसम्बन्धी एपहरू अफ गरिएका छन्" + "तपाईंका कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" + "कामसम्बन्धी एपहरू अफ गरिएका छन्। तपाईंका कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" "कामसम्बन्धी एपमा ब्याज अङ्कित हुन्छ र तपाईंका IT एड्मिन ती एप हेर्न सक्नुहुन्छ" "बुझेँ" - "कामसम्बन्धी एपहरू अस्थायी रूपमा रोक्का गर्नुहोस्" - "अन गर्नुहोस्" + "कामसम्बन्धी एपहरू अफ गर्नुहोस्" + "कामसम्बन्धी एपहरू अन गर्नुहोस्" "फिल्टर" - "कामसम्बन्धी एप र सूचनाहरू अस्थायी रूपमा रोक्का गर्नुहोस्" "कार्य पूरा गर्न सकिएन: %1$s" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index 7573102e99..c9f204bc2b 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -53,7 +53,9 @@ "Gesprekken" "Nuttige informatie binnen handbereik" "Als je informatie wilt krijgen zonder apps te openen, kun je widgets toevoegen aan je startscherm" + "Tik om de widgetinstellingen te wijzigen" "OK" + "Widgetinstellingen wijzigen" "Apps zoeken" "Apps laden…" "Er zijn geen apps gevonden die overeenkomen met \'%1$s\'" @@ -154,18 +156,16 @@ "Privé" "Werk" "Werkprofiel" - "Persoonlijke gegevens zijn afgescheiden en verborgen voor werk-apps" - "Werk-apps en -gegevens zijn zichtbaar voor je IT-beheerder" - "Volgende" + + "OK" - "Werkprofiel is onderbroken" - "Werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie" - "Werkprofiel is gepauzeerd. Werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie." + "Werk-apps staan uit" + "Je werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie" + "Werk-apps staan uit. Je werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie." "Werk-apps hebben badges en zijn zichtbaar voor je IT-beheerder" "OK" - "Werk-apps pauzeren" - "Aanzetten" + "Werk-apps uitzetten" + "Werk-apps aanzetten" "Filteren" - "Werk-apps en -meldingen onderbreken" "Mislukt: %1$s" diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 5c1d498827..81b66c6ba1 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -53,7 +53,9 @@ "ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ" "ଉପଯୋଗୀ ସୂଚନା ଆପଣଙ୍କ ପାଖରେ ସହଜରେ ଉପଲବ୍ଧ" "ଆପଗୁଡ଼ିକୁ ନଖୋଲି ସୂଚନା ପାଇବା ପାଇଁ, ଆପଣ ଆପଣଙ୍କ ମୂଳସ୍କ୍ରିନରେ ୱିଜେଟଗୁଡ଼ିକୁ ଯୋଗ କରିପାରିବେ" + "ୱିଜେଟ୍ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ" "ବୁଝିଗଲି" + "ୱିଜେଟ୍ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" "ଆପ୍‌ ଖୋଜନ୍ତୁ" "ଆପ୍‌ ଲୋଡ୍‌ ହେଉଛି..." "\"%1$s\" ସହିତ ମେଳ ହେଉଥିବା କୌଣସି ଆପ୍‌ ମିଳିଲା ନାହିଁ" @@ -62,7 +64,7 @@ "ବିଜ୍ଞପ୍ତି" "ଏକ ସର୍ଟକଟକୁ ମୁଭ୍ କରିବା ପାଇଁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ।" "ଏକ ସର୍ଟକଟକୁ ମୁଭ୍ କରିବା ପାଇଁ ଦୁଇଥର-ଟାପ୍ କରି ଧରି ରଖନ୍ତୁ କିମ୍ବା କଷ୍ଟମ୍ କାର୍ଯ୍ୟଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତୁ।" - "ହୋମ୍‌ ସ୍କ୍ରୀନ ପାଇଁ ଆଉ କୋଠରୀ ନାହିଁ" + "ଏହି ମୂଳସ୍କ୍ରୀନରେ ଆଉ ଜାଗା ନାହିଁ" "ମନପସନ୍ଦ ଟ୍ରେରେ ଆଉ କୋଠରୀ ନାହିଁ" "ଆପ୍‌ ତାଲିକା" "ବ୍ୟକ୍ତିଗତ ଆପ୍ ତାଲିକା" @@ -127,7 +129,7 @@ "ହୋମ୍‌ ସ୍କ୍ରୀନରେ ଯୋଡ଼ନ୍ତୁ" "ଆଇଟମ୍‌କୁ ଏଠାକୁ ଘୁଞ୍ଚାନ୍ତୁ" "ହୋମ୍‌ ସ୍କ୍ରୀନରେ ଆଇଟମ୍‌ ଯୋଡ଼ାଗଲା" - "ଆଇଟମ୍‌ ବାହାର କରାଗଲା" + "ଆଇଟମକୁ କାଢ଼ି ଦିଆଯାଇଛି" "ପୂର୍ବବତ୍‍" "ଆଇଟମ୍‌ ଘୁଞ୍ଚାନ୍ତୁ" "ଧାଡ଼ି %1$s ସ୍ତମ୍ଭ %2$sକୁ ନିଅନ୍ତୁ" @@ -154,18 +156,16 @@ "ବ୍ୟକ୍ତିଗତ" "ୱାର୍କ" "ୱର୍କ ପ୍ରୋଫାଇଲ୍‌" - "ବ୍ୟକ୍ତିଗତ ଡାଟା କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକ ଠାରୁ ପୃଥକ୍ ଓ ଲୁକ୍କାୟିତ ଅଟେ" - "କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପଗୁଡ଼ିକ ଓ ଡାଟା ଆପଣଙ୍କ IT ଆଡମିନଙ୍କୁ ଦେଖାଯାଏ" - "ପରବର୍ତ୍ତୀ" + + "ବୁଝିଗଲି" - "ୱାର୍କ ପ୍ରୋଫାଇଲକୁ ବିରତ କରାଯାଇଛି" - "ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" - "ୱାର୍କ ପ୍ରୋଫାଇଲକୁ ବିରତ କରାଯାଇଛି। ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" + "ୱାର୍କ ଆପଗୁଡ଼ିକ ବନ୍ଦ ଅଛି" + "ଆପଣଙ୍କ ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତି ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" + "ୱାର୍କ ଆପଗୁଡ଼ିକ ବନ୍ଦ ଅଛି। ଆପଣଙ୍କ ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତି ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ବ୍ୟାଜ୍ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କୁ ଦେଖାଯାଉଛି" "ବୁଝିଗଲି" - "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ବିରତ କରନ୍ତୁ" - "ଚାଲୁ କରନ୍ତୁ" + "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ବନ୍ଦ କରନ୍ତୁ" + "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ଚାଲୁ କରନ୍ତୁ" "ଫିଲ୍ଟର୍" - "କାର୍ଯ୍ୟସ୍ଥଳୀ ଆପ୍ ଏବଂ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବିରତ କରନ୍ତୁ" "ବିଫଳ ହୋଇଛି: %1$s" diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index 64a180a651..993b16a11b 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -51,11 +51,12 @@ "ਨਿੱਜੀ" "ਕਾਰਜ-ਸਥਾਨ" "ਗੱਲਾਂਬਾਤਾਂ" - + "ਤੁਹਾਡੀਆਂ ਉਂਗਲਾਂ \'ਤੇ ਲਾਹੇਵੰਦ ਜਾਣਕਾਰੀ" + "ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹੇ ਬਿਨਾਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਆਪਣੀ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਵਿਜੇਟ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ" + - - - + "ਸਮਝ ਲਿਆ" + "ਐਪਾਂ ਖੋਜੋ" "ਐਪਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." @@ -65,7 +66,7 @@ "ਸੂਚਨਾਵਾਂ" "ਕਿਸੇ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਲਿਜਾਉਣ ਲਈ ਸਪੱਰਸ਼ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।" "ਕਿਸੇ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਲਿਜਾਉਣ ਲਈ ਡਬਲ ਟੈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ ਜਾਂ ਵਿਉਂਤੀਆਂ ਕਾਰਵਾਈਆਂ ਵਰਤੋ।" - "ਇਸ ਹੋਮ ਸਕ੍ਰੀਨ ਲਈ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ ਹੈ।" + "ਇਸ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਹੋਰ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੈ।" "ਮਨਪਸੰਦ ਟ੍ਰੇ ਵਿੱਚ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ।" "ਐਪ ਸੂਚੀ" "ਨਿੱਜੀ ਐਪਾਂ ਦੀ ਸੂਚੀ" @@ -155,20 +156,18 @@ "ਬੰਦ ਕਰੋ" "ਸੂਚਨਾ ਖਾਰਜ ਕੀਤੀ ਗਈ" "ਨਿੱਜੀ" - "ਕਾਰਜ-ਸਥਾਨ" + "ਕੰਮ ਸੰਬੰਧੀ" "ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ" - "ਨਿੱਜੀ ਡਾਟਾ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੋਂ ਵੱਖ ਅਤੇ ਲੁਕਾਇਆ ਹੋਇਆ ਹੈ" - "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਅਤੇ ਡਾਟਾ ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਦਿਖਣਯੋਗ ਹੈ" - "ਅੱਗੇ" + + "ਸਮਝ ਲਿਆ" - "ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ" - "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" - "ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ। ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" + "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਬੰਦ ਹਨ" + "ਤੁਹਾਡੀਆਂ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" + "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਬੰਦ ਹਨ। ਤੁਹਾਡੀਆਂ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਬੈਜ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਹ ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਦਿਸਣਗੀਆਂ" "ਸਮਝ ਲਿਆ" - "ਕੰਮ ਸੰਬੰਧੀ ਐਪ ਰੋਕੋ" - "ਚਾਲੂ ਕਰੋ" + "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਬੰਦ ਕਰੋ" + "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਚਾਲੂ ਕਰੋ" "ਫਿਲਟਰ" - "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਅਤੇ ਸੂਚਨਾਵਾਂ ਨੂੰ ਰੋਕੋ" "ਇਹ ਕਾਰਵਾਈ ਅਸਫਲ ਹੋਈ: %1$s" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 770f3440a7..d55f6f5173 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -57,7 +57,9 @@ "Rozmowy" "Użyteczne informacje w zasięgu ręki" "Aby uzyskać informacje bez otwierania aplikacji, możesz dodać widżety do ekranu głównego" + "Kliknij, aby zmienić ustawienia widżetu" "OK" + "Zmień ustawienia widżetu" "Wyszukaj aplikacje" "Ładuję aplikacje…" "Nie znaleziono aplikacji pasujących do zapytania „%1$s”" @@ -160,18 +162,16 @@ "Osobiste" "Służbowe" "Profil służbowy" - "Dane osobiste znajdują się w innym miejscu i są niewidoczne dla aplikacji służbowych" - "Dane i aplikacje z profilu służbowego są widoczne dla Twojego administratora IT" - "Dalej" + + "OK" - "Wstrzymano profil służbowy" - "Aplikacje służbowe nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" - "Wstrzymano profil służbowy. Aplikacje służbowe nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" + "Aplikacje służbowe są wyłączone" + "Aplikacje służbowe nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" + "Aplikacje służbowe są wyłączone i nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" "Aplikacje służbowe mają plakietki i są widoczne dla administratora IT" "OK" - "Wstrzymaj aplikacje służbowe" - "Włącz" + "Wyłącz aplikacje służbowe" + "Włącz aplikacje służbowe" "Filtruj" - "Wstrzymaj służbowe aplikacje i powiadomienia" "Niepowodzenie: %1$s" diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 84c472f642..d844da3c22 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -53,7 +53,9 @@ "Conversas" "Informações úteis à sua disposição" "Para obter informações sem abrir apps, pode adicionar widgets ao seu ecrã principal" + "Toque para alterar as definições do widget" "OK" + "Alterar definições do widget" "Pesquisar aplicações" "A carregar aplicações…" "Nenhuma app correspondente a \"%1$s\"" @@ -100,7 +102,7 @@ "Pasta: %1$s, %2$d itens" "Pasta: %1$s, %2$d ou mais itens" "Imagens de fundo" - "Imagem de fundo e estilo" + "Imagem fundo/estilo" "Definições de início" "Desativada pelo gestor" "Permitir rotação do ecrã principal" @@ -154,18 +156,16 @@ "Pessoal" "Trabalho" "Perfil de trabalho" - "Os dados pessoais são separados e ocultos das apps de trabalho" - "Os dados e apps de trabalho estão visíveis para o seu administrador de TI" - "Seguinte" + + "OK" - "Perfil de trabalho em pausa" - "As apps de trabalho não podem enviar-lhe notificações, utilizar a sua bateria ou aceder à sua localização" - "O perfil de trabalho está em pausa. As apps de trabalho não podem enviar-lhe notificações, utilizar a sua bateria ou aceder à sua localização" + "As apps de trabalho estão desativadas" + "As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização" + "As apps de trabalho estão desativadas. As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização" "As apps de trabalho têm um emblema e estão visíveis para o seu administrador de TI" "OK" - "Colocar apps de trabalho em pausa" - "Ativar" + "Desativar apps de trabalho" + "Ativar apps de trabalho" "Filtrar" - "Coloque as apps de trabalho e as notificações em pausa" "Falhou: %1$s" diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index c44ffc8294..a29cc4968f 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -48,12 +48,14 @@ "Limpar texto da caixa de pesquisa" "Nenhum widget disponível" "Nenhum resultado de pesquisa" - "Pessoal" + "Pessoais" "Trabalho" "Conversas" "Informações úteis ao seu alcance" "Para receber informações sem precisar abrir apps, adicione widgets à sua tela inicial" + "Toque para mudar as configurações do widget" "Ok" + "Mudar as configurações do widget" "Pesquisar apps" "Carregando apps…" "Nenhum app encontrado que corresponda a \"%1$s\"" @@ -154,18 +156,16 @@ "Pessoais" "Trabalho" "Perfil de trabalho" - "Os dados pessoais ficam separados e ocultos dos apps de trabalho" - "Os dados de apps de trabalho ficam visíveis para seu administrador de TI" - "Próxima" + + "Ok" - "O perfil de trabalho está pausado" - "Os apps de trabalho não podem enviar notificações, usar a bateria nem acessar o local" - "O perfil de trabalho está pausado. Os apps de trabalho não podem enviar notificações, usar a bateria nem acessar o local" + "Os apps de trabalho estão desativados" + "Os apps de trabalho não podem enviar notificações, usar a bateria nem acessar o local" + "Os apps de trabalho estão desativados. Eles não podem enviar notificações, usar a bateria nem acessar o local" "Os apps de trabalho têm um ícone e ficam visíveis para o administrador de TI" "Ok" - "Pausar apps de trabalho" - "Ativar" + "Desativar apps de trabalho" + "Ativar apps de trabalho" "Filtrar" - "Pausar apps e notificações de trabalho" "Falha: %1$s" diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 16f0ade92f..6fb48aa000 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -55,7 +55,9 @@ "Conversații" "Informații utile la îndemâna dvs." "Pentru a primi informații fără să deschideți aplicațiile, puteți adăuga widgeturi pe ecranul de pornire" + "Atingeți ca să schimbați setările pentru widgeturi" "OK" + "Modificați setările pentru widgeturi" "Căutați aplicații" "Se încarcă aplicații…" "Nu s-a găsit nicio aplicație pentru „%1$s\"" @@ -157,18 +159,16 @@ "Personale" "Profesionale" "Profil de serviciu" - "Datele cu caracter personal sunt separate și ascunse de aplicațiile pentru lucru" - "Aplicațiile și datele pentru lucru sunt vizibile pentru administratorul IT" - "Înainte" + + "OK" - "Profilul de serviciu este întrerupt" - "Aplicațiile pentru lucru nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația" - "Profilul de serviciu este întrerupt. Aplicațiile pentru lucru nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația" + "Aplicațiile pentru lucru sunt dezactivate" + "Aplicațiile pentru lucru nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația" + "Aplicațiile pentru lucru sunt dezactivate. Acestea nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația." "Aplicațiile pentru lucru sunt marcate și vizibile pentru administratorul IT" "OK" - "Întrerupeți aplicațiile pentru lucru" - "Activați" + "Dezactivați aplicațiile pentru lucru" + "Activați aplicațiile pentru lucru" "Filtru" - "Întrerupeți aplicațiile pentru lucru și notificările" "Eșuare: %1$s" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 6d2f9e5d2e..5adf04b3b1 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -57,7 +57,9 @@ "Разговоры" "Вся нужная информация перед глазами" "Чтобы не открывать приложения каждый раз, когда нужна информация, добавьте виджеты на главный экран." + "Нажмите, чтобы изменить настройки виджета" "ОК" + "Изменить настройки виджета" "Поиск приложений" "Загрузка приложений…" "По запросу \"%1$s\" ничего не найдено" @@ -66,7 +68,7 @@ "Уведомления" "Нажмите и удерживайте для переноса ярлыка." "Чтобы использовать специальные действия или перенести ярлык, нажмите на него дважды и удерживайте." - "На этом экране все занято" + "На этом экране нет свободного места." "В разделе \"Избранное\" больше нет места" "Список приложений" "Открыть список личных приложений" @@ -133,7 +135,7 @@ "Добавить на главный экран" "Переместить элемент сюда" "Элемент добавлен на главный экран" - "Элемент удален." + "Объект удален." "Отменить" "Переместить элемент" "Переместить в ячейку %1$s %2$s" @@ -160,18 +162,16 @@ "Личные" "Рабочие" "Рабочий профиль" - "Личные данные скрыты от рабочих приложений и недоступны им." - "Рабочие приложения и их данные видны системному администратору." - "Далее" + + "ОК" - "Рабочий профиль приостановлен" - "Рабочие приложения не могут отправлять уведомления, расходовать заряд батареи и получать доступ к данным о вашем местоположении." - "Рабочий профиль приостановлен. Рабочие приложения не могут отправлять уведомления, расходовать заряд батареи и получать доступ к данным о вашем местоположении." + "Рабочие приложения отключены" + "Рабочие приложения не могут отправлять уведомления, расходовать заряд батареи и получать доступ к данным о вашем местоположении." + "Рабочие приложения отключены. Они не могут отправлять уведомления, расходовать заряд батареи и получать доступ к вашему местоположению." "У рабочих приложений есть специальная пометка. Они видны системному администратору." "ОК" - "Приостановить рабочие приложения" - "Включить" + "Отключить рабочие приложения" + "Включить рабочие приложения" "Фильтр" - "Приостановить рабочие приложения и уведомления от них" "Не удалось выполнить действие (%1$s)." diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index 2ba06fabff..e9e1062b73 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -53,7 +53,9 @@ "සංවාද" "ප්‍රයෝජනවත් තොරතුරු ඔබගේ ඇඟිලි තුඩු අග" "යෙදුම් විවෘත නොකර තොරතුරු ලබා ගැනීම සඳහා, ඔබට ඔබගේ මුල් තිරයට විජට් එක් කළ හැකිය" + "විජට් සැකසීම් වෙනස් කිරීමට තට්ටු කරන්න" "තේරුණා" + "විජට් සැකසීම් වෙනස් කරන්න" "යෙදුම් සොයන්න" "යෙදුම් පූරණය වෙමින්…" "\"%1$s\" සමග ගැළපෙන යෙදුම් හමු නොවිණි" @@ -154,18 +156,16 @@ "පුද්ගලික" "කාර්යාලය" "කාර්යාල පැතිකඩ" - "පෞද්ගලික දත්ත කාර්යාල යෙදුම්වලින් වෙන් කර සඟවා ඇත" - "කාර්යාල යෙදුම් & දත්ත ඔබගේ IT පරිපාලකට දෘශ්‍යමාන වේ" - "ඊළඟ" + + "තේරුණා" - "කාර්යාල පැතිකඩ විරාම කර ඇත" - "කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" - "කාර්යාල පැතිකඩ විරාම කර ඇත. කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" + "කාර්යාල යෙදුම් ක්‍රියාවිරහිතයි" + "ඔබගේ කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" + "කාර්යාල යෙදුම් ක්‍රියාවිරහිතයි. ඔබගේ කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" "කාර්යාල යෙදුම්වලට ලාංඡන යොදා ඇති අතර ඔබගේ IT පරිපාලකට දෘශ්‍යමාන වේ" "තේරුණා" - "කාර්යාල යෙදුම් විරාම කරන්න" - "ක්‍රියාත්මක කරන්න" + "කාර්යාල යෙදුම් ක්‍රියාවිරහිත කරන්න" + "කාර්යාල යෙදුම් ක්‍රියාත්මක කරන්න" "පෙරහන" - "කාර්යාල යෙදුම් සහ දැනුම් දීම් විරාම කරන්න" "අසාර්ථකයි: %1$s" diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index cbb082aed1..56637aed78 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -57,7 +57,9 @@ "Konverzácie" "Užitočné informácie poruke" "Ak chcete získavať informácie bez otvárania aplikácií, môžete si pridať miniaplikácie na plochu" + "Klepnutím zmeňte nastavenia miniaplikácie" "Dobre" + "Zmena nastavení miniaplikácie" "Hľadať aplikácie" "Načítavajú sa aplikácie…" "Nenašli sa žiadne aplikácie zodpovedajúce dopytu %1$s" @@ -160,18 +162,16 @@ "Osobné" "Pracovné" "Pracovný profil" - "Osobné údaje sú oddelené a sú pred pracovnými aplikáciami skryté" - "Pracovné aplikácie a údaje môže vidieť váš správca IT" - "Ďalej" + + "Dobre" - "Pracovný profil je pozastavený" - "Pracovné aplikácie vám nemôžu posielať upozornenia, používať vašu batériu ani vašu polohu" - "Pracovný profil je pozastavený. Pracovné aplikácie nemôžu posielať upozornenia, používať batériu ani polohu." + "Pracovné aplikácie sú vypnuté" + "Pracovné aplikácie nemôžu posielať upozornenia ani používať batériu či polohu." + "Pracovné aplikácie sú vypnuté. Nemôžu posielať upozornenia ani používať batériu či polohu." "Pracovné aplikácie majú odznak a zobrazujú sa správcovi IT" "Dobre" - "Pozastaviť pracovné aplikácie" - "Zapnúť" + "Vypnúť pracovné aplikácie" + "Zapnúť pracovné aplikácie" "Filtrujte" - "Pozastavte pracovné aplikácie a upozornenia" "Zlyhalo: %1$s" diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 57461a1e89..3cf34d4a7a 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -52,12 +52,14 @@ "Brisanje besedila v iskalnem polju" "Ni pripomočkov" "Ni rezultatov iskanja" - "Osebno" + "Osebni" "Služba" "Pogovori" "Koristne informacije na dosegu prstov" "Če si želite podatke ogledati brez odpiranja aplikacij, lahko na začetni zaslon dodate pripomočke." + "Dotaknite se, če želite spremeniti nastavitve pripomočka." "V redu" + "Spreminjanje nastavitev pripomočka" "Iskanje programov" "Nalaganje aplikacij …" "Ni aplikacij, ki bi ustrezale poizvedbi »%1$s«" @@ -160,18 +162,16 @@ "Osebno" "Delo" "Delovni profil" - "Osebni podatki so ločeni in skriti pred delovnimi aplikacijami" - "Delovne aplikacije in službeni podatki so vidni skrbniku za IT" - "Naprej" + + "Razumem" - "Delovni profil je začasno zaustavljen" - "Delovne aplikacije ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." - "Delovni profil je začasno zaustavljen. Delovne aplikacije ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." + "Delovne aplikacije so izklopljene." + "Delovne aplikacije ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." + "Delovne aplikacije so izklopljene in ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." "Delovne aplikacije so označene z značko in vidne skrbniku za IT." "V redu" - "Začasno zaustavi delovne aplikacije" - "Vklopi" + "Izklopi delovne aplikacije" + "Vklopi delovne aplikacije" "Filtriranje" - "Začasna zaustavitev delovnih aplikacij in obvestil" "Ni uspelo: %1$s" diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 1054092634..62537f2312 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -53,7 +53,9 @@ "Bisedat" "Informacione të dobishme në majë të gishtave të tu" "Për të marrë informacione pa i hapur aplikacionet, mund të shtosh miniaplikacione në ekranin bazë" + "Trokit për të ndryshuar cilësimet e miniaplikacionit" "E kuptova" + "Ndrysho cilësimet e miniaplikacionit" "Kërko për aplikacione" "Po ngarkon aplikacionet..." "Nuk u gjet asnjë aplikacion që përputhet me \"%1$s\"" @@ -154,18 +156,16 @@ "Personale" "Punë" "Profili i punës" - "Të dhënat personale janë të veçuara dhe të fshehura nga aplikacionet e punës" - "Aplikacionet e punës dhe të dhënat janë të dukshme për administratorin e teknologjisë së informacionit" - "Para" + + "E kuptova" - "Profili i punës është në pauzë" - "Aplikacionet e punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" - "Profili i punës është në pauzë. Aplikacionet e punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" + "Aplikacionet e punës janë joaktive" + "Aplikacionet e tua të punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" + "Aplikacionet e punës janë joaktive. Aplikacionet e tua të punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" "Aplikacionet e punës janë të shënuara dhe të dukshme për administratorin e teknologjisë së informacionit" "E kuptova" - "Vendos në pauzë aplikacionet e punës" - "Aktivizo" + "Çaktivizo aplikacionet e punës" + "Aktivizo aplikacionet e punës" "Filtro" - "Vendos në pauzë aplikacionet e punës dhe njoftimet" "Dështoi: %1$s" diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 2e87b439bf..d5f8598b1a 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -46,7 +46,7 @@ "%1$s, %2$s" "Виџети" - "Претрага" + "Претражите" "Обришите текст из оквира за претрагу" "Није доступан ниједан виџет" "Нема резултата претраге" @@ -55,7 +55,9 @@ "Конверзације" "Корисне информације надохват руке" "Да бисте пронашли информације без отварања апликација, можете да додате виџете на почетни екран" + "Додирните да бисте променили подешавања виџета" "Важи" + "Промените подешавања виџета" "Претражите апликације" "Апликације се учитавају…" "Није пронађена ниједна апликација за „%1$s“" @@ -157,18 +159,16 @@ "Личне" "Пословне" "Пословни профил" - "Лични подаци су одвојени и сакривени од апликација за посао" - "ИТ администратор види пословне апликације и податке" - "Даље" + + "Важи" - "Пословни профил је паузиран" - "Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" - "Пословни профил је паузиран. Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" + "Пословне апликације су искључене" + "Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" + "Пословне апликације су искључене. Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" "Пословне апликације су означене значком и ИТ администратор може да их види" "Важи" - "Паузирај пословне апликације" - "Укључи" + "Искључи пословне апликације" + "Укључи пословне апликације" "Филтер" - "Паузирајте пословне апликације и обавештења" "Није успело: %1$s" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 29ef67d3e2..03872280ba 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -48,12 +48,14 @@ "Rensa texten från sökrutan" "Det finns inga tillgängliga widgetar" "Inga sökresultat" - "Privata widgetar" + "Privata" "Arbete" "Konversationer" "Användbar information nära till hands" "Om du vill ha information utan att öppna appar kan du lägga till widgetar på startskärmen" + "Tryck för att ändra inställningarna för widgeten" "OK" + "Ändra inställningarna för widgeten" "Sök efter appar" "Läser in appar …" "Inga appar som matchar %1$s hittades" @@ -154,18 +156,16 @@ "Privat" "Arbete" "Jobbprofil" - "Privat data lagras för sig och är inte synlig för jobbapparna" - "Jobbappar och jobbdata är synliga för IT-administratören" - "Nästa" + + "OK" - "Jobbprofilen är pausad" - "Jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" - "Jobbprofilen är pausad. Jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" + "Jobbappar är inaktiverade" + "Dina jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" + "Jobbappar är inaktiverade. Dina jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" "Jobbappar är märkta och synliga för IT-administratören" "OK" - "Pausa jobbappar" - "Aktivera" + "Inaktivera jobbappar" + "Aktivera jobbappar" "Filter" - "Pausa jobbappar och jobbaviseringar" "Misslyckades: %1$s" diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 7829bebe16..c8463499db 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -53,7 +53,9 @@ "Mazungumzo" "Maelezo muhimu mahali popote ulipo" "Ili upate maelezo bila kufungua programu, unaweza kuweka wijeti kwenye Skrini yako ya kwanza" + "Gusa ili ubadilishe mipangilio ya wijeti" "Nimeelewa" + "Badilisha mipangilio ya wijeti" "Tafuta programu" "Inapakia programu..." "Haikupata programu zozote zinazolingana na \"%1$s\"" @@ -154,18 +156,16 @@ "Binafsi" "Kazini" "Wasifu wa kazini" - "Data binafsi iko kando na haionyeshwi kwenye programu za kazini" - "Programu na data ya kazini huonekana kwa msimamizi wako wa TEHAMA" - "Endelea" + + "Nimeelewa" - "Wasifu wa kazini umesimamishwa" - "Programu za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" - "Wasifu wa kazini umesimamishwa. Programu za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" + "Programu za kazini zimezimwa" + "Programu zako za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" + "Programu za kazini zimezimwa. Programu zako za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" "Programu za kazini zina beji na zinaonekana kwa msimamizi wako wa TEHAMA" "Nimeelewa" - "Simamisha programu za kazini" - "Washa" + "Zima programu za kazini" + "Washa programu za kazini" "Kichujio" - "Simamisha arifa na programu za kazini" "Hitilafu: %1$s" diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index 6fe5a388fa..cfd4b3660a 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -53,7 +53,9 @@ "உரையாடல்கள்" "விரல்நுனியில் பயனுள்ள தகவல்களைப் பெறுங்கள்" "ஆப்ஸைத் திறக்காமல் தகவல்களைப் பெற, முகப்புத் திரையில் விட்ஜெட்டுகளைச் சேர்க்கலாம்" + "விட்ஜெட் அமைப்புகளை மாற்றத் தட்டவும்" "சரி" + "விட்ஜெட் அமைப்புகளை மாற்றும்" "பயன்பாடுகளில் தேடுக" "ஆப்ஸை ஏற்றுகிறது…" "\"%1$s\" உடன் பொருந்தும் ஆப்ஸ் இல்லை" @@ -154,18 +156,16 @@ "தனிப்பட்டவை" "பணி" "பணிக் கணக்கு" - "தனிப்பட்ட தரவு பணி ஆப்ஸுடன் சேர்ந்ததல்ல என்பதோடு பணி ஆப்ஸில் இருந்து அவை மறைக்கப்பட்டிருக்கும்" - "பணி ஆப்ஸையும் தரவையும் உங்கள் IT நிர்வாகியால் பார்க்க முடியும்" - "அடுத்து" + + "முடிந்தது" - "பணிக் கணக்கு இடைநிறுத்தப்பட்டது" - "பணி ஆப்ஸால் அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ இருப்பிடத்தை அணுகவோ முடியாது" - "பணிக் கணக்கு இடைநிறுத்தப்பட்டது. பணி ஆப்ஸால் அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ இருப்பிடத்தை அணுகவோ முடியாது" + "பணி ஆப்ஸ் முடக்கப்பட்டுள்ளன" + "பணி ஆப்ஸால் உங்களுக்கு அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ உங்கள் இருப்பிடத்தை அணுகவோ முடியாது" + "பணி ஆப்ஸ் முடக்கப்பட்டுள்ளன. அவற்றால் உங்களுக்கு அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ உங்கள் இருப்பிடத்தை அணுகவோ முடியாது" "பணி ஆப்ஸ் பேட்ஜ் குறியிடப்பட்டுள்ளன. மேலும் உங்கள் IT நிர்வாகியால் அவற்றைப் பார்க்க முடியும்" "சரி" - "பணி ஆப்ஸை இடைநிறுத்து" - "இயக்கு" + "பணி ஆப்ஸை முடக்கு" + "பணி ஆப்ஸை இயக்கு" "வடிப்பான்" - "பணி தொடர்பான ஆப்ஸையும் அறிவிப்புகளையும் இடைநிறுத்தும்" "தோல்வி: %1$s" diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index 7a851791c6..b42b242169 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -48,12 +48,16 @@ "సెర్చ్ బాక్స్ నుండి టెక్స్ట్‌ను క్లియర్ చేయి" "విడ్జెట్‌లు అందుబాటులో లేవు" "సెర్చ్ ఫలితాలు లేవు" - "వ్యక్తిగతం" + "వ్యక్తిగత గ్యాడ్జెట్స్" "ఆఫీస్" "సంభాషణలు" "మీ చేతివేళ్ల మీద ఉపయోగకరమైన సమాచారం" "యాప్‌లను తెరవకుండా సమాచారం పొందడానికి, మీరు మీ మొదటి స్క్రీన్‌కు విడ్జెట్‌లను జోడించవచ్చు" + + "అర్థమైంది" + + "అప్లికేషన్‌లను శోధించండి" "అప్లికేషన్‌లను లోడ్ చేస్తోంది…" "\"%1$s\"కి సరిపోలే అప్లికేషన్‌లేవీ కనుగొనబడలేదు" @@ -101,9 +105,9 @@ "ఫోల్డర్: %1$s, %2$d లేదా అంతకంటే ఎక్కువ ఐటెమ్‌లు" "వాల్‌పేపర్‌లు" "వాల్‌పేపర్ & స్టయిల్" - "హోమ్ సెట్టింగ్‌లు" + "మొదటి స్క్రీన్ సెట్టింగ్‌లు" "మీ నిర్వాహకులు నిలిపివేసారు" - "హోమ్ స్క్రీన్ రొటేషన్‌ను అనుమతించండి" + "మొదటి స్క్రీన్ రొటేషన్‌ను అనుమతించండి" "ఫోన్‌‌ను తిప్పినప్పుడు" "నోటిఫికేషన్ డాట్‌లు" "ఆన్" @@ -112,7 +116,7 @@ "నోటిఫికేషన్ డాట్‌లను చూపించడానికి %1$sకు యాప్ నోటిఫికేషన్‌లను ఆన్ చేయండి" "సెట్టింగ్‌లను మార్చు" "నోటిఫికేషన్ డాట్‌లను చూపు" - "యాప్ చిహ్నాలను హోమ్ స్క్రీన్‌కు జోడించు" + "యాప్ చిహ్నాలను మొదటి స్క్రీన్‌కు జోడించు" "కొత్త యాప్‌ల కోసం" "తెలియదు" "తీసివేయి" @@ -127,7 +131,7 @@ "హోమ్ స్క్రీన్‌కు జోడించండి" "అంశాన్ని ఇక్కడికి తరలించు" "అంశం హోమ్‌స్క్రీన్‌కి జోడించబడింది" - "అంశం తీసివేయబడింది" + "ఐటెమ్ తీసివేయబడింది" "చర్య రద్దు" "అంశాన్ని తరలించు" "అడ్డు వరుస %1$s నిలువు వరుస %2$sకి తరలించు" @@ -154,18 +158,16 @@ "వ్యక్తిగతం" "కార్యాలయం" "కార్యాలయ ప్రొఫైల్" - "వ్యక్తిగత డేటా అనేది విడిగా & ఆఫీస్ యాప్‌లకు యాక్సెస్ లేకుండా, దాచబడి ఉంటుంది" - "ఆఫీస్ యాప్‌లు & డేటా మీ IT అడ్మిన్‌కు కనిపిస్తాయి" - "తర్వాత" + + "అర్థమైంది" - "ఆఫీస్ ప్రొఫైల్ పాజ్ చేయబడింది" - "మీకు నోటిఫికేషన్‌లు పంపడం, మీ బ్యాటరీని ఉపయోగించడం, లేదా మీ లొకేషన్‌ను యాక్సెస్ చేయడం \'వర్క్ యాప్\'‌లకు సాధ్యపడదు" - "వర్క్ ప్రొఫైల్ పాజ్ చేయబడింది. మీకు నోటిఫికేషన్‌లు పంపడం, మీ బ్యాటరీని ఉపయోగించడం, లేదా మీ లొకేషన్‌ను యాక్సెస్ చేయడం \'వర్క్ యాప్\'‌లకు సాధ్యపడదు" + "వర్క్ యాప్‌లు ఆఫ్‌లో ఉన్నాయి" + "మీకు నోటిఫికేషన్‌లు పంపడం, మీ బ్యాటరీని ఉపయోగించడం, లేదా మీ లొకేషన్‌ను యాక్సెస్ చేయడం మీ వర్క్ యాప్‌లకు సాధ్యపడదు" + "వర్క్ యాప్‌లు ఆఫ్‌లో ఉన్నాయి. మీకు నోటిఫికేషన్‌లు పంపడం, మీ బ్యాటరీని ఉపయోగించడం, లేదా మీ లొకేషన్‌ను యాక్సెస్ చేయడం మీ వర్క్ యాప్‌లకు సాధ్యపడదు" "వర్క్ యాప్‌లు బ్యాడ్జ్ చేయబడ్డాయి, మీ IT అడ్మిన్‌కి కనిపిస్తాయి" "అర్థమైంది" - "వర్క్ యాప్‌లను పాజ్ చేయి" - "ఆన్ చేయి" + "వర్క్ యాప్‌లను ఆఫ్ చేయి" + "వర్క్ యాప్‌లను ఆన్ చేయి" "ఫిల్టర్ చేయి" - "ఆఫీస్ యాప్‌లు, నోటిఫికేషన్‌లను పాజ్ చేయండి" "విఫలమైంది: %1$s" diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 0011d70c01..cbb7d2a953 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -53,7 +53,9 @@ "การสนทนา" "เข้าถึงข้อมูลที่เป็นประโยชน์ได้ที่ปลายนิ้ว" "หากต้องการรับข้อมูลโดยไม่เปิดแอป ให้เพิ่มวิดเจ็ตลงในหน้าจอหลัก" + "แตะเพื่อเปลี่ยนการตั้งค่าวิดเจ็ต" "รับทราบ" + "เปลี่ยนการตั้งค่าวิดเจ็ต" "ค้นหาแอป" "กำลังโหลดแอป…" "ไม่พบแอปที่ตรงกับ \"%1$s\"" @@ -109,7 +111,7 @@ "เปิด" "ปิด" "ต้องได้รับสิทธิ์เข้าถึงการแจ้งเตือน" - "เปิดการแจ้งเตือนแอปของ %1$s เพื่อแสดงจุดแจ้งเตือน" + "เปิดการแจ้งเตือนแอปของ %1$s เพื่อแสดงเครื่องหมายจุดแสดงการแจ้งเตือน" "เปลี่ยนการตั้งค่า" "แสดงเครื่องหมายจุดแสดงการแจ้งเตือน" "เพิ่มไอคอนแอปในหน้าจอหลัก" @@ -127,7 +129,7 @@ "เพิ่มลงในหน้าจอหลัก" "ย้ายรายการมาที่นี่" "เพิ่มรายการไปยังหน้าจอหลักแล้ว" - "นำออกรายการออกแล้ว" + "นำรายการออกแล้ว" "เลิกทำ" "ย้ายรายการ" "ย้ายไปที่แถว %1$s คอลัมน์ %2$s" @@ -154,18 +156,16 @@ "ส่วนตัว" "งาน" "โปรไฟล์งาน" - "ข้อมูลส่วนตัวจะอยู่แยกต่างหากและซ่อนจากแอปงาน" - "ผู้ดูแลระบบไอทีจะดูแอปและข้อมูลงานได้" - "ถัดไป" + + "รับทราบ" - "โปรไฟล์งานหยุดชั่วคราว" - "แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" - "โปรไฟล์งานหยุดชั่วคราว แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" + "แอปงานปิดอยู่" + "แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" + "แอปงานปิดอยู่ แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" "แอปงานจะติดป้ายไว้และผู้ดูแลระบบไอทีจะมองเห็น" "รับทราบ" - "หยุดแอปงานชั่วคราว" - "เปิด" + "ปิดแอปงาน" + "เปิดแอปงาน" "ตัวกรอง" - "หยุดแอปงานและการแจ้งเตือนไว้ชั่วคราว" "ไม่สำเร็จ: %1$s" diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index cd662e1eec..aefb1204ed 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -53,7 +53,9 @@ "Mga Pag-uusap" "Abot-kamay na mahalagang impormasyon" "Para makakuha ng impormasyon nang hindi nagbubukas ng mga app, puwede kang magdagdag ng mga widget sa iyong Home screen" + "I-tap para baguhin ang mga setting ng widget" "OK" + "Baguhin ang mga setting ng widget" "Maghanap ng mga app" "Naglo-load ng mga app…" "Walang nahanap na app na tumutugma sa \"%1$s\"" @@ -154,18 +156,16 @@ "Personal" "Trabaho" "Profile sa trabaho" - "Hiwalay at nakatago ang personal na data sa mga app para sa trabaho" - "Makikita ng iyong IT admin ang mga app at data para sa trabaho" - "Susunod" + + "OK" - "Naka-pause ang profile sa trabaho" - "Ang mga app para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng battery mo, o makaka-access ng iyong lokasyon" - "Naka-pause ang profile sa trabaho. Ang mga app para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng battery mo, o makaka-access ng iyong lokasyon" + "Naka-off ang mga app para sa trabaho" + "Ang mga app mo para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng baterya mo, o makaka-access ng iyong lokasyon" + "Naka-off ang mga app para sa trabaho. Ang mga app mo para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng baterya mo, o makaka-access ng iyong lokasyon" "May badge at nakikita ng iyong IT admin ang mga app para sa trabaho" "OK" - "I-pause ang mga app para sa trabaho" - "I-on" + "I-off ang mga app para sa trabaho" + "I-on ang mga app para sa trabaho" "Filter" - "I-pause ang mga app at notification para sa trabaho" "Hindi nagawa: %1$s" diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 5691fc044d..6c4e541f68 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -53,7 +53,9 @@ "Görüşmeler" "Faydalı bilgiler parmaklarınızın ucunda" "Uygulamaları açmadan bilgi almak için Ana ekranınıza widget\'lar ekleyebilirsiniz" + "Widget ayarlarını değiştirmek için dokunun" "Anladım" + "Widget ayarlarını değiştir" "Uygulamalarda ara" "Uygulamalar yükleniyor…" "\"%1$s\" ile eşleşen uygulama bulunamadı" @@ -112,7 +114,7 @@ "Bildirim Noktaları\'nı göstermek için %1$s uygulamasının bildirimlerini açın" "Ayarları değiştir" "Bildirim noktalarını göster" - "Uygulama simgelerini Ana ekrana ekleyin" + "Uygulama simgelerini Ana ekrana ekle" "Yeni uygulamalar için" "Bilinmiyor" "Kaldır" @@ -154,18 +156,16 @@ "Kişisel" "İş" "İş profili" - "Kişisel veriler ayrı olup iş uygulamalarından gizlenir" - "BT yöneticiniz iş uygulamalarını ve verilerini görebilir" - "İleri" + + "Anladım" - "İş profili duraklatıldı" - "İş uygulamaları size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" - "İş profili duraklatıldı. İş uygulamaları size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" + "İş uygulamaları kapalı" + "İş uygulamaları size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" + "İş uygulamaları kapalı. İş uygulamalarınız size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" "İş uygulamaları rozetle işaretlenmiş olup BT yöneticisi tarafından görülebilir" "Anladım" - "İş uygulamalarını duraklat" - "Aç" + "İş uygulamalarını kapat" + "İş uygulamalarını aç" "Filtre" - "İş uygulamalarını ve bildirimlerini duraklatın" "Başarısız: %1$s" diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index f0d486d108..1677c9e67d 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -57,7 +57,9 @@ "Розмови" "Корисна інформація завжди під рукою" "Щоб отримувати інформацію, не відкриваючи додатки, ви можете додати на головний екран віджети" + "Натисніть, щоб змінити налаштування віджета" "OK" + "Змінити налаштування віджета" "Пошук додатків" "Завантаження додатків…" "Немає додатків для запиту \"%1$s\"" @@ -106,7 +108,7 @@ "Папка \"%1$s\", елементів: %2$d" "Папка \"%1$s\", елементів: %2$d або більше" "Фонові малюнки" - "Фоновий малюнок і стиль" + "Оформлення та стиль" "Налаштування головного екрана" "Вимкнув адміністратор" "Дозволити обертання головного екрана" @@ -160,18 +162,16 @@ "Особисті додатки" "Робочі додатки" "Робочий профіль" - "Персональні дані зберігаються окремо, вони недоступні для робочих додатків" - "ІТ-адміністратор бачить ваші робочі додатки й дані" - "Далі" + + "OK" - "Робочий профіль призупинено" - "Робочі додатки не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих" - "Робочий профіль призупинено. Робочі додатки не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих" + "Робочі додатки вимкнено" + "Ваші робочі додатки не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих" + "Робочі додатки вимкнено. Вони не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих." "Робочі додатки відповідно позначені й видимі системному адміністратору" "Зрозуміло" - "Призупинити робочі додатки" - "Увімкнути" + "Вимкнути робочі додатки" + "Увімкнути робочі додатки" "Фільтр" - "Призупинити робочі додатки й сповіщення" "Не вдалося %1$s" diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index 1574c47e96..8545f8a9b1 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -53,7 +53,11 @@ "گفتگوئیں" "مفید معلومات کو آسانی سے حاصل کریں" "ایپس کو کھولے بغیر معلومات حاصل کرنے کے لیے آپ اپنی ہوم اسکرین پر ویجیٹس شامل کر سکتے ہیں" + + "سمجھ آ گئی" + + "ایپس تلاش کریں" "ایپس لوڈ کی جا رہی ہیں…" "\"%1$s\" سے مماثل کوئی ایپس نہیں ملیں" @@ -154,18 +158,16 @@ "ذاتی" "دفتری" "دفتری پروفائل" - "ذاتی ڈیٹا ورک ایپس سے الگ اور پوشیدہ ہے" - "‏آپ کا IT منتظم ورک ایپس اور ڈیٹا کو دیکھ سکتا ہے" - "اگلا" + + "سمجھ آ گئی" - "دفتری پروفائل روک دی گئی ہے" - "ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" - "دفتری پروفائل موقوف کر دی گئی ہے۔ ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" + "ورک ایپس آف ہیں" + "آپ کی ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری کا استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" + "ورک ایپس آف ہیں۔ آپ کی ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" "‏ورک ایپس پر بَیج لگایا ہے اور آپ کا IT منتظم انہیں دیکھ سکتا ہے" "سمجھ آ گئی" - "ورک ایپس موقوف کریں" - "آن کریں" + "ورک ایپس آف کریں" + "ورک ایپس آن کریں" "فلٹر" - "ورک ایپس اور اطلاعات کو روکیں" "ناکام ہو گيا: %1$s" diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 99bdd4b27f..d9f492339a 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -53,7 +53,9 @@ "Suhbatlar" "Barcha foydali axborot koʻz oldingizda" "Ilovalarni ochmasdan axborot olish uchun vidjetlarni bosh ekranga qoʻshishingiz mumkin" + "Vidjet sozlamalarini oʻzgartirish uchun bosing" "OK" + "Vidjet sozlamalarini oʻzgartirish" "Ilovalarni qidirish" "Ilovalar yuklanmoqda…" "“%1$s” bilan mos hech qanday ilova topilmadi" @@ -62,7 +64,7 @@ "Bildirishnomalar" "Yorliqni bosib turgan holatda suring." "Ikki marta bosing va yorliqni bosib turgan holatda suring yoki maxsus amaldan foydalaning." - "Uy ekranida bitta ham xona yo‘q." + "Bosh ekranda joy qolmadi." "Ajratilganlarda birorta ham xona yo‘q" "Ilovalar ro‘yxati" "Shaxsiy ilovalar ro‘yxati" @@ -127,7 +129,7 @@ "Bosh ekranga chiqarish" "Obyektni bu yerga ko‘chirish" "Obyekt bosh ekranga qo‘shildi" - "Obyekt o‘chirib tashlandi" + "Element olib tashlandi" "Qaytarish" "Obyektni ko‘chirib o‘tkazish" "%1$s %2$s katakka olish" @@ -154,18 +156,16 @@ "Shaxsiy" "Ish" "Ish profili" - "Shaxsiy maʼlumotlar ishga oid ilovalardan alohida va berkitilgan" - "Administratoringiz ishga oid ilovalar va maʼlumotlarni koʻra oladi" - "Keyingisi" + + "OK" - "Ish profili pauzada" - "Ishga oid ilovalar batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" - "Ish profili pauzada. Ishga oid ilovalar batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" + "Ishga oid ilovalar faolsizlantirilgan" + "Ishga oid ilovalar batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" + "Ishga oid ilovalar faolsizlantirilgan. Ular batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" "Ishga oid ilovalar qadalgan va IT administratoringizga koʻrinadi" "OK" - "Ishga oid ilovalarni pauza qilish" - "Yoqish" + "Ishga oid ilovalarni faolsizlantirish" + "Ishga oid ilovalarni yoqish" "Saralash" - "Ishga oid ilova va bildirishnomalarni pauza qilish" "Xato: %1$s" diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 9f7fea373f..e15b3235ff 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -53,7 +53,9 @@ "Cuộc trò chuyện" "Thông tin hữu ích ngay trong tầm tay bạn" "Để nhận thông tin mà không cần mở các ứng dụng, bạn có thể thêm tiện ích vào Màn hình chính" + "Nhấn để thay đổi chế độ cài đặt tiện ích" "Tôi hiểu" + "Thay đổi chế độ cài đặt tiện ích" "Tìm kiếm ứng dụng" "Đang tải ứng dụng…" "Không tìm thấy ứng dụng nào phù hợp với \"%1$s\"" @@ -154,18 +156,16 @@ "Cá nhân" "Công việc" "Hồ sơ công việc" - "Dữ liệu cá nhân được lưu trữ riêng biệt và ẩn khỏi các ứng dụng công việc" - "Quản trị viên CNTT của bạn có thể xem dữ liệu và các ứng dụng công việc" - "Tiếp theo" + + "OK" - "Hồ sơ công việc của bạn đã bị tạm dừng" - "Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" - "Hồ sơ công việc đã bị tạm dừng. Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" + "Ứng dụng công việc đang tắt" + "Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" + "Ứng dụng công việc đang tắt. Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" "Các ứng dụng công việc được gắn huy hiệu và quản trị viên CNTT sẽ nhìn thấy các ứng dụng này" "Tôi hiểu" - "Tạm dừng các ứng dụng công việc" - "Bật" + "Tắt ứng dụng công việc" + "Bật ứng dụng công việc" "Bộ lọc" - "Tạm dừng các ứng dụng và thông báo liên quan tới công việc" "Không thực hiện được thao tác: %1$s" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index b1fb1658da..2d8162a92f 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -51,12 +51,11 @@ "个人" "工作" "对话" - - - - - - + "实用信息触手可及" + "要想不打开应用就能获取信息,您可以将相应微件添加到主屏幕" + "点按即可更改微件设置" + "知道了" + "更改微件设置" "搜索应用" "正在加载应用…" "未找到与“%1$s”相符的应用" @@ -157,18 +156,16 @@ "个人" "工作" "工作资料" - "工作应用与个人数据相互独立,它们无法获取此类数据" - "您的 IT 管理员可以查看工作应用和工作数据" - "继续" + + "知道了" - "工作资料已被暂停" - "现在,工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" - "工作资料已暂停使用。现在,工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" + "工作应用已关闭" + "工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" + "工作应用已关闭。工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" "工作应用带有标志,您的 IT 管理员可以看到工作应用" "知道了" - "暂停工作应用" - "开启" + "关闭工作应用" + "开启工作应用" "过滤器" - "暂停工作应用及其通知" "失败:%1$s" diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index c0bb552ddb..80f9ee9315 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -53,7 +53,9 @@ "對話" "實用資訊,唾手可得" "只要將小工具新增到主畫面,就可以直接查看資訊,無需開啟應用程式" + "輕按即可變更小工具設定" "知道了" + "變更小工具設定" "搜尋應用程式" "正在載入應用程式…" "找不到與「%1$s」相符的應用程式" @@ -154,18 +156,16 @@ "個人" "工作" "工作設定檔" - "個人資料會獨立儲存,並在工作應用程式中隱藏。" - "IT 管理員能看到工作應用程式的資料" - "繼續" + + "知道了" - "工作設定檔已暫停使用" - "工作應用程式無法向您傳送通知、使用電池或存取位置" - "工作設定檔已暫停。工作應用程式無法向您傳送通知、使用電池或存取位置" + "工作應用程式已關閉" + "工作應用程式無法向您傳送通知、使用電池或存取位置" + "工作應用程式已關閉。工作應用程式無法向您傳送通知、使用電池或存取位置" "IT 管理員可看到工作應用程式和相關標誌" "知道了" - "暫停工作應用程式" - "開啟" + "關閉工作應用程式" + "開啟工作應用程式" "篩選器" - "暫停工作應用程式和通知" "操作失敗:%1$s" diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 9685d89c1d..c868137354 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -53,7 +53,9 @@ "對話" "實用資訊隨手可得" "只要將小工具新增到主畫面,就可以直接查看資訊,不必開啟應用程式" + "輕觸即可變更小工具設定" "我知道了" + "變更小工具設定" "搜尋應用程式" "正在載入應用程式…" "找不到與「%1$s」相符的應用程式" @@ -154,18 +156,16 @@ "個人" "工作" "工作資料夾" - "系統會區隔個人資料與工作資料,因此兩者不會同時顯示" - "你的 IT 管理員可以查看工作應用程式和工作資料" - "繼續" + + "我知道了" - "工作資料夾已暫停" - "工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊。" - "系統已暫停使用工作資料夾。在這種情況下,工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊。" + "工作應用程式已關閉" + "工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊" + "工作應用程式已關閉。工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊" "你的 IT 管理員可以看見工作應用程式和相關標記" "我知道了" - "暫停工作應用程式" - "開啟" + "關閉工作應用程式" + "開啟工作應用程式" "篩選器" - "暫停工作應用程式和通知" "失敗:%1$s" diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 1b645b2502..03a451c5c8 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -48,12 +48,14 @@ "Sula umbhalo ovela ebhokisini lokusesha" "Awekho amawijethi atholakalayo" "Ayikho imiphumela yosesho" - "Okomuntu siqu" + "Okwabantu siqu" "Umsebenzi" "Izingxoxo" "Ulwazi oluwusizo phambi nje kwakho" "Ukuze utholeulwazi ngaphandle kokuvula ama-app, ungakwazi ukwengeza amawijethi kusikrini sakho sasekhaya" + "Thepha ukuze ushintshe amasethingi ewijethi" "Ngiyezwa" + "Shintsha amasethingi ewijethi" "Sesha izinhlelo zokusebenza" "Ilayisha izinhlelo zokusebenza..." "Azikho izinhlelo zokusebenza ezitholiwe ezifana ne-\"%1$s\"" @@ -154,18 +156,16 @@ "Okomuntu siqu" "Umsebenzi" "Iphrofayela yomsebenzi" - "Idatha yomuntu siqu yehlukile futhi ifihliwe kusuka kuzinhlelo zokusebenza zomsebenzi" - "Izinhlelo zokusebenza zomsebenzi nedatha kuyobonakala kumphathi wakho we-IT" - "Okulandelayo" + + "Ngiyezwa" - "Iphrofayela yomsebenzi iphunyuziwe" - "Ama-app omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" - "Iphrofayela yomsebenzi iphunyuziwe. Ama-app omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" + "Ama-app omsebenzi avaliwe" + "Ama-app akho omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" + "Ama-app omsebenzi avaliwe. Ama-app akho omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" "Ama-app omsebenzi anebheji futhi ayabonakala kumphathi wakho we-IT" "Ngiyezwa" - "Misa ama-app omsebenzi" - "Vula" + "Vala ama-app omsebenzi" + "Vula ama-app omsebenzi" "Hlunga" - "Phumuza izinhlelo zokusebenza zomsebenzi nezaziso" "Yehlulekile: %1$s" From 499c9dfd255988e018775653474db8fe464bb2c9 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sun, 20 Jun 2021 03:59:29 +0000 Subject: [PATCH 065/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I62822b759953e511e47aade21f92d7f074eba0f3 --- res/values-af/strings.xml | 7 +++---- res/values-am/strings.xml | 9 +++++---- res/values-ar/strings.xml | 9 +++++---- res/values-as/strings.xml | 9 +++++---- res/values-az/strings.xml | 9 +++++---- res/values-b+sr+Latn/strings.xml | 9 +++++---- res/values-be/strings.xml | 9 +++++---- res/values-bg/strings.xml | 9 +++++---- res/values-bn/strings.xml | 12 ++++++------ res/values-bs/strings.xml | 9 +++++---- res/values-ca/strings.xml | 9 +++++---- res/values-cs/strings.xml | 9 +++++---- res/values-da/strings.xml | 9 +++++---- res/values-de/strings.xml | 9 +++++---- res/values-el/strings.xml | 7 +++---- res/values-en-rAU/strings.xml | 7 +++---- res/values-en-rCA/strings.xml | 7 +++---- res/values-en-rGB/strings.xml | 7 +++---- res/values-en-rIN/strings.xml | 7 +++---- res/values-en-rXC/strings.xml | 7 +++---- res/values-es-rUS/strings.xml | 7 +++---- res/values-es/strings.xml | 9 +++++---- res/values-et/strings.xml | 9 +++++---- res/values-eu/strings.xml | 9 +++++---- res/values-fa/strings.xml | 9 +++++---- res/values-fi/strings.xml | 9 +++++---- res/values-fr-rCA/strings.xml | 9 +++++---- res/values-fr/strings.xml | 9 +++++---- res/values-gl/strings.xml | 9 +++++---- res/values-gu/strings.xml | 12 ++++++------ res/values-hi/strings.xml | 9 +++++---- res/values-hr/strings.xml | 9 +++++---- res/values-hu/strings.xml | 9 +++++---- res/values-hy/strings.xml | 9 +++++---- res/values-in/strings.xml | 9 +++++---- res/values-is/strings.xml | 9 +++++---- res/values-it/strings.xml | 9 +++++---- res/values-iw/strings.xml | 9 +++++---- res/values-ja/strings.xml | 9 +++++---- res/values-ka/strings.xml | 7 +++---- res/values-kk/strings.xml | 9 +++++---- res/values-km/strings.xml | 9 +++++---- res/values-kn/strings.xml | 15 +++++++-------- res/values-ko/strings.xml | 9 +++++---- res/values-ky/strings.xml | 9 +++++---- res/values-lo/strings.xml | 9 +++++---- res/values-lt/strings.xml | 9 +++++---- res/values-lv/strings.xml | 9 +++++---- res/values-mk/strings.xml | 9 +++++---- res/values-ml/strings.xml | 9 +++++---- res/values-mn/strings.xml | 9 +++++---- res/values-mr/strings.xml | 30 ++++++++++++------------------ res/values-ms/strings.xml | 9 +++++---- res/values-my/strings.xml | 9 +++++---- res/values-nb/strings.xml | 9 +++++---- res/values-ne/strings.xml | 15 +++++++-------- res/values-nl/strings.xml | 7 +++---- res/values-or/strings.xml | 9 +++++---- res/values-pa/strings.xml | 15 +++++++-------- res/values-pl/strings.xml | 9 +++++---- res/values-pt-rPT/strings.xml | 7 +++---- res/values-pt/strings.xml | 7 +++---- res/values-ro/strings.xml | 9 +++++---- res/values-ru/strings.xml | 9 +++++---- res/values-si/strings.xml | 9 +++++---- res/values-sk/strings.xml | 9 +++++---- res/values-sl/strings.xml | 9 +++++---- res/values-sq/strings.xml | 9 +++++---- res/values-sr/strings.xml | 9 +++++---- res/values-sv/strings.xml | 9 +++++---- res/values-sw/strings.xml | 9 +++++---- res/values-ta/strings.xml | 9 +++++---- res/values-te/strings.xml | 12 ++++++------ res/values-th/strings.xml | 9 +++++---- res/values-tl/strings.xml | 9 +++++---- res/values-tr/strings.xml | 9 +++++---- res/values-uk/strings.xml | 7 +++---- res/values-ur/strings.xml | 15 +++++++-------- res/values-uz/strings.xml | 9 +++++---- res/values-vi/strings.xml | 9 +++++---- res/values-zh-rCN/strings.xml | 9 +++++---- res/values-zh-rHK/strings.xml | 9 +++++---- res/values-zh-rTW/strings.xml | 9 +++++---- res/values-zu/strings.xml | 9 +++++---- 84 files changed, 412 insertions(+), 372 deletions(-) diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 2703eb5e98..571ad51536 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -82,8 +82,8 @@ "skryf Tuis-instellings en -kortpaaie" "Laat die program toe om die instellings en kortpaaie in Tuis te verander." "%1$s word nie toegelaat om foonoproepe te maak nie" - "Kon nie legstuk laai nie" - "Stel op" + "Kan nie legstuk laai nie" + "Tik om opstelling te voltooi" "Dit is \'n stelselprogram en kan nie gedeïnstalleer word nie." "Wysig naam" "Het %1$s gedeaktiveer" @@ -156,8 +156,7 @@ "Persoonlik" "Werk" "Werkprofiel" - - + "Werkprogramme het \'n kenteken en is sigbaar vir jou IT-administrateur" "Het dit" "Werkprogramme is af" "Jou werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index 846de43d4a..fe9716358a 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -82,8 +82,10 @@ "የመነሻ ቅንብሮችን እና አቋራጮችን ይጽፋል" "መተግብሪያው ቅንብሮችን እና አቋራጮችን በመነሻ ውስጥ እንዲቀይራቸው ያስችለዋል።" "%1$s የስልክ ጥሪዎችን ለማድረግ አልተፈቀደለትም" - "ፍርግም የመጫን ችግር" - "ማዋቀሪያ" + + + + "ይህ የስርዓት መተግበሪያ ነው እና ማራገፍ አይቻልም።" "ስም ያርትዑ" "%1$s ተሰናክሏል" @@ -156,8 +158,7 @@ "የግል" "ሥራ" "የሥራ መገለጫ" - - + "የሥራ መተግበሪያዎች ባጅ የተደረገባቸው እና ለእርስዎ የአይቲ አስተዳዳሪ የሚታዩ ናቸው" "ገባኝ" "የሥራ መተግበሪያዎች ጠፍተዋል" "የስራ መተግበሪያዎችዎ ማሳወቂያዎችን ሊልክልዎ፣ ባትሪዎን መጠቀም ወይም አካባቢዎን መድረስ አይችሉም" diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 18ce18c23b..ff2f51db3b 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -90,8 +90,10 @@ "كتابة إعدادات واختصارات الشاشة الرئيسية" "للسماح للتطبيق بتغيير الإعدادات والاختصارات في الشاشة الرئيسية." "%1$s غير مسموح به لإجراء مكالمات هاتفية" - "حدثت مشكلة أثناء تحميل الأداة" - "الإعداد" + + + + "هذا تطبيق نظام وتتعذر إزالته." "تعديل الاسم" "تم إيقاف %1$s" @@ -168,8 +170,7 @@ "شخصية" "للعمل" "الملف الشخصي للعمل" - - + "تحمل تطبيقات العمل شارة وتكون مرئية لمشرف تكنولوجيا المعلومات." "حسنًا" "تطبيقات العمل غير مفعّلة" "لا يمكن لتطبيقات العمل إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 1f217cf7b6..43927f53e2 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -82,8 +82,10 @@ "গৃহ ছেটিং আৰু শ্বৰ্টকাটবোৰ লিখিব পাৰে" "এপটোক গৃহ পৃষ্ঠাত ছেটিং আৰু শ্বৰ্টকাটসমূহ সলনি কৰাৰ অনুমতি দিয়ে।" "%1$sক ফ\'ন কলবোৰ কৰাৰ অনুমতি দিয়া হোৱা নাই" - "ৱিজেট ল\'ড কৰাত সমস্য়া" - "ছেটআপ কৰক" + + + + "এইটো এটা ছিষ্টেম এপ আৰু ইয়াক আনইনষ্টল কৰিব নোৱৰি" "নাম সম্পাদনা কৰক" "%1$s অক্ষম কৰা হ’ল" @@ -156,8 +158,7 @@ "ব্যক্তিগত" "কৰ্মস্থান" "কৰ্মস্থানৰ প্ৰ\'ফাইল" - - + "কৰ্মস্থানৰ এপ্‌সমূহ প্ৰতীকেৰে চিহ্নিত কৰা হয় আৰু সেইবোৰ আপোনাৰ আইটি প্ৰশাসকৰ বাবে দৃশ্যমান হয়" "বুজি পালোঁ" "কৰ্মস্থানৰ এপ্‌সমূহ অফ হৈ আছে" "আপোনাৰ কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index f73e500c4f..7685330860 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -82,8 +82,10 @@ "Əsas Səhifə ayarlarını və qısayolları yazın" "Tətbiqə Əsas Səhifədə ayarları və qısayolları dəyişməyə icazə verir." "%1$s tətbiqinə telefon zəngləri etmək üçün icazə verilmir" - "Vidcet yükləmə problemi" - "Quraşdırma" + + + + "Bu sistem tətbiqi olduğu üçün sistemdən silinə bilməz." "Adı redaktə edin" "%1$s deaktiv edildi" @@ -156,8 +158,7 @@ "Şəxsi" "İş" "İş profili" - - + "İş tətbiqləri nişanlanıb və İT administratorunuza görünür" "Anladım" "İş tətbiqləri deaktivdir" "İş tətbiqləriniz sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index a5000765fb..3e43c50b93 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -84,8 +84,10 @@ "upisivanje podešavanja i prečica na početnom ekranu" "Dozvoljava aplikaciji da menja podešavanja i prečice na početnom ekranu." "%1$s nema dozvolu za upućivanje telefonskih poziva" - "Problem pri učitavanju vidžeta" - "Podešavanje" + + + + "Ovo je sistemska aplikacija i ne može da se deinstalira." "Izmenite naziv" "Aplikacija %1$s je onemogućena" @@ -159,8 +161,7 @@ "Lične" "Poslovne" "Poslovni profil" - - + "Poslovne aplikacije su označene značkom i IT administrator može da ih vidi" "Važi" "Poslovne aplikacije su isključene" "Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index aa8acd65d0..d99972996d 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -86,8 +86,10 @@ "запісваць налады і ярлыкі на галоўнай старонцы" "Дазваляе праграме змяняць налады і ярлыкі на Галоўнай старонцы." "%1$s не мае дазволу на здзяйсненне тэлефонных званкоў" - "Праблема загрузкі віджэта" - "Наладжванне" + + + + "Гэта сістэмная праграма, яе нельга выдаліць." "Змяніць назву" "%1$s адключана" @@ -162,8 +164,7 @@ "Асабістыя" "Працоўныя" "Працоўны профіль" - - + "Працоўныя праграмы маюць значкі і бачныя IT-адміністратару" "Зразумела" "Працоўныя праграмы выключаны" "Працоўныя праграмы не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да даных пра ваша месцазнаходжанне" diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index 117ee45e7b..a104988e2d 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -82,8 +82,10 @@ "запис на настройките и преките пътища в Начало" "Разрешава на приложението да променя настройките и преките пътища в Начало." "%1$s няма разрешение да извършва телефонни обаждания" - "Проблем при зареждане на приспособлението" - "Настройване" + + + + "Това е системно приложение и не може да се деинсталира." "Редактиране на името" "Деактивирахте %1$s" @@ -156,8 +158,7 @@ "Лични" "Служебни" "Служебен потребителски профил" - - + "Служебните приложения са означени със значка и са видими за системния администратор" "Разбрах" "Служебните ви приложения са изключени" "Служебните ви приложения не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index e88e4b923d..f89aecbadd 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -53,11 +53,9 @@ "কথোপকথন" "সহজেই দরকারি তথ্য পান" "অ্যাপ না খুলে তথ্য পাওয়ার জন্য, আপনার হোম স্ক্রিনে উইজেট যোগ করতে পারেন" - - + "উইজেট সেটিংস পরিবর্তন করতে ট্যাপ করুন" "বুঝেছি" - - + "উইজেট সেটিংস পরিবর্তন করুন" "অ্যাপ খুঁজুন" "অ্যাপ লোড হচ্ছে…" "\"%1$s\" এর সাথে মেলে এমন কোনো অ্যাপ পাওয়া যায়নি" @@ -84,8 +82,10 @@ "হোম সেটিংস এবং শর্টকাটগুলি লেখে" "হোমে অ্যাপ্লিকেশানটিকে সেটিংস এবং শর্টকাটগুলি পরিবর্তন করতে দেয়৷" "ফোন কলগুলি করার জন্য %1$s এর অনুমতি নেই" - "উইজেট লোড হতে সমস্যা হয়েছে" - "সেটআপ" + + + + "এটি একটি সিস্টেম অ্যাপ্লিকেশান এবং আনইনস্টল করা যাবে না৷" "নাম এডিট করুন" "%1$s অক্ষম করা হয়েছে" diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index ed7050fa30..b265d841e4 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -84,8 +84,10 @@ "zapisuj postavke na početnom ekranu i prečice" "Dopušta aplikaciji promjenu postavki i prečica na početnom ekranu." "%1$s nema odobrenje da uspostavlja telefonske pozive" - "Problem pri učitavanju dodatka" - "Postavljanje" + + + + "Ovo je sistemska aplikacija i ne može se deinstalirati." "Uređivanje naziva" "Aplikacija %1$s je onemogućena" @@ -159,8 +161,7 @@ "Lične" "Poslovne" "Radni profil" - - + "Poslovne aplikacije su označene i vaš IT administrator ih može vidjeti" "Razumijem" "Poslovne aplikacije su isključene" "Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju niti pristupiti vašoj lokaciji" diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 306e0c220f..9cd23ba2cb 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -82,8 +82,10 @@ "escriu la configuració i les dreceres de la pantalla d\'inici" "Permet que l\'aplicació canviï la configuració i les dreceres de la pantalla d\'inici." "%1$s no té permís per fer trucades telefòniques" - "S\'ha produït un problema en carregar el widget" - "Configuració" + + + + "Aquesta aplicació és una aplicació del sistema i no es pot desinstal·lar." "Edita el nom" "S\'ha desactivat %1$s" @@ -156,8 +158,7 @@ "Personal" "Treball" "Perfil de treball" - - + "Les aplicacions de treball tenen una insígnia i són visibles per al teu administrador de TI" "Entesos" "Les aplicacions de treball estan desactivades" "Les aplicacions de treball no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació" diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 70c511fd95..9785754d58 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -86,8 +86,10 @@ "zápis nastavení a odkazů plochy" "Umožňuje aplikaci změnit nastavení a odkazy na ploše." "Aplikace %1$s nemá oprávnění telefonovat" - "Problém s načtením widgetu" - "Nastavení" + + + + "Toto je systémová aplikace a nelze ji odinstalovat." "Upravit název" "Aplikace %1$s je zakázána" @@ -162,8 +164,7 @@ "Osobní" "Pracovní" "Pracovní profil" - - + "Pracovní aplikace jsou označené a viditelné vašemu administrátorovi IT" "Rozumím" "Pracovní aplikace jsou vypnuté" "Pracovní aplikace vám nemohou zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 5087ac4fb0..d757b0ecd2 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -82,8 +82,10 @@ "skrive indstillinger og genveje for startskærmen" "Tillader, at appen ændrer indstillingerne og genvejene på startskærmen." "%1$s har ikke tilladelse til at foretage telefonopkald" - "Der er problemer med indlæsning af widgetten" - "Konfigurer" + + + + "Dette er en systemapp, som ikke kan afinstalleres." "Rediger navn" "%1$s er deaktiveret" @@ -156,8 +158,7 @@ "Personlige" "Arbejde" "Arbejdsprofil" - - + "Arbejdsapps har badges og kan ses af din it-administrator" "OK" "Arbejdsapps er deaktiveret" "Arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din lokation" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 6ff90222ae..8ae811fcad 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -82,8 +82,10 @@ "Einstellungen und Verknüpfungen für den Startbildschirm schreiben" "Ermöglicht der App, die Einstellungen und Verknüpfungen auf dem Startbildschirm zu ändern" "%1$s darf keine Telefonanrufe tätigen." - "Problem beim Laden des Widgets" - "Einrichten" + + + + "Dies ist eine Systemanwendung, die nicht deinstalliert werden kann." "Name bearbeiten" "%1$s deaktiviert" @@ -156,8 +158,7 @@ "Privat" "Geschäftlich" "Arbeitsprofil" - - + "Geschäftliche Apps sind gekennzeichnet und für deinen IT-Administrator sichtbar" "OK" "Geschäftliche Apps sind deaktiviert" "Deine geschäftlichen Apps können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index b6b44f03e1..fc7d691c03 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -82,8 +82,8 @@ "εγγραφή ρυθμίσεων και συντομεύσεων αρχικής οθόνης" "Επιτρέπει στην εφαρμογή την αλλαγή των ρυθμίσεων και των συντομεύσεων στην Αρχική οθόνη." "Η εφαρμογή %1$s δεν επιτρέπεται να πραγματοποιεί τηλεφωνικές κλήσεις" - "Παρουσιάστηκε πρόβλημα στη φόρτωση του γραφικού στοιχείου" - "Ρύθμιση" + "Δεν είναι δυνατή η φόρτωση του γραφικού στοιχείου" + "Πατήστε για να ολοκληρώσετε τη ρύθμιση" "Αυτή είναι μια εφαρμογή συστήματος και δεν είναι δυνατή η κατάργηση της εγκατάστασής της." "Επεξεργασία ονόματος" "Η εφαρμογή %1$s είναι απενεργοποιημένη" @@ -156,8 +156,7 @@ "Προσωπικές" "Εργασίας" "Προφίλ εργασίας" - - + "Οι εφαρμογές εργασιών φέρουν σήμα και είναι ορατές στον διαχειριστή IT σας" "Το κατάλαβα" "Οι εφαρμογές εργασιών είναι απενεργοποιημένες" "Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας" diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index 0e585f1032..08d032bf96 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -82,8 +82,8 @@ "write Home settings and shortcuts" "Allows the app to change the settings and shortcuts in Home." "%1$s is not allowed to make phone calls" - "Problem loading widget" - "Setup" + "Can\'t load widget" + "Tap to finish setup" "This is a system app and can\'t be uninstalled." "Edit Name" "Disabled %1$s" @@ -156,8 +156,7 @@ "Personal" "Work" "Work profile" - - + "Work apps are badged and visible to your IT admin" "OK" "Work apps are off" "Your work apps can’t send you notifications, use your battery or access your location" diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index 0e585f1032..08d032bf96 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -82,8 +82,8 @@ "write Home settings and shortcuts" "Allows the app to change the settings and shortcuts in Home." "%1$s is not allowed to make phone calls" - "Problem loading widget" - "Setup" + "Can\'t load widget" + "Tap to finish setup" "This is a system app and can\'t be uninstalled." "Edit Name" "Disabled %1$s" @@ -156,8 +156,7 @@ "Personal" "Work" "Work profile" - - + "Work apps are badged and visible to your IT admin" "OK" "Work apps are off" "Your work apps can’t send you notifications, use your battery or access your location" diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 0e585f1032..08d032bf96 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -82,8 +82,8 @@ "write Home settings and shortcuts" "Allows the app to change the settings and shortcuts in Home." "%1$s is not allowed to make phone calls" - "Problem loading widget" - "Setup" + "Can\'t load widget" + "Tap to finish setup" "This is a system app and can\'t be uninstalled." "Edit Name" "Disabled %1$s" @@ -156,8 +156,7 @@ "Personal" "Work" "Work profile" - - + "Work apps are badged and visible to your IT admin" "OK" "Work apps are off" "Your work apps can’t send you notifications, use your battery or access your location" diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 0e585f1032..08d032bf96 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -82,8 +82,8 @@ "write Home settings and shortcuts" "Allows the app to change the settings and shortcuts in Home." "%1$s is not allowed to make phone calls" - "Problem loading widget" - "Setup" + "Can\'t load widget" + "Tap to finish setup" "This is a system app and can\'t be uninstalled." "Edit Name" "Disabled %1$s" @@ -156,8 +156,7 @@ "Personal" "Work" "Work profile" - - + "Work apps are badged and visible to your IT admin" "OK" "Work apps are off" "Your work apps can’t send you notifications, use your battery or access your location" diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index 9add9f4820..7ada105cbc 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -82,8 +82,8 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎write Home settings and shortcuts‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎Allows the app to change the settings and shortcuts in Home.‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ is not allowed to make phone calls‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎Problem loading widget‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‎Setup‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‏‎Can\'t load widget‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‎Tap to finish setup‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‎‎‎This is a system app and can\'t be uninstalled.‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎Edit Name‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‏‏‎‎‎Disabled ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" @@ -156,8 +156,7 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‏‎‏‎‎Personal‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎Work‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎Work profile‎‏‎‎‏‎" - - + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎Work apps are badged and visible to your IT admin‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎Got it‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎Work apps are off‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎Your work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 53e7637707..607d831110 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -82,8 +82,8 @@ "escribir configuración y accesos directos de la pantalla principal" "Permite que la aplicación cambie la configuración y los accesos directos de la pantalla principal." "%1$s no puede realizar llamadas telefónicas" - "Problema al cargar el widget" - "Configuración" + "No se puede cargar el widget" + "Presiona para finalizar la configuración" "Esta es una aplicación del sistema y no se puede desinstalar." "Editar nombre" "Se inhabilitó %1$s" @@ -156,8 +156,7 @@ "Personales" "De trabajo" "Perfil de trabajo" - - + "Las apps de trabajo tienen una insignia y el administrador de IT las puede ver" "Entendido" "Las apps de trabajo están desactivadas" "Las apps de trabajo no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 61bd39d38c..03ac6d12e5 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -82,8 +82,10 @@ "escribir información de accesos directos y de ajustes de la pantalla de inicio" "Permite que las aplicaciones cambien los ajustes y los accesos directos de la pantalla de inicio." "%1$s no puede hacer llamadas" - "Problema al cargar el widget" - "Configuración" + + + + "Esta aplicación es del sistema y no se puede desinstalar." "Editar nombre" "Se ha inhabilitado %1$s" @@ -156,8 +158,7 @@ "Personal" "Trabajo" "Perfil de trabajo" - - + "Las aplicaciones de trabajo tienen una insignia, y tu administrador de TI las puede ver" "Entendido" "Las aplicaciones de trabajo están desactivadas" "Tus aplicaciones de trabajo no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index e0c8733820..9ec12fce6a 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -82,8 +82,10 @@ "avakuva seadete ja otseteede kirjutamine" "Võimaldab rakendusel muuta avaekraanil seadeid ja otseteid." "Rakendusel %1$s pole lubatud helistada" - "Probleem vidina laadimisel" - "Seadistamine" + + + + "See on süsteemirakendus ja seda ei saa desinstallida." "Muuda nime" "Rakendus %1$s on keelatud" @@ -156,8 +158,7 @@ "Isiklik" "Töö" "Tööprofiil" - - + "Töörakendustel on märk ja need on teie IT-administraatorile nähtavad" "Selge" "Töörakendused on välja lülitatud" "Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda" diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index eb038bae2b..0df92adf24 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -82,8 +82,10 @@ "Idatzi hasierako ezarpenak eta lasterbideak" "Hasierako pantailako ezarpenak eta lasterbideak aldatzeko baimena ematen die aplikazioei." "%1$s aplikazioak ez du telefono-deiak egiteko baimenik" - "Arazo bat izan da widgeta kargatzean" - "Konfigurazioa" + + + + "Sistema-aplikazioa da hau eta ezin da desinstalatu." "Editatu izena" "%1$s desgaituta dago" @@ -156,8 +158,7 @@ "Pertsonalak" "Lanekoak" "Laneko profila" - - + "Laneko aplikazioek bereizgarriak dituzte, eta IKT saileko administratzaileak ikus ditzake" "Ados" "Laneko aplikazioak desaktibatuta daude" "Laneko aplikazioek ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu" diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 0926e48f81..9da53ca986 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -82,8 +82,10 @@ "نوشتن تنظیمات و میان‌برهای صفحه اصلی" "به برنامه اجازه می‌دهد تنظیمات و میان‌برها را در صفحه اصلی تغییر دهد." "%1$s مجاز نیست تماس تلفنی برقرار کند" - "مشکل در بارگیری ابزارک" - "تنظیم" + + + + "این برنامه سیستمی است و حذف نصب نمی‌شود." "ویرایش نام" "%1$s غیرفعال شد" @@ -156,8 +158,7 @@ "شخصی" "کاری" "نمایه کاری" - - + "برنامه‌های کاری دارای نشان هستند و سرپرست سیستم می‌تواند آن‌ها را ببیند" "متوجه‌ام" "برنامه‌های کاری خاموش است" "برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index 4ebc8d279b..fd8b67168f 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -82,8 +82,10 @@ "kirjoita aloitusruudun asetuksia ja pikakuvakkeita" "Antaa sovelluksen muuttaa aloitusruudun asetuksia ja pikakuvakkeita." "%1$s ei saa soittaa puheluita." - "Ongelma ladattaessa widgetiä" - "Asetus" + + + + "Tämä on järjestelmäsovellus, eikä sitä voi poistaa." "Muokkaa nimeä" "%1$s poistettiin käytöstä" @@ -156,8 +158,7 @@ "Henkilökohtaiset" "Työsovellukset" "Työprofiili" - - + "Työsovellukset on merkitty ja ne näkyvät IT-järjestelmänvalvojalle" "Selvä" "Työsovellukset ovat pois päältä" "Työsovellukset eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai paikantaa sijaintiasi" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 0a66787554..fb358eaf58 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -82,8 +82,10 @@ "enregistrer les paramètres de la page d\'accueil et des raccourcis" "Permet à l\'application de modifier les paramètres et les raccourcis de l\'écran d\'accueil." "L\'application %1$s n\'est pas autorisée à faire des appels téléphoniques" - "Problème lors du chargement du widget" - "Configuration" + + + + "Impossible de désinstaller cette application, car il s\'agit d\'une application système." "Modifier le nom" "L\'application %1$s est désactivée" @@ -156,8 +158,7 @@ "Personnel" "Travail" "Profil professionnel" - - + "Les applications professionnelles sont indiquées par un badge et elles sont visibles pour votre administrateur informatique" "OK" "Les applications professionnelles sont désactivées" "Les applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index f08f7eb0ba..098ce6f3e0 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -82,8 +82,10 @@ "modifier les paramètres et les raccourcis de l\'écran d\'accueil" "Permettre à l\'application de modifier les paramètres et les raccourcis de l\'écran d\'accueil" "L\'application %1$s n\'est pas autorisée à passer des appels téléphoniques." - "Problème lors du chargement du widget." - "Configuration" + + + + "Impossible de désinstaller cette application, car il s\'agit d\'une application système." "Modifier le nom" "%1$s est désactivé." @@ -156,8 +158,7 @@ "Personnelles" "Professionnelles" "Profil professionnel" - - + "Les applis professionnelles sont identifiées par un badge et votre administrateur informatique peut les voir" "OK" "Les applis professionnelles sont désactivées" "Vos applis professionnelles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position" diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 6a7a6ef10e..8cc93612a2 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -82,8 +82,10 @@ "modificar a configuración e os atallos da pantalla de inicio" "Permite a unha aplicación cambiar a configuración e os atallos da pantalla de inicio." "%1$s non ten permiso para facer chamadas telefónicas" - "Produciuse un problema ao cargar o widget" - "Configuración" + + + + "Esta aplicación é do sistema e non se pode desinstalar." "Edita o nome" "Desactivouse %1$s" @@ -156,8 +158,7 @@ "Persoal" "Traballo" "Perfil de traballo" - - + "O administrador de TI pode ver as aplicacións do traballo e engadirlles indicadores" "Entendido" "As aplicacións do traballo están desactivadas" "As aplicacións do traballo non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 4b3821ce03..2e0171dad6 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -53,11 +53,9 @@ "વાતચીતો" "ઉપયોગી માહિતી તમારી આંગળીના ટેરવે" "ઍપને ખોલ્યા વિના માહિતી મેળવવા માટે, તમે તમારી હોમ સ્ક્રીન પર વિજેટ ઉમેરી શકો છો" - - + "વિજેટના સેટિંગ બદલવા માટે ટૅપ કરો" "સમજાઈ ગયું" - - + "વિજેટના સેટિંગ બદલો" "શોધ ઍપ્લિકેશનો" "ઍપ્લિકેશનો લોડ કરી રહ્યું છે…" "\"%1$s\"થી મેળ ખાતી કોઈ ઍપ્લિકેશનો મળી નથી" @@ -84,8 +82,10 @@ "હોમ સેટિંગ્સ અને શોર્ટકટ્સ લખો" "એપ્લિકેશનને હોમમાં સેટિંગ્સ અને શોર્ટકટ્સ બદલવાની મંજૂરી આપે છે." "%1$s ને ફોન કૉલ્સ કરવાની મંજૂરી નથી" - "વિજેટ લોડ કરવામાં સમસ્યા" - "સેટઅપ" + + + + "આ એક સિસ્ટમ ઍપ્લિકેશન છે અને અનઇન્સ્ટોલ કરી શકાતી નથી." "નામમાં ફેરફાર કરો" "%1$s અક્ષમ કરી" diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 8af8f066ad..fbadca6ba7 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -82,8 +82,10 @@ "होम पेज की सेटिंग और शॉर्टकट लिखें" "ऐप्लिकेशन को होम पेज में सेटिंग और शॉर्टकट बदलने देती है." "%1$s को फ़ोन कॉल करने की अनुमति नहीं है" - "विजेट लोड करने में समस्‍या" - "सेटअप" + + + + "यह एक सिस्टम ऐप्लिकेशन है और इसे अनइंस्टॉल नहीं किया जा सकता." "नाम में बदलाव करें" "%1$s अक्षम है" @@ -156,8 +158,7 @@ "निजी ऐप" "काम से जुड़े ऐप" "वर्क प्रोफ़ाइल" - - + "ऑफ़िस के काम से जुड़े ऐप्लिकेशन, बैज किए गए हैं और आईटी एडमिन को दिख रहे हैं" "ठीक है" "ऑफ़िस के काम से जुड़े ऐप्लिकेशन बंद हैं" "ऑफ़िस के काम से जुड़े आपके ऐप्लिकेशन, आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 3f1e1b0762..09d315f928 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -84,8 +84,10 @@ "pisanje postavki početnog zaslona i prečaca" "Aplikaciji omogućuje promjenu postavki i prečaca na početnom zaslonu." "%1$s nema dopuštenje za telefonske pozive" - "Problem pri učitavanju widgeta" - "Postavljanje" + + + + "Ovo je aplikacija sustava i ne može se ukloniti." "Uređivanje naziva" "Aplikacija %1$s onemogućena" @@ -159,8 +161,7 @@ "Osobno" "Posao" "Poslovni profil" - - + "Poslovne su aplikacije označene i vidljive vašem IT administratoru" "Shvaćam" "Poslovne aplikacije su isključene" "Poslovne aplikacije ne mogu vam slati obavijesti, trošiti bateriju niti pristupiti vašoj lokaciji" diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 09c4d5093a..2167540d38 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -82,8 +82,10 @@ "Főoldal beállításainak és parancsikonjainak írása" "Lehetővé teszi az alkalmazás számára, hogy módosítsa a kezdőképernyő beállításait és parancsikonjait." "A(z) %1$s nem kezdeményezhet telefonhívásokat" - "Probléma történt a modul betöltésekor" - "Beállítás" + + + + "Ez egy rendszeralkalmazás, és nem lehet eltávolítani." "Név módosítása" "A(z) %1$s letiltva" @@ -156,8 +158,7 @@ "Személyes" "Munkahelyi" "Munkaprofil" - - + "A munkahelyi alkalmazások jelvénnyel vannak megjelölve, és láthatók a rendszergazda számára" "Értem" "A munkahelyi alkalmazások ki vannak kapcsolva" "A munkahelyi alkalmazások nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez." diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index ef87d0619c..b261b02e7a 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -82,8 +82,10 @@ "ստեղծել հիմնաէջի կարգավորումներ ու դյուրանցումներ" "Ծրագրին թույլ է տալիս փոփոխել հիմնաէջի կարգավորումներն ու դյուրանցումները:" "%1$s հավելվածին չի թույլատրվում հեռախոսազանգեր կատարել" - "Վիջեթի բեռնման խնդիր կա" - "Կարգավորում" + + + + "Սա համակարգային ծրագիր է և չի կարող ապատեղադրվել:" "Փոխել անունը" "%1$s հավելվածն անջատված է" @@ -156,8 +158,7 @@ "Անձնական" "Աշխատանքային" "Աշխատանքային պրոֆիլ" - - + "Աշխատանքային հավելվածները նշանակներ ունեն և տեսանելի են ՏՏ ադմինիստրատորին" "Եղավ" "Աշխատանքային հավելվածներն անջատված են" "Աշխատանքային հավելվածները չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index c3cdcfcf6a..8b45632d4c 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -82,8 +82,10 @@ "menulis setelan dan pintasan layar Utama" "Mengizinkan aplikasi mengubah setelan dan pintasan di layar Utama." "%1$s tidak diizinkan untuk melakukan panggilan telepon" - "Masalah memuat widget" - "Siapkan" + + + + "Ini adalah aplikasi sistem dan tidak dapat dicopot pemasangannya." "Sunting Nama" "%1$s dinonaktifkan" @@ -156,8 +158,7 @@ "Pribadi" "Kerja" "Profil kerja" - - + "Aplikasi kerja diberi badge dan terlihat oleh admin IT" "Oke" "Aplikasi kerja dinonaktifkan" "Aplikasi kerja tidak dapat mengirimkan notifikasi, menggunakan baterai, atau mengakses lokasi Anda" diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index d3774ed827..baa4a87933 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -82,8 +82,10 @@ "skrifa stillingar og flýtileiðir heimaskjás" "Leyfir forriti að breyta stillingum og flýtileiðum heimaskjás." "%1$s hefur ekki leyfi til að hringja símtöl" - "Vandamál við að hlaða græju" - "Uppsetning" + + + + "Þetta er kerfisforrit sem ekki er hægt að fjarlægja." "Breyta nafni" "Óvirkt %1$s" @@ -156,8 +158,7 @@ "Persónulegt" "Vinna" "Vinnusnið" - - + "Vinnuforrit eru merkt og kerfisstjórinn getur séð þau" "Ég skil" "Slökkt er á vinnuforritum" "Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 58135218c0..54a6560d04 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -82,8 +82,10 @@ "creazione di impostazioni e scorciatoie in Home" "Consente all\'app di modificare le impostazioni e le scorciatoie in Home." "L\'app %1$s non è autorizzata a effettuare telefonate" - "Errore durante il caricamento del widget" - "Configurazione" + + + + "Questa è un\'app di sistema e non può essere disinstallata." "Modifica nome" "App %1$s disattivata" @@ -156,8 +158,7 @@ "Personali" "Lavoro" "Profilo di lavoro" - - + "Le app di lavoro sono contrassegnate con un badge e visibili all\'amministratore IT" "OK" "Le app di lavoro non sono attive" "Le app di lavoro non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index f07b4e554d..6291e308f4 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -86,8 +86,10 @@ "כתיבת הגדרות וקיצורי דרך של דף הבית" "מאפשר לאפליקציה לשנות את ההגדרות וקיצורי הדרך בדף הבית." "%1$s אינו רשאי להתקשר" - "בעיה בטעינת ווידג\'ט" - "הגדרה" + + + + "זוהי אפליקציית מערכת ולא ניתן להסיר את התקנתה." "עריכת השם" "%1$s מושבתת" @@ -162,8 +164,7 @@ "אישיות" "עבודה" "פרופיל עבודה" - - + "‏האפליקציות לעבודה מתויגות ומוצגות למנהל ה-IT" "הבנתי" "האפליקציות לעבודה מושבתות" "האפליקציות לעבודה לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 0d60f6d656..3586843a2f 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -82,8 +82,10 @@ "ホームの設定とショートカットの書き込み" "ホームの設定とショートカットの変更をアプリに許可します。" "「%1$s」から電話をかけることはできません" - "ウィジェットを表示できません" - "セットアップ" + + + + "このシステムアプリはアンインストールできません。" "名前の編集" "「%1$s」は無効です" @@ -156,8 +158,7 @@ "個人用" "仕事用" "仕事用プロファイル" - - + "仕事用アプリはバッジが付き、IT 管理者に公開されます" "OK" "仕事用アプリは OFF になっています" "仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index 51246be30b..a03a45852d 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -82,8 +82,8 @@ "მთავარი ეკრანის პარამეტრებისა და მალსახმობების ჩაწერა" "აპისთვის მთავარი ეკრანის პარამეტრებისა და მალსახმობების შეცვლის უფლების მიცემა." "%1$s-ს არ აქვს სატელეფონო ზარების განხორციელების უფლება" - "პრობლემა ვიჯეტის ჩატვირთვისას" - "დაყენება" + "ვიჯეტის ჩატვირთვა ვერ ხერხდება" + "შეეხეთ დაყენების დასასრულებლად" "ეს სისტემური აპია და მისი წაშლა შეუძლებელია." "სახელის რედაქტირება" "%1$s გაითიშა" @@ -156,8 +156,7 @@ "პირადი" "სამსახური" "სამსახურის პროფილი" - - + "სამსახურის აპები ბეჯით არის მონიშნული და ხილულია IT ადმინისტრატორისთვის" "გასაგებია" "სამსახურის აპები გამორთულია" "თქვენს სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index b2753a2e88..057ca353cb 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -82,8 +82,10 @@ "Негізгі экран параметрлері мен төте пернелерін жазу" "Қолданбаға Негізгі экрандағы параметрлер мен төте пернелерді өзгерту мүмкіндігін береді." "%1$s арқылы телефон қоңырауларын соғуға рұқсат етілмеген" - "Виджетті жүктеу барысында мәселе орын алды" - "Орнату" + + + + "Бұл жүйе қолданбасы, сондықтан оны алу мүмкін емес." "Атын өңдеу" "%1$s өшірілді" @@ -156,8 +158,7 @@ "Жеке" "Жұмыс" "Жұмыс профилі" - - + "Жұмыс қолданбаларының танымбелгілері бар және олар әкімшіңізге көрінеді." "Түсінікті" "Жұмыс қолданбалары өшірулі" "Жұмыс қолданбалары сізге хабарландырулар жібере, батареяңызды немесе локацияңызды пайдалана алмайды." diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 82c9a36123..08f9d0a5e9 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -82,8 +82,10 @@ "សរសេរ​ការ​កំណត់ ​និង​ផ្លូវកាត់​​លើ​អេក្រង់​ដើម" "អនុញ្ញាត​ឲ្យ​កម្មវិធី​ប្ដូរ​ការ​កំណត់ និង​ផ្លូវ​កាត់​ក្នុង​អេក្រង់​ដើម។" "%1$s មិនត្រូវបានអនុញ្ញាតឲ្យធ្វើការហៅទូរស័ព្ទទេ" - "បញ្ហា​ក្នុង​ការ​ផ្ទុក​ធាតុ​​ក្រាហ្វិក" - "រៀបចំ" + + + + "នេះ​​​ជា​កម្មវិធី​ប្រព័ន្ធ មិន​អាច​លុប​បាន​ទេ។" "កែ​ឈ្មោះ" "បានបិទដំណើរការ %1$s" @@ -156,8 +158,7 @@ "ផ្ទាល់ខ្លួន" "ការងារ" "កម្រងព័ត៌មានការងារ" - - + "កម្មវិធីការងារ​ត្រូវបានដាក់​គ្រឿងសម្គាល់ ហើយ​អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក​អាចមើលឃើញ" "យល់ហើយ" "កម្មវិធីការងារ​ត្រូវបានបិទ" "កម្មវិធី​ការងារ​របស់អ្នក​មិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 07a0cc9238..01dda6d286 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -53,11 +53,9 @@ "ಸಂವಾದಗಳು" "ನಿಮ್ಮ ಬೆರಳ ತುದಿಯಲ್ಲಿ ಉಪಯುಕ್ತ ಮಾಹಿತಿ" "ಆ್ಯಪ್‌ಗಳನ್ನು ತೆರೆಯದೆಯೇ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಲು, ನಿಮ್ಮ ಹೋಮ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ನೀವು ವಿಜೆಟ್‌ಗಳನ್ನು ಸೇರಿಸಬಹುದು" - - + "ವಿಜೆಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ" "ಅರ್ಥವಾಯಿತು" - - + "ವಿಜೆಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ" "ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹುಡುಕಿ" "ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..." "\"%1$s\" ಹೊಂದಿಕೆಯ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ" @@ -84,8 +82,10 @@ "ಮುಖಪುಟದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್‌ಗಳನ್ನು ಬರೆಯಿರಿ" "ಮುಖಪುಟದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ." "ಫೋನ್ ಕರೆಗಳನ್ನು ಮಾಡಲು %1$s ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ" - "ವಿಜೆಟ್ ಲೋಡ್‌ ಮಾಡುವಲ್ಲಿ ಸಮಸ್ಯೆ" - "ಸೆಟಪ್" + + + + "ಇದೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ ಮತ್ತು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." "ಹೆಸರನ್ನು ಎಡಿಟ್ ಮಾಡಿ" "%1$s ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" @@ -158,8 +158,7 @@ "ವೈಯಕ್ತಿಕ" "ಕೆಲಸ" "ಕೆಲಸದ ಪ್ರೊಫೈಲ್" - - + "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಬ್ಯಾಡ್ಜ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸುತ್ತವೆ" "ಸರಿ" "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಆಫ್ ಆಗಿವೆ" "ನಿಮ್ಮ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 68589d8ea9..c06d33753e 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -82,8 +82,10 @@ "홈 설정 및 바로가기 쓰기" "앱이 홈에 있는 설정 및 바로가기를 변경할 수 있도록 합니다." "%1$s에서 전화를 걸 수 없습니다." - "위젯을 로드하는 중 문제가 발생했습니다." - "설정" + + + + "시스템 앱은 제거할 수 없습니다." "이름 수정" "%1$s 사용 안함" @@ -156,8 +158,7 @@ "개인" "직장" "직장 프로필" - - + "직장 앱에는 배지가 있으며, IT 관리자는 직장 앱을 확인할 수 있습니다" "확인" "직장 앱이 꺼져 있음" "직장 앱에서 알림을 보내거나 배터리를 사용하거나 위치 정보에 액세스할 수 없습니다." diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index 919fe45bba..122beaca13 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -82,8 +82,10 @@ "Үйдүн тууралоолорун жана тез чакырмаларын жазуу" "Колдонмого Үйдүн тууралоолорун жана тез чакырмаларын өзгөртүүгө уруксат берет." "%1$s телефон чалууларды аткарууга уруксаты жок" - "Виджетти жүктөөдө маселе бар" - "Орнотуу" + + + + "Бул системдик колдонмо жана аны чечкенге болбойт." "Аталышын түзөтүү" "%1$s өчүрүлгөн" @@ -156,8 +158,7 @@ "Жеке колдонмолор" "Жумуш колдонмолору" "Жумуш профили" - - + "Жумуш колдонмолору белгиленип, аларды IT администраторлору көрөт" "Түшүндүм" "Жумуш колдонмолору өчүк" "Жумуш колдонмолору билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index b91da7d67e..73d9fc4802 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -82,8 +82,10 @@ "ຂຽນການຕັ້ງຄ່າໜ້າຫຼັກ ແລະທາງລັດ" "ອະນຸຍາດໃຫ້ແອັບຯດັ່ງກ່າວ ປ່ຽນການຕັ້ງຄ່າ ແລະທາງລັດໃນໜ້າຫຼັກ." "%1$s ບໍ່​ໄດ້​ຮັບ​ອະ​ນຸ​ຍາດ​ໃຫ້​ໂທ" - "ມີບັນຫາໃນການໂຫລດວິດເຈັດ" - "ຕິດຕັ້ງ" + + + + "ນີ້ແມ່ນແອັບຯຂອງລະບົບ ແລະບໍ່ສາມາດຖອນການຕິດຕັ້ງອອກໄດ້." "ແກ້ໄຂຊື່" "ປິດການນຳໃຊ້ %1$s ແລ້ວ" @@ -156,8 +158,7 @@ "ສ່ວນຕົວ" "ວຽກ" "ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ" - - + "ແອັບບ່ອນເຮັດວຽກແມ່ນຖືກຕິດປ້າຍ ແລະ ສະແດງໃຫ້ຜູ້ເບິ່ງແຍງໄອທີຂອງທ່ານເຫັນ" "ເຂົ້າໃຈແລ້ວ" "ແອັບບ່ອນເຮັດວຽກຖືກປິດໄວ້ຢູ່" "ແອັບບ່ອນເຮັດວຽກຂອງທ່ານຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນຫາທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 84414ca486..6843530cfb 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -86,8 +86,10 @@ "rašyti pagrindinio puslapio nustatymus ir sparčiuosius klavišus" "Programai leidžiama keisti pagrindinio puslapio nustatymus ir sparčiuosius klavišus." "„%1$s“ neleidžiama skambinti" - "Problema įkeliant valdiklį" - "Sąranka" + + + + "Tai sistemos programa ir jos negalima pašalinti." "Pavadinimo redagavimas" "„%1$s“ išjungta" @@ -162,8 +164,7 @@ "Asmeninės" "Darbo" "Darbo profilis" - - + "Darbo programos yra pažymėtos ženkleliu ir matomos IT administratoriui" "Supratau" "Darbo programos išjungtos" "Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 0b283d9b48..ed6ebf610a 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -84,8 +84,10 @@ "rakstīt sākuma ekrāna iestatījumus un saīsnes" "Ļauj lietotnei mainīt iestatījumus un saīsnes sākuma ekrānā." "Lietotnei %1$s nav atļauts veikt tālruņa zvanus." - "Ielādējot logrīku, radās problēma." - "Notiek iestatīšana" + + + + "Šī ir sistēmas lietotne, un to nevar atinstalēt." "Nosaukuma rediģēšana" "Lietotne %1$s ir atspējota" @@ -159,8 +161,7 @@ "Personīgās lietotnes" "Darba lietotnes" "Darba profils" - - + "Darba lietotnēm ir pievienota emblēma, un tās ir redzamas jūsu IT administratoram" "Labi" "Darba lietotnes ir izslēgtas" "Jūsu darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index 29acbb87b6..2d5381171a 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -82,8 +82,10 @@ "пишува поставки и кратенки на почетна страница" "Овозможува апликацијата да ги менува подесувањата и кратенките на почетната страница." "%1$s нема дозвола за телефонски повици" - "Проблем при вчитувањето на виџетот" - "Поставување" + + + + "Ова е системска апликација и не може да се деинсталира." "Изменете го името" "%1$s е оневозможена" @@ -156,8 +158,7 @@ "Лично" "За работа" "Работен профил" - - + "Работните апликации имаат значка и се видливи за IT-администраторот" "Сфатив" "Работните апликации се исклучени" "Работните апликации не може да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 53679f15c4..f323d8fcfd 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -82,8 +82,10 @@ "ഹോം ക്രമീകരണങ്ങളും കുറുക്കുവഴികളും റൈറ്റുചെയ്യുക" "ഹോമിലെ ക്രമീകരണങ്ങളും കുറുക്കുവഴികളും മാറ്റാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു." "ഫോൺ കോൾ ചെയ്യാൻ %1$s എന്നതിനെ അനുവദിച്ചിട്ടില്ല" - "വിജറ്റ് ലോഡുചെയ്യുന്നതിൽ പ്രശ്നമുണ്ട്" - "സജ്ജീകരിക്കുക" + + + + "ഇതൊരു സിസ്‌റ്റം അപ്ലിക്കേഷനായതിനാൽ അൺഇൻസ്‌റ്റാളുചെയ്യാനാവില്ല." "പേര് എഡിറ്റ് ചെയ്യുക" "%1$s പ്രവർത്തനരഹിതമാക്കി" @@ -156,8 +158,7 @@ "വ്യക്തിപരം" "ഔദ്യോഗികം" "ഔദ്യോഗിക പ്രൊഫൈൽ" - - + "ഔദ്യോഗിക ആപ്പുകൾക്ക് ബാഡ്‌ജ് നൽകിയിരിക്കുന്നു, അവ നിങ്ങളുടെ ഐടി അഡ്‌മിന് കാണാനുമാകും" "മനസ്സിലായി" "ഔദ്യോഗിക ആപ്പുകൾ ഓഫാണ്" "നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ നിങ്ങളുടെ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index dc30f552a2..fc9f772bbe 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -82,8 +82,10 @@ "Нүүрний тохиргоо болон товчлолыг бичих" "Апп нь Нүүрэндэх товчлол болон тохиргоог өөрчилж чадна." "%1$s утасны дуудлага хийх боломжгүй" - "Виджет ачаалахад асуудал гарав" - "Тохируулга" + + + + "Энэ апп нь системийн апп ба устгах боломжгүй." "Нэр засах" "%1$s-г идэвхгүй болгосон" @@ -156,8 +158,7 @@ "Хувийн" "Ажил" "Ажлын профайл" - - + "Ажлын аппуудыг тэмдэглэсэн бөгөөд танай IT админд харагдана" "Ойлголоо" "Ажлын аппууд унтраалттай байна" "Таны ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index 38acebffad..6a333f7045 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -53,11 +53,9 @@ "संभाषणे" "तुमच्यासाठी सहज उपलब्ध असलेली माहिती" "ॲप्स न उघडता माहिती मिळवण्यासाठी, तुम्ही तुमच्या होम स्क्रीनवर विजेट जोडू शकता" - - + "विजेट सेटिंग्ज बदलण्यासाठी टॅप करा" "समजले" - - + "विजेट सेटिंग्ज बदला" "अ‍ॅप्स शोधा" "अ‍ॅप्स लोड करत आहे…" "\"%1$s\" शी जुळणारे कोणतेही अ‍ॅप्स आढळले नाहीत" @@ -84,8 +82,10 @@ "होम सेटिंग्ज आणि शॉर्टकट लिहा" "मुख्यपृष्ठातील सेटिंग्ज आणि शॉर्टकट बदलण्यास अ‍ॅप ला अनुमती देते." "%1$s ला फोन कॉल करण्याची अनुमती नाही" - "विजेट लोड करण्यात समस्या" - "सेटअप" + + + + "हा सिस्टम अ‍ॅप आहे आणि अनइंस्टॉल केला जाऊ शकत नाही." "नाव संपादित करा" "%1$s अक्षम केला आहे" @@ -158,21 +158,15 @@ "वैयक्तिक" "कार्यालय" "कार्य प्रोफाइल" - - + "कामाशी संबंधित ॲप्स ही बॅज केलेली असून तुमच्या IT ॲडमिनला दृश्यमान आहेत" "समजले" - - - - - - + "कामाशी संबंधित ॲप्स बंद आहेत" + "तुमचे कामाशी संबंधित ॲप्स तुम्हाला सूचना पाठवू शकत नाहीत, तुमची बॅटरी वापरू शकत नाहीत किंवा तुमचे स्थान अ‍ॅक्सेस करू शकत नाहीत" + "कामाशी संबंधित ॲप्स बंद आहेत. तुमचे कामाशी संबंधित ॲप्स तुम्हाला सूचना पाठवू शकत नाहीत, तुमची बॅटरी वापरू शकत नाहीत किंवा तुमचे स्थान अ‍ॅक्सेस करू शकत नाहीत" "Work apps ही बॅज केलेली असून तुमच्या IT ॲडमिनला दृश्यमान आहेत" "समजले" - - - - + "कामाशी संबंधित ॲप्स बंद करा" + "कामाशी संबंधित ॲप्स सुरू करा" "फिल्टर" "हे करता आले नाही: %1$s" diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index be9496203f..07b414a1d1 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -82,8 +82,10 @@ "tulis tetapan dan pintasan Laman Utama" "Membenarkan apl menukar tetapan dan pintasan di Laman Utama." "%1$s tidak dibenarkan membuat panggilan telefon" - "Masalah memuatkan widget" - "Persediaan" + + + + "Ini ialah apl sistem dan tidak boleh dinyahpasang." "Edit Nama" "%1$s dilumpuhkan" @@ -156,8 +158,7 @@ "Peribadi" "Kerja" "Profil kerja" - - + "Apl kerja mempunyai lencana dan kelihatan kepada pentadbir IT anda" "OK" "Apl kerja dimatikan" "Apl kerja anda tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index 480310064f..e9f42e4014 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -82,8 +82,10 @@ "ပင်မမျက်နှာစာ အပြင်အဆင် နှင့် အတိုကောက်မှတ်သားမှုများအား ရေးသားခြင်း" "ပင်မမျက်နှာစာတွင် ရှိသော အပြင်အဆင် နှင့် အတိုကောက်မှတ်သားမှုများ ကို အပ်ပလီကေးရှင်းအား ပြောင်းခွင့်ပြုခြင်း" "%1$sသည် ဖုန်းခေါ်ဆိုခွင့် မရှိပါ" - "ဝဒ်ဂျက် တင်ရာတွင် ပြသနာ ရှိပါသည်" - "စဖွင့်သတ်မှတ်ရန်" + + + + "ဤအပ်ပလီကေးရှင်းမှာ စစ်စတန်ပိုင်းဆိုင်ရာ အပ်ပလီကေးရှင်းဖြစ်ပါသည်။ ထုတ်ပစ်၍ မရပါ" "အမည်ကို တည်းဖြတ်ပါ" "%1$s ကို ပိတ်ထားသည်" @@ -156,8 +158,7 @@ "ကိုယ်ပိုင်" "အလုပ်" "အလုပ်ပရိုဖိုင်" - - + "အလုပ်သုံးအက်ပ်များကို တံဆိပ်တပ်ထားပြီး သင်၏ IT စီမံခန့်ခွဲသူက မြင်နိုင်ပါသည်" "ရပါပြီ" "အလုပ်သုံးအက်ပ်များ ပိတ်ထားသည်" "သင်၏ အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 55ef7a4cd1..046f4adbbd 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -82,8 +82,10 @@ "angi startsideinnstillinger og -snarveier" "Lar appen endre innstillingene og snarveiene på startsiden." "%1$s har ikke tillatelse til å ringe" - "Problem ved innlasting av modul" - "Konfigurering" + + + + "Dette er en systemapp som ikke kan avinstalleres." "Rediger navn" "Slo av %1$s" @@ -156,8 +158,7 @@ "Personlig" "Jobb" "Jobbprofil" - - + "Jobbapper er merket og synlige for IT-administratoren din" "Greit" "Jobbapper er av" "Jobbapper kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 14dcec8aa2..f7dcd964d7 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -53,11 +53,9 @@ "वार्तालापहरू" "उपयोगी जानकारी सजिलै प्राप्त गर्नुहोस्" "एपहरू नखोलिकनै तिनका बारेमा जानकारी प्राप्त गर्न तपाईं आफ्नो होम स्क्रिनमा विजेटहरू हाल्न सक्नुहुन्छ" - - + "विजेटका सेटिङ बदल्न ट्याप गर्नुहोस्" "बुझेँ" - - + "विजेटका सेटिङ बदल्नुहोस्" "खोजसम्बन्धी एपहरू" "एपहरू लोड गर्दै…" "\"%1$s\" सँग मिल्दो कुनै एप भेटिएन" @@ -84,8 +82,10 @@ "गृह सेटिङहरू र सर्टकटहरू लेख्नुहोस्" "गृहमा एउटा एपलाई सेटिङ र सर्टकट बदल्न अनुमति दिनुहोस्।" "%1$s ले फोन कलहरू गर्न अनुमति छैन" - "समस्या लोडिङ गर्ने विजेट" - "सेटअप" + + + + "यो प्रणाली एप हो र यसलाई स्थापना रद्द गर्न सकिँदैन।" "नाम सम्पादन गर्नुहोस्" "असक्षम पारिएको %1$s" @@ -158,8 +158,7 @@ "व्यक्तिगत" "कार्यसम्बन्धी" "कार्य प्रोफाइल" - - + "कामसम्बन्धी एपहरूमा ब्याज अङ्कित हुन्छ र तपाईंका IT एड्मिन ती एप हेर्न सक्छन्" "बुझेँ" "कामसम्बन्धी एपहरू अफ गरिएका छन्" "तपाईंका कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index c9f204bc2b..a48214788b 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -82,8 +82,8 @@ "instellingen en snelkoppelingen op startscherm zetten" "De app toestaan de instellingen en snelkoppelingen op de homepage te wijzigen." "%1$s mag niet bellen" - "Probleem bij het laden van widget" - "Configuratie" + "Kan widget niet laden" + "Tik om het instellen af te ronden" "Dit is een systeemapp die niet kan worden verwijderd." "Naam bewerken" "%1$s staat uit" @@ -156,8 +156,7 @@ "Privé" "Werk" "Werkprofiel" - - + "Werk-apps hebben badges en zijn zichtbaar voor je IT-beheerder" "OK" "Werk-apps staan uit" "Je werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie" diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 81b66c6ba1..461c082e83 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -82,8 +82,10 @@ "ହୋମ୍‌ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ଲେଖନ୍ତୁ" "ହୋମରେ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।" "ଫୋନ୍‌ କଲ୍‌ କରିବାକୁ %1$sକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ" - "ୱିଜେଟ୍‌ ଲୋଡ୍‌ ହେବାରେ ସମସ୍ୟା ଅଛି" - "ସେଟ୍ ଅପ୍ କରନ୍ତୁ" + + + + "ଏହା ଏକ ସିଷ୍ଟମ୍‌ ଆପ୍‌ ଅଟେ ଏବଂ ଏହା ଅନଇନଷ୍ଟଲ୍‌ କରାଯାଇ ପାରିବ ନାହିଁ।" "ନାମ ସମ୍ପାଦନ କରନ୍ତୁ" "%1$s ଅକ୍ଷମ କରାଗଲା" @@ -156,8 +158,7 @@ "ବ୍ୟକ୍ତିଗତ" "ୱାର୍କ" "ୱର୍କ ପ୍ରୋଫାଇଲ୍‌" - - + "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ବ୍ୟାଜ୍ କରାଯାଇଛି ଏବଂ ସେଗୁଡ଼ିକ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କୁ ଦୃଶ୍ୟମାନ ହେଉଛି" "ବୁଝିଗଲି" "ୱାର୍କ ଆପଗୁଡ଼ିକ ବନ୍ଦ ଅଛି" "ଆପଣଙ୍କ ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତି ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index 993b16a11b..63ec08593f 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -53,11 +53,9 @@ "ਗੱਲਾਂਬਾਤਾਂ" "ਤੁਹਾਡੀਆਂ ਉਂਗਲਾਂ \'ਤੇ ਲਾਹੇਵੰਦ ਜਾਣਕਾਰੀ" "ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹੇ ਬਿਨਾਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਆਪਣੀ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਵਿਜੇਟ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ" - - + "ਵਿਜੇਟ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਣ ਲਈ ਟੈਪ ਕਰੋ" "ਸਮਝ ਲਿਆ" - - + "ਵਿਜੇਟ ਸੈਟਿੰਗਾਂ ਬਦਲੋ" "ਐਪਾਂ ਖੋਜੋ" "ਐਪਾਂ ਨੂੰ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..." "\"%1$s\" ਨਾਲ ਮੇਲ ਖਾਂਦੀਆਂ ਕੋਈ ਐਪਾਂ ਨਹੀਂ ਮਿਲੀਆਂ" @@ -84,8 +82,10 @@ "ਹੋਮ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਲਿਖੋ" "ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।" "%1$s ਨੂੰ ਫ਼ੋਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ" - "ਵਿਜੇਟ ਲੋਡ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ" - "ਸਥਾਪਤ ਕਰੋ" + + + + "ਇਹ ਇੱਕ ਸਿਸਟਮ ਐਪ ਹੈ ਅਤੇ ਇਸਨੂੰ ਅਣਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।" "ਨਾਮ ਦਾ ਸੰਪਾਦਨ ਕਰੋ" "%1$s ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ" @@ -158,8 +158,7 @@ "ਨਿੱਜੀ" "ਕੰਮ ਸੰਬੰਧੀ" "ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ" - - + "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਬੈਜ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਹ ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਦਿਸਣਗੀਆਂ" "ਸਮਝ ਲਿਆ" "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਬੰਦ ਹਨ" "ਤੁਹਾਡੀਆਂ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index d55f6f5173..bb54c2f8e7 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -86,8 +86,10 @@ "zapisywanie ustawień i skrótów na ekranie głównym" "Umożliwia aplikacji zmianę ustawień i skrótów na ekranie głównym." "%1$s nie może wykonywać połączeń telefonicznych" - "Problem podczas ładowania widżetu" - "Konfiguracja" + + + + "To aplikacja systemowa i nie można jej odinstalować." "Edytuj nazwę" "Aplikacja %1$s jest wyłączona" @@ -162,8 +164,7 @@ "Osobiste" "Służbowe" "Profil służbowy" - - + "Aplikacje służbowe mają plakietki i są widoczne dla administratora IT" "OK" "Aplikacje służbowe są wyłączone" "Aplikacje służbowe nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index d844da3c22..11f1f8370d 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -82,8 +82,8 @@ "escrever definições e atalhos do Ecrã principal" "Permite à app alterar as definições e os atalhos no Ecrã Principal." "O %1$s não tem autorização para efetuar chamadas telefónicas" - "Problema ao carregar o widget" - "Configuração" + "Não é possível carregar o widget" + "Toque para concluir a configuração" "É uma app de sistema e não pode ser desinstalada." "Edite o nome" "%1$s desativado" @@ -156,8 +156,7 @@ "Pessoal" "Trabalho" "Perfil de trabalho" - - + "As apps de trabalho têm um emblema e estão visíveis para o seu administrador de TI" "OK" "As apps de trabalho estão desativadas" "As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização" diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index a29cc4968f..11779edb97 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -82,8 +82,8 @@ "gravar configurações e atalhos da tela inicial" "Permite que o app altere as configurações e os atalhos na tela inicial." "%1$s não tem permissão para fazer chamadas" - "Problema ao carregar o widget" - "Configuração" + "Não é possível carregar o widget" + "Toque para concluir a configuração" "Este é um app do sistema e não pode ser desinstalado." "Editar nome" "%1$s desativado" @@ -156,8 +156,7 @@ "Pessoais" "Trabalho" "Perfil de trabalho" - - + "Os apps de trabalho têm um ícone e ficam visíveis para o administrador de TI" "Ok" "Os apps de trabalho estão desativados" "Os apps de trabalho não podem enviar notificações, usar a bateria nem acessar o local" diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 6fb48aa000..49c787cfc9 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -84,8 +84,10 @@ "scrie setări și comenzi rapide pentru ecranul de pornire" "Permite aplicației să modifice setările și comenzile rapide din ecranul de pornire." "%1$s nu are permisiunea de a apela" - "Problemă la încărcarea widgetului" - "Configurați" + + + + "Aceasta este o aplicație de sistem și nu poate fi dezinstalată." "Modificați numele" "S-a dezactivat %1$s" @@ -159,8 +161,7 @@ "Personale" "Profesionale" "Profil de serviciu" - - + "Aplicațiile pentru lucru sunt marcate și vizibile pentru administratorul IT" "OK" "Aplicațiile pentru lucru sunt dezactivate" "Aplicațiile pentru lucru nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 5adf04b3b1..12db0e2543 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -86,8 +86,10 @@ "Изменение настроек и ярлыков главного экрана" "Приложение сможет изменять настройки и ярлыки на главном экране." "Приложение %1$s не может делать телефонные звонки" - "Не удалось загрузить виджет" - "Настройка" + + + + "Это системное приложение, его нельзя удалить." "Измените название" "Приложение %1$s отключено" @@ -162,8 +164,7 @@ "Личные" "Рабочие" "Рабочий профиль" - - + "У рабочих приложений есть специальная пометка. Они видны системному администратору." "ОК" "Рабочие приложения отключены" "Рабочие приложения не могут отправлять уведомления, расходовать заряд батареи и получать доступ к данным о вашем местоположении." diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index e9e1062b73..946e12c319 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -82,8 +82,10 @@ "මුල් පිටු සැකසීම් සහ කෙටිමං ලියන්න" "මුල් පිටුවේ සැකසීම් සහ කෙටිමං ඉවත් කිරීමට යෙදුමට අවසර දෙයි." "%1$s හට දුරකථන ඇමතුම් සිදු කිරීමට ඉඩ නොදේ" - "ගැටලු පූරණ විජට් එක" - "ස්ථාපනය කරන්න" + + + + "මෙය පද්ධති යෙදුමක් වන අතර අස්ථාපනය කළ නොහැක." "නම සංස්කරණය කරන්න" "%1$s අබල කෙරිණි" @@ -156,8 +158,7 @@ "පුද්ගලික" "කාර්යාලය" "කාර්යාල පැතිකඩ" - - + "කාර්යාල යෙදුම්වලට ලාංඡන යොදා ඇති අතර ඔබගේ IT පරිපාලකට දෘශ්‍යමාන වේ" "තේරුණා" "කාර්යාල යෙදුම් ක්‍රියාවිරහිතයි" "ඔබගේ කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index 56637aed78..d4f2e00ba0 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -86,8 +86,10 @@ "zápis nastavení a odkazov plochy" "Povoľuje aplikácii zmeniť nastavenia a odkazy na ploche." "Aplikácia %1$s nemá povolenie uskutočňovať telefonické hovory" - "Problém s načítaním miniaplikácií" - "Nastavenie" + + + + "Toto je systémová aplikácia a nedá sa odinštalovať." "Úprava názvu" "Aplikácia %1$s je deaktivovaná" @@ -162,8 +164,7 @@ "Osobné" "Pracovné" "Pracovný profil" - - + "Pracovné aplikácie majú odznak a zobrazujú sa správcovi IT" "Dobre" "Pracovné aplikácie sú vypnuté" "Pracovné aplikácie nemôžu posielať upozornenia ani používať batériu či polohu." diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 3cf34d4a7a..d5d9f028fb 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -86,8 +86,10 @@ "zapis nastavitev in bližnjic na začetnem zaslonu" "Aplikaciji dovoli spreminjanje nastavitev in bližnjic na začetnem zaslonu." "Aplikaciji %1$s ni dovoljeno opravljanje klicev" - "Težava pri nalaganju pripomočka" - "Nastavitev" + + + + "To je sistemska aplikacija in je ni mogoče odstraniti." "Urejanje imena" "Aplikacija %1$s je onemogočena" @@ -162,8 +164,7 @@ "Osebno" "Delo" "Delovni profil" - - + "Delovne aplikacije so označene z značko in vidne skrbniku za IT." "Razumem" "Delovne aplikacije so izklopljene." "Delovne aplikacije ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index 62537f2312..f3a4649c28 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -82,8 +82,10 @@ "shkruaj cilësimet dhe shkurtoret e ekranit bazë" "Lejon aplikacionin të ndryshojë cilësimet dhe shkurtoret në ekranin bazë." "%1$s nuk lejohet të kryejë telefonata" - "Problem në ngarkimin e miniaplikacionit" - "Konfiguro" + + + + "Ky është aplikacion sistemi dhe nuk mund të çinstalohet." "Redakto emrin" "%1$s u çaktivizua" @@ -156,8 +158,7 @@ "Personale" "Punë" "Profili i punës" - - + "Aplikacionet e punës janë të shënuara dhe të dukshme për administratorin e teknologjisë së informacionit" "E kuptova" "Aplikacionet e punës janë joaktive" "Aplikacionet e tua të punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index d5f8598b1a..b47a148072 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -84,8 +84,10 @@ "уписивање подешавања и пречица на почетном екрану" "Дозвољава апликацији да мења подешавања и пречице на почетном екрану." "%1$s нема дозволу за упућивање телефонских позива" - "Проблем при учитавању виџета" - "Подешавање" + + + + "Ово је системска апликација и не може да се деинсталира." "Измените назив" "Апликација %1$s је онемогућена" @@ -159,8 +161,7 @@ "Личне" "Пословне" "Пословни профил" - - + "Пословне апликације су означене значком и ИТ администратор може да их види" "Важи" "Пословне апликације су искључене" "Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 03872280ba..415e7bea76 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -82,8 +82,10 @@ "skriva inställningar och genvägar för startsidan" "Tillåter att appen ändrar inställningar och genvägar på startsidan." "%1$s har inte behörighet att ringa samtal" - "Det gick inte att läsa in widgeten" - "Konfiguration" + + + + "Det här är en systemapp som inte kan avinstalleras." "Redigera namn" "%1$s har inaktiverats" @@ -156,8 +158,7 @@ "Privat" "Arbete" "Jobbprofil" - - + "Jobbappar är märkta och synliga för IT-administratören" "OK" "Jobbappar är inaktiverade" "Dina jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index c8463499db..7e1c724562 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -82,8 +82,10 @@ "andika mipangilio ya skrini ya Mwanzo na njia za mkato" "Huruhusu programu kubadilisha mipangilio na njia za mkato katika skrini ya Mwanzo." "%1$s hairuhusiwi kupiga simu" - "Tatizo la kupakia wijeti" - "Sanidi" + + + + "Hii ni programu ya mfumo na haiwezi kuondolewa." "Badilisha Jina" "%1$s imezimwa" @@ -156,8 +158,7 @@ "Binafsi" "Kazini" "Wasifu wa kazini" - - + "Programu za kazini zina beji na zinaonekana kwa msimamizi wako wa TEHAMA" "Nimeelewa" "Programu za kazini zimezimwa" "Programu zako za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index cfd4b3660a..877d92d09e 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -82,8 +82,10 @@ "முகப்பின் அமைப்பு மற்றும் குறுக்குவழிகளை எழுதுதல்" "முகப்பில் உள்ள அமைப்பு மற்றும் குறுக்குவழிகளை மாற்ற ஆப்ஸை அனுமதிக்கிறது." "ஃபோன் அழைப்புகள் செய்ய, %1$s அனுமதிக்கப்படவில்லை" - "விட்ஜெட்டை ஏற்றுவதில் சிக்கல்" - "அமைவு" + + + + "இது அமைப்பு ஆப்ஸ் என்பதால் நிறுவல் நீக்கம் செய்ய முடியாது." "பெயரைத் திருத்துதல்" "%1$s முடக்கப்பட்டது" @@ -156,8 +158,7 @@ "தனிப்பட்டவை" "பணி" "பணிக் கணக்கு" - - + "பணி ஆப்ஸில் பேட்ஜ் இடப்பட்டுள்ளன. உங்கள் IT நிர்வாகியால் அவற்றைப் பார்க்க முடியும்" "முடிந்தது" "பணி ஆப்ஸ் முடக்கப்பட்டுள்ளன" "பணி ஆப்ஸால் உங்களுக்கு அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ உங்கள் இருப்பிடத்தை அணுகவோ முடியாது" diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index b42b242169..e5bd96ee79 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -53,11 +53,9 @@ "సంభాషణలు" "మీ చేతివేళ్ల మీద ఉపయోగకరమైన సమాచారం" "యాప్‌లను తెరవకుండా సమాచారం పొందడానికి, మీరు మీ మొదటి స్క్రీన్‌కు విడ్జెట్‌లను జోడించవచ్చు" - - + "విడ్జెట్ సెట్టింగ్‌లను మార్చడానికి ట్యాప్ చేయండి" "అర్థమైంది" - - + "విడ్జెట్ సెట్టింగ్‌లను మార్చండి" "అప్లికేషన్‌లను శోధించండి" "అప్లికేషన్‌లను లోడ్ చేస్తోంది…" "\"%1$s\"కి సరిపోలే అప్లికేషన్‌లేవీ కనుగొనబడలేదు" @@ -84,8 +82,10 @@ "హోమ్ సెట్టింగ్‌లు మరియు సత్వరమార్గాలను వ్రాయడం" "హోమ్‌లో సెట్టింగ్‌లు మరియు సత్వరమార్గాలను మార్చడానికి యాప్‌ను అనుమతిస్తుంది." "ఫోన్ కాల్‌లను చేసేందుకు %1$sకి అనుమతి లేదు" - "విడ్జెట్‌ను లోడ్ చేయడంలో సమస్య" - "సెటప్ చేయి" + + + + "ఇది సిస్టమ్ యాప్ మరియు దీన్ని అన్‌ఇన్‌స్టాల్ చేయడం సాధ్యపడదు." "పేరును ఎడిట్ చేయండి" "%1$s నిలిపివేయబడింది" diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index cbb7d2a953..795bc7d929 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -82,8 +82,10 @@ "เขียนการตั้งค่าและทางลัดหน้าแรกแล้ว" "อนุญาตให้แอปเปลี่ยนการตั้งค่าและทางลัดในหน้าแรก" "%1$s ไม่ได้รับอนุญาตให้โทรออก" - "มีปัญหาขณะโหลดวิดเจ็ต" - "ตั้งค่า" + + + + "นี่เป็นแอประบบและไม่สามารถถอนการติดตั้งได้" "แก้ไขชื่อ" "ปิดใช้ %1$s" @@ -156,8 +158,7 @@ "ส่วนตัว" "งาน" "โปรไฟล์งาน" - - + "แอปงานจะติดป้ายไว้และผู้ดูแลระบบไอทีจะมองเห็น" "รับทราบ" "แอปงานปิดอยู่" "แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index aefb1204ed..558b96bc06 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -82,8 +82,10 @@ "magsulat ng mga setting at shortcut ng Home" "Pinapayagan ang app na baguhin ang mga setting at shortcut sa Home." "Hindi pinahihintulutang tumawag ang %1$s" - "Problema sa pag-load ng widget" - "I-setup" + + + + "Isa itong app ng system at hindi maaaring i-uninstall." "I-edit ang Pangalan" "Naka-disable ang %1$s" @@ -156,8 +158,7 @@ "Personal" "Trabaho" "Profile sa trabaho" - - + "May badge at nakikita ng iyong IT admin ang mga app para sa trabaho" "OK" "Naka-off ang mga app para sa trabaho" "Ang mga app mo para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng baterya mo, o makaka-access ng iyong lokasyon" diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index 6c4e541f68..c5980a9c87 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -82,8 +82,10 @@ "Ana ekran ayarlarını ve kısayollarını yaz" "Uygulamaya, Ana ekrandaki ayarları ve kısayolları değiştirme izni verir." "%1$s uygulamasının telefon etmesine izin verilmiyor" - "Widget yüklenirken sorun oluştu" - "Kurulum" + + + + "Bu bir sistem uygulamasıdır ve yüklemesi kaldırılamaz." "Adı Düzenle" "%1$s devre dışı" @@ -156,8 +158,7 @@ "Kişisel" "İş" "İş profili" - - + "İş uygulamaları rozetle işaretlenmiş olup BT yöneticisi tarafından görülebilir" "Anladım" "İş uygulamaları kapalı" "İş uygulamaları size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 1677c9e67d..d7612dfc3c 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -86,8 +86,8 @@ "записувати налаштування та ярлики головного екрана" "Дозволяє програмі змінювати налаштування та ярлики на головному екрані." "Додаток %1$s не має дозволу телефонувати" - "Проблема із завантаженням віджета" - "Налаштування" + "Не вдається завантажити віджет" + "Торкніться, щоб завершити налаштування" "Це системна програма, її неможливо видалити." "Редагувати назву" "%1$s вимкнено" @@ -162,8 +162,7 @@ "Особисті додатки" "Робочі додатки" "Робочий профіль" - - + "Робочі додатки відповідно позначені й видимі системному адміністратору" "OK" "Робочі додатки вимкнено" "Ваші робочі додатки не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих" diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index 8545f8a9b1..aba11d318a 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -53,11 +53,9 @@ "گفتگوئیں" "مفید معلومات کو آسانی سے حاصل کریں" "ایپس کو کھولے بغیر معلومات حاصل کرنے کے لیے آپ اپنی ہوم اسکرین پر ویجیٹس شامل کر سکتے ہیں" - - + "ویجیٹ ترتیبات تبدیل کرنے کے لیے تھپتھپائیں" "سمجھ آ گئی" - - + "ویجیٹ ترتیبات تبدیل کریں" "ایپس تلاش کریں" "ایپس لوڈ کی جا رہی ہیں…" "\"%1$s\" سے مماثل کوئی ایپس نہیں ملیں" @@ -84,8 +82,10 @@ "ہوم ترتیبات اور شارٹ کٹس کو لکھیں" "ایپ کو ہوم میں ترتیبات اور شارٹ کٹس کو تبدیل کرنے کی اجازت دیتا ہے۔" "%1$s کو فون کالیں کرنے کی اجازت نہیں ہے" - "ویجیٹ کو لوڈ کرنے میں مسئلہ" - "ترتیب دیں" + + + + "یہ ایک سسٹم ایپ ہے اور اسے اَن انسٹال نہیں کیا جا سکتا ہے۔" "نام میں ترمیم کریں" "%1$s غیر فعال ہے" @@ -158,8 +158,7 @@ "ذاتی" "دفتری" "دفتری پروفائل" - - + "‏ورک ایپس پر بَیج لگایا گیا ہے اور آپ کا IT منتظم اسے دیکھ سکتا ہے" "سمجھ آ گئی" "ورک ایپس آف ہیں" "آپ کی ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری کا استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index d9f492339a..022e7487a0 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -82,8 +82,10 @@ "Uy sozlamalari va yorliqlarini yozish" "Ilovaga \"Uy\" ekranidagi yorliqlar va sozlamalrni o‘zgartirish uchun ruxsat beradi." "%1$s ilovasiga qo‘ng‘iroqlarni amalga oshirishga ruxsat berilmagan" - "Vidjetni yuklashda muammo" - "Sozlash" + + + + "Bu tizim ilovasi, shuning uchun o‘chirib bo‘lmaydi." "Nomini tahrirlash" "%1$s ilovasi o‘chirib qo‘yildi" @@ -156,8 +158,7 @@ "Shaxsiy" "Ish" "Ish profili" - - + "Ishga oid ilovalar qadalgan va IT administratoringizga koʻrinadi" "OK" "Ishga oid ilovalar faolsizlantirilgan" "Ishga oid ilovalar batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index e15b3235ff..c3e2363b5c 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -82,8 +82,10 @@ "ghi cài đặt và lối tắt trên Màn hình chính" "Cho phép ứng dụng thay đổi cài đặt và lối tắt trên Màn hình chính." "%1$s không được phép thực hiện cuộc gọi điện thoại" - "Sự cố khi tải tiện ích" - "Thiết lập" + + + + "Đây là ứng dụng hệ thống và không thể gỡ cài đặt." "Chỉnh sửa tên" "Đã vô hiệu hóa %1$s" @@ -156,8 +158,7 @@ "Cá nhân" "Công việc" "Hồ sơ công việc" - - + "Các ứng dụng công việc được gắn huy hiệu và quản trị viên CNTT sẽ nhìn thấy các ứng dụng này" "OK" "Ứng dụng công việc đang tắt" "Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 2d8162a92f..b5f8e335b3 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -82,8 +82,10 @@ "写入主屏幕设置和快捷方式" "允许应用更改主屏幕中的设置和快捷方式。" "不允许使用“%1$s”拨打电话" - "加载微件时出现问题" - "设置" + + + + "这是系统应用,无法卸载。" "修改名称" "已停用%1$s" @@ -156,8 +158,7 @@ "个人" "工作" "工作资料" - - + "工作应用带有标志,您的 IT 管理员可以看到此类应用" "知道了" "工作应用已关闭" "工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index 80f9ee9315..0379e5b57b 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -82,8 +82,10 @@ "寫入主畫面的設定和捷徑" "允許應用程式更改主畫面中的設定和捷徑。" "不允許 %1$s 撥打電話" - "載入小工具時發生問題" - "設定" + + + + "這是系統應用程式,無法將其解除安裝。" "編輯名稱" "「%1$s」已停用" @@ -156,8 +158,7 @@ "個人" "工作" "工作設定檔" - - + "工作應用程式會加上標誌,且你的 IT 管理員可以看到這類應用程式" "知道了" "工作應用程式已關閉" "工作應用程式無法向您傳送通知、使用電池或存取位置" diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index c868137354..0f6ccd8a91 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -82,8 +82,10 @@ "寫入主畫面設定和捷徑" "允許應用程式變更主畫面中的設定和捷徑。" "%1$s 無法撥打電話" - "載入小工具時發生問題" - "設定" + + + + "這是系統應用程式,不可解除安裝。" "編輯名稱" "已停用 %1$s" @@ -156,8 +158,7 @@ "個人" "工作" "工作資料夾" - - + "工作應用程式會加上標記,而且你的 IT 管理員可以看到這類應用程式" "我知道了" "工作應用程式已關閉" "工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊" diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 03a451c5c8..5bf5104117 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -82,8 +82,10 @@ "bhala izilungiselelo zokuthi Ikhaya nezinqamuleli" "Ivumela uhlelo lokusebenza ukuthi lushintshe izilungiselelo nezinqamuleli Ekhaya." "%1$s ayivunyelwe ukwenza amakholi wefoni" - "Inkinga yokulayisha iwijethi" - "Ukumisa" + + + + "Lolu uhlelo lokusebenza lwesistimu futhi alikwazi ukukhishwa." "Hlela igama" "Kukhutshaziwe %1$s" @@ -156,8 +158,7 @@ "Okomuntu siqu" "Umsebenzi" "Iphrofayela yomsebenzi" - - + "Ama-app omsebenzi anebheji futhi ayabonakala kumphathi wakho we-IT" "Ngiyezwa" "Ama-app omsebenzi avaliwe" "Ama-app akho omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" From f762dc32702b3fd16b5bd779c7706e9777537dcb Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Wed, 23 Jun 2021 18:10:10 -0700 Subject: [PATCH 066/889] Move qsb according to spec. Bug: 175329686 Test: visual test checked 5x5 and confirmed no visual change checked 4x5 and confirmed visual change - tested various display sizes to ensure no overlapping is caused Change-Id: I95a80b484516f634fa13347534810c7a51cecc8d --- res/values/dimens.xml | 1 + src/com/android/launcher3/DeviceProfile.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 4e9a16eff0..9891ff5200 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -41,6 +41,7 @@ 22dp + 42dp 24dp diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 3c0cbb6046..2eba4ed6cf 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -162,6 +162,9 @@ public class DeviceProfile { public final int hotseatBarSidePaddingEndPx; public final int hotseatQsbHeight; + public final float qsbBottomMarginOriginalPx; + public int qsbBottomMarginPx; + // All apps public int allAppsOpenVerticalTranslate; public int allAppsCellHeightPx; @@ -336,6 +339,10 @@ public class DeviceProfile { res.getDimensionPixelSize(R.dimen.dynamic_grid_hotseat_extra_vertical_size); updateHotseatIconSize(pxFromDp(inv.iconSize, mMetrics, 1f)); + qsbBottomMarginOriginalPx = isScalableGrid + ? res.getDimensionPixelSize(R.dimen.scalable_grid_qsb_bottom_margin) + : 0; + overviewTaskMarginPx = res.getDimensionPixelSize(R.dimen.overview_task_margin); overviewTaskIconSizePx = isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get() ? res.getDimensionPixelSize( @@ -364,6 +371,8 @@ public class DeviceProfile { extraHotseatBottomPadding = Math.round(paddingHotseatBottom * iconScale); hotseatBarSizePx += extraHotseatBottomPadding; + + qsbBottomMarginPx = Math.round(qsbBottomMarginOriginalPx * iconScale); } else if (!isVerticalBarLayout() && isPhone && isTallDevice) { // We increase the hotseat size when there is extra space. // ie. For a display with a large aspect ratio, we can keep the icons on the workspace @@ -810,8 +819,13 @@ public class DeviceProfile { int freeSpace = isTaskbarPresent ? workspacePadding.bottom : hotseatBarSizePx - hotseatCellHeightPx - hotseatQsbHeight; - return (int) (freeSpace * QSB_CENTER_FACTOR) + + if (isScalableGrid && qsbBottomMarginPx <= freeSpace) { + return qsbBottomMarginPx; + } else { + return (int) (freeSpace * QSB_CENTER_FACTOR) + (isTaskbarPresent ? taskbarSize : getInsets().bottom); + } } /** From 4febf9d14c39a26191ee313e73924d45461652d3 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 24 Jun 2021 19:52:22 +0000 Subject: [PATCH 067/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I9342af23507004f0a9aa00db75c579f171ae00d5 --- quickstep/res/values-az/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml index dceab09b1d..3c5587c07f 100644 --- a/quickstep/res/values-az/strings.xml +++ b/quickstep/res/values-az/strings.xml @@ -83,7 +83,7 @@ "Telefondan istifadəyə başlamağa hazırsınız" "Əlçatımlıq üzrə naviqasiya ayarları" "Paylaşın" - "Ekran şəkli" + "Skrinşot" "Bu əməliyyata tətbiq və ya təşkilatınız tərəfindən icazə verilmir" "Naviqasiya dərsliyi ötürülsün?" "Bunu sonra %1$s tətbiqində tapa bilərsiniz" From f7ae5338a245db1441dabdf9c4f13044fe0d640c Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 24 Jun 2021 19:52:49 +0000 Subject: [PATCH 068/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Iaaa12594b95afa443e7bcc3de6aa927f48ba1716 --- go/quickstep/res/values-gu/strings.xml | 2 +- go/quickstep/res/values-hi/strings.xml | 2 +- go/quickstep/res/values-kn/strings.xml | 2 +- go/quickstep/res/values-mr/strings.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go/quickstep/res/values-gu/strings.xml b/go/quickstep/res/values-gu/strings.xml index e9fbdc268d..b0244751bb 100644 --- a/go/quickstep/res/values-gu/strings.xml +++ b/go/quickstep/res/values-gu/strings.xml @@ -3,6 +3,6 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ઍપ શેર કરો" "સાંભળો" - "Translate" + "અનુવાદ કરો" "Lens" diff --git a/go/quickstep/res/values-hi/strings.xml b/go/quickstep/res/values-hi/strings.xml index cdf83db358..5238d406ee 100644 --- a/go/quickstep/res/values-hi/strings.xml +++ b/go/quickstep/res/values-hi/strings.xml @@ -3,6 +3,6 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ऐप्लिकेशन शेयर करें" "सुनें" - "Translate" + "अनुवाद करें" "Google Lens" diff --git a/go/quickstep/res/values-kn/strings.xml b/go/quickstep/res/values-kn/strings.xml index 1083e84525..77668d62e3 100644 --- a/go/quickstep/res/values-kn/strings.xml +++ b/go/quickstep/res/values-kn/strings.xml @@ -3,6 +3,6 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ಆ್ಯಪ್ ಹಂಚಿಕೊಳ್ಳಿ" "ಆಲಿಸಿ" - "Translate" + "ಅನುವಾದಿಸಿ" "Lens" diff --git a/go/quickstep/res/values-mr/strings.xml b/go/quickstep/res/values-mr/strings.xml index f1fb72a36a..e7d26521d7 100644 --- a/go/quickstep/res/values-mr/strings.xml +++ b/go/quickstep/res/values-mr/strings.xml @@ -3,6 +3,6 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "अ‍ॅप शेअर करा" "ऐका" - "Translate" + "भाषांतर करा" "Lens" From 251568d152ecd6701223904fdfc96afd93285fc9 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 24 Jun 2021 19:53:31 +0000 Subject: [PATCH 069/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ib4f294657718131cf2dd46972e5f24538ad0f33f --- res/values-af/strings.xml | 9 +++++---- res/values-am/strings.xml | 15 +++++++-------- res/values-ar/strings.xml | 15 +++++++-------- res/values-as/strings.xml | 15 +++++++-------- res/values-az/strings.xml | 17 ++++++++--------- res/values-b+sr+Latn/strings.xml | 15 +++++++-------- res/values-be/strings.xml | 15 +++++++-------- res/values-bg/strings.xml | 15 +++++++-------- res/values-bn/strings.xml | 20 ++++++++++---------- res/values-bs/strings.xml | 15 +++++++-------- res/values-ca/strings.xml | 15 +++++++-------- res/values-cs/strings.xml | 15 +++++++-------- res/values-da/strings.xml | 15 +++++++-------- res/values-de/strings.xml | 17 +++++++++-------- res/values-el/strings.xml | 9 +++++---- res/values-en-rAU/strings.xml | 8 ++++---- res/values-en-rCA/strings.xml | 8 ++++---- res/values-en-rGB/strings.xml | 8 ++++---- res/values-en-rIN/strings.xml | 8 ++++---- res/values-en-rXC/strings.xml | 8 ++++---- res/values-es-rUS/strings.xml | 9 +++++---- res/values-es/strings.xml | 15 +++++++-------- res/values-et/strings.xml | 15 +++++++-------- res/values-eu/strings.xml | 15 +++++++-------- res/values-fa/strings.xml | 15 +++++++-------- res/values-fi/strings.xml | 15 +++++++-------- res/values-fr-rCA/strings.xml | 15 +++++++-------- res/values-fr/strings.xml | 15 +++++++-------- res/values-gl/strings.xml | 15 +++++++-------- res/values-gu/strings.xml | 22 +++++++++++----------- res/values-hi/strings.xml | 15 +++++++-------- res/values-hr/strings.xml | 15 +++++++-------- res/values-hu/strings.xml | 15 +++++++-------- res/values-hy/strings.xml | 15 +++++++-------- res/values-in/strings.xml | 15 +++++++-------- res/values-is/strings.xml | 15 +++++++-------- res/values-it/strings.xml | 15 +++++++-------- res/values-iw/strings.xml | 15 +++++++-------- res/values-ja/strings.xml | 15 +++++++-------- res/values-ka/strings.xml | 9 +++++---- res/values-kk/strings.xml | 15 +++++++-------- res/values-km/strings.xml | 15 +++++++-------- res/values-kn/strings.xml | 15 +++++++-------- res/values-ko/strings.xml | 15 +++++++-------- res/values-ky/strings.xml | 15 +++++++-------- res/values-lo/strings.xml | 15 +++++++-------- res/values-lt/strings.xml | 15 +++++++-------- res/values-lv/strings.xml | 15 +++++++-------- res/values-mk/strings.xml | 15 +++++++-------- res/values-ml/strings.xml | 15 +++++++-------- res/values-mn/strings.xml | 15 +++++++-------- res/values-mr/strings.xml | 17 ++++++++--------- res/values-ms/strings.xml | 15 +++++++-------- res/values-my/strings.xml | 17 ++++++++--------- res/values-nb/strings.xml | 17 ++++++++--------- res/values-ne/strings.xml | 15 +++++++-------- res/values-nl/strings.xml | 9 +++++---- res/values-or/strings.xml | 17 +++++++++-------- res/values-pa/strings.xml | 17 +++++++++-------- res/values-pl/strings.xml | 15 +++++++-------- res/values-pt-rPT/strings.xml | 9 +++++---- res/values-pt/strings.xml | 9 +++++---- res/values-ro/strings.xml | 15 +++++++-------- res/values-ru/strings.xml | 15 +++++++-------- res/values-si/strings.xml | 15 +++++++-------- res/values-sk/strings.xml | 15 +++++++-------- res/values-sl/strings.xml | 15 +++++++-------- res/values-sq/strings.xml | 19 ++++++++++--------- res/values-sr/strings.xml | 15 +++++++-------- res/values-sv/strings.xml | 15 +++++++-------- res/values-sw/strings.xml | 15 +++++++-------- res/values-ta/strings.xml | 15 +++++++-------- res/values-te/strings.xml | 20 ++++++++++---------- res/values-th/strings.xml | 15 +++++++-------- res/values-tl/strings.xml | 15 +++++++-------- res/values-tr/strings.xml | 15 +++++++-------- res/values-uk/strings.xml | 9 +++++---- res/values-ur/strings.xml | 17 +++++++++-------- res/values-uz/strings.xml | 15 +++++++-------- res/values-vi/strings.xml | 15 +++++++-------- res/values-zh-rCN/strings.xml | 15 +++++++-------- res/values-zh-rHK/strings.xml | 15 +++++++-------- res/values-zh-rTW/strings.xml | 15 +++++++-------- res/values-zu/strings.xml | 15 +++++++-------- 84 files changed, 582 insertions(+), 632 deletions(-) diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml index 571ad51536..d1e1253b3a 100644 --- a/res/values-af/strings.xml +++ b/res/values-af/strings.xml @@ -46,8 +46,8 @@ "Legstukke" "Soek" "Vee teks in hierdie soekkasie uit" - "Geen legstukke beskikbaar nie" - "Geen soekresultate nie" + "Legstukke en kortpaaie is nie beskikbaar nie" + "Geen legstukke of kortpaaie gekry nie" "Persoonlik" "Werk" "Gesprekke" @@ -64,7 +64,8 @@ "Kennisgewings" "Raak en hou om \'n kortpad te skuif." "Dubbeltik en hou om \'n kortpad te skuif of gebruik gepasmaakte handelinge." - "Niks meer spasie op die tuisskerm nie." + + "Geen plek meer in die Gunstelinge-laai nie" "Programmelys" "Lys persoonlike programme" @@ -158,7 +159,7 @@ "Werkprofiel" "Werkprogramme het \'n kenteken en is sigbaar vir jou IT-administrateur" "Het dit" - "Werkprogramme is af" + "Werkprogramme is onderbreek" "Jou werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" "Werkprogramme is af. Jou werkprogramme kan nie vir jou kennisgewings stuur, jou battery gebruik of toegang tot jou ligging kry nie" "Werkprogramme het \'n kenteken en is sigbaar vir jou IT-administrateur" diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml index fe9716358a..2f56a882c7 100644 --- a/res/values-am/strings.xml +++ b/res/values-am/strings.xml @@ -46,8 +46,8 @@ "ፍርግሞች" "ፍለጋ" "ጽሁፍን ከፍለጋ ሳጥን አጽዳ" - "ምግብሮች አይገኙም" - "ምንም የፍለጋ ውጤቶች የሉም" + "መግብሮች እና አቋራጮች አይገኙም" + "ምንም መግብሮች ወይም አቋራጮች አልተገኙም" "የግል" "ስራ" "ውይይቶች" @@ -64,7 +64,8 @@ "ማሳወቂያዎች" "አቋራጭን ለማንቀሳቀስ ይንኩ እና ይያዙ" "አቋራጭን ለማንቀሳቀስ ወይም ብጁ እርምጃዎችን ለመጠቀም ሁለቴ መታ ያድርጉ እና ይያዙ።" - "በዚህ መነሻ ማያ ገጽ ላይ ምንም ቦታ የለም።" + + "በተወዳጆች መሣቢያ ውስጥ ተጨማሪ ቦታ የለም" "የመተግበሪያዎች ዝርዝር" "የግል መተግበሪያዎች ዝርዝር" @@ -82,10 +83,8 @@ "የመነሻ ቅንብሮችን እና አቋራጮችን ይጽፋል" "መተግብሪያው ቅንብሮችን እና አቋራጮችን በመነሻ ውስጥ እንዲቀይራቸው ያስችለዋል።" "%1$s የስልክ ጥሪዎችን ለማድረግ አልተፈቀደለትም" - - - - + "ምግብርን መጫን አልተቻለም" + "ማዋቀርን ለመጨረስ መታ ያድርጉ" "ይህ የስርዓት መተግበሪያ ነው እና ማራገፍ አይቻልም።" "ስም ያርትዑ" "%1$s ተሰናክሏል" @@ -160,7 +159,7 @@ "የሥራ መገለጫ" "የሥራ መተግበሪያዎች ባጅ የተደረገባቸው እና ለእርስዎ የአይቲ አስተዳዳሪ የሚታዩ ናቸው" "ገባኝ" - "የሥራ መተግበሪያዎች ጠፍተዋል" + "የስራ መተግበሪያዎች ባሉበት ቆመዋል" "የስራ መተግበሪያዎችዎ ማሳወቂያዎችን ሊልክልዎ፣ ባትሪዎን መጠቀም ወይም አካባቢዎን መድረስ አይችሉም" "የሥራ መተግበሪያዎች ጠፍተዋል። የስራ መተግበሪያዎችዎ ማሳወቂያዎችን ሊልክልዎ፣ ባትሪዎን መጠቀም ወይም አካባቢዎን መድረስ አይችሉም" "የሥራ መተግበሪያዎች ባጅ የተደረገባቸው ሲሆን ለእርስዎ IT ቡድን ታይ ናቸው" diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index ff2f51db3b..63c1e30d7b 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -54,8 +54,8 @@ "الأدوات" "بحث" "محو النص من مربّع البحث" - "ما مِن أدوات متاحة." - "ما مِن نتائج بحث." + "الأدوات والاختصارات غير متاحة." + "لم يتم العثور على أدوات أو اختصارات." "الأدوات الشخصية" "أدوات العمل" "المحادثات" @@ -72,7 +72,8 @@ "الإشعارات" "انقر مرتين مع تثبيت إصبعك لنقل اختصار." "انقر مرتين مع تثبيت إصبعك لنقل اختصار أو استخدام الإجراءات المخصّصة." - "لا يتبقى مساحة على هذه الشاشة الرئيسية." + + "لا يوجد المزيد من الحقول في علبة المفضلة" "قائمة التطبيقات" "قائمة التطبيقات الشخصية" @@ -90,10 +91,8 @@ "كتابة إعدادات واختصارات الشاشة الرئيسية" "للسماح للتطبيق بتغيير الإعدادات والاختصارات في الشاشة الرئيسية." "%1$s غير مسموح به لإجراء مكالمات هاتفية" - - - - + "يتعذّر تحميل الأداة." + "انقر لإكمال الإعداد." "هذا تطبيق نظام وتتعذر إزالته." "تعديل الاسم" "تم إيقاف %1$s" @@ -172,7 +171,7 @@ "الملف الشخصي للعمل" "تحمل تطبيقات العمل شارة وتكون مرئية لمشرف تكنولوجيا المعلومات." "حسنًا" - "تطبيقات العمل غير مفعّلة" + "تم إيقاف تطبيقات العمل مؤقتًا." "لا يمكن لتطبيقات العمل إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." "تطبيقات العمل غير مفعّلة، وبالتالي لا يمكنها إرسال إشعارات إليك أو استخدام بطاريتك أو الوصول إلى موقعك الجغرافي." "تحمل تطبيقات العمل شارة وتكون مرئية لمشرف تكنولوجيا المعلومات." diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml index 43927f53e2..7ecc9da037 100644 --- a/res/values-as/strings.xml +++ b/res/values-as/strings.xml @@ -46,8 +46,8 @@ "ৱিজেটসমূহ" "সন্ধান" "সন্ধান বাকচত থকা পাঠ মচক" - "কোনো ৱিজেট নাই" - "সন্ধানৰ কোনো ফলাফল নাই" + "ৱিজেট আৰু শ্বৰ্টকাট উপলব্ধ নহয়" + "কোনো ৱিজেট আৰু শ্বৰ্টকাট পোৱা নগ’ল" "ব্যক্তিগত" "কৰ্মস্থান" "বাৰ্তালাপ" @@ -64,7 +64,8 @@ "জাননীসমূহ" "শ্বৰ্টকাট স্থানান্তৰ কৰিবলৈ দুবাৰ টিপি ধৰি ৰাখক।" "কোনো শ্বৰ্টকাট স্থানান্তৰ কৰিবলৈ দুবাৰ টিপি ধৰি ৰাখক অথবা কাষ্টম কাৰ্য ব্যৱহাৰ কৰক।" - "এই গৃহ স্ক্ৰীণত আৰু বেছি ঠাই নাই।" + + "পছন্দৰ ট্ৰে\'ত আৰু বেছি ঠাই নাই" "এপৰ সূচী" "ব্যক্তিগত এপৰ তালিকা" @@ -82,10 +83,8 @@ "গৃহ ছেটিং আৰু শ্বৰ্টকাটবোৰ লিখিব পাৰে" "এপটোক গৃহ পৃষ্ঠাত ছেটিং আৰু শ্বৰ্টকাটসমূহ সলনি কৰাৰ অনুমতি দিয়ে।" "%1$sক ফ\'ন কলবোৰ কৰাৰ অনুমতি দিয়া হোৱা নাই" - - - - + "ৱিজেট ল’ড কৰিব নোৱাৰি" + "ছেটআপ সমাপ্ত কৰিবলৈ টিপক" "এইটো এটা ছিষ্টেম এপ আৰু ইয়াক আনইনষ্টল কৰিব নোৱৰি" "নাম সম্পাদনা কৰক" "%1$s অক্ষম কৰা হ’ল" @@ -160,7 +159,7 @@ "কৰ্মস্থানৰ প্ৰ\'ফাইল" "কৰ্মস্থানৰ এপ্‌সমূহ প্ৰতীকেৰে চিহ্নিত কৰা হয় আৰু সেইবোৰ আপোনাৰ আইটি প্ৰশাসকৰ বাবে দৃশ্যমান হয়" "বুজি পালোঁ" - "কৰ্মস্থানৰ এপ্‌সমূহ অফ হৈ আছে" + "কাম সম্পর্কীয় এপ্‌সমূহ পজ হৈ আছে" "আপোনাৰ কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" "কৰ্মস্থানৰ এপ্‌সমূহ অফ হৈ আছে। আপোনাৰ কৰ্মস্থানৰ এপ্‌সমূহে আপোনালৈ জাননী পঠিয়াব, আপোনাৰ বেটাৰী ব্যৱহাৰ কৰিব অথবা আপোনাৰ অৱস্থান এক্সেছ কৰিব নোৱাৰে" "কর্মস্থানৰ এপ্‌সমূহ প্ৰতীকেৰে চিহ্নিত কৰা হয় আৰু সেইবোৰ আপোনাৰ আইটি প্ৰশাসকৰ বাবে দৃশ্যমান হয়" diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index 7685330860..3670b01348 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -27,7 +27,7 @@ "Vidcetlər Güvənli rejimdə deaktiv edilib" "Qısayol əlçatan deyil" "Əsas səhifə" - "Bölünmüş ekran" + "Ekran bölünməsi" "Vidceti daşımaq üçün toxunub saxlayın." "Vidceti daşımaq üçün iki dəfə toxunub saxlayın və ya fərdi əməliyyatlardan istifadə edin." "%1$d × %2$d" @@ -46,8 +46,8 @@ "Vidcet" "Axtarış" "Axtarış qutusundan mətni silin" - "Əlçatan vidcet yoxdur" - "Axtarış nəticəsi yoxdur" + "Vidcet və qısayollar əlçatan deyil" + "Vidcet və ya qısayol tapılmayıb" "Şəxsi" "İş" "Söhbətlər" @@ -64,7 +64,8 @@ "Bildirişlər" "Qısayolu daşımaq üçün toxunub saxlayın." "Qısayolu daşımaq üçün iki dəfə toxunub saxlayın və ya fərdi əməliyyatlardan istifadə edin." - "Bu Əsas ekranda boş yer yoxdur." + + "Favoritlər-də yer yoxdur" "Tətbiq siyahısı" "Şəxsi tətbiqlərin siyahısı" @@ -82,10 +83,8 @@ "Əsas Səhifə ayarlarını və qısayolları yazın" "Tətbiqə Əsas Səhifədə ayarları və qısayolları dəyişməyə icazə verir." "%1$s tətbiqinə telefon zəngləri etmək üçün icazə verilmir" - - - - + "Vidceti yükləmək olmur" + "Ayarlamanı tamamlamaq üçün toxunun" "Bu sistem tətbiqi olduğu üçün sistemdən silinə bilməz." "Adı redaktə edin" "%1$s deaktiv edildi" @@ -160,7 +159,7 @@ "İş profili" "İş tətbiqləri nişanlanıb və İT administratorunuza görünür" "Anladım" - "İş tətbiqləri deaktivdir" + "İş tətbiqlərinə pauza verilib" "İş tətbiqləriniz sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" "İş tətbiqləri deaktivdir. İş tətbiqləriniz sizə bildirişlər göndərə, batareyanızdan istifadə edə və ya məkanınıza daxil ola bilməz" "İş tətbiqləri nişanlanıb və İT administratorunuza görünür" diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml index 3e43c50b93..50d052ab30 100644 --- a/res/values-b+sr+Latn/strings.xml +++ b/res/values-b+sr+Latn/strings.xml @@ -48,8 +48,8 @@ "Vidžeti" "Pretražite" "Obrišite tekst iz okvira za pretragu" - "Nije dostupan nijedan vidžet" - "Nema rezultata pretrage" + "Vidžeti i prečice nisu dostupni" + "Nije pronađen nijedan vidžet ili prečica" "Lično" "Posao" "Konverzacije" @@ -66,7 +66,8 @@ "Obaveštenja" "Dvaput dodirnite i zadržite radi pomeranja prečice." "Dvaput dodirnite i zadržite da biste pomerali prečicu ili koristite prilagođene radnje." - "Nema više prostora na ovom početnom ekranu." + + "Nema više prostora na traci Omiljeno" "Lista aplikacija" "Lista ličnih aplikacija" @@ -84,10 +85,8 @@ "upisivanje podešavanja i prečica na početnom ekranu" "Dozvoljava aplikaciji da menja podešavanja i prečice na početnom ekranu." "%1$s nema dozvolu za upućivanje telefonskih poziva" - - - - + "Učitavanje vidžeta nije uspelo" + "Dodirnite da biste dovršili podešavanje" "Ovo je sistemska aplikacija i ne može da se deinstalira." "Izmenite naziv" "Aplikacija %1$s je onemogućena" @@ -163,7 +162,7 @@ "Poslovni profil" "Poslovne aplikacije su označene značkom i IT administrator može da ih vidi" "Važi" - "Poslovne aplikacije su isključene" + "Poslovne aplikacije su pauzirane" "Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" "Poslovne aplikacije su isključene. Poslovne aplikacije ne mogu da vam šalju obaveštenja, koriste bateriju niti pristupaju lokaciji" "Poslovne aplikacije su označene značkom i IT administrator može da ih vidi" diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index d99972996d..bdc2f196ba 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -50,8 +50,8 @@ "Віджэты" "Пошук" "Ачысціць тэкст у полі пошуку" - "Віджэты недаступныя" - "Няма вынікаў пошуку" + "Віджэты і ярлыкі недаступныя" + "Віджэтаў і ярлыкоў не знойдзена" "Асабістыя" "Працоўныя" "Размовы" @@ -68,7 +68,8 @@ "Апавяшчэнні" "Націсніце і ўтрымлівайце ярлык для перамяшчэння." "Дакраніцеся двойчы і ўтрымлівайце, каб перамясціць ярлык або выкарыстоўваць спецыяльныя дзеянні." - "На гэтым Галоўным экране больш няма месца." + + "У латку \"Абранае\" больш няма месца" "Спіс праграм" "Спіс персанальных праграм" @@ -86,10 +87,8 @@ "запісваць налады і ярлыкі на галоўнай старонцы" "Дазваляе праграме змяняць налады і ярлыкі на Галоўнай старонцы." "%1$s не мае дазволу на здзяйсненне тэлефонных званкоў" - - - - + "Не ўдаецца загрузіць віджэт" + "Націсніце, каб завяршыць наладжванне" "Гэта сістэмная праграма, яе нельга выдаліць." "Змяніць назву" "%1$s адключана" @@ -166,7 +165,7 @@ "Працоўны профіль" "Працоўныя праграмы маюць значкі і бачныя IT-адміністратару" "Зразумела" - "Працоўныя праграмы выключаны" + "Працоўныя праграмы прыпынены" "Працоўныя праграмы не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да даных пра ваша месцазнаходжанне" "Працоўныя праграмы выключаны. Яны не могуць адпраўляць вам апавяшчэнні, выкарыстоўваць акумулятар або атрымліваць доступ да вашага месцазнаходжання" "Працоўныя праграмы маюць значкі і бачныя IT-адміністратару" diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index a104988e2d..f0c86c679d 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -46,8 +46,8 @@ "Приспособления" "Търсене" "Изчистване на текста от полето за търсене" - "Няма налични приспособления" - "Няма резултати от търсенето" + "Няма налице преки пътища и приспособления" + "Няма открити преки пътища или приспособления" "Лични" "Служебни" "Разговори" @@ -64,7 +64,8 @@ "Известия" "Докоснете и задръжте за преместване на пряк път." "Докоснете двукратно и задръжте за преместване на пряк път или използвайте персонализирани действия." - "На този начален екран няма повече място." + + "Няма повече място в областта с любимите" "Списък с приложения" "Списък с лични приложения" @@ -82,10 +83,8 @@ "запис на настройките и преките пътища в Начало" "Разрешава на приложението да променя настройките и преките пътища в Начало." "%1$s няма разрешение да извършва телефонни обаждания" - - - - + "Приспособлението не може да се зареди" + "Докоснете, за да завършите настройването" "Това е системно приложение и не може да се деинсталира." "Редактиране на името" "Деактивирахте %1$s" @@ -160,7 +159,7 @@ "Служебен потребителски профил" "Служебните приложения са означени със значка и са видими за системния администратор" "Разбрах" - "Служебните ви приложения са изключени" + "Служебните приложения са поставени на пауза" "Служебните ви приложения не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" "Служебните ви приложения са изключени. Те не могат да ви изпращат известия, да използват батерията или да осъществяват достъп до местоположението ви" "Служебните приложения са означени със значка и са видими за системния администратор" diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml index f89aecbadd..62b5c5d944 100644 --- a/res/values-bn/strings.xml +++ b/res/values-bn/strings.xml @@ -46,8 +46,10 @@ "উইজেট" "সার্চ করুন" "সার্চ বক্স থেকে টেক্সট মুছুন" - "কোনও উইজেট ফলাফল নেই" - "কোনও সার্চ ফলাফল নেই" + + + + "ব্যক্তিগত" "অফিস" "কথোপকথন" @@ -64,7 +66,8 @@ "বিজ্ঞপ্তি" "একটি শর্টকাট সরাতে টাচ করে ধরে রাখুন।" "একটি শর্টকাট সরাতে বা কাস্টম অ্যাকশন ব্যবহার করতে ডবল ট্যাপ করে ধরে রাখুন।" - "এই হোম স্ক্রীনে আর কোনো জায়গা নেই৷" + + "পছন্দসই ট্রে-তে আর কোনো জায়গা নেই" "অ্যাপ্লিকেশানগুলির তালিকা" "ব্যক্তিগত অ্যাপের তালিকা" @@ -82,10 +85,8 @@ "হোম সেটিংস এবং শর্টকাটগুলি লেখে" "হোমে অ্যাপ্লিকেশানটিকে সেটিংস এবং শর্টকাটগুলি পরিবর্তন করতে দেয়৷" "ফোন কলগুলি করার জন্য %1$s এর অনুমতি নেই" - - - - + "উইজেট লোড করা যাচ্ছে না" + "সেটআপ সম্পূর্ণ করতে ট্যাপ করুন" "এটি একটি সিস্টেম অ্যাপ্লিকেশান এবং আনইনস্টল করা যাবে না৷" "নাম এডিট করুন" "%1$s অক্ষম করা হয়েছে" @@ -158,10 +159,9 @@ "ব্যক্তিগত" "অফিস" "অফিসের প্রোফাইল" - - + "অফিসের অ্যাপে ব্যাজ যোগ করা হয়েছে এবং আপনার আইটি অ্যাডমিন সেটি দেখতে পাবেন" "বুঝেছি" - "অফিসের অ্যাপ বন্ধ আছে" + "অফিসের অ্যাপ বন্ধ করা আছে" "অফিসের অ্যাপ আপনাকে নোটিফিকেশন পাঠাতে পারবে না। এছাড়া, ব্যাটারি ব্যবহার করতে বা লোকেশন অ্যাক্সেস করতে পারবে না" "অফিসের অ্যাপ বন্ধ আছে। আপনার অফিসের অ্যাপ আপনাকে বিজ্ঞপ্তি পাঠাতে, ব্যাটারি ব্যবহার করতে বা লোকেশন অ্যাক্সেস করতে পারবে না" "অফিসের অ্যাপে ব্যাজ যোগ করা হয়েছে এবং আপনার আইটি অ্যাডমিন সেটি দেখতে পাবেন" diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index b265d841e4..dc43c40cdf 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -48,8 +48,8 @@ "Vidžeti" "Pretražite" "Brisanje teksta iz okvira za pretraživanje" - "Nijedan vidžet nije dostupan" - "Nema rezultata pretraživanja" + "Vidžeti i prečice nisu dostupni" + "Nije pronađen nijedan vidžet niti prečica" "Lično" "Posao" "Razgovori" @@ -66,7 +66,8 @@ "Obavještenja" "Dodirnite i zadržite da pomjerite prečicu." "Dvaput dodirnite i zadržite da pomjerite prečicu ili da koristite prilagođene radnje." - "Nema više prostora na ovom početnom ekranu." + + "Nema više prostora u ladici Omiljeno" "Lista aplikacija" "Lista ličnih aplikacija" @@ -84,10 +85,8 @@ "zapisuj postavke na početnom ekranu i prečice" "Dopušta aplikaciji promjenu postavki i prečica na početnom ekranu." "%1$s nema odobrenje da uspostavlja telefonske pozive" - - - - + "Nije moguće učitati vidžet" + "Dodirnite da završite postavljanje" "Ovo je sistemska aplikacija i ne može se deinstalirati." "Uređivanje naziva" "Aplikacija %1$s je onemogućena" @@ -163,7 +162,7 @@ "Radni profil" "Poslovne aplikacije su označene i vaš IT administrator ih može vidjeti" "Razumijem" - "Poslovne aplikacije su isključene" + "Poslovne aplikacije su pauzirane" "Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju niti pristupiti vašoj lokaciji" "Poslovne aplikacije su isključene. Poslovne aplikacije vam ne mogu slati obavještenja, koristiti bateriju ili pristupiti vašoj lokaciji" "Poslovne aplikacije su označene i vaš IT administrator ih može vidjeti" diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index 9cd23ba2cb..a84293541f 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Cerca" "Esborra el text del quadre de cerca" - "No hi ha widgets disponibles" - "No hi ha cap resultat de la cerca" + "No hi ha widgets ni dreceres disponibles" + "No s\'ha trobat cap widget ni drecera" "Personal" "Treball" "Converses" @@ -64,7 +64,8 @@ "Notificacions" "Fes doble toc i mantén premut per moure una drecera." "Fes doble toc i mantén premut per moure una drecera o per utilitzar accions personalitzades." - "Ja no queda espai en aquesta pantalla d\'inici." + + "No hi ha més espai a la safata Preferits." "Llista d\'aplicacions" "Llista d\'aplicacions personals" @@ -82,10 +83,8 @@ "escriu la configuració i les dreceres de la pantalla d\'inici" "Permet que l\'aplicació canviï la configuració i les dreceres de la pantalla d\'inici." "%1$s no té permís per fer trucades telefòniques" - - - - + "No es pot carregar el widget" + "Toca per finalitzar la configuració" "Aquesta aplicació és una aplicació del sistema i no es pot desinstal·lar." "Edita el nom" "S\'ha desactivat %1$s" @@ -160,7 +159,7 @@ "Perfil de treball" "Les aplicacions de treball tenen una insígnia i són visibles per al teu administrador de TI" "Entesos" - "Les aplicacions de treball estan desactivades" + "Les aplicacions de treball s\'han posat en pausa" "Les aplicacions de treball no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació" "Les aplicacions de treball estan desactivades: no poden enviar-te notificacions, consumir bateria ni accedir a la teva ubicació" "Les aplicacions de treball tenen una insígnia i són visibles per al teu administrador de TI" diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml index 9785754d58..9b60c192f7 100644 --- a/res/values-cs/strings.xml +++ b/res/values-cs/strings.xml @@ -50,8 +50,8 @@ "Widgety" "Vyhledávání" "Vymazat text z vyhledávacího pole" - "Nejsou k dispozici žádné widgety" - "Žádné výsledky hledání" + "Widgety ani zkratky nejsou k dispozici" + "Nebyly nalezeny žádné widgety ani zkratky" "Osobní" "Práce" "Konverzace" @@ -68,7 +68,8 @@ "Oznámení" "Klepnutím a podržením přesunete zkratku." "Dvojitým klepnutím a podržením přesunete zkratku, případně použijte vlastní akce." - "Na této ploše již není místo." + + "Na panelu Oblíbené položky již není místo." "Seznam aplikací" "Seznam osobních aplikací" @@ -86,10 +87,8 @@ "zápis nastavení a odkazů plochy" "Umožňuje aplikaci změnit nastavení a odkazy na ploše." "Aplikace %1$s nemá oprávnění telefonovat" - - - - + "Widget se nepodařilo načíst" + "Klepnutím dokončíte konfiguraci" "Toto je systémová aplikace a nelze ji odinstalovat." "Upravit název" "Aplikace %1$s je zakázána" @@ -166,7 +165,7 @@ "Pracovní profil" "Pracovní aplikace jsou označené a viditelné vašemu administrátorovi IT" "Rozumím" - "Pracovní aplikace jsou vypnuté" + "Pracovní aplikace jsou pozastaveny" "Pracovní aplikace vám nemohou zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" "Pracovní aplikace jsou vypnuté. Nemohou vám zasílat oznámení, používat vaši baterii ani získat přístup k vaší poloze" "Pracovní aplikace jsou označené a viditelné vašemu administrátorovi IT" diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index d757b0ecd2..96ac1d14e5 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Søg" "Ryd teksten i søgefeltet" - "Der er ingen tilgængelig widget" - "Der er ingen søgeresultater" + "Der er ingen tilgængelige widgets eller genveje" + "Der blev ikke fundet nogen widgets eller genveje" "Personlige" "Arbejde" "Samtaler" @@ -64,7 +64,8 @@ "Notifikationer" "Hold en genvej nede for at flytte den." "Tryk to gange, og hold en genvej nede for at flytte den eller bruge tilpassede handlinger." - "Der er ikke mere plads på denne startskærm." + + "Der er ikke mere plads i bakken Favoritter" "Liste med apps" "Liste over personlige apps" @@ -82,10 +83,8 @@ "skrive indstillinger og genveje for startskærmen" "Tillader, at appen ændrer indstillingerne og genvejene på startskærmen." "%1$s har ikke tilladelse til at foretage telefonopkald" - - - - + "Widgetten kan ikke indlæses" + "Tryk for at fuldføre konfigurationen" "Dette er en systemapp, som ikke kan afinstalleres." "Rediger navn" "%1$s er deaktiveret" @@ -160,7 +159,7 @@ "Arbejdsprofil" "Arbejdsapps har badges og kan ses af din it-administrator" "OK" - "Arbejdsapps er deaktiveret" + "Dine arbejdsapps er sat på pause" "Arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din lokation" "Arbejdsapps er deaktiveret. Dine arbejdsapps kan ikke sende dig notifikationer, bruge dit batteri eller få adgang til din lokation" "Arbejdsapps har badges og kan ses af din it-administrator" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 8ae811fcad..dfa6337a4b 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -46,8 +46,10 @@ "Widgets" "Suche" "Text aus dem Suchfeld löschen" - "Keine Widgets verfügbar" - "Keine Suchergebnisse" + + + + "Privat" "Geschäftlich" "Unterhaltungen" @@ -64,7 +66,8 @@ "Benachrichtigungen" "Tippen und halten, um eine Verknüpfung zu bewegen." "Doppeltippen und halten, um eine Verknüpfung zu bewegen oder benutzerdefinierte Aktionen zu nutzen." - "Auf diesem Startbildschirm ist kein Platz mehr vorhanden." + + "Ablage \"Favoriten\" ist voll." "Liste der Apps" "Liste der privaten Apps" @@ -82,10 +85,8 @@ "Einstellungen und Verknüpfungen für den Startbildschirm schreiben" "Ermöglicht der App, die Einstellungen und Verknüpfungen auf dem Startbildschirm zu ändern" "%1$s darf keine Telefonanrufe tätigen." - - - - + "Widget kann nicht geladen werden" + "Tippen, um Einrichtung abzuschließen" "Dies ist eine Systemanwendung, die nicht deinstalliert werden kann." "Name bearbeiten" "%1$s deaktiviert" @@ -160,7 +161,7 @@ "Arbeitsprofil" "Geschäftliche Apps sind gekennzeichnet und für deinen IT-Administrator sichtbar" "OK" - "Geschäftliche Apps sind deaktiviert" + "Geschäftliche Apps sind pausiert" "Deine geschäftlichen Apps können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen" "Geschäftliche Apps sind deaktiviert. Sie können dir keine Benachrichtigungen senden, deinen Akku nicht nutzen und nicht auf deinen Standort zugreifen." "Geschäftliche Apps sind gekennzeichnet und für deinen IT-Administrator sichtbar" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index fc7d691c03..14ff86040d 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -46,8 +46,8 @@ "Γραφικά στοιχεία" "Αναζήτηση" "Διαγραφή κειμένου από το πλαίσιο αναζήτησης" - "Δεν υπάρχουν διαθέσιμα γραφικά στοιχεία" - "Κανένα αποτέλεσμα αναζήτησης" + "Δεν υπάρχουν διαθέσιμα γραφικά στοιχεία και συντομεύσεις." + "Δεν βρέθηκαν γραφικά στοιχεία ή συντομεύσεις." "Προσωπικά" "Εργασίας" "Συζητήσεις" @@ -64,7 +64,8 @@ "Ειδοποιήσεις" "Πατήστε παρατεταμένα για μετακίνηση συντόμευσης." "Πατήστε δύο φορές παρατεταμένα για μετακίνηση συντόμευσης ή χρήση προσαρμοσμένων ενεργειών." - "Δεν υπάρχει χώρος σε αυτήν την αρχική οθόνη." + + "Δεν υπάρχει επιπλέον χώρος στην περιοχή Αγαπημένα" "Λίστα εφαρμογών" "Λίστα προσωπικών εφαρμογών" @@ -158,7 +159,7 @@ "Προφίλ εργασίας" "Οι εφαρμογές εργασιών φέρουν σήμα και είναι ορατές στον διαχειριστή IT σας" "Το κατάλαβα" - "Οι εφαρμογές εργασιών είναι απενεργοποιημένες" + "Οι εφαρμογές εργασίας τέθηκαν σε παύση." "Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας" "Οι εφαρμογές εργασιών είναι απενεργοποιημένες. Οι εφαρμογές εργασιών δεν έχουν τη δυνατότητα αποστολής ειδοποιήσεων, χρήσης της μπαταρίας ή πρόσβασης στην τοποθεσία σας" "Οι εφαρμογές εργασιών φέρουν σήμα και είναι ορατές στον διαχειριστή IT σας" diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index 08d032bf96..279f22ed37 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Search" "Clear text from search box" - "No widgets available" - "No search results" + "Widgets and shortcuts aren\'t available" + "No widgets or shortcuts found" "Personal" "Work" "Conversations" @@ -64,7 +64,7 @@ "Notifications" "Touch & hold to move a shortcut." "Double-tap & hold to move a shortcut or use custom actions." - "No more room on this Home screen." + "No room on this home screen" "No more room in the Favourites tray" "Apps list" "Personal apps list" @@ -158,7 +158,7 @@ "Work profile" "Work apps are badged and visible to your IT admin" "OK" - "Work apps are off" + "Work apps are paused" "Your work apps can’t send you notifications, use your battery or access your location" "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index 08d032bf96..279f22ed37 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Search" "Clear text from search box" - "No widgets available" - "No search results" + "Widgets and shortcuts aren\'t available" + "No widgets or shortcuts found" "Personal" "Work" "Conversations" @@ -64,7 +64,7 @@ "Notifications" "Touch & hold to move a shortcut." "Double-tap & hold to move a shortcut or use custom actions." - "No more room on this Home screen." + "No room on this home screen" "No more room in the Favourites tray" "Apps list" "Personal apps list" @@ -158,7 +158,7 @@ "Work profile" "Work apps are badged and visible to your IT admin" "OK" - "Work apps are off" + "Work apps are paused" "Your work apps can’t send you notifications, use your battery or access your location" "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 08d032bf96..279f22ed37 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Search" "Clear text from search box" - "No widgets available" - "No search results" + "Widgets and shortcuts aren\'t available" + "No widgets or shortcuts found" "Personal" "Work" "Conversations" @@ -64,7 +64,7 @@ "Notifications" "Touch & hold to move a shortcut." "Double-tap & hold to move a shortcut or use custom actions." - "No more room on this Home screen." + "No room on this home screen" "No more room in the Favourites tray" "Apps list" "Personal apps list" @@ -158,7 +158,7 @@ "Work profile" "Work apps are badged and visible to your IT admin" "OK" - "Work apps are off" + "Work apps are paused" "Your work apps can’t send you notifications, use your battery or access your location" "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 08d032bf96..279f22ed37 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Search" "Clear text from search box" - "No widgets available" - "No search results" + "Widgets and shortcuts aren\'t available" + "No widgets or shortcuts found" "Personal" "Work" "Conversations" @@ -64,7 +64,7 @@ "Notifications" "Touch & hold to move a shortcut." "Double-tap & hold to move a shortcut or use custom actions." - "No more room on this Home screen." + "No room on this home screen" "No more room in the Favourites tray" "Apps list" "Personal apps list" @@ -158,7 +158,7 @@ "Work profile" "Work apps are badged and visible to your IT admin" "OK" - "Work apps are off" + "Work apps are paused" "Your work apps can’t send you notifications, use your battery or access your location" "Work apps are off. Your work apps can’t send you notifications, use your battery or access your location" "Work apps are badged and visible to your IT admin" diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml index 7ada105cbc..a1a4ba911d 100644 --- a/res/values-en-rXC/strings.xml +++ b/res/values-en-rXC/strings.xml @@ -46,8 +46,8 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎Widgets‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎Search‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‎Clear text from search box‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎No widgets available‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎No search results‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎Widgets and shortcuts aren\'t available‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‎No widgets or shortcuts found‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎Personal‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎Work‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎Conversations‎‏‎‎‏‎" @@ -64,7 +64,7 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎Notifications‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎Touch & hold to move a shortcut.‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎Double-tap & hold to move a shortcut or use custom actions.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‎‎No more room on this Home screen.‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎No room on this Home screen‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‏‎‏‎No more room in the Favorites tray‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎Apps list‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‎Personal apps list‎‏‎‎‏‎" @@ -158,7 +158,7 @@ "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎Work profile‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎Work apps are badged and visible to your IT admin‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎Got it‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎Work apps are off‎‏‎‎‏‎" + "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎Work apps are paused‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎Your work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎Work apps are off. Your work apps can’t send you notifications, use your battery, or access your location‎‏‎‎‏‎" "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎Work apps are badged and visible to your IT admin‎‏‎‎‏‎" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 607d831110..b8567155cb 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Buscar" "Borra el texto del cuadro de búsqueda" - "No hay widgets disponibles" - "La búsqueda no arrojó resultados" + "Los widgets y accesos directos no están disponibles" + "No se encontraron widgets ni accesos directos" "Personales" "Trabajo" "Conversaciones" @@ -64,7 +64,8 @@ "Notificaciones" "Mantén presionado para mover un acceso directo." "Presiona dos veces y mantén presionado para mover un acceso directo o usar acciones personalizadas." - "No hay más espacio en esta pantalla principal." + + "La bandeja de favoritos está llena." "Lista de apps" "Lista de apps personales" @@ -158,7 +159,7 @@ "Perfil de trabajo" "Las apps de trabajo tienen una insignia y el administrador de IT las puede ver" "Entendido" - "Las apps de trabajo están desactivadas" + "Las apps de trabajo están detenidas" "Las apps de trabajo no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" "Las apps de trabajo están desactivadas y, por ende, no pueden enviarte notificaciones, usar la batería ni acceder a tu ubicación" "Las apps de trabajo tienen una insignia y el administrador de IT las puede ver" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 03ac6d12e5..83e49848ed 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Buscar" "Borrar texto del cuadro de búsqueda" - "No hay widgets disponibles" - "No hay resultados de búsqueda" + "Los widgets y los accesos directos no están disponibles" + "No se han encontrado widgets ni accesos directos" "Personales" "Trabajo" "Conversaciones" @@ -64,7 +64,8 @@ "Notificaciones" "Mantén pulsado un acceso directo para moverlo." "Toca dos veces y mantén pulsado un acceso directo para moverlo o usar acciones personalizadas." - "No queda espacio en la pantalla de inicio." + + "La bandeja de favoritos está completa" "Lista de aplicaciones" "Lista de aplicaciones personales" @@ -82,10 +83,8 @@ "escribir información de accesos directos y de ajustes de la pantalla de inicio" "Permite que las aplicaciones cambien los ajustes y los accesos directos de la pantalla de inicio." "%1$s no puede hacer llamadas" - - - - + "No se puede cargar el widget" + "Toca para finalizar la configuración" "Esta aplicación es del sistema y no se puede desinstalar." "Editar nombre" "Se ha inhabilitado %1$s" @@ -160,7 +159,7 @@ "Perfil de trabajo" "Las aplicaciones de trabajo tienen una insignia, y tu administrador de TI las puede ver" "Entendido" - "Las aplicaciones de trabajo están desactivadas" + "Se han pausado las aplicaciones de trabajo" "Tus aplicaciones de trabajo no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" "Las aplicaciones de trabajo están desactivadas, por lo que no pueden enviarte notificaciones, consumir batería ni acceder a tu ubicación" "Las aplicaciones de trabajo tienen una insignia y tu administrador de TI las puede ver" diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml index 9ec12fce6a..84100d4bde 100644 --- a/res/values-et/strings.xml +++ b/res/values-et/strings.xml @@ -46,8 +46,8 @@ "Vidinad" "Otsing" "Kustuta otsingukastis olev tekst" - "Ühtki vidinat pole saadaval" - "Otsingutulemused puuduvad" + "Vidinad ja otseteed pole saadaval" + "Ei leitud ühtegi vidinat ega otseteed" "Isiklikud" "Töö" "Vestlused" @@ -64,7 +64,8 @@ "Märguanded" "Otsetee teisaldamiseks puudutage ja hoidke all." "Otsetee teisaldamiseks või kohandatud toimingute kasutamiseks topeltpuudutage ja hoidke all." - "Sellel avakuval pole enam ruumi." + + "Salves Lemmikud pole rohkem ruumi" "Rakenduste loend" "Isiklike rakenduste loend" @@ -82,10 +83,8 @@ "avakuva seadete ja otseteede kirjutamine" "Võimaldab rakendusel muuta avaekraanil seadeid ja otseteid." "Rakendusel %1$s pole lubatud helistada" - - - - + "Vidinat ei saa laadida" + "Puudutage seadistuse lõpuleviimiseks" "See on süsteemirakendus ja seda ei saa desinstallida." "Muuda nime" "Rakendus %1$s on keelatud" @@ -160,7 +159,7 @@ "Tööprofiil" "Töörakendustel on märk ja need on teie IT-administraatorile nähtavad" "Selge" - "Töörakendused on välja lülitatud" + "Töörakendused on peatatud" "Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda" "Töörakendused on välja lülitatud. Töörakendused ei saa teile märguandeid saata, akut kasutada ega teie asukohale juurde pääseda." "Töörakendustel on märk ja need on teie IT-administraatorile nähtavad" diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index 0df92adf24..f8b3997993 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -46,8 +46,8 @@ "Widgetak" "Bilatu" "Garbitu bilaketa-koadroko testua" - "Ez dago widget erabilgarririk" - "Ez dago bilaketa-emaitzarik" + "Widgetak eta lasterbideak erabilgarri daude" + "Ez da aurkitu widgetik edo lasterbiderik" "Pertsonalak" "Lanekoak" "Elkarrizketak" @@ -64,7 +64,8 @@ "Jakinarazpenak" "Eduki sakatuta lasterbide bat mugitzeko." "Sakatu birritan eta eduki sakatuta lasterbide bat mugitzeko edo ekintza pertsonalizatuak erabiltzeko." - "Hasierako pantaila honetan ez dago toki gehiago." + + "Ez dago toki gehiago Gogokoak erretiluan" "Aplikazioen zerrenda" "Aplikazio pertsonalen zerrenda" @@ -82,10 +83,8 @@ "Idatzi hasierako ezarpenak eta lasterbideak" "Hasierako pantailako ezarpenak eta lasterbideak aldatzeko baimena ematen die aplikazioei." "%1$s aplikazioak ez du telefono-deiak egiteko baimenik" - - - - + "Ezin da kargatu widgeta" + "Konfiguratzen amaitzeko, sakatu hau" "Sistema-aplikazioa da hau eta ezin da desinstalatu." "Editatu izena" "%1$s desgaituta dago" @@ -160,7 +159,7 @@ "Laneko profila" "Laneko aplikazioek bereizgarriak dituzte, eta IKT saileko administratzaileak ikus ditzake" "Ados" - "Laneko aplikazioak desaktibatuta daude" + "Pausatu egin dira laneko aplikazioak" "Laneko aplikazioek ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu" "Laneko aplikazioak desaktibatuta daude. Hori dela eta, ezin dute jakinarazpenik bidali, bateria erabili edo kokapena atzitu." "Laneko aplikazioek bereizgarriak dituzte, eta IKT saileko administratzaileak ikus ditzake" diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 9da53ca986..c4fda9b10a 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -46,8 +46,8 @@ "ابزارک‌ها" "جستجو" "پاک کردن نوشتار از چارگوش جستجو" - "ابزارکی دردسترس نیست" - "بدون نتیجه جستجو" + "ابزارک و میان‌بری دردسترس نیست" + "هیچ ابزارک یا میان‌بری پیدا نشد" "ابزارک‌های شخصی" "کار" "مکالمه‌ها" @@ -64,7 +64,8 @@ "اعلان‌ها" "برای جابه‌جا کردن میان‌بر، لمس کنید و نگه دارید." "برای جابه‌جا کردن میان‌بر یا استفاده از کنش‌های سفارشی، دوضربه بزنید و نگه دارید." - "فضای بیشتری در این صفحه اصلی موجود نیست." + + "فضای بیشتری در سینی موارد دلخواه وجود ندارد" "فهرست برنامه‌ها" "فهرست برنامه‌های شخصی" @@ -82,10 +83,8 @@ "نوشتن تنظیمات و میان‌برهای صفحه اصلی" "به برنامه اجازه می‌دهد تنظیمات و میان‌برها را در صفحه اصلی تغییر دهد." "%1$s مجاز نیست تماس تلفنی برقرار کند" - - - - + "ابزارک را نمی‌توان بار کرد" + "برای تکمیل راه‌اندازی ضربه بزنید" "این برنامه سیستمی است و حذف نصب نمی‌شود." "ویرایش نام" "%1$s غیرفعال شد" @@ -160,7 +159,7 @@ "نمایه کاری" "برنامه‌های کاری دارای نشان هستند و سرپرست سیستم می‌تواند آن‌ها را ببیند" "متوجه‌ام" - "برنامه‌های کاری خاموش است" + "برنامه‌های کاری موقتاً متوقف می‌شوند" "برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" "برنامه‌های کاری خاموش است. برنامه‌های کاری نمی‌توانند برای شما اعلان ارسال کنند، از باتری استفاده کنند، یا به مکانتان دسترسی داشته باشند" "برنامه‌های کاری دارای نشان هستند و سرپرست سیستم می‌تواند آن‌ها را ببیند." diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml index fd8b67168f..7d6e7a40fd 100644 --- a/res/values-fi/strings.xml +++ b/res/values-fi/strings.xml @@ -46,8 +46,8 @@ "Widgetit" "Haku" "Tyhjennä teksti hakukentästä" - "Ei widgetejä käytettävissä" - "Ei hakutuloksia" + "Widgetit ja pikanäppäimet eivät ole saatavilla" + "Widgetejä tai pikanäppäimiä ei löytynyt" "Henkilökohtaiset" "Työ" "Keskustelut" @@ -64,7 +64,8 @@ "Ilmoitukset" "Kosketa pitkään, niin voit siirtää pikakuvaketta." "Kaksoisnapauta ja paina pitkään, niin voit siirtää pikakuvaketta tai käyttää muokattuja toimintoja." - "Tässä aloitusruudussa ei ole enää tilaa." + + "Suosikit-valikossa ei ole enää tilaa" "Sovellusluettelo" "Omat sovellukset ‑luettelo" @@ -82,10 +83,8 @@ "kirjoita aloitusruudun asetuksia ja pikakuvakkeita" "Antaa sovelluksen muuttaa aloitusruudun asetuksia ja pikakuvakkeita." "%1$s ei saa soittaa puheluita." - - - - + "Widgetiä ei voi ladata" + "Viimeistele asennus napauttamalla" "Tämä on järjestelmäsovellus, eikä sitä voi poistaa." "Muokkaa nimeä" "%1$s poistettiin käytöstä" @@ -160,7 +159,7 @@ "Työprofiili" "Työsovellukset on merkitty ja ne näkyvät IT-järjestelmänvalvojalle" "Selvä" - "Työsovellukset ovat pois päältä" + "Työsovellukset on keskeytetty" "Työsovellukset eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai paikantaa sijaintiasi" "Työsovellukset ovat pois päältä. Ne eivät voi lähettää sinulle ilmoituksia eivätkä käyttää akkuasi tai sijaintiasi" "Työsovellukset on merkitty ja ne näkyvät IT-järjestelmänvalvojalle" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index fb358eaf58..df3fc3f9f7 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Rechercher" "Effacer le texte dans le champ de recherche" - "Aucun widget n\'est installé" - "Aucun résultat de recherche" + "Aucun widget ou raccourci proposé" + "Aucun widget ni raccourci trouvé" "Personnels" "Professionnels" "Conversations" @@ -64,7 +64,8 @@ "Notifications" "Maintenez le doigt sur un raccourci pour le déplacer." "Touchez deux fois un raccourci et maintenez le doigt dessus pour le déplacer ou utiliser des actions personnalisées." - "Pas d\'espace libre sur l\'écran d\'accueil." + + "Il n\'y a plus d\'espace dans la zone des favoris" "Liste des applications" "Liste des applications personnelles" @@ -82,10 +83,8 @@ "enregistrer les paramètres de la page d\'accueil et des raccourcis" "Permet à l\'application de modifier les paramètres et les raccourcis de l\'écran d\'accueil." "L\'application %1$s n\'est pas autorisée à faire des appels téléphoniques" - - - - + "Impossible de charger le widget" + "Touchez pour terminer la configuration" "Impossible de désinstaller cette application, car il s\'agit d\'une application système." "Modifier le nom" "L\'application %1$s est désactivée" @@ -160,7 +159,7 @@ "Profil professionnel" "Les applications professionnelles sont indiquées par un badge et elles sont visibles pour votre administrateur informatique" "OK" - "Les applications professionnelles sont désactivées" + "Les applications professionnelles sont interrompues" "Les applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" "Les applications professionnelles sont désactivées. Vos applications professionnelles ne peuvent ni vous envoyer de notifications, ni utiliser la pile, ni accéder à votre position" "Les applications professionnelles sont indiquées par un badge et sont visibles pour votre administrateur informatique" diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 098ce6f3e0..d21389a97d 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Rechercher" "Effacer le texte du champ de recherche" - "Aucun widget disponible" - "Aucun résultat de recherche" + "Les widgets et les raccourcis ne sont pas disponibles" + "Aucun widget ni raccourci trouvés" "Personnels" "Professionnels" "Conversations" @@ -64,7 +64,8 @@ "Notifications" "Appuyez de manière prolongée pour déplacer raccourci." "Appuyez deux fois et maintenez la pression pour déplacer un raccourci ou utiliser les actions personnalisées." - "Pas d\'espace libre sur cet écran d\'accueil." + + "Plus d\'espace disponible dans la zone de favoris." "Liste d\'applications" "Liste des applications personnelles" @@ -82,10 +83,8 @@ "modifier les paramètres et les raccourcis de l\'écran d\'accueil" "Permettre à l\'application de modifier les paramètres et les raccourcis de l\'écran d\'accueil" "L\'application %1$s n\'est pas autorisée à passer des appels téléphoniques." - - - - + "Impossible de charger le widget" + "Appuyez pour terminer la configuration" "Impossible de désinstaller cette application, car il s\'agit d\'une application système." "Modifier le nom" "%1$s est désactivé." @@ -160,7 +159,7 @@ "Profil professionnel" "Les applis professionnelles sont identifiées par un badge et votre administrateur informatique peut les voir" "OK" - "Les applis professionnelles sont désactivées" + "Applications professionnelles en veille" "Vos applis professionnelles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position" "Vos applis professionnelles sont désactivées. Elles ne peuvent pas vous envoyer de notifications, utiliser votre batterie ni accéder à votre position." "Les applis professionnelles sont identifiées par un badge et votre administrateur informatique peut les voir" diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index 8cc93612a2..6608c2492d 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Busca Widgets" "Borrar texto da caixa de busca" - "Non hai widgets dispoñibles" - "Non hai resultados da busca" + "Non hai widgets nin atallos dispoñibles" + "Non se atoparon widgets nin atallos" "Widgets persoais" "Widgets do traballo" "Conversas" @@ -64,7 +64,8 @@ "Notificacións" "Mantén premido un atallo para movelo." "Toca dúas veces un atallo e manteno premido para movelo ou utiliza accións personalizadas." - "Non hai máis espazo nesta pantalla de inicio." + + "Non hai máis espazo na bandexa de favoritos" "Lista de aplicacións" "Lista de aplicacións persoais" @@ -82,10 +83,8 @@ "modificar a configuración e os atallos da pantalla de inicio" "Permite a unha aplicación cambiar a configuración e os atallos da pantalla de inicio." "%1$s non ten permiso para facer chamadas telefónicas" - - - - + "Non se puido cargar o widget" + "Toca para rematar a configuración" "Esta aplicación é do sistema e non se pode desinstalar." "Edita o nome" "Desactivouse %1$s" @@ -160,7 +159,7 @@ "Perfil de traballo" "O administrador de TI pode ver as aplicacións do traballo e engadirlles indicadores" "Entendido" - "As aplicacións do traballo están desactivadas" + "Puxéronse en pausa as aplicacións do traballo" "As aplicacións do traballo non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" "As aplicacións do traballo están desactivadas e non poden enviarche notificacións, utilizar a batería nin acceder á túa localización" "O administrador de TI pode ver as aplicacións do traballo e engadirlles indicadores" diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 2e0171dad6..33070a7061 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -46,8 +46,10 @@ "વિજેટ્સ" "શોધ" "શોધ બૉક્સમાંથી ટેક્સ્ટ સાફ કરો" - "કોઈ વિજેટ ઉપલબ્ધ નથી" - "કોઈ શોધ પરિણામો નથી" + + + + "વ્યક્તિગત" "ઑફિસ" "વાતચીતો" @@ -64,7 +66,8 @@ "નોટિફિકેશન" "શૉર્ટકટ ખસેડવા ટચ કરીને થોડી વાર દબાવી રાખો." "શૉર્ટકટ ખસેડવા બે વાર ટૅપ કરીને દબાવી રાખો અથવા કસ્ટમ ક્રિયાઓનો ઉપયોગ કરો." - "આ હોમ સ્ક્રીન પર વધુ જગ્યા નથી." + + "મનપસંદ ટ્રે પર વધુ જગ્યા નથી" "ઍપ્લિકેશનોની સૂચિ" "વ્યક્તિગત ઍપની સૂચિ" @@ -75,17 +78,15 @@ "ઇન્સ્ટૉલ કરો" "ઍપ સૂચવશો નહીં" "પૂર્વાનુમાનને પિન કરો" - "શોર્ટકટ્સ ઇન્સ્ટોલ કરો" + "શૉર્ટકટ ઇન્સ્ટૉલ કરો" "એપ્લિકેશનને વપરાશકર્તા હસ્તક્ષેપ વગર શોર્ટકટ્સ ઉમેરવાની મંજૂરી આપે છે." "હોમ સેટિંગ્સ અને શોર્ટકટ્સ વાંચો" "એપ્લિકેશનને હોમમાં સેટિંગ્સ અને શોર્ટકટ્સ વાંચવાની મંજૂરી આપે છે." "હોમ સેટિંગ્સ અને શોર્ટકટ્સ લખો" "એપ્લિકેશનને હોમમાં સેટિંગ્સ અને શોર્ટકટ્સ બદલવાની મંજૂરી આપે છે." "%1$s ને ફોન કૉલ્સ કરવાની મંજૂરી નથી" - - - - + "વિજેટ લોડ કરી શકાતું નથી" + "સેટઅપ પૂર્ણ કરવા માટે ટૅપ કરો" "આ એક સિસ્ટમ ઍપ્લિકેશન છે અને અનઇન્સ્ટોલ કરી શકાતી નથી." "નામમાં ફેરફાર કરો" "%1$s અક્ષમ કરી" @@ -158,10 +159,9 @@ "મનગમતી ઍપ" "ઑફિસની ઍપ" "ઑફિસની પ્રોફાઇલ" - - + "ઑફિસની ઍપને બૅજ આપેલા હોય છે અને તમારા IT વ્યવસ્થાપક તેમને જોઈ શકે છે" "સમજાઈ ગયું" - "ઑફિસ માટેની ઍપ બંધ છે" + "ઑફિસ માટેની ઍપ થોભાવવામાં આવેલ છે" "ઑફિસ માટેની તમારી ઍપ તમને નોટિફિકેશન મોકલી શકતી નથી, તમારી બૅટરી વાપરી શકતી નથી કે તમારું સ્થાન ઍક્સેસ કરી શકતી નથી" "ઑફિસ માટેની ઍપ બંધ છે. ઑફિસ માટેની તમારી ઍપ તમને નોટિફિકેશન મોકલી શકતી નથી, તમારી બૅટરી વાપરી શકતી નથી કે તમારું સ્થાન ઍક્સેસ કરી શકતી નથી" "ઑફિસની ઍપને બૅજ આપેલા હોય છે અને તમારા IT વ્યવસ્થાપક તેમને જોઈ શકે છે" diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index fbadca6ba7..1c7bbd816f 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -46,8 +46,8 @@ "विजेट" "खोजें" "खोज बॉक्स से टेक्स्ट हटाएं" - "कोई विजेट उपलब्ध नहीं है" - "खोज का कोई नतीजा नहीं मिला" + "विजेट और शॉर्टकट उपलब्ध नहीं हैं" + "कोई विजेट या शॉर्टकट नहीं मिला" "निजी विजेट" "ऑफ़िस" "बातचीत" @@ -64,7 +64,8 @@ "सूचनाएं" "किसी शॉर्टकट को एक से दूसरी जगह ले जाने के लिए, उसे दबाकर रखें." "किसी शॉर्टकट को एक से दूसरी जगह ले जाने के लिए, उस पर दो बार टैप करके दबाकर रखें या पसंद के मुताबिक कार्रवाइयां इस्तेमाल करें." - "इस होम स्‍क्रीन पर जगह नहीं बची है" + + "पसंदीदा ट्रे में और जगह नहीं है" "ऐप्लिकेशन सूची" "निजी ऐप्लिकेशन की सूची" @@ -82,10 +83,8 @@ "होम पेज की सेटिंग और शॉर्टकट लिखें" "ऐप्लिकेशन को होम पेज में सेटिंग और शॉर्टकट बदलने देती है." "%1$s को फ़ोन कॉल करने की अनुमति नहीं है" - - - - + "विजेट को लोड नहीं किया जा सका" + "सेट अप पूरा करने के लिए टैप करें" "यह एक सिस्टम ऐप्लिकेशन है और इसे अनइंस्टॉल नहीं किया जा सकता." "नाम में बदलाव करें" "%1$s अक्षम है" @@ -160,7 +159,7 @@ "वर्क प्रोफ़ाइल" "ऑफ़िस के काम से जुड़े ऐप्लिकेशन, बैज किए गए हैं और आईटी एडमिन को दिख रहे हैं" "ठीक है" - "ऑफ़िस के काम से जुड़े ऐप्लिकेशन बंद हैं" + "ऑफ़िस के काम से जुड़े ऐप्लिकेशन रोके गए" "ऑफ़िस के काम से जुड़े आपके ऐप्लिकेशन, आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" "ऑफ़िस के काम से जुड़े ऐप्लिकेशन बंद हैं. ये ऐप्लिकेशन, आपको सूचनाएं नहीं भेज सकते. साथ ही, आपकी बैटरी का इस्तेमाल या आपकी जगह की जानकारी को ऐक्सेस भी नहीं कर सकते" "ऑफ़िस के काम से जुड़े ऐप्लिकेशन, बैज किए गए हैं और आईटी एडमिन को दिख रहे हैं" diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 09d315f928..7f2732481a 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -48,8 +48,8 @@ "Widgeti" "Pretražite" "Izbrišite tekst iz okvira za pretraživanje" - "Nije dostupan nijedan widget" - "Nema rezultata pretraživanja" + "Widgeti i prečaci nisu dostupni" + "Nema widgeta ili prečaca" "Osobni" "Posao" "Razgovori" @@ -66,7 +66,8 @@ "Obavijesti" "Dodirnite i zadržite da biste premjestili prečac." "Dvaput dodirnite i zadržite pritisak da biste premjestili prečac ili upotrijebite prilagođene radnje." - "Na ovom početnom zaslonu više nema mjesta." + + "Nema više prostora na traci Favoriti" "Popis aplikacija" "Popis osobnih aplikacija" @@ -84,10 +85,8 @@ "pisanje postavki početnog zaslona i prečaca" "Aplikaciji omogućuje promjenu postavki i prečaca na početnom zaslonu." "%1$s nema dopuštenje za telefonske pozive" - - - - + "Widget se ne može učitati" + "Dodirnite da biste dovršili postavljanje" "Ovo je aplikacija sustava i ne može se ukloniti." "Uređivanje naziva" "Aplikacija %1$s onemogućena" @@ -163,7 +162,7 @@ "Poslovni profil" "Poslovne su aplikacije označene i vidljive vašem IT administratoru" "Shvaćam" - "Poslovne aplikacije su isključene" + "Pauzirane su poslovne lokacije" "Poslovne aplikacije ne mogu vam slati obavijesti, trošiti bateriju niti pristupiti vašoj lokaciji" "Poslovne aplikacije su isključene. Ne mogu vam slati obavijesti, trošiti bateriju ili pristupiti vašoj lokaciji" "Poslovne su aplikacije označene i vidljive vašem IT administratoru" diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml index 2167540d38..6f9b8c4edc 100644 --- a/res/values-hu/strings.xml +++ b/res/values-hu/strings.xml @@ -46,8 +46,8 @@ "Modulok" "Keresés" "Keresőmezőben lévő szöveg törlése" - "Nincs rendelkezésre álló modul" - "Nincsenek keresési találatok" + "A modulok és parancsikonok nem állnak rendelkezésre" + "Nem található modul vagy parancsikon" "Személyes" "Munka" "Beszélgetések" @@ -64,7 +64,8 @@ "Értesítések" "Tartsa lenyomva a parancsikont az áthelyezéshez." "Parancsikon áthelyezéséhez koppintson duplán, és tartsa nyomva az ujját, vagy használjon egyéni műveleteket." - "Nincs több hely ezen a kezdőképernyőn." + + "Nincs több hely a Kedvencek tálcán" "Alkalmazások listája" "Személyes alkalmazások listája" @@ -82,10 +83,8 @@ "Főoldal beállításainak és parancsikonjainak írása" "Lehetővé teszi az alkalmazás számára, hogy módosítsa a kezdőképernyő beállításait és parancsikonjait." "A(z) %1$s nem kezdeményezhet telefonhívásokat" - - - - + "Nem tölthető le a modul" + "Koppintson a beállítás befejezéséhez" "Ez egy rendszeralkalmazás, és nem lehet eltávolítani." "Név módosítása" "A(z) %1$s letiltva" @@ -160,7 +159,7 @@ "Munkaprofil" "A munkahelyi alkalmazások jelvénnyel vannak megjelölve, és láthatók a rendszergazda számára" "Értem" - "A munkahelyi alkalmazások ki vannak kapcsolva" + "A munkahelyi alkalmazások szüneteltetve vannak" "A munkahelyi alkalmazások nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez." "A munkahelyi alkalmazások ki vannak kapcsolva, nem küldhetnek értesítéseket, nem használhatják az akkumulátort, és nem férhetnek hozzá az Ön tartózkodási helyéhez" "A munkahelyi alkalmazások jelvénnyel vannak megjelölve, és láthatók a rendszergazda számára" diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index b261b02e7a..5bccfa4da1 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -46,8 +46,8 @@ "Վիջեթներ" "Որոնեք" "Մաքրել որոնման դաշտի տեքստը" - "Վիջեթներ չկան" - "Որոնման արդյունքներ չկան" + "Հասանելի վիջեթներ և դյուրանցումներ չկան" + "Ոչ մի վիջեթ կամ դյուրանցում չի գտնվել" "Անձնական" "Աշխատանքային" "Զրույցներ" @@ -64,7 +64,8 @@ "Ծանուցումներ" "Հպեք և պահեք՝ դյուրանցում տեղափոխելու համար։" "Կրկնակի հպեք և պահեք՝ դյուրանցում տեղափոխելու համար, կամ օգտվեք հատուկ գործողություններից։" - "Այլևս տեղ չկա այս հիմնական էկրանին:" + + "Ընտրյալների ցուցակում այլևս ազատ տեղ չկա" "Հավելվածների ցանկ" "Անձնական հավելվածների ցանկ" @@ -82,10 +83,8 @@ "ստեղծել հիմնաէջի կարգավորումներ ու դյուրանցումներ" "Ծրագրին թույլ է տալիս փոփոխել հիմնաէջի կարգավորումներն ու դյուրանցումները:" "%1$s հավելվածին չի թույլատրվում հեռախոսազանգեր կատարել" - - - - + "Չհաջողվեց բեռնել վիջեթը" + "Հպեք՝ կարգավորումն ավարտելու համար" "Սա համակարգային ծրագիր է և չի կարող ապատեղադրվել:" "Փոխել անունը" "%1$s հավելվածն անջատված է" @@ -160,7 +159,7 @@ "Աշխատանքային պրոֆիլ" "Աշխատանքային հավելվածները նշանակներ ունեն և տեսանելի են ՏՏ ադմինիստրատորին" "Եղավ" - "Աշխատանքային հավելվածներն անջատված են" + "Աշխատանքային հավելվածները դադարեցված են" "Աշխատանքային հավելվածները չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" "Աշխատանքային հավելվածներն անջատված են։ Դրանք չեն կարող ծանուցումներ ուղարկել ձեզ, օգտագործել մարտկոցը և ձեր տեղադրության մասին տվյալներ ստանալ։" "Աշխատանքային հավելվածները նշանակներ ունեն և տեսանելի են ՏՏ ադմինիստրատորին" diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index 8b45632d4c..a87e68a5f5 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -46,8 +46,8 @@ "Widget" "Telusuri" "Hapus teks dari kotak penelusuran" - "Widget tidak tersedia" - "Tidak ada hasil penelusuran" + "Widget dan pintasan tidak tersedia" + "Tidak ada widget atau pintasan yang ditemukan" "Pribadi" "Kantor" "Percakapan" @@ -64,7 +64,8 @@ "Notifikasi" "Sentuh lama untuk memindahkan pintasan." "Ketuk dua kali & tahan untuk memindahkan pintasan atau gunakan tindakan khusus." - "Tidak ada ruang lagi di Layar Utama ini." + + "Tidak ada ruang tersisa di baki Favorit" "Daftar aplikasi" "Daftar aplikasi pribadi" @@ -82,10 +83,8 @@ "menulis setelan dan pintasan layar Utama" "Mengizinkan aplikasi mengubah setelan dan pintasan di layar Utama." "%1$s tidak diizinkan untuk melakukan panggilan telepon" - - - - + "Tidak dapat memuat widget" + "Ketuk untuk menyelesaikan penyiapan" "Ini adalah aplikasi sistem dan tidak dapat dicopot pemasangannya." "Sunting Nama" "%1$s dinonaktifkan" @@ -160,7 +159,7 @@ "Profil kerja" "Aplikasi kerja diberi badge dan terlihat oleh admin IT" "Oke" - "Aplikasi kerja dinonaktifkan" + "Aplikasi kerja dijeda" "Aplikasi kerja tidak dapat mengirimkan notifikasi, menggunakan baterai, atau mengakses lokasi Anda" "Aplikasi kerja dinonaktifkan. Aplikasi kerja tidak dapat mengirimkan notifikasi, menggunakan baterai, atau mengakses lokasi Anda" "Aplikasi kerja diberi badge dan terlihat oleh admin IT" diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index baa4a87933..96a0f550cc 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -46,8 +46,8 @@ "Græjur" "Leit" "Hreinsa texta úr leitarreit" - "Engar græjur í boði" - "Engar leitarniðurstöður" + "Græjur og flýtileiðir eru ekki í boði" + "Engar græjur eða flýtileiðir fundust" "Persónulegt" "Vinna" "Samtöl" @@ -64,7 +64,8 @@ "Tilkynningar" "Haltu fingri á flýtileið til að færa hana." "Ýttu tvisvar og haltu fingri á flýtileið til að færa hana eða notaðu sérsniðnar aðgerðir." - "Ekki meira pláss á þessum heimaskjá." + + "Ekki meira pláss í bakka fyrir uppáhald" "Forritalisti" "Listi yfir eigin forrit" @@ -82,10 +83,8 @@ "skrifa stillingar og flýtileiðir heimaskjás" "Leyfir forriti að breyta stillingum og flýtileiðum heimaskjás." "%1$s hefur ekki leyfi til að hringja símtöl" - - - - + "Ekki hægt að hlaða græju" + "Ýttu til að ljúka við uppsetningu" "Þetta er kerfisforrit sem ekki er hægt að fjarlægja." "Breyta nafni" "Óvirkt %1$s" @@ -160,7 +159,7 @@ "Vinnusnið" "Vinnuforrit eru merkt og kerfisstjórinn getur séð þau" "Ég skil" - "Slökkt er á vinnuforritum" + "Hlé gert á vinnuforritum" "Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" "Slökkt er á vinnuforritum. Vinnuforrit geta ekki sent þér tilkynningar, notað rafhlöðuorku eða fengið aðgang að staðsetningu þinni" "Vinnuforrit eru merkt og kerfisstjórinn getur séð þau" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 54a6560d04..4ae23d870c 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -46,8 +46,8 @@ "Widget" "Cerca" "Cancella il testo nella casella di ricerca" - "Nessun widget disponibile" - "Nessun risultato di ricerca" + "Widget e scorciatoie non disponibili" + "Impossibile trovare widget o scorciatoie" "Personali" "Lavoro" "Conversazioni" @@ -64,7 +64,8 @@ "Notifiche" "Tocca e tieni premuto per spostare una scorciatoia." "Tocca due volte e tieni premuto per spostare una scorciatoia o per usare le azioni personalizzate." - "Spazio nella schermata Home esaurito." + + "Spazio esaurito nella barra dei Preferiti" "Elenco di app" "Elenco di app personali" @@ -82,10 +83,8 @@ "creazione di impostazioni e scorciatoie in Home" "Consente all\'app di modificare le impostazioni e le scorciatoie in Home." "L\'app %1$s non è autorizzata a effettuare telefonate" - - - - + "Impossibile caricare il widget" + "Tocca per completare la configurazione" "Questa è un\'app di sistema e non può essere disinstallata." "Modifica nome" "App %1$s disattivata" @@ -160,7 +159,7 @@ "Profilo di lavoro" "Le app di lavoro sono contrassegnate con un badge e visibili all\'amministratore IT" "OK" - "Le app di lavoro non sono attive" + "Le app di lavoro sono in pausa" "Le app di lavoro non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" "Le app di lavoro non sono attive e non possono inviarti notifiche, usare la batteria o accedere alla tua posizione" "Le app di lavoro sono contrassegnate con un badge e sono visibili dal tuo amministratore IT" diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 6291e308f4..4ba2599847 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -50,8 +50,8 @@ "ווידג\'טים" "חיפוש" "מחיקת טקסט מתיבת החיפוש" - "אין ווידג\'טים זמינים" - "אין תוצאות חיפוש" + "אין ווידג\'טים או קיצורי דרך" + "לא נמצאו ווידג\'טים או קיצורי דרך" "ווידג\'טים אישיים" "עבודה" "שיחות" @@ -68,7 +68,8 @@ "התראות" "כדי להעביר קיצור דרך למקום אחר יש לגעת ולא להרפות." "כדי להעביר קיצור דרך למקום אחר או להשתמש בפעולות מותאמות אישית\' יש ללחוץ פעמיים ולא להרפות." - "אין עוד מקום במסך הבית הזה." + + "אין עוד מקום במגש המועדפים" "רשימת אפליקציות" "רשימת אפליקציות אישיות" @@ -86,10 +87,8 @@ "כתיבת הגדרות וקיצורי דרך של דף הבית" "מאפשר לאפליקציה לשנות את ההגדרות וקיצורי הדרך בדף הבית." "%1$s אינו רשאי להתקשר" - - - - + "לא ניתן לטעון את הווידג\'ט" + "צריך להקיש כדי לסיים את תהליך ההגדרה" "זוהי אפליקציית מערכת ולא ניתן להסיר את התקנתה." "עריכת השם" "%1$s מושבתת" @@ -166,7 +165,7 @@ "פרופיל עבודה" "‏האפליקציות לעבודה מתויגות ומוצגות למנהל ה-IT" "הבנתי" - "האפליקציות לעבודה מושבתות" + "האפליקציות לעבודה מושהות" "האפליקציות לעבודה לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" "האפליקציות לעבודה מושבתות. האפליקציות לא יכולות לשלוח לך התראות, להשתמש בסוללה או לגשת למיקום שלך" "‏האפליקציות לעבודה מתויגות ומוצגות למנהל ה-IT" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 3586843a2f..700fc44377 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -46,8 +46,8 @@ "ウィジェット" "検索" "検索ボックスからテキストを消去します" - "利用できるウィジェットはありません" - "検索結果がありません" + "ウィジェットもショートカットも利用できません" + "ウィジェットもショートカットも見つかりませんでした" "個人用" "仕事用" "会話" @@ -64,7 +64,8 @@ "通知" "長押ししてショートカットを移動してください。" "ショートカットをダブルタップして長押ししながら移動するか、カスタム操作を使用してください。" - "このホーム画面には空きスペースがありません。" + + "お気に入りトレイに空きスペースがありません" "アプリのリスト" "個人用アプリのリスト" @@ -82,10 +83,8 @@ "ホームの設定とショートカットの書き込み" "ホームの設定とショートカットの変更をアプリに許可します。" "「%1$s」から電話をかけることはできません" - - - - + "ウィジェットを読み込めません" + "タップして設定を完了してください" "このシステムアプリはアンインストールできません。" "名前の編集" "「%1$s」は無効です" @@ -160,7 +159,7 @@ "仕事用プロファイル" "仕事用アプリはバッジが付き、IT 管理者に公開されます" "OK" - "仕事用アプリは OFF になっています" + "仕事用アプリの一時停止" "仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" "仕事用アプリは OFF になっています。仕事用アプリは、通知の送信、バッテリーの使用、位置情報の取得を行えません" "仕事用アプリはバッジが付き、IT 管理者に公開されます" diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml index a03a45852d..579ff60e52 100644 --- a/res/values-ka/strings.xml +++ b/res/values-ka/strings.xml @@ -46,8 +46,8 @@ "ვიჯეტები" "ძიება" "ტექსტის გასუფთავება საძიებო ველიდან" - "ვიჯეტები მიუწვდომელია" - "ძიების შედეგები ვერ მოიძებნა" + "ვიჯეტები და მალსახმობები ხელმისაწვდომი არ არის" + "ვიჯეტები ან მალსახმობები ვერ მოიძებნა" "პირადი" "სამსახური" "მიმოწერები" @@ -64,7 +64,8 @@ "შეტყობინებები" "შეხებით აირჩიეთ და გეჭიროთ მალსახმობის გადასაადგილებლად." "ორმაგი შეხებით აირჩიეთ და გეჭიროთ მალსახმობის გადასაადგილებლად ან მორგებული მოქმედებების გამოსაყენებლად." - "ამ მთავარ ეკრანზე ადგილი აღარ არის." + + "რჩეულების თაროზე ადგილი არ არის" "აპების სია" "პერსონალური აპების სია" @@ -158,7 +159,7 @@ "სამსახურის პროფილი" "სამსახურის აპები ბეჯით არის მონიშნული და ხილულია IT ადმინისტრატორისთვის" "გასაგებია" - "სამსახურის აპები გამორთულია" + "სამსახურის აპები დაპაუზებულია" "თქვენს სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" "სამსახურის აპები გამორთულია. თქვენს სამსახურის აპებს არ შეუძლია თქვენთვის შეტყობინებების გამოგზავნა, თქვენი ბატარეის გამოყენება, ან თქვენს მდებარეობაზე წვდომა" "სამსახურის აპები ბეჯით არის მონიშნული და ხილულია IT ადმინისტრატორისთვის" diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml index 057ca353cb..5783873eed 100644 --- a/res/values-kk/strings.xml +++ b/res/values-kk/strings.xml @@ -46,8 +46,8 @@ "Виджеттер" "Іздеу" "Мәтінді іздеу өрісінен өшіру" - "Қолжетімді виджет жоқ." - "Іздеу нәтижелері жоқ." + "Виджеттер мен таңбашалар қолжетімді емес." + "Ешқандай виджет немесе таңбаша табылмады." "Жеке виджеттер" "Жұмыс виджеттері" "Әңгімелер" @@ -64,7 +64,8 @@ "Хабарландырулар" "Таңбашаны жылжыту үшін басып тұрыңыз." "Таңбашаны жылжыту үшін екі рет түртіңіз де, ұстап тұрыңыз немесе арнаулы әрекеттерді пайдаланыңыз." - "Бұл Негізгі экранда орын қалмады." + + "Қалаулылар науасында орын қалмады" "Қолданбалар тізімі" "Жеке қолданбалар тізімі" @@ -82,10 +83,8 @@ "Негізгі экран параметрлері мен төте пернелерін жазу" "Қолданбаға Негізгі экрандағы параметрлер мен төте пернелерді өзгерту мүмкіндігін береді." "%1$s арқылы телефон қоңырауларын соғуға рұқсат етілмеген" - - - - + "Виджетті жүктеу мүмкін емес." + "Реттеуді аяқтау үшін түртіңіз." "Бұл жүйе қолданбасы, сондықтан оны алу мүмкін емес." "Атын өңдеу" "%1$s өшірілді" @@ -160,7 +159,7 @@ "Жұмыс профилі" "Жұмыс қолданбаларының танымбелгілері бар және олар әкімшіңізге көрінеді." "Түсінікті" - "Жұмыс қолданбалары өшірулі" + "Жұмыс қолданбалары кідіртілді" "Жұмыс қолданбалары сізге хабарландырулар жібере, батареяңызды немесе локацияңызды пайдалана алмайды." "Жұмыс қолданбалары өшірулі. Олар сізге хабарландырулар жібере, батареяңызды немесе локацияңызды пайдалана алмайды." "Жұмыс қолданбаларының танымбелгілері бар және олар әкімшіңізге көрінеді." diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 08f9d0a5e9..48f968b8e7 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -46,8 +46,8 @@ "ធាតុ​ក្រាហ្វិក" "ស្វែងរក" "សម្អាត​ពាក្យឬឃ្លា​ចេញពី​ប្រអប់ស្វែងរក" - "គ្មាន​ធាតុក្រាហ្វិក​ទេ" - "គ្មាន​លទ្ធផល​ស្វែងរក​ទេ" + "មិនមាន​ធាតុក្រាហ្វិក និងផ្លូវកាត់​បានទេ" + "រកមិនឃើញ​ធាតុក្រាហ្វិក ឬផ្លូវកាត់​ទេ" "ផ្ទាល់ខ្លួន" "ការងារ" "ការសន្ទនា" @@ -64,7 +64,8 @@ "ការ​ជូនដំណឹង" "ចុចឱ្យជាប់​ដើម្បីផ្លាស់ទី​ផ្លូវកាត់​។" "ចុចពីរដង រួចសង្កត់ឱ្យជាប់ ដើម្បីផ្លាស់ទី​ផ្លូវកាត់ ឬប្រើ​សកម្មភាព​តាមបំណង​។" - "គ្មាន​កន្លែង​នៅ​លើ​អេក្រង់​ដើម​នេះ​ទៀត​ទេ។" + + "គ្មាន​បន្ទប់​​ក្នុង​ថាស​និយម​ប្រើ" "បញ្ជីកម្មវិធី" "បញ្ជី​កម្មវិធី​ផ្ទាល់ខ្លួន" @@ -82,10 +83,8 @@ "សរសេរ​ការ​កំណត់ ​និង​ផ្លូវកាត់​​លើ​អេក្រង់​ដើម" "អនុញ្ញាត​ឲ្យ​កម្មវិធី​ប្ដូរ​ការ​កំណត់ និង​ផ្លូវ​កាត់​ក្នុង​អេក្រង់​ដើម។" "%1$s មិនត្រូវបានអនុញ្ញាតឲ្យធ្វើការហៅទូរស័ព្ទទេ" - - - - + "មិនអាចផ្ទុក​ធាតុក្រាហ្វិក​បានទេ" + "ចុច​ដើម្បី​បញ្ចប់​ការរៀបចំ" "នេះ​​​ជា​កម្មវិធី​ប្រព័ន្ធ មិន​អាច​លុប​បាន​ទេ។" "កែ​ឈ្មោះ" "បានបិទដំណើរការ %1$s" @@ -160,7 +159,7 @@ "កម្រងព័ត៌មានការងារ" "កម្មវិធីការងារ​ត្រូវបានដាក់​គ្រឿងសម្គាល់ ហើយ​អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក​អាចមើលឃើញ" "យល់ហើយ" - "កម្មវិធីការងារ​ត្រូវបានបិទ" + "កម្មវិធី​ការងារ​ត្រូវបានផ្អាក" "កម្មវិធី​ការងារ​របស់អ្នក​មិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" "កម្មវិធីការងារ​ត្រូវបានបិទ។ កម្មវិធីការងារ​របស់អ្នកមិនអាចផ្ញើ​ការជូនដំណឹង​ទៅអ្នក ប្រើប្រាស់ថ្ម​របស់អ្នក ឬ​ចូលប្រើ​ទីតាំង​របស់អ្នក​បានទេ" "កម្មវិធីការងារ​ត្រូវបានដាក់​គ្រឿងសម្គាល់ ហើយ​អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក​អាចមើលឃើញ" diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 01dda6d286..a40b5685b4 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -46,8 +46,8 @@ "ವಿಜೆಟ್‌ಗಳು" "ಹುಡುಕಿ" "ಹುಡುಕಾಟ ಪೆಟ್ಟಿಗೆಯಿಂದ ಪಠ್ಯವನ್ನು ತೆರವುಗೊಳಿಸಿ" - "ಯಾವುದೇ ವಿಜೆಟ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ" - "ಯಾವುದೇ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳಿಲ್ಲ" + "ವಿಜೆಟ್‌ಗಳು ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ" + "ಯಾವುದೇ ವಿಜೆಟ್‌ಗಳು ಅಥವಾ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ" "ವೈಯಕ್ತಿಕ" "ಕೆಲಸ" "ಸಂವಾದಗಳು" @@ -64,7 +64,8 @@ "ಅಧಿಸೂಚನೆಗಳು" "ಶಾರ್ಟ್‌ಕಟ್ ಸರಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ." "ಶಾರ್ಟ್‌ಕಟ್ ಸರಿಸಲು ಅಥವಾ ಕಸ್ಟಮ್ ಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಲು ಡಬಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ." - "ಈ ಮುಖಪುಟದ ಪರದೆಯಲ್ಲಿ ಹೆಚ್ಚು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ." + + "ಮೆಚ್ಚಿನವುಗಳ ಟ್ರೇನಲ್ಲಿ ಹೆಚ್ಚಿನ ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ" "ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿ" "ವೈಯಕ್ತಿಕ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಪಟ್ಟಿ" @@ -82,10 +83,8 @@ "ಮುಖಪುಟದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್‌ಗಳನ್ನು ಬರೆಯಿರಿ" "ಮುಖಪುಟದಲ್ಲಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ." "ಫೋನ್ ಕರೆಗಳನ್ನು ಮಾಡಲು %1$s ಅಪ್ಲಿಕೇಶನ್‌‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ" - - - - + "ವಿಜೆಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ" + "ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ" "ಇದೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದೆ ಮತ್ತು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." "ಹೆಸರನ್ನು ಎಡಿಟ್ ಮಾಡಿ" "%1$s ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ" @@ -160,7 +159,7 @@ "ಕೆಲಸದ ಪ್ರೊಫೈಲ್" "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಬ್ಯಾಡ್ಜ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಅವುಗಳು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸುತ್ತವೆ" "ಸರಿ" - "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಆಫ್ ಆಗಿವೆ" + "ಉದ್ಯೋಗದ ಆ್ಯಪ್‌ಗಳನ್ನು ವಿರಾಮಗೊಲಿಸಲಾಗಿದೆ" "ನಿಮ್ಮ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಆಫ್ ಆಗಿವೆ. ನಿಮ್ಮ ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ನಿಮಗೆ ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು, ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸಲು ಅಥವಾ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" "ಕೆಲಸಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಆ್ಯಪ್‌ಗಳು ಬ್ಯಾಡ್ಜ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಗೆ ಗೋಚರಿಸುತ್ತದೆ" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index c06d33753e..aba3f3dc54 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -46,8 +46,8 @@ "위젯" "검색" "검색창에서 텍스트 지우기" - "사용 가능한 위젯 없음" - "검색결과 없음" + "위젯이나 바로가기를 사용할 수 없습니다." + "위젯이나 바로가기가 없습니다." "개인 위젯" "직장 위젯" "대화" @@ -64,7 +64,8 @@ "알림" "길게 터치하여 바로가기를 이동하세요." "두 번 탭한 다음 길게 터치하여 바로가기를 이동하거나 맞춤 작업을 사용하세요." - "홈 화면에 더 이상 공간이 없습니다." + + "즐겨찾기 트레이에 더 이상 공간이 없습니다." "앱 목록" "개인 앱 목록" @@ -82,10 +83,8 @@ "홈 설정 및 바로가기 쓰기" "앱이 홈에 있는 설정 및 바로가기를 변경할 수 있도록 합니다." "%1$s에서 전화를 걸 수 없습니다." - - - - + "위젯을 로드할 수 없습니다." + "탭하여 설정을 완료하세요." "시스템 앱은 제거할 수 없습니다." "이름 수정" "%1$s 사용 안함" @@ -160,7 +159,7 @@ "직장 프로필" "직장 앱에는 배지가 있으며, IT 관리자는 직장 앱을 확인할 수 있습니다" "확인" - "직장 앱이 꺼져 있음" + "직장 앱이 일시중지됨" "직장 앱에서 알림을 보내거나 배터리를 사용하거나 위치 정보에 액세스할 수 없습니다." "직장 앱이 꺼져 있습니다. 직장 앱에서 알림을 보내거나 배터리를 사용하거나 위치 정보에 액세스할 수 없습니다." "직장 앱에는 배지가 있으며, IT 관리자는 직장 앱을 확인할 수 있습니다." diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml index 122beaca13..605ebe1d2a 100644 --- a/res/values-ky/strings.xml +++ b/res/values-ky/strings.xml @@ -46,8 +46,8 @@ "Виджеттер" "Издөө" "Текстти издөө кутучасынан тазалоо" - "Виджет жок" - "Издөө жыйынтыктары жок" + "Виджеттер менен ыкчам баскычтар жеткиликсиз" + "Виджеттер менен ыкчам баскычтар табылган жок" "Жеке виджеттер" "Жумуш" "Сүйлөшүүлөр" @@ -64,7 +64,8 @@ "Билдирмелер" "Ыкчам баскычты жылдыруу үчүн коё бербей басып туруңуз." "Ыкчам баскычты жылдыруу үчүн эки жолу таптап, кармап туруңуз же ыңгайлаштырылган аракеттерди колдонуңуз." - "Бул экранда бош орун жок." + + "Тандамалдар тайпасында орун калган жок" "Колдонмолор тизмеси" "Жеке колдономолордун тизмеси" @@ -82,10 +83,8 @@ "Үйдүн тууралоолорун жана тез чакырмаларын жазуу" "Колдонмого Үйдүн тууралоолорун жана тез чакырмаларын өзгөртүүгө уруксат берет." "%1$s телефон чалууларды аткарууга уруксаты жок" - - - - + "Виджет жүктөлбөй жатат" + "Жөндөп бүтүрүү үчүн таптап коюңуз" "Бул системдик колдонмо жана аны чечкенге болбойт." "Аталышын түзөтүү" "%1$s өчүрүлгөн" @@ -160,7 +159,7 @@ "Жумуш профили" "Жумуш колдонмолору белгиленип, аларды IT администраторлору көрөт" "Түшүндүм" - "Жумуш колдонмолору өчүк" + "Жумуш колдонмолору тындырылды" "Жумуш колдонмолору билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" "Жумуш колдонмолору өчүк жана билдирмелерди жөнөтүп, түзмөгүңүздүн батареясын керектеп же кайда жүргөнүңүздү көрө албайт" "Жумуш колдонмолору белгиленип, аларды IT администраторлору көрөт" diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml index 73d9fc4802..9973fa513d 100644 --- a/res/values-lo/strings.xml +++ b/res/values-lo/strings.xml @@ -46,8 +46,8 @@ "ວິດເຈັດ" "ຊອກຫາ" "ລຶບລ້າງຂໍ້ຄວາມຈາກກ່ອງຊອກຫາ" - "ບໍ່ມີວິດເຈັດທີ່ສາມາດໃຊ້ໄດ້" - "ບໍ່​ມີ​ຜົນ​​ການ​ຊອກຫາ​" + "ບໍ່ສາມາດໃຊ້ວິດເຈັດ ຫຼື ທາງລັດໄດ້" + "ບໍ່ພົບວິດເຈັດ ຫຼື ທາງລັດ" "ສ່ວນຕົວ" "ວຽກ" "ການສົນທະນາ" @@ -64,7 +64,8 @@ "ການແຈ້ງເຕືອນ" "ແຕະຄ້າງໄວ້ເພື່ອຍ້າຍທາງລັດ." "ແຕະສອງເທື່ອຄ້າງໄວ້ເພື່ອຍ້າຍທາງລັດ ຫຼື ໃຊ້ຄຳສັ່ງກຳນົດເອງ." - "ບໍ່ມີບ່ອນຫວ່າງໃນໜ້ານີ້." + + "ບໍ່ມີບ່ອນຫວ່າງໃນຖາດສຳລັບເກັບສິ່ງທີ່ໃຊ້ເປັນປະຈຳ" "ລາຍຊື່ແອັບ" "ລາຍຊື່ແອັບສ່ວນຕົວ" @@ -82,10 +83,8 @@ "ຂຽນການຕັ້ງຄ່າໜ້າຫຼັກ ແລະທາງລັດ" "ອະນຸຍາດໃຫ້ແອັບຯດັ່ງກ່າວ ປ່ຽນການຕັ້ງຄ່າ ແລະທາງລັດໃນໜ້າຫຼັກ." "%1$s ບໍ່​ໄດ້​ຮັບ​ອະ​ນຸ​ຍາດ​ໃຫ້​ໂທ" - - - - + "ບໍ່ສາມາດໂຫຼດວິດເຈັດໄດ້" + "ແຕະເພື່ອຕັ້ງຄ່າໃຫ້ແລ້ວ" "ນີ້ແມ່ນແອັບຯຂອງລະບົບ ແລະບໍ່ສາມາດຖອນການຕິດຕັ້ງອອກໄດ້." "ແກ້ໄຂຊື່" "ປິດການນຳໃຊ້ %1$s ແລ້ວ" @@ -160,7 +159,7 @@ "ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ" "ແອັບບ່ອນເຮັດວຽກແມ່ນຖືກຕິດປ້າຍ ແລະ ສະແດງໃຫ້ຜູ້ເບິ່ງແຍງໄອທີຂອງທ່ານເຫັນ" "ເຂົ້າໃຈແລ້ວ" - "ແອັບບ່ອນເຮັດວຽກຖືກປິດໄວ້ຢູ່" + "ຢຸດແອັບວຽກໄວ້ຊົ່ວຄາວແລ້ວ" "ແອັບບ່ອນເຮັດວຽກຂອງທ່ານຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນຫາທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" "ແອັບບ່ອນເຮັດວຽກຖືກປິດໄວ້ຢູ່. ແອັບບ່ອນເຮັດວຽກຂອງທ່ານຈະບໍ່ສາມາດສົ່ງການແຈ້ງເຕືອນໃຫ້ທ່ານ, ໃຊ້ແບັດເຕີຣີຂອງທ່ານ ຫຼື ເຂົ້າເຖິງສະຖານທີ່ຂອງທ່ານໄດ້" "ແອັບບ່ອນເຮັດວຽກແມ່ນຖືກຕິດປ້າຍ ແລະ ສະແດງໃຫ້ຜູ້ເບິ່ງແຍງໄອທີຂອງທ່ານເຫັນ" diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml index 6843530cfb..314fcf4492 100644 --- a/res/values-lt/strings.xml +++ b/res/values-lt/strings.xml @@ -50,8 +50,8 @@ "Valdikliai" "Paieška" "Išvalyti tekstą iš paieškos laukelio" - "Nėra jokių pasiekiamų valdiklių" - "Nėra jokių paieškos rezultatų" + "Valdikliai ir spartieji klavišai nepasiekiami" + "Neaptikta jokių valdiklių ar sparčiųjų klavišų" "Asmeniniai" "Darbas" "Pokalbiai" @@ -68,7 +68,8 @@ "Pranešimai" "Dukart pal. ir palaik., kad perk. spart. klavišą." "Dukart palieskite ir palaikykite, kad perkeltumėte spartųjį klavišą ar naudotumėte tinkintus veiksmus." - "Šiame pagrindiniame ekrane vietos nebėra." + + "Mėgstamiausių dėkle nebėra vietos" "Programų sąrašas" "Asmeninių programų sąrašas" @@ -86,10 +87,8 @@ "rašyti pagrindinio puslapio nustatymus ir sparčiuosius klavišus" "Programai leidžiama keisti pagrindinio puslapio nustatymus ir sparčiuosius klavišus." "„%1$s“ neleidžiama skambinti" - - - - + "Nepavyko įkelti valdiklio" + "Palieskite, kad užbaigtumėte sąranką" "Tai sistemos programa ir jos negalima pašalinti." "Pavadinimo redagavimas" "„%1$s“ išjungta" @@ -166,7 +165,7 @@ "Darbo profilis" "Darbo programos yra pažymėtos ženkleliu ir matomos IT administratoriui" "Supratau" - "Darbo programos išjungtos" + "Darbo programos pristabdytos" "Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" "Darbo programos išjungtos. Darbo programos negali siųsti jums pranešimų, naudoti jūsų akumuliatoriaus ar pasiekti jūsų vietovės" "Darbo programos yra pažymėtos ženkleliu ir matomos IT administratoriui" diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index ed6ebf610a..916893f579 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -48,8 +48,8 @@ "Logrīki" "Meklēt" "Notīrīt tekstu no meklēšanas lodziņa" - "Nav pieejams neviens logrīks" - "Nav meklēšanas rezultātu" + "Logrīki un saīsnes nav pieejamas." + "Netika atrasts neviens logrīks vai saīsne." "Personīgs" "Darba" "Sarunas" @@ -66,7 +66,8 @@ "Paziņojumi" "Lai pārvietotu saīsni, pieskarieties un turiet." "Lai pārvietotu saīsni, uz tās veiciet dubultskārienu un turiet. Varat arī veikt pielāgotas darbības." - "Šajā sākuma ekrānā vairs nav vietas." + + "Izlases joslā vairs nav vietas." "Lietotņu saraksts" "Personīgo lietotņu saraksts" @@ -84,10 +85,8 @@ "rakstīt sākuma ekrāna iestatījumus un saīsnes" "Ļauj lietotnei mainīt iestatījumus un saīsnes sākuma ekrānā." "Lietotnei %1$s nav atļauts veikt tālruņa zvanus." - - - - + "Nevar ielādēt logrīku." + "Pieskarieties, lai pabeigtu iestatīšanu." "Šī ir sistēmas lietotne, un to nevar atinstalēt." "Nosaukuma rediģēšana" "Lietotne %1$s ir atspējota" @@ -163,7 +162,7 @@ "Darba profils" "Darba lietotnēm ir pievienota emblēma, un tās ir redzamas jūsu IT administratoram" "Labi" - "Darba lietotnes ir izslēgtas" + "Darba lietotnes ir apturētas" "Jūsu darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." "Darba lietotnes ir izslēgtas. Jūsu darba lietotnes nevar sūtīt jums paziņojumus, izmantot akumulatoru un piekļūt jūsu atrašanās vietai." "Darba lietotnēm ir pievienota emblēma, un tās ir redzamas jūsu IT administratoram" diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index 2d5381171a..7ce9796205 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -46,8 +46,8 @@ "Виџети" "Пребарувајте" "Избриши го текстот од полето за пребарување" - "Нема достапни виџети" - "Нема резултати од пребарувањето" + "Виџетите и кратенките не се достапни" + "Не се најдени виџети или кратенки" "Лични" "Работни" "Разговори" @@ -64,7 +64,8 @@ "Известувања" "Допрете и задржете за да преместите кратенка." "Допрете двапати и задржете за да преместите кратенка или користете приспособени дејства." - "Нема повеќе простор на овој екран на почетната страница." + + "Нема повеќе простор на лентата „Омилени“" "Список со апликации" "Список со лични апликации" @@ -82,10 +83,8 @@ "пишува поставки и кратенки на почетна страница" "Овозможува апликацијата да ги менува подесувањата и кратенките на почетната страница." "%1$s нема дозвола за телефонски повици" - - - - + "Не може да се вчита виџетот" + "Допрете за да го завршите поставувањето" "Ова е системска апликација и не може да се деинсталира." "Изменете го името" "%1$s е оневозможена" @@ -160,7 +159,7 @@ "Работен профил" "Работните апликации имаат значка и се видливи за IT-администраторот" "Сфатив" - "Работните апликации се исклучени" + "Работните апликации се паузирани" "Работните апликации не може да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" "Работните апликации се исклучени. Не може да ви испраќаат известувања, да ја користат батеријата или да пристапуваат до вашата локација" "Работните апликации имаат значка и се видливи за IT-администраторот" diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index f323d8fcfd..faffb00022 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -46,8 +46,8 @@ "വിജറ്റുകൾ" "തിരയൽ" "സെർച്ച് ബോക്‌സിൽ നിന്ന് ടെക്‌സ്‌റ്റ് മായ്‌ക്കുക" - "ഒരു വിജറ്റുകളും ലഭ്യമല്ല" - "തിരയൽ ഫലങ്ങളൊന്നുമില്ല" + "വിജറ്റുകളും കുറുക്കുവഴികളും ലഭ്യമല്ല" + "വിജറ്റുകളോ കുറുക്കുവഴികളോ കണ്ടെത്തിയില്ല" "വ്യക്തിപരം" "ജോലി" "സംഭാഷണങ്ങൾ" @@ -64,7 +64,8 @@ "അറിയിപ്പുകൾ" "കുറുക്കുവഴി നീക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക." "കുറുക്കുവഴി നീക്കാൻ ഡബിൾ ടാപ്പ് ചെയ്യൂ, ഹോൾഡ് ചെയ്യൂ അല്ലെങ്കിൽ ഇഷ്‌ടാനുസൃത പ്രവർത്തനങ്ങൾ ഉപയോഗിക്കൂ." - "ഈ ഹോം സ്‌ക്രീനിൽ ഒഴിവൊന്നുമില്ല." + + "പ്രിയപ്പെട്ടവയുടെ ട്രേയിൽ ഒഴിവൊന്നുമില്ല" "അപ്ലിക്കേഷനുകളുടെ ലിസ്‌റ്റ്" "വ്യക്തിഗത ആപ്പുകളുടെ ലിസ്റ്റ്" @@ -82,10 +83,8 @@ "ഹോം ക്രമീകരണങ്ങളും കുറുക്കുവഴികളും റൈറ്റുചെയ്യുക" "ഹോമിലെ ക്രമീകരണങ്ങളും കുറുക്കുവഴികളും മാറ്റാൻ അപ്ലിക്കേഷനെ അനുവദിക്കുന്നു." "ഫോൺ കോൾ ചെയ്യാൻ %1$s എന്നതിനെ അനുവദിച്ചിട്ടില്ല" - - - - + "വിജറ്റ് ലോഡ് ചെയ്യാനാകുന്നില്ല" + "സജ്ജീകരണം പൂർത്തിയാക്കാൻ ടാപ്പ് ചെയ്യുക" "ഇതൊരു സിസ്‌റ്റം അപ്ലിക്കേഷനായതിനാൽ അൺഇൻസ്‌റ്റാളുചെയ്യാനാവില്ല." "പേര് എഡിറ്റ് ചെയ്യുക" "%1$s പ്രവർത്തനരഹിതമാക്കി" @@ -160,7 +159,7 @@ "ഔദ്യോഗിക പ്രൊഫൈൽ" "ഔദ്യോഗിക ആപ്പുകൾക്ക് ബാഡ്‌ജ് നൽകിയിരിക്കുന്നു, അവ നിങ്ങളുടെ ഐടി അഡ്‌മിന് കാണാനുമാകും" "മനസ്സിലായി" - "ഔദ്യോഗിക ആപ്പുകൾ ഓഫാണ്" + "ഔദ്യോഗിക ആപ്പുകൾ തൽക്കാലം നിർത്തിയിരിക്കുന്നു" "നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ നിങ്ങളുടെ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" "ഔദ്യോഗിക ആപ്പുകൾ ഓഫാണ്. നിങ്ങൾക്ക് അറിയിപ്പുകൾ അയയ്ക്കാനോ ബാറ്ററി ഉപയോഗിക്കാനോ ലൊക്കേഷൻ ആക്‌സസ് ചെയ്യാനോ നിങ്ങളുടെ ഔദ്യോഗിക ആപ്പുകൾക്ക് കഴിയില്ല" "ഔദ്യോഗിക ആപ്പുകൾക്ക് ബാഡ്‌ജ് നൽകിയിരിക്കുന്നു, അവ നിങ്ങളുടെ ഐടി അഡ്‌മിന് കാണാനും കഴിയും" diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index fc9f772bbe..0216ae574d 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -46,8 +46,8 @@ "Виджет" "Хайх" "Хайх хэсгээс текстийг арилгах" - "Боломжтой жижиг хэрэгсэл байхгүй" - "Хайлтын илэрц байхгүй" + "Жижиг хэрэгсэл болон товчлол боломжгүй байна" + "Жижиг хэрэгсэл эсвэл товчлол олдсонгүй" "Хувийн виджетүүд" "Ажил" "Харилцан яриа" @@ -64,7 +64,8 @@ "Мэдэгдэл" "Товчлолыг зөөхийн тулд хүрээд, удаан дарна уу." "Товчлолыг зөөх эсвэл захиалгат үйлдлийг ашиглахын тулд хоёр товшоод, удаан дарна уу." - "Энэ Нүүр дэлгэц зайгүй." + + "\"Дуртай\" трей дээр өөр зай байхгүй байна" "Апп-н жагсаалт" "Хувийн аппын жагсаалт" @@ -82,10 +83,8 @@ "Нүүрний тохиргоо болон товчлолыг бичих" "Апп нь Нүүрэндэх товчлол болон тохиргоог өөрчилж чадна." "%1$s утасны дуудлага хийх боломжгүй" - - - - + "Жижиг хэрэгслийг ачаалах боломжгүй" + "Тохируулгыг дуусгахын тулд товшино уу" "Энэ апп нь системийн апп ба устгах боломжгүй." "Нэр засах" "%1$s-г идэвхгүй болгосон" @@ -160,7 +159,7 @@ "Ажлын профайл" "Ажлын аппуудыг тэмдэглэсэн бөгөөд танай IT админд харагдана" "Ойлголоо" - "Ажлын аппууд унтраалттай байна" + "Ажлын аппуудыг түр зогсоосон" "Таны ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" "Ажлын аппууд унтраалттай байна. Таны ажлын аппууд танд мэдэгдэл илгээх, таны батарейг ашиглах эсвэл байршилд тань хандах боломжгүй" "Ажлын аппуудыг тэмдэглэсэн бөгөөд танай IT админд харагдана" diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml index 6a333f7045..e7269caeee 100644 --- a/res/values-mr/strings.xml +++ b/res/values-mr/strings.xml @@ -46,8 +46,8 @@ "विजेट" "शोधा" "सर्च बॉक्समधून मजकूर साफ करा" - "कोणतीही विजेट उपलब्ध नाहीत" - "कोणतेही शोध परिणाम नाहीत" + "विजेट आणि शॉर्टकट उपलब्ध नाहीत" + "कोणतीही विजेट किंवा शॉर्टकट आढळले नाहीत" "वैयक्तिक" "ऑफिस" "संभाषणे" @@ -64,7 +64,8 @@ "सूचना" "शॉर्टकट हलवण्यासाठी स्पर्श करा आणि धरून ठेवा." "शॉर्टकट हलवण्यासाठी किंवा कस्टम कृती वापरण्यासाठी दोनदा टॅप करा आणि धरून ठेवा." - "या मुख्य स्क्रीनवर आणखी जागा नाही." + + "आवडीच्या ट्रे मध्ये आणखी जागा नाही" "अ‍ॅप्स सूची" "वैयक्तिक अ‍ॅप्स सूची" @@ -75,17 +76,15 @@ "इंस्टॉल करा" "ॲप सुचवू नका" "पूर्वानुमान पिन करा" - "शॉर्टकट स्‍थापित करा" + "शॉर्टकट इंस्टॉल करा" "वापरकर्ता हस्तक्षेपाशिवाय शॉर्टकट जोडण्यास अ‍ॅप ला अनुमती देते." "होम सेटिंग्ज आणि शॉर्टकट वाचा" "मुख्यपृष्ठातील सेटिंग्ज आणि शॉर्टकट वाचण्यास अ‍ॅप ला अनुमती देते." "होम सेटिंग्ज आणि शॉर्टकट लिहा" "मुख्यपृष्ठातील सेटिंग्ज आणि शॉर्टकट बदलण्यास अ‍ॅप ला अनुमती देते." "%1$s ला फोन कॉल करण्याची अनुमती नाही" - - - - + "विजेट लोड करू शकत नाही" + "सेटअप पूर्ण करण्यासाठी टॅप करा" "हा सिस्टम अ‍ॅप आहे आणि अनइंस्टॉल केला जाऊ शकत नाही." "नाव संपादित करा" "%1$s अक्षम केला आहे" @@ -160,7 +159,7 @@ "कार्य प्रोफाइल" "कामाशी संबंधित ॲप्स ही बॅज केलेली असून तुमच्या IT ॲडमिनला दृश्यमान आहेत" "समजले" - "कामाशी संबंधित ॲप्स बंद आहेत" + "कार्य ॲप्स थांबवली आहेत" "तुमचे कामाशी संबंधित ॲप्स तुम्हाला सूचना पाठवू शकत नाहीत, तुमची बॅटरी वापरू शकत नाहीत किंवा तुमचे स्थान अ‍ॅक्सेस करू शकत नाहीत" "कामाशी संबंधित ॲप्स बंद आहेत. तुमचे कामाशी संबंधित ॲप्स तुम्हाला सूचना पाठवू शकत नाहीत, तुमची बॅटरी वापरू शकत नाहीत किंवा तुमचे स्थान अ‍ॅक्सेस करू शकत नाहीत" "Work apps ही बॅज केलेली असून तुमच्या IT ॲडमिनला दृश्यमान आहेत" diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml index 07b414a1d1..3b200fda73 100644 --- a/res/values-ms/strings.xml +++ b/res/values-ms/strings.xml @@ -46,8 +46,8 @@ "Widget" "Cari" "Kosongkan teks daripada kotak carian" - "Widget tidak tersedia" - "Tiada hasil carian" + "Widget dan pintasan tidak tersedia" + "Tiada widget atau pintasan yang dijumpai" "Peribadi" "Tempat kerja" "Perbualan" @@ -64,7 +64,8 @@ "Pemberitahuan" "Sentuh & tahan untuk menggerakkan pintasan." "Ketik dua kali & tahan untuk menggerakkan pintasan atau menggunakan tindakan tersuai." - "Tiada lagi ruang pada skrin Laman Utama ini." + + "Tiada ruang dalam dulang Kegemaran lagi" "Senarai apl" "Senarai apl peribadi" @@ -82,10 +83,8 @@ "tulis tetapan dan pintasan Laman Utama" "Membenarkan apl menukar tetapan dan pintasan di Laman Utama." "%1$s tidak dibenarkan membuat panggilan telefon" - - - - + "Tidak dapat memuatkan widget" + "Ketik untuk menyelesaikan persediaan" "Ini ialah apl sistem dan tidak boleh dinyahpasang." "Edit Nama" "%1$s dilumpuhkan" @@ -160,7 +159,7 @@ "Profil kerja" "Apl kerja mempunyai lencana dan kelihatan kepada pentadbir IT anda" "OK" - "Apl kerja dimatikan" + "Apl kerja dijeda" "Apl kerja anda tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" "Apl kerja dimatikan. Apl kerja anda tidak boleh menghantar pemberitahuan kepada anda, menggunakan bateri anda atau mengakses lokasi anda" "Apl kerja mempunyai lencana dan kelihatan kepada pentadbir IT anda" diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index e9f42e4014..4077871d53 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -46,8 +46,8 @@ "ဝိဂျက်များ" "ရှာရန်" "ရှာဖွေစာလုံးဖြည့်ကွက်လပ်မှ စာသားကို ရှင်းလင်းပါ" - "ဝိဂျက်များ မရနိုင်ပါ" - "ရှာဖွေမှု ရလဒ်များ မရှိပါ" + "ဝိဂျက်နှင့် ဖြတ်လမ်းလင့်ခ်များ မရနိုင်ပါ" + "ဝိဂျက် (သို့) ဖြတ်လမ်းလင့်ခ်များ ရှာမတွေ့ပါ" "ကိုယ်ပိုင်" "အလုပ်" "စကားဝိုင်းများ" @@ -64,7 +64,8 @@ "အကြောင်းကြားချက်များ" "ဖြတ်လမ်းလင့်ခ်ကို ရွှေ့ရန် နှစ်ချက်တို့ပြီး ဖိထားပါ။" "ဖြတ်လမ်းလင့်ခ်ကို ရွှေ့ရန် (သို့) စိတ်ကြိုက်လုပ်ဆောင်ချက်များကို သုံးရန် နှစ်ချက်တို့ပြီး ဖိထားပါ။" - "ဤပင်မမျက်နှာစာတွင် နေရာလွတ် မကျန်တော့ပါ" + + "အနှစ်သက်ဆုံးများ ထားရာတွင် နေရာလွတ် မကျန်တော့ပါ" "အက်ပ်စာရင်း" "တစ်ကိုယ်ရေသုံး အက်ပ်စာရင်း" @@ -75,17 +76,15 @@ "ထည့်သွင်းရန်" "အက်ပ်ကို အကြံမပြုပါနှင့်" "ခန့်မှန်းချက်ကို ပင်ထိုးရန်" - "အတိုကောက်မှတ်သားမှုများအား ထည့်သွင်းခြင်း" + "ဖြတ်လမ်းလင့်ခ်များ ထည့်သွင်းခြင်း" "အသုံးပြုသူ လုပ်ဆောင်မှုမရှိပဲ အပ်ပလီကေးရှင်းကို အတိုကောက်မှတ်သားမှုများ ပြုလုပ်ခွင့် ပေးခြင်း" "ပင်မမျက်နှာစာ အပြင်အဆင် နှင့် အတိုကောက်မှတ်သားမှုများအား ဖတ်ခြင်း" "ပင်မမျက်နှာစာတွင်ရှိသော အပြင်အဆင်နှင့် အတိုကောက်မှတ်သားမှုများကို အပ်ပလီကေးရှင်းအား ဖတ်ခွင့်ပြုခြင်း" "ပင်မမျက်နှာစာ အပြင်အဆင် နှင့် အတိုကောက်မှတ်သားမှုများအား ရေးသားခြင်း" "ပင်မမျက်နှာစာတွင် ရှိသော အပြင်အဆင် နှင့် အတိုကောက်မှတ်သားမှုများ ကို အပ်ပလီကေးရှင်းအား ပြောင်းခွင့်ပြုခြင်း" "%1$sသည် ဖုန်းခေါ်ဆိုခွင့် မရှိပါ" - - - - + "ဝိဂျက်ကို ဖွင့်၍မရပါ" + "စနစ်ထည့်သွင်းခြင်း အပြီးသတ်ရန် တို့ပါ" "ဤအပ်ပလီကေးရှင်းမှာ စစ်စတန်ပိုင်းဆိုင်ရာ အပ်ပလီကေးရှင်းဖြစ်ပါသည်။ ထုတ်ပစ်၍ မရပါ" "အမည်ကို တည်းဖြတ်ပါ" "%1$s ကို ပိတ်ထားသည်" @@ -160,7 +159,7 @@ "အလုပ်ပရိုဖိုင်" "အလုပ်သုံးအက်ပ်များကို တံဆိပ်တပ်ထားပြီး သင်၏ IT စီမံခန့်ခွဲသူက မြင်နိုင်ပါသည်" "ရပါပြီ" - "အလုပ်သုံးအက်ပ်များ ပိတ်ထားသည်" + "အလုပ်သုံးအက်ပ်များကို ခေတ္တရပ်ထားသည်" "သင်၏ အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" "အလုပ်သုံးအက်ပ်များ ပိတ်ထားသည်။ သင်၏ အလုပ်သုံးအက်ပ်များက အကြောင်းကြားချက်များ ပို့ခြင်း၊ သင့်ဘက်ထရီ သုံးခြင်း (သို့) သင့်တည်နေရာ သုံးခြင်းတို့ မပြုလုပ်နိုင်ပါ" "အလုပ်သုံးအက်ပ်များကို တံဆိပ်တပ်ထားပြီး သင်၏ IT စီမံခန့်ခွဲသူက မြင်နိုင်ပါသည်" diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 046f4adbbd..4be9caa2a8 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -46,9 +46,9 @@ "Moduler" "Søk" "Tøm tekst fra søkefeltet" - "Ingen moduler er tilgjengelige" - "Ingen søkeresultater" - "Personlig" + "Moduler og snarveier er ikke tilgjengelige" + "Fant ingen moduler eller snarveier" + "Personlige" "Jobb" "Samtaler" "Lett tilgjengelig nyttig informasjon" @@ -64,7 +64,8 @@ "Varsler" "Trykk og hold for å flytte en snarvei." "Dobbelttrykk og hold for å flytte en snarvei eller bruke tilpassede handlinger." - "Denne startsiden er full." + + "Favoritter-skuffen er full" "App-liste" "Personlige apper-liste" @@ -82,10 +83,8 @@ "angi startsideinnstillinger og -snarveier" "Lar appen endre innstillingene og snarveiene på startsiden." "%1$s har ikke tillatelse til å ringe" - - - - + "Kan ikke laste inn modulen" + "Trykk for å fullføre konfigureringen" "Dette er en systemapp som ikke kan avinstalleres." "Rediger navn" "Slo av %1$s" @@ -160,7 +159,7 @@ "Jobbprofil" "Jobbapper er merket og synlige for IT-administratoren din" "Greit" - "Jobbapper er av" + "Jobbapper er satt på pause" "Jobbapper kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" "Jobbapper er av. De kan ikke sende deg varsler, bruke batteriet eller få tilgang til posisjonen din" "Jobbapper er merket og synlige for IT-administratoren din" diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index f7dcd964d7..3c21701b08 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -46,8 +46,8 @@ "विजेटहरू" "खोज्नुहोस्" "खोज बाकसमा भएको पाठ हटाउनुहोस्" - "कुनै पनि विजेट उपलब्ध छैन" - "कुनै पनि खोज परिणाम भेटिएन" + "विजेट र सर्टकटहरू उपलब्ध छन्" + "कुनै पनि विजेट वा सर्टकट फेला परेन" "व्यक्तिगत" "कामसम्बन्धी" "वार्तालापहरू" @@ -64,7 +64,8 @@ "सूचनाहरू" "कुनै सर्टकट सार्न डबल ट्याप गरेर छोइराख्नुहोस्।" "कुनै सर्टकट सार्न वा आफ्नो रोजाइका कारबाही प्रयोग गर्न डबल ट्याप गरेर छोइराख्नुहोस्।" - "यो होम स्क्रिनमा थप ठाउँ छैन।" + + "मन पर्ने ट्रे अब कुनै ठाँउ छैन" "एपको सूची" "व्यक्तिगत अनुप्रयोगहरूको सूची" @@ -82,10 +83,8 @@ "गृह सेटिङहरू र सर्टकटहरू लेख्नुहोस्" "गृहमा एउटा एपलाई सेटिङ र सर्टकट बदल्न अनुमति दिनुहोस्।" "%1$s ले फोन कलहरू गर्न अनुमति छैन" - - - - + "विजेट लोड गर्न सकिएन" + "सेटअप गर्ने प्रक्रिया पूरा गर्न ट्याप गर्नुहोस्" "यो प्रणाली एप हो र यसलाई स्थापना रद्द गर्न सकिँदैन।" "नाम सम्पादन गर्नुहोस्" "असक्षम पारिएको %1$s" @@ -160,7 +159,7 @@ "कार्य प्रोफाइल" "कामसम्बन्धी एपहरूमा ब्याज अङ्कित हुन्छ र तपाईंका IT एड्मिन ती एप हेर्न सक्छन्" "बुझेँ" - "कामसम्बन्धी एपहरू अफ गरिएका छन्" + "कार्यसम्बन्धी एपहरू पज गरिएका छन्" "तपाईंका कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" "कामसम्बन्धी एपहरू अफ गरिएका छन्। तपाईंका कामसम्बन्धी एपहरूले तपाईंलाई सूचना पठाउन, तपाईंको डिभाइसको ब्याट्री प्रयोग गर्न वा तपाईंको लोकेसन हेर्न सक्दैनन्" "कामसम्बन्धी एपमा ब्याज अङ्कित हुन्छ र तपाईंका IT एड्मिन ती एप हेर्न सक्नुहुन्छ" diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index a48214788b..5f8878b730 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Zoeken" "Tekst in zoekvak wissen" - "Geen widgets beschikbaar" - "Geen zoekresultaten" + "Widgets en snelkoppelingen zijn niet beschikbaar" + "Geen widgets of snelkoppelingen gevonden" "Persoonlijk" "Werk" "Gesprekken" @@ -64,7 +64,8 @@ "Meldingen" "Tik en houd vast om een snelkoppeling te verplaatsen." "Dubbeltik en houd vast om een snelkoppeling te verplaatsen of aangepaste acties te gebruiken." - "Er is geen ruimte meer op dit startscherm." + + "Geen ruimte meer in het vak \'Favorieten\'" "Lijst met apps" "Lijst met persoonlijke apps" @@ -158,7 +159,7 @@ "Werkprofiel" "Werk-apps hebben badges en zijn zichtbaar voor je IT-beheerder" "OK" - "Werk-apps staan uit" + "Werk-apps zijn onderbroken" "Je werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie" "Werk-apps staan uit. Je werk-apps kunnen je geen meldingen sturen, je batterij niet gebruiken en geen toegang krijgen tot je locatie." "Werk-apps hebben badges en zijn zichtbaar voor je IT-beheerder" diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 461c082e83..3289e1ad25 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -46,8 +46,10 @@ "ୱିଜେଟ୍‌" "ସନ୍ଧାନ କରନ୍ତୁ" "ସନ୍ଧାନ ବାକ୍ସରୁ ଟେକ୍ସଟ୍ ଖାଲି କରନ୍ତୁ" - "କୌଣସି ୱିଜେଟ୍ ଉପଲବ୍ଧ ନାହିଁ" - "କୌଣସି ସନ୍ଧାନ ଫଳାଫଳ ନାହିଁ" + + + + "ବ୍ୟକ୍ତିଗତ" "ୱାର୍କ" "ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ" @@ -64,7 +66,8 @@ "ବିଜ୍ଞପ୍ତି" "ଏକ ସର୍ଟକଟକୁ ମୁଭ୍ କରିବା ପାଇଁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ।" "ଏକ ସର୍ଟକଟକୁ ମୁଭ୍ କରିବା ପାଇଁ ଦୁଇଥର-ଟାପ୍ କରି ଧରି ରଖନ୍ତୁ କିମ୍ବା କଷ୍ଟମ୍ କାର୍ଯ୍ୟଗୁଡ଼ିକୁ ବ୍ୟବହାର କରନ୍ତୁ।" - "ଏହି ମୂଳସ୍କ୍ରୀନରେ ଆଉ ଜାଗା ନାହିଁ" + + "ମନପସନ୍ଦ ଟ୍ରେରେ ଆଉ କୋଠରୀ ନାହିଁ" "ଆପ୍‌ ତାଲିକା" "ବ୍ୟକ୍ତିଗତ ଆପ୍ ତାଲିକା" @@ -82,10 +85,8 @@ "ହୋମ୍‌ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ଲେଖନ୍ତୁ" "ହୋମରେ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।" "ଫୋନ୍‌ କଲ୍‌ କରିବାକୁ %1$sକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ" - - - - + "ୱିଜେଟ୍ ଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ" + "ସେଟ୍ ଅପ୍ ସମ୍ପୂର୍ଣ୍ଣ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ" "ଏହା ଏକ ସିଷ୍ଟମ୍‌ ଆପ୍‌ ଅଟେ ଏବଂ ଏହା ଅନଇନଷ୍ଟଲ୍‌ କରାଯାଇ ପାରିବ ନାହିଁ।" "ନାମ ସମ୍ପାଦନ କରନ୍ତୁ" "%1$s ଅକ୍ଷମ କରାଗଲା" @@ -160,7 +161,7 @@ "ୱର୍କ ପ୍ରୋଫାଇଲ୍‌" "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ବ୍ୟାଜ୍ କରାଯାଇଛି ଏବଂ ସେଗୁଡ଼ିକ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କୁ ଦୃଶ୍ୟମାନ ହେଉଛି" "ବୁଝିଗଲି" - "ୱାର୍କ ଆପଗୁଡ଼ିକ ବନ୍ଦ ଅଛି" + "ୱାର୍କ ଆପ୍ସ ବିରତ କରାଯାଇଛି" "ଆପଣଙ୍କ ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତି ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" "ୱାର୍କ ଆପଗୁଡ଼ିକ ବନ୍ଦ ଅଛି। ଆପଣଙ୍କ ୱାର୍କ ଆପଗୁଡ଼ିକ ଆପଣଙ୍କୁ ବିଜ୍ଞପ୍ତି ପଠାଇପାରିବ ନାହିଁ, ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ କିମ୍ବା ଆପଣଙ୍କର ଲୋକେସନକୁ ଆକ୍ସେସ୍ କରିପାରିବ ନାହିଁ" "ୱାର୍କ ଆପଗୁଡ଼ିକୁ ବ୍ୟାଜ୍ କରାଯାଇଛି ଏବଂ ଆପଣଙ୍କ IT ଆଡମିନଙ୍କୁ ଦେଖାଯାଉଛି" diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index 63ec08593f..ed0879fb3b 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -46,8 +46,10 @@ "ਵਿਜੇਟ" "ਖੋਜੋ" "ਖੋਜ ਬਾਕਸ ਤੋਂ ਸਪੱਸ਼ਟ ਲਿਖਤ" - "ਕੋਈ ਵਿਜੇਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" - "ਕੋਈ ਖੋਜ ਨਤੀਜਾ ਨਹੀਂ" + + + + "ਨਿੱਜੀ" "ਕਾਰਜ-ਸਥਾਨ" "ਗੱਲਾਂਬਾਤਾਂ" @@ -64,7 +66,8 @@ "ਸੂਚਨਾਵਾਂ" "ਕਿਸੇ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਲਿਜਾਉਣ ਲਈ ਸਪੱਰਸ਼ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।" "ਕਿਸੇ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਲਿਜਾਉਣ ਲਈ ਡਬਲ ਟੈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ ਜਾਂ ਵਿਉਂਤੀਆਂ ਕਾਰਵਾਈਆਂ ਵਰਤੋ।" - "ਇਸ ਹੋਮ ਸਕ੍ਰੀਨ \'ਤੇ ਹੋਰ ਖਾਲੀ ਥਾਂ ਨਹੀਂ ਹੈ।" + + "ਮਨਪਸੰਦ ਟ੍ਰੇ ਵਿੱਚ ਹੋਰ ਖਾਲੀ ਸਥਾਨ ਨਹੀਂ।" "ਐਪ ਸੂਚੀ" "ਨਿੱਜੀ ਐਪਾਂ ਦੀ ਸੂਚੀ" @@ -82,10 +85,8 @@ "ਹੋਮ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਲਿਖੋ" "ਐਪ ਨੂੰ ਹੋਮ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਅਤੇ ਸ਼ਾਰਟਕੱਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।" "%1$s ਨੂੰ ਫ਼ੋਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਹੈ" - - - - + "ਵਿਜੇਟ ਨੂੰ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ" + "ਸੈੱਟਅੱਪ ਪੂਰਾ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ" "ਇਹ ਇੱਕ ਸਿਸਟਮ ਐਪ ਹੈ ਅਤੇ ਇਸਨੂੰ ਅਣਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ।" "ਨਾਮ ਦਾ ਸੰਪਾਦਨ ਕਰੋ" "%1$s ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ" @@ -160,7 +161,7 @@ "ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ" "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਬੈਜ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਹ ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਦਿਸਣਗੀਆਂ" "ਸਮਝ ਲਿਆ" - "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਬੰਦ ਹਨ" + "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ" "ਤੁਹਾਡੀਆਂ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਬੰਦ ਹਨ। ਤੁਹਾਡੀਆਂ ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਨਹੀਂ ਭੇਜ ਸਕਦੀਆਂ, ਤੁਹਾਡੀ ਬੈਟਰੀ ਨਹੀਂ ਵਰਤ ਸਕਦੀਆਂ ਜਾਂ ਤੁਹਾਡੇ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ" "ਕੰਮ ਸੰਬੰਧੀ ਐਪਾਂ ਨੂੰ ਬੈਜ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਇਹ ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਨੂੰ ਦਿਸਣਗੀਆਂ" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index bb54c2f8e7..3cfb569fe3 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -50,8 +50,8 @@ "Widżety" "Szukaj" "Wyczyść tekst w polu wyszukiwania" - "Brak dostępnych widżetów" - "Brak wyników wyszukiwania" + "Widżety i skróty nie są dostępne" + "Nie znaleziono widżetów ani skrótów" "Osobiste" "Służbowe" "Rozmowy" @@ -68,7 +68,8 @@ "Powiadomienia" "Naciśnij i przytrzymaj, aby wybrać skrót." "Naciśnij dwukrotnie i przytrzymaj, aby przenieść skrót lub użyć działań niestandardowych." - "Brak miejsca na tym ekranie głównym." + + "Brak miejsca w Ulubionych" "Lista aplikacji" "Lista aplikacji osobistych" @@ -86,10 +87,8 @@ "zapisywanie ustawień i skrótów na ekranie głównym" "Umożliwia aplikacji zmianę ustawień i skrótów na ekranie głównym." "%1$s nie może wykonywać połączeń telefonicznych" - - - - + "Nie udało się załadować widżetu" + "Kliknij, aby dokończyć konfigurację" "To aplikacja systemowa i nie można jej odinstalować." "Edytuj nazwę" "Aplikacja %1$s jest wyłączona" @@ -166,7 +165,7 @@ "Profil służbowy" "Aplikacje służbowe mają plakietki i są widoczne dla administratora IT" "OK" - "Aplikacje służbowe są wyłączone" + "Aplikacje do pracy zostały wstrzymane" "Aplikacje służbowe nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" "Aplikacje służbowe są wyłączone i nie mogą wysyłać powiadomień, używać baterii ani uzyskiwać dostępu do Twojej lokalizacji" "Aplikacje służbowe mają plakietki i są widoczne dla administratora IT" diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 11f1f8370d..9aeecdc383 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Pesquisar" "Limpe o texto da caixa de pesquisa" - "Nenhum widget disponível" - "Nenhum resultado da pesquisa" + "Os widgets e os atalhos não estão disponíveis" + "Nenhum widget ou atalho encontrado" "Pessoais" "Trabalho" "Conversas" @@ -64,7 +64,8 @@ "Notificações" "Toque sem soltar para mover um atalho." "Toque duas vezes sem soltar para mover um atalho ou utilizar ações personalizadas." - "Sem espaço suficiente neste Ecrã principal." + + "Não existe mais espaço no tabuleiro de Favoritos" "Lista de aplicações" "Lista de aplicações pessoais" @@ -158,7 +159,7 @@ "Perfil de trabalho" "As apps de trabalho têm um emblema e estão visíveis para o seu administrador de TI" "OK" - "As apps de trabalho estão desativadas" + "As apps de trabalho estão em pausa" "As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização" "As apps de trabalho estão desativadas. As apps de trabalho não podem enviar-lhe notificações, utilizar a bateria ou aceder à sua localização" "As apps de trabalho têm um emblema e estão visíveis para o seu administrador de TI" diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 11779edb97..3dbf460762 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -46,8 +46,8 @@ "Widgets" "Pesquisa" "Limpar texto da caixa de pesquisa" - "Nenhum widget disponível" - "Nenhum resultado de pesquisa" + "Nenhum widget ou atalho disponível" + "Nenhum widget ou atalho encontrado" "Pessoais" "Trabalho" "Conversas" @@ -64,7 +64,8 @@ "Notificações" "Toque e mantenha a tela pressionada para mover um atalho." "Toque duas vezes e mantenha a tela pressionada para mover um atalho ou usar ações personalizadas." - "Não há mais espaço na tela inicial." + + "Sem espaço na bandeja de favoritos" "Lista de apps" "Lista de apps pessoais" @@ -158,7 +159,7 @@ "Perfil de trabalho" "Os apps de trabalho têm um ícone e ficam visíveis para o administrador de TI" "Ok" - "Os apps de trabalho estão desativados" + "Os apps de trabalho foram pausados" "Os apps de trabalho não podem enviar notificações, usar a bateria nem acessar o local" "Os apps de trabalho estão desativados. Eles não podem enviar notificações, usar a bateria nem acessar o local" "Os apps de trabalho têm um ícone e ficam visíveis para o administrador de TI" diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index 49c787cfc9..b9b3726644 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -48,8 +48,8 @@ "Widgeturi" "Căutare" "Ștergeți textul din caseta de căutare" - "Niciun widget disponibil" - "Niciun rezultat al căutării" + "Widgeturile și comenzile rapide nu sunt disponibile" + "Nu au fost găsite widgeturi sau comenzi rapide" "Personale" "Serviciu" "Conversații" @@ -66,7 +66,8 @@ "Notificări" "Atingeți și țineți apăsat pentru a muta comanda rapidă." "Atingeți de două ori și țineți apăsat pentru a muta o comandă rapidă sau folosiți acțiuni personalizate." - "Nu mai este loc pe acest Ecran de pornire." + + "Spațiu epuizat în bara Preferate" "Lista de aplicații" "Lista de aplicații personale" @@ -84,10 +85,8 @@ "scrie setări și comenzi rapide pentru ecranul de pornire" "Permite aplicației să modifice setările și comenzile rapide din ecranul de pornire." "%1$s nu are permisiunea de a apela" - - - - + "Widgetul nu poate fi încărcat" + "Atingeți pentru a finaliza configurarea" "Aceasta este o aplicație de sistem și nu poate fi dezinstalată." "Modificați numele" "S-a dezactivat %1$s" @@ -163,7 +162,7 @@ "Profil de serviciu" "Aplicațiile pentru lucru sunt marcate și vizibile pentru administratorul IT" "OK" - "Aplicațiile pentru lucru sunt dezactivate" + "Aplicațiile pentru lucru sunt întrerupte" "Aplicațiile pentru lucru nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația" "Aplicațiile pentru lucru sunt dezactivate. Acestea nu pot să vă trimită notificări, să folosească bateria sau să vă acceseze locația." "Aplicațiile pentru lucru sunt marcate și vizibile pentru administratorul IT" diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 12db0e2543..d5c0159762 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -50,8 +50,8 @@ "Виджеты" "Поиск" "Удалить текст из окна поиска" - "Нет доступных виджетов." - "Ничего не найдено." + "Виджеты и ярлыки недоступны." + "Виджеты и ярлыки не найдены." "Личные виджеты" "Рабочие виджеты" "Разговоры" @@ -68,7 +68,8 @@ "Уведомления" "Нажмите и удерживайте для переноса ярлыка." "Чтобы использовать специальные действия или перенести ярлык, нажмите на него дважды и удерживайте." - "На этом экране нет свободного места." + + "В разделе \"Избранное\" больше нет места" "Список приложений" "Открыть список личных приложений" @@ -86,10 +87,8 @@ "Изменение настроек и ярлыков главного экрана" "Приложение сможет изменять настройки и ярлыки на главном экране." "Приложение %1$s не может делать телефонные звонки" - - - - + "Не удается загрузить виджет." + "Нажмите, чтобы завершить настройку." "Это системное приложение, его нельзя удалить." "Измените название" "Приложение %1$s отключено" @@ -166,7 +165,7 @@ "Рабочий профиль" "У рабочих приложений есть специальная пометка. Они видны системному администратору." "ОК" - "Рабочие приложения отключены" + "Рабочие приложения приостановлены" "Рабочие приложения не могут отправлять уведомления, расходовать заряд батареи и получать доступ к данным о вашем местоположении." "Рабочие приложения отключены. Они не могут отправлять уведомления, расходовать заряд батареи и получать доступ к вашему местоположению." "У рабочих приложений есть специальная пометка. Они видны системному администратору." diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml index 946e12c319..e32f16848a 100644 --- a/res/values-si/strings.xml +++ b/res/values-si/strings.xml @@ -46,8 +46,8 @@ "විජට්" "සෙවීම" "සෙවීම් කොටුවෙන් පෙළ හිස් කරන්න" - "ලබා ගත හැකි විජට් නැත" - "සෙවීම් ප්‍රතිඵල නැත" + "විජට් සහ කෙටි මං ලබා ගත නොහැකිය" + "විජට් හෝ කෙටි මං හමු නොවීය" "පුද්ගලික" "කාර්යාලය" "සංවාද" @@ -64,7 +64,8 @@ "දැනුම්දීම්" "කෙටි මගක් ගෙන යාමට ස්පර්ශ කර අල්ලාගෙන සිටින්න." "කෙටි මගක් ගෙන යාමට හෝ අභිරුචි ක්‍රියා භාවිත කිරීමට දෙවරක් තට්ටු කර අල්ලා ගෙන සිටින්න." - "මෙම මුල් පිටු තිරය මත තවත් අවසර නැත." + + "ප්‍රියතම දෑ ඇති තැටියේ තවත් ඉඩ නොමැත" "යෙදුම් ලැයිස්තුව" "පෞද්ගලික යෙදුම් ලැයිස්තුව" @@ -82,10 +83,8 @@ "මුල් පිටු සැකසීම් සහ කෙටිමං ලියන්න" "මුල් පිටුවේ සැකසීම් සහ කෙටිමං ඉවත් කිරීමට යෙදුමට අවසර දෙයි." "%1$s හට දුරකථන ඇමතුම් සිදු කිරීමට ඉඩ නොදේ" - - - - + "විජට් පූරණය කළ නොහැකිය" + "පිහිටුවීම අවසන් කිරීමට තට්ටු කරන්න" "මෙය පද්ධති යෙදුමක් වන අතර අස්ථාපනය කළ නොහැක." "නම සංස්කරණය කරන්න" "%1$s අබල කෙරිණි" @@ -160,7 +159,7 @@ "කාර්යාල පැතිකඩ" "කාර්යාල යෙදුම්වලට ලාංඡන යොදා ඇති අතර ඔබගේ IT පරිපාලකට දෘශ්‍යමාන වේ" "තේරුණා" - "කාර්යාල යෙදුම් ක්‍රියාවිරහිතයි" + "කාර්යාල යෙදුම් විරාම කර ඇත" "ඔබගේ කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" "කාර්යාල යෙදුම් ක්‍රියාවිරහිතයි. ඔබගේ කාර්යාල යෙදුම්වලට ඔබට දැනුම්දීම් එවීමට, ඔබගේ බැටරිය භාවිත කිරීමට හෝ ඔබගේ ස්ථානයට ප්‍රවේශ වීමට නොහැකිය" "කාර්යාල යෙදුම්වලට ලාංඡන යොදා ඇති අතර ඔබගේ IT පරිපාලකට දෘශ්‍යමාන වේ" diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml index d4f2e00ba0..eb8ad30ff2 100644 --- a/res/values-sk/strings.xml +++ b/res/values-sk/strings.xml @@ -50,8 +50,8 @@ "Miniaplikácie" "Vyhľadajte" "Vymazať text z vyhľadávacieho poľa" - "Nie sú k dispozícii žiadne miniaplikácie" - "Žiadne výsledky vyhľadávania" + "Miniaplikácie a odkazy nie sú k dispozícii" + "Nenašli sa žiadne miniaplikácie ani odkazy" "Osobné" "Práca" "Konverzácie" @@ -68,7 +68,8 @@ "Upozornenia" "Pridržaním presuňte skratku." "Dvojitým klepnutím a pridržaním presuňte odkaz alebo použite vlastné akcie." - "Na tejto ploche už nie je miesto" + + "Na paneli Obľúbené položky už nie je miesto" "Zoznam aplikácií" "Zoznam osobných aplikácií" @@ -86,10 +87,8 @@ "zápis nastavení a odkazov plochy" "Povoľuje aplikácii zmeniť nastavenia a odkazy na ploche." "Aplikácia %1$s nemá povolenie uskutočňovať telefonické hovory" - - - - + "Miniaplikáciu sa nepodarilo načítať" + "Nastavenie dokončíte klepnutím" "Toto je systémová aplikácia a nedá sa odinštalovať." "Úprava názvu" "Aplikácia %1$s je deaktivovaná" @@ -166,7 +165,7 @@ "Pracovný profil" "Pracovné aplikácie majú odznak a zobrazujú sa správcovi IT" "Dobre" - "Pracovné aplikácie sú vypnuté" + "Pracovné aplikácie sú pozastavené" "Pracovné aplikácie nemôžu posielať upozornenia ani používať batériu či polohu." "Pracovné aplikácie sú vypnuté. Nemôžu posielať upozornenia ani používať batériu či polohu." "Pracovné aplikácie majú odznak a zobrazujú sa správcovi IT" diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index d5d9f028fb..7f440f81af 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -50,8 +50,8 @@ "Pripomočki" "Iskanje" "Brisanje besedila v iskalnem polju" - "Ni pripomočkov" - "Ni rezultatov iskanja" + "Pripomočki in bližnjice niso na voljo." + "Najden ni noben pripomoček ali bližnjica." "Osebni" "Služba" "Pogovori" @@ -68,7 +68,8 @@ "Obvestila" "Pridržite bližnjico, da jo premaknete." "Dvakrat se dotaknite bližnjice in jo pridržite, da jo premaknete, ali pa uporabite dejanja po meri." - "Na tem začetnem zaslonu ni več prostora." + + "V vrstici za priljubljene ni več prostora" "Seznam aplikacij" "Seznam osebnih aplikacij" @@ -86,10 +87,8 @@ "zapis nastavitev in bližnjic na začetnem zaslonu" "Aplikaciji dovoli spreminjanje nastavitev in bližnjic na začetnem zaslonu." "Aplikaciji %1$s ni dovoljeno opravljanje klicev" - - - - + "Pripomočka ni mogoče naložiti." + "Dotaknite se, da dokončate postopek nastavitve." "To je sistemska aplikacija in je ni mogoče odstraniti." "Urejanje imena" "Aplikacija %1$s je onemogočena" @@ -166,7 +165,7 @@ "Delovni profil" "Delovne aplikacije so označene z značko in vidne skrbniku za IT." "Razumem" - "Delovne aplikacije so izklopljene." + "Delovne aplikacije so začasno zaustavljene" "Delovne aplikacije ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." "Delovne aplikacije so izklopljene in ne smejo pošiljati obvestil, porabljati energije baterije ali dostopati do lokacije." "Delovne aplikacije so označene z značko in vidne skrbniku za IT." diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index f3a4649c28..e39e3e7893 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -46,8 +46,10 @@ "Miniaplikacionet" "Kërko" "Pastro tekstin nga kutia e kërkimit" - "Nuk ka asnjë miniaplikacion" - "Asnjë rezultat kërkimi" + + + + "Personale" "Puna" "Bisedat" @@ -64,7 +66,8 @@ "Njoftimet" "Prek dhe mbaj shtypur një shkurtore për ta zhvendosur." "Trokit dy herë dhe mbaje shtypur një shkurtore për ta zhvendosur atë ose për të përdorur veprimet e personalizuara." - "Nuk ka më hapësirë në këtë ekran bazë." + + "Nuk ka më hapësirë në tabakanë \"Të preferuarat\"" "Lista e aplikacioneve" "Lista e aplikacioneve personale" @@ -75,17 +78,15 @@ "Instalo" "Mos sugjero aplikacion" "Gozhdo parashikimin" - "instalo shkurtore" + "instalimi i shkurtoreve" "Lejon një aplikacion të shtojë shkurtore pa ndërhyrjen e përdoruesit." "lexo cilësimet dhe shkurtoret e ekranit bazë" "Lejon aplikacionin të lexojë cilësimet dhe shkurtoret në ekranin bazë." "shkruaj cilësimet dhe shkurtoret e ekranit bazë" "Lejon aplikacionin të ndryshojë cilësimet dhe shkurtoret në ekranin bazë." "%1$s nuk lejohet të kryejë telefonata" - - - - + "S\'mund të ngarkohet miniaplikacioni" + "Trokit për të përfunduar konfigurimin" "Ky është aplikacion sistemi dhe nuk mund të çinstalohet." "Redakto emrin" "%1$s u çaktivizua" @@ -160,7 +161,7 @@ "Profili i punës" "Aplikacionet e punës janë të shënuara dhe të dukshme për administratorin e teknologjisë së informacionit" "E kuptova" - "Aplikacionet e punës janë joaktive" + "Aplikacionet e punës janë në pauzë" "Aplikacionet e tua të punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" "Aplikacionet e punës janë joaktive. Aplikacionet e tua të punës nuk mund të të dërgojnë njoftime, të përdorin baterinë tënde apo të kenë qasje në vendndodhjen tënde" "Aplikacionet e punës janë të shënuara dhe të dukshme për administratorin e teknologjisë së informacionit" diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index b47a148072..797a2a0167 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -48,8 +48,8 @@ "Виџети" "Претражите" "Обришите текст из оквира за претрагу" - "Није доступан ниједан виџет" - "Нема резултата претраге" + "Виџети и пречице нису доступни" + "Није пронађен ниједан виџет или пречица" "Лично" "Посао" "Конверзације" @@ -66,7 +66,8 @@ "Обавештења" "Двапут додирните и задржите ради померања пречице." "Двапут додирните и задржите да бисте померали пречицу или користите прилагођене радње." - "Нема више простора на овом почетном екрану." + + "Нема више простора на траци Омиљено" "Листа апликација" "Листа личних апликација" @@ -84,10 +85,8 @@ "уписивање подешавања и пречица на почетном екрану" "Дозвољава апликацији да мења подешавања и пречице на почетном екрану." "%1$s нема дозволу за упућивање телефонских позива" - - - - + "Учитавање виџета није успело" + "Додирните да бисте довршили подешавање" "Ово је системска апликација и не може да се деинсталира." "Измените назив" "Апликација %1$s је онемогућена" @@ -163,7 +162,7 @@ "Пословни профил" "Пословне апликације су означене значком и ИТ администратор може да их види" "Важи" - "Пословне апликације су искључене" + "Пословне апликације су паузиране" "Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" "Пословне апликације су искључене. Пословне апликације не могу да вам шаљу обавештења, користе батерију нити приступају локацији" "Пословне апликације су означене значком и ИТ администратор може да их види" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 415e7bea76..8fa1e0e287 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -46,8 +46,8 @@ "Widgetar" "Sök" "Rensa texten från sökrutan" - "Det finns inga tillgängliga widgetar" - "Inga sökresultat" + "Widgetar och genvägar är inte tillgängliga" + "Inga widgetar eller genvägar hittades" "Privata" "Arbete" "Konversationer" @@ -64,7 +64,8 @@ "Aviseringar" "Tryck länge för att flytta en genväg." "Tryck snabbt två gånger och håll kvar för att flytta en genväg eller använda anpassade åtgärder." - "Det finns inte plats för mer på den här startskärmen." + + "Favoritfältet är fullt" "Applista" "Listan Personliga appar" @@ -82,10 +83,8 @@ "skriva inställningar och genvägar för startsidan" "Tillåter att appen ändrar inställningar och genvägar på startsidan." "%1$s har inte behörighet att ringa samtal" - - - - + "Det gick inte att läsa in widgeten" + "Tryck för att slutföra konfigureringen" "Det här är en systemapp som inte kan avinstalleras." "Redigera namn" "%1$s har inaktiverats" @@ -160,7 +159,7 @@ "Jobbprofil" "Jobbappar är märkta och synliga för IT-administratören" "OK" - "Jobbappar är inaktiverade" + "Jobbappar har pausats" "Dina jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" "Jobbappar är inaktiverade. Dina jobbappar kan inte skicka aviseringar, använda batteriet eller komma åt din plats" "Jobbappar är märkta och synliga för IT-administratören" diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml index 7e1c724562..1e7bf0747f 100644 --- a/res/values-sw/strings.xml +++ b/res/values-sw/strings.xml @@ -46,8 +46,8 @@ "Wijeti" "Tafuta" "Futa maandishi kwenye kisanduku cha kutafutia" - "Hamna wijeti zinazopatikana" - "Hamna matokeo ya utafutaji" + "Wijeti na njia za mkato hazipatikani" + "Hakuna wijeti wala njia za mkato zilizopatikana" "Binafsi" "Kazini" "Mazungumzo" @@ -64,7 +64,8 @@ "Arifa" "Gusa na ushikilie ili usogeze njia ya mkato." "Gusa mara mbili na ushikilie ili usogeze njia ya mkato au utumie vitendo maalum." - "Hakuna nafasi katika skrini hii ya Mwanzo." + + "Hakuna nafasi zaidi katika treya ya Vipendeleo" "Orodha ya programu" "Orodha ya programu za binafsi" @@ -82,10 +83,8 @@ "andika mipangilio ya skrini ya Mwanzo na njia za mkato" "Huruhusu programu kubadilisha mipangilio na njia za mkato katika skrini ya Mwanzo." "%1$s hairuhusiwi kupiga simu" - - - - + "Imeshindwa kupakia wijeti" + "Gusa ili umalize kuweka mipangilio" "Hii ni programu ya mfumo na haiwezi kuondolewa." "Badilisha Jina" "%1$s imezimwa" @@ -160,7 +159,7 @@ "Wasifu wa kazini" "Programu za kazini zina beji na zinaonekana kwa msimamizi wako wa TEHAMA" "Nimeelewa" - "Programu za kazini zimezimwa" + "Programu za kazini zimesimamishwa" "Programu zako za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" "Programu za kazini zimezimwa. Programu zako za kazini haziwezi kukutumia arifa, kutumia betri yako au kufikia maelezo ya mahali ulipo" "Programu za kazini zina beji na zinaonekana kwa msimamizi wako wa TEHAMA" diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml index 877d92d09e..b68ee1e6ee 100644 --- a/res/values-ta/strings.xml +++ b/res/values-ta/strings.xml @@ -46,8 +46,8 @@ "விட்ஜெட்கள்" "தேடுக" "தேடல் பெட்டியிலுள்ள உரையை அழிக்கும்" - "விட்ஜெட்டுகள் எதுவுமில்லை" - "தேடல் முடிவுகள் இல்லை" + "விட்ஜெட்டுகளும் ஷார்ட்கட்களும் கிடைக்கவில்லை" + "விட்ஜெட்டுகள்/ஷார்ட்கட்டுகள் எதுவும் இல்லை" "தனிப்பட்டவை" "பணி" "உரையாடல்கள்" @@ -64,7 +64,8 @@ "அறிவிப்புகள்" "ஷார்ட்கட்டை நகர்த்தத் தொட்டுப் பிடிக்கவும்." "ஷார்ட்கட்டை நகர்த்த இருமுறை தட்டிப் பிடிக்கவும் அல்லது பிரத்தியேகச் செயல்களைப் பயன்படுத்தவும்." - "முகப்புத் திரையில் இடமில்லை." + + "பிடித்தவை ட்ரேயில் இடமில்லை" "ஆப்ஸின் பட்டியல்" "தனிப்பட்ட ஆப்ஸ் பட்டியல்" @@ -82,10 +83,8 @@ "முகப்பின் அமைப்பு மற்றும் குறுக்குவழிகளை எழுதுதல்" "முகப்பில் உள்ள அமைப்பு மற்றும் குறுக்குவழிகளை மாற்ற ஆப்ஸை அனுமதிக்கிறது." "ஃபோன் அழைப்புகள் செய்ய, %1$s அனுமதிக்கப்படவில்லை" - - - - + "விட்ஜெட்டை ஏற்ற முடியவில்லை" + "அமைவை நிறைவுசெய்யத் தட்டவும்" "இது அமைப்பு ஆப்ஸ் என்பதால் நிறுவல் நீக்கம் செய்ய முடியாது." "பெயரைத் திருத்துதல்" "%1$s முடக்கப்பட்டது" @@ -160,7 +159,7 @@ "பணிக் கணக்கு" "பணி ஆப்ஸில் பேட்ஜ் இடப்பட்டுள்ளன. உங்கள் IT நிர்வாகியால் அவற்றைப் பார்க்க முடியும்" "முடிந்தது" - "பணி ஆப்ஸ் முடக்கப்பட்டுள்ளன" + "பணி ஆப்ஸ் இடைநிறுத்தப்பட்டுள்ளன" "பணி ஆப்ஸால் உங்களுக்கு அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ உங்கள் இருப்பிடத்தை அணுகவோ முடியாது" "பணி ஆப்ஸ் முடக்கப்பட்டுள்ளன. அவற்றால் உங்களுக்கு அறிவிப்புகளை அனுப்பவோ பேட்டரியைப் பயன்படுத்தவோ உங்கள் இருப்பிடத்தை அணுகவோ முடியாது" "பணி ஆப்ஸ் பேட்ஜ் குறியிடப்பட்டுள்ளன. மேலும் உங்கள் IT நிர்வாகியால் அவற்றைப் பார்க்க முடியும்" diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index e5bd96ee79..7191c6c704 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -46,8 +46,10 @@ "విడ్జెట్‌లు" "సెర్చ్ చేయండి" "సెర్చ్ బాక్స్ నుండి టెక్స్ట్‌ను క్లియర్ చేయి" - "విడ్జెట్‌లు అందుబాటులో లేవు" - "సెర్చ్ ఫలితాలు లేవు" + + + + "వ్యక్తిగత గ్యాడ్జెట్స్" "ఆఫీస్" "సంభాషణలు" @@ -64,7 +66,8 @@ "నోటిఫికేషన్‌లు" "షార్ట్‌కట్‌ను తరలించడానికి తాకి & నొక్కి ఉంచు." "షార్ట్‌కట్‌ను తరలించడానికి లేదా అనుకూల చర్యలను ఉపయోగించడానికి రెండుసార్లు నొక్కండి & హోల్డ్ చేయండి." - "ఈ హోమ్ స్క్రీన్‌లో ఖాళీ లేదు." + + "ఇష్టమైనవి ట్రేలో ఖాళీ లేదు" "అనువర్తనాల జాబితా" "వ్యక్తిగత యాప్‌ల జాబితా" @@ -82,10 +85,8 @@ "హోమ్ సెట్టింగ్‌లు మరియు సత్వరమార్గాలను వ్రాయడం" "హోమ్‌లో సెట్టింగ్‌లు మరియు సత్వరమార్గాలను మార్చడానికి యాప్‌ను అనుమతిస్తుంది." "ఫోన్ కాల్‌లను చేసేందుకు %1$sకి అనుమతి లేదు" - - - - + "విడ్జెట్‌ను లోడ్ చేయడం సాధ్యం కాలేదు" + "సెటప్‌ను పూర్తి చేయడానికి ట్యాప్ చేయండి" "ఇది సిస్టమ్ యాప్ మరియు దీన్ని అన్‌ఇన్‌స్టాల్ చేయడం సాధ్యపడదు." "పేరును ఎడిట్ చేయండి" "%1$s నిలిపివేయబడింది" @@ -158,10 +159,9 @@ "వ్యక్తిగతం" "కార్యాలయం" "కార్యాలయ ప్రొఫైల్" - - + "వర్క్ యాప్‌లు బ్యాడ్జ్ చేయబడ్డాయి, మీ IT అడ్మిన్‌కు కనిపిస్తాయి" "అర్థమైంది" - "వర్క్ యాప్‌లు ఆఫ్‌లో ఉన్నాయి" + "వర్క్ యాప్‌లు పాజ్ చేయబడ్డాయి" "మీకు నోటిఫికేషన్‌లు పంపడం, మీ బ్యాటరీని ఉపయోగించడం, లేదా మీ లొకేషన్‌ను యాక్సెస్ చేయడం మీ వర్క్ యాప్‌లకు సాధ్యపడదు" "వర్క్ యాప్‌లు ఆఫ్‌లో ఉన్నాయి. మీకు నోటిఫికేషన్‌లు పంపడం, మీ బ్యాటరీని ఉపయోగించడం, లేదా మీ లొకేషన్‌ను యాక్సెస్ చేయడం మీ వర్క్ యాప్‌లకు సాధ్యపడదు" "వర్క్ యాప్‌లు బ్యాడ్జ్ చేయబడ్డాయి, మీ IT అడ్మిన్‌కి కనిపిస్తాయి" diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml index 795bc7d929..f42766cb68 100644 --- a/res/values-th/strings.xml +++ b/res/values-th/strings.xml @@ -46,8 +46,8 @@ "วิดเจ็ต" "ค้นหา" "ล้างข้อความออกจากช่องค้นหา" - "ไม่มีวิดเจ็ตพร้อมใช้งาน" - "ไม่พบผลการค้นหา" + "วิดเจ็ตและทางลัดไม่พร้อมให้บริการ" + "ไม่พบวิดเจ็ตหรือทางลัด" "ส่วนตัว" "งาน" "การสนทนา" @@ -64,7 +64,8 @@ "การแจ้งเตือน" "แตะค้างไว้เพื่อย้ายทางลัด" "แตะสองครั้งค้างไว้เพื่อย้ายทางลัดหรือใช้การดำเนินการที่กำหนดเอง" - "ไม่มีที่ว่างในหน้าจอหลักนี้" + + "ไม่มีพื้นที่เหลือในถาดรายการโปรด" "รายชื่อแอป" "รายการแอปส่วนตัว" @@ -82,10 +83,8 @@ "เขียนการตั้งค่าและทางลัดหน้าแรกแล้ว" "อนุญาตให้แอปเปลี่ยนการตั้งค่าและทางลัดในหน้าแรก" "%1$s ไม่ได้รับอนุญาตให้โทรออก" - - - - + "โหลดวิดเจ็ตไม่ได้" + "แตะเพื่อสิ้นสุดการตั้งค่า" "นี่เป็นแอประบบและไม่สามารถถอนการติดตั้งได้" "แก้ไขชื่อ" "ปิดใช้ %1$s" @@ -160,7 +159,7 @@ "โปรไฟล์งาน" "แอปงานจะติดป้ายไว้และผู้ดูแลระบบไอทีจะมองเห็น" "รับทราบ" - "แอปงานปิดอยู่" + "หยุดแอปงานไว้ชั่วคราว" "แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" "แอปงานปิดอยู่ แอปงานจะส่งการแจ้งเตือน ใช้แบตเตอรี่ หรือเข้าถึงตำแหน่งของคุณไม่ได้" "แอปงานจะติดป้ายไว้และผู้ดูแลระบบไอทีจะมองเห็น" diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index 558b96bc06..99b554c496 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -46,8 +46,8 @@ "Mga Widget" "Maghanap" "I-clear ang text sa box para sa paghahanap" - "Walang available na widget" - "Walang resulta ng paghahanap" + "Hindi available ang mga widget at shortcut" + "Walang nakitang widget o shortcut" "Personal" "Trabaho" "Mga Pag-uusap" @@ -64,7 +64,8 @@ "Mga Notification" "Pindutin nang matagal para ilipat ang shortcut." "I-double tap at pindutin nang matagal para ilipat ang shortcut o gumamit ng mga custom na pagkilos." - "Wala nang lugar sa Home screen na ito." + + "Wala nang lugar sa tray ng Mga Paborito" "Listahan ng mga app" "Listahan ng mga personal na app" @@ -82,10 +83,8 @@ "magsulat ng mga setting at shortcut ng Home" "Pinapayagan ang app na baguhin ang mga setting at shortcut sa Home." "Hindi pinahihintulutang tumawag ang %1$s" - - - - + "Hindi ma-load ang widget" + "I-tap para tapusin ang pag-set up" "Isa itong app ng system at hindi maaaring i-uninstall." "I-edit ang Pangalan" "Naka-disable ang %1$s" @@ -160,7 +159,7 @@ "Profile sa trabaho" "May badge at nakikita ng iyong IT admin ang mga app para sa trabaho" "OK" - "Naka-off ang mga app para sa trabaho" + "Naka-pause ang mga app para sa trabaho" "Ang mga app mo para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng baterya mo, o makaka-access ng iyong lokasyon" "Naka-off ang mga app para sa trabaho. Ang mga app mo para sa trabaho ay hindi makakapagpadala sa iyo ng mga notification, makakagamit ng baterya mo, o makaka-access ng iyong lokasyon" "May badge at nakikita ng iyong IT admin ang mga app para sa trabaho" diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index c5980a9c87..a81a9cbc0a 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -46,8 +46,8 @@ "Widget\'lar" "Ara" "Arama kutusundaki metni temizle" - "Kullanılabilir widget yok" - "Arama sonucu yok" + "Widget\'lar ve kısayollar kullanılamıyor" + "Widget veya kısayol bulunamadı" "Kişisel" "İş" "Görüşmeler" @@ -64,7 +64,8 @@ "Bildirimler" "Kısayolu taşımak için dokunup basılı tutun." "Kısayolu taşımak veya özel işlemleri kullanmak için iki kez dokunup basılı tutun." - "Bu Ana ekranda yer kalmadı." + + "Favoriler tepsisinde başka yer kalmadı" "Uygulamalar listesi" "Kişisel uygulamalar listesi" @@ -82,10 +83,8 @@ "Ana ekran ayarlarını ve kısayollarını yaz" "Uygulamaya, Ana ekrandaki ayarları ve kısayolları değiştirme izni verir." "%1$s uygulamasının telefon etmesine izin verilmiyor" - - - - + "Widget yüklenemiyor" + "Kurulumu tamamlamak için dokunun" "Bu bir sistem uygulamasıdır ve yüklemesi kaldırılamaz." "Adı Düzenle" "%1$s devre dışı" @@ -160,7 +159,7 @@ "İş profili" "İş uygulamaları rozetle işaretlenmiş olup BT yöneticisi tarafından görülebilir" "Anladım" - "İş uygulamaları kapalı" + "İş uygulamaları duraklatıldı" "İş uygulamaları size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" "İş uygulamaları kapalı. İş uygulamalarınız size bildirim gönderemez, pilinizi kullanamaz veya konum bilginize erişemez" "İş uygulamaları rozetle işaretlenmiş olup BT yöneticisi tarafından görülebilir" diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index d7612dfc3c..b60b50fb9f 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -50,8 +50,8 @@ "Віджети" "Пошук" "Очистити текст у полі пошуку" - "Немає доступних віджетів" - "Нічого не знайдено" + "Віджети та ярлики недоступні" + "Не знайдено віджетів чи ярликів" "Особисті" "Робочі" "Розмови" @@ -68,7 +68,8 @@ "Сповіщення" "Натисніть і втримуйте, щоб перемістити ярлик." "Двічі натисніть і втримуйте ярлик, щоб перемістити його або виконати інші дії." - "На цьому головному екрані більше немає місця." + + "В області \"Вибране\" немає місця" "Список додатків" "Список особистих додатків" @@ -164,7 +165,7 @@ "Робочий профіль" "Робочі додатки відповідно позначені й видимі системному адміністратору" "OK" - "Робочі додатки вимкнено" + "Робочі додатки призупинено" "Ваші робочі додатки не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих" "Робочі додатки вимкнено. Вони не можуть надсилати сповіщення, використовувати заряд акумулятора й отримувати доступ до геоданих." "Робочі додатки відповідно позначені й видимі системному адміністратору" diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml index aba11d318a..7fe31a6663 100644 --- a/res/values-ur/strings.xml +++ b/res/values-ur/strings.xml @@ -46,8 +46,10 @@ "ویجیٹس" "تلاش کریں" "تلاش کے خانے سے ٹیکسٹ صاف کریں" - "کوئی ویجیٹ دستیاب نہیں ہے" - "تلاش کا کوئی نتیجہ نہیں ہے" + + + + "ذاتی" "دفتری ویجیٹس" "گفتگوئیں" @@ -64,7 +66,8 @@ "اطلاعات" "شارٹ کٹ منتقل کرنے کیلیے ٹچ کریں اور پکڑ کر رکھیں۔" "شارٹ کٹ کو منتقل کرنے یا حسب ضرورت کارروائیاں استعمال کرنے کے لیے دوبار تھپتھپائیں اور پکڑ کر رکھیں۔" - "اس ہوم اسکرین پر مزید کوئی گنجائش نہیں ہے۔" + + "پسندیدہ ٹرے میں مزید کوئی گنجائش نہیں ہے" "ایپس کی فہرست" "ذاتی ایپس کی فہرست" @@ -82,10 +85,8 @@ "ہوم ترتیبات اور شارٹ کٹس کو لکھیں" "ایپ کو ہوم میں ترتیبات اور شارٹ کٹس کو تبدیل کرنے کی اجازت دیتا ہے۔" "%1$s کو فون کالیں کرنے کی اجازت نہیں ہے" - - - - + "ویجیٹ لوڈ نہیں کیا جا سکتا" + "سیٹ اپ مکمل کرنے کے لیے تھپتھپائیں" "یہ ایک سسٹم ایپ ہے اور اسے اَن انسٹال نہیں کیا جا سکتا ہے۔" "نام میں ترمیم کریں" "%1$s غیر فعال ہے" @@ -160,7 +161,7 @@ "دفتری پروفائل" "‏ورک ایپس پر بَیج لگایا گیا ہے اور آپ کا IT منتظم اسے دیکھ سکتا ہے" "سمجھ آ گئی" - "ورک ایپس آف ہیں" + "ورک ایپس موقوف ہیں" "آپ کی ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری کا استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" "ورک ایپس آف ہیں۔ آپ کی ورک ایپس آپ کو اطلاعات نہیں بھیج سکتیں، آپ کی بیٹری استعمال یا آپ کے مقام تک رسائی حاصل نہیں کر سکتی ہیں" "‏ورک ایپس پر بَیج لگایا ہے اور آپ کا IT منتظم انہیں دیکھ سکتا ہے" diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 022e7487a0..635c83d243 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -46,8 +46,8 @@ "Vidjetlar" "Qidiruv" "Qidiruv maydoni matnini tozalash" - "Hech qanday vidjet mavjud emas" - "Hech narsa topilmadi" + "Vidjet va yorliqlar mavjud emas" + "Hech qanday vidjet yoki yorliq topilmadi" "Shaxsiy" "Ish" "Suhbatlar" @@ -64,7 +64,8 @@ "Bildirishnomalar" "Yorliqni bosib turgan holatda suring." "Ikki marta bosing va yorliqni bosib turgan holatda suring yoki maxsus amaldan foydalaning." - "Bosh ekranda joy qolmadi." + + "Ajratilganlarda birorta ham xona yo‘q" "Ilovalar ro‘yxati" "Shaxsiy ilovalar ro‘yxati" @@ -82,10 +83,8 @@ "Uy sozlamalari va yorliqlarini yozish" "Ilovaga \"Uy\" ekranidagi yorliqlar va sozlamalrni o‘zgartirish uchun ruxsat beradi." "%1$s ilovasiga qo‘ng‘iroqlarni amalga oshirishga ruxsat berilmagan" - - - - + "Vidjet yuklanmadi" + "Sozlashni yakunlash uchun bosing" "Bu tizim ilovasi, shuning uchun o‘chirib bo‘lmaydi." "Nomini tahrirlash" "%1$s ilovasi o‘chirib qo‘yildi" @@ -160,7 +159,7 @@ "Ish profili" "Ishga oid ilovalar qadalgan va IT administratoringizga koʻrinadi" "OK" - "Ishga oid ilovalar faolsizlantirilgan" + "Ishga oid ilovalar pauza qilingan" "Ishga oid ilovalar batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" "Ishga oid ilovalar faolsizlantirilgan. Ular batareya sarfi haqida bildirishnomalar yubora olmaydi va joylashuv axborotidan foydalana olmaydi" "Ishga oid ilovalar qadalgan va IT administratoringizga koʻrinadi" diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index c3e2363b5c..c3e6ffd5e4 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -46,8 +46,8 @@ "Tiện ích" "Tìm kiếm" "Xóa văn bản khỏi hộp tìm kiếm" - "Không có tiện ích nào" - "Không có kết quả tìm kiếm nào" + "Không có tiện ích và lối tắt nào" + "Không tìm thấy tiện ích hoặc lối tắt nào" "Cá nhân" "Công việc" "Cuộc trò chuyện" @@ -64,7 +64,8 @@ "Thông báo" "Chạm và giữ để di chuyển một lối tắt." "Nhấn đúp và giữ để di chuyển một lối tắt hoặc sử dụng các thao tác tùy chỉnh." - "Không còn chỗ trên Màn hình chính này." + + "Không còn chỗ trong khay Mục yêu thích" "Danh sách ứng dụng" "Danh sách ứng dụng cá nhân" @@ -82,10 +83,8 @@ "ghi cài đặt và lối tắt trên Màn hình chính" "Cho phép ứng dụng thay đổi cài đặt và lối tắt trên Màn hình chính." "%1$s không được phép thực hiện cuộc gọi điện thoại" - - - - + "Không thể tải tiện ích" + "Nhấn để hoàn tất quá trình thiết lập" "Đây là ứng dụng hệ thống và không thể gỡ cài đặt." "Chỉnh sửa tên" "Đã vô hiệu hóa %1$s" @@ -160,7 +159,7 @@ "Hồ sơ công việc" "Các ứng dụng công việc được gắn huy hiệu và quản trị viên CNTT sẽ nhìn thấy các ứng dụng này" "OK" - "Ứng dụng công việc đang tắt" + "Đã tạm dừng ứng dụng công việc" "Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" "Ứng dụng công việc đang tắt. Các ứng dụng công việc không thể gửi thông báo cho bạn, sử dụng pin hoặc truy cập thông tin vị trí của bạn" "Các ứng dụng công việc được gắn huy hiệu và quản trị viên CNTT sẽ nhìn thấy các ứng dụng này" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index b5f8e335b3..ac1955721b 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -46,8 +46,8 @@ "微件" "搜索" "清除搜索框中的文字" - "没有可用的微件" - "无搜索结果" + "无法使用微件和快捷方式" + "未找到任何微件或快捷方式" "个人" "工作" "对话" @@ -64,7 +64,8 @@ "通知" "轻触并按住快捷方式即可移动该快捷方式。" "点按两次并按住快捷方式即可移动该快捷方式或使用自定义操作。" - "此主屏幕上已没有空间。" + + "收藏栏已满" "应用列表" "个人应用列表" @@ -82,10 +83,8 @@ "写入主屏幕设置和快捷方式" "允许应用更改主屏幕中的设置和快捷方式。" "不允许使用“%1$s”拨打电话" - - - - + "无法加载微件" + "点按即可完成设置" "这是系统应用,无法卸载。" "修改名称" "已停用%1$s" @@ -160,7 +159,7 @@ "工作资料" "工作应用带有标志,您的 IT 管理员可以看到此类应用" "知道了" - "工作应用已关闭" + "工作应用已暂停" "工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" "工作应用已关闭。工作应用无法向您发送通知、不能耗用电池电量,也无法获取您的位置信息" "工作应用带有标志,您的 IT 管理员可以看到工作应用" diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index 0379e5b57b..b4287bb795 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -46,8 +46,8 @@ "小工具" "搜尋" "清除搜尋框中的文字" - "沒有可用的小工具" - "沒有相符的搜尋結果" + "無法使用小工具和捷徑" + "找不到小工具或捷徑" "個人" "工作" "對話" @@ -64,7 +64,8 @@ "通知" "輕觸並按住即可移動捷徑。" "㩒兩下之後㩒住,就可以郁捷徑或者用自訂操作。" - "主畫面已無空間。" + + "我的收藏寄存區沒有足夠空間" "應用程式清單" "個人應用程式清單" @@ -82,10 +83,8 @@ "寫入主畫面的設定和捷徑" "允許應用程式更改主畫面中的設定和捷徑。" "不允許 %1$s 撥打電話" - - - - + "無法載入小工具" + "輕按即可完成設定" "這是系統應用程式,無法將其解除安裝。" "編輯名稱" "「%1$s」已停用" @@ -160,7 +159,7 @@ "工作設定檔" "工作應用程式會加上標誌,且你的 IT 管理員可以看到這類應用程式" "知道了" - "工作應用程式已關閉" + "已暫停工作應用程式" "工作應用程式無法向您傳送通知、使用電池或存取位置" "工作應用程式已關閉。工作應用程式無法向您傳送通知、使用電池或存取位置" "IT 管理員可看到工作應用程式和相關標誌" diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 0f6ccd8a91..248a20c272 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -46,8 +46,8 @@ "小工具" "搜尋" "清除搜尋框中的文字" - "沒有可用的小工具" - "找不到相符的搜尋結果" + "無法使用小工具和捷徑" + "找不到小工具或捷徑" "個人" "工作" "對話" @@ -64,7 +64,8 @@ "通知" "按住即可移動捷徑。" "輕觸兩下並按住即可移動捷徑或使用自訂操作。" - "這個主畫面已無空間。" + + "「我的最愛」匣已無可用空間" "應用程式清單" "個人應用程式清單" @@ -82,10 +83,8 @@ "寫入主畫面設定和捷徑" "允許應用程式變更主畫面中的設定和捷徑。" "%1$s 無法撥打電話" - - - - + "無法載入小工具" + "輕觸即可完成設定" "這是系統應用程式,不可解除安裝。" "編輯名稱" "已停用 %1$s" @@ -160,7 +159,7 @@ "工作資料夾" "工作應用程式會加上標記,而且你的 IT 管理員可以看到這類應用程式" "我知道了" - "工作應用程式已關閉" + "系統已暫停工作應用程式" "工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊" "工作應用程式已關閉。工作應用程式不會消耗電量、無法傳送通知,也無法存取你的位置資訊" "你的 IT 管理員可以看見工作應用程式和相關標記" diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml index 5bf5104117..eccd5564ad 100644 --- a/res/values-zu/strings.xml +++ b/res/values-zu/strings.xml @@ -46,8 +46,8 @@ "Amawijethi" "Sesha" "Sula umbhalo ovela ebhokisini lokusesha" - "Awekho amawijethi atholakalayo" - "Ayikho imiphumela yosesho" + "Amawijethi nezinqamuleli akutholakali" + "Awekho amajiwethi noma izinqamuleli ezitholakele" "Okwabantu siqu" "Umsebenzi" "Izingxoxo" @@ -64,7 +64,8 @@ "Izaziso" "Thinta uphinde ubambe ukuze uhambise isinqamuleli." "Thepha kabili uphinde ubambe ukuze uhambise isinqamuleli noma usebenzise izenzo ezingokwezifiso." - "Asisekho isikhala kulesi sikrini Sasekhaya." + + "Asisekho isikhala kwitreyi lezintandokazi" "Uhlu lwezinhlelo zokusebenza" "Uhlu lwezinhlelo zokusebenza zomuntu siqu" @@ -82,10 +83,8 @@ "bhala izilungiselelo zokuthi Ikhaya nezinqamuleli" "Ivumela uhlelo lokusebenza ukuthi lushintshe izilungiselelo nezinqamuleli Ekhaya." "%1$s ayivunyelwe ukwenza amakholi wefoni" - - - - + "Ayikwazi ukulayisha iwijethi" + "Thepha ukuze uqede ukusetha" "Lolu uhlelo lokusebenza lwesistimu futhi alikwazi ukukhishwa." "Hlela igama" "Kukhutshaziwe %1$s" @@ -160,7 +159,7 @@ "Iphrofayela yomsebenzi" "Ama-app omsebenzi anebheji futhi ayabonakala kumphathi wakho we-IT" "Ngiyezwa" - "Ama-app omsebenzi avaliwe" + "Izinhlelo zokusebenza zomsebenzi ziphunyuziwe" "Ama-app akho omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" "Ama-app omsebenzi avaliwe. Ama-app akho omsebenzi awakwazi ukukuthumela izaziso, ukusebenzisa ibhethri lakho, noma ukufinyelela indawo yakho" "Ama-app omsebenzi anebheji futhi ayabonakala kumphathi wakho we-IT" From 3cbd7e3c333c44c18cd732fe142dd6ed4feb19f3 Mon Sep 17 00:00:00 2001 From: Yogisha Dixit Date: Sat, 29 May 2021 00:26:25 +0100 Subject: [PATCH 070/889] Update widget manipulation colors. Spec: * Resize frame: https://docs.google.com/presentation/d/1UxdDh8EFhPbdRWRwzjbpgL-j02ew4Ew3eG3XBCeoYdo/edit#slide=id.OeO4S0j * Drop target bar: https://docs.google.com/presentation/d/1UxdDh8EFhPbdRWRwzjbpgL-j02ew4Ew3eG3XBCeoYdo/edit#slide=id.vXfwHn8 Test: manual Bug: 187910396 Change-Id: I6fd433796970c428841ee96e45ee4fca1ded3665 --- res/color/drop_target_text.xml | 19 ++++++++++++ res/drawable/drop_target_frame.xml | 2 +- res/drawable/drop_target_frame_hover.xml | 2 +- res/drawable/widget_resize_frame.xml | 2 +- res/layout/app_widget_resize_frame.xml | 8 ++--- res/values-v31/colors.xml | 2 ++ res/values/attrs.xml | 3 +- res/values/colors.xml | 3 ++ res/values/styles.xml | 7 +++-- .../android/launcher3/ButtonDropTarget.java | 29 +------------------ src/com/android/launcher3/CellLayout.java | 2 +- 11 files changed, 40 insertions(+), 39 deletions(-) create mode 100644 res/color/drop_target_text.xml diff --git a/res/color/drop_target_text.xml b/res/color/drop_target_text.xml new file mode 100644 index 0000000000..18d78e7b50 --- /dev/null +++ b/res/color/drop_target_text.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/res/drawable/drop_target_frame.xml b/res/drawable/drop_target_frame.xml index fa6dafd4fc..666a96e940 100644 --- a/res/drawable/drop_target_frame.xml +++ b/res/drawable/drop_target_frame.xml @@ -18,5 +18,5 @@ android:shape="rectangle"> - + \ No newline at end of file diff --git a/res/drawable/drop_target_frame_hover.xml b/res/drawable/drop_target_frame_hover.xml index 7d0e919331..ddf3a4d799 100644 --- a/res/drawable/drop_target_frame_hover.xml +++ b/res/drawable/drop_target_frame_hover.xml @@ -16,6 +16,6 @@ --> - + \ No newline at end of file diff --git a/res/drawable/widget_resize_frame.xml b/res/drawable/widget_resize_frame.xml index d157f5da40..9426de4788 100644 --- a/res/drawable/widget_resize_frame.xml +++ b/res/drawable/widget_resize_frame.xml @@ -18,5 +18,5 @@ android:shape="rectangle"> - + \ No newline at end of file diff --git a/res/layout/app_widget_resize_frame.xml b/res/layout/app_widget_resize_frame.xml index 249e42ce86..ff07a91566 100644 --- a/res/layout/app_widget_resize_frame.xml +++ b/res/layout/app_widget_resize_frame.xml @@ -41,7 +41,7 @@ android:layout_gravity="left|center_vertical" android:layout_marginLeft="@dimen/widget_handle_margin" android:src="@drawable/ic_widget_resize_handle" - android:tint="?android:attr/colorAccent" /> + android:tint="?attr/workspaceAccentColor" /> + android:tint="?attr/workspaceAccentColor" /> + android:tint="?attr/workspaceAccentColor" /> + android:tint="?attr/workspaceAccentColor" /> @android:color/system_accent1_600 @android:color/system_neutral2_600 + @android:color/system_accent2_700 + @android:color/system_accent1_50 diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 1fadc881c2..ed1db30155 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -46,7 +46,8 @@ - + + diff --git a/res/values/colors.xml b/res/values/colors.xml index 01f5364459..76e821d72a 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -73,4 +73,7 @@ ?android:attr/colorAccent #0D878787 + + #ff254e47 + #ff9cfff2 diff --git a/res/values/styles.xml b/res/values/styles.xml index 32df25a9e5..1536ec1bf8 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -57,7 +57,8 @@ #FF212121 ?android:attr/colorAccent .54 - ?android:attr/colorAccent + @color/workspace_accent_color_light + @color/workspace_text_color_light @color/overview_scrim false @@ -71,6 +72,8 @@ @@ -250,7 +253,7 @@ + + diff --git a/src/com/android/launcher3/views/AllAppsButton.java b/src/com/android/launcher3/views/AllAppsButton.java index f502d46db7..b1e69c7de4 100644 --- a/src/com/android/launcher3/views/AllAppsButton.java +++ b/src/com/android/launcher3/views/AllAppsButton.java @@ -18,6 +18,7 @@ package com.android.launcher3.views; import android.content.Context; import android.graphics.Bitmap; import android.util.AttributeSet; +import android.view.ContextThemeWrapper; import com.android.launcher3.BubbleTextView; import com.android.launcher3.LauncherAppState; @@ -40,8 +41,9 @@ public class AllAppsButton extends BubbleTextView { public AllAppsButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); + Context theme = new ContextThemeWrapper(context, R.style.AllAppsButtonTheme); Bitmap bitmap = LauncherAppState.getInstance(context).getIconCache().getIconFactory() - .createScaledBitmapWithShadow(context.getDrawable(R.drawable.ic_all_apps_button)); + .createScaledBitmapWithShadow(theme.getDrawable(R.drawable.ic_all_apps_button)); setIcon(new FastBitmapDrawable(bitmap)); } } From d4c4ad921268501570b77f0db62607962dd80b3b Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Wed, 23 Feb 2022 12:18:48 -0800 Subject: [PATCH 365/889] Removing some unnecessary layout calls in TaskView Bug: 221095750 Test: Presubmit Change-Id: I277c1350109ce3bd0b29502c588482c737ab1e3d --- .../com/android/quickstep/views/TaskView.java | 26 +++++++++---------- .../touch/LandscapePagedViewHandler.java | 20 +++----------- .../touch/PagedOrientationHandler.java | 14 ++-------- .../touch/PortraitPagedViewHandler.java | 24 ++--------------- .../touch/SeascapePagedViewHandler.java | 9 +++---- 5 files changed, 23 insertions(+), 70 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index f716965fa1..984b0efb55 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -912,31 +912,31 @@ public class TaskView extends FrameLayout implements Reusable { public void setOrientationState(RecentsOrientedState orientationState) { PagedOrientationHandler orientationHandler = orientationState.getOrientationHandler(); boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; - LayoutParams snapshotParams = (LayoutParams) mSnapshotView.getLayoutParams(); DeviceProfile deviceProfile = mActivity.getDeviceProfile(); - snapshotParams.topMargin = deviceProfile.overviewTaskThumbnailTopMarginPx; + boolean isGridTask = isGridTask(); + LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams(); + + int thumbnailTopMargin = deviceProfile.overviewTaskThumbnailTopMarginPx; int taskIconHeight = deviceProfile.overviewTaskIconSizePx; int taskMargin = isGridTask ? deviceProfile.overviewTaskMarginGridPx : deviceProfile.overviewTaskMarginPx; - int taskIconMargin = snapshotParams.topMargin - taskIconHeight - taskMargin; - LayoutParams iconParams = (LayoutParams) mIconView.getLayoutParams(); - orientationHandler.setIconAndSnapshotParams(mIconView, taskIconMargin, taskIconHeight, - snapshotParams, isRtl); - updateDwbPlacement(); - mSnapshotView.setLayoutParams(snapshotParams); + int taskIconMargin = thumbnailTopMargin - taskIconHeight - taskMargin; + orientationHandler.setTaskIconParams(iconParams, taskIconMargin, taskIconHeight, + thumbnailTopMargin, isRtl); iconParams.width = iconParams.height = taskIconHeight; mIconView.setLayoutParams(iconParams); + mIconView.setRotation(orientationHandler.getDegreesRotated()); int iconDrawableSize = isGridTask ? deviceProfile.overviewTaskIconDrawableSizeGridPx : deviceProfile.overviewTaskIconDrawableSizePx; mIconView.setDrawableSize(iconDrawableSize, iconDrawableSize); - snapshotParams.topMargin = deviceProfile.overviewTaskThumbnailTopMarginPx; - mSnapshotView.setLayoutParams(snapshotParams); - mSnapshotView.getTaskOverlay().updateOrientationState(orientationState); - } - private void updateDwbPlacement() { + LayoutParams snapshotParams = (LayoutParams) mSnapshotView.getLayoutParams(); + snapshotParams.topMargin = thumbnailTopMargin; + mSnapshotView.setLayoutParams(snapshotParams); + + mSnapshotView.getTaskOverlay().updateOrientationState(orientationState); mDigitalWellBeingToast.initialize(mTask); } diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java index 4a55d2e5b1..2609e549a5 100644 --- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java @@ -177,18 +177,6 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { return VIEW_TRANSLATE_X; } - @Override - public int getSplitTaskViewDismissDirection(@StagePosition int stagePosition, - DeviceProfile dp) { - // Don't use device profile here because we know we're in fake landscape, only split option - // available is top/left - if (stagePosition == STAGE_POSITION_TOP_OR_LEFT) { - // Top (visually left) side - return SPLIT_TRANSLATE_PRIMARY_NEGATIVE; - } - throw new IllegalStateException("Invalid split stage position: " + stagePosition); - } - @Override public int getPrimaryScroll(View view) { return view.getScrollY(); @@ -469,14 +457,12 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { } @Override - public void setIconAndSnapshotParams(View iconView, int taskIconMargin, int taskIconHeight, - FrameLayout.LayoutParams snapshotParams, boolean isRtl) { - FrameLayout.LayoutParams iconParams = - (FrameLayout.LayoutParams) iconView.getLayoutParams(); + public void setTaskIconParams(FrameLayout.LayoutParams iconParams, int taskIconMargin, + int taskIconHeight, int thumbnailTopMargin, boolean isRtl) { iconParams.gravity = (isRtl ? START : END) | CENTER_VERTICAL; iconParams.rightMargin = -taskIconHeight - taskIconMargin / 2; iconParams.leftMargin = 0; - iconParams.topMargin = snapshotParams.topMargin / 2; + iconParams.topMargin = thumbnailTopMargin / 2; } @Override diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java index 923dcc6d01..6e594e9cc6 100644 --- a/src/com/android/launcher3/touch/PagedOrientationHandler.java +++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java @@ -47,10 +47,6 @@ import java.util.List; */ public interface PagedOrientationHandler { - int SPLIT_TRANSLATE_PRIMARY_POSITIVE = 0; - int SPLIT_TRANSLATE_PRIMARY_NEGATIVE = 1; - int SPLIT_TRANSLATE_SECONDARY_NEGATIVE = 2; - PagedOrientationHandler PORTRAIT = new PortraitPagedViewHandler(); PagedOrientationHandler LANDSCAPE = new LandscapePagedViewHandler(); PagedOrientationHandler SEASCAPE = new SeascapePagedViewHandler(); @@ -82,12 +78,6 @@ public interface PagedOrientationHandler { FloatProperty getPrimaryViewTranslate(); FloatProperty getSecondaryViewTranslate(); - /** - * @param stagePosition The position where the view to be split will go - * @return {@link #SPLIT_TRANSLATE_*} constants to indicate which direction the - * dismissal should happen - */ - int getSplitTaskViewDismissDirection(@StagePosition int stagePosition, DeviceProfile dp); int getPrimaryScroll(View view); float getPrimaryScale(View view); int getChildStart(View view); @@ -152,8 +142,8 @@ public interface PagedOrientationHandler { StagedSplitBounds splitBoundsConfig, DeviceProfile dp); // Overview TaskMenuView methods - void setIconAndSnapshotParams(View iconView, int taskIconMargin, int taskIconHeight, - FrameLayout.LayoutParams snapshotParams, boolean isRtl); + void setTaskIconParams(FrameLayout.LayoutParams iconParams, + int taskIconMargin, int taskIconHeight, int thumbnailTopMargin, boolean isRtl); void setSplitIconParams(View primaryIconView, View secondaryIconView, int taskIconHeight, int primarySnapshotWidth, int primarySnapshotHeight, boolean isRtl, DeviceProfile deviceProfile, StagedSplitBounds splitConfig); diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java index 0d92e2542a..2c9afd6506 100644 --- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java +++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java @@ -179,24 +179,6 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { return VIEW_TRANSLATE_Y; } - @Override - public int getSplitTaskViewDismissDirection(@StagePosition int stagePosition, - DeviceProfile dp) { - if (stagePosition == STAGE_POSITION_TOP_OR_LEFT) { - if (dp.isLandscape) { - // Left side - return SPLIT_TRANSLATE_PRIMARY_NEGATIVE; - } else { - // Top side - return SPLIT_TRANSLATE_SECONDARY_NEGATIVE; - } - } else if (stagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT) { - // We don't have a bottom option, so should be right - return SPLIT_TRANSLATE_PRIMARY_POSITIVE; - } - throw new IllegalStateException("Invalid split stage position: " + stagePosition); - } - @Override public int getPrimaryScroll(View view) { return view.getScrollX(); @@ -567,10 +549,8 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { } @Override - public void setIconAndSnapshotParams(View iconView, int taskIconMargin, int taskIconHeight, - FrameLayout.LayoutParams snapshotParams, boolean isRtl) { - FrameLayout.LayoutParams iconParams = - (FrameLayout.LayoutParams) iconView.getLayoutParams(); + public void setTaskIconParams(FrameLayout.LayoutParams iconParams, int taskIconMargin, + int taskIconHeight, int thumbnailTopMargin, boolean isRtl) { iconParams.gravity = TOP | CENTER_HORIZONTAL; iconParams.leftMargin = iconParams.rightMargin = 0; iconParams.topMargin = taskIconMargin; diff --git a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java index 69e19f4e6c..9151796fc5 100644 --- a/src/com/android/launcher3/touch/SeascapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/SeascapePagedViewHandler.java @@ -23,7 +23,6 @@ import static android.view.Gravity.START; import static com.android.launcher3.touch.SingleAxisSwipeDetector.HORIZONTAL; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT; -import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_MAIN; import android.content.res.Resources; @@ -168,14 +167,12 @@ public class SeascapePagedViewHandler extends LandscapePagedViewHandler { } @Override - public void setIconAndSnapshotParams(View mIconView, int taskIconMargin, int taskIconHeight, - FrameLayout.LayoutParams snapshotParams, boolean isRtl) { - FrameLayout.LayoutParams iconParams = - (FrameLayout.LayoutParams) mIconView.getLayoutParams(); + public void setTaskIconParams(FrameLayout.LayoutParams iconParams, + int taskIconMargin, int taskIconHeight, int thumbnailTopMargin, boolean isRtl) { iconParams.gravity = (isRtl ? END : START) | CENTER_VERTICAL; iconParams.leftMargin = -taskIconHeight - taskIconMargin / 2; iconParams.rightMargin = 0; - iconParams.topMargin = snapshotParams.topMargin / 2; + iconParams.topMargin = thumbnailTopMargin / 2; } @Override From d2ec834fac0b9a08ddf08fad188206a47b123c5a Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Wed, 23 Feb 2022 13:32:49 -0800 Subject: [PATCH 366/889] Removing unnecessary AM.getTasks() call on every touch Bug: 220906427 Test: Verified on device Change-Id: I58ed22c4d6069f10198ec30ec02fa8c2f7c55cbe --- .../RecentsAnimationDeviceState.java | 6 +-- .../quickstep/TouchInteractionService.java | 40 ++++++++----------- 2 files changed, 19 insertions(+), 27 deletions(-) diff --git a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java index f48a26247b..ad57683cf9 100644 --- a/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java +++ b/quickstep/src/com/android/quickstep/RecentsAnimationDeviceState.java @@ -550,15 +550,13 @@ public class RecentsAnimationDeviceState implements /** * @param ev An ACTION_DOWN motion event - * @param task Info for the currently running task * @return whether the given motion event can trigger the assistant over the current task. */ - public boolean canTriggerAssistantAction(MotionEvent ev, ActivityManager.RunningTaskInfo task) { + public boolean canTriggerAssistantAction(MotionEvent ev) { return mAssistantAvailable && !QuickStepContract.isAssistantGestureDisabled(mSystemUiStateFlags) && mRotationTouchHelper.touchInAssistantRegion(ev) - && !isLockToAppActive() - && !isGestureBlockedActivity(task); + && !isLockToAppActive(); } /** diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 9627147314..2ed75b5c98 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -37,7 +37,6 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_N import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_TRACING_ENABLED; import android.annotation.TargetApi; -import android.app.ActivityManager; import android.app.PendingIntent; import android.app.RemoteAction; import android.app.Service; @@ -575,26 +574,14 @@ public class TouchInteractionService extends Service ActiveGestureLog.INSTANCE.addLog("setInputConsumer: " + mConsumer.getName()); mUncheckedConsumer = mConsumer; - } else if (mDeviceState.isUserUnlocked() && mDeviceState.isFullyGesturalNavMode()) { + } else if (mDeviceState.isUserUnlocked() && mDeviceState.isFullyGesturalNavMode() + && mDeviceState.canTriggerAssistantAction(event)) { mGestureState = createGestureState(mGestureState); - ActivityManager.RunningTaskInfo runningTask = mGestureState.getRunningTask(); - if (mDeviceState.canTriggerAssistantAction(event, runningTask)) { - // Do not change mConsumer as if there is an ongoing QuickSwitch gesture, we - // should not interrupt it. QuickSwitch assumes that interruption can only - // happen if the next gesture is also quick switch. - mUncheckedConsumer = new AssistantInputConsumer( - this, - mGestureState, - InputConsumer.NO_OP, mInputMonitorCompat, - mDeviceState, - event); - } else if (mDeviceState.canTriggerOneHandedAction(event)) { - // Consume gesture event for triggering one handed feature. - mUncheckedConsumer = new OneHandedModeInputConsumer(this, mDeviceState, - InputConsumer.NO_OP, mInputMonitorCompat); - } else { - mUncheckedConsumer = InputConsumer.NO_OP; - } + // Do not change mConsumer as if there is an ongoing QuickSwitch gesture, we + // should not interrupt it. QuickSwitch assumes that interruption can only + // happen if the next gesture is also quick switch. + mUncheckedConsumer = tryCreateAssistantInputConsumer( + InputConsumer.NO_OP, mGestureState, event); } else if (mDeviceState.canTriggerOneHandedAction(event)) { // Consume gesture event for triggering one handed feature. mUncheckedConsumer = new OneHandedModeInputConsumer(this, mDeviceState, @@ -641,6 +628,14 @@ public class TouchInteractionService extends Service ProtoTracer.INSTANCE.get(this).scheduleFrameUpdate(); } + private InputConsumer tryCreateAssistantInputConsumer(InputConsumer base, + GestureState gestureState, MotionEvent motionEvent) { + return mDeviceState.isGestureBlockedActivity(gestureState.getRunningTask()) + ? base + : new AssistantInputConsumer(this, gestureState, base, mInputMonitorCompat, + mDeviceState, motionEvent); + } + public GestureState createGestureState(GestureState previousGestureState) { GestureState gestureState = new GestureState(mOverviewComponentObserver, ActiveGestureLog.INSTANCE.generateAndSetLogId()); @@ -686,9 +681,8 @@ public class TouchInteractionService extends Service handleOrientationSetup(base); } if (mDeviceState.isFullyGesturalNavMode()) { - if (mDeviceState.canTriggerAssistantAction(event, newGestureState.getRunningTask())) { - base = new AssistantInputConsumer(this, newGestureState, base, mInputMonitorCompat, - mDeviceState, event); + if (mDeviceState.canTriggerAssistantAction(event)) { + base = tryCreateAssistantInputConsumer(base, newGestureState, event); } // If Taskbar is present, we listen for long press to unstash it. From 4fda59a0cc9ffc7aa3c4436a2a4ae304fc2ea0ae Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Wed, 23 Feb 2022 21:40:12 +0000 Subject: [PATCH 367/889] No longer stash taskbar when swiping up all apps Instead, scale down hotseat behind all apps alongside workspace. Test: Swipe up to all apps from home; all apps button in an app works as before Fixes: 221094533 Change-Id: Ia6f1e7bac86849018dc8d0b1d95f0bab963835a8 --- .../android/launcher3/uioverrides/states/AllAppsState.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java b/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java index fec591b653..4583fc3f5e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java @@ -66,11 +66,6 @@ public class AllAppsState extends LauncherState { return scaleAndTranslation; } - @Override - public boolean isTaskbarStashed(Launcher launcher) { - return true; - } - @Override protected float getDepthUnchecked(Context context) { // The scrim fades in at approximately 50% of the swipe gesture. @@ -93,7 +88,7 @@ public class AllAppsState extends LauncherState { @Override public int getVisibleElements(Launcher launcher) { - return ALL_APPS_CONTENT; + return ALL_APPS_CONTENT | HOTSEAT_ICONS; } @Override From 2dacbee028bf8d236bfb23d49b4ffe2a8f50aee4 Mon Sep 17 00:00:00 2001 From: Andras Kloczl Date: Mon, 21 Feb 2022 16:53:28 +0000 Subject: [PATCH 368/889] Fix incorrect accessibility announcement on two panel home - Divide total pages by panelCount if two panel is active - Increment target column when moving an item to right panel Test: manual Bug: 200009004 Change-Id: Ia8d2d760dc5e8b413e5b1150c049f7fa3ec26513 --- src/com/android/launcher3/CellLayout.java | 23 +++++++++++++++++------ src/com/android/launcher3/Workspace.java | 5 ++++- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 11f58e7d87..ad4cae4440 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -1169,9 +1169,7 @@ public class CellLayout extends ViewGroup { // Apply local extracted color if the DragView is an AppWidgetHostViewDrawable. View view = dragObject.dragView.getContentView(); if (view instanceof LauncherAppWidgetHostView) { - Launcher launcher = Launcher.getLauncher(getContext()); - Workspace workspace = launcher.getWorkspace(); - int screenId = workspace.getIdForScreen(this); + int screenId = getWorkspace().getIdForScreen(this); cellToRect(targetCell[0], targetCell[1], spanX, spanY, mTempRect); ((LauncherAppWidgetHostView) view).handleDrag(mTempRect, this, screenId); @@ -1184,11 +1182,24 @@ public class CellLayout extends ViewGroup { return getContext().getString(R.string.move_to_hotseat_position, Math.max(cellX, cellY) + 1); } else { - return getContext().getString(R.string.move_to_empty_cell, - cellY + 1, cellX + 1); + Workspace workspace = getWorkspace(); + int row = cellY + 1; + int col = workspace.mIsRtl ? mCountX - cellX : cellX + 1; + int panelCount = workspace.getPanelCount(); + if (panelCount > 1) { + // Increment the column if the target is on the right side of a two panel home + int screenId = workspace.getIdForScreen(this); + int pageIndex = workspace.getPageIndexForScreenId(screenId); + col += (pageIndex % panelCount) * mCountX; + } + return getContext().getString(R.string.move_to_empty_cell, row, col); } } + private Workspace getWorkspace() { + return Launcher.cast(mActivity).getWorkspace(); + } + public void clearDragOutlines() { final int oldIndex = mDragOutlineCurrent; mDragOutlineAnims[oldIndex].animateOut(); @@ -2243,7 +2254,7 @@ public class CellLayout extends ViewGroup { private void commitTempPlacement(View dragView) { mTmpOccupied.copyTo(mOccupied); - int screenId = Launcher.cast(mActivity).getWorkspace().getIdForScreen(this); + int screenId = getWorkspace().getIdForScreen(this); int container = Favorites.CONTAINER_DESKTOP; if (mContainerType == HOTSEAT) { diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 16fecde6fd..b3f5c0334f 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -3398,7 +3398,10 @@ public class Workspace extends PagedView // When the workspace is not loaded, we do not know how many screen will be bound. return getContext().getString(R.string.home_screen); } - return getContext().getString(R.string.workspace_scroll_format, page + 1, nScreens); + int panelCount = getPanelCount(); + int currentPage = (page / panelCount) + 1; + int totalPages = nScreens / panelCount + nScreens % panelCount; + return getContext().getString(R.string.workspace_scroll_format, currentPage, totalPages); } /** From 5a0a17f1195a854199ae27032d191cb0f10a5263 Mon Sep 17 00:00:00 2001 From: Nicolo' Mazzucato Date: Thu, 24 Feb 2022 17:53:40 +0100 Subject: [PATCH 369/889] Fix scaling of workspace and hotseat with wrong pivots Bug: 219962098 Test: Unfolded device Change-Id: I7dd9f0579ea737cd67792e612657a043411ac70e --- .../quickstep/util/LauncherUnfoldAnimationController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java index 3b5804634a..1ef00421fc 100644 --- a/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java +++ b/quickstep/src/com/android/quickstep/util/LauncherUnfoldAnimationController.java @@ -137,6 +137,7 @@ public class LauncherUnfoldAnimationController { @Override public void onTransitionStarted() { + mLauncher.getWorkspace().setPivotToScaleWithSelf(mLauncher.getHotseat()); } @Override From 871759483b8e134c6d88db3fa61cf2f6c2043a01 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Wed, 16 Feb 2022 06:43:55 +0000 Subject: [PATCH 370/889] 1b/ Replace removed shared lib calls with direct calls Bug: 219861883 Test: Builds Change-Id: I7831d0de14286c9fa39fed59b168535e0a70d94d --- .../statehandlers/DepthController.java | 6 +++--- .../taskbar/TaskbarDragController.java | 18 ++++++++---------- ...skbarShortcutMenuAccessibilityDelegate.java | 4 +--- .../quickstep/QuickstepProcessInitializer.java | 6 +++--- .../com/android/quickstep/TaskIconCache.java | 12 ++++++++++-- .../android/quickstep/TaskShortcutFactory.java | 3 +-- .../src/com/android/quickstep/ViewUtils.java | 2 -- 7 files changed, 26 insertions(+), 25 deletions(-) diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java index d54b9e774b..3b02599ada 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java +++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java @@ -23,6 +23,7 @@ import static com.android.launcher3.states.StateAnimationConfig.SKIP_DEPTH_CONTR import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; +import android.app.WallpaperManager; import android.os.IBinder; import android.os.SystemProperties; import android.util.FloatProperty; @@ -42,7 +43,6 @@ import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.statemanager.StateManager.StateHandler; import com.android.launcher3.states.StateAnimationConfig; import com.android.systemui.shared.system.BlurUtils; -import com.android.systemui.shared.system.WallpaperManagerCompat; import java.io.PrintWriter; import java.util.function.Consumer; @@ -127,7 +127,7 @@ public class DepthController implements StateHandler, */ private int mMaxBlurRadius; private boolean mCrossWindowBlursEnabled; - private WallpaperManagerCompat mWallpaperManager; + private WallpaperManager mWallpaperManager; private SurfaceControl mSurface; /** * How visible the -1 overlay is, from 0 to 1. @@ -168,7 +168,7 @@ public class DepthController implements StateHandler, private void ensureDependencies() { if (mWallpaperManager == null) { mMaxBlurRadius = mLauncher.getResources().getInteger(R.integer.max_depth_blur_radius); - mWallpaperManager = new WallpaperManagerCompat(mLauncher); + mWallpaperManager = mLauncher.getSystemService(WallpaperManager.class); } if (mLauncher.getRootView() != null && mOnAttachListener == null) { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java index c9f7f7e528..12b11959e8 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java @@ -66,8 +66,6 @@ import com.android.launcher3.shortcuts.DeepShortcutView; import com.android.launcher3.shortcuts.ShortcutDragPreviewProvider; import com.android.launcher3.util.LauncherBindableItemsContainer; import com.android.systemui.shared.recents.model.Task; -import com.android.systemui.shared.system.ClipDescriptionCompat; -import com.android.systemui.shared.system.LauncherAppsCompat; import java.io.PrintWriter; import java.util.Arrays; @@ -314,13 +312,13 @@ public class TaskbarDragController extends DragController im clipDescription = new ClipDescription(item.title, new String[] { item.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT - ? ClipDescriptionCompat.MIMETYPE_APPLICATION_SHORTCUT - : ClipDescriptionCompat.MIMETYPE_APPLICATION_ACTIVITY + ? ClipDescription.MIMETYPE_APPLICATION_SHORTCUT + : ClipDescription.MIMETYPE_APPLICATION_ACTIVITY }); intent = new Intent(); if (item.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT) { String deepShortcutId = ((WorkspaceItemInfo) item).getDeepShortcutId(); - intent.putExtra(ClipDescriptionCompat.EXTRA_PENDING_INTENT, + intent.putExtra(ClipDescription.EXTRA_PENDING_INTENT, launcherApps.getShortcutIntent( item.getIntent().getPackage(), deepShortcutId, @@ -329,19 +327,19 @@ public class TaskbarDragController extends DragController im intent.putExtra(Intent.EXTRA_PACKAGE_NAME, item.getIntent().getPackage()); intent.putExtra(Intent.EXTRA_SHORTCUT_ID, deepShortcutId); } else { - intent.putExtra(ClipDescriptionCompat.EXTRA_PENDING_INTENT, - LauncherAppsCompat.getMainActivityLaunchIntent(launcherApps, - item.getIntent().getComponent(), null, item.user)); + intent.putExtra(ClipDescription.EXTRA_PENDING_INTENT, + launcherApps.getMainActivityLaunchIntent(item.getIntent().getComponent(), + null, item.user)); } intent.putExtra(Intent.EXTRA_USER, item.user); } else if (tag instanceof Task) { Task task = (Task) tag; clipDescription = new ClipDescription(task.titleDescription, new String[] { - ClipDescriptionCompat.MIMETYPE_APPLICATION_TASK + ClipDescription.MIMETYPE_APPLICATION_TASK }); intent = new Intent(); - intent.putExtra(ClipDescriptionCompat.EXTRA_TASK_ID, task.key.id); + intent.putExtra(Intent.EXTRA_TASK_ID, task.key.id); intent.putExtra(Intent.EXTRA_USER, UserHandle.of(task.key.userId)); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarShortcutMenuAccessibilityDelegate.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarShortcutMenuAccessibilityDelegate.java index 158958217f..f131595126 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarShortcutMenuAccessibilityDelegate.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarShortcutMenuAccessibilityDelegate.java @@ -35,7 +35,6 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.notification.NotificationListener; import com.android.launcher3.util.ShortcutUtil; import com.android.quickstep.SystemUiProxy; -import com.android.systemui.shared.system.LauncherAppsCompat; import java.util.List; @@ -94,8 +93,7 @@ public class TaskbarShortcutMenuAccessibilityDelegate info.user); } else { SystemUiProxy.INSTANCE.get(mContext).startIntent( - LauncherAppsCompat.getMainActivityLaunchIntent( - mLauncherApps, + mLauncherApps.getMainActivityLaunchIntent( item.getIntent().getComponent(), /* startActivityOptions= */null, item.user), diff --git a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java index 678372cf24..55210200e0 100644 --- a/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java +++ b/quickstep/src/com/android/quickstep/QuickstepProcessInitializer.java @@ -23,11 +23,11 @@ import android.os.Build; import android.os.RemoteException; import android.os.UserManager; import android.util.Log; +import android.view.ThreadedRenderer; import com.android.launcher3.BuildConfig; import com.android.launcher3.MainProcessInitializer; import com.android.systemui.shared.system.InteractionJankMonitorWrapper; -import com.android.systemui.shared.system.ThreadedRendererCompat; @SuppressWarnings("unused") @TargetApi(Build.VERSION_CODES.R) @@ -60,8 +60,8 @@ public class QuickstepProcessInitializer extends MainProcessInitializer { super.init(context); // Elevate GPU priority for Quickstep and Remote animations. - ThreadedRendererCompat.setContextPriority( - ThreadedRendererCompat.EGL_CONTEXT_PRIORITY_HIGH_IMG); + ThreadedRenderer.setContextPriority( + ThreadedRenderer.EGL_CONTEXT_PRIORITY_HIGH_IMG); // Enable binder tracing on system server for calls originating from Launcher try { diff --git a/quickstep/src/com/android/quickstep/TaskIconCache.java b/quickstep/src/com/android/quickstep/TaskIconCache.java index 6c71da9a0e..300f085b2a 100644 --- a/quickstep/src/com/android/quickstep/TaskIconCache.java +++ b/quickstep/src/com/android/quickstep/TaskIconCache.java @@ -18,6 +18,7 @@ package com.android.quickstep; import static com.android.launcher3.uioverrides.QuickstepLauncher.GO_LOW_RAM_RECENTS_ENABLED; import static com.android.launcher3.util.DisplayController.CHANGE_DENSITY; +import android.app.ActivityManager; import android.app.ActivityManager.TaskDescription; import android.content.Context; import android.content.pm.ActivityInfo; @@ -48,7 +49,6 @@ import com.android.quickstep.util.TaskKeyLruCache; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.recents.model.Task.TaskKey; import com.android.systemui.shared.system.PackageManagerWrapper; -import com.android.systemui.shared.system.TaskDescriptionCompat; import java.util.concurrent.Executor; import java.util.function.Consumer; @@ -154,7 +154,7 @@ public class TaskIconCache implements DisplayInfoChangeListener { // Load icon // TODO: Load icon resource (b/143363444) - Bitmap icon = TaskDescriptionCompat.getIcon(desc, key.userId); + Bitmap icon = getIcon(desc, key.userId); if (icon != null) { entry.icon = getBitmapInfo( new BitmapDrawable(mContext.getResources(), icon), @@ -193,6 +193,14 @@ public class TaskIconCache implements DisplayInfoChangeListener { return entry; } + private Bitmap getIcon(ActivityManager.TaskDescription desc, int userId) { + if (desc.getInMemoryIcon() != null) { + return desc.getInMemoryIcon(); + } + return ActivityManager.TaskDescription.loadTaskDescriptionIcon( + desc.getIconFilename(), userId); + } + private String getBadgedContentDescription(ActivityInfo info, int userId, TaskDescription td) { PackageManager pm = mContext.getPackageManager(); String taskLabel = td == null ? null : Utilities.trim(td.getLabel()); diff --git a/quickstep/src/com/android/quickstep/TaskShortcutFactory.java b/quickstep/src/com/android/quickstep/TaskShortcutFactory.java index ecb30e52f1..e731b79a80 100644 --- a/quickstep/src/com/android/quickstep/TaskShortcutFactory.java +++ b/quickstep/src/com/android/quickstep/TaskShortcutFactory.java @@ -258,9 +258,8 @@ public interface TaskShortcutFactory { @Override protected ActivityOptions makeLaunchOptions(Activity activity) { - final ActivityCompat act = new ActivityCompat(activity); final int navBarPosition = WindowManagerWrapper.getInstance().getNavBarPosition( - act.getDisplayId()); + activity.getDisplayId()); if (navBarPosition == WindowManagerWrapper.NAV_BAR_POS_INVALID) { return null; } diff --git a/quickstep/src/com/android/quickstep/ViewUtils.java b/quickstep/src/com/android/quickstep/ViewUtils.java index e290be8e33..ab26d15284 100644 --- a/quickstep/src/com/android/quickstep/ViewUtils.java +++ b/quickstep/src/com/android/quickstep/ViewUtils.java @@ -21,10 +21,8 @@ import android.view.View; import android.view.ViewRootImpl; import com.android.launcher3.Utilities; -import com.android.systemui.shared.system.ViewRootImplCompat; import java.util.function.BooleanSupplier; -import java.util.function.LongConsumer; /** * Utility class for helpful methods related to {@link View} objects. From 5a9dce518edb2487b76485723401751ac0be0a74 Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Wed, 8 Dec 2021 13:14:13 -0600 Subject: [PATCH 371/889] Combining the Thumbnail bitmap with the background to fix background spilling in the front. What's happening is that we first draw a background, on top of it, we then draw the Task and because we have a curvature the corners have pixels with transparency, and those pixels get combined with the background pixels. Most tasks have a transparent background or background of the same color as the task so we don't see this but for example, Telegram has a white background and you can see this in the corners. Fixed by creating a bitmap, drawing the background on it and then drawing the thumbnail on top of it then using that bitmap to draw it on the canvas. Test: Put Telegram in recent Task (shouldn't be the first one) and you won't see a white border. Also when a task was in multitask the backgroudn should be draw. Fix: 146521490 Change-Id: Id02a64ef472eb07900b0c7c5522d931d5b08f94e --- .../quickstep/views/TaskThumbnailView.java | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java index 60b0d17b40..11f9ddd5b3 100644 --- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java +++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java @@ -50,6 +50,7 @@ import androidx.core.graphics.ColorUtils; import com.android.launcher3.BaseActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Utilities; +import com.android.launcher3.icons.BitmapRenderer; import com.android.launcher3.util.MainThreadInitializedObject; import com.android.launcher3.util.SystemUiController; import com.android.quickstep.TaskOverlayFactory.TaskOverlay; @@ -161,6 +162,23 @@ public class TaskThumbnailView extends View { setThumbnail(task, thumbnailData, true /* refreshNow */); } + /** + * By combining the two in a single bitmap then we only have to do a single draw + * call in the onDraw function. Also, this fixes a bug where the background was + * visible in the corners because of anti-aliasing. + */ + public Bitmap combineThumbnailAndBackground(Bitmap bm) { + return BitmapRenderer.createHardwareBitmap(bm.getWidth(), bm.getHeight(), c -> { + final boolean drawBackgroundOnly = mTask == null || mTask.isLocked; + if (drawBackgroundOnly) { + c.drawPaint(mBackgroundPaint); + } else { + c.drawPaint(mBackgroundPaint); + c.drawBitmap(bm, 0, 0, null); + } + }); + } + /** Updates the shader, paint, matrix to redraw. */ public void refresh() { refresh(false); @@ -173,6 +191,7 @@ public class TaskThumbnailView extends View { private void refresh(boolean shouldRefreshOverlay) { if (mThumbnailData != null && mThumbnailData.thumbnail != null) { Bitmap bm = mThumbnailData.thumbnail; + bm = combineThumbnailAndBackground(bm); bm.prepareToDraw(); mBitmapShader = new BitmapShader(bm, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); mPaint.setShader(mBitmapShader); @@ -194,7 +213,6 @@ public class TaskThumbnailView extends View { *

* If dimAlpha is 0, no dimming is applied; if dimAlpha is 1, the thumbnail will be the * extracted background color. - * */ public void setDimAlpha(float dimAlpha) { mDimAlpha = dimAlpha; @@ -296,18 +314,6 @@ public class TaskThumbnailView extends View { return; } } - - // Always draw the background since the snapshots might be translucent or partially empty - // (For example, tasks been reparented out of dismissing split root when drag-to-dismiss - // split screen). - canvas.drawRoundRect(x, y, width, height, cornerRadius, cornerRadius, mBackgroundPaint); - - final boolean drawBackgroundOnly = mTask == null || mTask.isLocked || mBitmapShader == null - || mThumbnailData == null; - if (drawBackgroundOnly) { - return; - } - canvas.drawRoundRect(x, y, width, height, cornerRadius, cornerRadius, mPaint); } @@ -338,7 +344,6 @@ public class TaskThumbnailView extends View { private void updateThumbnailPaintFilter() { ColorFilter filter = getColorFilter(mDimAlpha); - mBackgroundPaint.setColorFilter(filter); int alpha = (int) (mDimAlpha * 255); mDimmingPaintAfterClearing.setAlpha(alpha); if (mBitmapShader != null) { From d68872426c43b36051652ece6a194c7e53d2180a Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Wed, 23 Feb 2022 23:00:49 -0800 Subject: [PATCH 372/889] Change the all apps atomic transition duration to 150 ms Test: manual TL;DR;; this value is used for tap on qsb all apps container atomic transition. 320 is value that used to be used in R when all apps travel distance used to be entire window height. In S, we reduced the travel distance to 1/3 of the height. Change-Id: Ib66f8a4408fd77350c31c5b894d9f8b2c889159f --- .../com/android/launcher3/uioverrides/states/AllAppsState.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java b/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java index 4583fc3f5e..cd14b3f75c 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/AllAppsState.java @@ -38,7 +38,7 @@ public class AllAppsState extends LauncherState { @Override public int getTransitionDuration(Context context) { - return 320; + return 150; } @Override From f2f302bcf6d1625e173e4608ccc4e51b2b53927c Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Thu, 24 Feb 2022 08:24:26 -0800 Subject: [PATCH 373/889] Fix DnD logic for determining current drag screen / panel => we want to use the extremum of finger location and object center for snapping to a new screen (max when snapping to right, min when snapping to left) => when selecting a panel within the current screen, we want to rely strictly on the object center to determine selection; there is plenty of space to be consistent here, and extremum logic could cause thrashing back and forth with no page movement. Test: Manual. See videos in b/221104663. On two-panel and one-panel test dragging a widget between different screens with different starting positions of where the widget goes down. Bug 221104663 Change-Id: I8f0f13f07b753752087a90c4bacb76cfbf7aa5bf --- src/com/android/launcher3/Workspace.java | 30 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index b3f5c0334f..df97d2fd06 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -2484,21 +2484,27 @@ public class Workspace extends PagedView } } + // Note, centerX represents the center of the object that is being dragged, visually. d.x + // represents the location of the finger within the dragged item. + float touchX; + float touchY = d.y; + + // Go through the pages and check if the dragged item is inside one of them. This block + // is responsible for determining whether we need to snap to a different screen. int nextPage = getNextPage(); - IntSet pageIndexesToVerify = IntSet.wrap(nextPage - 1, nextPage + 1); - if (isTwoPanelEnabled()) { - // If two panel is enabled, users can also drag items to nextPage + 2 - pageIndexesToVerify.add(nextPage + 2); - } - - int touchX = (int) Math.min(centerX, d.x); - int touchY = d.y; - - // Go through the pages and check if the dragged item is inside one of them + IntSet pageIndexesToVerify = IntSet.wrap(nextPage - 1, nextPage + + (isTwoPanelEnabled() ? 2 : 1)); for (int pageIndex : pageIndexesToVerify) { if (layout != null || isPageInTransition()) { break; } + + // When deciding whether to perform a page switch, we need to consider the most extreme + // X coordinate between the finger location and the center of the object being dragged. + // This is either the max or the min of the two depending on whether dragging to the + // left / right, respectively. + touchX = ((((pageIndex < nextPage) && !mIsRtl) || pageIndex > nextPage && mIsRtl) + ? Math.min(d.x, centerX) : Math.max(d.x, centerX)); layout = verifyInsidePage(pageIndex, touchX, touchY); } @@ -2507,12 +2513,16 @@ public class Workspace extends PagedView // on one panel just choose the current page. if (layout == null && nextPage >= 0 && nextPage < getPageCount()) { if (isTwoPanelEnabled()) { + // When determining which panel to use within a single screen, we always use + // the centroid of the object rather than the finger. + touchX = centerX; nextPage = getScreenCenter(getScrollX()) > touchX ? (mIsRtl ? nextPage + 1 : nextPage) // left side : (mIsRtl ? nextPage : nextPage + 1); // right side } layout = (CellLayout) getChildAt(nextPage); } + if (layout != mDragTargetLayout) { setCurrentDropLayout(layout); setCurrentDragOverlappingLayout(layout); From e479619836b1abf874ab25bdfb2402bf84ed0f56 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Fri, 25 Feb 2022 06:41:45 +0000 Subject: [PATCH 374/889] Just return an empty list if the system returns null Bug: 206648922 Test: Presubmit (unable to reproduce this) Change-Id: I04a4759a1c237513ab314ece4acd542e1407edb1 --- quickstep/src/com/android/quickstep/SystemUiProxy.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index d28796c89e..8b00f45426 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java @@ -816,8 +816,12 @@ public class SystemUiProxy implements ISystemUiProxy, public ArrayList getRecentTasks(int numTasks, int userId) { if (mRecentTasks != null) { try { - return new ArrayList<>(Arrays.asList(mRecentTasks.getRecentTasks(numTasks, - RECENT_IGNORE_UNAVAILABLE, userId))); + final GroupedRecentTaskInfo[] rawTasks = mRecentTasks.getRecentTasks(numTasks, + RECENT_IGNORE_UNAVAILABLE, userId); + if (rawTasks == null) { + return new ArrayList<>(); + } + return new ArrayList<>(Arrays.asList(rawTasks)); } catch (RemoteException e) { Log.w(TAG, "Failed call getRecentTasks", e); } From d986bbd0fa53a39895ec89890cd55d22405e354b Mon Sep 17 00:00:00 2001 From: Nicolo' Mazzucato Date: Fri, 25 Feb 2022 12:37:44 +0100 Subject: [PATCH 375/889] Register hinge angle sensor listener in a background thread This was taking ~13ms on the ui thread Bug: 221394115 Test: Manual Change-Id: Ibadade5b1c3c8d33a292d36bb6a03dd8021861be --- quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index af4f49d324..621039856d 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -25,6 +25,7 @@ import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSP import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID; import static com.android.launcher3.popup.QuickstepSystemShortcut.getSplitSelectShortcutByPosition; import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN; +import static com.android.launcher3.util.Executors.THREAD_POOL_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; @@ -342,6 +343,7 @@ public abstract class BaseQuickstepLauncher extends Launcher getSystemService(SensorManager.class), getMainThreadHandler(), getMainExecutor(), + /* backgroundExecutor= */ THREAD_POOL_EXECUTOR, /* tracingTagPrefix= */ "launcher" ); From 890e4a75c305c41fcb77e41d57a8abf133f2d021 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Fri, 25 Feb 2022 11:38:01 +0000 Subject: [PATCH 376/889] Dump DeviceProfile in TouchInteractionService dumpsys - So DeviceProfile dumpsys will be available in bugreports, useful for debugging - Only dump DeviceProfile in createdOverviewActivity if it's non-null Fix: 221395133 Test: adb shell dumpsys activity service com.google.android.apps.nexuslauncher/com.android.quickstep.TouchInteractionService Change-Id: Iaf7b7abd25771814be6cb918e96e042d1085debb --- .../src/com/android/quickstep/TouchInteractionService.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 2ed75b5c98..fc5f34df9a 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -959,6 +959,9 @@ public class TouchInteractionService extends Service pw.println("ProtoTrace:"); pw.println(" file=" + ProtoTracer.INSTANCE.get(this).getTraceFile()); mTaskbarManager.dumpLogs("", pw); + if (createdOverviewActivity != null) { + createdOverviewActivity.getDeviceProfile().dump("", pw); + } } } From 5c65febbb61415c2e17654788120020b4183ced2 Mon Sep 17 00:00:00 2001 From: Luca Zuccarini Date: Mon, 14 Feb 2022 13:12:05 +0000 Subject: [PATCH 377/889] Ensure that the Hotseat respects the margins of the QSB. Before this change they were ignored by onMeasure(), so that the QSB couldn't rely on margins for its positioning. Bug: 217477426 Test: manual Change-Id: Ifecd3d40ea584273b7857d19b25a90dbafe1c656 (cherry picked from commit 410c75a44276302d3ce1513cf09eba58a3d7bb88) --- src/com/android/launcher3/Hotseat.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/com/android/launcher3/Hotseat.java b/src/com/android/launcher3/Hotseat.java index cb0cc113b0..e1680fc7e7 100644 --- a/src/com/android/launcher3/Hotseat.java +++ b/src/com/android/launcher3/Hotseat.java @@ -173,9 +173,15 @@ public class Hotseat extends CellLayout implements Insettable { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - int width = mActivity.getDeviceProfile().isQsbInline - ? mActivity.getDeviceProfile().qsbWidth - : getShortcutsAndWidgets().getMeasuredWidth(); + int width; + if (mActivity.getDeviceProfile().isQsbInline) { + width = mActivity.getDeviceProfile().qsbWidth; + } else { + MarginLayoutParams qsbParams = (MarginLayoutParams) mQsb.getLayoutParams(); + width = getShortcutsAndWidgets().getMeasuredWidth() + - qsbParams.getMarginStart() + - qsbParams.getMarginEnd(); + } mQsb.measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(mQsbHeight, MeasureSpec.EXACTLY)); From bcec90b08161f24d955ae2fabe6867643943d261 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Thu, 24 Feb 2022 14:21:44 -0800 Subject: [PATCH 378/889] Adding tests for themed icons support in Launcher Bug: 205772453 Test: Presubmit Change-Id: I2fc8cade8e103e5a7b3aa7349c870e613929464c --- tests/AndroidManifest-common.xml | 9 ++ tests/res/drawable/test_theme_icon.xml | 29 ++++ .../ui/workspace/ThemeIconsTest.java | 128 ++++++++++++++++++ 3 files changed, 166 insertions(+) create mode 100644 tests/res/drawable/test_theme_icon.xml create mode 100644 tests/src/com/android/launcher3/ui/workspace/ThemeIconsTest.java diff --git a/tests/AndroidManifest-common.xml b/tests/AndroidManifest-common.xml index e44c172081..b4cd773435 100644 --- a/tests/AndroidManifest-common.xml +++ b/tests/AndroidManifest-common.xml @@ -267,6 +267,15 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/src/com/android/launcher3/ui/workspace/ThemeIconsTest.java b/tests/src/com/android/launcher3/ui/workspace/ThemeIconsTest.java new file mode 100644 index 0000000000..e66810cc3d --- /dev/null +++ b/tests/src/com/android/launcher3/ui/workspace/ThemeIconsTest.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2022 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 com.android.launcher3.ui.workspace; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import android.content.ContentProviderClient; +import android.content.ContentResolver; +import android.content.ContentValues; +import android.net.Uri; +import android.view.View; +import android.view.ViewGroup; + +import androidx.test.filters.LargeTest; + +import com.android.launcher3.BubbleTextView; +import com.android.launcher3.icons.ThemedIconDrawable; +import com.android.launcher3.tapl.HomeAllApps; +import com.android.launcher3.tapl.HomeAppIcon; +import com.android.launcher3.ui.AbstractLauncherUiTest; +import com.android.launcher3.ui.TaplTestsLauncher3; + +import org.junit.Test; + +import java.util.ArrayDeque; +import java.util.Queue; + +/** + * Tests for theme icon support in Launcher + * + * Note running these tests will clear the workspace on the device. + */ +@LargeTest +public class ThemeIconsTest extends AbstractLauncherUiTest { + + private static final String APP_NAME = "ThemeIconTestActivity"; + + @Test + public void testIconWithoutTheme() throws Exception { + setThemeEnabled(false); + TaplTestsLauncher3.initialize(this); + + HomeAllApps allApps = mLauncher.getWorkspace().switchToAllApps(); + allApps.freeze(); + + try { + HomeAppIcon icon = allApps.getAppIcon(APP_NAME); + executeOnLauncher(l -> verifyIconTheme(l.getAppsView(), false)); + icon.dragToWorkspace(false, false); + executeOnLauncher(l -> verifyIconTheme(l.getWorkspace(), false)); + } finally { + allApps.unfreeze(); + } + } + + @Test + public void testIconWithTheme() throws Exception { + setThemeEnabled(true); + TaplTestsLauncher3.initialize(this); + + HomeAllApps allApps = mLauncher.getWorkspace().switchToAllApps(); + allApps.freeze(); + + try { + HomeAppIcon icon = allApps.getAppIcon(APP_NAME); + executeOnLauncher(l -> verifyIconTheme(l.getAppsView(), false)); + icon.dragToWorkspace(false, false); + executeOnLauncher(l -> verifyIconTheme(l.getWorkspace(), true)); + } finally { + allApps.unfreeze(); + } + } + + private void verifyIconTheme(ViewGroup parent, boolean isThemed) { + // Find the app icon + Queue viewQueue = new ArrayDeque<>(); + viewQueue.add(parent); + BubbleTextView icon = null; + while (!viewQueue.isEmpty()) { + View view = viewQueue.poll(); + if (view instanceof ViewGroup) { + parent = (ViewGroup) view; + for (int i = parent.getChildCount() - 1; i >= 0; i--) { + viewQueue.add(parent.getChildAt(i)); + } + } else if (view instanceof BubbleTextView) { + BubbleTextView btv = (BubbleTextView) view; + if (APP_NAME.equals(btv.getText())) { + icon = btv; + break; + } + } + } + + assertNotNull(icon.getIcon()); + assertEquals(isThemed, icon.getIcon() instanceof ThemedIconDrawable); + } + + private void setThemeEnabled(boolean isEnabled) throws Exception { + Uri uri = new Uri.Builder() + .scheme(ContentResolver.SCHEME_CONTENT) + .authority(mTargetPackage + ".grid_control") + .appendPath("set_icon_themed") + .build(); + ContentValues values = new ContentValues(); + values.put("boolean_value", isEnabled); + try (ContentProviderClient client = mTargetContext.getContentResolver() + .acquireContentProviderClient(uri)) { + int result = client.update(uri, values, null); + assertTrue(result > 0); + } + } +} From 2da28dcdc9ab399f2a3d38a1c2cabc08473abe9d Mon Sep 17 00:00:00 2001 From: Pat Manning Date: Thu, 24 Feb 2022 13:33:20 +0000 Subject: [PATCH 379/889] Refactor force visible nav bar into new secure setting. Decouples force visible from kids mode setting. Bug: 217668440 Test: manual Change-Id: Ia8a2b30eab7633e3b686c9afebd7e683ef984deb --- .../android/launcher3/taskbar/TaskbarActivityContext.java | 7 +++++++ .../taskbar/TaskbarForceVisibleImmersiveController.java | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index fe091efecd..3f0a754264 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -128,6 +128,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ private final boolean mIsSafeModeEnabled; private final boolean mIsUserSetupComplete; + private final boolean mIsNavBarForceVisible; private final boolean mIsNavBarKidsMode; private boolean mIsDestroyed = false; // The flag to know if the window is excluded from magnification region computation. @@ -150,6 +151,8 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ () -> getPackageManager().isSafeMode()); mIsUserSetupComplete = SettingsCache.INSTANCE.get(this).getValue( Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE), 0); + mIsNavBarForceVisible = SettingsCache.INSTANCE.get(this).getValue( + Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_FORCE_VISIBLE), 0); mIsNavBarKidsMode = SettingsCache.INSTANCE.get(this).getValue( Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_KIDS_MODE), 0); @@ -732,6 +735,10 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ return mIsNavBarKidsMode && isThreeButtonNav(); } + protected boolean isNavBarForceVisible() { + return mIsNavBarForceVisible; + } + /** * Called when we determine the touchable region. * diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java index 385090f932..c99cebb1a7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarForceVisibleImmersiveController.java @@ -71,7 +71,7 @@ public class TaskbarForceVisibleImmersiveController implements TouchController { /** Update values tracked via sysui flags. */ public void updateSysuiFlags(int sysuiFlags) { mIsImmersiveMode = (sysuiFlags & SYSUI_STATE_IMMERSIVE_MODE) != 0; - if (mContext.isNavBarKidsModeActive()) { + if (mContext.isNavBarForceVisible()) { if (mIsImmersiveMode) { startIconDimming(); } else { @@ -113,7 +113,7 @@ public class TaskbarForceVisibleImmersiveController implements TouchController { * Returns whether the taskbar is always visible in immersive mode. */ private boolean isNavbarShownInImmersiveMode() { - return mIsImmersiveMode && mContext.isNavBarKidsModeActive(); + return mIsImmersiveMode && mContext.isNavBarForceVisible(); } private void updateIconDimmingAlpha() { From b0e0f5f44ad8d03bb1f41b0ad68d371d8ccb2b4c Mon Sep 17 00:00:00 2001 From: vadimt Date: Mon, 28 Feb 2022 10:53:36 -0800 Subject: [PATCH 380/889] Adding better diags when SysUI crashes during Launcher test Test: presubmit; sys ui tests where this rule is already used Bug: 187761685 Change-Id: Ib4491e5c7ebbea0bb3b17fc8c4b3a6c59a3bdb2a --- .../tests/src/com/android/quickstep/FallbackRecentsTest.java | 4 +++- .../src/com/android/launcher3/ui/AbstractLauncherUiTest.java | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java index 4529217a21..9a39b34ea7 100644 --- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java +++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java @@ -42,6 +42,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.RemoteException; +import android.platform.test.rule.CrashDetector; import androidx.test.filters.LargeTest; import androidx.test.runner.AndroidJUnit4; @@ -105,7 +106,8 @@ public class FallbackRecentsTest { } mOrderSensitiveRules = RuleChain - .outerRule(new NavigationModeSwitchRule(mLauncher)) + .outerRule(new CrashDetector("com.android.systemui")) + .around(new NavigationModeSwitchRule(mLauncher)) .around(new FailureWatcher(mDevice, mLauncher)); mOtherLauncherActivity = context.getPackageManager().queryIntentActivities( diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 79a4673b04..5abdcd3508 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -38,6 +38,7 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.os.UserManager; +import android.platform.test.rule.CrashDetector; import android.system.OsConstants; import android.util.Log; @@ -225,6 +226,7 @@ public abstract class AbstractLauncherUiTest { @Rule public TestRule mOrderSensitiveRules = RuleChain .outerRule(new TestStabilityRule()) + .around(new CrashDetector("com.android.systemui")) .around(mActivityMonitor) .around(getRulesInsideActivityMonitor()); From 407403315d4036b2fc1d040650c53d5a37b2d1b6 Mon Sep 17 00:00:00 2001 From: Brian Isganitis Date: Mon, 28 Feb 2022 14:08:22 -0800 Subject: [PATCH 381/889] Add flag for One Search support in Taskbar All Apps. Test: No Bug: 216683257 Change-Id: I7a705827f165f60c444bb27c55cdfb6b635215d2 --- src/com/android/launcher3/config/FeatureFlags.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 8b2184d8fe..993431e904 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -246,6 +246,10 @@ public final class FeatureFlags { "ENABLE_ALL_APPS_IN_TASKBAR", true, "Enables accessing All Apps from the system Taskbar."); + public static final BooleanFlag ENABLE_ALL_APPS_ONE_SEARCH_IN_TASKBAR = getDebugFlag( + "ENABLE_ALL_APPS_ONE_SEARCH_IN_TASKBAR", false, + "Enables One Search box in Taskbar All Apps."); + public static final BooleanFlag ENABLE_SPLIT_FROM_WORKSPACE = getDebugFlag( "ENABLE_SPLIT_FROM_WORKSPACE", true, "Enable initiating split screen from workspace."); From 91c37bbd09432ae3c8a162d1e6dffe211bfcff43 Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Thu, 17 Feb 2022 10:48:30 -0800 Subject: [PATCH 382/889] Restrict the area for the input to unsatsh the taskbar The input to unstash the taskbar should only be 48dp more than taskbar_stashed_handle_width or 316dp for wich I created a new variable. Bug: 204166104 Test: Manually stashing and unstashing the taskbar. Change-Id: I94e2e289fcd1169ed0e38a0c45abca6c0ae5c502 --- quickstep/res/values/dimens.xml | 1 + .../TaskbarStashInputConsumer.java | 33 ++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index 926e10c8b7..70e366fe2c 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -217,6 +217,7 @@ 35dp 24dp 220dp + 316dp 4dp 25dp 4dp diff --git a/quickstep/src/com/android/quickstep/inputconsumers/TaskbarStashInputConsumer.java b/quickstep/src/com/android/quickstep/inputconsumers/TaskbarStashInputConsumer.java index dbe260ac65..7836ecef14 100644 --- a/quickstep/src/com/android/quickstep/inputconsumers/TaskbarStashInputConsumer.java +++ b/quickstep/src/com/android/quickstep/inputconsumers/TaskbarStashInputConsumer.java @@ -22,6 +22,7 @@ import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.MotionEvent; +import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.taskbar.TaskbarActivityContext; import com.android.quickstep.InputConsumer; @@ -36,14 +37,20 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer { private final GestureDetector mLongPressDetector; private final float mSquaredTouchSlop; + private float mDownX, mDownY; private boolean mCanceledUnstashHint; + private final float mUnstashArea; + private final float mScreenWidth; public TaskbarStashInputConsumer(Context context, InputConsumer delegate, InputMonitorCompat inputMonitor, TaskbarActivityContext taskbarActivityContext) { super(delegate, inputMonitor); mTaskbarActivityContext = taskbarActivityContext; mSquaredTouchSlop = Utilities.squaredTouchSlop(context); + mScreenWidth = context.getResources().getDisplayMetrics().widthPixels; + mUnstashArea = context.getResources() + .getDimensionPixelSize(R.dimen.taskbar_unstash_input_area); mLongPressDetector = new GestureDetector(context, new SimpleOnGestureListener() { @Override @@ -69,11 +76,13 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer { final float y = ev.getRawY(); switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: - mDownX = x; - mDownY = y; - mTaskbarActivityContext.startTaskbarUnstashHint( - /* animateForward = */ true); - mCanceledUnstashHint = false; + if (isInArea(x)) { + mDownX = x; + mDownY = y; + mTaskbarActivityContext.startTaskbarUnstashHint( + /* animateForward = */ true); + mCanceledUnstashHint = false; + } break; case MotionEvent.ACTION_MOVE: if (!mCanceledUnstashHint @@ -95,10 +104,18 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer { } } + private boolean isInArea(float x) { + float areaFromMiddle = mUnstashArea / 2.0f; + float distFromMiddle = Math.abs(mScreenWidth / 2.0f - x); + return distFromMiddle < areaFromMiddle; + } + private void onLongPressDetected(MotionEvent motionEvent) { - if (mTaskbarActivityContext != null - && mTaskbarActivityContext.onLongPressToUnstashTaskbar()) { - setActive(motionEvent); + if (mTaskbarActivityContext != null && isInArea(motionEvent.getRawX())) { + boolean taskBarPressed = mTaskbarActivityContext.onLongPressToUnstashTaskbar(); + if (taskBarPressed) { + setActive(motionEvent); + } } } } From 6bc4257d86812f369ad06de4f88fd399e42d4dba Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 28 Feb 2022 17:12:27 -0800 Subject: [PATCH 383/889] Separating refresh rate tracking to a separate class Bug: 221961069 Test: Presubmit Change-Id: I04091ebc9f3d88d2dbbde1bf0d5390c815e026d1 --- .../launcher3/LauncherAnimationRunner.java | 2 +- .../launcher3/QuickstepTransitionManager.java | 2 +- .../NoButtonQuickSwitchTouchController.java | 2 +- .../android/quickstep/AbsSwipeUpHandler.java | 2 +- .../SwipeUpGestureTutorialController.java | 2 +- .../launcher3/FirstFrameAnimatorHelper.java | 2 +- .../anim/AnimatorPlaybackController.java | 2 +- .../anim/SpringAnimationBuilder.java | 4 +- src/com/android/launcher3/folder/Folder.java | 2 +- .../AbstractStateChangeTouchController.java | 2 +- .../launcher3/util/DisplayController.java | 43 +--------- .../util/window/RefreshRateTracker.java | 83 +++++++++++++++++++ .../launcher3/views/BaseDragLayer.java | 2 +- .../launcher3/views/FloatingSurfaceView.java | 4 +- 14 files changed, 98 insertions(+), 56 deletions(-) create mode 100644 src/com/android/launcher3/util/window/RefreshRateTracker.java diff --git a/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java b/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java index 661053af18..62603e9d54 100644 --- a/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java +++ b/quickstep/src/com/android/launcher3/LauncherAnimationRunner.java @@ -16,9 +16,9 @@ package com.android.launcher3; import static com.android.launcher3.Utilities.postAsyncCallback; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import static com.android.systemui.shared.recents.utilities.Utilities.postAtFrontOfQueueAsynchronously; import android.animation.Animator; diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 3eb1935ee8..c4a3fb5572 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -44,7 +44,7 @@ import static com.android.launcher3.config.FeatureFlags.SEPARATE_RECENTS_ACTIVIT import static com.android.launcher3.dragndrop.DragLayer.ALPHA_INDEX_TRANSITIONS; import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID; import static com.android.launcher3.statehandlers.DepthController.DEPTH; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION; import static com.android.launcher3.views.FloatingIconView.getFloatingIconView; import static com.android.quickstep.TaskViewUtils.findTaskViewToLaunch; diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java index f6148a7c8f..d8f694ec76 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java @@ -40,7 +40,7 @@ import static com.android.launcher3.states.StateAnimationConfig.SKIP_OVERVIEW; import static com.android.launcher3.states.StateAnimationConfig.SKIP_SCRIM; import static com.android.launcher3.touch.BothAxesSwipeDetector.DIRECTION_RIGHT; import static com.android.launcher3.touch.BothAxesSwipeDetector.DIRECTION_UP; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import static com.android.quickstep.util.VibratorWrapper.OVERVIEW_HAPTIC; import static com.android.quickstep.views.RecentsView.ADJACENT_PAGE_HORIZONTAL_OFFSET; import static com.android.quickstep.views.RecentsView.CONTENT_ALPHA; diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 2cb7100378..b7d3aa03f7 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -32,10 +32,10 @@ import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCH import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_OVERVIEW_GESTURE; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_QUICKSWITCH_LEFT; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_QUICKSWITCH_RIGHT; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.SystemUiController.UI_STATE_FULLSCREEN_TASK; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import static com.android.quickstep.GestureState.GestureEndTarget.HOME; import static com.android.quickstep.GestureState.GestureEndTarget.LAST_TASK; import static com.android.quickstep.GestureState.GestureEndTarget.NEW_TASK; diff --git a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java index 672687da29..9a101b9651 100644 --- a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java @@ -16,7 +16,7 @@ package com.android.quickstep.interaction; import static com.android.launcher3.anim.Interpolators.ACCEL; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import static com.android.launcher3.views.FloatingIconView.SHAPE_PROGRESS_DURATION; import static com.android.quickstep.AbsSwipeUpHandler.MAX_SWIPE_DURATION; import static com.android.quickstep.interaction.TutorialController.TutorialType.HOME_NAVIGATION_COMPLETE; diff --git a/src/com/android/launcher3/FirstFrameAnimatorHelper.java b/src/com/android/launcher3/FirstFrameAnimatorHelper.java index a199a5779a..fdf0101e66 100644 --- a/src/com/android/launcher3/FirstFrameAnimatorHelper.java +++ b/src/com/android/launcher3/FirstFrameAnimatorHelper.java @@ -15,7 +15,7 @@ */ package com.android.launcher3; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; diff --git a/src/com/android/launcher3/anim/AnimatorPlaybackController.java b/src/com/android/launcher3/anim/AnimatorPlaybackController.java index 85ca280ba2..1cc0c21745 100644 --- a/src/com/android/launcher3/anim/AnimatorPlaybackController.java +++ b/src/com/android/launcher3/anim/AnimatorPlaybackController.java @@ -19,7 +19,7 @@ import static com.android.launcher3.Utilities.boundToRange; import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.anim.Interpolators.clampToProgress; import static com.android.launcher3.anim.Interpolators.scrollInterpolatorForVelocity; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import android.animation.Animator; import android.animation.Animator.AnimatorListener; diff --git a/src/com/android/launcher3/anim/SpringAnimationBuilder.java b/src/com/android/launcher3/anim/SpringAnimationBuilder.java index bd52158f0a..40fa0cfd02 100644 --- a/src/com/android/launcher3/anim/SpringAnimationBuilder.java +++ b/src/com/android/launcher3/anim/SpringAnimationBuilder.java @@ -25,7 +25,7 @@ import android.util.FloatProperty; import androidx.annotation.FloatRange; import androidx.dynamicanimation.animation.SpringForce; -import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.window.RefreshRateTracker; /** * Utility class to build an object animator which follows the same path as a spring animation for @@ -134,7 +134,7 @@ public class SpringAnimationBuilder { } public SpringAnimationBuilder computeParams() { - int singleFrameMs = DisplayController.getSingleFrameMs(mContext); + int singleFrameMs = RefreshRateTracker.getSingleFrameMs(mContext); double naturalFreq = Math.sqrt(mStiffness); double dampedFreq = naturalFreq * Math.sqrt(1 - mDampingRatio * mDampingRatio); diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index 1e6342cc8b..891651996b 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -24,7 +24,7 @@ import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustom import static com.android.launcher3.config.FeatureFlags.ALWAYS_USE_HARDWARE_OPTIMIZATION_FOR_FOLDER_ANIMATIONS; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_LABEL_UPDATED; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_ITEM_DROP_COMPLETED; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java index 61d488c91b..c00e174920 100644 --- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java +++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java @@ -26,7 +26,7 @@ import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_HOME; import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_OVERVIEW; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_UNKNOWN_SWIPEDOWN; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_UNKNOWN_SWIPEUP; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import android.animation.Animator.AnimatorListener; import android.animation.ValueAnimator; diff --git a/src/com/android/launcher3/util/DisplayController.java b/src/com/android/launcher3/util/DisplayController.java index ba925f5256..79634019a6 100644 --- a/src/com/android/launcher3/util/DisplayController.java +++ b/src/com/android/launcher3/util/DisplayController.java @@ -20,7 +20,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION; import static com.android.launcher3.Utilities.dpiFromPx; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; -import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; import static com.android.launcher3.util.WindowManagerCompat.MIN_TABLET_WIDTH; import static java.util.Collections.emptyMap; @@ -34,7 +33,6 @@ import android.content.IntentFilter; import android.content.res.Configuration; import android.graphics.Point; import android.hardware.display.DisplayManager; -import android.hardware.display.DisplayManager.DisplayListener; import android.os.Build; import android.text.TextUtils; import android.util.ArrayMap; @@ -44,7 +42,6 @@ import android.view.Display; import androidx.annotation.AnyThread; import androidx.annotation.UiThread; -import androidx.annotation.WorkerThread; import com.android.launcher3.Utilities; import com.android.launcher3.uioverrides.ApiWrapper; @@ -58,7 +55,7 @@ import java.util.Set; * Utility class to cache properties of default display to avoid a system RPC on every call. */ @SuppressLint("NewApi") -public class DisplayController implements DisplayListener, ComponentCallbacks, SafeCloseable { +public class DisplayController implements ComponentCallbacks, SafeCloseable { private static final String TAG = "DisplayController"; @@ -102,7 +99,6 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S } mInfo = new Info(getDisplayInfoContext(display), display, getInternalDisplays(mDM), emptyMap()); - mDM.registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); } private static ArrayMap getInternalDisplays( @@ -128,35 +124,6 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S } else { // TODO: unregister broadcast receiver } - mDM.unregisterDisplayListener(this); - } - - @Override - public final void onDisplayAdded(int displayId) { } - - @Override - public final void onDisplayRemoved(int displayId) { } - - @WorkerThread - @Override - public final void onDisplayChanged(int displayId) { - if (displayId != DEFAULT_DISPLAY) { - return; - } - Display display = mDM.getDisplay(DEFAULT_DISPLAY); - if (display == null) { - return; - } - if (Utilities.ATLEAST_S) { - // Only update refresh rate. Everything else comes from component callbacks - mInfo.mSingleFrameMs = getSingleFrameMs(display); - return; - } - handleInfoChange(display); - } - - public static int getSingleFrameMs(Context context) { - return INSTANCE.get(context).getInfo().mSingleFrameMs; } /** @@ -287,8 +254,6 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S public static class Info { - private int mSingleFrameMs; - // Configuration properties public final int rotation; public final float fontScale; @@ -318,7 +283,6 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S densityDpi = config.densityDpi; mScreenSizeDp = new PortraitSize(config.screenHeightDp, config.screenWidthDp); - mSingleFrameMs = getSingleFrameMs(display); currentSize = new Point(); display.getRealSize(currentSize); @@ -400,9 +364,4 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S return Objects.hash(width, height); } } - - private static int getSingleFrameMs(Display display) { - float refreshRate = display.getRefreshRate(); - return refreshRate > 0 ? (int) (1000 / refreshRate) : 16; - } } diff --git a/src/com/android/launcher3/util/window/RefreshRateTracker.java b/src/com/android/launcher3/util/window/RefreshRateTracker.java new file mode 100644 index 0000000000..7814617b9e --- /dev/null +++ b/src/com/android/launcher3/util/window/RefreshRateTracker.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2022 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 com.android.launcher3.util.window; + +import static android.view.Display.DEFAULT_DISPLAY; + +import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; + +import android.content.Context; +import android.hardware.display.DisplayManager; +import android.hardware.display.DisplayManager.DisplayListener; +import android.view.Display; + +import androidx.annotation.WorkerThread; + +import com.android.launcher3.util.MainThreadInitializedObject; +import com.android.launcher3.util.SafeCloseable; + +/** + * Utility class to track refresh rate of the current device + */ +public class RefreshRateTracker implements DisplayListener, SafeCloseable { + + private static final MainThreadInitializedObject INSTANCE = + new MainThreadInitializedObject<>(RefreshRateTracker::new); + + private int mSingleFrameMs = 1; + + private final DisplayManager mDM; + + private RefreshRateTracker(Context context) { + mDM = context.getSystemService(DisplayManager.class); + updateSingleFrameMs(); + mDM.registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); + } + + /** + * Returns the single frame time in ms + */ + public static int getSingleFrameMs(Context context) { + return INSTANCE.get(context).mSingleFrameMs; + } + + @Override + public final void onDisplayAdded(int displayId) { } + + @Override + public final void onDisplayRemoved(int displayId) { } + + @WorkerThread + @Override + public final void onDisplayChanged(int displayId) { + if (displayId == DEFAULT_DISPLAY) { + updateSingleFrameMs(); + } + } + + private void updateSingleFrameMs() { + Display display = mDM.getDisplay(DEFAULT_DISPLAY); + if (display != null) { + float refreshRate = display.getRefreshRate(); + mSingleFrameMs = refreshRate > 0 ? (int) (1000 / refreshRate) : 16; + } + } + + @Override + public void close() { + mDM.unregisterDisplayListener(this); + } +} diff --git a/src/com/android/launcher3/views/BaseDragLayer.java b/src/com/android/launcher3/views/BaseDragLayer.java index 76dfb3ce2a..f71aa13fdd 100644 --- a/src/com/android/launcher3/views/BaseDragLayer.java +++ b/src/com/android/launcher3/views/BaseDragLayer.java @@ -20,7 +20,7 @@ import static android.view.MotionEvent.ACTION_CANCEL; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_UP; -import static com.android.launcher3.util.DisplayController.getSingleFrameMs; +import static com.android.launcher3.util.window.RefreshRateTracker.getSingleFrameMs; import android.annotation.TargetApi; import android.app.WallpaperManager; diff --git a/src/com/android/launcher3/views/FloatingSurfaceView.java b/src/com/android/launcher3/views/FloatingSurfaceView.java index e7cb3b3d13..7f54d6dce5 100644 --- a/src/com/android/launcher3/views/FloatingSurfaceView.java +++ b/src/com/android/launcher3/views/FloatingSurfaceView.java @@ -40,8 +40,8 @@ import com.android.launcher3.GestureNavContract; import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; import com.android.launcher3.R; -import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.Executors; +import com.android.launcher3.util.window.RefreshRateTracker; /** * Similar to {@link FloatingIconView} but displays a surface with the targetIcon. It then passes @@ -97,7 +97,7 @@ public class FloatingSurfaceView extends AbstractFloatingView implements // Remove after some time, to avoid flickering Executors.MAIN_EXECUTOR.getHandler().postDelayed(mRemoveViewRunnable, - DisplayController.getSingleFrameMs(mLauncher)); + RefreshRateTracker.getSingleFrameMs(mLauncher)); } private void removeViewFromParent() { From 26f5393db352dfc3a6148c66cf56092dc21d2fd3 Mon Sep 17 00:00:00 2001 From: Tracy Zhou Date: Sun, 27 Feb 2022 21:22:31 -0800 Subject: [PATCH 384/889] Improve the staged split animation - Introduce rounded corners (since we scale x and y differently, we can't use outline since it doesn't support rx and ry. It's achieved by custom drawing). - Make sure the thumbnail content doesn't shift during the transition (we use custom cropping for TaskThumbnailView, and we have to do it accordingly here) TODO: update UX of the initial split view (b/219085340) Fixes: 194414938 Test: https://recall.googleplex.com/projects/f46cfe9c-8076-4efe-bf8a-b1cc4f1f5e1b/sessions/64953aa7-62ea-427c-8ec0-5f2bd96e4762 Change-Id: Id9a5d2f0f41cb4d619c8b3bd3a83c633e3d1f2de --- .../views/FloatingTaskThumbnailView.java | 86 +++++++++++++++++++ .../quickstep/views/FloatingTaskView.java | 80 +++++++++++------ .../android/quickstep/views/RecentsView.java | 10 +-- .../quickstep/views/SplitPlaceholderView.java | 38 ++++++++ res/layout/floating_split_select_view.xml | 3 +- 5 files changed, 182 insertions(+), 35 deletions(-) create mode 100644 quickstep/src/com/android/quickstep/views/FloatingTaskThumbnailView.java diff --git a/quickstep/src/com/android/quickstep/views/FloatingTaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/FloatingTaskThumbnailView.java new file mode 100644 index 0000000000..cfb00568d0 --- /dev/null +++ b/quickstep/src/com/android/quickstep/views/FloatingTaskThumbnailView.java @@ -0,0 +1,86 @@ +/* + * Copyright 2022 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 com.android.quickstep.views; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Shader; +import android.util.AttributeSet; +import android.view.View; + +import androidx.annotation.Nullable; + +/** + * A child view of {@link com.android.quickstep.views.FloatingTaskView} to draw the thumbnail in a + * rounded corner frame. While the purpose of this class sounds similar to + * {@link TaskThumbnailView}, it doesn't need a lot of complex logic in {@link TaskThumbnailView} + * in relation to moving with {@link RecentsView}. + */ +public class FloatingTaskThumbnailView extends View { + + private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Matrix mMatrix = new Matrix(); + + private @Nullable BitmapShader mBitmapShader; + private @Nullable Bitmap mBitmap; + + private FloatingTaskView.FullscreenDrawParams mFullscreenParams; + + public FloatingTaskThumbnailView(Context context) { + this(context, null); + } + + public FloatingTaskThumbnailView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public FloatingTaskThumbnailView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + protected void onDraw(Canvas canvas) { + if (mFullscreenParams == null || mBitmap == null) { + return; + } + + // Scale down the bitmap to fix x, and crop in y. + float scale = 1.0f * getMeasuredWidth() / mBitmap.getWidth(); + mMatrix.postScale(scale, scale); + mBitmapShader.setLocalMatrix(mMatrix); + + canvas.drawRoundRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), + mFullscreenParams.mCurrentDrawnCornerRadius / mFullscreenParams.mScaleX, + mFullscreenParams.mCurrentDrawnCornerRadius / mFullscreenParams.mScaleY, mPaint); + } + + public void setThumbnail(Bitmap bitmap) { + mBitmap = bitmap; + if (bitmap != null) { + mBitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); + mPaint.setShader(mBitmapShader); + } + } + + public void setFullscreenParams(FloatingTaskView.FullscreenDrawParams fullscreenParams) { + mFullscreenParams = fullscreenParams; + } +} diff --git a/quickstep/src/com/android/quickstep/views/FloatingTaskView.java b/quickstep/src/com/android/quickstep/views/FloatingTaskView.java index f2f1c3f5f6..c59dc1893a 100644 --- a/quickstep/src/com/android/quickstep/views/FloatingTaskView.java +++ b/quickstep/src/com/android/quickstep/views/FloatingTaskView.java @@ -15,7 +15,6 @@ import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; -import android.widget.ImageView; import androidx.annotation.Nullable; @@ -29,6 +28,8 @@ import com.android.launcher3.statemanager.StatefulActivity; import com.android.launcher3.touch.PagedOrientationHandler; import com.android.launcher3.views.BaseDragLayer; import com.android.quickstep.util.MultiValueUpdateListener; +import com.android.quickstep.util.TaskCornerRadius; +import com.android.systemui.shared.system.QuickStepContract; import java.util.function.Consumer; @@ -50,9 +51,9 @@ public class FloatingTaskView extends FrameLayout { private RectF mStartingPosition; private final StatefulActivity mActivity; private final boolean mIsRtl; - private final Rect mOutline = new Rect(); + private final FullscreenDrawParams mCurrentFullscreenParams; private PagedOrientationHandler mOrientationHandler; - private ImageView mImageView; + private FloatingTaskThumbnailView mThumbnailView; public FloatingTaskView(Context context) { this(context, null); @@ -66,16 +67,17 @@ public class FloatingTaskView extends FrameLayout { super(context, attrs, defStyleAttr); mActivity = BaseActivity.fromContext(context); mIsRtl = Utilities.isRtl(getResources()); + mCurrentFullscreenParams = new FullscreenDrawParams(context); } @Override protected void onFinishInflate() { super.onFinishInflate(); - mImageView = findViewById(R.id.thumbnail); - mImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - mImageView.setLayerType(LAYER_TYPE_HARDWARE, null); + mThumbnailView = findViewById(R.id.thumbnail); + mThumbnailView.setFullscreenParams(mCurrentFullscreenParams); mSplitPlaceholderView = findViewById(R.id.split_placeholder); mSplitPlaceholderView.setAlpha(0); + mSplitPlaceholderView.setFullscreenParams(mCurrentFullscreenParams); } private void init(StatefulActivity launcher, View originalView, @Nullable Bitmap thumbnail, @@ -86,13 +88,11 @@ public class FloatingTaskView extends FrameLayout { (InsettableFrameLayout.LayoutParams) getLayoutParams(); mSplitPlaceholderView.setLayoutParams(new FrameLayout.LayoutParams(lp.width, lp.height)); - positionOut.round(mOutline); setPivotX(0); setPivotY(0); // Copy bounds of exiting thumbnail into ImageView - mImageView.setImageBitmap(thumbnail); - mImageView.setVisibility(VISIBLE); + mThumbnailView.setThumbnail(thumbnail); RecentsView recentsView = launcher.getOverviewPanel(); mOrientationHandler = recentsView.getPagedOrientationHandler(); @@ -133,27 +133,24 @@ public class FloatingTaskView extends FrameLayout { setLayoutParams(lp); } - // TODO(194414938) set correct corner radii - public void update(RectF position, float progress, float windowRadius) { + public void update(RectF position, float progress) { MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams(); float dX = position.left - mStartingPosition.left; float dY = position.top - lp.topMargin; + float scaleX = position.width() / lp.width; + float scaleY = position.height() / lp.height; + + mCurrentFullscreenParams.updateParams(position, progress, scaleX, scaleY); setTranslationX(dX); setTranslationY(dY); - - float scaleX = position.width() / lp.width; - float scaleY = position.height() / lp.height; setScaleX(scaleX); setScaleY(scaleY); + mSplitPlaceholderView.invalidate(); + float childScaleX = 1f / scaleX; float childScaleY = 1f / scaleY; - - invalidate(); - // TODO(194414938) seems like this scale value could be fine tuned, some stretchiness - mImageView.setScaleX(1f / scaleX + scaleX * progress); - mImageView.setScaleY(1f / scaleY + scaleY * progress); mOrientationHandler.setPrimaryScale(mSplitPlaceholderView.getIconView(), childScaleX); mOrientationHandler.setSecondaryScale(mSplitPlaceholderView.getIconView(), childScaleY); } @@ -181,7 +178,8 @@ public class FloatingTaskView extends FrameLayout { } public void addAnimation(PendingAnimation animation, RectF startingBounds, Rect endBounds, - boolean fadeWithThumbnail) { + boolean fadeWithThumbnail, boolean isInitialSplit) { + mCurrentFullscreenParams.setIsInitialSplit(isInitialSplit); final BaseDragLayer dragLayer = mActivity.getDragLayer(); int[] dragLayerBounds = new int[2]; dragLayer.getLocationOnScreen(dragLayerBounds); @@ -191,22 +189,16 @@ public class FloatingTaskView extends FrameLayout { ValueAnimator transitionAnimator = ValueAnimator.ofFloat(0, 1); animation.add(transitionAnimator); long animDuration = animation.getDuration(); - Rect crop = new Rect(); RectF floatingTaskViewBounds = new RectF(); - final float initialWindowRadius = supportsRoundedCornersOnWindows(getResources()) - ? Math.max(crop.width(), crop.height()) / 2f - : 0f; if (fadeWithThumbnail) { animation.addFloat(mSplitPlaceholderView, SplitPlaceholderView.ALPHA_FLOAT, 0, 1, ACCEL); - animation.addFloat(mImageView, LauncherAnimUtils.VIEW_ALPHA, + animation.addFloat(mThumbnailView, LauncherAnimUtils.VIEW_ALPHA, 1, 0, DEACCEL_3); } MultiValueUpdateListener listener = new MultiValueUpdateListener() { - final FloatProp mWindowRadius = new FloatProp(initialWindowRadius, - initialWindowRadius, 0, animDuration, LINEAR); final FloatProp mDx = new FloatProp(0, prop.dX, 0, animDuration, LINEAR); final FloatProp mDy = new FloatProp(0, prop.dY, 0, animDuration, LINEAR); final FloatProp mTaskViewScaleX = new FloatProp(1f, prop.finalTaskViewScaleX, 0, @@ -221,7 +213,7 @@ public class FloatingTaskView extends FrameLayout { Utilities.scaleRectFAboutCenter(floatingTaskViewBounds, mTaskViewScaleX.value, mTaskViewScaleY.value); - update(floatingTaskViewBounds, percent, mWindowRadius.value * 1); + update(floatingTaskViewBounds, percent); } }; transitionAnimator.addUpdateListener(listener); @@ -250,4 +242,36 @@ public class FloatingTaskView extends FrameLayout { dY = centerY - startTaskViewBounds.centerY(); } } + + public static class FullscreenDrawParams { + + private final float mCornerRadius; + private final float mWindowCornerRadius; + + public boolean mIsInitialSplit = true; + public final RectF mFloatingTaskViewBounds = new RectF(); + public float mCurrentDrawnCornerRadius; + public float mScaleX = 1; + public float mScaleY = 1; + + public FullscreenDrawParams(Context context) { + mCornerRadius = TaskCornerRadius.get(context); + mWindowCornerRadius = QuickStepContract.getWindowCornerRadius(context); + + mCurrentDrawnCornerRadius = mCornerRadius; + } + + public void updateParams(RectF floatingTaskViewBounds, float progress, float scaleX, + float scaleY) { + mFloatingTaskViewBounds.set(floatingTaskViewBounds); + mScaleX = scaleX; + mScaleY = scaleY; + mCurrentDrawnCornerRadius = mIsInitialSplit ? 0 : + Utilities.mapRange(progress, mCornerRadius, mWindowCornerRadius); + } + + public void setIsInitialSplit(boolean isInitialSplit) { + mIsInitialSplit = isInitialSplit; + } + } } diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index cb7e08a255..5e331e2e86 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -2732,7 +2732,7 @@ public abstract class RecentsView { if (success) { @@ -4030,14 +4030,14 @@ public abstract class RecentsView mSplitSelectStateController.setSecondTaskId(task.key.id, aBoolean1 -> RecentsView.this.resetFromSplitSelectionState())); @@ -4110,7 +4110,7 @@ public abstract class RecentsView taskViewsFloat = diff --git a/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java b/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java index cfa482f233..d37dfbf991 100644 --- a/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java +++ b/quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java @@ -17,9 +17,12 @@ package com.android.quickstep.views; import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.FloatProperty; +import android.util.TypedValue; import android.view.Gravity; import android.widget.FrameLayout; @@ -27,6 +30,10 @@ import androidx.annotation.Nullable; public class SplitPlaceholderView extends FrameLayout { + private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + + private FloatingTaskView.FullscreenDrawParams mFullscreenParams; + public static final FloatProperty ALPHA_FLOAT = new FloatProperty("SplitViewAlpha") { @Override @@ -46,6 +53,17 @@ public class SplitPlaceholderView extends FrameLayout { public SplitPlaceholderView(Context context, AttributeSet attrs) { super(context, attrs); + + mPaint.setColor(getThemePrimaryColor(context)); + setWillNotDraw(false); + } + + @Override + protected void dispatchDraw(Canvas canvas) { + // Call this before super call to draw below the children. + drawBackground(canvas); + + super.dispatchDraw(canvas); } @Nullable @@ -53,6 +71,10 @@ public class SplitPlaceholderView extends FrameLayout { return mIconView; } + public void setFullscreenParams(FloatingTaskView.FullscreenDrawParams fullscreenParams) { + mFullscreenParams = fullscreenParams; + } + public void setIcon(Drawable drawable, int iconSize) { if (mIconView == null) { mIconView = new IconView(getContext()); @@ -64,4 +86,20 @@ public class SplitPlaceholderView extends FrameLayout { params.gravity = Gravity.CENTER; mIconView.setLayoutParams(params); } + + private void drawBackground(Canvas canvas) { + if (mFullscreenParams == null) { + return; + } + + canvas.drawRoundRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), + mFullscreenParams.mCurrentDrawnCornerRadius / mFullscreenParams.mScaleX, + mFullscreenParams.mCurrentDrawnCornerRadius / mFullscreenParams.mScaleY, mPaint); + } + + private static int getThemePrimaryColor(Context context) { + final TypedValue value = new TypedValue(); + context.getTheme().resolveAttribute(android.R.attr.colorPrimary, value, true); + return value.data; + } } diff --git a/res/layout/floating_split_select_view.xml b/res/layout/floating_split_select_view.xml index 8d47f4ef49..e4ca52e371 100644 --- a/res/layout/floating_split_select_view.xml +++ b/res/layout/floating_split_select_view.xml @@ -4,7 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - \ No newline at end of file From 384beda47224cb5abded80042419ebccfd5a3749 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Tue, 1 Mar 2022 05:23:05 +0000 Subject: [PATCH 385/889] Revert "Disable flakey fallback recents test" This reverts commit 4c2e3310e61169b7ee0b380f7f5652f657002d90. Reason for revert: Lets try reverting this now that ag/17006986 landed Change-Id: If9311a459ce6250d3f8c8341c1210b8bedd5bbbd --- .../tests/src/com/android/quickstep/FallbackRecentsTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java index 6be2ce690a..4529217a21 100644 --- a/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java +++ b/quickstep/tests/src/com/android/quickstep/FallbackRecentsTest.java @@ -61,7 +61,6 @@ import com.android.quickstep.views.RecentsView; import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.RuleChain; @@ -206,7 +205,6 @@ public class FallbackRecentsTest { // b/143488140 //@NavigationModeSwitch - @Ignore("b/218403080") @Test public void testOverview() { startAppFast(getAppPackageName()); From e3e1054f19d7d8094c95ab1145a5d1a016522f94 Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Mon, 21 Feb 2022 13:59:44 +0800 Subject: [PATCH 386/889] Rename 'EMPTY' to 'SOLID_COLOR' for splash screen API changes. Preventing from misleading developers. Bug: 217953215 Test: build/flash Change-Id: I76ed29833c71c7b678fbe5bf9d15d0137eec9f91 --- .../launcher3/uioverrides/QuickstepInteractionHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java index be7535a90e..08d147f7cf 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java @@ -79,7 +79,7 @@ class QuickstepInteractionHandler implements RemoteViews.InteractionHandler { } } activityOptions.options.setPendingIntentLaunchFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - activityOptions.options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_EMPTY); + activityOptions.options.setSplashScreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_SOLID_COLOR); options = Pair.create(options.first, activityOptions.options); if (pendingIntent.isActivity()) { logAppLaunch(itemInfo); From 6badc405ad24b59b0dcca2a109c866c057869563 Mon Sep 17 00:00:00 2001 From: Abhilasha Chahal Date: Mon, 7 Feb 2022 14:00:12 +0000 Subject: [PATCH 387/889] Extract out common adapter logic to support different AllApps layouts Test: Manual tests. Refactoring, all existing tests should pass. Bug: 216150568 Change-Id: I1068e75d0b4a33d402a7d68e237d2484ab3a1e01 --- .../allapps/TaskbarAllAppsContainerView.java | 10 + .../allapps/ActivityAllAppsContainerView.java | 7 + .../launcher3/allapps/AllAppsGridAdapter.java | 341 ++---------------- .../allapps/AlphabeticalAppsList.java | 6 +- .../launcher3/allapps/BaseAllAppsAdapter.java | 333 +++++++++++++++++ .../allapps/BaseAllAppsContainerView.java | 13 +- .../search/AllAppsSearchBarController.java | 2 +- .../search/AppsSearchContainerLayout.java | 2 +- .../search/DefaultAppSearchAlgorithm.java | 2 +- 9 files changed, 391 insertions(+), 325 deletions(-) create mode 100644 src/com/android/launcher3/allapps/BaseAllAppsAdapter.java diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContainerView.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContainerView.java index b36b9f1ffd..37cd753ba4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContainerView.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContainerView.java @@ -25,6 +25,9 @@ import android.view.WindowInsets; import androidx.recyclerview.widget.RecyclerView; import com.android.launcher3.allapps.AllAppsGridAdapter; +import com.android.launcher3.allapps.AlphabeticalAppsList; +import com.android.launcher3.allapps.BaseAdapterProvider; +import com.android.launcher3.allapps.BaseAllAppsAdapter; import com.android.launcher3.allapps.BaseAllAppsContainerView; import com.android.launcher3.allapps.search.SearchAdapterProvider; @@ -79,4 +82,11 @@ public class TaskbarAllAppsContainerView extends BaseAllAppsContainerView mAppsList, + BaseAdapterProvider[] adapterProviders) { + return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), mAppsList, + adapterProviders); + } } diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java index 114f8130c7..b94a61251b 100644 --- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java @@ -256,4 +256,11 @@ public class ActivityAllAppsContainerView extend layoutParams.removeRule(RelativeLayout.BELOW); layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); } + + @Override + protected BaseAllAppsAdapter getAdapter(AlphabeticalAppsList mAppsList, + BaseAdapterProvider[] adapterProviders) { + return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), mAppsList, + adapterProviders); + } } diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java index f1ca9c0c99..58df50ca82 100644 --- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java +++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java @@ -15,36 +15,20 @@ */ package com.android.launcher3.allapps; -import static com.android.launcher3.touch.ItemLongClickListener.INSTANCE_ALL_APPS; - import android.content.Context; -import android.content.res.Resources; -import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; -import android.view.View.OnClickListener; -import android.view.View.OnFocusChangeListener; -import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.view.accessibility.AccessibilityEvent; -import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.core.view.accessibility.AccessibilityEventCompat; import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; import androidx.core.view.accessibility.AccessibilityRecordCompat; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.android.launcher3.BubbleTextView; -import com.android.launcher3.R; -import com.android.launcher3.config.FeatureFlags; -import com.android.launcher3.model.data.AppInfo; -import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.views.ActivityContext; -import java.util.Arrays; import java.util.List; /** @@ -53,111 +37,26 @@ import java.util.List; * @param Type of context inflating all apps. */ public class AllAppsGridAdapter extends - RecyclerView.Adapter { + BaseAllAppsAdapter { public static final String TAG = "AppsGridAdapter"; + private final GridLayoutManager mGridLayoutMgr; + private final GridSpanSizer mGridSizer; - // A normal icon - public static final int VIEW_TYPE_ICON = 1 << 1; - // The message shown when there are no filtered results - public static final int VIEW_TYPE_EMPTY_SEARCH = 1 << 2; - // The message to continue to a market search when there are no filtered results - public static final int VIEW_TYPE_SEARCH_MARKET = 1 << 3; - - // We use various dividers for various purposes. They share enough attributes to reuse layouts, - // but differ in enough attributes to require different view types - - // A divider that separates the apps list and the search market button - public static final int VIEW_TYPE_ALL_APPS_DIVIDER = 1 << 4; - - // Common view type masks - public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_ALL_APPS_DIVIDER; - public static final int VIEW_TYPE_MASK_ICON = VIEW_TYPE_ICON; - - - private final BaseAdapterProvider[] mAdapterProviders; - - /** - * ViewHolder for each icon. - */ - public static class ViewHolder extends RecyclerView.ViewHolder { - - public ViewHolder(View v) { - super(v); - } + public AllAppsGridAdapter(T activityContext, LayoutInflater inflater, + AlphabeticalAppsList apps, BaseAdapterProvider[] adapterProviders) { + super(activityContext, inflater, apps, adapterProviders); + mGridSizer = new GridSpanSizer(); + mGridLayoutMgr = new AppsGridLayoutManager(mActivityContext); + mGridLayoutMgr.setSpanSizeLookup(mGridSizer); + setAppsPerRow(activityContext.getDeviceProfile().numShownAllAppsColumns); } /** - * Info about a particular adapter item (can be either section or app) + * Returns the grid layout manager. */ - public static class AdapterItem { - /** Common properties */ - // The index of this adapter item in the list - public int position; - // The type of this item - public int viewType; - - // The section name of this item. Note that there can be multiple items with different - // sectionNames in the same section - public String sectionName = null; - // The row that this item shows up on - public int rowIndex; - // The index of this app in the row - public int rowAppIndex; - // The associated ItemInfoWithIcon for the item - public ItemInfoWithIcon itemInfo = null; - // The index of this app not including sections - public int appIndex = -1; - // Search section associated to result - public DecorationInfo decorationInfo = null; - - /** - * Factory method for AppIcon AdapterItem - */ - public static AdapterItem asApp(int pos, String sectionName, AppInfo appInfo, - int appIndex) { - AdapterItem item = new AdapterItem(); - item.viewType = VIEW_TYPE_ICON; - item.position = pos; - item.sectionName = sectionName; - item.itemInfo = appInfo; - item.appIndex = appIndex; - return item; - } - - /** - * Factory method for empty search results view - */ - public static AdapterItem asEmptySearch(int pos) { - AdapterItem item = new AdapterItem(); - item.viewType = VIEW_TYPE_EMPTY_SEARCH; - item.position = pos; - return item; - } - - /** - * Factory method for a dividerView in AllAppsSearch - */ - public static AdapterItem asAllAppsDivider(int pos) { - AdapterItem item = new AdapterItem(); - item.viewType = VIEW_TYPE_ALL_APPS_DIVIDER; - item.position = pos; - return item; - } - - /** - * Factory method for a market search button - */ - public static AdapterItem asMarketSearch(int pos) { - AdapterItem item = new AdapterItem(); - item.viewType = VIEW_TYPE_SEARCH_MARKET; - item.position = pos; - return item; - } - - protected boolean isCountedForAccessibility() { - return viewType == VIEW_TYPE_ICON || viewType == VIEW_TYPE_SEARCH_MARKET; - } + public RecyclerView.LayoutManager getLayoutManager() { + return mGridLayoutMgr; } /** @@ -217,7 +116,7 @@ public class AllAppsGridAdapter extends */ private int getRowsNotForAccessibility(int adapterPosition) { List items = mApps.getAdapterItems(); - adapterPosition = Math.max(adapterPosition, mApps.getAdapterItems().size() - 1); + adapterPosition = Math.max(adapterPosition, items.size() - 1); int extraRows = 0; for (int i = 0; i <= adapterPosition; i++) { if (!isViewType(items.get(i).viewType, VIEW_TYPE_MASK_ICON)) { @@ -228,6 +127,20 @@ public class AllAppsGridAdapter extends } } + @Override + public void setAppsPerRow(int appsPerRow) { + mAppsPerRow = appsPerRow; + int totalSpans = mAppsPerRow; + for (BaseAdapterProvider adapterProvider : mAdapterProviders) { + for (int itemPerRow : adapterProvider.getSupportedItemsPerRowArray()) { + if (totalSpans % itemPerRow != 0) { + totalSpans *= itemPerRow; + } + } + } + mGridLayoutMgr.setSpanCount(totalSpans); + } + /** * Helper class to size the grid items. */ @@ -255,202 +168,4 @@ public class AllAppsGridAdapter extends } } } - - private final T mActivityContext; - private final LayoutInflater mLayoutInflater; - private final AlphabeticalAppsList mApps; - private final GridLayoutManager mGridLayoutMgr; - private final GridSpanSizer mGridSizer; - - private final OnClickListener mOnIconClickListener; - private OnLongClickListener mOnIconLongClickListener = INSTANCE_ALL_APPS; - - private int mAppsPerRow; - - private OnFocusChangeListener mIconFocusListener; - - // The text to show when there are no search results and no market search handler. - protected String mEmptySearchMessage; - // The click listener to send off to the market app, updated each time the search query changes. - private OnClickListener mMarketSearchClickListener; - - private final int mExtraHeight; - - public AllAppsGridAdapter(T activityContext, LayoutInflater inflater, - AlphabeticalAppsList apps, BaseAdapterProvider[] adapterProviders) { - Resources res = activityContext.getResources(); - mActivityContext = activityContext; - mApps = apps; - mEmptySearchMessage = res.getString(R.string.all_apps_loading_message); - mGridSizer = new GridSpanSizer(); - mGridLayoutMgr = new AppsGridLayoutManager(mActivityContext); - mGridLayoutMgr.setSpanSizeLookup(mGridSizer); - mLayoutInflater = inflater; - - mOnIconClickListener = mActivityContext.getItemOnClickListener(); - - mAdapterProviders = adapterProviders; - setAppsPerRow(mActivityContext.getDeviceProfile().numShownAllAppsColumns); - mExtraHeight = mActivityContext.getResources().getDimensionPixelSize( - R.dimen.all_apps_height_extra); - } - - public void setAppsPerRow(int appsPerRow) { - mAppsPerRow = appsPerRow; - int totalSpans = mAppsPerRow; - for (BaseAdapterProvider adapterProvider : mAdapterProviders) { - for (int itemPerRow : adapterProvider.getSupportedItemsPerRowArray()) { - if (totalSpans % itemPerRow != 0) { - totalSpans *= itemPerRow; - } - } - } - mGridLayoutMgr.setSpanCount(totalSpans); - } - - /** - * Sets the long click listener for icons - */ - public void setOnIconLongClickListener(@Nullable OnLongClickListener listener) { - mOnIconLongClickListener = listener; - } - - public static boolean isDividerViewType(int viewType) { - return isViewType(viewType, VIEW_TYPE_MASK_DIVIDER); - } - - public static boolean isIconViewType(int viewType) { - return isViewType(viewType, VIEW_TYPE_MASK_ICON); - } - - public static boolean isViewType(int viewType, int viewTypeMask) { - return (viewType & viewTypeMask) != 0; - } - - public void setIconFocusListener(OnFocusChangeListener focusListener) { - mIconFocusListener = focusListener; - } - - /** - * Sets the last search query that was made, used to show when there are no results and to also - * seed the intent for searching the market. - */ - public void setLastSearchQuery(String query, OnClickListener marketSearchClickListener) { - Resources res = mActivityContext.getResources(); - mEmptySearchMessage = res.getString(R.string.all_apps_no_search_results, query); - mMarketSearchClickListener = marketSearchClickListener; - } - - /** - * Returns the grid layout manager. - */ - public GridLayoutManager getLayoutManager() { - return mGridLayoutMgr; - } - - @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - switch (viewType) { - case VIEW_TYPE_ICON: - int layout = !FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get() ? R.layout.all_apps_icon - : R.layout.all_apps_icon_twoline; - BubbleTextView icon = (BubbleTextView) mLayoutInflater.inflate( - layout, parent, false); - icon.setLongPressTimeoutFactor(1f); - icon.setOnFocusChangeListener(mIconFocusListener); - icon.setOnClickListener(mOnIconClickListener); - icon.setOnLongClickListener(mOnIconLongClickListener); - // Ensure the all apps icon height matches the workspace icons in portrait mode. - icon.getLayoutParams().height = - mActivityContext.getDeviceProfile().allAppsCellHeightPx; - if (FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get()) { - icon.getLayoutParams().height += mExtraHeight; - } - return new ViewHolder(icon); - case VIEW_TYPE_EMPTY_SEARCH: - return new ViewHolder(mLayoutInflater.inflate(R.layout.all_apps_empty_search, - parent, false)); - case VIEW_TYPE_SEARCH_MARKET: - View searchMarketView = mLayoutInflater.inflate(R.layout.all_apps_search_market, - parent, false); - searchMarketView.setOnClickListener(mMarketSearchClickListener); - return new ViewHolder(searchMarketView); - case VIEW_TYPE_ALL_APPS_DIVIDER: - return new ViewHolder(mLayoutInflater.inflate( - R.layout.all_apps_divider, parent, false)); - default: - BaseAdapterProvider adapterProvider = getAdapterProvider(viewType); - if (adapterProvider != null) { - return adapterProvider.onCreateViewHolder(mLayoutInflater, parent, viewType); - } - throw new RuntimeException("Unexpected view type" + viewType); - } - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - switch (holder.getItemViewType()) { - case VIEW_TYPE_ICON: - AdapterItem adapterItem = mApps.getAdapterItems().get(position); - BubbleTextView icon = (BubbleTextView) holder.itemView; - icon.reset(); - if (adapterItem.itemInfo instanceof AppInfo) { - icon.applyFromApplicationInfo((AppInfo) adapterItem.itemInfo); - } else { - icon.applyFromItemInfoWithIcon(adapterItem.itemInfo); - } - break; - case VIEW_TYPE_EMPTY_SEARCH: - TextView emptyViewText = (TextView) holder.itemView; - emptyViewText.setText(mEmptySearchMessage); - emptyViewText.setGravity(mApps.hasNoFilteredResults() ? Gravity.CENTER : - Gravity.START | Gravity.CENTER_VERTICAL); - break; - case VIEW_TYPE_SEARCH_MARKET: - TextView searchView = (TextView) holder.itemView; - if (mMarketSearchClickListener != null) { - searchView.setVisibility(View.VISIBLE); - } else { - searchView.setVisibility(View.GONE); - } - break; - case VIEW_TYPE_ALL_APPS_DIVIDER: - // nothing to do - break; - default: - BaseAdapterProvider adapterProvider = getAdapterProvider(holder.getItemViewType()); - if (adapterProvider != null) { - adapterProvider.onBindView(holder, position); - } - } - } - - @Override - public void onViewRecycled(@NonNull ViewHolder holder) { - super.onViewRecycled(holder); - } - - @Override - public boolean onFailedToRecycleView(ViewHolder holder) { - // Always recycle and we will reset the view when it is bound - return true; - } - - @Override - public int getItemCount() { - return mApps.getAdapterItems().size(); - } - - @Override - public int getItemViewType(int position) { - AdapterItem item = mApps.getAdapterItems().get(position); - return item.viewType; - } - - @Nullable - private BaseAdapterProvider getAdapterProvider(int viewType) { - return Arrays.stream(mAdapterProviders).filter( - adapterProvider -> adapterProvider.isViewSupported(viewType)).findFirst().orElse( - null); - } } diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index 1a1d5211c2..a4a58b5f3a 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -18,7 +18,7 @@ package com.android.launcher3.allapps; import android.content.Context; -import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItem; +import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.model.data.AppInfo; import com.android.launcher3.util.ItemInfoMatcher; @@ -82,7 +82,7 @@ public class AlphabeticalAppsList implement // The of ordered component names as a result of a search query private ArrayList mSearchResults; - private AllAppsGridAdapter mAdapter; + private BaseAllAppsAdapter mAdapter; private AppInfoComparator mAppNameComparator; private final int mNumAppsPerRow; private int mNumAppRowsInAdapter; @@ -106,7 +106,7 @@ public class AlphabeticalAppsList implement /** * Sets the adapter to notify when this dataset changes. */ - public void setAdapter(AllAppsGridAdapter adapter) { + public void setAdapter(BaseAllAppsAdapter adapter) { mAdapter = adapter; } diff --git a/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java b/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java new file mode 100644 index 0000000000..1d1960d6e2 --- /dev/null +++ b/src/com/android/launcher3/allapps/BaseAllAppsAdapter.java @@ -0,0 +1,333 @@ +/* + * Copyright (C) 2022 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 com.android.launcher3.allapps; + +import static com.android.launcher3.touch.ItemLongClickListener.INSTANCE_ALL_APPS; + +import android.content.Context; +import android.content.res.Resources; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnFocusChangeListener; +import android.view.View.OnLongClickListener; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + +import com.android.launcher3.BubbleTextView; +import com.android.launcher3.R; +import com.android.launcher3.config.FeatureFlags; +import com.android.launcher3.model.data.AppInfo; +import com.android.launcher3.model.data.ItemInfoWithIcon; +import com.android.launcher3.views.ActivityContext; + +import java.util.Arrays; + +/** + * Adapter for all the apps. + * + * @param Type of context inflating all apps. + */ +public abstract class BaseAllAppsAdapter extends + RecyclerView.Adapter { + + public static final String TAG = "BaseAllAppsAdapter"; + + // A normal icon + public static final int VIEW_TYPE_ICON = 1 << 1; + // The message shown when there are no filtered results + public static final int VIEW_TYPE_EMPTY_SEARCH = 1 << 2; + // The message to continue to a market search when there are no filtered results + public static final int VIEW_TYPE_SEARCH_MARKET = 1 << 3; + + // We use various dividers for various purposes. They share enough attributes to reuse layouts, + // but differ in enough attributes to require different view types + + // A divider that separates the apps list and the search market button + public static final int VIEW_TYPE_ALL_APPS_DIVIDER = 1 << 4; + + // Common view type masks + public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_ALL_APPS_DIVIDER; + public static final int VIEW_TYPE_MASK_ICON = VIEW_TYPE_ICON; + + + protected final BaseAdapterProvider[] mAdapterProviders; + + /** + * ViewHolder for each icon. + */ + public static class ViewHolder extends RecyclerView.ViewHolder { + + public ViewHolder(View v) { + super(v); + } + } + + /** Sets the number of apps to be displayed in one row of the all apps screen. */ + public abstract void setAppsPerRow(int appsPerRow); + + /** + * Info about a particular adapter item (can be either section or app) + */ + public static class AdapterItem { + /** Common properties */ + // The index of this adapter item in the list + public int position; + // The type of this item + public int viewType; + + // The section name of this item. Note that there can be multiple items with different + // sectionNames in the same section + public String sectionName = null; + // The row that this item shows up on + public int rowIndex; + // The index of this app in the row + public int rowAppIndex; + // The associated ItemInfoWithIcon for the item + public ItemInfoWithIcon itemInfo = null; + // The index of this app not including sections + public int appIndex = -1; + // Search section associated to result + public DecorationInfo decorationInfo = null; + + /** + * Factory method for AppIcon AdapterItem + */ + public static AdapterItem asApp(int pos, String sectionName, AppInfo appInfo, + int appIndex) { + AdapterItem item = new AdapterItem(); + item.viewType = VIEW_TYPE_ICON; + item.position = pos; + item.sectionName = sectionName; + item.itemInfo = appInfo; + item.appIndex = appIndex; + return item; + } + + /** + * Factory method for empty search results view + */ + public static AdapterItem asEmptySearch(int pos) { + AdapterItem item = new AdapterItem(); + item.viewType = VIEW_TYPE_EMPTY_SEARCH; + item.position = pos; + return item; + } + + /** + * Factory method for a dividerView in AllAppsSearch + */ + public static AdapterItem asAllAppsDivider(int pos) { + AdapterItem item = new AdapterItem(); + item.viewType = VIEW_TYPE_ALL_APPS_DIVIDER; + item.position = pos; + return item; + } + + /** + * Factory method for a market search button + */ + public static AdapterItem asMarketSearch(int pos) { + AdapterItem item = new AdapterItem(); + item.viewType = VIEW_TYPE_SEARCH_MARKET; + item.position = pos; + return item; + } + + protected boolean isCountedForAccessibility() { + return viewType == VIEW_TYPE_ICON || viewType == VIEW_TYPE_SEARCH_MARKET; + } + } + + protected final T mActivityContext; + protected final AlphabeticalAppsList mApps; + // The text to show when there are no search results and no market search handler. + protected String mEmptySearchMessage; + protected int mAppsPerRow; + + private final LayoutInflater mLayoutInflater; + private final OnClickListener mOnIconClickListener; + private OnLongClickListener mOnIconLongClickListener = INSTANCE_ALL_APPS; + private OnFocusChangeListener mIconFocusListener; + // The click listener to send off to the market app, updated each time the search query changes. + private OnClickListener mMarketSearchClickListener; + private final int mExtraHeight; + + public BaseAllAppsAdapter(T activityContext, LayoutInflater inflater, + AlphabeticalAppsList apps, BaseAdapterProvider[] adapterProviders) { + Resources res = activityContext.getResources(); + mActivityContext = activityContext; + mApps = apps; + mEmptySearchMessage = res.getString(R.string.all_apps_loading_message); + mLayoutInflater = inflater; + + mOnIconClickListener = mActivityContext.getItemOnClickListener(); + + mAdapterProviders = adapterProviders; + mExtraHeight = res.getDimensionPixelSize(R.dimen.all_apps_height_extra); + } + + /** + * Sets the long click listener for icons + */ + public void setOnIconLongClickListener(@Nullable OnLongClickListener listener) { + mOnIconLongClickListener = listener; + } + + /** Checks if the passed viewType represents all apps divider. */ + public static boolean isDividerViewType(int viewType) { + return isViewType(viewType, VIEW_TYPE_MASK_DIVIDER); + } + + /** Checks if the passed viewType represents all apps icon. */ + public static boolean isIconViewType(int viewType) { + return isViewType(viewType, VIEW_TYPE_MASK_ICON); + } + + public void setIconFocusListener(OnFocusChangeListener focusListener) { + mIconFocusListener = focusListener; + } + + /** + * Sets the last search query that was made, used to show when there are no results and to also + * seed the intent for searching the market. + */ + public void setLastSearchQuery(String query, OnClickListener marketSearchClickListener) { + Resources res = mActivityContext.getResources(); + mEmptySearchMessage = res.getString(R.string.all_apps_no_search_results, query); + mMarketSearchClickListener = marketSearchClickListener; + } + + /** + * Returns the layout manager. + */ + public abstract RecyclerView.LayoutManager getLayoutManager(); + + @Override + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + switch (viewType) { + case VIEW_TYPE_ICON: + int layout = !FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get() ? R.layout.all_apps_icon + : R.layout.all_apps_icon_twoline; + BubbleTextView icon = (BubbleTextView) mLayoutInflater.inflate( + layout, parent, false); + icon.setLongPressTimeoutFactor(1f); + icon.setOnFocusChangeListener(mIconFocusListener); + icon.setOnClickListener(mOnIconClickListener); + icon.setOnLongClickListener(mOnIconLongClickListener); + // Ensure the all apps icon height matches the workspace icons in portrait mode. + icon.getLayoutParams().height = + mActivityContext.getDeviceProfile().allAppsCellHeightPx; + if (FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get()) { + icon.getLayoutParams().height += mExtraHeight; + } + return new ViewHolder(icon); + case VIEW_TYPE_EMPTY_SEARCH: + return new ViewHolder(mLayoutInflater.inflate(R.layout.all_apps_empty_search, + parent, false)); + case VIEW_TYPE_SEARCH_MARKET: + View searchMarketView = mLayoutInflater.inflate(R.layout.all_apps_search_market, + parent, false); + searchMarketView.setOnClickListener(mMarketSearchClickListener); + return new ViewHolder(searchMarketView); + case VIEW_TYPE_ALL_APPS_DIVIDER: + return new ViewHolder(mLayoutInflater.inflate( + R.layout.all_apps_divider, parent, false)); + default: + BaseAdapterProvider adapterProvider = getAdapterProvider(viewType); + if (adapterProvider != null) { + return adapterProvider.onCreateViewHolder(mLayoutInflater, parent, viewType); + } + throw new RuntimeException("Unexpected view type" + viewType); + } + } + + @Override + public void onBindViewHolder(ViewHolder holder, int position) { + switch (holder.getItemViewType()) { + case VIEW_TYPE_ICON: + AdapterItem adapterItem = mApps.getAdapterItems().get(position); + BubbleTextView icon = (BubbleTextView) holder.itemView; + icon.reset(); + if (adapterItem.itemInfo instanceof AppInfo) { + icon.applyFromApplicationInfo((AppInfo) adapterItem.itemInfo); + } else { + icon.applyFromItemInfoWithIcon(adapterItem.itemInfo); + } + break; + case VIEW_TYPE_EMPTY_SEARCH: + TextView emptyViewText = (TextView) holder.itemView; + emptyViewText.setText(mEmptySearchMessage); + emptyViewText.setGravity(mApps.hasNoFilteredResults() ? Gravity.CENTER : + Gravity.START | Gravity.CENTER_VERTICAL); + break; + case VIEW_TYPE_SEARCH_MARKET: + TextView searchView = (TextView) holder.itemView; + if (mMarketSearchClickListener != null) { + searchView.setVisibility(View.VISIBLE); + } else { + searchView.setVisibility(View.GONE); + } + break; + case VIEW_TYPE_ALL_APPS_DIVIDER: + // nothing to do + break; + default: + BaseAdapterProvider adapterProvider = getAdapterProvider(holder.getItemViewType()); + if (adapterProvider != null) { + adapterProvider.onBindView(holder, position); + } + } + } + + @Override + public void onViewRecycled(@NonNull ViewHolder holder) { + super.onViewRecycled(holder); + } + + @Override + public boolean onFailedToRecycleView(ViewHolder holder) { + // Always recycle and we will reset the view when it is bound + return true; + } + + @Override + public int getItemCount() { + return mApps.getAdapterItems().size(); + } + + @Override + public int getItemViewType(int position) { + AdapterItem item = mApps.getAdapterItems().get(position); + return item.viewType; + } + + protected static boolean isViewType(int viewType, int viewTypeMask) { + return (viewType & viewTypeMask) != 0; + } + + @Nullable + protected BaseAdapterProvider getAdapterProvider(int viewType) { + return Arrays.stream(mAdapterProviders).filter( + adapterProvider -> adapterProvider.isViewSupported(viewType)).findFirst().orElse( + null); + } +} diff --git a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java index bfc75153a5..f542d8eff8 100644 --- a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java @@ -44,7 +44,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.ColorUtils; -import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.android.launcher3.DeviceProfile; @@ -697,18 +696,21 @@ public abstract class BaseAllAppsContainerView mAppsList, + BaseAdapterProvider[] adapterProviders); + protected int getHeaderBottom() { return (int) getTranslationY(); } - /** Holds a {@link AllAppsGridAdapter} and related fields. */ + /** Holds a {@link BaseAllAppsAdapter} and related fields. */ public class AdapterHolder { public static final int MAIN = 0; public static final int WORK = 1; private final boolean mIsWork; - public final AllAppsGridAdapter adapter; - final LinearLayoutManager mLayoutManager; + public final BaseAllAppsAdapter adapter; + final RecyclerView.LayoutManager mLayoutManager; final AlphabeticalAppsList mAppsList; final Rect mPadding = new Rect(); AllAppsRecyclerView mRecyclerView; @@ -724,8 +726,7 @@ public abstract class BaseAllAppsContainerView(mActivityContext, getLayoutInflater(), mAppsList, - adapterProviders); + adapter = getAdapter(mAppsList, adapterProviders); mAppsList.setAdapter(adapter); mLayoutManager = adapter.getLayoutManager(); } diff --git a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java index 0137e2a2c0..fd8945a0f6 100644 --- a/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java +++ b/src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java @@ -33,7 +33,7 @@ import com.android.launcher3.BaseDraggingActivity; import com.android.launcher3.ExtendedEditText; import com.android.launcher3.Launcher; import com.android.launcher3.Utilities; -import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItem; +import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.search.SearchAlgorithm; import com.android.launcher3.search.SearchCallback; diff --git a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java index 4a886a457f..cb459eacb3 100644 --- a/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java +++ b/src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java @@ -38,9 +38,9 @@ import com.android.launcher3.ExtendedEditText; import com.android.launcher3.Insettable; import com.android.launcher3.R; import com.android.launcher3.allapps.ActivityAllAppsContainerView; -import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItem; import com.android.launcher3.allapps.AllAppsStore; import com.android.launcher3.allapps.AlphabeticalAppsList; +import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; import com.android.launcher3.allapps.SearchUiManager; import com.android.launcher3.search.SearchCallback; diff --git a/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java b/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java index 1f854c6787..222c8fea47 100644 --- a/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java +++ b/src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java @@ -23,7 +23,7 @@ import android.os.Handler; import androidx.annotation.AnyThread; import com.android.launcher3.LauncherAppState; -import com.android.launcher3.allapps.AllAppsGridAdapter.AdapterItem; +import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; import com.android.launcher3.model.AllAppsList; import com.android.launcher3.model.BaseModelUpdateTask; import com.android.launcher3.model.BgDataModel; From 9918df01af799a2849b17908c32e5894278990ff Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Tue, 1 Mar 2022 11:09:21 -0800 Subject: [PATCH 388/889] Don't use incorrect inputconsumers during recents animation Shell transitions resumes launcher. This was causing logic in launcher to pick incorrect inputconsumers which resulted in aborting animation logic. Bug: 220196913 Test: quickswitch very quickly Change-Id: I66d894436a6cc6eae57d505db8a7abf6c10ab00f --- .../src/com/android/quickstep/TouchInteractionService.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index fc5f34df9a..b224089fe8 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -762,7 +762,10 @@ public class TouchInteractionService extends Service } else if (gestureState.getRunningTask() == null) { return getDefaultInputConsumer(); } else if (previousGestureState.isRunningAnimationToLauncher() - || gestureState.getActivityInterface().isResumed() + || (gestureState.getActivityInterface().isResumed() + // with shell-transitions, home is resumed during recents animation, so + // explicitly check against recents animation too. + && !previousGestureState.isRecentsAnimationRunning()) || forceOverviewInputConsumer) { return createOverviewInputConsumer( previousGestureState, gestureState, event, forceOverviewInputConsumer); From 031a77022b5076302b0404e4309f36f031369b97 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Tue, 1 Mar 2022 20:00:36 +0000 Subject: [PATCH 389/889] Intercept workspace touch when Launcher is in AllApps bottom sheet Fix: 217571715 Test: Can't scroll workspace when AllApps bottomsheet is up Test: Can still scroll AllApps bottomsheet down Change-Id: I116f082ec6a6892cf5c7d0e1388a5771e6fdc4a6 --- .../launcher3/touch/WorkspaceTouchListener.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/com/android/launcher3/touch/WorkspaceTouchListener.java b/src/com/android/launcher3/touch/WorkspaceTouchListener.java index e8941e6969..fe0bf6d632 100644 --- a/src/com/android/launcher3/touch/WorkspaceTouchListener.java +++ b/src/com/android/launcher3/touch/WorkspaceTouchListener.java @@ -121,6 +121,9 @@ public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListe mLongPressState = STATE_COMPLETED; } + boolean isInAllAppsBottomSheet = mLauncher.isInState(ALL_APPS) + && mLauncher.getDeviceProfile().isTablet; + final boolean result; if (mLongPressState == STATE_COMPLETED) { // We have handled the touch, so workspace does not need to know anything anymore. @@ -136,8 +139,9 @@ public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListe result = true; } else { - // We don't want to handle touch, let workspace handle it as usual. - result = false; + // We don't want to handle touch unless we're in AllApps bottom sheet, let workspace + // handle it as usual. + result = isInAllAppsBottomSheet; } if (action == ACTION_UP || action == ACTION_POINTER_UP) { @@ -153,9 +157,7 @@ public class WorkspaceTouchListener extends GestureDetector.SimpleOnGestureListe if (action == ACTION_UP || action == ACTION_CANCEL) { cancelLongPress(); } - if (action == ACTION_UP - && mLauncher.isInState(ALL_APPS) - && mLauncher.getDeviceProfile().isTablet) { + if (action == ACTION_UP && isInAllAppsBottomSheet) { mLauncher.getStateManager().goToState(NORMAL); mLauncher.getStatsLogManager().logger() .withSrcState(ALL_APPS.statsLogOrdinal) From 1684d7a739451ae94e2d55491f9d86d675c3a9dd Mon Sep 17 00:00:00 2001 From: Becky Qiu Date: Tue, 15 Feb 2022 10:14:17 -0800 Subject: [PATCH 390/889] [OneSearch] Arm2 - Add feature flags. Added 2 flags to control web suggestion position and whether use fallback app results. Bug: 213953197 Test: no test needed Change-Id: Ia11c8bc9493fa4d61ced6982e7cac538201f1be2 --- src/com/android/launcher3/config/FeatureFlags.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 993431e904..3458ed1908 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -96,6 +96,13 @@ public final class FeatureFlags { getDebugFlag("ENABLE_FLOATING_SEARCH_BAR", false, "Keep All Apps search bar at the bottom (but above keyboard if open)"); + public static final BooleanFlag INJECT_WEB_TOP = new DeviceFlag("INJECT_WEB_TOP", false, + "Show web suggestions on top of the search results"); + + public static final BooleanFlag USE_FALLBACK_APP_SEARCH = new DeviceFlag( + "USE_FALLBACK_APP_SEARCH", false, + "Use fallback launcher app search results instead of AiAi app results"); + public static final BooleanFlag COLLECT_SEARCH_HISTORY = new DeviceFlag( "COLLECT_SEARCH_HISTORY", false, "Allow launcher to collect search history for log"); From 9f72c67e657057c1d8b40fbc1073e2c4f8b24d69 Mon Sep 17 00:00:00 2001 From: Jerry Chang Date: Fri, 25 Feb 2022 13:30:39 +0000 Subject: [PATCH 391/889] Fix split screen divider corners flicker Divider bar might be hidden before swipe-up gesture started when users touching task bar region. This makes sure to update visibility of divider bar only after gesture started. Fix: 219995626 Test: long press task bar region to stash/unstash task bar, divider bar won't be hidden as long as it didn't trigger swipe up gesture. Change-Id: Iacf690c84a3ad4b5e4fc9b066e9a1ecb8a8aa7d1 --- .../com/android/quickstep/AbsSwipeUpHandler.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 2cb7100378..9c28bce026 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -833,12 +833,9 @@ public abstract class AbsSwipeUpHandler, // Notify when the animation starts flushOnRecentsAnimationAndLauncherBound(); - // Start hiding the divider - setDividerShown(false /* shown */, false /* immediate */); - // Only add the callback to enable the input consumer after we actually have the controller mStateCallback.runOnceAtState(STATE_APP_CONTROLLER_RECEIVED | STATE_GESTURE_STARTED, - mRecentsAnimationController::enableInputConsumer); + this::startInterceptingTouchesForGesture); mStateCallback.setStateOnUiThread(STATE_APP_CONTROLLER_RECEIVED); mPassedOverviewThreshold = false; @@ -1457,6 +1454,17 @@ public abstract class AbsSwipeUpHandler, return swipePipToHomeAnimator; } + private void startInterceptingTouchesForGesture() { + if (mRecentsAnimationController == null) { + return; + } + + mRecentsAnimationController.enableInputConsumer(); + + // Start hiding the divider + setDividerShown(false /* shown */, true /* immediate */); + } + private void computeRecentsScrollIfInvisible() { if (mRecentsView != null && mRecentsView.getVisibility() != View.VISIBLE) { // Views typically don't compute scroll when invisible as an optimization, From 411c1b4856bebf06d770a06e4c4e4801373e4eae Mon Sep 17 00:00:00 2001 From: Chris Li Date: Wed, 2 Mar 2022 22:51:27 +0800 Subject: [PATCH 392/889] Transfer PipContentOverlay when swipe to home with Shell transition Update launcher to pass the taskId to Shell, so that Shell can reparent the overlay from the remote transition leash to the Task leash. Otherwise the overlay will be removed with the transition leash when transition is finished. Bug: 222030101 Test: verify with swipe to home with Shell transition Change-Id: I838c22951fdf79c3213f2c9b1cb73a4a90341597 --- .../src/com/android/quickstep/AbsSwipeUpHandler.java | 1 + quickstep/src/com/android/quickstep/SystemUiProxy.java | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 2cb7100378..95f659b787 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1760,6 +1760,7 @@ public abstract class AbsSwipeUpHandler, private void maybeFinishSwipeToHome() { if (mIsSwipingPipToHome && mSwipePipToHomeAnimators[0] != null) { SystemUiProxy.INSTANCE.get(mContext).stopSwipePipToHome( + mSwipePipToHomeAnimator.getTaskId(), mSwipePipToHomeAnimator.getComponentName(), mSwipePipToHomeAnimator.getDestinationBounds(), mSwipePipToHomeAnimator.getContentOverlay()); diff --git a/quickstep/src/com/android/quickstep/SystemUiProxy.java b/quickstep/src/com/android/quickstep/SystemUiProxy.java index 8b00f45426..3441b2cf64 100644 --- a/quickstep/src/com/android/quickstep/SystemUiProxy.java +++ b/quickstep/src/com/android/quickstep/SystemUiProxy.java @@ -541,11 +541,16 @@ public class SystemUiProxy implements ISystemUiProxy, return null; } - public void stopSwipePipToHome(ComponentName componentName, Rect destinationBounds, + /** + * Notifies WM Shell that launcher has finished all the animation for swipe to home. WM Shell + * can choose to fade out the overlay when entering PIP is finished, and WM Shell should be + * responsible for cleaning up the overlay. + */ + public void stopSwipePipToHome(int taskId, ComponentName componentName, Rect destinationBounds, SurfaceControl overlay) { if (mPip != null) { try { - mPip.stopSwipePipToHome(componentName, destinationBounds, overlay); + mPip.stopSwipePipToHome(taskId, componentName, destinationBounds, overlay); } catch (RemoteException e) { Log.w(TAG, "Failed call stopSwipePipToHome"); } From 6ecc69974b29941da92f9bd2300ae4b4d33b49f7 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Wed, 2 Mar 2022 19:07:38 +0000 Subject: [PATCH 393/889] Increase PromiseIconUiTest timeout temporarily - PromiseIcon installSession takes a long time to be created in certain device, incrase the timeout until b/222319304 is fixed Bug: 202985412 Test: labtest Change-Id: I51e6136b5a79e68f509745035206a6752f7318af --- .../android/launcher3/compat/PromiseIconUiTest.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/src/com/android/launcher3/compat/PromiseIconUiTest.java b/tests/src/com/android/launcher3/compat/PromiseIconUiTest.java index f34a29e9f8..92e3e64e4b 100644 --- a/tests/src/com/android/launcher3/compat/PromiseIconUiTest.java +++ b/tests/src/com/android/launcher3/compat/PromiseIconUiTest.java @@ -34,6 +34,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import java.util.UUID; +import java.util.concurrent.TimeUnit; /** @@ -44,6 +45,8 @@ import java.util.UUID; public class PromiseIconUiTest extends AbstractLauncherUiTest { private int mSessionId = -1; + // TODO(b/202985412): Revert to default timeout when PackageManager bug is fixed. + private static final long PROMISE_ICON_TIMEOUT = TimeUnit.SECONDS.toMillis(60); @Override public void setUp() throws Exception { @@ -85,7 +88,8 @@ public class PromiseIconUiTest extends AbstractLauncherUiTest { // Verify promise icon is added waitForLauncherCondition("Test Promise App not found on workspace", launcher -> - launcher.getWorkspace().getFirstMatch(findPromiseApp) != null); + launcher.getWorkspace().getFirstMatch(findPromiseApp) != null, + PROMISE_ICON_TIMEOUT); // Remove session mTargetContext.getPackageManager().getPackageInstaller().abandonSession(mSessionId); @@ -93,7 +97,8 @@ public class PromiseIconUiTest extends AbstractLauncherUiTest { // Verify promise icon is removed waitForLauncherCondition("Test Promise App not removed from workspace", launcher -> - launcher.getWorkspace().getFirstMatch(findPromiseApp) == null); + launcher.getWorkspace().getFirstMatch(findPromiseApp) == null, + PROMISE_ICON_TIMEOUT); } @Test @@ -111,6 +116,7 @@ public class PromiseIconUiTest extends AbstractLauncherUiTest { // Verify promise icon is not added waitForLauncherCondition("Test Promise App not found on workspace", launcher -> - launcher.getWorkspace().getFirstMatch(findPromiseApp) == null); + launcher.getWorkspace().getFirstMatch(findPromiseApp) == null, + PROMISE_ICON_TIMEOUT); } } From 652dee2a4042e792068266f533a298cca606f557 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 2 Mar 2022 19:26:33 +0000 Subject: [PATCH 394/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I8ac6e46267c8dcb6d4408ba1c016c76dd8597c99 --- quickstep/res/values-ar/strings.xml | 6 ++---- quickstep/res/values-as/strings.xml | 6 ++---- quickstep/res/values-az/strings.xml | 6 ++---- quickstep/res/values-be/strings.xml | 6 ++---- quickstep/res/values-bg/strings.xml | 6 ++---- quickstep/res/values-ca/strings.xml | 6 ++---- quickstep/res/values-cs/strings.xml | 6 ++---- quickstep/res/values-da/strings.xml | 6 ++---- quickstep/res/values-es/strings.xml | 6 ++---- quickstep/res/values-et/strings.xml | 6 ++---- quickstep/res/values-fi/strings.xml | 6 ++---- quickstep/res/values-fr-rCA/strings.xml | 6 ++---- quickstep/res/values-fr/strings.xml | 6 ++---- quickstep/res/values-gl/strings.xml | 6 ++---- quickstep/res/values-hu/strings.xml | 6 ++---- quickstep/res/values-is/strings.xml | 6 ++---- quickstep/res/values-it/strings.xml | 6 ++---- quickstep/res/values-iw/strings.xml | 6 ++---- quickstep/res/values-km/strings.xml | 6 ++---- quickstep/res/values-ko/strings.xml | 6 ++---- quickstep/res/values-lo/strings.xml | 6 ++---- quickstep/res/values-lt/strings.xml | 6 ++---- quickstep/res/values-lv/strings.xml | 6 ++---- quickstep/res/values-my/strings.xml | 6 ++---- quickstep/res/values-nb/strings.xml | 6 ++---- quickstep/res/values-ne/strings.xml | 6 ++---- quickstep/res/values-or/strings.xml | 14 ++++++-------- quickstep/res/values-si/strings.xml | 6 ++---- quickstep/res/values-sk/strings.xml | 6 ++---- quickstep/res/values-sq/strings.xml | 6 ++---- quickstep/res/values-sv/strings.xml | 6 ++---- quickstep/res/values-tl/strings.xml | 6 ++---- quickstep/res/values-tr/strings.xml | 6 ++---- quickstep/res/values-uk/strings.xml | 6 ++---- quickstep/res/values-vi/strings.xml | 6 ++---- quickstep/res/values-zh-rCN/strings.xml | 6 ++---- quickstep/res/values-zh-rHK/strings.xml | 6 ++---- quickstep/res/values-zh-rTW/strings.xml | 6 ++---- 38 files changed, 80 insertions(+), 156 deletions(-) diff --git a/quickstep/res/values-ar/strings.xml b/quickstep/res/values-ar/strings.xml index 58b26d1cd3..5deea3b6fd 100644 --- a/quickstep/res/values-ar/strings.xml +++ b/quickstep/res/values-ar/strings.xml @@ -102,10 +102,8 @@ "رجوع" "‏مفتاح التبديل إلى IME" "الأحدث" - - - - + "الإشعارات" + "إعدادات سريعة" "الانتقال إلى يمين الشاشة أو أعلاها" "الانتقال إلى يسار الشاشة أو أسفلها" diff --git a/quickstep/res/values-as/strings.xml b/quickstep/res/values-as/strings.xml index 38a506f265..d48c2f1793 100644 --- a/quickstep/res/values-as/strings.xml +++ b/quickstep/res/values-as/strings.xml @@ -102,10 +102,8 @@ "উভতি যাওক" "IME ছুইচ্চাৰ" "শেহতীয়া" - - - - + "জাননী" + "ক্ষিপ্ৰ ছেটিং" "ওপৰৰ বাঁওফাললৈ নিয়ক" "তলৰ সোঁফাললৈ নিয়ক" diff --git a/quickstep/res/values-az/strings.xml b/quickstep/res/values-az/strings.xml index 74fcb63faf..9cea3c6b7a 100644 --- a/quickstep/res/values-az/strings.xml +++ b/quickstep/res/values-az/strings.xml @@ -102,10 +102,8 @@ "Geriyə" "IME keçiricisi" "Sonuncular" - - - - + "Bildirişlər" + "Sürətli Ayarlar" "Yuxarı/sola köçürün" "Aşağı/sağa köçürün" diff --git a/quickstep/res/values-be/strings.xml b/quickstep/res/values-be/strings.xml index 4872f7d61b..16aec9b6de 100644 --- a/quickstep/res/values-be/strings.xml +++ b/quickstep/res/values-be/strings.xml @@ -102,10 +102,8 @@ "Назад" "Выключальнік IME" "Нядаўнія" - - - - + "Апавяшчэнні" + "Хуткія налады" "Перамясціць уверх/улева" "Перамясціць уніз/управа" diff --git a/quickstep/res/values-bg/strings.xml b/quickstep/res/values-bg/strings.xml index 3fea5ee55e..2d3dc60116 100644 --- a/quickstep/res/values-bg/strings.xml +++ b/quickstep/res/values-bg/strings.xml @@ -102,10 +102,8 @@ "Назад" "Редактор за метода на въвежд.: Превключвател" "Скорошни" - - - - + "Известия" + "Бързи настройки" "Преместване горе/вляво" "Преместване долу/вдясно" diff --git a/quickstep/res/values-ca/strings.xml b/quickstep/res/values-ca/strings.xml index 0f6c4862dd..8a6d1534eb 100644 --- a/quickstep/res/values-ca/strings.xml +++ b/quickstep/res/values-ca/strings.xml @@ -102,10 +102,8 @@ "Enrere" "Selector d\'IME" "Recents" - - - - + "Notificacions" + "Config. ràpida" "Mou a la part superior o a l\'esquerra" "Mou a la part inferior o a la dreta" diff --git a/quickstep/res/values-cs/strings.xml b/quickstep/res/values-cs/strings.xml index 6aef1a48e5..c2071033e9 100644 --- a/quickstep/res/values-cs/strings.xml +++ b/quickstep/res/values-cs/strings.xml @@ -102,10 +102,8 @@ "Zpět" "Přepínač IME" "Poslední" - - - - + "Oznámení" + "Rychlé nastavení" "Přesunout doleva nahoru" "Přesunout doprava dolů" diff --git a/quickstep/res/values-da/strings.xml b/quickstep/res/values-da/strings.xml index c2e66812cb..e53dfb0e5b 100644 --- a/quickstep/res/values-da/strings.xml +++ b/quickstep/res/values-da/strings.xml @@ -102,10 +102,8 @@ "Tilbage" "IME-vælger" "Seneste" - - - - + "Notifikationer" + "Kvikmenu" "Flyt til toppen eller venstre side" "Flyt til bunden eller højre side" diff --git a/quickstep/res/values-es/strings.xml b/quickstep/res/values-es/strings.xml index b5dc6e610d..0916fc23ed 100644 --- a/quickstep/res/values-es/strings.xml +++ b/quickstep/res/values-es/strings.xml @@ -102,10 +102,8 @@ "Atrás" "Interruptor IME" "Recientes" - - - - + "Notificaciones" + "Ajustes rápidos" "Mover arriba/a la izquierda" "Mover abajo/a la derecha" diff --git a/quickstep/res/values-et/strings.xml b/quickstep/res/values-et/strings.xml index 950263f263..5b4b1ce6f0 100644 --- a/quickstep/res/values-et/strings.xml +++ b/quickstep/res/values-et/strings.xml @@ -102,10 +102,8 @@ "Tagasi" "IME vahetaja" "Hiljutised" - - - - + "Märguanded" + "Kiirseaded" "Teisalda üles/vasakule" "Teisalda alla/paremale" diff --git a/quickstep/res/values-fi/strings.xml b/quickstep/res/values-fi/strings.xml index 9505039bf0..4677edab9b 100644 --- a/quickstep/res/values-fi/strings.xml +++ b/quickstep/res/values-fi/strings.xml @@ -102,10 +102,8 @@ "Takaisin" "IME-vaihtopalvelu" "Viimeaikaiset" - - - - + "Ilmoitukset" + "Pika-asetukset" "Siirrä ylös tai vasemmalle" "Siirrä alas tai oikealle" diff --git a/quickstep/res/values-fr-rCA/strings.xml b/quickstep/res/values-fr-rCA/strings.xml index e34cb5d328..2a38ff862d 100644 --- a/quickstep/res/values-fr-rCA/strings.xml +++ b/quickstep/res/values-fr-rCA/strings.xml @@ -102,10 +102,8 @@ "Retour" "Sélecteur IME" "Récents" - - - - + "Notifications" + "Paramètres rapides" "Déplacer vers le coin supérieur gauche de l\'écran" "Déplacer vers le coin inférieur droit de l\'écran" diff --git a/quickstep/res/values-fr/strings.xml b/quickstep/res/values-fr/strings.xml index 3c28c4649e..c1dd76e6ea 100644 --- a/quickstep/res/values-fr/strings.xml +++ b/quickstep/res/values-fr/strings.xml @@ -102,10 +102,8 @@ "Retour" "Sélecteur IME" "Récents" - - - - + "Notifications" + "Réglages rapides" "Déplacer en haut ou à gauche" "Déplacer en bas ou à droite" diff --git a/quickstep/res/values-gl/strings.xml b/quickstep/res/values-gl/strings.xml index 4095f7d52c..8702947875 100644 --- a/quickstep/res/values-gl/strings.xml +++ b/quickstep/res/values-gl/strings.xml @@ -102,10 +102,8 @@ "Atrás" "Selector do IME" "Recentes" - - - - + "Notificacións" + "Configuración rápida" "Mover á parte superior ou á esquerda" "Mover á parte inferior ou á dereita" diff --git a/quickstep/res/values-hu/strings.xml b/quickstep/res/values-hu/strings.xml index 5b1aff9896..a84dadd706 100644 --- a/quickstep/res/values-hu/strings.xml +++ b/quickstep/res/values-hu/strings.xml @@ -102,10 +102,8 @@ "Vissza" "IME-váltó" "Legutóbbiak" - - - - + "Értesítések" + "Gyorsbeállítások" "Mozgatás felülre vagy a bal oldalra" "Mozgatás alulra vagy a jobb oldalra" diff --git a/quickstep/res/values-is/strings.xml b/quickstep/res/values-is/strings.xml index 13275522a1..f888bea9db 100644 --- a/quickstep/res/values-is/strings.xml +++ b/quickstep/res/values-is/strings.xml @@ -102,10 +102,8 @@ "Til baka" "Breyta innsláttaraðferð" "Nýlegt" - - - - + "Tilkynningar" + "Flýtistillingar" "Færa efst/til vinstri" "Færa neðst/til hægri" diff --git a/quickstep/res/values-it/strings.xml b/quickstep/res/values-it/strings.xml index a555636db1..344c2a15cd 100644 --- a/quickstep/res/values-it/strings.xml +++ b/quickstep/res/values-it/strings.xml @@ -102,10 +102,8 @@ "Indietro" "Selettore IME" "Recenti" - - - - + "Notifiche" + "Impostazioni rapide" "Sposta in alto/a sinistra" "Sposta in basso/a destra" diff --git a/quickstep/res/values-iw/strings.xml b/quickstep/res/values-iw/strings.xml index cd97903de4..25d92cb8ef 100644 --- a/quickstep/res/values-iw/strings.xml +++ b/quickstep/res/values-iw/strings.xml @@ -102,10 +102,8 @@ "חזרה" "‏כלי להחלפת IME" "לאחרונה" - - - - + "התראות" + "הגדרות מהירות" "העברה לפינה השמאלית/העליונה" "העברה לפינה הימנית/התחתונה" diff --git a/quickstep/res/values-km/strings.xml b/quickstep/res/values-km/strings.xml index 3295a636ef..e006c6af5e 100644 --- a/quickstep/res/values-km/strings.xml +++ b/quickstep/res/values-km/strings.xml @@ -102,10 +102,8 @@ "ថយក្រោយ" "ប៊ូតុងប្ដូរ IME" "ថ្មីៗ" - - - - + "ការ​ជូនដំណឹង" + "ការកំណត់រហ័ស" "ផ្លាស់ទីទៅខាងលើ/ឆ្វេង" "ផ្លាស់ទីទៅខាងក្រោម/ស្ដាំ" diff --git a/quickstep/res/values-ko/strings.xml b/quickstep/res/values-ko/strings.xml index 08e5642068..d9ff591592 100644 --- a/quickstep/res/values-ko/strings.xml +++ b/quickstep/res/values-ko/strings.xml @@ -102,10 +102,8 @@ "뒤로" "IME 전환기" "최근 항목" - - - - + "알림" + "빠른 설정" "상단/왼쪽으로 이동" "하단/오른쪽으로 이동" diff --git a/quickstep/res/values-lo/strings.xml b/quickstep/res/values-lo/strings.xml index 4c1791f112..5c95b03951 100644 --- a/quickstep/res/values-lo/strings.xml +++ b/quickstep/res/values-lo/strings.xml @@ -102,10 +102,8 @@ "ກັບຄືນ" "ຕົວສະຫຼັບ IME" "ຫຼ້າສຸດ" - - - - + "ການແຈ້ງເຕືອນ" + "ການຕັ້ງຄ່າດ່ວນ" "ຍ້າຍໄປຊ້າຍ/ເທິງ" "ຍ້າຍໄປຂວາ/ລຸ່ມ" diff --git a/quickstep/res/values-lt/strings.xml b/quickstep/res/values-lt/strings.xml index 95a7e86a9a..8b3d2ce587 100644 --- a/quickstep/res/values-lt/strings.xml +++ b/quickstep/res/values-lt/strings.xml @@ -102,10 +102,8 @@ "Atgal" "IMRP perjungiklis" "Naujausi" - - - - + "Pranešimai" + "Spartieji nustatymai" "Perkelti aukštyn, kairėn" "Perkelti žemyn, dešinėn" diff --git a/quickstep/res/values-lv/strings.xml b/quickstep/res/values-lv/strings.xml index f3de0b7f5c..99a71fbb4e 100644 --- a/quickstep/res/values-lv/strings.xml +++ b/quickstep/res/values-lv/strings.xml @@ -102,10 +102,8 @@ "Atpakaļ" "IME pārslēdzējs" "Nesenie" - - - - + "Paziņojumi" + "Ātrie iestatīj." "Pārvietot uz augšējo/kreiso stūri" "Pārvietot uz apakšējo/labo stūri" diff --git a/quickstep/res/values-my/strings.xml b/quickstep/res/values-my/strings.xml index d09165aa02..ef6052e492 100644 --- a/quickstep/res/values-my/strings.xml +++ b/quickstep/res/values-my/strings.xml @@ -102,10 +102,8 @@ "နောက်သို့" "IME ပြောင်းစနစ်" "လတ်တလောများ" - - - - + "အကြောင်းကြားချက်" + "အမြန်ဆက်တင်များ" "အပေါ်/ဘယ်ဘက်သို့ ရွှေ့ရန်" "အောက်ခြေ/ညာဘက်သို့ ရွှေ့ရန်" diff --git a/quickstep/res/values-nb/strings.xml b/quickstep/res/values-nb/strings.xml index 6d143bdc7f..a81c779533 100644 --- a/quickstep/res/values-nb/strings.xml +++ b/quickstep/res/values-nb/strings.xml @@ -102,10 +102,8 @@ "Tilbake" "IME-veksler" "Nylige" - - - - + "Varsler" + "Hurtiginnst." "Flytt til øverst/venstre" "Flytt til nederst/høyre" diff --git a/quickstep/res/values-ne/strings.xml b/quickstep/res/values-ne/strings.xml index cd3383b5fe..3c5d64fa24 100644 --- a/quickstep/res/values-ne/strings.xml +++ b/quickstep/res/values-ne/strings.xml @@ -102,10 +102,8 @@ "पछाडि जानुहोस्" "IME स्विचर" "हालसालैका बटनहरू" - - - - + "सूचनाहरू" + "द्रुत सेटिङ" "सिरान/बायाँतिर सार्नुहोस्" "फेद/दायाँतिर सार्नुहोस्" diff --git a/quickstep/res/values-or/strings.xml b/quickstep/res/values-or/strings.xml index 77407833f3..bb810f02f8 100644 --- a/quickstep/res/values-or/strings.xml +++ b/quickstep/res/values-or/strings.xml @@ -22,7 +22,7 @@ "ପିନ୍‍" "ଫ୍ରିଫର୍ମ" "କୌଣସି ସାମ୍ପ୍ରତିକ ଆଇଟମ୍ ନାହିଁ" - "ଆପ୍‍ ବ୍ୟବହାର ସେଟିଂସ୍‍" + "ଆପ ବ୍ୟବହାର ସେଟିଂସ" "ସବୁ ଖାଲି କରନ୍ତୁ" "ବର୍ତ୍ତମାନର ଆପ୍‌" "ଟାସ୍କ ବନ୍ଦ ହୋଇଯାଇଛି" @@ -38,7 +38,7 @@ "ଆପଣଙ୍କର ସବୁଠାରୁ ଅଧିକ-ବ୍ୟବହୃତ ଆପଗୁଡ଼ିକୁ, ସିଧା ମୂଳ ସ୍କ୍ରିନରେ ସହଜରେ ଆକ୍ସେସ୍ କରନ୍ତୁ। ଆପଣଙ୍କ ରୁଟିନଗୁଡ଼ିକ ଆଧାରରେ ପରାମର୍ଶଗୁଡ଼ିକ ପରିବର୍ତ୍ତିତ ହେବ। ତଳ ଧାଡ଼ିରେ ଥିବା ଆପଗୁଡ଼ିକ ଏକ ନୂଆ ଫୋଲ୍ଡରକୁ ମୁଭ୍ କରିଯିବ।" "ଆପ୍ ପରାମର୍ଶଗୁଡ଼ିକ ପାଆନ୍ତୁ" "ନାହିଁ, ଥାଉ" - "ସେଟିଂସ୍" + "ସେଟିଂସ" "ସବୁଠାରୁ ଅଧିକ-ବ୍ୟବହୃତ ଆପଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯାଏ ଏବଂ ରୁଟିନଗୁଡ଼ିକ ଆଧାରରେ ପରିବର୍ତ୍ତିତ ହୋଇଥାଏ" "ଆପ୍ ପରାମର୍ଶଗୁଡ଼ିକ ପାଇବାକୁ ଆପଗୁଡ଼ିକୁ ତଳ ଧାଡ଼ିରୁ ଟାଣି ଆଣନ୍ତୁ" "ଆପ୍ ପରାମର୍ଶଗୁଡ଼ିକ ଖାଲି ସ୍ଥାନରେ ଯୋଗ କରାଯାଇଛି" @@ -69,14 +69,14 @@ "ଆପଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ, ଧରି ରଖନ୍ତୁ, ତା\'ପରେ ରିଲିଜ୍ କରନ୍ତୁ।" "ସବୁ ପ୍ରସ୍ତୁତ" "ହୋଇଗଲା" - "ସେଟିଂସ୍" + "ସେଟିଂସ" "ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ" "ବଢ଼ିଆ!" "ଟ୍ୟୁଟୋରିଆଲ୍ %1$d/%2$d" "ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପ୍ରସ୍ତୁତ!" "ମୂଳପୃଷ୍ଠାକୁ ଯିବା ପାଇଁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ" "ଆପଣ ଆପଣଙ୍କ ଫୋନ୍ ବ୍ୟବହାର କରିବା ପାଇଁ ପ୍ରସ୍ତୁତ ଅଛନ୍ତି" - "ସିଷ୍ଟମ୍ ନାଭିଗେସନ୍ ସେଟିଂସ୍" + "ସିଷ୍ଟମ ନାଭିଗେସନ ସେଟିଂସ" "ସେୟାର୍ କରନ୍ତୁ" "ସ୍କ୍ରିନସଟ୍" "ସ୍ପ୍ଲିଟ୍" @@ -102,10 +102,8 @@ "ପଛକୁ ଫେରନ୍ତୁ" "IME ସ୍ୱିଚର" "ବର୍ତ୍ତମାନର" - - - - + "ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ" + "କ୍ୱିକ ସେଟିଂସ" "ଶୀର୍ଷ/ବାମକୁ ମୁଭ କରନ୍ତୁ" "ନିମ୍ନ/ଡାହାଣକୁ ମୁଭ କରନ୍ତୁ" diff --git a/quickstep/res/values-si/strings.xml b/quickstep/res/values-si/strings.xml index 990017e0ce..3c15a851c7 100644 --- a/quickstep/res/values-si/strings.xml +++ b/quickstep/res/values-si/strings.xml @@ -102,10 +102,8 @@ "ආපසු" "IME මාරුව" "මෑත" - - - - + "දැනුම්දීම්" + "ඉක්මන් සැකසීම්" "ඉහළ/වම වෙත ගෙන යන්න" "පහළ/දකුණ වෙත ගෙන යන්න" diff --git a/quickstep/res/values-sk/strings.xml b/quickstep/res/values-sk/strings.xml index a18f72ca6d..155da05c18 100644 --- a/quickstep/res/values-sk/strings.xml +++ b/quickstep/res/values-sk/strings.xml @@ -102,10 +102,8 @@ "Späť" "Prepínač IME" "Nedávne" - - - - + "Upozornenia" + "Rýchle nastavenia" "Presunúť hore alebo doľava" "Presunúť dole alebo doprava" diff --git a/quickstep/res/values-sq/strings.xml b/quickstep/res/values-sq/strings.xml index f2b2fa8520..999768c230 100644 --- a/quickstep/res/values-sq/strings.xml +++ b/quickstep/res/values-sq/strings.xml @@ -102,10 +102,8 @@ "Pas" "Çelësi IME" "Të fundit" - - - - + "Njoftimet" + "Cilësimet shpejt" "Lëviz në krye/majtas" "Lëviz në fund/djathtas" diff --git a/quickstep/res/values-sv/strings.xml b/quickstep/res/values-sv/strings.xml index 2f1b75af4e..49f20c08c9 100644 --- a/quickstep/res/values-sv/strings.xml +++ b/quickstep/res/values-sv/strings.xml @@ -102,10 +102,8 @@ "Tillbaka" "IME-väljare" "Senaste" - - - - + "Aviseringar" + "Snabbinställn." "Flytta högst upp/till vänster" "Flytta längst ned/till höger" diff --git a/quickstep/res/values-tl/strings.xml b/quickstep/res/values-tl/strings.xml index 3ecae96b30..71b01b6cc0 100644 --- a/quickstep/res/values-tl/strings.xml +++ b/quickstep/res/values-tl/strings.xml @@ -102,10 +102,8 @@ "Bumalik" "IME switcher" "Mga Kamakailan" - - - - + "Mga Notification" + "Quick Settings" "Ilipat sa itaas/kaliwa" "Ilipat sa ibaba/kanan" diff --git a/quickstep/res/values-tr/strings.xml b/quickstep/res/values-tr/strings.xml index 19ced47d01..5e9a84b39b 100644 --- a/quickstep/res/values-tr/strings.xml +++ b/quickstep/res/values-tr/strings.xml @@ -102,10 +102,8 @@ "Geri" "IME değiştirici" "Son Kullanılanlar" - - - - + "Bildirimler" + "Hızlı Ayarlar" "Sol üste taşı" "Sağ alta taşı" diff --git a/quickstep/res/values-uk/strings.xml b/quickstep/res/values-uk/strings.xml index 231d128aca..2e0d3f7dd2 100644 --- a/quickstep/res/values-uk/strings.xml +++ b/quickstep/res/values-uk/strings.xml @@ -102,10 +102,8 @@ "Назад" "Перемикач IME" "Нещодавні" - - - - + "Сповіщення" + "Швидкі налаштув." "Перемістити вгору або вліво" "Перемістити вниз або вправо" diff --git a/quickstep/res/values-vi/strings.xml b/quickstep/res/values-vi/strings.xml index 1072c3a17a..e3c66988a6 100644 --- a/quickstep/res/values-vi/strings.xml +++ b/quickstep/res/values-vi/strings.xml @@ -102,10 +102,8 @@ "Quay lại" "Trình chuyển đổi IME" "Gần đây" - - - - + "Thông báo" + "Cài đặt nhanh" "Chuyển lên trên cùng/sang bên trái" "Chuyển xuống dưới cùng/sang bên phải" diff --git a/quickstep/res/values-zh-rCN/strings.xml b/quickstep/res/values-zh-rCN/strings.xml index 4587d58778..a42476c836 100644 --- a/quickstep/res/values-zh-rCN/strings.xml +++ b/quickstep/res/values-zh-rCN/strings.xml @@ -102,10 +102,8 @@ "返回" "IME 切换器" "最近用过" - - - - + "通知" + "快捷设置" "移到顶部/左侧" "移到底部/右侧" diff --git a/quickstep/res/values-zh-rHK/strings.xml b/quickstep/res/values-zh-rHK/strings.xml index 2810771d2f..f2fd5446cd 100644 --- a/quickstep/res/values-zh-rHK/strings.xml +++ b/quickstep/res/values-zh-rHK/strings.xml @@ -102,10 +102,8 @@ "返回" "輸入法編輯器切換工具" "最近" - - - - + "通知" + "快速設定" "移至上方/左側" "移至底部/右側" diff --git a/quickstep/res/values-zh-rTW/strings.xml b/quickstep/res/values-zh-rTW/strings.xml index 847cb91507..f1fe624cee 100644 --- a/quickstep/res/values-zh-rTW/strings.xml +++ b/quickstep/res/values-zh-rTW/strings.xml @@ -102,10 +102,8 @@ "返回" "輸入法編輯器切換器" "最近使用" - - - - + "通知" + "快速設定" "移到上方/左側" "移到底部/右側" From 5a2d58c05da1f7889b7baefc659b0c517c7beaad Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 2 Mar 2022 19:27:29 +0000 Subject: [PATCH 395/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I6831d3b82953ea10ea0ee4a473c3b174e522913f --- go/quickstep/res/values-or/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go/quickstep/res/values-or/strings.xml b/go/quickstep/res/values-or/strings.xml index 36204a32ce..2e76e2d972 100644 --- a/go/quickstep/res/values-or/strings.xml +++ b/go/quickstep/res/values-or/strings.xml @@ -7,13 +7,13 @@ "Lens" "ବୁଝିଗଲି" "ବାତିଲ୍ କରନ୍ତୁ" - "ସେଟିଂସ୍" + "ସେଟିଂସ" "ସ୍କିନରେ ଥିବା ଟେକ୍ସଟକୁ ଅନୁବାଦ କରନ୍ତୁ କିମ୍ବା ଶୁଣନ୍ତୁ" - "ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଟେକ୍ସଟ୍, ୱେବ୍ ଠିକଣା ଏବଂ ସ୍କ୍ରିନସଟଗୁଡ଼ିକ ପରି ସୂଚନାକୁ Google ସହ ସେୟାର୍ କରାଯାଇପାରେ।\n\nଆପଣ କେଉଁ ସୂଚନା ସେୟାର୍ କରନ୍ତି ତାହା ପରିବର୍ତ୍ତନ କରିବାକୁ, ""ସେଟିଂସ୍ > ଆପ୍ସ > ଡିଫଲ୍ଟ ଆପ୍ସ > ଡିଜିଟାଲ୍ ଆସିଷ୍ଟାଣ୍ଟ ଆପ""କୁ ଯାଆନ୍ତୁ।" + "ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଟେକ୍ସଟ, ୱେବ ଠିକଣା ଏବଂ ସ୍କ୍ରିନସଟଗୁଡ଼ିକ ପରି ସୂଚନାକୁ Google ସହ ସେୟାର କରାଯାଇପାରେ।\n\nଆପଣ କେଉଁ ସୂଚନାକୁ ସେୟାର କରନ୍ତି ତାହା ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ, ""ସେଟିଂସ > ଆପ୍ସ > ଡିଫଲ୍ଟ ଆପ୍ସ > Digital assistant ଆପ""କୁ ଯାଆନ୍ତୁ।" "ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ ଏକ ଆସିଷ୍ଟାଣ୍ଟ ବାଛନ୍ତୁ" - "ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଥିବା ଟେକ୍ସଟକୁ ଶୁଣିବା ପାଇଁ କିମ୍ବା ଅନୁବାଦ କରିବାକୁ, ସେଟିଂସରେ ଏକ ଡିଜିଟାଲ୍ ଆସିଷ୍ଟାଣ୍ଟ ଆପ୍ ଚୟନ କରନ୍ତୁ" + "ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଥିବା ଟେକ୍ସଟକୁ ଶୁଣିବା କିମ୍ବା ଅନୁବାଦ କରିବା ପାଇଁ, ସେଟିଂସରେ ଏକ digital assistant ଆପ ବାଛନ୍ତୁ" "ଏହି ଫିଚର୍ ବ୍ୟବହାର କରିବା ପାଇଁ ଆପଣଙ୍କ ଆସିଷ୍ଟାଣ୍ଟକୁ ବଦଳାନ୍ତୁ" - "ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଥିବା ଟେକ୍ସଟକୁ ଶୁଣିବା ପାଇଁ କିମ୍ବା ଅନୁବାଦ କରିବାକୁ, ସେଟିଂସରେ ଆପଣଙ୍କ ଡିଜିଟାଲ୍ ଆସିଷ୍ଟାଣ୍ଟ ଆପକୁ ବଦଳାନ୍ତୁ" + "ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଥିବା ଟେକ୍ସଟକୁ ଶୁଣିବା କିମ୍ବା ଅନୁବାଦ କରିବା ପାଇଁ, ସେଟିଂସରେ ଆପଣଙ୍କ Digital assistant ଆପକୁ ବଦଳାନ୍ତୁ" "ଏହି ସ୍କ୍ରିନରେ ଥିବା ଟେକ୍ସଟକୁ ଶୁଣିବା ପାଇଁ ଏଠାରେ ଟାପ୍ କରନ୍ତୁ" "ଏହି ସ୍କ୍ରିନରେ ଥିବା ଟେକ୍ସଟକୁ ଅନୁବାଦ କରିବା ପାଇଁ ଏଠାରେ ଟାପ୍ କରନ୍ତୁ" "ଏହି ଆପ ସେୟାର କରାଯାଇପାରିବ ନାହିଁ" From e40b16c9ea46f28573833f2ac743761be1c3c552 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 2 Mar 2022 19:28:44 +0000 Subject: [PATCH 396/889] Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I1f13e513f700ee28ef7c27bab324d747df4d03c3 --- res/values-de/strings.xml | 2 +- res/values-or/strings.xml | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index a0c784f1fb..1ddd6528f5 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -103,7 +103,7 @@ "Ordner: %1$s, %2$d oder mehr Elemente" "Hintergründe" "Hintergrund & Stil" - "Startbildschirm-Einstellungen" + "Einstellungen" "Von deinem Administrator deaktiviert" "Drehen des Startbildschirms zulassen" "Beim Drehen des Smartphones" diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml index 1149e021d8..56121910b3 100644 --- a/res/values-or/strings.xml +++ b/res/values-or/strings.xml @@ -53,9 +53,9 @@ "ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ" "ଉପଯୋଗୀ ସୂଚନା ଆପଣଙ୍କ ପାଖରେ ସହଜରେ ଉପଲବ୍ଧ" "ଆପଗୁଡ଼ିକୁ ନଖୋଲି ସୂଚନା ପାଇବା ପାଇଁ, ଆପଣ ଆପଣଙ୍କ ମୂଳସ୍କ୍ରିନରେ ୱିଜେଟଗୁଡ଼ିକୁ ଯୋଗ କରିପାରିବେ" - "ୱିଜେଟ୍ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରିବାକୁ ଟାପ୍ କରନ୍ତୁ" + "ୱିଜେଟ ସେଟିଂସ ପରିବର୍ତ୍ତନ କରିବାକୁ ଟାପ କରନ୍ତୁ" "ବୁଝିଗଲି" - "ୱିଜେଟ୍ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" + "ୱିଜେଟ ସେଟିଂସ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" "ଆପ୍‌ ଖୋଜନ୍ତୁ" "ଆପ୍‌ ଲୋଡ୍‌ ହେଉଛି..." "\"%1$s\" ସହିତ ମେଳ ହେଉଥିବା କୌଣସି ଆପ୍‌ ମିଳିଲା ନାହିଁ" @@ -79,10 +79,10 @@ "ପୂର୍ବାନୁମାନକୁ ପିନ୍ କରନ୍ତୁ" "ସର୍ଟକଟ୍‍ ଇନଷ୍ଟଲ୍‌ କରନ୍ତୁ" "ୟୁଜରଙ୍କ ବିନା ହସ୍ତକ୍ଷେପରେ ଶର୍ଟକଟ୍‌ ଯୋଡ଼ିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।" - "ହୋମ୍‌ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ପଢ଼ନ୍ତୁ" - "ହୋମରେ ସେଟିଙ୍ଗ ପଢ଼ିବାକୁ ଆପ ଏବଂ ଶର୍ଟକଟକୁ ଅନୁମତି ଦିଏ।" - "ହୋମ୍‌ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ଲେଖନ୍ତୁ" - "ହୋମରେ ସେଟିଙ୍ଗ ଏବଂ ଶର୍ଟକଟ୍‌ ପରିବର୍ତ୍ତନ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଏ।" + "ହୋମ ସେଟିଂସ ଏବଂ ସର୍ଟକଟ ପଢ଼ନ୍ତୁ" + "ହୋମରେ ସେଟିଂସ ଏବଂ ସର୍ଟକଟକୁ ପଢ଼ିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଏ।" + "ହୋମ ସେଟିଂସ ଏବଂ ସର୍ଟକଟ ଲେଖନ୍ତୁ" + "ହୋମରେ ସେଟିଂସ ଏବଂ ସର୍ଟକଟକୁ ପରିବର୍ତ୍ତନ କରିବା ପାଇଁ ଆପକୁ ଅନୁମତି ଦିଏ।" "ଫୋନ୍‌ କଲ୍‌ କରିବାକୁ %1$sକୁ ଅନୁମତି ଦିଆଯାଇ ନାହିଁ" "ୱିଜେଟ୍ ଲୋଡ୍ କରାଯାଇପାରିବ ନାହିଁ" "ୱିଜେଟ ସେଟିଂସ" @@ -103,7 +103,7 @@ "ଫୋଲ୍ଡର୍: %1$s, %2$d କିମ୍ବା ଅଧିକ ଆଇଟମ୍" "ୱାଲପେପର୍‌" "ୱାଲପେପର୍ ଏବଂ ଷ୍ଟାଇଲ୍" - "ହୋମ୍‌ ସେଟିଂସ୍" + "ହୋମ ସେଟିଂସ" "ଆପଣଙ୍କ ଆଡମିନଙ୍କ ଦ୍ୱାରା ଅକ୍ଷମ କରାଯାଇଛି" "ହୋମ୍‌ ସ୍କ୍ରିନ୍ ବୁଲାଇବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ" "ଯେତେବେଳେ ଫୋନକୁ ବୁଲାଯାଇଥାଏ" @@ -112,7 +112,7 @@ "ବନ୍ଦ କରନ୍ତୁ" "ବିଜ୍ଞପ୍ତି ଆକ୍ସେସ୍‌ ଆବଶ୍ୟକ ଅଟେ" "ବିଜ୍ଞପ୍ତି ବିନ୍ଦୁ ଦେଖାଇବାକୁ, %1$s ପାଇଁ ଆପ୍‌ ବିଜ୍ଞପ୍ତି ଅନ୍‌ କରନ୍ତୁ" - "ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" + "ସେଟିଂସ ପରିବର୍ତ୍ତନ କରନ୍ତୁ" "ବିଜ୍ଞପ୍ତି ଡଟ୍‌ଗୁଡ଼ିକୁ ଦେଖାନ୍ତୁ" "ହୋମ୍ ସ୍କ୍ରିନରେ ଆପ୍ ଆଇକନଗୁଡ଼ିକୁ ଯୋଗ କରନ୍ତୁ" "ନୂଆ ଆପ୍‌ ପାଇଁ" From 1bc23b76621219ce289c9a5606616dbae35b2578 Mon Sep 17 00:00:00 2001 From: Brian Isganitis Date: Thu, 24 Feb 2022 18:57:59 -0800 Subject: [PATCH 397/889] Ignore touches in taskbar and all apps windows during system drag. Touches are ignored as soon as we want to start system drag so that system drag can start sooner (i.e. before any AbstractFloatingView animations finish). This approach utilizes ViewTreeObserverWrapper's compute insets listener by temporarily setting the touch region to empty. The taskbar window remains fullscreen until the drag finishes so the touch region is reset at the right point. Similarly, the all apps window is kept open during its drag operations until the drag finishes. System drag state is now exposed through the drag controller to skip predrag. Test: Manual by dragging to split screen and triggering dismissal animation from both windows. Verified predrag works. Fix: 221104066 Fix: 220070070 Change-Id: I424106269c841f58cbe5338d30b6c33fbd889019 --- .../launcher3/taskbar/BaseTaskbarContext.java | 3 ++ .../taskbar/TaskbarActivityContext.java | 17 ++++++++++ .../taskbar/TaskbarDragController.java | 6 ++++ .../taskbar/TaskbarDragLayerController.java | 7 +++-- .../allapps/TaskbarAllAppsContext.java | 31 ++++++++++++++++++- .../allapps/TaskbarAllAppsController.java | 11 +++++-- .../allapps/TaskbarAllAppsViewController.java | 2 +- 7 files changed, 70 insertions(+), 7 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java b/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java index 17635df355..27e89baa90 100644 --- a/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/BaseTaskbarContext.java @@ -64,6 +64,9 @@ public abstract class BaseTaskbarContext extends ContextThemeWrapper implements /** Callback invoked when a drag is initiated within this context. */ public abstract void onDragStart(); + /** Callback invoked when a drag is finished within this context. */ + public abstract void onDragEnd(); + /** Callback invoked when a popup is shown or closed within this context. */ public abstract void onPopupVisibilityChanged(boolean isVisible); } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 2c2cc434ac..fa0a60684f 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; +import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED; @@ -385,6 +386,11 @@ public class TaskbarActivityContext extends BaseTaskbarContext { setTaskbarWindowFullscreen(true); } + @Override + public void onDragEnd() { + maybeSetTaskbarWindowNotFullscreen(); + } + @Override public void onPopupVisibilityChanged(boolean isVisible) { setTaskbarWindowFocusable(isVisible); @@ -488,6 +494,17 @@ public class TaskbarActivityContext extends BaseTaskbarContext { setTaskbarWindowHeight(fullscreen ? MATCH_PARENT : mLastRequestedNonFullscreenHeight); } + /** + * Reverts Taskbar window to its original size, if all floating views are closed and there is + * no system drag operation in progress. + */ + void maybeSetTaskbarWindowNotFullscreen() { + if (AbstractFloatingView.getAnyView(this, TYPE_ALL) == null + && !mControllers.taskbarDragController.isSystemDragInProgress()) { + setTaskbarWindowFullscreen(false); + } + } + public boolean isTaskbarWindowFullscreen() { return mIsFullscreen; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java index 12b11959e8..24c5d0e75b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java @@ -391,11 +391,17 @@ public class TaskbarDragController extends DragController im return super.isDragging() || mIsSystemDragInProgress; } + /** {@code true} if the system is currently handling the drag. */ + public boolean isSystemDragInProgress() { + return mIsSystemDragInProgress; + } + private void maybeOnDragEnd() { if (!isDragging()) { ((BubbleTextView) mDragObject.originalView).getIcon().setIsDisabled(false); mControllers.taskbarAutohideSuspendController.updateFlag( TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING, false); + mActivity.onDragEnd(); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java index 1bd76b99bb..cdac497c4c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragLayerController.java @@ -181,6 +181,9 @@ public class TaskbarDragLayerController implements TaskbarControllers.LoggableTa } else if (!mControllers.uiController.isTaskbarTouchable()) { // Let touches pass through us. insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); + } else if (mControllers.taskbarDragController.isSystemDragInProgress()) { + // Let touches pass through us. + insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); } else if (mControllers.taskbarViewController.areIconsVisible() || AbstractFloatingView.getOpenView(mActivity, TYPE_ALL) != null || mActivity.isNavBarKidsModeActive()) { @@ -208,9 +211,7 @@ public class TaskbarDragLayerController implements TaskbarControllers.LoggableTa * Called when a child is removed from TaskbarDragLayer. */ public void onDragLayerViewRemoved() { - if (AbstractFloatingView.getAnyView(mActivity, TYPE_ALL) == null) { - mActivity.setTaskbarWindowFullscreen(false); - } + mActivity.maybeSetTaskbarWindowNotFullscreen(); } /** diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java index 4245119e7f..7f3add3761 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java @@ -19,6 +19,8 @@ import static android.view.KeyEvent.ACTION_UP; import static android.view.KeyEvent.KEYCODE_BACK; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; +import static com.android.systemui.shared.system.ViewTreeObserverWrapper.InsetsInfo.TOUCHABLE_INSETS_REGION; + import android.content.Context; import android.view.KeyEvent; import android.view.View; @@ -37,6 +39,9 @@ import com.android.launcher3.taskbar.TaskbarStashController; import com.android.launcher3.util.OnboardingPrefs; import com.android.launcher3.util.TouchController; import com.android.launcher3.views.BaseDragLayer; +import com.android.systemui.shared.system.ViewTreeObserverWrapper; +import com.android.systemui.shared.system.ViewTreeObserverWrapper.InsetsInfo; +import com.android.systemui.shared.system.ViewTreeObserverWrapper.OnComputeInsetsListener; /** * Window context for the taskbar all apps overlay. @@ -48,6 +53,7 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { private final TaskbarActivityContext mTaskbarContext; private final OnboardingPrefs mOnboardingPrefs; + private final TaskbarAllAppsController mWindowController; private final TaskbarAllAppsViewController mAllAppsViewController; private final TaskbarDragController mDragController; private final TaskbarAllAppsDragLayer mDragLayer; @@ -66,6 +72,7 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { mDragLayer = new TaskbarAllAppsDragLayer(this); TaskbarAllAppsSlideInView slideInView = (TaskbarAllAppsSlideInView) mLayoutInflater.inflate( R.layout.taskbar_all_apps, mDragLayer, false); + mWindowController = windowController; mAllAppsViewController = new TaskbarAllAppsViewController( this, slideInView, @@ -127,11 +134,17 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { @Override public void onDragStart() {} + @Override + public void onDragEnd() { + mWindowController.maybeCloseWindow(); + } + @Override public void onPopupVisibilityChanged(boolean isVisible) {} /** Root drag layer for this context. */ - private static class TaskbarAllAppsDragLayer extends BaseDragLayer { + private static class TaskbarAllAppsDragLayer extends + BaseDragLayer implements OnComputeInsetsListener { private TaskbarAllAppsDragLayer(Context context) { super(context, null, 1); @@ -142,9 +155,17 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); + ViewTreeObserverWrapper.addOnComputeInsetsListener( + getViewTreeObserver(), this); mActivity.mAllAppsViewController.show(); } + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + ViewTreeObserverWrapper.removeOnComputeInsetsListener(this); + } + @Override public void recreateControllers() { mControllers = new TouchController[]{mActivity.mDragController}; @@ -160,5 +181,13 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { } return super.dispatchKeyEvent(event); } + + @Override + public void onComputeInsets(InsetsInfo inoutInfo) { + if (mActivity.mDragController.isSystemDragInProgress()) { + inoutInfo.touchableRegion.setEmpty(); + inoutInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); + } + } } } diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java index 93024521d4..87133fcb5a 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java @@ -17,6 +17,8 @@ package com.android.launcher3.taskbar.allapps; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; +import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; + import android.content.Context; import android.graphics.PixelFormat; import android.view.Gravity; @@ -129,11 +131,16 @@ public final class TaskbarAllAppsController implements OnDeviceProfileChangeList } /** - * Removes the all apps window from the hierarchy. + * Removes the all apps window from the hierarchy, if all floating views are closed and there is + * no system drag operation in progress. *

* This method should be called after an exit animation finishes, if applicable. */ - void closeWindow() { + void maybeCloseWindow() { + if (AbstractFloatingView.getOpenView(mAllAppsContext, TYPE_ALL) != null + || mAllAppsContext.getDragController().isSystemDragInProgress()) { + return; + } mProxyView.close(false); mTaskbarContext.removeOnDeviceProfileChangeListener(this); Optional.ofNullable(mAllAppsContext) diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsViewController.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsViewController.java index c1abaaca06..648c486eb4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsViewController.java @@ -49,7 +49,7 @@ final class TaskbarAllAppsViewController { setUpIconLongClick(); setUpAppDivider(); setUpTaskbarStashing(); - mSlideInView.addOnCloseListener(windowController::closeWindow); + mSlideInView.addOnCloseListener(windowController::maybeCloseWindow); } /** Starts the {@link TaskbarAllAppsSlideInView} enter transition. */ From 01bbf1a8f3f2e5882278cd427611fdb4ebf427f9 Mon Sep 17 00:00:00 2001 From: Evan Rosky Date: Wed, 2 Mar 2022 16:18:44 -0800 Subject: [PATCH 398/889] Switch to persist.wm.debug For use with systemui flag flipping Bug: 219067621 Test: manual Change-Id: I5477b961bfdbe4e9103173c1c7f8daf03ce5eee4 --- quickstep/src/com/android/quickstep/TaskAnimationManager.java | 4 ++-- .../src/com/android/quickstep/AbstractQuickStepTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/quickstep/TaskAnimationManager.java b/quickstep/src/com/android/quickstep/TaskAnimationManager.java index 5e298f4b8d..fa1eb61e29 100644 --- a/quickstep/src/com/android/quickstep/TaskAnimationManager.java +++ b/quickstep/src/com/android/quickstep/TaskAnimationManager.java @@ -49,9 +49,9 @@ import java.util.HashMap; public class TaskAnimationManager implements RecentsAnimationCallbacks.RecentsAnimationListener { public static final boolean ENABLE_SHELL_TRANSITIONS = - SystemProperties.getBoolean("persist.debug.shell_transit", false); + SystemProperties.getBoolean("persist.wm.debug.shell_transit", false); public static final boolean SHELL_TRANSITIONS_ROTATION = ENABLE_SHELL_TRANSITIONS - && SystemProperties.getBoolean("persist.debug.shell_transit_rotate", false); + && SystemProperties.getBoolean("persist.wm.debug.shell_transit_rotate", false); private RecentsAnimationController mController; private RecentsAnimationCallbacks mCallbacks; diff --git a/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java b/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java index fb7fda13a4..09f0858618 100644 --- a/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java +++ b/quickstep/tests/src/com/android/quickstep/AbstractQuickStepTest.java @@ -36,7 +36,7 @@ import org.junit.rules.TestRule; */ public abstract class AbstractQuickStepTest extends AbstractLauncherUiTest { static final boolean ENABLE_SHELL_TRANSITIONS = - SystemProperties.getBoolean("persist.debug.shell_transit", false); + SystemProperties.getBoolean("persist.wm.debug.shell_transit", false); @Override protected TestRule getRulesInsideActivityMonitor() { return RuleChain. From 5a915fb8834fc9b12aa4a2e72f1eb3fcf7852199 Mon Sep 17 00:00:00 2001 From: Iris Yang Date: Thu, 17 Feb 2022 03:20:37 +0000 Subject: [PATCH 399/889] Get display id from display instead of the display of root view Since `getRootView()` will increase the execution time, use `getDisplay()` instead. Bug: 202825727 Test: manually Change-Id: I22ef58cb39716433cd8e91200837ab49229ae3e1 (cherry picked from commit 6a06d8615f24769381e340a544c71d56a79ff25c) --- quickstep/src/com/android/quickstep/views/TaskView.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index 984b0efb55..1d621dc740 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -725,7 +725,8 @@ public class TaskView extends FrameLayout implements Reusable { TestLogging.recordEvent( TestProtocol.SEQUENCE_MAIN, "startActivityFromRecentsAsync", mTask); ActivityOptionsWrapper opts = mActivity.getActivityLaunchOptions(this, null); - opts.options.setLaunchDisplayId(getRootViewDisplayId()); + opts.options.setLaunchDisplayId( + getDisplay() == null ? DEFAULT_DISPLAY : getDisplay().getDisplayId()); if (ActivityManagerWrapper.getInstance() .startActivityFromRecents(mTask.key, opts.options)) { RecentsView recentsView = getRecentsView(); @@ -766,7 +767,8 @@ public class TaskView extends FrameLayout implements Reusable { // Indicate success once the system has indicated that the transition has started ActivityOptions opts = ActivityOptionsCompat.makeCustomAnimation( getContext(), 0, 0, () -> callback.accept(true), MAIN_EXECUTOR.getHandler()); - opts.setLaunchDisplayId(getRootViewDisplayId()); + opts.setLaunchDisplayId( + getDisplay() == null ? DEFAULT_DISPLAY : getDisplay().getDisplayId()); if (freezeTaskList) { ActivityOptionsCompat.setFreezeRecentTasksList(opts); } From ede8ad8ec9102c3a3dae63dc88c13ba814b73831 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Thu, 3 Mar 2022 18:23:03 +0000 Subject: [PATCH 400/889] Use shared insets resize animation duration for taskbar stashing This is a no-op since they are the same value (by design), but using the constant directly will prevent potential divergences in the future. Test: none Bug: 191269755 Change-Id: I81b98045466398b7a49de872694004e526adf048 --- .../com/android/launcher3/taskbar/TaskbarStashController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 1d5fa4d47b..a4f5a25fd6 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -33,6 +33,7 @@ import com.android.launcher3.Utilities; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.quickstep.AnimatedFloat; import com.android.quickstep.SystemUiProxy; +import com.android.systemui.shared.system.WindowManagerWrapper; import java.io.PrintWriter; import java.util.StringJoiner; @@ -68,7 +69,8 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba /** * How long to stash/unstash when manually invoked via long press. */ - public static final long TASKBAR_STASH_DURATION = 300; + public static final long TASKBAR_STASH_DURATION = + WindowManagerWrapper.ANIMATION_DURATION_RESIZE; /** * How long to stash/unstash when keyboard is appearing/disappearing. From 1d7848aedb4f809e5415b5e517b2ad73de72cea2 Mon Sep 17 00:00:00 2001 From: Thiru Ramasamy Date: Mon, 28 Feb 2022 20:03:21 -0800 Subject: [PATCH 401/889] Add OneSearch SuggestionType enums to launcher atom. Bug: 222001231 Test: wwdebug && wwlogcat - http://gpaste/6024652376768512 Change-Id: I6062a5fc6c4046521923f564b99a8150c561c0a2 --- protos/launcher_atom.proto | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/protos/launcher_atom.proto b/protos/launcher_atom.proto index c5599887dd..84892f190a 100644 --- a/protos/launcher_atom.proto +++ b/protos/launcher_atom.proto @@ -156,6 +156,12 @@ enum Attribute { ALL_APPS_SEARCH_RESULT_LEGACY_SHORTCUT = 30; ALL_APPS_SEARCH_RESULT_ASSISTANT_MEMORY = 31; + // Suggestion Type provided by AGA + ONE_SEARCH_WEB_QUERY = 32; + ONE_SEARCH_WEB_TRENDING = 33; + ONE_SEARCH_WEB_ENTITY = 34; + ONE_SEARCH_WEB_ANSWER = 35; + WIDGETS_BOTTOM_TRAY = 28; WIDGETS_TRAY_PREDICTION = 29; } From 27d33e299469fbc627be8c346555e91630502721 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Thu, 3 Mar 2022 06:35:03 +0000 Subject: [PATCH 402/889] Address some insets issues in Taskbar All Apps - Don't report insets change to underlying app when stashing taskbar during all apps transition - Internally override all apps insets to take stashing into account - Don't offset all apps window by display cutouts, as we handle them internally via padding internally - Also Fix bug where "stashing" taskbar in 3 button mode (which just fades out taskbar icons but keeps nav buttons) was reporting smaller insets to apps Test: 1) open all apps in Calculator, ensure Calculator doesn't adjust insets and all apps has bottom content padding but no nav scrim 2) in 3 button mode, scroll to bottom of all apps and can read last row icon labels 3) enable display cutout in developer options, ensure no change to tests 1 and 2, and all apps scrim fills the screen (including behind cutout) Fixes: 219980805 Change-Id: Ic3c6a744bc675e4ea277d22c4c0b3b353eddd905 --- .../taskbar/TaskbarStashController.java | 10 ++--- .../allapps/TaskbarAllAppsContext.java | 41 +++++++++++++++++++ .../allapps/TaskbarAllAppsController.java | 2 + 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 1d5fa4d47b..d083602a78 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -60,10 +60,10 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // If any of these flags are enabled, inset apps by our stashed height instead of our unstashed // height. This way the reported insets are consistent even during transitions out of the app. - // Currently any flag that causes us to stash in an app is included, except for IME since that - // covers the underlying app anyway and thus the app shouldn't change insets. + // Currently any flag that causes us to stash in an app is included, except for IME or All Apps + // since those cover the underlying app anyway and thus the app shouldn't change insets. private static final int FLAGS_REPORT_STASHED_INSETS_TO_APP = FLAGS_STASHED_IN_APP - & ~FLAG_STASHED_IN_APP_IME; + & ~FLAG_STASHED_IN_APP_IME & ~FLAG_STASHED_IN_APP_ALL_APPS; /** * How long to stash/unstash when manually invoked via long press. @@ -187,7 +187,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba * Returns whether the taskbar can visually stash into a handle based on the current device * state. */ - private boolean supportsVisualStashing() { + public boolean supportsVisualStashing() { return !mActivity.isThreeButtonNav(); } @@ -254,7 +254,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba * Returns the height that taskbar will inset when inside apps. */ public int getContentHeightToReportToApps() { - if (hasAnyFlag(FLAGS_REPORT_STASHED_INSETS_TO_APP)) { + if (supportsVisualStashing() && hasAnyFlag(FLAGS_REPORT_STASHED_INSETS_TO_APP)) { boolean isAnimating = mAnimator != null && mAnimator.isStarted(); return mControllers.stashedHandleViewController.isStashedHandleVisible() || isAnimating ? mStashedHeight : 0; diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java index 7f3add3761..a67ca7089b 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsContext.java @@ -22,8 +22,10 @@ import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; import static com.android.systemui.shared.system.ViewTreeObserverWrapper.InsetsInfo.TOUCHABLE_INSETS_REGION; import android.content.Context; +import android.graphics.Insets; import android.view.KeyEvent; import android.view.View; +import android.view.WindowInsets; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.DeviceProfile; @@ -59,6 +61,10 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { private final TaskbarAllAppsDragLayer mDragLayer; private final TaskbarAllAppsContainerView mAppsView; + // We automatically stash taskbar when all apps is opened in gesture navigation mode. + private final boolean mWillTaskbarBeVisuallyStashed; + private final int mStashedTaskbarHeight; + TaskbarAllAppsContext( TaskbarActivityContext taskbarContext, TaskbarAllAppsController windowController, @@ -79,6 +85,9 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { windowController, taskbarStashController); mAppsView = slideInView.getAppsView(); + + mWillTaskbarBeVisuallyStashed = taskbarStashController.supportsVisualStashing(); + mStashedTaskbarHeight = taskbarStashController.getStashedHeight(); } TaskbarAllAppsViewController getAllAppsViewController() { @@ -189,5 +198,37 @@ class TaskbarAllAppsContext extends BaseTaskbarContext { inoutInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION); } } + + @Override + public WindowInsets onApplyWindowInsets(WindowInsets insets) { + return updateInsetsDueToStashing(insets); + } + + /** + * Taskbar automatically stashes when opening all apps, but we don't report the insets as + * changing to avoid moving the underlying app. But internally, the apps view should still + * layout according to the stashed insets rather than the unstashed insets. So this method + * does two things: + * 1) Sets navigationBars bottom inset to stashedHeight. + * 2) Sets tappableInsets bottom inset to 0. + */ + private WindowInsets updateInsetsDueToStashing(WindowInsets oldInsets) { + if (!mActivity.mWillTaskbarBeVisuallyStashed) { + return oldInsets; + } + WindowInsets.Builder updatedInsetsBuilder = new WindowInsets.Builder(oldInsets); + + Insets oldNavInsets = oldInsets.getInsets(WindowInsets.Type.navigationBars()); + Insets newNavInsets = Insets.of(oldNavInsets.left, oldNavInsets.top, oldNavInsets.right, + mActivity.mStashedTaskbarHeight); + updatedInsetsBuilder.setInsets(WindowInsets.Type.navigationBars(), newNavInsets); + + Insets oldTappableInsets = oldInsets.getInsets(WindowInsets.Type.tappableElement()); + Insets newTappableInsets = Insets.of(oldTappableInsets.left, oldTappableInsets.top, + oldTappableInsets.right, 0); + updatedInsetsBuilder.setInsets(WindowInsets.Type.tappableElement(), newTappableInsets); + + return updatedInsetsBuilder.build(); + } } } diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java index 87133fcb5a..321ff79308 100644 --- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java +++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java @@ -15,6 +15,7 @@ */ package com.android.launcher3.taskbar.allapps; +import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; @@ -158,6 +159,7 @@ public final class TaskbarAllAppsController implements OnDeviceProfileChangeList layoutParams.gravity = Gravity.BOTTOM; layoutParams.packageName = mTaskbarContext.getPackageName(); layoutParams.setFitInsetsTypes(0); // Handled by container view. + layoutParams.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; layoutParams.setSystemApplicationOverlay(true); return layoutParams; } From 854f34dcc3cfa3d4645d435364f7d8fed9d11d35 Mon Sep 17 00:00:00 2001 From: thiruram Date: Wed, 2 Mar 2022 10:42:44 -0800 Subject: [PATCH 403/889] Add empty implementation for item_attributes field on Launcher. Test: make -j64 NexusLauncher Change-Id: Ie2781017018b9c0397f2322399cbd0267c988296 (cherry picked from commit e294eadc7425a9066c67fd11ab3f59bbd04920cc) --- .../quickstep/logging/StatsLogCompatManager.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 12a638a804..04fc3ba181 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -141,7 +141,9 @@ public class StatsLogCompatManager extends StatsLogManager { getCardinality(info) /* cardinality */, info.getWidget().getSpanX(), info.getWidget().getSpanY(), - getFeatures(info)); + getFeatures(info), + null /* attributes */ + ); } /** @@ -170,7 +172,8 @@ public class StatsLogCompatManager extends StatsLogManager { info.getAttribute().getNumber(), // attribute_id = 15; getCardinality(info), // cardinality = 16; info.getWidget().getSpanX(), // span_x = 17 [default = 1]; - info.getWidget().getSpanY() // span_y = 18 [default = 1]; + info.getWidget().getSpanY(), // span_y = 18 [default = 1]; + null /* attributes */ ); } @@ -413,7 +416,8 @@ public class StatsLogCompatManager extends StatsLogManager { atomInfo.getFolderIcon().getLabelInfo() /* edittext */, getCardinality(atomInfo) /* cardinality */, getFeatures(atomInfo) /* features */, - getSearchAttributes(atomInfo) /* searchAttributes */ + getSearchAttributes(atomInfo) /* searchAttributes */, + null /* attributes */ ); } } From ac736e7dac6355aead42e6b0315904182935db04 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 3 Mar 2022 20:00:42 +0000 Subject: [PATCH 404/889] Provide content insets while in SUW in portrait mode - We keep the app setup flag set, but adjust the insets to inset SUW itself in portrait Bug: 219879035 Test: With both 3button and gesture nav, verify that portrait mode SUW is always inset Change-Id: Iad0b6c41feaa3fb169af75c071b7f9544b42bab7 --- .../android/launcher3/taskbar/TaskbarStashController.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index d083602a78..08e3416a4f 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -29,6 +29,7 @@ import android.annotation.Nullable; import android.content.SharedPreferences; import android.view.ViewConfiguration; +import com.android.launcher3.DeviceProfile; import com.android.launcher3.Utilities; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; import com.android.quickstep.AnimatedFloat; @@ -255,6 +256,13 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba */ public int getContentHeightToReportToApps() { if (supportsVisualStashing() && hasAnyFlag(FLAGS_REPORT_STASHED_INSETS_TO_APP)) { + DeviceProfile dp = mActivity.getDeviceProfile(); + if (hasAnyFlag(FLAG_STASHED_IN_APP_SETUP) && dp.isTaskbarPresent && !dp.isLandscape) { + // We always show the back button in SUW but in portrait the SUW layout may not + // be wide enough to support overlapping the nav bar with its content. For now, + // just inset by the bar height. + return mUnstashedHeight; + } boolean isAnimating = mAnimator != null && mAnimator.isStarted(); return mControllers.stashedHandleViewController.isStashedHandleVisible() || isAnimating ? mStashedHeight : 0; From a56a197e148f02b4af033dfbe3846b6b0541579f Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Thu, 3 Mar 2022 23:38:36 +0000 Subject: [PATCH 405/889] Properly animate canceled deep shortcut drag back to original icon - Added getFirstMatch() instead of using mapOverItems() (was a bit cleaner using ItemInfoMatcher) - Match based on package name / UserHandle for deep shortcuts case Test: drag deep shortcut from taskbar icon, inside folder, inside all apps; drag regular icons as well Fixes: 222574524 Change-Id: Id5fdee29110f143c1125edc6945af09ab0a8d8ce --- .../taskbar/TaskbarDragController.java | 32 ++++++++----------- .../launcher3/taskbar/TaskbarView.java | 30 ++++++++++++++--- .../taskbar/TaskbarViewController.java | 19 +++++++++-- 3 files changed, 56 insertions(+), 25 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java index 24c5d0e75b..af98b7f224 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java @@ -16,6 +16,7 @@ package com.android.launcher3.taskbar; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_ALL_APPS; +import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -55,20 +56,20 @@ import com.android.launcher3.dragndrop.DragDriver; import com.android.launcher3.dragndrop.DragOptions; import com.android.launcher3.dragndrop.DragView; import com.android.launcher3.dragndrop.DraggableView; -import com.android.launcher3.folder.FolderIcon; import com.android.launcher3.graphics.DragPreviewProvider; import com.android.launcher3.logging.StatsLogManager; -import com.android.launcher3.model.data.FolderInfo; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.popup.PopupContainerWithArrow; import com.android.launcher3.shortcuts.DeepShortcutView; import com.android.launcher3.shortcuts.ShortcutDragPreviewProvider; -import com.android.launcher3.util.LauncherBindableItemsContainer; +import com.android.launcher3.util.IntSet; +import com.android.launcher3.util.ItemInfoMatcher; import com.android.systemui.shared.recents.model.Task; import java.io.PrintWriter; import java.util.Arrays; +import java.util.Collections; /** * Handles long click on Taskbar items to start a system drag and drop operation. @@ -422,23 +423,18 @@ public class TaskbarDragController extends DragController im ItemInfo item = (ItemInfo) tag; TaskbarViewController taskbarViewController = mControllers.taskbarViewController; if (item.container == CONTAINER_ALL_APPS) { - // Since all apps closes when the drag starts, target the all apps button instead + // Since all apps closes when the drag starts, target the all apps button instead. target = taskbarViewController.getAllAppsButtonView(); } else if (item.container >= 0) { - // Since folders close when the drag starts, target the folder icon instead - LauncherBindableItemsContainer.ItemOperator op = (info, v) -> { - if (info instanceof FolderInfo && v instanceof FolderIcon) { - FolderInfo fi = (FolderInfo) info; - for (WorkspaceItemInfo si : fi.contents) { - if (si.id == item.id) { - // Found the parent - return true; - } - } - } - return false; - }; - target = taskbarViewController.mapOverItems(op); + // Since folders close when the drag starts, target the folder icon instead. + ItemInfoMatcher matcher = ItemInfoMatcher.forFolderMatch( + ItemInfoMatcher.ofItemIds(IntSet.wrap(item.id))); + target = taskbarViewController.getFirstIconMatch(matcher); + } else if (item.itemType == ITEM_TYPE_DEEP_SHORTCUT) { + // Find first icon with same package/user as the deep shortcut. + ItemInfoMatcher packageUserMatcher = ItemInfoMatcher.ofPackages( + Collections.singleton(item.getTargetPackage()), item.user); + target = taskbarViewController.getFirstIconMatch(packageUserMatcher); } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java index ade58a9b7e..0b537e2176 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarView.java @@ -39,6 +39,7 @@ import com.android.launcher3.model.data.FolderInfo; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.uioverrides.ApiWrapper; +import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LauncherBindableItemsContainer; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.AllAppsButton; @@ -367,17 +368,36 @@ public class TaskbarView extends FrameLayout implements FolderIcon.FolderIconPar } /** - * Maps {@code op} over all the child views, returning the view that {@code op} evaluates - * {@code true} for, or {@code null} if none satisfy {@code op}. + * Maps {@code op} over all the child views. */ - protected View mapOverItems(LauncherBindableItemsContainer.ItemOperator op) { + public void mapOverItems(LauncherBindableItemsContainer.ItemOperator op) { // map over all the shortcuts on the taskbar for (int i = 0; i < getChildCount(); i++) { View item = getChildAt(i); if (op.evaluate((ItemInfo) item.getTag(), item)) { - return item; + return; } } - return null; + } + + /** + * Finds the first icon to match one of the given matchers, from highest to lowest priority. + * @return The first match, or All Apps button if no match was found. + */ + public View getFirstMatch(ItemInfoMatcher... matchers) { + for (ItemInfoMatcher matcher : matchers) { + for (int i = 0; i < getChildCount(); i++) { + View item = getChildAt(i); + if (!(item.getTag() instanceof ItemInfo)) { + // Should only happen for All Apps button. + continue; + } + ItemInfo info = (ItemInfo) item.getTag(); + if (matcher.matchesInfo(info)) { + return item; + } + } + } + return mAllAppsButton; } } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java index 153ed140b4..6e34ee03b4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarViewController.java @@ -37,6 +37,7 @@ import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.folder.FolderIcon; import com.android.launcher3.model.data.ItemInfo; +import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LauncherBindableItemsContainer; import com.android.launcher3.util.MultiValueAlpha; import com.android.quickstep.AnimatedFloat; @@ -274,8 +275,22 @@ public class TaskbarViewController implements TaskbarControllers.LoggableTaskbar mTaskbarNavButtonTranslationY.updateValue(-deviceProfile.getTaskbarOffsetY()); } - public View mapOverItems(LauncherBindableItemsContainer.ItemOperator op) { - return mTaskbarView.mapOverItems(op); + /** + * Maps the given operator to all the top-level children of TaskbarView. + */ + public void mapOverItems(LauncherBindableItemsContainer.ItemOperator op) { + mTaskbarView.mapOverItems(op); + } + + /** + * Returns the first icon to match the given parameter, in priority from: + * 1) Icons directly on Taskbar + * 2) FolderIcon of the Folder containing the given icon + * 3) All Apps button + */ + public View getFirstIconMatch(ItemInfoMatcher matcher) { + ItemInfoMatcher folderMatcher = ItemInfoMatcher.forFolderMatch(matcher); + return mTaskbarView.getFirstMatch(matcher, folderMatcher); } /** From 894984299f97c7cfdad2a1b6975a44e2c0e841ec Mon Sep 17 00:00:00 2001 From: Benno Lin Date: Mon, 8 Nov 2021 06:51:23 +0000 Subject: [PATCH 406/889] Fix Tapl drag to folder issue on S5 and R3 Bug: 205015793 Bug: 205014516 Test: atest Launcher3Tests Test: https://android-build.googleplex.com/builds/abtd/run/L47800000953216369 Test: https://android-build.googleplex.com/builds/abtd/run/L63300000953213948 Change-Id: If481d2b6503e8d47953b00c102719c447f43da41 --- .../launcher3/ui/AbstractLauncherUiTest.java | 25 ++++++++++++++ .../launcher3/ui/TaplTestsLauncher3.java | 30 ++++------------- .../android/launcher3/tapl/HomeAppIcon.java | 2 +- .../android/launcher3/tapl/Launchable.java | 2 +- .../tapl/LauncherInstrumentation.java | 14 ++++---- .../com/android/launcher3/tapl/Workspace.java | 33 ++++++++++--------- 6 files changed, 59 insertions(+), 47 deletions(-) diff --git a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java index 5abdcd3508..02b2cff52e 100644 --- a/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java +++ b/tests/src/com/android/launcher3/ui/AbstractLauncherUiTest.java @@ -33,6 +33,7 @@ import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.graphics.Point; import android.os.Debug; import android.os.Process; import android.os.RemoteException; @@ -55,6 +56,8 @@ import com.android.launcher3.LauncherState; import com.android.launcher3.Utilities; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.statemanager.StateManager; +import com.android.launcher3.tapl.HomeAllApps; +import com.android.launcher3.tapl.HomeAppIcon; import com.android.launcher3.tapl.LauncherInstrumentation; import com.android.launcher3.tapl.LauncherInstrumentation.ContainerType; import com.android.launcher3.tapl.TestHelpers; @@ -602,4 +605,26 @@ public abstract class AbstractLauncherUiTest { protected void onLauncherActivityClose(Launcher launcher) { } + + protected HomeAppIcon createShortcutInCenterIfNotExist(String name) { + Point dimension = mLauncher.getWorkspace().getIconGridDimensions(); + return createShortcutIfNotExist(name, dimension.x / 2, dimension.y / 2); + } + + protected HomeAppIcon createShortcutIfNotExist(String name, int cellX, int cellY) { + HomeAppIcon homeAppIcon = mLauncher.getWorkspace().tryGetWorkspaceAppIcon(name); + if (homeAppIcon == null) { + HomeAllApps allApps = mLauncher.getWorkspace().switchToAllApps(); + allApps.freeze(); + try { + allApps.getAppIcon(name).dragToWorkspace(cellX, cellY); + } finally { + allApps.unfreeze(); + } + homeAppIcon = mLauncher.getWorkspace().getWorkspaceAppIcon(name); + } + return homeAppIcon; + } + + } diff --git a/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java b/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java index da8bf6e882..61ec8bd9c5 100644 --- a/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java +++ b/tests/src/com/android/launcher3/ui/TaplTestsLauncher3.java @@ -365,27 +365,11 @@ public class TaplTestsLauncher3 extends AbstractLauncherUiTest { } } - private HomeAppIcon createShortcutIfNotExist(String name) { - HomeAppIcon homeAppIcon = mLauncher.getWorkspace().tryGetWorkspaceAppIcon(name); - if (homeAppIcon == null) { - HomeAllApps allApps = mLauncher.getWorkspace().switchToAllApps(); - allApps.freeze(); - try { - allApps.getAppIcon(name).dragToWorkspace(false, false); - } finally { - allApps.unfreeze(); - } - homeAppIcon = mLauncher.getWorkspace().getWorkspaceAppIcon(name); - } - return homeAppIcon; - } - - @Ignore("b/205014516") @Test @PortraitLandscape public void testDragToFolder() throws Exception { - final HomeAppIcon playStoreIcon = createShortcutIfNotExist("Play Store"); - final HomeAppIcon gmailIcon = createShortcutIfNotExist("Gmail"); + final HomeAppIcon playStoreIcon = createShortcutIfNotExist("Play Store", 0, 1); + final HomeAppIcon gmailIcon = createShortcutIfNotExist("Gmail", 1, 1); FolderIcon folderIcon = gmailIcon.dragToIcon(playStoreIcon); @@ -399,7 +383,7 @@ public class TaplTestsLauncher3 extends AbstractLauncherUiTest { assertNull("Play Store should be moved to a folder.", workspace.tryGetWorkspaceAppIcon("Play Store")); - final HomeAppIcon youTubeIcon = createShortcutIfNotExist("YouTube"); + final HomeAppIcon youTubeIcon = createShortcutInCenterIfNotExist("YouTube"); folderIcon = youTubeIcon.dragToIcon(folderIcon); folder = folderIcon.open(); @@ -433,8 +417,8 @@ public class TaplTestsLauncher3 extends AbstractLauncherUiTest { @PortraitLandscape public void testDeleteFromWorkspace() throws Exception { // test delete both built-in apps and user-installed app from workspace - for (String appName : new String[] {"Gmail", "Play Store", APP_NAME}) { - final HomeAppIcon homeAppIcon = createShortcutIfNotExist(appName); + for (String appName : new String[]{"Gmail", "Play Store", APP_NAME}) { + final HomeAppIcon homeAppIcon = createShortcutInCenterIfNotExist(appName); Workspace workspace = mLauncher.getWorkspace().deleteAppIcon(homeAppIcon); assertNull(appName + " app was found after being deleted from workspace", workspace.tryGetWorkspaceAppIcon(appName)); @@ -458,7 +442,7 @@ public class TaplTestsLauncher3 extends AbstractLauncherUiTest { TestUtil.installDummyApp(); try { verifyAppUninstalledFromAllApps( - createShortcutIfNotExist(DUMMY_APP_NAME).uninstall(), DUMMY_APP_NAME); + createShortcutInCenterIfNotExist(DUMMY_APP_NAME).uninstall(), DUMMY_APP_NAME); } finally { TestUtil.uninstallDummyApp(); } @@ -509,7 +493,7 @@ public class TaplTestsLauncher3 extends AbstractLauncherUiTest { } // test to move a shortcut to other cell. - final HomeAppIcon launcherTestAppIcon = createShortcutIfNotExist(APP_NAME); + final HomeAppIcon launcherTestAppIcon = createShortcutInCenterIfNotExist(APP_NAME); for (Point target : targets) { launcherTestAppIcon.dragToWorkspace(target.x, target.y); } diff --git a/tests/tapl/com/android/launcher3/tapl/HomeAppIcon.java b/tests/tapl/com/android/launcher3/tapl/HomeAppIcon.java index 4b36dc0e42..baabe12688 100644 --- a/tests/tapl/com/android/launcher3/tapl/HomeAppIcon.java +++ b/tests/tapl/com/android/launcher3/tapl/HomeAppIcon.java @@ -115,7 +115,7 @@ public abstract class HomeAppIcon extends AppIcon implements FolderDragTarget, W String.format("want to drag the icon to cell(%d, %d)", cellX, cellY)) ) { final Supplier dest = () -> Workspace.getCellCenter(mLauncher, cellX, cellY); - Workspace.dragIconToWorkspace(mLauncher, this, dest, true, getLongPressIndicator(), + Workspace.dragIconToWorkspace(mLauncher, this, dest, getLongPressIndicator(), () -> addExpectedEventsForLongClick(), null); try (LauncherInstrumentation.Closable ignore = mLauncher.addContextLayer("dragged")) { WorkspaceAppIcon appIcon = diff --git a/tests/tapl/com/android/launcher3/tapl/Launchable.java b/tests/tapl/com/android/launcher3/tapl/Launchable.java index 02a6b91209..a28eac6bad 100644 --- a/tests/tapl/com/android/launcher3/tapl/Launchable.java +++ b/tests/tapl/com/android/launcher3/tapl/Launchable.java @@ -139,7 +139,7 @@ abstract class Launchable { mLauncher.waitForLauncherObject(longPressIndicator); LauncherInstrumentation.log("movePointerForStartDrag: indicator"); mLauncher.movePointer(iconCenter, dragStartCenter, DEFAULT_DRAG_STEPS, false, - downTime, true, LauncherInstrumentation.GestureScope.INSIDE); + downTime, downTime, true, LauncherInstrumentation.GestureScope.INSIDE); } private int getStartDragThreshold() { diff --git a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java index f063191c23..bbfbc550d0 100644 --- a/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java +++ b/tests/tapl/com/android/launcher3/tapl/LauncherInstrumentation.java @@ -1107,11 +1107,13 @@ public final class LauncherInstrumentation { } } - @NonNull UiObject2 waitForObjectInContainer(UiObject2 container, BySelector selector) { + @NonNull + UiObject2 waitForObjectInContainer(UiObject2 container, BySelector selector) { return waitForObjectsInContainer(container, selector).get(0); } - @NonNull List waitForObjectsInContainer( + @NonNull + List waitForObjectsInContainer( UiObject2 container, BySelector selector) { try { final List objects = container.wait( @@ -1406,13 +1408,13 @@ public final class LauncherInstrumentation { final Point end = new Point(endX, endY); sendPointer(downTime, downTime, MotionEvent.ACTION_DOWN, start, gestureScope); final long endTime = movePointer( - start, end, steps, false, downTime, slowDown, gestureScope); + start, end, steps, false, downTime, downTime, slowDown, gestureScope); sendPointer(downTime, endTime, MotionEvent.ACTION_UP, end, gestureScope); } - long movePointer(Point start, Point end, int steps, boolean isDecelerating, - long downTime, boolean slowDown, GestureScope gestureScope) { - long endTime = movePointer(downTime, downTime, steps * GESTURE_STEP_MS, + long movePointer(Point start, Point end, int steps, boolean isDecelerating, long downTime, + long startTime, boolean slowDown, GestureScope gestureScope) { + long endTime = movePointer(downTime, startTime, steps * GESTURE_STEP_MS, isDecelerating, start, end, gestureScope); if (slowDown) { endTime = movePointer(downTime, endTime + GESTURE_STEP_MS, 5 * GESTURE_STEP_MS, end, diff --git a/tests/tapl/com/android/launcher3/tapl/Workspace.java b/tests/tapl/com/android/launcher3/tapl/Workspace.java index 4f4ce30774..3bc53893ff 100644 --- a/tests/tapl/com/android/launcher3/tapl/Workspace.java +++ b/tests/tapl/com/android/launcher3/tapl/Workspace.java @@ -178,10 +178,10 @@ public final class Workspace extends Home { * pageDelta: 3, the latest page that can be created is 2) the icon will be dragged onto the * page that can be created and is closest to the target page. * - * @param homeAppIcon - icon to drag. - * @param pageDelta - how many pages should the icon be dragged from the current page. - * It can be a negative value. currentPage + pageDelta should be greater - * than or equal to 0. + * @param homeAppIcon - icon to drag. + * @param pageDelta - how many pages should the icon be dragged from the current page. + * It can be a negative value. currentPage + pageDelta should be greater + * than or equal to 0. */ public void dragIcon(HomeAppIcon homeAppIcon, int pageDelta) { if (mHotseat.getVisibleBounds().height() > mHotseat.getVisibleBounds().width()) { @@ -246,7 +246,6 @@ public final class Workspace extends Home { dragIconToWorkspace( mLauncher, homeAppIcon, () -> getDropPointFromDropTargetBar(mLauncher, DELETE_TARGET_TEXT_ID), - true, /* decelerating */ homeAppIcon.getLongPressIndicator(), () -> mLauncher.expectEvent(TestProtocol.SEQUENCE_MAIN, LONG_CLICK_EVENT), null); @@ -261,8 +260,9 @@ public final class Workspace extends Home { /** * Uninstall the appIcon by dragging it to the 'uninstall' drop point of the drop_target_bar. * - * @param launcher the root TAPL instrumentation object of {@link LauncherInstrumentation} type. - * @param homeAppIcon to be uninstalled. + * @param launcher the root TAPL instrumentation object of {@link + * LauncherInstrumentation} type. + * @param homeAppIcon to be uninstalled. * @param launcher the root TAPL instrumentation object of {@link * LauncherInstrumentation} type. * @param homeAppIcon to be uninstalled. @@ -276,7 +276,6 @@ public final class Workspace extends Home { dragIconToWorkspace( launcher, homeAppIcon, () -> getDropPointFromDropTargetBar(launcher, UNINSTALL_TARGET_TEXT_ID), - true, /* decelerating */ homeAppIcon.getLongPressIndicator(), expectLongClickEvents, null); @@ -353,23 +352,24 @@ public final class Workspace extends Home { expectDropEvents = () -> launcher.expectEvent(TestProtocol.SEQUENCE_MAIN, LauncherInstrumentation.EVENT_START); } - dragIconToWorkspace(launcher, launchable, () -> dest, false, longPressIndicator, + dragIconToWorkspace(launcher, launchable, () -> dest, longPressIndicator, expectLongClickEvents, expectDropEvents); } /** - * Drag icon in workspace to else where. + * Drag icon in workspace to else where and drop it immediately. + * (There is no slow down time before drop event) * This function expects the launchable is inside the workspace and there is no drop event. */ static void dragIconToWorkspace(LauncherInstrumentation launcher, Launchable launchable, Supplier destSupplier, String longPressIndicator) { - dragIconToWorkspace(launcher, launchable, destSupplier, false, longPressIndicator, + dragIconToWorkspace(launcher, launchable, destSupplier, longPressIndicator, () -> launcher.expectEvent(TestProtocol.SEQUENCE_MAIN, LONG_CLICK_EVENT), null); } static void dragIconToWorkspace( LauncherInstrumentation launcher, Launchable launchable, Supplier dest, - boolean isDecelerating, String longPressIndicator, Runnable expectLongClickEvents, + String longPressIndicator, Runnable expectLongClickEvents, @Nullable Runnable expectDropEvents) { try (LauncherInstrumentation.Closable ignored = launcher.addContextLayer( "want to drag icon to workspace")) { @@ -391,7 +391,7 @@ public final class Workspace extends Home { Point finalDragStart = dragStart; executeAndWaitForPageScroll(launcher, () -> launcher.movePointer(finalDragStart, screenEdge, DEFAULT_DRAG_STEPS, - isDecelerating, downTime, true, + true, downTime, downTime, true, LauncherInstrumentation.GestureScope.INSIDE)); targetDest.x += displayX * (targetDest.x > 0 ? -1 : 1); dragStart = screenEdge; @@ -399,8 +399,9 @@ public final class Workspace extends Home { // targetDest.x is now between 0 and displayX so we found the target page, // we just have to put move the icon to the destination and drop it - launcher.movePointer(dragStart, targetDest, DEFAULT_DRAG_STEPS, isDecelerating, - downTime, true, LauncherInstrumentation.GestureScope.INSIDE); + launcher.movePointer(dragStart, targetDest, DEFAULT_DRAG_STEPS, true, + downTime, SystemClock.uptimeMillis(), false, + LauncherInstrumentation.GestureScope.INSIDE); dropDraggedIcon(launcher, targetDest, downTime, expectDropEvents); } } @@ -488,4 +489,4 @@ public final class Workspace extends Home { return widget != null ? new Widget(mLauncher, widget) : null; } } -} \ No newline at end of file +} From b097f24610902a4d611b5c5bd17de0ae3d2ee071 Mon Sep 17 00:00:00 2001 From: Thiru Ramasamy Date: Thu, 3 Mar 2022 17:24:43 -0800 Subject: [PATCH 407/889] Adds StatsLatencyLogger library. Test: build NexusLauncherDebug; wwdebug && wwlogcat Change-Id: Ib1f1aeb78d1cb930ca680439341de6be5e5be2dd --- .../logging/StatsLogCompatManager.java | 60 ++++++++++++++++ .../launcher3/logging/StatsLogManager.java | 70 ++++++++++++++++++- 2 files changed, 129 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 12a638a804..db218c96d1 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -110,6 +110,11 @@ public class StatsLogCompatManager extends StatsLogManager { return new StatsCompatLogger(mContext, mActivityContext); } + @Override + protected StatsLatencyLogger createLatencyLogger() { + return new StatsCompatLatencyLogger(mContext, mActivityContext); + } + /** * Synchronously writes an itemInfo to stats log */ @@ -418,6 +423,61 @@ public class StatsLogCompatManager extends StatsLogManager { } } + /** + * Helps to construct and log statsd compatible latency events. + */ + private static class StatsCompatLatencyLogger implements StatsLatencyLogger { + private final Context mContext; + private final Optional mActivityContext; + private InstanceId mInstanceId = DEFAULT_INSTANCE_ID; + private LatencyType mType = LatencyType.UNKNOWN; + private long mLatencyInMillis; + + StatsCompatLatencyLogger(Context context, ActivityContext activityContext) { + mContext = context; + mActivityContext = Optional.ofNullable(activityContext); + } + + @Override + public StatsLatencyLogger withInstanceId(InstanceId instanceId) { + this.mInstanceId = instanceId; + return this; + } + + @Override + public StatsLatencyLogger withType(LatencyType type) { + this.mType = type; + return this; + } + + @Override + public StatsLatencyLogger withLatency(long latencyInMillis) { + this.mLatencyInMillis = latencyInMillis; + return this; + } + + @Override + public void log(EventEnum event) { + if (IS_VERBOSE) { + String name = (event instanceof Enum) ? ((Enum) event).name() : + event.getId() + ""; + + Log.d(TAG, mInstanceId == DEFAULT_INSTANCE_ID + ? String.format("\n%s = %dms\n", name, mLatencyInMillis) + : String.format("\n%s = %dms (InstanceId:%s)\n", name, + mLatencyInMillis, mInstanceId)); + } + + SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_LATENCY, + event.getId(), // event_id + mInstanceId.getId(), // instance_id + 0, // package_id + mLatencyInMillis, // latency_in_millis + mType.getId() //type + ); + } + } + private static int getCardinality(LauncherAtom.ItemInfo info) { switch (info.getContainerInfo().getContainerCase()) { case PREDICTED_HOTSEAT_CONTAINER: diff --git a/src/com/android/launcher3/logging/StatsLogManager.java b/src/com/android/launcher3/logging/StatsLogManager.java index 0d2bc37f42..9604766783 100644 --- a/src/com/android/launcher3/logging/StatsLogManager.java +++ b/src/com/android/launcher3/logging/StatsLogManager.java @@ -562,7 +562,7 @@ public class StatsLogManager implements ResourceBasedOverride { } /** - * Helps to construct and write the log message. + * Helps to construct and log launcher event. */ public interface StatsLogger { @@ -661,6 +661,58 @@ public class StatsLogManager implements ResourceBasedOverride { } } + /** + * Helps to construct and log latency event. + */ + public interface StatsLatencyLogger { + + enum LatencyType { + UNKNOWN(0), + COLD(1), + HOT(2); + + private final int mId; + + LatencyType(int id) { + this.mId = id; + } + + public int getId() { + return mId; + } + + } + + /** + * Sets {@link InstanceId} of log message. + */ + default StatsLatencyLogger withInstanceId(InstanceId instanceId) { + return this; + } + + + /** + * Sets latency of the event. + */ + default StatsLatencyLogger withLatency(long latencyInMillis) { + return this; + } + + /** + * Sets {@link LatencyType} of log message. + */ + default StatsLatencyLogger withType(LatencyType type) { + return this; + } + + + /** + * Builds the final message and logs it as {@link EventEnum}. + */ + default void log(EventEnum event) { + } + } + /** * Returns new logger object. */ @@ -672,11 +724,27 @@ public class StatsLogManager implements ResourceBasedOverride { return logger; } + /** + * Returns new latency logger object. + */ + public StatsLatencyLogger latencyLogger() { + StatsLatencyLogger logger = createLatencyLogger(); + if (mInstanceId != null) { + logger.withInstanceId(mInstanceId); + } + return logger; + } + protected StatsLogger createLogger() { return new StatsLogger() { }; } + protected StatsLatencyLogger createLatencyLogger() { + return new StatsLatencyLogger() { + }; + } + /** * Sets InstanceId to every new {@link StatsLogger} object returned by {@link #logger()} when * not-null. From d7af3cc784faea5dd88221bd21f0bc8b127db630 Mon Sep 17 00:00:00 2001 From: Thiru Ramasamy Date: Thu, 3 Mar 2022 16:39:08 -0800 Subject: [PATCH 408/889] Add support for logging multiple attributes per item. This change will make use of new attributes field in LauncherAtoms to log multiple item attributes by converting them int array and then writes proto bytes into statsd. Test: wwdebug && wwlogcat http://gpaste/5985977337118720 Change-Id: Iabda0b14100558f5625d01ba829d3ad96a6419fc --- protos/launcher_atom.proto | 11 ++++++- .../logging/StatsLogCompatManager.java | 29 +++++++++++-------- .../launcher3/model/data/FolderInfo.java | 2 +- .../model/data/LauncherAppWidgetInfo.java | 2 +- .../widget/PendingAddWidgetInfo.java | 2 +- 5 files changed, 30 insertions(+), 16 deletions(-) diff --git a/protos/launcher_atom.proto b/protos/launcher_atom.proto index 84892f190a..8ce23eaba7 100644 --- a/protos/launcher_atom.proto +++ b/protos/launcher_atom.proto @@ -23,6 +23,8 @@ import "launcher_atom_extension.proto"; // // ItemInfos message ItemInfo { + reserved 8; + oneof Item { Application application = 1; Task task = 2; @@ -42,7 +44,14 @@ message ItemInfo { optional ContainerInfo container_info = 7; // Stores the origin of the Item - optional Attribute attribute = 8; + repeated Attribute item_attributes = 12; +} + +message LauncherAttributes{ + + // Integer value of item attribute enum + // (e.g. SUGGESTED_LABEL, ALL_APPS_SEARCH_RESULT_SETTING etc) + repeated int32 item_attributes = 1; } // Represents various launcher surface where items are placed. diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 1b6f39eb68..bd726009aa 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -42,10 +42,12 @@ import androidx.slice.SliceItem; import com.android.launcher3.LauncherAppState; import com.android.launcher3.Utilities; import com.android.launcher3.logger.LauncherAtom; +import com.android.launcher3.logger.LauncherAtom.Attribute; import com.android.launcher3.logger.LauncherAtom.ContainerInfo; import com.android.launcher3.logger.LauncherAtom.FolderContainer.ParentContainerCase; import com.android.launcher3.logger.LauncherAtom.FolderIcon; import com.android.launcher3.logger.LauncherAtom.FromState; +import com.android.launcher3.logger.LauncherAtom.LauncherAttributes; import com.android.launcher3.logger.LauncherAtom.ToState; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer; import com.android.launcher3.logger.LauncherAtomExtensions.DeviceSearchResultContainer.SearchAttributes; @@ -88,7 +90,6 @@ public class StatsLogCompatManager extends StatsLogManager { private static final int FOLDER_HIERARCHY_OFFSET = 100; private static final int SEARCH_RESULT_HIERARCHY_OFFSET = 200; private static final int EXTENDED_CONTAINERS_HIERARCHY_OFFSET = 300; - private static final int ATTRIBUTE_MULTIPLIER = 100; /** * Flags for converting SearchAttribute to integer value. @@ -128,8 +129,7 @@ public class StatsLogCompatManager extends StatsLogManager { } SysUiStatsLog.write(SysUiStatsLog.LAUNCHER_SNAPSHOT, LAUNCHER_WORKSPACE_SNAPSHOT.getId() /* event_id */, - info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER - + info.getItemCase().getNumber() /* target_id */, + info.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id */, 0 /* uid */, getPackageName(info) /* package_name */, @@ -142,15 +142,22 @@ public class StatsLogCompatManager extends StatsLogManager { getParentPageId(info) /* page_id_parent */, getHierarchy(info) /* hierarchy */, info.getIsWork() /* is_work_profile */, - info.getAttribute().getNumber() /* origin */, + 0 /* origin */, getCardinality(info) /* cardinality */, info.getWidget().getSpanX(), info.getWidget().getSpanY(), getFeatures(info), - null /* attributes */ + getAttributes(info) /* attributes */ ); } + private static byte[] getAttributes(LauncherAtom.ItemInfo itemInfo) { + LauncherAttributes.Builder responseBuilder = LauncherAttributes.newBuilder(); + itemInfo.getItemAttributesList().stream().map(Attribute::getNumber).forEach( + responseBuilder::addItemAttributes); + return responseBuilder.build().toByteArray(); + } + /** * Builds {@link StatsEvent} from {@link LauncherAtom.ItemInfo}. Used for pulled atom callback * implementation. @@ -160,8 +167,7 @@ public class StatsLogCompatManager extends StatsLogManager { return SysUiStatsLog.buildStatsEvent( SysUiStatsLog.LAUNCHER_LAYOUT_SNAPSHOT, // atom ID, LAUNCHER_WORKSPACE_SNAPSHOT.getId(), // event_id = 1; - info.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER - + info.getItemCase().getNumber(), // item_id = 2; + info.getItemCase().getNumber(), // item_id = 2; instanceId == null ? 0 : instanceId.getId(), //instance_id = 3; 0, //uid = 4 [(is_uid) = true]; getPackageName(info), // package_name = 5; @@ -174,11 +180,11 @@ public class StatsLogCompatManager extends StatsLogManager { getParentPageId(info), //page_id_parent = 12 [default = -2]; getHierarchy(info), // container_id = 13; info.getIsWork(), // is_work_profile = 14; - info.getAttribute().getNumber(), // attribute_id = 15; + 0, // attribute_id = 15; getCardinality(info), // cardinality = 16; info.getWidget().getSpanX(), // span_x = 17 [default = 1]; info.getWidget().getSpanY(), // span_y = 18 [default = 1]; - null /* attributes */ + getAttributes(info) /* attributes */ ); } @@ -401,8 +407,7 @@ public class StatsLogCompatManager extends StatsLogManager { null /* launcher extensions, deprecated */, false /* quickstep_enabled, deprecated */, event.getId() /* event_id */, - atomInfo.getAttribute().getNumber() * ATTRIBUTE_MULTIPLIER - + atomInfo.getItemCase().getNumber() /* target_id */, + atomInfo.getItemCase().getNumber() /* target_id */, instanceId.getId() /* instance_id TODO */, 0 /* uid TODO */, getPackageName(atomInfo) /* package_name */, @@ -422,7 +427,7 @@ public class StatsLogCompatManager extends StatsLogManager { getCardinality(atomInfo) /* cardinality */, getFeatures(atomInfo) /* features */, getSearchAttributes(atomInfo) /* searchAttributes */, - null /* attributes */ + getAttributes(atomInfo) /* attributes */ ); } } diff --git a/src/com/android/launcher3/model/data/FolderInfo.java b/src/com/android/launcher3/model/data/FolderInfo.java index cd2ef35a66..efebce342f 100644 --- a/src/com/android/launcher3/model/data/FolderInfo.java +++ b/src/com/android/launcher3/model/data/FolderInfo.java @@ -217,7 +217,7 @@ public class FolderInfo extends ItemInfo { return getDefaultItemInfoBuilder() .setFolderIcon(folderIcon) .setRank(rank) - .setAttribute(getLabelState().mLogAttribute) + .addItemAttributes(getLabelState().mLogAttribute) .setContainerInfo(getContainerInfo()) .build(); } diff --git a/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java b/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java index 0283d5f398..e57a895ddd 100644 --- a/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java +++ b/src/com/android/launcher3/model/data/LauncherAppWidgetInfo.java @@ -288,7 +288,7 @@ public class LauncherAppWidgetInfo extends ItemInfo { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() .setWidget(info.getWidget().toBuilder().setWidgetFeatures(widgetFeatures)) - .setAttribute(getAttribute(sourceContainer)) + .addItemAttributes(getAttribute(sourceContainer)) .build(); } } diff --git a/src/com/android/launcher3/widget/PendingAddWidgetInfo.java b/src/com/android/launcher3/widget/PendingAddWidgetInfo.java index cbec6427a6..470a800366 100644 --- a/src/com/android/launcher3/widget/PendingAddWidgetInfo.java +++ b/src/com/android/launcher3/widget/PendingAddWidgetInfo.java @@ -70,7 +70,7 @@ public class PendingAddWidgetInfo extends PendingAddItemInfo { public LauncherAtom.ItemInfo buildProto(FolderInfo folderInfo) { LauncherAtom.ItemInfo info = super.buildProto(folderInfo); return info.toBuilder() - .setAttribute(LauncherAppWidgetInfo.getAttribute(sourceContainer)) + .addItemAttributes(LauncherAppWidgetInfo.getAttribute(sourceContainer)) .build(); } } From 834f633931290bfccbc43723edbd19a381f724bb Mon Sep 17 00:00:00 2001 From: Thiru Ramasamy Date: Fri, 4 Mar 2022 09:40:59 -0800 Subject: [PATCH 409/889] Add ONE_SEARCH_WEB_PERSONAL attribute. Test: wwdebug && wwlogcat; http://gpaste/6052674958000128 Change-Id: Iba1d18060b18ab3dad8947d49a412d34db5ac78c --- protos/launcher_atom.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/protos/launcher_atom.proto b/protos/launcher_atom.proto index 8ce23eaba7..a61e430d37 100644 --- a/protos/launcher_atom.proto +++ b/protos/launcher_atom.proto @@ -170,6 +170,7 @@ enum Attribute { ONE_SEARCH_WEB_TRENDING = 33; ONE_SEARCH_WEB_ENTITY = 34; ONE_SEARCH_WEB_ANSWER = 35; + ONE_SEARCH_WEB_PERSONAL = 36; WIDGETS_BOTTOM_TRAY = 28; WIDGETS_TRAY_PREDICTION = 29; From 3e7415df56206e3fae71cff3f521549f84baff6a Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Tue, 25 Jan 2022 00:12:36 +0000 Subject: [PATCH 410/889] Keep reporting > 0 insets on home screen Technically mControllers.stashedHandleViewController.isStashedHandleVisible() is false on the home screen (since we unstash), so now we also check isInApp(). This ensures that we always return the same insets when on the home screen - and the insets we report are the same as when you launch an app, to ensure seamless transitions. The value itself shouldn't matter to launcher as long as it is static, since launcher overrides the insets due to taskbar anyway, but we need to keep the value static to avoid configuration change. Test: Open a website in Chrome, stash taskbar, then launch Chrome from home screen and ensure content doesn't jump during the transition Fixes: 221238308 Change-Id: I81e320b3a8d32ffe78441be5dd8f15a586d3b842 --- .../taskbar/TaskbarStashController.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 6bc4c0a019..473be9ea7e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -250,7 +250,11 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba * Returns whether the taskbar is currently visible and in an app. */ public boolean isInAppAndNotStashed() { - return !mIsStashed && (mState & FLAG_IN_APP) != 0; + return !mIsStashed && isInApp(); + } + + private boolean isInApp() { + return hasAnyFlag(FLAG_IN_APP); } /** @@ -266,8 +270,15 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba return mUnstashedHeight; } boolean isAnimating = mAnimator != null && mAnimator.isStarted(); - return mControllers.stashedHandleViewController.isStashedHandleVisible() || isAnimating - ? mStashedHeight : 0; + if (!mControllers.stashedHandleViewController.isStashedHandleVisible() + && isInApp() + && !isAnimating) { + // We are in a settled state where we're not showing the handle even though taskbar + // is stashed. This can happen for example when home button is disabled (see + // StashedHandleViewController#setIsHomeButtonDisabled()). + return 0; + } + return mStashedHeight; } return mUnstashedHeight; } From b0b289d6ef7a2e424014194ecf4af6fc116bfb48 Mon Sep 17 00:00:00 2001 From: Thiru Ramasamy Date: Fri, 4 Mar 2022 13:21:42 -0800 Subject: [PATCH 411/889] Add logging for OneSearch entry point. Test: wwdebug && wwlogcat Change-Id: Iaf57093fbe227bde670524ce1694ce91a749a3d6 --- .../protos_overrides/launcher_atom_extension.proto | 13 +++++++++++++ .../quickstep/logging/StatsLogCompatManager.java | 10 +++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/quickstep/protos_overrides/launcher_atom_extension.proto b/quickstep/protos_overrides/launcher_atom_extension.proto index ff050ea573..a1566f064d 100644 --- a/quickstep/protos_overrides/launcher_atom_extension.proto +++ b/quickstep/protos_overrides/launcher_atom_extension.proto @@ -42,5 +42,18 @@ message DeviceSearchResultContainer{ // True if the item's title/content is a direct match to the search query, false otherwise. optional bool direct_match = 2; + + // Entry point for this on-device search session + optional EntryState entry_state = 3; + + enum EntryState{ + ENTRY_STATE_UNKNOWN = 0; + + // User entered using swipe-up gesture from homescreen and searchbox in AllApps drawer. + ALL_APPS = 1; + + // User entered by tapping on QSB bar on homescreen. + QSB = 2; + } } } diff --git a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java index 1b6f39eb68..f86e790812 100644 --- a/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +++ b/quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java @@ -93,8 +93,10 @@ public class StatsLogCompatManager extends StatsLogManager { /** * Flags for converting SearchAttribute to integer value. */ - private static final int SEARCH_ATTRIBUTES_CORRECTED_QUERY = 1; + private static final int SEARCH_ATTRIBUTES_CORRECTED_QUERY = 1 << 0; private static final int SEARCH_ATTRIBUTES_DIRECT_MATCH = 1 << 1; + private static final int SEARCH_ATTRIBUTES_ENTRY_STATE_ALL_APPS = 1 << 2; + private static final int SEARCH_ATTRIBUTES_ENTRY_STATE_QSB = 1 << 3; public static final CopyOnWriteArrayList LOGS_CONSUMER = new CopyOnWriteArrayList<>(); @@ -656,6 +658,12 @@ public class StatsLogCompatManager extends StatsLogManager { if (searchAttributes.getDirectMatch()) { response = response | SEARCH_ATTRIBUTES_DIRECT_MATCH; } + if (searchAttributes.getEntryState() == SearchAttributes.EntryState.ALL_APPS) { + response = response | SEARCH_ATTRIBUTES_ENTRY_STATE_ALL_APPS; + } else if (searchAttributes.getEntryState() == SearchAttributes.EntryState.QSB) { + response = response | SEARCH_ATTRIBUTES_ENTRY_STATE_QSB; + } + return response; } From 789a6a95cc4f087f5fe5e1c8202e0ee03ffcab8c Mon Sep 17 00:00:00 2001 From: Schneider Victor-tulias Date: Fri, 4 Mar 2022 12:06:09 -0800 Subject: [PATCH 412/889] Add method to pause expensive view updates during the app launch aimation Fixes: 220922269 Test: Manual Change-Id: I39066f575c0ddfc4868ab9e27149e2bd9492b39c --- .../android/launcher3/QuickstepTransitionManager.java | 6 +++--- src/com/android/launcher3/Launcher.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index c4a3fb5572..803dee4beb 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -579,8 +579,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener } } - // Pause page indicator animations as they lead to layer trashing. - mLauncher.getWorkspace().getPageIndicator().pauseAnimations(); + // Pause expensive view updates as they can lead to layer thrashing and skipped frames. + mLauncher.pauseExpensiveViewUpdates(); endListener = () -> { viewsToAnimate.forEach(view -> { @@ -590,7 +590,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener if (scrimEnabled) { mLauncher.getScrimView().setBackgroundColor(Color.TRANSPARENT); } - mLauncher.getWorkspace().getPageIndicator().skipAnimationsToEnd(); + mLauncher.resumeExpensiveViewUpdates(); }; } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 8fb2f53ec6..5c5aee579d 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -3192,4 +3192,15 @@ public class Launcher extends StatefulActivity implements Launche public ArrowPopup getOptionsPopup() { return findViewById(R.id.popup_container); } + + /** Pauses view updates that should not be run during the app launch animation. */ + public void pauseExpensiveViewUpdates() { + // Pause page indicator animations as they lead to layer trashing. + getWorkspace().getPageIndicator().pauseAnimations(); + } + + /** Resumes view updates at the end of the app launch animation. */ + public void resumeExpensiveViewUpdates() { + getWorkspace().getPageIndicator().skipAnimationsToEnd(); + } } From 8dd3e6e7ce351c0f1cc2b5d22cf7cb5b857a9f1e Mon Sep 17 00:00:00 2001 From: Xiang Wang Date: Wed, 16 Feb 2022 14:22:10 -0800 Subject: [PATCH 413/889] Move the BitmapUtil to com.android.internal package Bug: 219992742 Test: N/A Change-Id: I1fa145c18799904a63613ab861a7635cc74dcfce --- .../src/com/android/quickstep/util/ImageActionUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/util/ImageActionUtils.java b/quickstep/src/com/android/quickstep/util/ImageActionUtils.java index 51a9915523..63d5b0dd50 100644 --- a/quickstep/src/com/android/quickstep/util/ImageActionUtils.java +++ b/quickstep/src/com/android/quickstep/util/ImageActionUtils.java @@ -48,10 +48,10 @@ import androidx.annotation.WorkerThread; import androidx.core.content.FileProvider; import com.android.internal.app.ChooserActivity; +import com.android.internal.util.ScreenshotHelper; import com.android.launcher3.BuildConfig; import com.android.quickstep.SystemUiProxy; import com.android.systemui.shared.recents.model.Task; -import com.android.systemui.shared.recents.utilities.BitmapUtil; import java.io.File; import java.io.FileOutputStream; @@ -77,7 +77,8 @@ public class ImageActionUtils { public static void saveScreenshot(SystemUiProxy systemUiProxy, Bitmap screenshot, Rect screenshotBounds, Insets visibleInsets, Task.TaskKey task) { - systemUiProxy.handleImageBundleAsScreenshot(BitmapUtil.hardwareBitmapToBundle(screenshot), + systemUiProxy.handleImageBundleAsScreenshot( + ScreenshotHelper.HardwareBitmapBundler.hardwareBitmapToBundle(screenshot), screenshotBounds, visibleInsets, task); } From 4403d078a6a4e071066577e414b1bf33fdc2d74e Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Fri, 4 Mar 2022 10:49:01 -0800 Subject: [PATCH 414/889] Moving NavigationMode to display controller Navigation mode affects display properties like bounds and most listeners already had a similar display listener. This will remove race conditions when managing the two events. Bug: 221961069 Test: Presubmit Change-Id: If7a22e006e6b969ecddf075001066809aa72995c --- .../launcher3/BaseQuickstepLauncher.java | 41 ++-- .../statehandlers/BackButtonAlphaHandler.java | 6 +- .../taskbar/TaskbarActivityContext.java | 21 +- .../launcher3/taskbar/TaskbarManager.java | 20 +- .../launcher3/uioverrides/ApiWrapper.java | 6 +- .../uioverrides/QuickstepLauncher.java | 6 +- .../uioverrides/states/OverviewState.java | 4 +- .../QuickstepAtomicAnimationFactory.java | 6 +- .../QuickSwitchTouchController.java | 6 +- .../TaskViewTouchController.java | 4 +- .../quickstep/BaseActivityInterface.java | 11 +- .../quickstep/FallbackActivityInterface.java | 6 +- .../quickstep/FallbackSwipeHandler.java | 3 +- .../quickstep/LauncherActivityInterface.java | 6 +- .../OrientationTouchTransformer.java | 15 +- .../RecentsAnimationDeviceState.java | 72 +++---- .../quickstep/RotationTouchHelper.java | 106 +++++----- .../quickstep/SysUINavigationMode.java | 195 ------------------ .../com/android/quickstep/SystemUiProxy.java | 16 +- .../quickstep/TouchInteractionService.java | 9 +- .../FallbackNavBarTouchController.java | 6 +- .../interaction/NavBarGestureHandler.java | 4 +- .../logging/SettingsChangeLogger.java | 24 ++- .../android/quickstep/util/LayoutUtils.java | 5 +- .../quickstep/util/NavBarPosition.java | 10 +- .../util/QuickstepOnboardingPrefs.java | 10 +- .../quickstep/views/OverviewActionsView.java | 28 ++- .../quickstep/NavigationModeSwitchRule.java | 17 +- .../OrientationTouchTransformerTest.java | 2 +- .../quickstep/util/TaskViewSimulatorTest.java | 2 - .../launcher3/util/DisplayController.java | 112 ++++++++-- 31 files changed, 317 insertions(+), 462 deletions(-) delete mode 100644 quickstep/src/com/android/quickstep/SysUINavigationMode.java diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index 7083180250..8fb085dd16 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -25,10 +25,11 @@ import static com.android.launcher3.config.FeatureFlags.ENABLE_SPLIT_FROM_WORKSP import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID; import static com.android.launcher3.popup.QuickstepSystemShortcut.getSplitSelectShortcutByPosition; import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN; +import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE; +import static com.android.launcher3.util.DisplayController.NavigationMode.NO_BUTTON; +import static com.android.launcher3.util.DisplayController.NavigationMode.TWO_BUTTONS; import static com.android.launcher3.util.Executors.THREAD_POOL_EXECUTOR; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; -import static com.android.quickstep.SysUINavigationMode.Mode.NO_BUTTON; -import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; import static com.android.systemui.shared.system.ActivityManagerWrapper.CLOSE_SYSTEM_WINDOWS_REASON_HOME_KEY; import android.animation.AnimatorSet; @@ -65,6 +66,7 @@ import com.android.launcher3.taskbar.TaskbarManager; import com.android.launcher3.uioverrides.RecentsViewStateController; import com.android.launcher3.util.ActivityOptionsWrapper; import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.DisplayController.NavigationMode; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.ObjectWrapper; import com.android.launcher3.util.RunnableList; @@ -72,9 +74,6 @@ import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption; import com.android.launcher3.util.UiThreadHelper; import com.android.quickstep.OverviewCommandHelper; import com.android.quickstep.RecentsModel; -import com.android.quickstep.SysUINavigationMode; -import com.android.quickstep.SysUINavigationMode.Mode; -import com.android.quickstep.SysUINavigationMode.NavigationModeChangeListener; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskUtils; import com.android.quickstep.TouchInteractionService.TISBinder; @@ -102,8 +101,7 @@ import java.util.stream.Stream; /** * Extension of Launcher activity to provide quickstep specific functionality */ -public abstract class BaseQuickstepLauncher extends Launcher - implements NavigationModeChangeListener { +public abstract class BaseQuickstepLauncher extends Launcher { private DepthController mDepthController = new DepthController(this); private QuickstepTransitionManager mAppTransitionManager; @@ -131,7 +129,6 @@ public abstract class BaseQuickstepLauncher extends Launcher @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - SysUINavigationMode.INSTANCE.get(this).addModeChangeListener(this); addMultiWindowModeChangedListener(mDepthController); initUnfoldTransitionProgressProvider(); } @@ -161,8 +158,6 @@ public abstract class BaseQuickstepLauncher extends Launcher mUnfoldTransitionProgressProvider.destroy(); } - SysUINavigationMode.INSTANCE.get(this).removeModeChangeListener(this); - mTISBindHelper.onDestroy(); if (mTaskbarManager != null) { mTaskbarManager.clearActivity(this); @@ -188,14 +183,6 @@ public abstract class BaseQuickstepLauncher extends Launcher return mAppTransitionManager; } - @Override - public void onNavigationModeChanged(Mode newMode) { - getDragLayer().recreateControllers(); - if (mActionsView != null) { - mActionsView.updateVerticalMargin(newMode); - } - } - @Override public void onEnterAnimationComplete() { super.onEnterAnimationComplete(); @@ -305,7 +292,6 @@ public abstract class BaseQuickstepLauncher extends Launcher protected void setupViews() { super.setupViews(); - SysUINavigationMode.INSTANCE.get(this).updateMode(); mActionsView = findViewById(R.id.overview_actions_view); RecentsView overviewPanel = (RecentsView) getOverviewPanel(); SplitSelectStateController controller = @@ -313,7 +299,7 @@ public abstract class BaseQuickstepLauncher extends Launcher getStateManager(), getDepthController()); overviewPanel.init(mActionsView, controller); mActionsView.setDp(getDeviceProfile()); - mActionsView.updateVerticalMargin(SysUINavigationMode.getMode(this)); + mActionsView.updateVerticalMargin(DisplayController.getNavigationMode(this)); mAppTransitionManager = new QuickstepTransitionManager(this); mAppTransitionManager.registerRemoteAnimations(); @@ -434,7 +420,7 @@ public abstract class BaseQuickstepLauncher extends Launcher @Override public float[] getNormalOverviewScaleAndOffset() { - return SysUINavigationMode.getMode(this).hasGestures + return DisplayController.getNavigationMode(this).hasGestures ? new float[] {1, 1} : new float[] {1.1f, NO_OFFSET}; } @@ -464,7 +450,7 @@ public abstract class BaseQuickstepLauncher extends Launcher } public boolean shouldBackButtonBeHidden(LauncherState toState) { - Mode mode = SysUINavigationMode.getMode(this); + NavigationMode mode = DisplayController.getNavigationMode(this); boolean shouldBackButtonBeHidden = mode.hasGestures && toState.hasFlag(FLAG_HIDE_BACK_BUTTON) && hasWindowFocus() @@ -482,7 +468,7 @@ public abstract class BaseQuickstepLauncher extends Launcher */ private void onLauncherStateOrFocusChanged() { boolean shouldBackButtonBeHidden = shouldBackButtonBeHidden(getStateManager().getState()); - if (SysUINavigationMode.getMode(this) == TWO_BUTTONS) { + if (DisplayController.getNavigationMode(this) == TWO_BUTTONS) { UiThreadHelper.setBackButtonAlphaAsync(this, SET_BACK_BUTTON_ALPHA, shouldBackButtonBeHidden ? 0f : 1f, true /* animate */); } @@ -612,6 +598,13 @@ public abstract class BaseQuickstepLauncher extends Launcher if ((flags & CHANGE_ACTIVE_SCREEN) != 0) { getStateManager().moveToRestState(); } + + if ((flags & CHANGE_NAVIGATION_MODE) != 0) { + getDragLayer().recreateControllers(); + if (mActionsView != null) { + mActionsView.updateVerticalMargin(info.navigationMode); + } + } } @Override @@ -627,7 +620,7 @@ public abstract class BaseQuickstepLauncher extends Launcher WindowInsets oldInsets) { // Override the tappable insets to be 0 on the bottom for gesture nav (otherwise taskbar // would count towards it). This is used for the bottom protection in All Apps for example. - if (SysUINavigationMode.getMode(this) == NO_BUTTON) { + if (DisplayController.getNavigationMode(this) == NO_BUTTON) { Insets oldTappableInsets = oldInsets.getInsets(WindowInsets.Type.tappableElement()); Insets newTappableInsets = Insets.of(oldTappableInsets.left, oldTappableInsets.top, oldTappableInsets.right, 0); diff --git a/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java b/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java index 1f268cc9d9..07d3a51603 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java +++ b/quickstep/src/com/android/launcher3/statehandlers/BackButtonAlphaHandler.java @@ -17,17 +17,17 @@ package com.android.launcher3.statehandlers; import static com.android.launcher3.anim.Interpolators.LINEAR; +import static com.android.launcher3.util.DisplayController.NavigationMode.TWO_BUTTONS; import static com.android.quickstep.AnimatedFloat.VALUE; -import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.LauncherState; import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.statemanager.StateManager.StateHandler; import com.android.launcher3.states.StateAnimationConfig; +import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.UiThreadHelper; import com.android.quickstep.AnimatedFloat; -import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.SystemUiProxy; /** @@ -48,7 +48,7 @@ public class BackButtonAlphaHandler implements StateHandler { @Override public void setStateWithAnimation(LauncherState toState, StateAnimationConfig config, PendingAnimation animation) { - if (SysUINavigationMode.getMode(mLauncher) != TWO_BUTTONS) { + if (DisplayController.getNavigationMode(mLauncher) != TWO_BUTTONS) { return; } diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index fa0a60684f..e949b23b57 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -22,6 +22,7 @@ import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_M import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; +import static com.android.launcher3.ResourceUtils.getBoolByName; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_FOLDER_OPEN; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED; @@ -70,13 +71,13 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.popup.PopupDataProvider; import com.android.launcher3.taskbar.allapps.TaskbarAllAppsController; import com.android.launcher3.touch.ItemClickHandler; +import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.DisplayController.NavigationMode; import com.android.launcher3.util.PackageManagerHelper; import com.android.launcher3.util.SettingsCache; import com.android.launcher3.util.TraceHelper; import com.android.launcher3.util.ViewCache; import com.android.launcher3.views.ActivityContext; -import com.android.quickstep.SysUINavigationMode; -import com.android.quickstep.SysUINavigationMode.Mode; import com.android.systemui.shared.recents.model.Task; import com.android.systemui.shared.rotation.RotationButtonController; import com.android.systemui.shared.system.ActivityManagerWrapper; @@ -92,6 +93,8 @@ import java.io.PrintWriter; */ public class TaskbarActivityContext extends BaseTaskbarContext { + private static final String IME_DRAWS_IME_NAV_BAR_RES_NAME = "config_imeDrawsImeNavBar"; + private static final boolean ENABLE_THREE_BUTTON_TASKBAR = SystemProperties.getBoolean("persist.debug.taskbar_three_button", false); private static final String TAG = "TaskbarActivityContext"; @@ -109,7 +112,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { // The size we should return to when we call setTaskbarWindowFullscreen(false) private int mLastRequestedNonFullscreenHeight; - private final SysUINavigationMode.Mode mNavMode; + private final NavigationMode mNavMode; private final boolean mImeDrawsImeNavBar; private final ViewCache mViewCache = new ViewCache(); @@ -130,8 +133,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext { super(windowContext); mDeviceProfile = dp; - mNavMode = SysUINavigationMode.getMode(windowContext); - mImeDrawsImeNavBar = SysUINavigationMode.getImeDrawsImeNavBar(windowContext); + final Resources resources = getResources(); + + mNavMode = DisplayController.getNavigationMode(windowContext); + mImeDrawsImeNavBar = getBoolByName(IME_DRAWS_IME_NAV_BAR_RES_NAME, resources, false); mIsSafeModeEnabled = TraceHelper.allowIpcs("isSafeMode", () -> getPackageManager().isSafeMode()); mIsUserSetupComplete = SettingsCache.INSTANCE.get(this).getValue( @@ -141,9 +146,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { mIsNavBarKidsMode = SettingsCache.INSTANCE.get(this).getValue( Settings.Secure.getUriFor(Settings.Secure.NAV_BAR_KIDS_MODE), 0); - final Resources resources = getResources(); updateIconSize(resources); - mTaskbarHeightForIme = resources.getDimensionPixelSize(R.dimen.taskbar_ime_size); // Inflate views. @@ -258,11 +261,11 @@ public class TaskbarActivityContext extends BaseTaskbarContext { } public boolean isThreeButtonNav() { - return mNavMode == Mode.THREE_BUTTONS; + return mNavMode == NavigationMode.THREE_BUTTONS; } public boolean isGestureNav() { - return mNavMode == Mode.NO_BUTTON; + return mNavMode == NavigationMode.NO_BUTTON; } public boolean imeDrawsImeNavBar() { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index 0f7abda714..cc462c1bf1 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL; import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN; import static com.android.launcher3.util.DisplayController.CHANGE_DENSITY; +import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE; import static com.android.launcher3.util.DisplayController.CHANGE_SUPPORTED_BOUNDS; import android.content.ComponentCallbacks; @@ -40,15 +41,12 @@ import androidx.annotation.Nullable; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.LauncherAppState; -import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.statemanager.StatefulActivity; import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.DisplayController.Info; import com.android.launcher3.util.SettingsCache; import com.android.launcher3.util.SimpleBroadcastReceiver; import com.android.quickstep.RecentsActivity; -import com.android.quickstep.SysUINavigationMode; -import com.android.quickstep.SysUINavigationMode.Mode; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TouchInteractionService; import com.android.systemui.unfold.UnfoldTransitionProgressProvider; @@ -59,8 +57,7 @@ import java.io.PrintWriter; /** * Class to manage taskbar lifecycle */ -public class TaskbarManager implements DisplayController.DisplayInfoChangeListener, - SysUINavigationMode.NavigationModeChangeListener { +public class TaskbarManager implements DisplayController.DisplayInfoChangeListener { private static final Uri USER_SETUP_COMPLETE_URI = Settings.Secure.getUriFor( Settings.Secure.USER_SETUP_COMPLETE); @@ -70,7 +67,6 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen private final Context mContext; private final DisplayController mDisplayController; - private final SysUINavigationMode mSysUINavigationMode; private final TaskbarNavButtonController mNavButtonController; private final SettingsCache.OnChangeListener mUserSetupCompleteListener; private final SettingsCache.OnChangeListener mNavBarKidsModeListener; @@ -89,14 +85,13 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen */ private final TaskbarSharedState mSharedState = new TaskbarSharedState(); - private static final int CHANGE_FLAGS = - CHANGE_ACTIVE_SCREEN | CHANGE_DENSITY | CHANGE_SUPPORTED_BOUNDS; + private static final int CHANGE_FLAGS = CHANGE_ACTIVE_SCREEN | CHANGE_DENSITY + | CHANGE_SUPPORTED_BOUNDS | CHANGE_NAVIGATION_MODE; private boolean mUserUnlocked = false; public TaskbarManager(TouchInteractionService service) { mDisplayController = DisplayController.INSTANCE.get(service); - mSysUINavigationMode = SysUINavigationMode.INSTANCE.get(service); Display display = service.getSystemService(DisplayManager.class).getDisplay(DEFAULT_DISPLAY); mContext = service.createWindowContext(display, TYPE_NAVIGATION_BAR_PANEL, null); @@ -137,7 +132,6 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen mShutdownReceiver = new SimpleBroadcastReceiver(i -> destroyExistingTaskbar()); mDisplayController.addChangeListener(this); - mSysUINavigationMode.addModeChangeListener(this); SettingsCache.INSTANCE.get(mContext).register(USER_SETUP_COMPLETE_URI, mUserSetupCompleteListener); SettingsCache.INSTANCE.get(mContext).register(NAV_BAR_KIDS_MODE, @@ -148,11 +142,6 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen recreateTaskbar(); } - @Override - public void onNavigationModeChanged(Mode newMode) { - recreateTaskbar(); - } - @Override public void onDisplayInfoChanged(Context context, Info info, int flags) { if ((flags & CHANGE_FLAGS) != 0) { @@ -301,7 +290,6 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen public void destroy() { destroyExistingTaskbar(); mDisplayController.removeChangeListener(this); - mSysUINavigationMode.removeModeChangeListener(this); SettingsCache.INSTANCE.get(mContext).unregister(USER_SETUP_COMPLETE_URI, mUserSetupCompleteListener); SettingsCache.INSTANCE.get(mContext).unregister(NAV_BAR_KIDS_MODE, diff --git a/quickstep/src/com/android/launcher3/uioverrides/ApiWrapper.java b/quickstep/src/com/android/launcher3/uioverrides/ApiWrapper.java index aa26645eb9..9240fb86a7 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/ApiWrapper.java +++ b/quickstep/src/com/android/launcher3/uioverrides/ApiWrapper.java @@ -24,8 +24,8 @@ import android.view.Display; import com.android.launcher3.R; import com.android.launcher3.Utilities; -import com.android.quickstep.SysUINavigationMode; -import com.android.quickstep.SysUINavigationMode.Mode; +import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.DisplayController.NavigationMode; public class ApiWrapper { @@ -54,7 +54,7 @@ public class ApiWrapper { * Returns the minimum space that should be left empty at the end of hotseat */ public static int getHotseatEndOffset(Context context) { - if (SysUINavigationMode.INSTANCE.get(context).getMode() == Mode.THREE_BUTTONS) { + if (DisplayController.getNavigationMode(context) == NavigationMode.THREE_BUTTONS) { Resources res = context.getResources(); /* * 3 nav buttons + diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 1073d766f1..829accc55b 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -68,14 +68,14 @@ import com.android.launcher3.uioverrides.touchcontrollers.StatusBarTouchControll import com.android.launcher3.uioverrides.touchcontrollers.TaskViewTouchController; import com.android.launcher3.uioverrides.touchcontrollers.TransposedQuickSwitchTouchController; import com.android.launcher3.uioverrides.touchcontrollers.TwoButtonNavbarTouchController; +import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.DisplayController.NavigationMode; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.PendingRequestArgs; import com.android.launcher3.util.TouchController; import com.android.launcher3.util.UiThreadHelper; import com.android.launcher3.util.UiThreadHelper.AsyncCommand; import com.android.launcher3.widget.LauncherAppWidgetHost; -import com.android.quickstep.SysUINavigationMode; -import com.android.quickstep.SysUINavigationMode.Mode; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskUtils; import com.android.quickstep.util.QuickstepOnboardingPrefs; @@ -303,7 +303,7 @@ public class QuickstepLauncher extends BaseQuickstepLauncher { @Override public TouchController[] createTouchControllers() { - Mode mode = SysUINavigationMode.getMode(this); + NavigationMode mode = DisplayController.getNavigationMode(this); ArrayList list = new ArrayList<>(); list.add(getDragController()); diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java index bb133293dd..236454e161 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/OverviewState.java @@ -26,8 +26,8 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.R; +import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.Themes; -import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.util.LayoutUtils; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; @@ -58,7 +58,7 @@ public class OverviewState extends LauncherState { @Override public int getTransitionDuration(Context context) { // In gesture modes, overview comes in all the way from the side, so give it more time. - return SysUINavigationMode.INSTANCE.get(context).getMode().hasGestures ? 380 : 250; + return DisplayController.getNavigationMode(context).hasGestures ? 380 : 250; } @Override diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java index bd7e5de866..4d053494af 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java @@ -60,7 +60,7 @@ import com.android.launcher3.Workspace; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.states.StateAnimationConfig; import com.android.launcher3.uioverrides.QuickstepLauncher; -import com.android.quickstep.SysUINavigationMode; +import com.android.launcher3.util.DisplayController; import com.android.quickstep.util.RecentsAtomicAnimationFactory; import com.android.quickstep.views.RecentsView; @@ -97,7 +97,7 @@ public class QuickstepAtomicAnimationFactory extends config.setInterpolator(ANIM_WORKSPACE_SCALE, DEACCEL); config.setInterpolator(ANIM_WORKSPACE_FADE, ACCEL); - if (SysUINavigationMode.getMode(mActivity).hasGestures + if (DisplayController.getNavigationMode(mActivity).hasGestures && overview.getTaskViewCount() > 0) { // Overview is going offscreen, so keep it at its current scale and opacity. config.setInterpolator(ANIM_OVERVIEW_SCALE, FINAL_FRAME); @@ -139,7 +139,7 @@ public class QuickstepAtomicAnimationFactory extends } } else if ((fromState == NORMAL || fromState == HINT_STATE || fromState == HINT_STATE_TWO_BUTTON) && toState == OVERVIEW) { - if (SysUINavigationMode.getMode(mActivity).hasGestures) { + if (DisplayController.getNavigationMode(mActivity).hasGestures) { config.setInterpolator(ANIM_WORKSPACE_SCALE, fromState == NORMAL ? ACCEL : OVERSHOOT_1_2); config.setInterpolator(ANIM_WORKSPACE_TRANSLATE, ACCEL); diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/QuickSwitchTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/QuickSwitchTouchController.java index f0ef9cc2d7..e5cd53abf5 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/QuickSwitchTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/QuickSwitchTouchController.java @@ -44,8 +44,8 @@ import com.android.launcher3.Utilities; import com.android.launcher3.states.StateAnimationConfig; import com.android.launcher3.touch.AbstractStateChangeTouchController; import com.android.launcher3.touch.SingleAxisSwipeDetector; -import com.android.quickstep.SysUINavigationMode; -import com.android.quickstep.SysUINavigationMode.Mode; +import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.DisplayController.NavigationMode; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskUtils; import com.android.quickstep.views.RecentsView; @@ -125,7 +125,7 @@ public class QuickSwitchTouchController extends AbstractStateChangeTouchControll private void setupInterpolators(StateAnimationConfig stateAnimationConfig) { stateAnimationConfig.setInterpolator(ANIM_WORKSPACE_FADE, DEACCEL_2); stateAnimationConfig.setInterpolator(ANIM_ALL_APPS_FADE, DEACCEL_2); - if (SysUINavigationMode.getMode(mLauncher) == Mode.NO_BUTTON) { + if (DisplayController.getNavigationMode(mLauncher) == NavigationMode.NO_BUTTON) { // Overview lives to the left of workspace, so translate down later than over stateAnimationConfig.setInterpolator(ANIM_WORKSPACE_TRANSLATE, ACCEL_2); stateAnimationConfig.setInterpolator(ANIM_VERTICAL_PROGRESS, ACCEL_2); diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewTouchController.java index 308bca62e4..ca7f633bbc 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/TaskViewTouchController.java @@ -38,10 +38,10 @@ import com.android.launcher3.anim.PendingAnimation; import com.android.launcher3.touch.BaseSwipeDetector; import com.android.launcher3.touch.PagedOrientationHandler; import com.android.launcher3.touch.SingleAxisSwipeDetector; +import com.android.launcher3.util.DisplayController; import com.android.launcher3.util.FlingBlockCheck; import com.android.launcher3.util.TouchController; import com.android.launcher3.views.BaseDragLayer; -import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.util.VibratorWrapper; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; @@ -177,7 +177,7 @@ public abstract class TaskViewTouchController // - It's the focused task if in grid view // - The task is snapped mAllowGoingDown = i == mRecentsView.getCurrentPage() - && SysUINavigationMode.getMode(mActivity).hasGestures + && DisplayController.getNavigationMode(mActivity).hasGestures && (!mRecentsView.showAsGrid() || mTaskBeingDragged.isFocusedTask()) && mRecentsView.isTaskInExpectedScrollPosition(i); diff --git a/quickstep/src/com/android/quickstep/BaseActivityInterface.java b/quickstep/src/com/android/quickstep/BaseActivityInterface.java index 0f707c0223..d69fb05d27 100644 --- a/quickstep/src/com/android/quickstep/BaseActivityInterface.java +++ b/quickstep/src/com/android/quickstep/BaseActivityInterface.java @@ -19,9 +19,9 @@ import static com.android.launcher3.LauncherAnimUtils.VIEW_BACKGROUND_COLOR; import static com.android.launcher3.anim.Interpolators.ACCEL_2; import static com.android.launcher3.anim.Interpolators.INSTANT; import static com.android.launcher3.anim.Interpolators.LINEAR; +import static com.android.launcher3.util.DisplayController.getNavigationMode; import static com.android.quickstep.AbsSwipeUpHandler.RECENTS_ATTACH_DURATION; import static com.android.quickstep.GestureState.GestureEndTarget.RECENTS; -import static com.android.quickstep.SysUINavigationMode.getMode; import static com.android.quickstep.util.RecentsAtomicAnimationFactory.INDEX_RECENTS_FADE_ANIM; import static com.android.quickstep.util.RecentsAtomicAnimationFactory.INDEX_RECENTS_TRANSLATE_X_ANIM; import static com.android.quickstep.views.RecentsView.ADJACENT_PAGE_HORIZONTAL_OFFSET; @@ -55,9 +55,10 @@ import com.android.launcher3.statemanager.BaseState; import com.android.launcher3.statemanager.StatefulActivity; import com.android.launcher3.taskbar.TaskbarUIController; import com.android.launcher3.touch.PagedOrientationHandler; +import com.android.launcher3.util.DisplayController; +import com.android.launcher3.util.DisplayController.NavigationMode; import com.android.launcher3.util.WindowBounds; import com.android.launcher3.views.ScrimView; -import com.android.quickstep.SysUINavigationMode.Mode; import com.android.quickstep.util.ActivityInitListener; import com.android.quickstep.util.AnimatorControllerWithResistance; import com.android.quickstep.util.SplitScreenBounds; @@ -356,8 +357,8 @@ public abstract class BaseActivityInterface

  • Enable fast scroller. * */ -public abstract class BaseRecyclerView extends RecyclerView { +public abstract class FastScrollRecyclerView extends RecyclerView { protected RecyclerViewFastScroller mScrollbar; - public BaseRecyclerView(Context context) { + public FastScrollRecyclerView(Context context) { this(context, null); } - public BaseRecyclerView(Context context, AttributeSet attrs) { + public FastScrollRecyclerView(Context context, AttributeSet attrs) { this(context, attrs, 0); } - public BaseRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) { + public FastScrollRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @@ -206,4 +206,4 @@ public abstract class BaseRecyclerView extends RecyclerView { } scrollToPosition(0); } -} \ No newline at end of file +} diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 4b42ecbae0..463280b958 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -2750,7 +2750,7 @@ public class Launcher extends StatefulActivity packageName); if (supportsAllAppsState && isInState(LauncherState.ALL_APPS)) { - return getFirstMatch(Collections.singletonList(mAppsView.getActiveRecyclerView()), + return getFirstMatch(Collections.singletonList(mAppsView.getActiveAppsRecyclerView()), preferredItem, packageAndUserAndApp); } else { List containers = new ArrayList<>(mWorkspace.getPanelCount() + 1); diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java index e279f59aaf..16a2823c4e 100644 --- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java @@ -80,7 +80,7 @@ public class ActivityAllAppsContainerView mActivityContext.startActivitySafely(v, marketSearchIntent, null); for (int i = 0; i < mAH.size(); i++) { - mAH.get(i).adapter.setLastSearchQuery(query, marketSearchClickListener); + mAH.get(i).mAdapter.setLastSearchQuery(query, marketSearchClickListener); } mIsSearching = true; rebindAdapters(); @@ -142,7 +142,7 @@ public class ActivityAllAppsContainerView mHeaderThreshold) { bgVisible = false; @@ -242,7 +251,7 @@ public class ActivityAllAppsContainerView mAppsList, + protected BaseAllAppsAdapter createAdapter(AlphabeticalAppsList appsList, BaseAdapterProvider[] adapterProviders) { - return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), mAppsList, + return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), appsList, adapterProviders); } } diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index 7dbe711716..18c6788397 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -37,8 +37,8 @@ import android.view.View; import androidx.recyclerview.widget.RecyclerView; -import com.android.launcher3.BaseRecyclerView; import com.android.launcher3.DeviceProfile; +import com.android.launcher3.FastScrollRecyclerView; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -53,13 +53,13 @@ import java.util.List; /** * A RecyclerView with custom fast scroll support for the all apps view. */ -public class AllAppsRecyclerView extends BaseRecyclerView { - private static final String TAG = "AllAppsContainerView"; +public class AllAppsRecyclerView extends FastScrollRecyclerView { + protected static final String TAG = "AllAppsRecyclerView"; private static final boolean DEBUG = false; private static final boolean DEBUG_LATENCY = Utilities.isPropertyEnabled(SEARCH_LOGGING); - private AlphabeticalAppsList mApps; - private final int mNumAppsPerRow; + protected AlphabeticalAppsList mApps; + protected final int mNumAppsPerRow; // The specific view heights that we use to calculate scroll private final SparseIntArray mViewHeights = new SparseIntArray(); @@ -74,8 +74,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { }; // The empty-search result background - private AllAppsBackgroundDrawable mEmptySearchBackground; - private int mEmptySearchBackgroundTopOffset; + protected AllAppsBackgroundDrawable mEmptySearchBackground; + protected int mEmptySearchBackgroundTopOffset; private ArrayList mAutoSizedOverlays = new ArrayList<>(); @@ -112,7 +112,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { return mApps; } - private void updatePoolSize() { + protected void updatePoolSize() { DeviceProfile grid = ActivityContext.lookupContext(getContext()).getDeviceProfile(); RecyclerView.RecycledViewPool pool = getRecycledViewPool(); int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx); @@ -137,8 +137,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { Log.d(TAG, "onDraw at = " + System.currentTimeMillis()); } if (DEBUG_LATENCY) { - Log.d(SEARCH_LOGGING, - "-- Recycle view onDraw, time stamp = " + System.currentTimeMillis()); + Log.d(SEARCH_LOGGING, getClass().getSimpleName() + " onDraw; time stamp = " + + System.currentTimeMillis()); } super.onDraw(c); } @@ -223,8 +223,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { && mEmptySearchBackground != null && mEmptySearchBackground.getAlpha() > 0) { mEmptySearchBackground.setHotspot(e.getX(), e.getY()); } - hideKeyboardAsync(ActivityContext.lookupContext(getContext()), - getApplicationWindowToken()); + hideKeyboardAsync(ActivityContext.lookupContext(getContext()), getApplicationWindowToken()); return result; } @@ -359,13 +358,6 @@ public class AllAppsRecyclerView extends BaseRecyclerView { } } - @Override - public boolean supportsFastScrolling() { - // Only allow fast scrolling when the user is not searching, since the results are not - // grouped in a meaningful order - return !mApps.hasFilter(); - } - @Override public int getCurrentScrollY() { // Return early if there are no items or we haven't been measured @@ -376,7 +368,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { // Calculate the y and offset for the item View child = getChildAt(0); - int position = getChildPosition(child); + int position = getChildAdapterPosition(child); if (position == NO_POSITION) { return -1; } diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index 637a4189b8..723bc65978 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -84,7 +84,8 @@ public class AllAppsTransitionController @Override public Float get(AllAppsTransitionController controller) { if (controller.mIsTablet) { - return controller.mAppsView.getRecyclerViewContainer().getTranslationY(); + return controller.mAppsView.getAppsRecyclerViewContainer() + .getTranslationY(); } else { return controller.getAppsViewPullbackTranslationY().get( controller.mAppsView); @@ -94,7 +95,7 @@ public class AllAppsTransitionController @Override public void setValue(AllAppsTransitionController controller, float translation) { if (controller.mIsTablet) { - controller.mAppsView.getRecyclerViewContainer().setTranslationY( + controller.mAppsView.getAppsRecyclerViewContainer().setTranslationY( translation); } else { controller.getAppsViewPullbackTranslationY().set(controller.mAppsView, @@ -109,7 +110,7 @@ public class AllAppsTransitionController @Override public Float get(AllAppsTransitionController controller) { if (controller.mIsTablet) { - return controller.mAppsView.getRecyclerViewContainer().getAlpha(); + return controller.mAppsView.getAppsRecyclerViewContainer().getAlpha(); } else { return controller.getAppsViewPullbackAlpha().getValue(); } @@ -118,7 +119,7 @@ public class AllAppsTransitionController @Override public void setValue(AllAppsTransitionController controller, float alpha) { if (controller.mIsTablet) { - controller.mAppsView.getRecyclerViewContainer().setAlpha(alpha); + controller.mAppsView.getAppsRecyclerViewContainer().setAlpha(alpha); } else { controller.getAppsViewPullbackAlpha().setValue(alpha); } diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index 7687fea85d..42374b894f 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -18,6 +18,8 @@ package com.android.launcher3.allapps; import android.content.Context; +import androidx.annotation.Nullable; + import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.model.data.AppInfo; @@ -71,6 +73,7 @@ public class AlphabeticalAppsList implement // The set of apps from the system private final List mApps = new ArrayList<>(); + @Nullable private final AllAppsStore mAllAppsStore; // The number of results in current adapter @@ -88,14 +91,16 @@ public class AlphabeticalAppsList implement private int mNumAppRowsInAdapter; private ItemInfoMatcher mItemFilter; - public AlphabeticalAppsList(Context context, AllAppsStore appsStore, + public AlphabeticalAppsList(Context context, @Nullable AllAppsStore appsStore, WorkAdapterProvider adapterProvider) { mAllAppsStore = appsStore; mActivityContext = ActivityContext.lookupContext(context); mAppNameComparator = new AppInfoComparator(context); mWorkAdapterProvider = adapterProvider; mNumAppsPerRowAllApps = mActivityContext.getDeviceProfile().inv.numAllAppsColumns; - mAllAppsStore.addUpdateListener(this); + if (mAllAppsStore != null) { + mAllAppsStore.addUpdateListener(this); + } } public void updateItemFilter(ItemInfoMatcher itemFilter) { @@ -168,9 +173,9 @@ public class AlphabeticalAppsList implement } /** - * Returns whether there are is a filter set. + * Returns whether there are search results which will hide the A-Z list. */ - public boolean hasFilter() { + public boolean hasSearchResults() { return !mSearchResults.isEmpty(); } @@ -178,7 +183,7 @@ public class AlphabeticalAppsList implement * Returns whether there are no filtered results. */ public boolean hasNoFilteredResults() { - return hasFilter() && mAccessibilityResultsCount == 0; + return hasSearchResults() && mAccessibilityResultsCount == 0; } /** @@ -196,13 +201,13 @@ public class AlphabeticalAppsList implement return true; } - public boolean appendSearchResults(ArrayList results) { - if (hasFilter() && results != null && results.size() > 0) { + /** Appends results to search. */ + public void appendSearchResults(ArrayList results) { + if (hasSearchResults() && results != null && results.size() > 0) { updateSearchAdapterItems(results, mSearchResults.size()); + mSearchResults.addAll(results); refreshRecyclerView(); - return true; } - return false; } void updateSearchAdapterItems(ArrayList list, int offset) { @@ -222,11 +227,14 @@ public class AlphabeticalAppsList implement */ @Override public void onAppsUpdated() { + if (mAllAppsStore == null) { + return; + } // Sort the list of apps mApps.clear(); for (AppInfo app : mAllAppsStore.getApps()) { - if (mItemFilter == null || mItemFilter.matches(app, null) || hasFilter()) { + if (mItemFilter == null || mItemFilter.matches(app, null) || hasSearchResults()) { mApps.add(app); } } @@ -296,7 +304,18 @@ public class AlphabeticalAppsList implement // Recreate the filtered and sectioned apps (for convenience for the grid layout) from the // ordered set of sections - if (!hasFilter()) { + if (hasSearchResults()) { + if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { + // Append the search market item + if (hasNoFilteredResults()) { + mSearchResults.add(AdapterItem.asEmptySearch(position++)); + } else { + mSearchResults.add(AdapterItem.asAllAppsDivider(position++)); + } + mSearchResults.add(AdapterItem.asMarketSearch(position++)); + } + updateSearchAdapterItems(mSearchResults, 0); + } else { mAccessibilityResultsCount = mApps.size(); if (mWorkAdapterProvider != null) { position += mWorkAdapterProvider.addWorkItems(mAdapterItems); @@ -323,18 +342,6 @@ public class AlphabeticalAppsList implement mAdapterItems.add(appItem); } - } else { - updateSearchAdapterItems(mSearchResults, 0); - if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { - // Append the search market item - if (hasNoFilteredResults()) { - mAdapterItems.add(AdapterItem.asEmptySearch(position++)); - } else { - mAdapterItems.add(AdapterItem.asAllAppsDivider(position++)); - } - mAdapterItems.add(AdapterItem.asMarketSearch(position++)); - - } } if (mNumAppsPerRowAllApps != 0) { // Update the number of rows in the adapter after we do all the merging (otherwise, we diff --git a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java index f913aa9093..6a4498917e 100644 --- a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java @@ -80,7 +80,7 @@ public abstract class BaseAllAppsContainerView
  • Enable fast scroller. * */ -public abstract class FastScrollRecyclerView extends RecyclerView { +public abstract class BaseRecyclerView extends RecyclerView { protected RecyclerViewFastScroller mScrollbar; - public FastScrollRecyclerView(Context context) { + public BaseRecyclerView(Context context) { this(context, null); } - public FastScrollRecyclerView(Context context, AttributeSet attrs) { + public BaseRecyclerView(Context context, AttributeSet attrs) { this(context, attrs, 0); } - public FastScrollRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) { + public BaseRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @@ -206,4 +206,4 @@ public abstract class FastScrollRecyclerView extends RecyclerView { } scrollToPosition(0); } -} +} \ No newline at end of file diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 463280b958..4b42ecbae0 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -2750,7 +2750,7 @@ public class Launcher extends StatefulActivity packageName); if (supportsAllAppsState && isInState(LauncherState.ALL_APPS)) { - return getFirstMatch(Collections.singletonList(mAppsView.getActiveAppsRecyclerView()), + return getFirstMatch(Collections.singletonList(mAppsView.getActiveRecyclerView()), preferredItem, packageAndUserAndApp); } else { List containers = new ArrayList<>(mWorkspace.getPanelCount() + 1); diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java index 16a2823c4e..e279f59aaf 100644 --- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java @@ -80,7 +80,7 @@ public class ActivityAllAppsContainerView mActivityContext.startActivitySafely(v, marketSearchIntent, null); for (int i = 0; i < mAH.size(); i++) { - mAH.get(i).mAdapter.setLastSearchQuery(query, marketSearchClickListener); + mAH.get(i).adapter.setLastSearchQuery(query, marketSearchClickListener); } mIsSearching = true; rebindAdapters(); @@ -142,7 +142,7 @@ public class ActivityAllAppsContainerView mHeaderThreshold) { bgVisible = false; @@ -251,7 +242,7 @@ public class ActivityAllAppsContainerView createAdapter(AlphabeticalAppsList appsList, + protected BaseAllAppsAdapter getAdapter(AlphabeticalAppsList mAppsList, BaseAdapterProvider[] adapterProviders) { - return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), appsList, + return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), mAppsList, adapterProviders); } } diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index 18c6788397..7dbe711716 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -37,8 +37,8 @@ import android.view.View; import androidx.recyclerview.widget.RecyclerView; +import com.android.launcher3.BaseRecyclerView; import com.android.launcher3.DeviceProfile; -import com.android.launcher3.FastScrollRecyclerView; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -53,13 +53,13 @@ import java.util.List; /** * A RecyclerView with custom fast scroll support for the all apps view. */ -public class AllAppsRecyclerView extends FastScrollRecyclerView { - protected static final String TAG = "AllAppsRecyclerView"; +public class AllAppsRecyclerView extends BaseRecyclerView { + private static final String TAG = "AllAppsContainerView"; private static final boolean DEBUG = false; private static final boolean DEBUG_LATENCY = Utilities.isPropertyEnabled(SEARCH_LOGGING); - protected AlphabeticalAppsList mApps; - protected final int mNumAppsPerRow; + private AlphabeticalAppsList mApps; + private final int mNumAppsPerRow; // The specific view heights that we use to calculate scroll private final SparseIntArray mViewHeights = new SparseIntArray(); @@ -74,8 +74,8 @@ public class AllAppsRecyclerView extends FastScrollRecyclerView { }; // The empty-search result background - protected AllAppsBackgroundDrawable mEmptySearchBackground; - protected int mEmptySearchBackgroundTopOffset; + private AllAppsBackgroundDrawable mEmptySearchBackground; + private int mEmptySearchBackgroundTopOffset; private ArrayList mAutoSizedOverlays = new ArrayList<>(); @@ -112,7 +112,7 @@ public class AllAppsRecyclerView extends FastScrollRecyclerView { return mApps; } - protected void updatePoolSize() { + private void updatePoolSize() { DeviceProfile grid = ActivityContext.lookupContext(getContext()).getDeviceProfile(); RecyclerView.RecycledViewPool pool = getRecycledViewPool(); int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx); @@ -137,8 +137,8 @@ public class AllAppsRecyclerView extends FastScrollRecyclerView { Log.d(TAG, "onDraw at = " + System.currentTimeMillis()); } if (DEBUG_LATENCY) { - Log.d(SEARCH_LOGGING, getClass().getSimpleName() + " onDraw; time stamp = " - + System.currentTimeMillis()); + Log.d(SEARCH_LOGGING, + "-- Recycle view onDraw, time stamp = " + System.currentTimeMillis()); } super.onDraw(c); } @@ -223,7 +223,8 @@ public class AllAppsRecyclerView extends FastScrollRecyclerView { && mEmptySearchBackground != null && mEmptySearchBackground.getAlpha() > 0) { mEmptySearchBackground.setHotspot(e.getX(), e.getY()); } - hideKeyboardAsync(ActivityContext.lookupContext(getContext()), getApplicationWindowToken()); + hideKeyboardAsync(ActivityContext.lookupContext(getContext()), + getApplicationWindowToken()); return result; } @@ -358,6 +359,13 @@ public class AllAppsRecyclerView extends FastScrollRecyclerView { } } + @Override + public boolean supportsFastScrolling() { + // Only allow fast scrolling when the user is not searching, since the results are not + // grouped in a meaningful order + return !mApps.hasFilter(); + } + @Override public int getCurrentScrollY() { // Return early if there are no items or we haven't been measured @@ -368,7 +376,7 @@ public class AllAppsRecyclerView extends FastScrollRecyclerView { // Calculate the y and offset for the item View child = getChildAt(0); - int position = getChildAdapterPosition(child); + int position = getChildPosition(child); if (position == NO_POSITION) { return -1; } diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index 723bc65978..637a4189b8 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -84,8 +84,7 @@ public class AllAppsTransitionController @Override public Float get(AllAppsTransitionController controller) { if (controller.mIsTablet) { - return controller.mAppsView.getAppsRecyclerViewContainer() - .getTranslationY(); + return controller.mAppsView.getRecyclerViewContainer().getTranslationY(); } else { return controller.getAppsViewPullbackTranslationY().get( controller.mAppsView); @@ -95,7 +94,7 @@ public class AllAppsTransitionController @Override public void setValue(AllAppsTransitionController controller, float translation) { if (controller.mIsTablet) { - controller.mAppsView.getAppsRecyclerViewContainer().setTranslationY( + controller.mAppsView.getRecyclerViewContainer().setTranslationY( translation); } else { controller.getAppsViewPullbackTranslationY().set(controller.mAppsView, @@ -110,7 +109,7 @@ public class AllAppsTransitionController @Override public Float get(AllAppsTransitionController controller) { if (controller.mIsTablet) { - return controller.mAppsView.getAppsRecyclerViewContainer().getAlpha(); + return controller.mAppsView.getRecyclerViewContainer().getAlpha(); } else { return controller.getAppsViewPullbackAlpha().getValue(); } @@ -119,7 +118,7 @@ public class AllAppsTransitionController @Override public void setValue(AllAppsTransitionController controller, float alpha) { if (controller.mIsTablet) { - controller.mAppsView.getAppsRecyclerViewContainer().setAlpha(alpha); + controller.mAppsView.getRecyclerViewContainer().setAlpha(alpha); } else { controller.getAppsViewPullbackAlpha().setValue(alpha); } diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index 42374b894f..7687fea85d 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -18,8 +18,6 @@ package com.android.launcher3.allapps; import android.content.Context; -import androidx.annotation.Nullable; - import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.model.data.AppInfo; @@ -73,7 +71,6 @@ public class AlphabeticalAppsList implement // The set of apps from the system private final List mApps = new ArrayList<>(); - @Nullable private final AllAppsStore mAllAppsStore; // The number of results in current adapter @@ -91,16 +88,14 @@ public class AlphabeticalAppsList implement private int mNumAppRowsInAdapter; private ItemInfoMatcher mItemFilter; - public AlphabeticalAppsList(Context context, @Nullable AllAppsStore appsStore, + public AlphabeticalAppsList(Context context, AllAppsStore appsStore, WorkAdapterProvider adapterProvider) { mAllAppsStore = appsStore; mActivityContext = ActivityContext.lookupContext(context); mAppNameComparator = new AppInfoComparator(context); mWorkAdapterProvider = adapterProvider; mNumAppsPerRowAllApps = mActivityContext.getDeviceProfile().inv.numAllAppsColumns; - if (mAllAppsStore != null) { - mAllAppsStore.addUpdateListener(this); - } + mAllAppsStore.addUpdateListener(this); } public void updateItemFilter(ItemInfoMatcher itemFilter) { @@ -173,9 +168,9 @@ public class AlphabeticalAppsList implement } /** - * Returns whether there are search results which will hide the A-Z list. + * Returns whether there are is a filter set. */ - public boolean hasSearchResults() { + public boolean hasFilter() { return !mSearchResults.isEmpty(); } @@ -183,7 +178,7 @@ public class AlphabeticalAppsList implement * Returns whether there are no filtered results. */ public boolean hasNoFilteredResults() { - return hasSearchResults() && mAccessibilityResultsCount == 0; + return hasFilter() && mAccessibilityResultsCount == 0; } /** @@ -201,13 +196,13 @@ public class AlphabeticalAppsList implement return true; } - /** Appends results to search. */ - public void appendSearchResults(ArrayList results) { - if (hasSearchResults() && results != null && results.size() > 0) { + public boolean appendSearchResults(ArrayList results) { + if (hasFilter() && results != null && results.size() > 0) { updateSearchAdapterItems(results, mSearchResults.size()); - mSearchResults.addAll(results); refreshRecyclerView(); + return true; } + return false; } void updateSearchAdapterItems(ArrayList list, int offset) { @@ -227,14 +222,11 @@ public class AlphabeticalAppsList implement */ @Override public void onAppsUpdated() { - if (mAllAppsStore == null) { - return; - } // Sort the list of apps mApps.clear(); for (AppInfo app : mAllAppsStore.getApps()) { - if (mItemFilter == null || mItemFilter.matches(app, null) || hasSearchResults()) { + if (mItemFilter == null || mItemFilter.matches(app, null) || hasFilter()) { mApps.add(app); } } @@ -304,18 +296,7 @@ public class AlphabeticalAppsList implement // Recreate the filtered and sectioned apps (for convenience for the grid layout) from the // ordered set of sections - if (hasSearchResults()) { - if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { - // Append the search market item - if (hasNoFilteredResults()) { - mSearchResults.add(AdapterItem.asEmptySearch(position++)); - } else { - mSearchResults.add(AdapterItem.asAllAppsDivider(position++)); - } - mSearchResults.add(AdapterItem.asMarketSearch(position++)); - } - updateSearchAdapterItems(mSearchResults, 0); - } else { + if (!hasFilter()) { mAccessibilityResultsCount = mApps.size(); if (mWorkAdapterProvider != null) { position += mWorkAdapterProvider.addWorkItems(mAdapterItems); @@ -342,6 +323,18 @@ public class AlphabeticalAppsList implement mAdapterItems.add(appItem); } + } else { + updateSearchAdapterItems(mSearchResults, 0); + if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { + // Append the search market item + if (hasNoFilteredResults()) { + mAdapterItems.add(AdapterItem.asEmptySearch(position++)); + } else { + mAdapterItems.add(AdapterItem.asAllAppsDivider(position++)); + } + mAdapterItems.add(AdapterItem.asMarketSearch(position++)); + + } } if (mNumAppsPerRowAllApps != 0) { // Update the number of rows in the adapter after we do all the merging (otherwise, we diff --git a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java index 6a4498917e..f913aa9093 100644 --- a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java @@ -80,7 +80,7 @@ public abstract class BaseAllAppsContainerView
  • Enable fast scroller. * */ -public abstract class BaseRecyclerView extends RecyclerView { +public abstract class FastScrollRecyclerView extends RecyclerView { protected RecyclerViewFastScroller mScrollbar; - public BaseRecyclerView(Context context) { + public FastScrollRecyclerView(Context context) { this(context, null); } - public BaseRecyclerView(Context context, AttributeSet attrs) { + public FastScrollRecyclerView(Context context, AttributeSet attrs) { this(context, attrs, 0); } - public BaseRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) { + public FastScrollRecyclerView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @@ -65,6 +66,7 @@ public abstract class BaseRecyclerView extends RecyclerView { onUpdateScrollbar(0); } + @Nullable public RecyclerViewFastScroller getScrollbar() { return mScrollbar; } @@ -198,4 +200,4 @@ public abstract class BaseRecyclerView extends RecyclerView { } scrollToPosition(0); } -} \ No newline at end of file +} diff --git a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java index 47f2dd50aa..2368cf7ce1 100644 --- a/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/ActivityAllAppsContainerView.java @@ -82,7 +82,7 @@ public class ActivityAllAppsContainerView mActivityContext.startActivitySafely(v, marketSearchIntent, null); for (int i = 0; i < mAH.size(); i++) { - mAH.get(i).adapter.setLastSearchQuery(query, marketSearchClickListener); + mAH.get(i).mAdapter.setLastSearchQuery(query, marketSearchClickListener); } mIsSearching = true; rebindAdapters(); @@ -101,7 +101,7 @@ public class ActivityAllAppsContainerView results) { - if (getApps().setSearchResults(results)) { + if (getSearchResultList().setSearchResults(results)) { for (int i = 0; i < mAH.size(); i++) { if (mAH.get(i).mRecyclerView != null) { mAH.get(i).mRecyclerView.onSearchResultsChanged(); @@ -148,7 +148,7 @@ public class ActivityAllAppsContainerView mHeaderThreshold) { bgVisible = false; @@ -248,7 +257,7 @@ public class ActivityAllAppsContainerView mAppsList, + protected BaseAllAppsAdapter createAdapter(AlphabeticalAppsList appsList, BaseAdapterProvider[] adapterProviders) { - return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), mAppsList, + return new AllAppsGridAdapter<>(mActivityContext, getLayoutInflater(), appsList, adapterProviders); } } diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java index 88e7fc0514..af17cf72e9 100644 --- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java +++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java @@ -35,8 +35,8 @@ import android.view.View; import androidx.recyclerview.widget.RecyclerView; -import com.android.launcher3.BaseRecyclerView; import com.android.launcher3.DeviceProfile; +import com.android.launcher3.FastScrollRecyclerView; import com.android.launcher3.LauncherAppState; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -50,13 +50,13 @@ import java.util.List; /** * A RecyclerView with custom fast scroll support for the all apps view. */ -public class AllAppsRecyclerView extends BaseRecyclerView { - private static final String TAG = "AllAppsContainerView"; +public class AllAppsRecyclerView extends FastScrollRecyclerView { + protected static final String TAG = "AllAppsRecyclerView"; private static final boolean DEBUG = false; private static final boolean DEBUG_LATENCY = Utilities.isPropertyEnabled(SEARCH_LOGGING); - private AlphabeticalAppsList mApps; - private final int mNumAppsPerRow; + protected AlphabeticalAppsList mApps; + protected final int mNumAppsPerRow; // The specific view heights that we use to calculate scroll private final SparseIntArray mViewHeights = new SparseIntArray(); @@ -91,8 +91,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { }; // The empty-search result background - private AllAppsBackgroundDrawable mEmptySearchBackground; - private int mEmptySearchBackgroundTopOffset; + protected AllAppsBackgroundDrawable mEmptySearchBackground; + protected int mEmptySearchBackgroundTopOffset; public AllAppsRecyclerView(Context context) { this(context, null); @@ -127,7 +127,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { return mApps; } - private void updatePoolSize() { + protected void updatePoolSize() { DeviceProfile grid = ActivityContext.lookupContext(getContext()).getDeviceProfile(); RecyclerView.RecycledViewPool pool = getRecycledViewPool(); int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx); @@ -152,8 +152,8 @@ public class AllAppsRecyclerView extends BaseRecyclerView { Log.d(TAG, "onDraw at = " + System.currentTimeMillis()); } if (DEBUG_LATENCY) { - Log.d(SEARCH_LOGGING, - "-- Recycle view onDraw, time stamp = " + System.currentTimeMillis()); + Log.d(SEARCH_LOGGING, getClass().getSimpleName() + " onDraw; time stamp = " + + System.currentTimeMillis()); } super.onDraw(c); } @@ -341,13 +341,6 @@ public class AllAppsRecyclerView extends BaseRecyclerView { } } - @Override - public boolean supportsFastScrolling() { - // Only allow fast scrolling when the user is not searching, since the results are not - // grouped in a meaningful order - return !mApps.hasFilter(); - } - @Override public int getCurrentScrollY() { // Return early if there are no items or we haven't been measured @@ -358,7 +351,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView { // Calculate the y and offset for the item View child = getChildAt(0); - int position = getChildPosition(child); + int position = getChildAdapterPosition(child); if (position == NO_POSITION) { return -1; } @@ -448,14 +441,4 @@ public class AllAppsRecyclerView extends BaseRecyclerView { public boolean hasOverlappingRendering() { return false; } - - /** - * Returns distance between left and right app icons - */ - public int getTabWidth() { - DeviceProfile grid = ActivityContext.lookupContext(getContext()).getDeviceProfile(); - int totalWidth = getMeasuredWidth() - getPaddingLeft() - getPaddingRight(); - int iconPadding = totalWidth / grid.numShownAllAppsColumns - grid.allAppsIconSizePx; - return totalWidth - iconPadding - grid.allAppsIconDrawablePaddingPx; - } } diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index 3600bd26b1..a4a208533a 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -84,7 +84,7 @@ public class AllAppsTransitionController @Override public Float get(AllAppsTransitionController controller) { if (controller.mIsTablet) { - return controller.mAppsView.getRecyclerViewContainer().getTranslationY(); + return controller.mAppsView.getActiveRecyclerView().getTranslationY(); } else { return controller.getAppsViewPullbackTranslationY().get( controller.mAppsView); @@ -94,8 +94,7 @@ public class AllAppsTransitionController @Override public void setValue(AllAppsTransitionController controller, float translation) { if (controller.mIsTablet) { - controller.mAppsView.getRecyclerViewContainer().setTranslationY( - translation); + controller.mAppsView.getActiveRecyclerView().setTranslationY(translation); } else { controller.getAppsViewPullbackTranslationY().set(controller.mAppsView, translation); @@ -109,7 +108,7 @@ public class AllAppsTransitionController @Override public Float get(AllAppsTransitionController controller) { if (controller.mIsTablet) { - return controller.mAppsView.getRecyclerViewContainer().getAlpha(); + return controller.mAppsView.getActiveRecyclerView().getAlpha(); } else { return controller.getAppsViewPullbackAlpha().getValue(); } @@ -118,7 +117,7 @@ public class AllAppsTransitionController @Override public void setValue(AllAppsTransitionController controller, float alpha) { if (controller.mIsTablet) { - controller.mAppsView.getRecyclerViewContainer().setAlpha(alpha); + controller.mAppsView.getActiveRecyclerView().setAlpha(alpha); } else { controller.getAppsViewPullbackAlpha().setValue(alpha); } diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java index 4ccfd39c12..45a567dd19 100644 --- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java +++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java @@ -21,6 +21,7 @@ import static com.android.launcher3.allapps.BaseAllAppsAdapter.VIEW_TYPE_SEARCH_ import android.content.Context; +import androidx.annotation.Nullable; import androidx.recyclerview.widget.DiffUtil; import com.android.launcher3.allapps.BaseAllAppsAdapter.AdapterItem; @@ -72,6 +73,7 @@ public class AlphabeticalAppsList implement // The set of apps from the system private final List mApps = new ArrayList<>(); + @Nullable private final AllAppsStore mAllAppsStore; // The number of results in current adapter @@ -89,14 +91,16 @@ public class AlphabeticalAppsList implement private int mNumAppRowsInAdapter; private Predicate mItemFilter; - public AlphabeticalAppsList(Context context, AllAppsStore appsStore, + public AlphabeticalAppsList(Context context, @Nullable AllAppsStore appsStore, WorkAdapterProvider adapterProvider) { mAllAppsStore = appsStore; mActivityContext = ActivityContext.lookupContext(context); mAppNameComparator = new AppInfoComparator(context); mWorkAdapterProvider = adapterProvider; mNumAppsPerRowAllApps = mActivityContext.getDeviceProfile().inv.numAllAppsColumns; - mAllAppsStore.addUpdateListener(this); + if (mAllAppsStore != null) { + mAllAppsStore.addUpdateListener(this); + } } public void updateItemFilter(Predicate itemFilter) { @@ -162,9 +166,9 @@ public class AlphabeticalAppsList implement } /** - * Returns whether there are is a filter set. + * Returns whether there are search results which will hide the A-Z list. */ - public boolean hasFilter() { + public boolean hasSearchResults() { return !mSearchResults.isEmpty(); } @@ -172,7 +176,7 @@ public class AlphabeticalAppsList implement * Returns whether there are no filtered results. */ public boolean hasNoFilteredResults() { - return hasFilter() && mAccessibilityResultsCount == 0; + return hasSearchResults() && mAccessibilityResultsCount == 0; } /** @@ -195,11 +199,14 @@ public class AlphabeticalAppsList implement */ @Override public void onAppsUpdated() { + if (mAllAppsStore == null) { + return; + } // Sort the list of apps mApps.clear(); Stream appSteam = Stream.of(mAllAppsStore.getApps()); - if (!hasFilter() && mItemFilter != null) { + if (!hasSearchResults() && mItemFilter != null) { appSteam = appSteam.filter(mItemFilter); } appSteam = appSteam.sorted(mAppNameComparator); @@ -240,7 +247,18 @@ public class AlphabeticalAppsList implement // Recreate the filtered and sectioned apps (for convenience for the grid layout) from the // ordered set of sections - if (!hasFilter()) { + if (hasSearchResults()) { + mAdapterItems.addAll(mSearchResults); + if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { + // Append the search market item + if (hasNoFilteredResults()) { + mAdapterItems.add(new AdapterItem(VIEW_TYPE_EMPTY_SEARCH)); + } else { + mAdapterItems.add(new AdapterItem(VIEW_TYPE_ALL_APPS_DIVIDER)); + } + mAdapterItems.add(new AdapterItem(VIEW_TYPE_SEARCH_MARKET)); + } + } else { int position = 0; if (mWorkAdapterProvider != null) { position += mWorkAdapterProvider.addWorkItems(mAdapterItems); @@ -260,17 +278,6 @@ public class AlphabeticalAppsList implement } position++; } - } else { - mAdapterItems.addAll(mSearchResults); - if (!FeatureFlags.ENABLE_DEVICE_SEARCH.get()) { - // Append the search market item - if (hasNoFilteredResults()) { - mAdapterItems.add(new AdapterItem(VIEW_TYPE_EMPTY_SEARCH)); - } else { - mAdapterItems.add(new AdapterItem(VIEW_TYPE_ALL_APPS_DIVIDER)); - } - mAdapterItems.add(new AdapterItem(VIEW_TYPE_SEARCH_MARKET)); - } } mAccessibilityResultsCount = (int) mAdapterItems.stream() .filter(AdapterItem::isCountedForAccessibility).count(); diff --git a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java index fc527976ab..2c04fc7753 100644 --- a/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/BaseAllAppsContainerView.java @@ -63,6 +63,7 @@ import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.Themes; import com.android.launcher3.views.ActivityContext; +import com.android.launcher3.views.BaseDragLayer; import com.android.launcher3.views.RecyclerViewFastScroller; import com.android.launcher3.views.ScrimView; import com.android.launcher3.views.SpringRelativeLayout; @@ -83,7 +84,7 @@ public abstract class BaseAllAppsContainerView= 0 - && mActivityContext.getDragLayer().isEventOverView(rv.getScrollbar(), ev)) { + if (rv.getScrollbar() != null + && rv.getScrollbar().getThumbOffsetY() >= 0 + && dragLayer.isEventOverView(rv.getScrollbar(), ev)) { return false; } - return rv.shouldContainerScroll(ev, mActivityContext.getDragLayer()); + return rv.shouldContainerScroll(ev, dragLayer); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { AllAppsRecyclerView rv = getActiveRecyclerView(); - if (rv != null && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), - mFastScrollerOffset)) { + if (rv != null && rv.getScrollbar() != null + && rv.getScrollbar().isHitInParent(ev.getX(), ev.getY(), mFastScrollerOffset)) { mTouchHandler = rv.getScrollbar(); } else { mTouchHandler = null; @@ -284,8 +289,8 @@ public abstract class BaseAllAppsContainerView