summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/values-af/strings.xml3
-rw-r--r--java/res/values-am/strings.xml3
-rw-r--r--java/res/values-ar/strings.xml7
-rw-r--r--java/res/values-as/strings.xml3
-rw-r--r--java/res/values-az/strings.xml3
-rw-r--r--java/res/values-b+sr+Latn/strings.xml3
-rw-r--r--java/res/values-be/strings.xml3
-rw-r--r--java/res/values-bg/strings.xml3
-rw-r--r--java/res/values-bn/strings.xml3
-rw-r--r--java/res/values-bs/strings.xml5
-rw-r--r--java/res/values-ca/strings.xml3
-rw-r--r--java/res/values-cs/strings.xml3
-rw-r--r--java/res/values-da/strings.xml3
-rw-r--r--java/res/values-de/strings.xml3
-rw-r--r--java/res/values-el/strings.xml5
-rw-r--r--java/res/values-en-rAU/strings.xml3
-rw-r--r--java/res/values-en-rCA/strings.xml3
-rw-r--r--java/res/values-en-rGB/strings.xml3
-rw-r--r--java/res/values-en-rIN/strings.xml3
-rw-r--r--java/res/values-en-rXC/strings.xml3
-rw-r--r--java/res/values-es-rUS/strings.xml5
-rw-r--r--java/res/values-es/strings.xml3
-rw-r--r--java/res/values-et/strings.xml3
-rw-r--r--java/res/values-eu/strings.xml5
-rw-r--r--java/res/values-fa/strings.xml3
-rw-r--r--java/res/values-fi/strings.xml3
-rw-r--r--java/res/values-fr-rCA/strings.xml3
-rw-r--r--java/res/values-fr/strings.xml5
-rw-r--r--java/res/values-gl/strings.xml5
-rw-r--r--java/res/values-gu/strings.xml3
-rw-r--r--java/res/values-hi/strings.xml3
-rw-r--r--java/res/values-hr/strings.xml3
-rw-r--r--java/res/values-hu/strings.xml3
-rw-r--r--java/res/values-hy/strings.xml3
-rw-r--r--java/res/values-in/strings.xml3
-rw-r--r--java/res/values-is/strings.xml3
-rw-r--r--java/res/values-it/strings.xml6
-rw-r--r--java/res/values-iw/strings.xml5
-rw-r--r--java/res/values-ja/strings.xml5
-rw-r--r--java/res/values-ka/strings.xml3
-rw-r--r--java/res/values-kk/strings.xml3
-rw-r--r--java/res/values-km/strings.xml3
-rw-r--r--java/res/values-kn/strings.xml3
-rw-r--r--java/res/values-ko/strings.xml3
-rw-r--r--java/res/values-ky/strings.xml3
-rw-r--r--java/res/values-lo/strings.xml3
-rw-r--r--java/res/values-lt/strings.xml3
-rw-r--r--java/res/values-lv/strings.xml5
-rw-r--r--java/res/values-mk/strings.xml3
-rw-r--r--java/res/values-ml/strings.xml3
-rw-r--r--java/res/values-mn/strings.xml3
-rw-r--r--java/res/values-mr/strings.xml3
-rw-r--r--java/res/values-ms/strings.xml3
-rw-r--r--java/res/values-my/strings.xml3
-rw-r--r--java/res/values-nb/strings.xml3
-rw-r--r--java/res/values-ne/strings.xml3
-rw-r--r--java/res/values-nl/strings.xml3
-rw-r--r--java/res/values-or/strings.xml3
-rw-r--r--java/res/values-pa/strings.xml3
-rw-r--r--java/res/values-pl/strings.xml3
-rw-r--r--java/res/values-pt-rBR/strings.xml3
-rw-r--r--java/res/values-pt-rPT/strings.xml3
-rw-r--r--java/res/values-pt/strings.xml3
-rw-r--r--java/res/values-ro/strings.xml3
-rw-r--r--java/res/values-ru/strings.xml7
-rw-r--r--java/res/values-si/strings.xml3
-rw-r--r--java/res/values-sk/strings.xml3
-rw-r--r--java/res/values-sl/strings.xml3
-rw-r--r--java/res/values-sq/strings.xml6
-rw-r--r--java/res/values-sr/strings.xml3
-rw-r--r--java/res/values-sv/strings.xml3
-rw-r--r--java/res/values-sw/strings.xml3
-rw-r--r--java/res/values-ta/strings.xml3
-rw-r--r--java/res/values-te/strings.xml3
-rw-r--r--java/res/values-th/strings.xml3
-rw-r--r--java/res/values-tl/strings.xml3
-rw-r--r--java/res/values-tr/strings.xml3
-rw-r--r--java/res/values-uk/strings.xml3
-rw-r--r--java/res/values-ur/strings.xml3
-rw-r--r--java/res/values-uz/strings.xml3
-rw-r--r--java/res/values-vi/strings.xml3
-rw-r--r--java/res/values-zh-rCN/strings.xml3
-rw-r--r--java/res/values-zh-rHK/strings.xml3
-rw-r--r--java/res/values-zh-rTW/strings.xml3
-rw-r--r--java/res/values-zu/strings.xml3
-rw-r--r--java/src/com/android/intentresolver/ChooserActionFactory.java6
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java20
-rw-r--r--java/src/com/android/intentresolver/ChooserHelper.kt9
-rw-r--r--java/src/com/android/intentresolver/SecureSettings.kt27
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt16
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt2
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SetCursorPreviewsInteractor.kt4
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewsModel.kt10
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt20
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt22
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt13
-rw-r--r--java/src/com/android/intentresolver/platform/NearbyShareModule.kt2
-rw-r--r--java/src/com/android/intentresolver/platform/PlatformSecureSettings.kt46
-rw-r--r--java/src/com/android/intentresolver/platform/SecureSettings.kt41
-rw-r--r--java/src/com/android/intentresolver/platform/SettingsImpl.kt59
-rw-r--r--java/src/com/android/intentresolver/platform/SettingsModule.kt (renamed from java/src/com/android/intentresolver/platform/SecureSettingsModule.kt)7
-rw-r--r--java/src/com/android/intentresolver/platform/SettingsProxy.kt92
102 files changed, 539 insertions, 144 deletions
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index 52063f5b..bfe3e7dc 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Sluit skakel uit"</string>
<string name="include_link" msgid="827855767220339802">"Sluit skakel in"</string>
<string name="pinned" msgid="7623664001331394139">"Vasgespeld"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Kiesbare prent"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Kiesbare video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Kiesbare item"</string>
</resources>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index d1d581a2..6daccad9 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"አገናኝን አታካትት"</string>
<string name="include_link" msgid="827855767220339802">"አገናኝ አካትት"</string>
<string name="pinned" msgid="7623664001331394139">"ፒን ተደርጓል"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ሊመረጥ የሚችል ምስል"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ሊመረጥ የሚችል ቪድዮ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ሊመረጥ የሚችል ንጥል"</string>
</resources>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index 76e74b83..fa9bd2c2 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -75,8 +75,8 @@
<string name="file_preview_a11y_description" msgid="7397224827802410602">"صورة مصغّرة لمعاينة ملف"</string>
<string name="chooser_no_direct_share_targets" msgid="4233416657754261844">"ما مِن أشخاص مقترحين للمشاركة معهم"</string>
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"‏لم يتم منح هذا التطبيق إذن تسجيل، ولكن يمكنه تسجيل الصوت من خلال جهاز USB هذا."</string>
- <string name="resolver_personal_tab" msgid="1381052735324320565">"شخصي"</string>
- <string name="resolver_work_tab" msgid="3588325717455216412">"للعمل"</string>
+ <string name="resolver_personal_tab" msgid="1381052735324320565">"مساحة شخصية"</string>
+ <string name="resolver_work_tab" msgid="3588325717455216412">"مساحة العمل"</string>
<string name="resolver_private_tab" msgid="3707548826254095157">"المساحة الخاصّة"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"عرض المحتوى الشخصي"</string>
<string name="resolver_work_tab_accessibility" msgid="7581878836587799920">"عرض محتوى العمل"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"استثناء الرابط"</string>
<string name="include_link" msgid="827855767220339802">"تضمين الرابط"</string>
<string name="pinned" msgid="7623664001331394139">"مثبَّت"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"صورة يمكن اختيارها"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"فيديو يمكن اختياره"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"عنصر يمكن اختياره"</string>
</resources>
diff --git a/java/res/values-as/strings.xml b/java/res/values-as/strings.xml
index c732113a..d2b3cb69 100644
--- a/java/res/values-as/strings.xml
+++ b/java/res/values-as/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"লিংক বহিৰ্ভূত কৰক"</string>
<string name="include_link" msgid="827855767220339802">"লিংক অন্তৰ্ভুক্ত কৰক"</string>
<string name="pinned" msgid="7623664001331394139">"পিন কৰা আছে"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"বাছনি কৰিব পৰা প্ৰতিচ্ছবি"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"বাছনি কৰিব পৰা ভিডিঅ’"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"বাছনি কৰিব পৰা বস্তু"</string>
</resources>
diff --git a/java/res/values-az/strings.xml b/java/res/values-az/strings.xml
index d5d6b75f..e8915892 100644
--- a/java/res/values-az/strings.xml
+++ b/java/res/values-az/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Keçidi istisna edin"</string>
<string name="include_link" msgid="827855767220339802">"Keçid daxil edin"</string>
<string name="pinned" msgid="7623664001331394139">"Bərkidilib"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Seçilə bilən şəkil"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Seçilə bilən video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Seçilə bilən element"</string>
</resources>
diff --git a/java/res/values-b+sr+Latn/strings.xml b/java/res/values-b+sr+Latn/strings.xml
index 99339496..228576f6 100644
--- a/java/res/values-b+sr+Latn/strings.xml
+++ b/java/res/values-b+sr+Latn/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Izuzmi link"</string>
<string name="include_link" msgid="827855767220339802">"Uvrsti link"</string>
<string name="pinned" msgid="7623664001331394139">"Zakačeno"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Slika koja može da se izabere"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video koji može da se izabere"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Stavka koja može da se izabere"</string>
</resources>
diff --git a/java/res/values-be/strings.xml b/java/res/values-be/strings.xml
index 6f9190bc..22079a0d 100644
--- a/java/res/values-be/strings.xml
+++ b/java/res/values-be/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Выдаліць спасылку"</string>
<string name="include_link" msgid="827855767220339802">"Дадаць спасылку"</string>
<string name="pinned" msgid="7623664001331394139">"Замацавана"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Відарыс, які можна выбраць"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Відэа, якое можна выбраць"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Элемент, які можна выбраць"</string>
</resources>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index f16e5486..0b5fcad5 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Изключване на връзката"</string>
<string name="include_link" msgid="827855767220339802">"Включване на връзката"</string>
<string name="pinned" msgid="7623664001331394139">"Фиксирано"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Избираемо изображение"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Избираем видеоклип"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Избираем елемент"</string>
</resources>
diff --git a/java/res/values-bn/strings.xml b/java/res/values-bn/strings.xml
index 41778ade..b0d433c1 100644
--- a/java/res/values-bn/strings.xml
+++ b/java/res/values-bn/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"লিঙ্ক বাদ দিন"</string>
<string name="include_link" msgid="827855767220339802">"লিঙ্ক যোগ করুন"</string>
<string name="pinned" msgid="7623664001331394139">"পিন করা হয়েছে"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"বেছে নেওয়া যাবে এমন ছবি"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"বেছে নেওয়া যাবে এমন ভিডিও"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"বেছে নেওয়া যাবে এমন আইটেম"</string>
</resources>
diff --git a/java/res/values-bs/strings.xml b/java/res/values-bs/strings.xml
index d8cfc346..ec642454 100644
--- a/java/res/values-bs/strings.xml
+++ b/java/res/values-bs/strings.xml
@@ -57,7 +57,7 @@
<string name="more_files" msgid="1043875756612339842">"{count,plural, =1{i još # fajl}one{i još # fajl}few{i još # fajla}other{i još # fajlova}}"</string>
<string name="sharing_text" msgid="8137537443603304062">"Dijeljenje teksta"</string>
<string name="sharing_link" msgid="2307694372813942916">"Dijeljenje linka"</string>
- <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{Dijeljenje slike}one{Dijeljenje # slike}few{Dijeljenje # slike}other{Dijeljenje # slika}}"</string>
+ <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{Dijeli se slika}one{Dijeli se # slika}few{Dijele se # slike}other{Dijeli se # slika}}"</string>
<string name="sharing_videos" msgid="3583423190182877434">"{count,plural, =1{Dijeljenje videozapisa}one{Dijeljenje # videozapisa}few{Dijeljenje # videozapisa}other{Dijeljenje # videozapisa}}"</string>
<string name="sharing_files" msgid="1275646542246028823">"{count,plural, =1{Dijeljenje # fajla}one{Dijeljenje # fajla}few{Dijeljenje # fajla}other{Dijeljenje # fajlova}}"</string>
<string name="sharing_images_with_text" msgid="9005717434461730242">"{count,plural, =1{Dijeljenje slike putem poruke}one{Dijeljenje # slike putem poruke}few{Dijeljenje # slike putem poruke}other{Dijeljenje # slika putem poruke}}"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Izuzmi link"</string>
<string name="include_link" msgid="827855767220339802">"Uključi link"</string>
<string name="pinned" msgid="7623664001331394139">"Zakačeno"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Slika koju je moguće odabrati"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Videozapis koji je moguće odabrati"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Stavka koju je moguće odabrati"</string>
</resources>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index d3af1d2b..4cc905ba 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclou l\'enllaç"</string>
<string name="include_link" msgid="827855767220339802">"Inclou l\'enllaç"</string>
<string name="pinned" msgid="7623664001331394139">"Fixat"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imatge seleccionable"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeo seleccionable"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Element seleccionable"</string>
</resources>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index 8c3d6f88..cca5091d 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Vyloučit odkaz"</string>
<string name="include_link" msgid="827855767220339802">"Zahrnout odkaz"</string>
<string name="pinned" msgid="7623664001331394139">"Připnuto"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Vybratelný obrázek"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vybratelné video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Vybratelná položka"</string>
</resources>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index cc726342..f0d27442 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Ekskluder link"</string>
<string name="include_link" msgid="827855767220339802">"Inkluder link"</string>
<string name="pinned" msgid="7623664001331394139">"Fastgjort"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Billede, der kan vælges"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video, der kan vælges"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Element, der kan vælges"</string>
</resources>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index 32c8265f..c6d26eb2 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Link ausschließen"</string>
<string name="include_link" msgid="827855767220339802">"Link einschließen"</string>
<string name="pinned" msgid="7623664001331394139">"Angepinnt"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Auswählbares Bild"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Auswählbares Video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Auswählbares Element"</string>
</resources>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 5e02ab9e..ed09f127 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -77,7 +77,7 @@
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"Δεν έχει εκχωρηθεί άδεια εγγραφής σε αυτή την εφαρμογή, αλλά μέσω αυτής της συσκευής USB θα μπορεί να εγγράφει ήχο."</string>
<string name="resolver_personal_tab" msgid="1381052735324320565">"Προσωπικό"</string>
<string name="resolver_work_tab" msgid="3588325717455216412">"Εργασία"</string>
- <string name="resolver_private_tab" msgid="3707548826254095157">"Ιδιωτική"</string>
+ <string name="resolver_private_tab" msgid="3707548826254095157">"Ιδιωτικός"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"Προσωπική προβολή"</string>
<string name="resolver_work_tab_accessibility" msgid="7581878836587799920">"Προβολή εργασίας"</string>
<string name="resolver_private_tab_accessibility" msgid="2513122834337197252">"Ιδιωτική προβολή"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Εξαίρεση συνδέσμου"</string>
<string name="include_link" msgid="827855767220339802">"Συμπερίληψη συνδέσμου"</string>
<string name="pinned" msgid="7623664001331394139">"Καρφιτσωμένο"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Εικόνα με δυνατότητα επιλογής"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Βίντεο με δυνατότητα επιλογής"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Στοιχείο με δυνατότητα επιλογής"</string>
</resources>
diff --git a/java/res/values-en-rAU/strings.xml b/java/res/values-en-rAU/strings.xml
index 28067f40..88e86718 100644
--- a/java/res/values-en-rAU/strings.xml
+++ b/java/res/values-en-rAU/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclude link"</string>
<string name="include_link" msgid="827855767220339802">"Include link"</string>
<string name="pinned" msgid="7623664001331394139">"Pinned"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Selectable image"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Selectable video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Selectable item"</string>
</resources>
diff --git a/java/res/values-en-rCA/strings.xml b/java/res/values-en-rCA/strings.xml
index de4865f0..978da764 100644
--- a/java/res/values-en-rCA/strings.xml
+++ b/java/res/values-en-rCA/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclude link"</string>
<string name="include_link" msgid="827855767220339802">"Include link"</string>
<string name="pinned" msgid="7623664001331394139">"Pinned"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Selectable image"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Selectable video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Selectable item"</string>
</resources>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 28067f40..88e86718 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclude link"</string>
<string name="include_link" msgid="827855767220339802">"Include link"</string>
<string name="pinned" msgid="7623664001331394139">"Pinned"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Selectable image"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Selectable video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Selectable item"</string>
</resources>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index 28067f40..88e86718 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclude link"</string>
<string name="include_link" msgid="827855767220339802">"Include link"</string>
<string name="pinned" msgid="7623664001331394139">"Pinned"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Selectable image"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Selectable video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Selectable item"</string>
</resources>
diff --git a/java/res/values-en-rXC/strings.xml b/java/res/values-en-rXC/strings.xml
index f02e2c0d..7447d83b 100644
--- a/java/res/values-en-rXC/strings.xml
+++ b/java/res/values-en-rXC/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎Exclude link‎‏‎‎‏‎"</string>
<string name="include_link" msgid="827855767220339802">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎Include link‎‏‎‎‏‎"</string>
<string name="pinned" msgid="7623664001331394139">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎Pinned‎‏‎‎‏‎"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‏‏‎Selectable image‎‏‎‎‏‎"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎Selectable video‎‏‎‎‏‎"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‎‎‎‎‎Selectable item‎‏‎‎‏‎"</string>
</resources>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index a881ede8..a76fba3a 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -77,7 +77,7 @@
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"Aunque no se le otorgó permiso de grabación a esta app, puede capturar audio con este dispositivo USB."</string>
<string name="resolver_personal_tab" msgid="1381052735324320565">"Personal"</string>
<string name="resolver_work_tab" msgid="3588325717455216412">"Trabajo"</string>
- <string name="resolver_private_tab" msgid="3707548826254095157">"Privada"</string>
+ <string name="resolver_private_tab" msgid="3707548826254095157">"Privado"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"Vista personal"</string>
<string name="resolver_work_tab_accessibility" msgid="7581878836587799920">"Vista de trabajo"</string>
<string name="resolver_private_tab_accessibility" msgid="2513122834337197252">"Vista privada"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Excluir vínculo"</string>
<string name="include_link" msgid="827855767220339802">"Incluir vínculo"</string>
<string name="pinned" msgid="7623664001331394139">"Fijado"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imagen seleccionable"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video seleccionable"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Elemento seleccionable"</string>
</resources>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index 62063d99..c4f4396c 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Excluir enlace"</string>
<string name="include_link" msgid="827855767220339802">"Incluir enlace"</string>
<string name="pinned" msgid="7623664001331394139">"Fijado"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imagen seleccionable"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeo seleccionable"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Elemento seleccionable"</string>
</resources>
diff --git a/java/res/values-et/strings.xml b/java/res/values-et/strings.xml
index 27d14e00..ab849b2c 100644
--- a/java/res/values-et/strings.xml
+++ b/java/res/values-et/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Välista link"</string>
<string name="include_link" msgid="827855767220339802">"Kaasa link"</string>
<string name="pinned" msgid="7623664001331394139">"Kinnitatud"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Valitav pilt"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Valitav video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Valitav üksus"</string>
</resources>
diff --git a/java/res/values-eu/strings.xml b/java/res/values-eu/strings.xml
index a77d5db2..a3269d72 100644
--- a/java/res/values-eu/strings.xml
+++ b/java/res/values-eu/strings.xml
@@ -57,7 +57,7 @@
<string name="more_files" msgid="1043875756612339842">"{count,plural, =1{eta beste # fitxategi}other{eta beste # fitxategi}}"</string>
<string name="sharing_text" msgid="8137537443603304062">"Partekatuko den testua"</string>
<string name="sharing_link" msgid="2307694372813942916">"Esteka partekatzen"</string>
- <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{Irudia partekatzen}other{# irudi partekatzen}}"</string>
+ <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{Irudia partekatuko da}other{# irudi partekatuko dira}}"</string>
<string name="sharing_videos" msgid="3583423190182877434">"{count,plural, =1{Bideoa partekatzen}other{# bideo partekatzen}}"</string>
<string name="sharing_files" msgid="1275646542246028823">"{count,plural, =1{# fitxategi partekatuko da}other{# fitxategi partekatuko dira}}"</string>
<string name="sharing_images_with_text" msgid="9005717434461730242">"{count,plural, =1{Irudi testudun bat partekatuko da}other{# irudi testudun partekatuko dira}}"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Utzi kanpoan esteka"</string>
<string name="include_link" msgid="827855767220339802">"Sartu esteka"</string>
<string name="pinned" msgid="7623664001331394139">"Ainguratuta"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Hauta daitekeen irudia"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Hauta daitekeen bideoa"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Hauta daitekeen elementua"</string>
</resources>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 55204e51..ef820a74 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"مستثنی کردن پیوند"</string>
<string name="include_link" msgid="827855767220339802">"لحاظ کردن پیوند"</string>
<string name="pinned" msgid="7623664001331394139">"سنجاق‌شده"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"تصویر قابل‌انتخاب"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ویدیو قابل‌انتخاب"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"مورد قابل‌انتخاب"</string>
</resources>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 1456ddf5..ee740f13 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Jätä linkki pois"</string>
<string name="include_link" msgid="827855767220339802">"Liitä linkki mukaan"</string>
<string name="pinned" msgid="7623664001331394139">"Kiinnitetty"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Valittava kuva"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Valittava video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Valittava kohde"</string>
</resources>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index a8916bb0..41b79692 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclure le lien"</string>
<string name="include_link" msgid="827855767220339802">"Inclure le lien"</string>
<string name="pinned" msgid="7623664001331394139">"Épinglée"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Image sélectionnable"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vidéo sélectionnable"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Élément sélectionnable"</string>
</resources>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index 8d19248f..6f55cbf9 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -57,7 +57,7 @@
<string name="more_files" msgid="1043875756612339842">"{count,plural, =1{+ # autre fichier}one{+ # autre fichier}many{+ # autres fichiers}other{+ # autres fichiers}}"</string>
<string name="sharing_text" msgid="8137537443603304062">"Texte à partager"</string>
<string name="sharing_link" msgid="2307694372813942916">"Partager le lien"</string>
- <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{Partager l\'image…}one{Partager # image…}many{Partager # d\'images…}other{Partager # images…}}"</string>
+ <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{Partager l\'image}one{Partager # image}many{Partager # d\'images}other{Partager # images}}"</string>
<string name="sharing_videos" msgid="3583423190182877434">"{count,plural, =1{Partage de la vidéo…}one{Partage de # vidéo…}many{Partage de # de vidéos…}other{Partage de # vidéos…}}"</string>
<string name="sharing_files" msgid="1275646542246028823">"{count,plural, =1{Partage de # fichier}one{Partage de # fichier}many{Partage de # fichiers}other{Partage de # fichiers}}"</string>
<string name="sharing_images_with_text" msgid="9005717434461730242">"{count,plural, =1{Partager 1 image avec du texte}one{Partager # image avec du texte}many{Partager # images avec du texte}other{Partager # images avec du texte}}"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclure le lien"</string>
<string name="include_link" msgid="827855767220339802">"Inclure le lien"</string>
<string name="pinned" msgid="7623664001331394139">"Épinglée"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Image sélectionnable"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vidéo sélectionnable"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Élément sélectionnable"</string>
</resources>
diff --git a/java/res/values-gl/strings.xml b/java/res/values-gl/strings.xml
index 81ab1d16..fe59eaa6 100644
--- a/java/res/values-gl/strings.xml
+++ b/java/res/values-gl/strings.xml
@@ -77,7 +77,7 @@
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"Esta aplicación non está autorizada a realizar gravacións, pero podería capturar audio a través deste dispositivo USB."</string>
<string name="resolver_personal_tab" msgid="1381052735324320565">"Persoal"</string>
<string name="resolver_work_tab" msgid="3588325717455216412">"Traballo"</string>
- <string name="resolver_private_tab" msgid="3707548826254095157">"Privada"</string>
+ <string name="resolver_private_tab" msgid="3707548826254095157">"Privado"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"Vista persoal"</string>
<string name="resolver_work_tab_accessibility" msgid="7581878836587799920">"Vista de traballo"</string>
<string name="resolver_private_tab_accessibility" msgid="2513122834337197252">"Vista privada"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Excluír ligazón"</string>
<string name="include_link" msgid="827855767220339802">"Incluír ligazón"</string>
<string name="pinned" msgid="7623664001331394139">"Elemento fixado"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imaxe seleccionable"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeo seleccionable"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Elemento seleccionable"</string>
</resources>
diff --git a/java/res/values-gu/strings.xml b/java/res/values-gu/strings.xml
index 5f74da1c..70d84bc8 100644
--- a/java/res/values-gu/strings.xml
+++ b/java/res/values-gu/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"લિંકને બાકાત કરો"</string>
<string name="include_link" msgid="827855767220339802">"લિંક શામેલ કરો"</string>
<string name="pinned" msgid="7623664001331394139">"પિન કરેલી"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"પસંદ કરી શકાય તેવી છબી"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"પસંદ કરી શકાય તેવો વીડિયો"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"પસંદ કરી શકાય તેવી આઇટમ"</string>
</resources>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index 291594fc..fcf484b9 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"लिंक हटाएं"</string>
<string name="include_link" msgid="827855767220339802">"लिंक जोड़ें"</string>
<string name="pinned" msgid="7623664001331394139">"पिन किया गया"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ऐसी इमेज जिसे चुना जा सकता है"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ऐसा वीडियो जिसे चुना जा सकता है"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ऐसा आइटम जिसे चुना जा सकता है"</string>
</resources>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 0d969c40..ca62036d 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Isključi vezu"</string>
<string name="include_link" msgid="827855767220339802">"Uključi vezu"</string>
<string name="pinned" msgid="7623664001331394139">"Prikvačeno"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Slika koja se može odabrati"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Videozapis koji se može odabrati"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Stavka koja se može odabrati"</string>
</resources>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index 1ecadb77..a0bce668 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Link eltávolítása"</string>
<string name="include_link" msgid="827855767220339802">"Linkkel együtt"</string>
<string name="pinned" msgid="7623664001331394139">"Kitűzve"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Kijelölhető kép"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Kijelölhető videó"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Kijelölhető elem"</string>
</resources>
diff --git a/java/res/values-hy/strings.xml b/java/res/values-hy/strings.xml
index e4ba3ed4..2ee335da 100644
--- a/java/res/values-hy/strings.xml
+++ b/java/res/values-hy/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Բացառել հղումը"</string>
<string name="include_link" msgid="827855767220339802">"Ներառել հղումը"</string>
<string name="pinned" msgid="7623664001331394139">"Ամրացված է"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Ընտրելու հնարավորությամբ պատկեր"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Ընտրելու հնարավորությամբ տեսանյութ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Ընտրելու հնարավորությամբ տարր"</string>
</resources>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index 13c20f36..1efaf920 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Kecualikan link"</string>
<string name="include_link" msgid="827855767220339802">"Sertakan link"</string>
<string name="pinned" msgid="7623664001331394139">"Disematkan"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Gambar yang dapat dipilih"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video yang dapat dipilih"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Item yang dapat dipilih"</string>
</resources>
diff --git a/java/res/values-is/strings.xml b/java/res/values-is/strings.xml
index 1fc0f98c..9bc4f5cb 100644
--- a/java/res/values-is/strings.xml
+++ b/java/res/values-is/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Útiloka tengil"</string>
<string name="include_link" msgid="827855767220339802">"Hafa tengil með"</string>
<string name="pinned" msgid="7623664001331394139">"Fest"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Mynd sem hægt er að velja"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeó sem hægt er að velja"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Atriði sem hægt er að velja"</string>
</resources>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 96baefae..277d03d9 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -102,4 +102,10 @@
<string name="exclude_link" msgid="1332778255031992228">"Escludi link"</string>
<string name="include_link" msgid="827855767220339802">"Includi link"</string>
<string name="pinned" msgid="7623664001331394139">"Elemento fissato"</string>
+ <!-- no translation found for selectable_image (3157858923437182271) -->
+ <skip />
+ <!-- no translation found for selectable_video (1271768647699300826) -->
+ <skip />
+ <!-- no translation found for selectable_item (7557320816744205280) -->
+ <skip />
</resources>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index 8cfa7bd6..7c13ebd3 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -77,7 +77,7 @@
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"‏לאפליקציה זו לא ניתנה הרשאת הקלטה, אבל אפשר להקליט אודיו באמצעות התקן ה-USB הזה."</string>
<string name="resolver_personal_tab" msgid="1381052735324320565">"אישי"</string>
<string name="resolver_work_tab" msgid="3588325717455216412">"עבודה"</string>
- <string name="resolver_private_tab" msgid="3707548826254095157">"מרחב פרטי"</string>
+ <string name="resolver_private_tab" msgid="3707548826254095157">"פרטי"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"תצוגה אישית"</string>
<string name="resolver_work_tab_accessibility" msgid="7581878836587799920">"תצוגת עבודה"</string>
<string name="resolver_private_tab_accessibility" msgid="2513122834337197252">"תצוגה פרטית"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"החרגת הקישור"</string>
<string name="include_link" msgid="827855767220339802">"הכללת הקישור"</string>
<string name="pinned" msgid="7623664001331394139">"מוצמד"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"תמונה שניתן לבחור"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"סרטון שניתן לבחור"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"פריט שניתן לבחור"</string>
</resources>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index d85b6864..0c97d64a 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -57,7 +57,7 @@
<string name="more_files" msgid="1043875756612339842">"{count,plural, =1{その他 # ファイル}other{その他 # ファイル}}"</string>
<string name="sharing_text" msgid="8137537443603304062">"テキストの共有"</string>
<string name="sharing_link" msgid="2307694372813942916">"リンクを共有中"</string>
- <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{画像を共有しています}other{# 枚の画像を共有しています}}"</string>
+ <string name="sharing_images" msgid="5251443722186962006">"{count,plural, =1{1 枚の画像を共有します}other{# 枚の画像を共有します}}"</string>
<string name="sharing_videos" msgid="3583423190182877434">"{count,plural, =1{動画を共有中}other{# 個の動画を共有中}}"</string>
<string name="sharing_files" msgid="1275646542246028823">"{count,plural, =1{# 個のファイルを共有中}other{# 個のファイルを共有中}}"</string>
<string name="sharing_images_with_text" msgid="9005717434461730242">"{count,plural, =1{テキスト付き画像を共有しています}other{テキスト付き画像を # 件共有しています}}"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"リンクを除外"</string>
<string name="include_link" msgid="827855767220339802">"リンクを含める"</string>
<string name="pinned" msgid="7623664001331394139">"固定されています"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"選択可能な画像"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"選択可能な動画"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"選択可能なアイテム"</string>
</resources>
diff --git a/java/res/values-ka/strings.xml b/java/res/values-ka/strings.xml
index 91f3b2ac..46d1f1e7 100644
--- a/java/res/values-ka/strings.xml
+++ b/java/res/values-ka/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ბმულის ამოღება"</string>
<string name="include_link" msgid="827855767220339802">"ბმულის დართვა"</string>
<string name="pinned" msgid="7623664001331394139">"ჩამაგრებული"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"არჩევადი სურათი"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"არჩევადი ვიდეო"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"არჩევადი ერთეული"</string>
</resources>
diff --git a/java/res/values-kk/strings.xml b/java/res/values-kk/strings.xml
index ce4055f6..ee3135fa 100644
--- a/java/res/values-kk/strings.xml
+++ b/java/res/values-kk/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Сілтемені шығару"</string>
<string name="include_link" msgid="827855767220339802">"Сілтеме қосу"</string>
<string name="pinned" msgid="7623664001331394139">"Бекітілген"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Таңдауға болатын сурет"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Таңдауға болатын бейне"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Таңдауға болатын элемент"</string>
</resources>
diff --git a/java/res/values-km/strings.xml b/java/res/values-km/strings.xml
index b6ff7b70..eb2ef8a0 100644
--- a/java/res/values-km/strings.xml
+++ b/java/res/values-km/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"មិនរួមបញ្ចូលតំណ"</string>
<string name="include_link" msgid="827855767220339802">"រួមបញ្ចូល​តំណ"</string>
<string name="pinned" msgid="7623664001331394139">"បាន​ខ្ទាស់"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"រូបភាពដែល​អាចជ្រើសរើសបាន"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"វីដេអូដែល​អាចជ្រើសរើសបាន"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ធាតុដែល​អាចជ្រើសរើសបាន"</string>
</resources>
diff --git a/java/res/values-kn/strings.xml b/java/res/values-kn/strings.xml
index 33abd7f4..17f3b295 100644
--- a/java/res/values-kn/strings.xml
+++ b/java/res/values-kn/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ಲಿಂಕ್ ಹೊರತುಪಡಿಸಿ"</string>
<string name="include_link" msgid="827855767220339802">"ಲಿಂಕ್ ಸೇರಿಸಿ"</string>
<string name="pinned" msgid="7623664001331394139">"ಪಿನ್‌ ಮಾಡಲಾಗಿದೆ"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ಆಯ್ಕೆಮಾಡಬಹುದಾದ ಚಿತ್ರ"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ಆಯ್ಕೆ ಮಾಡಬಹುದಾದ ವೀಡಿಯೊ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ಆಯ್ಕೆ ಮಾಡಬಹುದಾದ ಐಟಂ"</string>
</resources>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index 9110dc9c..b75b9bdd 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"링크 제외"</string>
<string name="include_link" msgid="827855767220339802">"링크 포함"</string>
<string name="pinned" msgid="7623664001331394139">"고정됨"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"선택 가능한 이미지"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"선택 가능한 동영상"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"선택 가능한 항목"</string>
</resources>
diff --git a/java/res/values-ky/strings.xml b/java/res/values-ky/strings.xml
index b6ac7bb1..6f84e1bf 100644
--- a/java/res/values-ky/strings.xml
+++ b/java/res/values-ky/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Шилтемени чыгарып салуу"</string>
<string name="include_link" msgid="827855767220339802">"Шилтеме кошуу"</string>
<string name="pinned" msgid="7623664001331394139">"Кадалган"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Тандала турган сүрөт"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Тандала турган видео"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Тандала турган нерсе"</string>
</resources>
diff --git a/java/res/values-lo/strings.xml b/java/res/values-lo/strings.xml
index 1cc677ed..2a65f486 100644
--- a/java/res/values-lo/strings.xml
+++ b/java/res/values-lo/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ບໍ່ຮວມລິ້ງ"</string>
<string name="include_link" msgid="827855767220339802">"ຮວມລິ້ງ"</string>
<string name="pinned" msgid="7623664001331394139">"ປັກໝຸດແລ້ວ"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ຮູບທີ່ເລືອກໄດ້"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ວິດີໂອທີ່ເລືອກໄດ້"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ລາຍການທີ່ເລືອກໄດ້"</string>
</resources>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index 17971c47..bb495311 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Išskirti nuorodą"</string>
<string name="include_link" msgid="827855767220339802">"Įtraukti nuorodą"</string>
<string name="pinned" msgid="7623664001331394139">"Prisegta"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Pasirenkamas vaizdas"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Pasirenkamas vaizdo įrašas"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Pasirenkamas elementas"</string>
</resources>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index 76070171..7dd6cac9 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -75,7 +75,7 @@
<string name="file_preview_a11y_description" msgid="7397224827802410602">"Faila priekšskatījuma sīktēls"</string>
<string name="chooser_no_direct_share_targets" msgid="4233416657754261844">"Nav ieteikta neviena persona, ar ko kopīgot"</string>
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"Šai lietotnei nav piešķirta ierakstīšanas atļauja, taču tā varētu tvert audio, izmantojot šo USB ierīci."</string>
- <string name="resolver_personal_tab" msgid="1381052735324320565">"Privātais profils"</string>
+ <string name="resolver_personal_tab" msgid="1381052735324320565">"Personīgais profils"</string>
<string name="resolver_work_tab" msgid="3588325717455216412">"Darba profils"</string>
<string name="resolver_private_tab" msgid="3707548826254095157">"Privāts"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"Personisks skats"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Izslēgt saiti"</string>
<string name="include_link" msgid="827855767220339802">"Iekļaut saiti"</string>
<string name="pinned" msgid="7623664001331394139">"Piespraustās"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Atlasāms attēls"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Atlasāms video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Atlasāms vienums"</string>
</resources>
diff --git a/java/res/values-mk/strings.xml b/java/res/values-mk/strings.xml
index ceca73ce..45fb82e3 100644
--- a/java/res/values-mk/strings.xml
+++ b/java/res/values-mk/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Исклучи линк"</string>
<string name="include_link" msgid="827855767220339802">"Вклучи линк"</string>
<string name="pinned" msgid="7623664001331394139">"Закачено"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Слика што може да се избере"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Видео што може да се избере"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Ставка што може да се избере"</string>
</resources>
diff --git a/java/res/values-ml/strings.xml b/java/res/values-ml/strings.xml
index 5697294b..ce466e8f 100644
--- a/java/res/values-ml/strings.xml
+++ b/java/res/values-ml/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ലിങ്ക് ഒഴിവാക്കുക"</string>
<string name="include_link" msgid="827855767220339802">"ലിങ്ക് ഉൾപ്പെടുത്തുക"</string>
<string name="pinned" msgid="7623664001331394139">"പിൻ ചെയ്‌തത്"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"തിരഞ്ഞെടുക്കാവുന്ന ചിത്രം"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"തിരഞ്ഞെടുക്കാവുന്ന വീഡിയോ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"തിരഞ്ഞെടുക്കാവുന്ന ഇനം"</string>
</resources>
diff --git a/java/res/values-mn/strings.xml b/java/res/values-mn/strings.xml
index 4ef02012..30686c51 100644
--- a/java/res/values-mn/strings.xml
+++ b/java/res/values-mn/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Холбоосыг хасах"</string>
<string name="include_link" msgid="827855767220339802">"Холбоосыг оруулах"</string>
<string name="pinned" msgid="7623664001331394139">"Бэхэлсэн"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Сонгох боломжтой зураг"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Сонгох боломжтой видео"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Сонгох боломжтой зүйл"</string>
</resources>
diff --git a/java/res/values-mr/strings.xml b/java/res/values-mr/strings.xml
index 9eaec274..9ad4a4c8 100644
--- a/java/res/values-mr/strings.xml
+++ b/java/res/values-mr/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"लिंक वगळा"</string>
<string name="include_link" msgid="827855767220339802">"लिंक समाविष्ट करा"</string>
<string name="pinned" msgid="7623664001331394139">"पिन केलेली"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"निवडण्यायोग्य इमेज"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"निवडण्यायोग्य व्हिडिओ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"निवडण्यायोग्य आयटम"</string>
</resources>
diff --git a/java/res/values-ms/strings.xml b/java/res/values-ms/strings.xml
index de0f20d2..92e7a26f 100644
--- a/java/res/values-ms/strings.xml
+++ b/java/res/values-ms/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Kecualikan pautan"</string>
<string name="include_link" msgid="827855767220339802">"Sertakan pautan"</string>
<string name="pinned" msgid="7623664001331394139">"Disemat"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imej yang boleh dipilih"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video yang boleh dipilih"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Item yang boleh dipilih"</string>
</resources>
diff --git a/java/res/values-my/strings.xml b/java/res/values-my/strings.xml
index 10fb4b9b..1f78c7f1 100644
--- a/java/res/values-my/strings.xml
+++ b/java/res/values-my/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"လင့်ခ် ဖယ်ထုတ်ရန်"</string>
<string name="include_link" msgid="827855767220339802">"လင့်ခ်ထည့်သွင်းရန်"</string>
<string name="pinned" msgid="7623664001331394139">"ပင်ထိုးထားသည်"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ရွေးချယ်နိုင်သောပုံ"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ရွေးချယ်နိုင်သော ဗီဒီယို"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ရွေးချယ်နိုင်သောအရာ"</string>
</resources>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 3aeaf799..f9b91f7a 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Ekskluder linken"</string>
<string name="include_link" msgid="827855767220339802">"Inkluder linken"</string>
<string name="pinned" msgid="7623664001331394139">"Festet"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Bilde som kan velges"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video som kan velges"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Element som kan velges"</string>
</resources>
diff --git a/java/res/values-ne/strings.xml b/java/res/values-ne/strings.xml
index 1c5ee2f7..61c7fe17 100644
--- a/java/res/values-ne/strings.xml
+++ b/java/res/values-ne/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"लिंक हटाउनुहोस्"</string>
<string name="include_link" msgid="827855767220339802">"लिंक समावेश गर्नुहोस्"</string>
<string name="pinned" msgid="7623664001331394139">"पिन गरिएको"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"चयन गर्न मिल्ने फोटो"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"चयन गर्न मिल्ने भिडियो"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"चयन गर्न मिल्ने वस्तु"</string>
</resources>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index c77ee336..a259a205 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Link uitsluiten"</string>
<string name="include_link" msgid="827855767220339802">"Link opnemen"</string>
<string name="pinned" msgid="7623664001331394139">"Vastgezet"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Selecteerbare afbeelding"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Selecteerbare video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Selecteerbaar item"</string>
</resources>
diff --git a/java/res/values-or/strings.xml b/java/res/values-or/strings.xml
index 228af287..7586ae91 100644
--- a/java/res/values-or/strings.xml
+++ b/java/res/values-or/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ଲିଙ୍କକୁ ବାଦ ଦିଅନ୍ତୁ"</string>
<string name="include_link" msgid="827855767220339802">"ଲିଙ୍କକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରନ୍ତୁ"</string>
<string name="pinned" msgid="7623664001331394139">"ପିନ କରାଯାଇଛି"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ଚୟନ କରାଯାଇପାରୁଥିବା ଇମେଜ"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ଚୟନ କରାଯାଇପାରୁଥିବା ଭିଡିଓ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ଚୟନ କରାଯାଇପାରୁଥିବା ଆଇଟମ"</string>
</resources>
diff --git a/java/res/values-pa/strings.xml b/java/res/values-pa/strings.xml
index 48b92189..04565373 100644
--- a/java/res/values-pa/strings.xml
+++ b/java/res/values-pa/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ਲਿੰਕ ਨੂੰ ਸ਼ਾਮਲ ਨਾ ਕਰੋ"</string>
<string name="include_link" msgid="827855767220339802">"ਲਿੰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="pinned" msgid="7623664001331394139">"ਪਿੰਨ ਕੀਤਾ ਗਿਆ"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ਚੁਣਨਯੋਗ ਚਿੱਤਰ"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ਚੁਣਨਯੋਗ ਵੀਡੀਓ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ਚੁਣਨਯੋਗ ਆਈਟਮ"</string>
</resources>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index 92877b42..e67510e3 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Wyklucz link"</string>
<string name="include_link" msgid="827855767220339802">"Dołącz link"</string>
<string name="pinned" msgid="7623664001331394139">"Przypięte"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Obraz do wyboru"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Film do wyboru"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Element do wyboru"</string>
</resources>
diff --git a/java/res/values-pt-rBR/strings.xml b/java/res/values-pt-rBR/strings.xml
index b70ffae6..b5778cf6 100644
--- a/java/res/values-pt-rBR/strings.xml
+++ b/java/res/values-pt-rBR/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Excluir link"</string>
<string name="include_link" msgid="827855767220339802">"Incluir link"</string>
<string name="pinned" msgid="7623664001331394139">"Fixada"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imagem selecionável"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeo selecionável"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Item selecionável"</string>
</resources>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index 46ad2a78..52b62fe6 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Excluir link"</string>
<string name="include_link" msgid="827855767220339802">"Incluir link"</string>
<string name="pinned" msgid="7623664001331394139">"Afixada"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imagem selecionável"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeo selecionável"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Item selecionável"</string>
</resources>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index b70ffae6..b5778cf6 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Excluir link"</string>
<string name="include_link" msgid="827855767220339802">"Incluir link"</string>
<string name="pinned" msgid="7623664001331394139">"Fixada"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imagem selecionável"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vídeo selecionável"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Item selecionável"</string>
</resources>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 8029c8b2..02d5df12 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Exclude linkul"</string>
<string name="include_link" msgid="827855767220339802">"Include linkul"</string>
<string name="pinned" msgid="7623664001331394139">"Fixat"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Imagine care poate fi selectată"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Videoclip care poate fi selectat"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Articol care poate fi selectat"</string>
</resources>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index a868eb9a..84d29ad1 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -75,9 +75,9 @@
<string name="file_preview_a11y_description" msgid="7397224827802410602">"Значок предварительного просмотра файла"</string>
<string name="chooser_no_direct_share_targets" msgid="4233416657754261844">"Рекомендованных получателей нет."</string>
<string name="usb_device_resolve_prompt_warn" msgid="4254493957548169620">"Приложению не разрешено записывать звук, однако оно может делать это с помощью этого USB-устройства."</string>
- <string name="resolver_personal_tab" msgid="1381052735324320565">"Личное"</string>
+ <string name="resolver_personal_tab" msgid="1381052735324320565">"Личный"</string>
<string name="resolver_work_tab" msgid="3588325717455216412">"Рабочее"</string>
- <string name="resolver_private_tab" msgid="3707548826254095157">"Частное пространство"</string>
+ <string name="resolver_private_tab" msgid="3707548826254095157">"Частный"</string>
<string name="resolver_personal_tab_accessibility" msgid="4467784352232582574">"Просмотр личных данных"</string>
<string name="resolver_work_tab_accessibility" msgid="7581878836587799920">"Просмотр рабочих данных"</string>
<string name="resolver_private_tab_accessibility" msgid="2513122834337197252">"Частное пространство"</string>
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Исключить ссылку"</string>
<string name="include_link" msgid="827855767220339802">"Вернуть ссылку"</string>
<string name="pinned" msgid="7623664001331394139">"Закреплено"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Изображение, которое можно выбрать"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Видео, которое можно выбрать"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Объект, который можно выбрать"</string>
</resources>
diff --git a/java/res/values-si/strings.xml b/java/res/values-si/strings.xml
index 0ddf7886..6f5be5f5 100644
--- a/java/res/values-si/strings.xml
+++ b/java/res/values-si/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"සබැඳිය බැහැර කරන්න"</string>
<string name="include_link" msgid="827855767220339802">"සබැඳිය ඇතුළත් කරන්න"</string>
<string name="pinned" msgid="7623664001331394139">"අමුණා ඇත"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"තෝරා ගත හැකි රූපය"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"තෝරා ගත හැකි වීඩියෝව"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"තෝරා ගත හැකි අයිතමය"</string>
</resources>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index b76a5dc2..926d9d50 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Vylúčiť odkaz"</string>
<string name="include_link" msgid="827855767220339802">"Zahrnúť odkaz"</string>
<string name="pinned" msgid="7623664001331394139">"Pripnuté"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Vybrateľný obrázok"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Vybrateľné video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Vybrateľná položka"</string>
</resources>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index c68eb0a2..afa61945 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Izloči povezavo"</string>
<string name="include_link" msgid="827855767220339802">"Vključi povezavo"</string>
<string name="pinned" msgid="7623664001331394139">"Pripeto"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Slika, ki jo je mogoče izbrati."</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Videoposnetek, ki ga je mogoče izbrati."</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Element, ki ga je mogoče izbrati."</string>
</resources>
diff --git a/java/res/values-sq/strings.xml b/java/res/values-sq/strings.xml
index 68a28543..dc4257b2 100644
--- a/java/res/values-sq/strings.xml
+++ b/java/res/values-sq/strings.xml
@@ -102,4 +102,10 @@
<string name="exclude_link" msgid="1332778255031992228">"Përjashto lidhjen"</string>
<string name="include_link" msgid="827855767220339802">"Përfshi lidhjen"</string>
<string name="pinned" msgid="7623664001331394139">"U gozhdua"</string>
+ <!-- no translation found for selectable_image (3157858923437182271) -->
+ <skip />
+ <!-- no translation found for selectable_video (1271768647699300826) -->
+ <skip />
+ <!-- no translation found for selectable_item (7557320816744205280) -->
+ <skip />
</resources>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index a74fa350..1a9834d9 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Изузми линк"</string>
<string name="include_link" msgid="827855767220339802">"Уврсти линк"</string>
<string name="pinned" msgid="7623664001331394139">"Закачено"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Слика која може да се изабере"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Видео који може да се изабере"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Ставка која може да се изабере"</string>
</resources>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 3f57f368..c20b2a43 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Uteslut länk"</string>
<string name="include_link" msgid="827855767220339802">"Inkludera länk"</string>
<string name="pinned" msgid="7623664001331394139">"Fäst"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Bild som kan markeras"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video som kan markeras"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Objekt som kan markeras"</string>
</resources>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index b29737c8..3f99f9e7 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Usijumuishe kiungo"</string>
<string name="include_link" msgid="827855767220339802">"Jumuisha kiungo"</string>
<string name="pinned" msgid="7623664001331394139">"Imebandikwa"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Picha inayoweza kuchaguliwa"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video inayoweza kuchaguliwa"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Kipengee kinachoweza kuchaguliwa"</string>
</resources>
diff --git a/java/res/values-ta/strings.xml b/java/res/values-ta/strings.xml
index 3d0333fd..17804d96 100644
--- a/java/res/values-ta/strings.xml
+++ b/java/res/values-ta/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"இணைப்பைத் தவிர்"</string>
<string name="include_link" msgid="827855767220339802">"இணைப்பைச் சேர்"</string>
<string name="pinned" msgid="7623664001331394139">"பின் செய்யப்பட்டுள்ளது"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"தேர்ந்தெடுக்கக்கூடிய படம்"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"தேர்ந்தெடுக்கக்கூடிய வீடியோ"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"தேர்ந்தெடுக்கக்கூடியது"</string>
</resources>
diff --git a/java/res/values-te/strings.xml b/java/res/values-te/strings.xml
index 0ddb058b..840279f3 100644
--- a/java/res/values-te/strings.xml
+++ b/java/res/values-te/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"లింక్‌ను మినహాయించండి"</string>
<string name="include_link" msgid="827855767220339802">"లింక్‌ను చేర్చండి"</string>
<string name="pinned" msgid="7623664001331394139">"పిన్ చేయబడింది"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"ఎంచుకోదగిన ఇమేజ్"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"ఎంచుకోదగిన వీడియో"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"ఎంచుకోదగిన ఐటెమ్"</string>
</resources>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 1c3e5f86..29a97978 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"ไม่รวมลิงก์"</string>
<string name="include_link" msgid="827855767220339802">"รวมลิงก์"</string>
<string name="pinned" msgid="7623664001331394139">"ปักหมุดไว้"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"รูปภาพที่เลือกได้"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"วิดีโอที่เลือกได้"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"รายการที่เลือกได้"</string>
</resources>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index f845ae41..b085b46b 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Huwag isama ang link"</string>
<string name="include_link" msgid="827855767220339802">"Isama ang link"</string>
<string name="pinned" msgid="7623664001331394139">"Naka-pin"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Napipiling larawan"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Napipiling video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Napipiling item"</string>
</resources>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index e46c3e43..22024818 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Bağlantıyı hariç tut"</string>
<string name="include_link" msgid="827855767220339802">"Bağlantıyı dahil et"</string>
<string name="pinned" msgid="7623664001331394139">"Sabitlendi"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Seçilebilir resim"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Seçilebilir video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Seçilebilir öğe"</string>
</resources>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index f9635aea..b5f91741 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Вилучити посилання"</string>
<string name="include_link" msgid="827855767220339802">"Додати посилання"</string>
<string name="pinned" msgid="7623664001331394139">"Закріплено"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Зображення, яке можна вибрати"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Відео, яке можна вибрати"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Об’єкт, який можна вибрати"</string>
</resources>
diff --git a/java/res/values-ur/strings.xml b/java/res/values-ur/strings.xml
index 858ca9c7..f6eb8612 100644
--- a/java/res/values-ur/strings.xml
+++ b/java/res/values-ur/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"لنک خارج کریں"</string>
<string name="include_link" msgid="827855767220339802">"لنک شامل کریں"</string>
<string name="pinned" msgid="7623664001331394139">"پن کردہ"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"قابل انتخاب تصویر"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"قابل انتخاب ویڈیو"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"قابل انتخاب آئٹم"</string>
</resources>
diff --git a/java/res/values-uz/strings.xml b/java/res/values-uz/strings.xml
index 047c2ee3..96439147 100644
--- a/java/res/values-uz/strings.xml
+++ b/java/res/values-uz/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Havolani chiqarib tashlash"</string>
<string name="include_link" msgid="827855767220339802">"Havolani kiritish"</string>
<string name="pinned" msgid="7623664001331394139">"Mahkamlangan"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Tanlanadigan rasm"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Tanlanadigan video"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Tanlanadigan fayl"</string>
</resources>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index 89260efe..0645d052 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Không kèm đường liên kết"</string>
<string name="include_link" msgid="827855767220339802">"Thêm đường liên kết"</string>
<string name="pinned" msgid="7623664001331394139">"Đã ghim"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Hình ảnh có thể chọn"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Video có thể chọn"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Mục có thể chọn"</string>
</resources>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 9049644a..9fea3097 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"排除链接"</string>
<string name="include_link" msgid="827855767220339802">"包括链接"</string>
<string name="pinned" msgid="7623664001331394139">"已固定"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"可选择的图片"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"可选择的视频"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"可选择的内容"</string>
</resources>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index bab7dc9a..65f73d0a 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"不包括連結"</string>
<string name="include_link" msgid="827855767220339802">"加入連結"</string>
<string name="pinned" msgid="7623664001331394139">"固定咗"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"可以揀嘅圖片"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"可以揀嘅影片"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"可以揀嘅項目"</string>
</resources>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index 88172c78..bade791a 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"排除連結"</string>
<string name="include_link" msgid="827855767220339802">"加回連結"</string>
<string name="pinned" msgid="7623664001331394139">"已固定"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"可選取的圖片"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"可選取的影片"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"可選取的項目"</string>
</resources>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index c845de43..38e62f88 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -102,4 +102,7 @@
<string name="exclude_link" msgid="1332778255031992228">"Ungafaki ilinki"</string>
<string name="include_link" msgid="827855767220339802">"Faka ilinki"</string>
<string name="pinned" msgid="7623664001331394139">"Kuphiniwe"</string>
+ <string name="selectable_image" msgid="3157858923437182271">"Umfanekiso okhethekayo"</string>
+ <string name="selectable_video" msgid="1271768647699300826">"Ividiyo ekhethekayo"</string>
+ <string name="selectable_item" msgid="7557320816744205280">"Into ekhethekayo"</string>
</resources>
diff --git a/java/src/com/android/intentresolver/ChooserActionFactory.java b/java/src/com/android/intentresolver/ChooserActionFactory.java
index 4dff2177..cc7091e4 100644
--- a/java/src/com/android/intentresolver/ChooserActionFactory.java
+++ b/java/src/com/android/intentresolver/ChooserActionFactory.java
@@ -90,7 +90,9 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
// Boolean extra used to inform the editor that it may want to customize the editing experience
// for the sharesheet editing flow.
- private static final String EDIT_SOURCE = "edit_source";
+ // Note: EDIT_SOURCE is also used as a signal to avoid sending a 'Component Selected'
+ // ShareResult for this intent when sent via ChooserActivity#safelyStartActivityAsUser
+ static final String EDIT_SOURCE = "edit_source";
private static final String EDIT_SOURCE_SHARESHEET = "sharesheet";
private static final String CHIP_LABEL_METADATA_KEY = "android.service.chooser.chip_label";
@@ -259,6 +261,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
clipboardManager.setPrimaryClipAsPackage(clipData, referrerPackageName);
log.logActionSelected(EventLog.SELECTION_TYPE_COPY);
+ Log.d(TAG, "finish due to copy clicked");
finishCallback.accept(Activity.RESULT_OK);
};
}
@@ -399,6 +402,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
if (shareResultSender != null) {
shareResultSender.onActionSelected(ShareAction.APPLICATION_DEFINED);
}
+ Log.d(TAG, "finish due to custom action clicked");
finishCallback.accept(Activity.RESULT_OK);
}
);
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index 1b2e2a3f..670512ac 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -22,6 +22,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE
import static androidx.lifecycle.LifecycleKt.getCoroutineScope;
+import static com.android.intentresolver.ChooserActionFactory.EDIT_SOURCE;
import static com.android.intentresolver.ext.CreationExtrasExtKt.addDefaultArgs;
import static com.android.intentresolver.profiles.MultiProfilePagerAdapter.PROFILE_PERSONAL;
import static com.android.intentresolver.profiles.MultiProfilePagerAdapter.PROFILE_WORK;
@@ -392,6 +393,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
// so we will now finish ourself since being no longer visible,
// the user probably can't get back to us.
if (!isChangingConfigurations()) {
+ Log.d(TAG, "finishing in onStop");
finish();
}
}
@@ -724,6 +726,9 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
}
private void onAppTargetsLoaded(ResolverListAdapter listAdapter) {
+ Log.d(TAG, "onAppTargetsLoaded("
+ + "listAdapter.userHandle=" + listAdapter.getUserHandle() + ")");
+
if (mChooserMultiProfilePagerAdapter == null) {
return;
}
@@ -859,6 +864,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
final TargetInfo target = mChooserMultiProfilePagerAdapter.getActiveListAdapter()
.targetInfoForPosition(0, false);
if (shouldAutoLaunchSingleChoice(target)) {
+ Log.d(TAG, "auto launching " + target + " and finishing.");
safelyStartActivity(target);
finish();
return true;
@@ -927,6 +933,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
.setStrings(getMetricsCategory())
.write();
safelyStartActivity(activeProfileTarget);
+ Log.d(TAG, "auto launching! " + activeProfileTarget);
finish();
return true;
}
@@ -1079,7 +1086,10 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
}
try {
if (cti.startAsCaller(this, options, user.getIdentifier())) {
- maybeSendShareResult(cti);
+ // Prevent sending a second chooser result when starting the edit action intent.
+ if (!cti.getTargetIntent().hasExtra(EDIT_SOURCE)) {
+ maybeSendShareResult(cti);
+ }
maybeLogCrossProfileTargetLaunch(cti, user);
}
} catch (RuntimeException e) {
@@ -1190,6 +1200,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
(ChooserListAdapter) listAdapter,
mProfileAvailability.getWaitingToEnableProfile())) {
// We no longer have any items... just finish the activity.
+ Log.d(TAG, "onHandlePackagesChanged(): returned false, finishing");
finish();
}
}
@@ -1757,6 +1768,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
mChooserMultiProfilePagerAdapter.getActiveListAdapter().hasFilteredItem()
? MetricsEvent.ACTION_HIDE_APP_DISAMBIG_APP_FEATURED
: MetricsEvent.ACTION_HIDE_APP_DISAMBIG_NONE_FEATURED);
+ Log.d(TAG, "onTargetSelected() returned true, finishing! " + target);
finish();
}
}
@@ -2179,6 +2191,8 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
targetInfo,
mProfiles.getPersonalHandle()
);
+ Log.d(TAG, "safelyStartActivityAsPersonalProfileUser("
+ + targetInfo + "): finishing!");
finish();
}
@@ -2215,6 +2229,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
if (status != null) {
setResult(status);
}
+ Log.d(TAG, "finishWithStatus: result=" + status);
finish();
}
@@ -2357,6 +2372,8 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
}
protected void onListRebuilt(ResolverListAdapter listAdapter, boolean rebuildComplete) {
+ Log.d(TAG, "onListRebuilt(listAdapter.userHandle=" + listAdapter.getUserHandle() + ", "
+ + "rebuildComplete=" + rebuildComplete + ")");
setupScrollListener();
maybeSetupGlobalLayoutListener();
@@ -2372,6 +2389,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
//TODO: move this block inside ChooserListAdapter (should be called when
// ResolverListAdapter#mPostListReadyRunnable is executed.
if (chooserListAdapter.getDisplayResolveInfoCount() == 0) {
+ Log.d(TAG, "getDisplayResolveInfoCount() == 0");
if (rebuildComplete && mChooserServiceFeatureFlags.chooserPayloadToggling()) {
onAppTargetsLoaded(listAdapter);
}
diff --git a/java/src/com/android/intentresolver/ChooserHelper.kt b/java/src/com/android/intentresolver/ChooserHelper.kt
index 6317ee1d..312911a6 100644
--- a/java/src/com/android/intentresolver/ChooserHelper.kt
+++ b/java/src/com/android/intentresolver/ChooserHelper.kt
@@ -18,6 +18,7 @@ package com.android.intentresolver
import android.app.Activity
import android.os.UserHandle
+import android.provider.Settings
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.viewModels
@@ -30,6 +31,7 @@ import com.android.intentresolver.annotation.JavaInterop
import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.ActivityResultRepository
import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.PendingSelectionCallbackRepository
import com.android.intentresolver.data.model.ChooserRequest
+import com.android.intentresolver.platform.GlobalSettings
import com.android.intentresolver.ui.viewmodel.ChooserViewModel
import com.android.intentresolver.validation.Invalid
import com.android.intentresolver.validation.Valid
@@ -84,6 +86,7 @@ constructor(
hostActivity: Activity,
private val activityResultRepo: ActivityResultRepository,
private val pendingSelectionCallbackRepo: PendingSelectionCallbackRepository,
+ private val globalSettings: GlobalSettings,
) : DefaultLifecycleObserver {
// This is guaranteed by Hilt, since only a ComponentActivity is injectable.
private val activity: ComponentActivity = hostActivity as ComponentActivity
@@ -124,6 +127,12 @@ constructor(
return
}
+ if (globalSettings.getBooleanOrNull(Settings.Global.SECURE_FRP_MODE) == true) {
+ Log.e(TAG, "Sharing disabled due to active FRP lock.")
+ activity.finish()
+ return
+ }
+
when (val request = viewModel.initialRequest) {
is Valid -> initializeActivity(request)
is Invalid -> reportErrorsAndFinish(request)
diff --git a/java/src/com/android/intentresolver/SecureSettings.kt b/java/src/com/android/intentresolver/SecureSettings.kt
deleted file mode 100644
index 1e938895..00000000
--- a/java/src/com/android/intentresolver/SecureSettings.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2023 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.intentresolver
-
-import android.content.ContentResolver
-import android.provider.Settings
-
-/** A proxy class for secure settings, for easier testing. */
-open class SecureSettings {
- open fun getString(resolver: ContentResolver, name: String): String? {
- return Settings.Secure.getString(resolver, name)
- }
-}
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt
index a0fc11c3..fa600c86 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/CursorPreviewsInteractor.kt
@@ -43,6 +43,8 @@ import dagger.hilt.components.SingletonComponent
import java.util.concurrent.ConcurrentHashMap
import javax.inject.Inject
import javax.inject.Qualifier
+import kotlin.math.max
+import kotlin.math.min
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.filterNotNull
@@ -93,11 +95,14 @@ constructor(
var state = initialState
val startPageNum = state.firstLoadedPageNum
while ((state.hasMoreLeft || state.hasMoreRight) && state.numLoadedPages < maxLoadedPages) {
+ val (leftTriggerIndex, rightTriggerIndex) = state.triggerIndices()
interactor.setPreviews(
previews = state.merged.values.toList(),
startIndex = startPageNum,
hasMoreLeft = state.hasMoreLeft,
hasMoreRight = state.hasMoreRight,
+ leftTriggerIndex = leftTriggerIndex,
+ rightTriggerIndex = rightTriggerIndex,
)
val loadedLeft = startPageNum - state.firstLoadedPageNum
val loadedRight = state.lastLoadedPageNum - startPageNum
@@ -120,6 +125,8 @@ constructor(
) {
var state = initialState
while (true) {
+ val (leftTriggerIndex, rightTriggerIndex) = state.triggerIndices()
+
// Design note: in order to prevent load requests from the UI when it was displaying a
// previously-published dataset being accidentally associated with a recently-published
// one, we generate a new Flow of load requests for each dataset and only listen to
@@ -130,6 +137,8 @@ constructor(
startIndex = 0, // TODO: actually track this as the window changes?
hasMoreLeft = state.hasMoreLeft,
hasMoreRight = state.hasMoreRight,
+ leftTriggerIndex = leftTriggerIndex,
+ rightTriggerIndex = rightTriggerIndex,
)
state = loadingState.handleOneLoadRequest(state, pagedCursor, unclaimedRecords)
}
@@ -238,6 +247,13 @@ constructor(
}
}
+ private fun CursorWindow.triggerIndices(): Pair<Int, Int> {
+ val totalIndices = numLoadedPages * pageSize
+ val midIndex = totalIndices / 2
+ val halfPage = pageSize / 2
+ return max(midIndex - halfPage, 0) to min(midIndex + halfPage, totalIndices - 1)
+ }
+
private suspend fun readPage(
state: CursorWindow,
pagedCursor: PagedCursor<CursorRow?>,
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt
index 388cbc7e..c9c9a9b3 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/FetchPreviewsInteractor.kt
@@ -51,6 +51,8 @@ constructor(
startIndex = focusedItemIdx,
hasMoreLeft = false,
hasMoreRight = false,
+ leftTriggerIndex = initialPreviewMap.indices.first(),
+ rightTriggerIndex = initialPreviewMap.indices.last(),
)
cursorInteractor.launch(cursor.await() ?: return@coroutineScope, initialPreviewMap)
}
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SetCursorPreviewsInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SetCursorPreviewsInteractor.kt
index 437bc942..124e2a3d 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SetCursorPreviewsInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SetCursorPreviewsInteractor.kt
@@ -35,6 +35,8 @@ constructor(private val previewsRepo: CursorPreviewsRepository) {
startIndex: Int,
hasMoreLeft: Boolean,
hasMoreRight: Boolean,
+ leftTriggerIndex: Int,
+ rightTriggerIndex: Int
): Flow<LoadDirection?> {
val loadingState = MutableStateFlow<LoadDirection?>(null)
previewsRepo.previewsModel.value =
@@ -53,6 +55,8 @@ constructor(private val previewsRepo: CursorPreviewsRepository) {
} else {
null
},
+ leftTriggerIndex = leftTriggerIndex,
+ rightTriggerIndex = rightTriggerIndex,
)
return loadingState.asStateFlow()
}
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewsModel.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewsModel.kt
index 1d3eb4b4..ae8bd1eb 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewsModel.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/shared/model/PreviewsModel.kt
@@ -32,4 +32,14 @@ data class PreviewsModel(
* indicates that there is no more data to load in that direction.
*/
val loadMoreRight: (() -> Unit)?,
+ /**
+ * Index into [previewModels] where any attempted access less than or equal to it should trigger
+ * a window shift left.
+ */
+ val leftTriggerIndex: Int,
+ /**
+ * Index into [previewModels] where any attempted access greater than or equal to it should
+ * trigger a window shift right.
+ */
+ val rightTriggerIndex: Int,
)
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt
index a0be1a9b..197d6858 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselCardComposable.kt
@@ -47,18 +47,28 @@ fun ShareouselCard(
val topButtonPadding = 12.dp
Box(modifier = Modifier.padding(topButtonPadding).matchParentSize()) {
SelectionIcon(selected, modifier = Modifier.align(Alignment.TopStart))
- if (contentType == ContentType.Video) {
- AnimationIcon(modifier = Modifier.align(Alignment.TopEnd))
+ when (contentType) {
+ ContentType.Video ->
+ TypeIcon(
+ R.drawable.ic_play_circle_filled_24px,
+ modifier = Modifier.align(Alignment.TopEnd)
+ )
+ ContentType.Other ->
+ TypeIcon(
+ R.drawable.chooser_file_generic,
+ modifier = Modifier.align(Alignment.TopEnd)
+ )
+ ContentType.Image -> Unit // No additional icon needed.
}
}
}
}
@Composable
-private fun AnimationIcon(modifier: Modifier = Modifier) {
+private fun TypeIcon(drawableResource: Int, modifier: Modifier = Modifier) {
Icon(
- painterResource(id = R.drawable.ic_play_circle_filled_24px),
- contentDescription = null, // Video attribute described at a higher level.
+ painterResource(id = drawableResource),
+ contentDescription = null, // Type attribute described at a higher level.
tint = Color.White,
modifier = Modifier.size(20.dp).then(modifier)
)
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt
index 02d997ae..8e2626bf 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/composable/ShareouselComposable.kt
@@ -41,7 +41,9 @@ import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
@@ -59,6 +61,7 @@ import com.android.intentresolver.contentpreview.payloadtoggle.shared.ContentTyp
import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewsModel
import com.android.intentresolver.contentpreview.payloadtoggle.ui.viewmodel.ShareouselPreviewViewModel
import com.android.intentresolver.contentpreview.payloadtoggle.ui.viewmodel.ShareouselViewModel
+import kotlin.math.abs
import kotlinx.coroutines.launch
@Composable
@@ -104,7 +107,24 @@ private fun PreviewCarousel(
.systemGestureExclusion()
) {
itemsIndexed(previews.previewModels, key = { _, model -> model.uri }) { index, model ->
- ShareouselCard(viewModel.preview(index, model))
+
+ // Index if this is the element in the center of the viewing area, otherwise null
+ val previewIndex by remember {
+ derivedStateOf {
+ carouselState.layoutInfo.visibleItemsInfo
+ .firstOrNull { it.index == index }
+ ?.let {
+ val viewportCenter = carouselState.layoutInfo.viewportEndOffset / 2
+ val halfPreviewWidth = it.size / 2
+ val previewCenter = it.offset + halfPreviewWidth
+ val previewDistanceToViewportCenter =
+ abs(previewCenter - viewportCenter)
+ if (previewDistanceToViewportCenter <= halfPreviewWidth) index else null
+ }
+ }
+ }
+
+ ShareouselCard(viewModel.preview(model, previewIndex))
}
}
}
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt
index 9d53b92a..c3ad7b6c 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt
@@ -55,7 +55,7 @@ data class ShareouselViewModel(
/** List of action chips presented underneath Shareousel. */
val actions: Flow<List<ActionChipViewModel>>,
/** Creates a [ShareouselPreviewViewModel] for a [PreviewModel] present in [previews]. */
- val preview: (index: Int, key: PreviewModel) -> ShareouselPreviewViewModel,
+ val preview: (key: PreviewModel, index: Int?) -> ShareouselPreviewViewModel,
)
@Module
@@ -112,7 +112,7 @@ interface ShareouselViewModelModule {
}
}
},
- preview = { index, key ->
+ preview = { key, index ->
keySet.value?.maybeLoad(index)
val previewInteractor = interactor.preview(key)
val contentType =
@@ -134,9 +134,10 @@ interface ShareouselViewModelModule {
}
}
-private fun PreviewsModel.maybeLoad(index: Int) {
- when (index) {
- previewModels.indices.firstOrNull() -> loadMoreLeft?.invoke()
- previewModels.indices.lastOrNull() -> loadMoreRight?.invoke()
+private fun PreviewsModel.maybeLoad(index: Int?) {
+ when {
+ index == null -> {}
+ index <= leftTriggerIndex -> loadMoreLeft?.invoke()
+ index >= rightTriggerIndex -> loadMoreRight?.invoke()
}
}
diff --git a/java/src/com/android/intentresolver/platform/NearbyShareModule.kt b/java/src/com/android/intentresolver/platform/NearbyShareModule.kt
index 6cb30b41..1e4b5241 100644
--- a/java/src/com/android/intentresolver/platform/NearbyShareModule.kt
+++ b/java/src/com/android/intentresolver/platform/NearbyShareModule.kt
@@ -41,7 +41,7 @@ object NearbyShareModule {
fun nearbyShareComponent(@ApplicationOwned resources: Resources, settings: SecureSettings) =
Optional.ofNullable(
ComponentName.unflattenFromString(
- settings.getString(NEARBY_SHARING_COMPONENT)?.ifEmpty { null }
+ settings.getStringOrNull(NEARBY_SHARING_COMPONENT)?.ifEmpty { null }
?: resources.getString(R.string.config_defaultNearbySharingComponent),
)
)
diff --git a/java/src/com/android/intentresolver/platform/PlatformSecureSettings.kt b/java/src/com/android/intentresolver/platform/PlatformSecureSettings.kt
deleted file mode 100644
index 0c802c97..00000000
--- a/java/src/com/android/intentresolver/platform/PlatformSecureSettings.kt
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.platform
-
-import android.content.ContentResolver
-import android.provider.Settings
-import javax.inject.Inject
-
-/**
- * Implements [SecureSettings] backed by Settings.Secure and a ContentResolver.
- *
- * These methods make Binder calls and may block, so use on the Main thread should be avoided.
- */
-class PlatformSecureSettings @Inject constructor(private val resolver: ContentResolver) :
- SecureSettings {
-
- override fun getString(name: String): String? {
- return Settings.Secure.getString(resolver, name)
- }
-
- override fun getInt(name: String): Int? {
- return runCatching { Settings.Secure.getInt(resolver, name) }.getOrNull()
- }
-
- override fun getLong(name: String): Long? {
- return runCatching { Settings.Secure.getLong(resolver, name) }.getOrNull()
- }
-
- override fun getFloat(name: String): Float? {
- return runCatching { Settings.Secure.getFloat(resolver, name) }.getOrNull()
- }
-}
diff --git a/java/src/com/android/intentresolver/platform/SecureSettings.kt b/java/src/com/android/intentresolver/platform/SecureSettings.kt
deleted file mode 100644
index 8a1dc531..00000000
--- a/java/src/com/android/intentresolver/platform/SecureSettings.kt
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2024 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.intentresolver.platform
-
-import android.provider.Settings.SettingNotFoundException
-
-/**
- * A component which provides access to values from [android.provider.Settings.Secure].
- *
- * All methods return nullable types instead of throwing [SettingNotFoundException] which yields
- * cleaner, more idiomatic Kotlin code:
- *
- * // apply a default: val foo = settings.getInt(FOO) ?: DEFAULT_FOO
- *
- * // assert if missing: val required = settings.getInt(REQUIRED_VALUE) ?: error("required value
- * missing")
- */
-interface SecureSettings {
-
- fun getString(name: String): String?
-
- fun getInt(name: String): Int?
-
- fun getLong(name: String): Long?
-
- fun getFloat(name: String): Float?
-}
diff --git a/java/src/com/android/intentresolver/platform/SettingsImpl.kt b/java/src/com/android/intentresolver/platform/SettingsImpl.kt
new file mode 100644
index 00000000..c7ff3521
--- /dev/null
+++ b/java/src/com/android/intentresolver/platform/SettingsImpl.kt
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.intentresolver.platform
+
+import android.content.ContentResolver
+import android.provider.Settings
+import javax.inject.Inject
+
+object SettingsImpl {
+ /** An implementation of GlobalSettings which forwards to [Settings.Global] */
+ class Global @Inject constructor(private val contentResolver: ContentResolver) :
+ GlobalSettings {
+ override fun getStringOrNull(name: String): String? {
+ return Settings.Global.getString(contentResolver, name)
+ }
+
+ override fun putString(name: String, value: String): Boolean {
+ return Settings.Global.putString(contentResolver, name, value)
+ }
+ }
+
+ /** An implementation of SecureSettings which forwards to [Settings.Secure] */
+ class Secure @Inject constructor(private val contentResolver: ContentResolver) :
+ SecureSettings {
+ override fun getStringOrNull(name: String): String? {
+ return Settings.Secure.getString(contentResolver, name)
+ }
+
+ override fun putString(name: String, value: String): Boolean {
+ return Settings.Secure.putString(contentResolver, name, value)
+ }
+ }
+
+ /** An implementation of SystemSettings which forwards to [Settings.System] */
+ class System @Inject constructor(private val contentResolver: ContentResolver) :
+ SystemSettings {
+ override fun getStringOrNull(name: String): String? {
+ return Settings.System.getString(contentResolver, name)
+ }
+
+ override fun putString(name: String, value: String): Boolean {
+ return Settings.System.putString(contentResolver, name, value)
+ }
+ }
+}
diff --git a/java/src/com/android/intentresolver/platform/SecureSettingsModule.kt b/java/src/com/android/intentresolver/platform/SettingsModule.kt
index fa3ee4fe..3d5c50da 100644
--- a/java/src/com/android/intentresolver/platform/SecureSettingsModule.kt
+++ b/java/src/com/android/intentresolver/platform/SettingsModule.kt
@@ -24,7 +24,10 @@ import dagger.hilt.components.SingletonComponent
@Module
@InstallIn(SingletonComponent::class)
-interface SecureSettingsModule {
+interface SettingsModule {
+ @Binds @Reusable fun globalSettings(settings: SettingsImpl.Global): GlobalSettings
- @Binds @Reusable fun secureSettings(settings: PlatformSecureSettings): SecureSettings
+ @Binds @Reusable fun secureSettings(settings: SettingsImpl.Secure): SecureSettings
+
+ @Binds @Reusable fun systemSettings(settings: SettingsImpl.System): SystemSettings
}
diff --git a/java/src/com/android/intentresolver/platform/SettingsProxy.kt b/java/src/com/android/intentresolver/platform/SettingsProxy.kt
new file mode 100644
index 00000000..d97a0414
--- /dev/null
+++ b/java/src/com/android/intentresolver/platform/SettingsProxy.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.intentresolver.platform
+
+/** A proxy to Settings.Global */
+interface GlobalSettings : SettingsProxy
+
+/** A proxy to Settings.Secure */
+interface SecureSettings : SettingsProxy
+
+/** A proxy to Settings.System */
+interface SystemSettings : SettingsProxy
+
+/** A generic Settings proxy interface */
+sealed interface SettingsProxy {
+
+ /** Returns the String value set for the given settings key, or null if no value exists. */
+ fun getStringOrNull(name: String): String?
+
+ /**
+ * Writes a new string value for the given settings key.
+ *
+ * @return true if the value did not previously exist or was modified
+ */
+ fun putString(name: String, value: String): Boolean
+
+ /**
+ * Returns the Int value for the given settings key or null if no value exists or it cannot be
+ * interpreted as an Int.
+ */
+ fun getIntOrNull(name: String): Int? = getStringOrNull(name)?.toIntOrNull()
+
+ /**
+ * Writes a new int value for the given settings key.
+ *
+ * @return true if the value did not previously exist or was modified
+ */
+ fun putInt(name: String, value: Int): Boolean = putString(name, value.toString())
+
+ /**
+ * Returns the Boolean value for the given settings key or null if no value exists or it cannot
+ * be interpreted as a Boolean.
+ */
+ fun getBooleanOrNull(name: String): Boolean? = getIntOrNull(name)?.let { it != 0 }
+
+ /**
+ * Writes a new Boolean value for the given settings key.
+ *
+ * @return true if the value did not previously exist or was modified
+ */
+ fun putBoolean(name: String, value: Boolean): Boolean = putInt(name, if (value) 1 else 0)
+
+ /**
+ * Returns the Long value for the given settings key or null if no value exists or it cannot be
+ * interpreted as a Long.
+ */
+ fun getLongOrNull(name: String): Long? = getStringOrNull(name)?.toLongOrNull()
+
+ /**
+ * Writes a new Long value for the given settings key.
+ *
+ * @return true if the value did not previously exist or was modified
+ */
+ fun putLong(name: String, value: Long): Boolean = putString(name, value.toString())
+
+ /**
+ * Returns the Float value for the given settings key or null if no value exists or it cannot be
+ * interpreted as a Float.
+ */
+ fun getFloatOrNull(name: String): Float? = getStringOrNull(name)?.toFloatOrNull()
+
+ /**
+ * Writes a new float value for the given settings key.
+ *
+ * @return true if the value did not previously exist or was modified
+ */
+ fun putFloat(name: String, value: Float): Boolean = putString(name, value.toString())
+}