[automerger skipped] Merge mainline-release 6664920 to master - DO NOT MERGE am: 9e38564f2b am: 6014b0b027 -s ours am: d203ef1ccf -s ours am: ae70011679 -s ours
am skip reason: Change-Id I4de70efc16082e16f7d336d5612357560ab2cc2c with SHA-1 cb99ab0cd2 is in history
Original change: https://android-review.googlesource.com/c/platform/packages/apps/WallpaperPicker2/+/1430120
Change-Id: Ieca03abb175ae70ce0fc7bcc204a6cdfb377cf90
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d0b03a1..f0f7024 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -53,6 +53,19 @@
</intent-filter>
</activity>
+ <activity android:name="com.android.wallpaper.picker.DeepLinkActivity"
+ android:theme="@style/WallpaperTheme.NoBackground">
+ <intent-filter android:autoVerify="true">
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <data
+ android:host="g.co"
+ android:pathPrefix="/wallpaper"
+ android:scheme="https" />
+ </intent-filter>
+ </activity>
+
<activity-alias
android:name="com.android.wallpaper.picker.CategoryPickerActivity"
android:targetActivity="com.android.wallpaper.picker.TopLevelPickerActivity"
@@ -67,10 +80,6 @@
android:theme="@style/WallpaperTheme"
android:resizeableActivity="false"
android:parentActivityName="com.android.wallpaper.picker.TopLevelPickerActivity">
- <intent-filter>
- <action android:name="com.android.wallpaper.picker.DEEP_LINK" />
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
</activity>
<activity android:name="com.android.wallpaper.picker.PreviewActivity"
diff --git a/res/layout/fragment_individual_picker.xml b/res/layout/fragment_individual_picker.xml
index b315464..e0875c2 100755
--- a/res/layout/fragment_individual_picker.xml
+++ b/res/layout/fragment_individual_picker.xml
@@ -40,4 +40,13 @@
</LinearLayout>
+ <androidx.core.widget.ContentLoadingProgressBar
+ android:id="@+id/loading_indicator"
+ style="@android:style/Widget.DeviceDefault.ProgressBar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="75dp"
+ android:layout_gravity="center_horizontal|top"
+ android:indeterminate="true"/>
+
</FrameLayout>
diff --git a/res/layout/wallpaper_info_view.xml b/res/layout/wallpaper_info_view.xml
index 5237ef8..66b72e5 100644
--- a/res/layout/wallpaper_info_view.xml
+++ b/res/layout/wallpaper_info_view.xml
@@ -54,8 +54,8 @@
android:layout_marginTop="@dimen/wallpaper_info_pane_subtitle2_top_margin"
android:lineHeight="16dp"
android:gravity="center"
- android:textColor="@color/action_bar_bottom_sheet_text_color"
- android:textSize="12sp"
+ android:textColor="@color/action_bar_bottom_sheet_subtitle2_text_color"
+ android:textSize="14sp"
android:visibility="gone" />
<Button
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 2ca2d03..34efae7 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Vorige"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Muurpapier"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Muurpapiervoorskou"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Die versameling bestaan nie"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 1bace37..1b0e681 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ቀዳሚ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ልጣፍ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"የልጣፍ ቅድመ-እይታ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ስብስቡ የለም"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 7648f0d..9f03248 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"الصفحة السابقة"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"الخلفية"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"معاينة عرض الشرائح"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"المجموعة غير متوفرة."</string>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 9303e2f..29e044e 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"পূৰ্বৱৰ্তী"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ৱালপেপাৰ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ৱালপেপাৰৰ পূৰ্বদৰ্শন"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"এই সংগ্ৰহটোৰ অস্তিত্ব নাই"</string>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index f02e72e..bfb4432 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Əvvəlki"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Divar kağızı"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Divar Kağızı önizləməsi"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Kolleksiya mövcud deyil"</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index f9f63d7..96fbf05 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Prethodna"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Pozadina"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pregled pozadine"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Kolekcija ne postoji"</string>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 16bdadc..99af4c8 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Назад"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Шпалеры"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Перадпрагляд шпалер"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Калекцыя не існуе"</string>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 6f57003..97c6ee3 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Назад"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Тапет"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Визуализация на тапета"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Колекцията не съществува"</string>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 8f60442..15f19e3 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"আগের"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ওয়ালপেপার"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ওয়ালপেপার প্রিভিউ করুন"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"কালেকশন উপলভ্য নেই"</string>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 275b194..c813e77 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Nazad"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Pozadinska slika"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pregled pozadinske slike"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Kolekcija ne postoji"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 278b23e..6518a87 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Anterior"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fons de pantalla"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Previsualitz. fons de pantalla"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"La col·lecció no existeix"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 1fb0701..1dbf0f8 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Předchozí"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Tapeta"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Náhled prezentace"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Sbírka neexistuje"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 184a25b..6b3b32a 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Forrige"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Baggrund"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Forhåndsvisning af baggrund"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Samlingen eksisterer ikke"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index efcd22c..40aa64a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Zurück"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Hintergrund"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Hintergrundvorschau"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Die Sammlung existiert nicht"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index c078327..98a3468 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Προηγούμενη"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Ταπετσαρία"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Προεπισκόπηση ταπετσαρίας"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Η συλλογή δεν υπάρχει."</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index cae6b88..4313b9f 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Previous"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Wallpaper preview"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"The collection doesn\'t exist"</string>
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index cae6b88..4313b9f 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Previous"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Wallpaper preview"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"The collection doesn\'t exist"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index cae6b88..4313b9f 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Previous"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Wallpaper preview"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"The collection doesn\'t exist"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index cae6b88..4313b9f 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Previous"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Wallpaper preview"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"The collection doesn\'t exist"</string>
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 041d2f4..2144ec1 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Previous"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Wallpaper preview"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"The collection doesn\'t exist"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index f9e3498..bb14b25 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Anterior"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fondo de pantalla"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Vista previa del fondo"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"La colección no existe"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e8f37df..e343d82 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Anterior"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fondo de pantalla"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Vista previa de fondo"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"La colección no existe"</string>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 50a3118..7ed36e7 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Eelmine"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Taustapilt"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Taustapildi eelvaade"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Kogu pole olemas"</string>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 122391d..2f41165 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Aurrekoa"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Horma-papera"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Horma-paperaren aurrebista"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Ez dago bildumarik"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a13dba1..a2ad653 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"قبلی"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"کاغذدیواری"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"پیشنمایش کاغذدیواری"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"مجموعه وجود ندارد"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 1914f1b..ad8bd1d 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Edellinen"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Taustakuva"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Taustakuvan esikatselu"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Kyseistä kokoelmaa ei ole olemassa"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index d31d006..fd32602 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Précédent"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fond d\'écran"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Aperçu du fond d\'écran"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"La collection n\'existe pas"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index f92dae4..fa92a24 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Précédente"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fond d\'écran"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Aperçu du fond d\'écran"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Cette collection n\'existe pas"</string>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 6791ddd..a61b3cb 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Anterior"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fondo de pantalla"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Vista previa do fondo"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"A colección non existe"</string>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 9aea1a3..b7e3791 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"પાછળ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"વૉલપેપર"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"વૉલપેપરનો પ્રીવ્યૂ કરો"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"સંગ્રહ અસ્તિત્વમાં નથી"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 927e71b..dda9af5 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"पीछे जाएं"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"वॉलपेपर"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"वॉलपेपर की झलक देखें"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"वॉलपेपर का संग्रह मौजूद नहीं है"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index dae9eaa..7fc8820 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Prethodno"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Pozadina"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pregled pozadine"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Zbirka ne postoji"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index c1ffc67..668f13d 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Előző"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Háttérkép"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Háttérkép előnézete"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Nincs ilyen gyűjtemény"</string>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 3bedcc2..6c042bb 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Հետ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Պաստառ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Պաստառի նախադիտում"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Հավաքածուն գոյություն չունի"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index c86abd5..1a51734 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Sebelumnya"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pratinjau wallpaper"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Koleksi tidak ada"</string>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 60764e1..876517d 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Fyrri"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Veggfóður"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Forskoðun veggfóðurs"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Safnið er ekki til"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f3fc99f..c838a98 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Indietro"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Sfondo"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Anteprima sfondo"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"La raccolta non esiste"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 5213a6c..ef79aec 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"הקודם"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"טפט"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"תצוגה מקדימה של הטפט"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"האוסף לא קיים"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 3178ee3..9f83264 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"前へ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"壁紙"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"壁紙のプレビュー"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"コレクションは存在しません"</string>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 238ab1f..b527549 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"წინა"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ფონი"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ფონის გადახედვა"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"კოლექცია არ არსებობს"</string>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index f681d0c..48d0911 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Алдыңғы"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Тұсқағаз"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Тұсқағазды алдын ала қарау"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Жинақ жоқ."</string>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index eff70f8..25debf9 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"មុន"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ផ្ទាំងរូបភាព"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ការមើលផ្ទាំងរូបភាពសាកល្បង"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"បណ្ដុំមិនមានទេ"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 2a51162..232641c 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ಹಿಂದಕ್ಕೆ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ವಾಲ್ಪೇಪರ್"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ವಾಲ್ಪೇಪರ್ ಪೂರ್ವವೀಕ್ಷಣೆ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ಸಂಗ್ರಹಣೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 18db06f..2be0992 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"이전"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"배경화면"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"배경화면 미리보기"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"컬렉션이 없습니다."</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3de5668..8e02782 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Мурунку"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Тушкагаз"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Тушкагазды алдын ала көрүү"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Мындай жыйнак жок"</string>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index ebf8ec2..f3cbe2b 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ກ່ອນໜ້າ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ຮູບພື້ນຫຼັງ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ຕົວຢ່າງຮູບພື້ນຫຼັງ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ບໍ່ມິຄໍເລັກຊັນ"</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 17852fb..a03226e 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Ankstesnis"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Ekrano fonas"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Ekrano fono peržiūra"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Rinkinio nėra"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 1e7c1d7..f7778a9 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Atpakaļ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fona tapete"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Fona tapetes priekšskatījums"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Kolekcija nepastāv"</string>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 7efd41a..c4dea2f 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Претходна"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Тапет"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Преглед на тапет"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Збирката не постои"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index cdd63ef..ffef7b2 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"മുമ്പത്തെ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"വാൾപേപ്പർ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"വാൾപേപ്പർ പ്രിവ്യൂ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ശേഖരം നിലവിലില്ല"</string>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index ee4f411..9d3515d 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Өмнөх"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Ханын зураг"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Ханын зургийг урьдчилан үзэх"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Ийм цуглуулга байхгүй"</string>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 7dd041f..f70ede7 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"मागील"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"वॉलपेपर"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"वॉलपेपर पूर्वावलोकन"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"संग्रह अस्तित्वात नाही"</string>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index b67e3a1..929a694 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Sebelumnya"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Kertas dinding"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pratonton kertas dinding"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Koleksi tersebut tidak wujud"</string>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 2213288..9297a26 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ယခင်"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"နောက်ခံ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"နောက်ခံပုံ အစမ်းကြည့်ရှုခြင်း"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ဤစုစည်းမှု မရှိပါ"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 84bf46e..af24134 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Forrige"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Bakgrunn"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Forhåndsvisning av bakgrunn"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Samlingen eksisterer ikke"</string>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index c4fef19..3d5366a 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -70,8 +70,8 @@
<string name="on_device_wallpapers_category_title_desktop" msgid="316919420410065369">"यन्त्रका वालपेपर"</string>
<string name="on_device_wallpaper_title" msgid="5262564748034629524">"Android वालपेपर"</string>
<string name="live_wallpapers_category_title" msgid="1814374812192366349">"लाइभ वालपेपरहरू"</string>
- <string name="my_photos_category_title" msgid="4294567122144565273">"मेरा तस्बिरहरू"</string>
- <string name="my_photos_generic_wallpaper_title" msgid="7002867526154631172">"मेरो तस्बिर"</string>
+ <string name="my_photos_category_title" msgid="4294567122144565273">"मेरा फोटोहरू"</string>
+ <string name="my_photos_generic_wallpaper_title" msgid="7002867526154631172">"मेरो फोटो"</string>
<string name="fallback_wallpaper_title" msgid="6154655421012506001">"वालपेपर"</string>
<string name="app_not_found" msgid="4431461707854088231">"एप स्थापित छैन।"</string>
<string name="center_wallpaper_position" msgid="4166894762352288883">"मध्यभाग"</string>
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"अघिल्लो"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"वालपेपर"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"वालपेपरको प्रिभ्यु"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"यो सङ्ग्रह छैन"</string>
</resources>
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
index 2c379ae..f54283d 100644
--- a/res/values-night/colors.xml
+++ b/res/values-night/colors.xml
@@ -23,5 +23,6 @@
<color name="bottom_bar_background_color">@color/google_grey900</color>
<color name="bottom_bar_icon_unchecked_color">@color/white_54_alpha</color>
<color name="action_bar_bottom_sheet_text_color">@color/material_white_100</color>
+ <color name="action_bar_bottom_sheet_subtitle2_text_color">@color/white_87_alpha</color>
<color name="selected_check_color">@color/material_black_100</color>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 4a7cb49..569c089 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Vorige"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Achtergrond"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Achtergrondvoorbeeld"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"De collectie bestaat niet"</string>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index fcf6a75..54d485e 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ପୂର୍ବବର୍ତ୍ତୀ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ୱାଲପେପର୍"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ୱାଲପେପରର ପ୍ରିଭ୍ୟୁ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ସଂଗ୍ରହ ଉପଲବ୍ଧ ନାହିଁ"</string>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 763afa5..87a1f04 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ਪਿੱਛੇ ਜਾਓ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"ਵਾਲਪੇਪਰ"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"ਵਾਲਪੇਪਰ ਦੀ ਪੂਰਵ-ਝਲਕ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ਸੰਗ੍ਰਹਿ ਮੌਜੂਦ ਨਹੀਂ ਹੈ"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 54dfb14..a62fdc5 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Wstecz"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Tapeta"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Podgląd tapety"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Taka kolekcja nie istnieje"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ea3c288..ace4431 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Anterior"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Imagem de fundo"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pré-visual. da imagem de fundo"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"A coleção não existe."</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index f3a072c..6b8ea55 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Anterior"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Plano de fundo"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Visualização do plano de fundo"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"A coleção não existe"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 4982b64..8a9c44d 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Înapoi"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Imagine de fundal"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Previzualizarea imaginii de fundal"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Colecția nu există"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 7f8e37b..d807ba7 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Предыдущая страница"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Обои"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Предварительный просмотр обоев"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Такой подборки не существует."</string>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index e63a2d2..2a6288e 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"පෙර"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"වෝල්පේපරය"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"වෝල්පේපර පෙරදසුන"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"එකතුව නොපවතී"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 1da2c15..a77c513 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Späť"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Tapeta"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Ukážka tapety"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Zbierka neexistuje"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index e56b978..abb8ee8 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Nazaj"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Zaslonsko ozadje"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Predogled zaslonskih ozadij"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Zbirka ne obstaja"</string>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index a92579f..03ed073 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Pas"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Imazhi i sfondit"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Pamja paraprake e imazhit të sfondit"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Koleksioni nuk ekziston"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 447f00e..6f7cda6 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Претходна"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Позадина"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Преглед позадине"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Колекција не постоји"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index c03d38b..c496885 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Föregående"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Bakgrund"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Förhandsgranska bakgrunden"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Samlingen finns inte"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 71beaf9..ff90209 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Uliotangulia"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Mandhari"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Onyesho la kukagua mandhari"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Mkusanyiko huu haupo"</string>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index c0e601c..09478ba 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"முந்தைய பக்கத்திற்குச் செல்வதற்கான பட்டன்"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"வால்பேப்பர்"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"வால்பேப்பர் மாதிரிக்காட்சி"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"இந்தத் தொகுப்பு இல்லை"</string>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 1ad45d2..f371db9 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"మునుపటి"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"వాల్పేపర్"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"వాల్పేపర్ ప్రివ్యూ"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ఈ సేకరణ అందుబాటులో లేదు"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 53b3b16..494a5c7 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"ก่อนหน้า"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"วอลเปเปอร์"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"พรีวิววอลเปเปอร์"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"ไม่มีคอลเล็กชัน"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index a24647a..4e13333 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Nauna"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Wallpaper"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Preview ng wallpaper"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Wala ang koleksyon"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 782483b..2b78d20 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Önceki"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Duvar kağıdı"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Duvar kağıdı ön izleme"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Koleksiyon mevcut değil"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 341f50c..73b1c5a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Назад"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Фоновий малюнок"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Перегляд фонового малюнка"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Колекція не існує"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 50f7791..6c7552b 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"گزشتہ"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"وال پیپر"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"وال پیپر کا پیش منظر"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"مجموعہ موجود نہیں ہے"</string>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index d66df05..a906905 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Avvalgisi"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Fon rasmi"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Fon rasmiga razm solish"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Bunday terma mavjud emas"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index d8f314c..199cca2 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Trước"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Hình nền"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Xem trước hình nền"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Bộ sưu tập không tồn tại"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 82aa3e5..7c9404b 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"上一页"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"壁纸"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"壁纸预览"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"该集合不存在"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index fcd8ecd..4382f14 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"返回"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"桌布"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"預覽桌布"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"桌布集不存在"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index c602491..e191907 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"上一頁"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"桌布"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"桌布預覽"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"這個系列不存在"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 5966df3..00df6c0 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -93,4 +93,5 @@
<string name="previous_page_content_description" msgid="1138597031571078429">"Okwangaphambilini"</string>
<string name="wallpaper_title" msgid="6754214682228331092">"Isithombe sangemuva"</string>
<string name="wallpaper_preview_card_content_description" msgid="6049261033541034584">"Ukubuka kuqala kwesithombe sangemuva"</string>
+ <string name="collection_not_exist_msg" msgid="3504852962885064842">"Uqoqo alutholakali"</string>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index f468718..ad51cf0 100755
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -47,6 +47,7 @@
<color name="bottom_bar_background_color">@color/material_white_100</color>
<color name="bottom_bar_icon_unchecked_color">@color/material_grey600</color>
<color name="action_bar_bottom_sheet_text_color">@color/black_87_alpha</color>
+ <color name="action_bar_bottom_sheet_subtitle2_text_color">@color/black_54_alpha</color>
<color name="selected_check_color">@color/material_white_100</color>
<color name="smartspace_preview_shadow_color_dark">#B0000000</color>
diff --git a/res/values/picker_colors.xml b/res/values/picker_colors.xml
index 5c67345..59f98c0 100755
--- a/res/values/picker_colors.xml
+++ b/res/values/picker_colors.xml
@@ -33,6 +33,7 @@
<color name="white_67_alpha">#ABFFFFFF</color>
<color name="white_70_alpha">#B3FFFFFF</color>
<color name="white_80_alpha">#CCFFFFFF</color>
+ <color name="white_87_alpha">#DEFFFFFF</color>
<color name="white_88_alpha">#E0FFFFFF</color>
<!-- Dark scrollbar thumb color (26% of black) -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fdac56d..9ec0118 100755
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -341,4 +341,7 @@
<!-- Content description of wallpaper preview card. [CHAR_LIMIT=40]-->
<string name="wallpaper_preview_card_content_description">Wallpaper preview</string>
+
+ <!-- Error message of the wallpaper's collection doesn't exist. [CHAR_LIMIT=NONE] -->
+ <string name="collection_not_exist_msg">The collection doesn\'t exist</string>
</resources>
diff --git a/src/com/android/wallpaper/model/CategoryProvider.java b/src/com/android/wallpaper/model/CategoryProvider.java
index 3977d89..ceef6b4 100755
--- a/src/com/android/wallpaper/model/CategoryProvider.java
+++ b/src/com/android/wallpaper/model/CategoryProvider.java
@@ -54,4 +54,9 @@
*/
@Nullable
Category getCategory(String collectionId);
+
+ /**
+ * Checks if the categories are fetched.
+ */
+ boolean isCategoriesFetched();
}
diff --git a/src/com/android/wallpaper/module/DefaultCategoryProvider.java b/src/com/android/wallpaper/module/DefaultCategoryProvider.java
index 43341d5..e9b6955 100755
--- a/src/com/android/wallpaper/module/DefaultCategoryProvider.java
+++ b/src/com/android/wallpaper/module/DefaultCategoryProvider.java
@@ -122,6 +122,11 @@
return null;
}
+ @Override
+ public boolean isCategoriesFetched() {
+ return mFetchedCategories;
+ }
+
protected void doFetch(final CategoryReceiver receiver, boolean forceRefresh) {
CategoryReceiver delegatingReceiver = new CategoryReceiver() {
@Override
diff --git a/src/com/android/wallpaper/module/Injector.java b/src/com/android/wallpaper/module/Injector.java
index 13ed9d8..0abb531 100755
--- a/src/com/android/wallpaper/module/Injector.java
+++ b/src/com/android/wallpaper/module/Injector.java
@@ -16,6 +16,8 @@
package com.android.wallpaper.module;
import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
import androidx.fragment.app.Fragment;
@@ -82,4 +84,6 @@
LiveWallpaperInfoFactory getLiveWallpaperInfoFactory(Context context);
DrawableLayerResolver getDrawableLayerResolver();
+
+ Intent getDeepLinkRedirectIntent(Context context, Uri uri);
}
diff --git a/src/com/android/wallpaper/picker/BaseActivity.java b/src/com/android/wallpaper/picker/BaseActivity.java
index 7f2ea60..25a2b2a 100755
--- a/src/com/android/wallpaper/picker/BaseActivity.java
+++ b/src/com/android/wallpaper/picker/BaseActivity.java
@@ -21,7 +21,7 @@
* Base activity that keeps track of whether fragment transactions are safe to commit given the
* activity's current lifecycle state.
*/
-public class BaseActivity extends AppCompatActivity {
+public class BaseActivity extends AppCompatActivity implements FragmentTransactionChecker {
private boolean mIsSafeToCommitFragmentTransaction;
@@ -37,6 +37,7 @@
mIsSafeToCommitFragmentTransaction = false;
}
+ @Override
public boolean isSafeToCommitFragmentTransaction() {
return mIsSafeToCommitFragmentTransaction;
}
diff --git a/src/com/android/wallpaper/picker/CategoryFragment.java b/src/com/android/wallpaper/picker/CategoryFragment.java
index db60c5f..42566eb 100755
--- a/src/com/android/wallpaper/picker/CategoryFragment.java
+++ b/src/com/android/wallpaper/picker/CategoryFragment.java
@@ -15,9 +15,6 @@
*/
package com.android.wallpaper.picker;
-import static android.view.View.MeasureSpec.EXACTLY;
-import static android.view.View.MeasureSpec.makeMeasureSpec;
-
import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED;
import static com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED;
@@ -31,10 +28,8 @@
import android.os.Bundle;
import android.provider.Settings;
import android.service.wallpaper.WallpaperService;
+import android.text.TextUtils;
import android.view.LayoutInflater;
-import android.view.Surface;
-import android.view.SurfaceControlViewHost;
-import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
@@ -47,7 +42,6 @@
import androidx.appcompat.app.AlertDialog;
import androidx.cardview.widget.CardView;
import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
@@ -70,9 +64,11 @@
import com.android.wallpaper.picker.individual.IndividualPickerFragment;
import com.android.wallpaper.picker.individual.IndividualPickerFragment.ThumbnailUpdater;
import com.android.wallpaper.picker.individual.IndividualPickerFragment.WallpaperDestinationCallback;
+import com.android.wallpaper.util.DeepLinkUtils;
import com.android.wallpaper.util.SizeCalculator;
import com.android.wallpaper.util.WallpaperConnection;
import com.android.wallpaper.util.WallpaperConnection.WallpaperConnectionListener;
+import com.android.wallpaper.util.WallpaperSurfaceCallback;
import com.android.wallpaper.widget.BottomActionBar;
import com.android.wallpaper.widget.LiveTileOverlay;
import com.android.wallpaper.widget.LockScreenPreviewer;
@@ -94,13 +90,8 @@
*/
public class CategoryFragment extends AppbarFragment
implements CategorySelectorFragmentHost, ThumbnailUpdater, WallpaperDestinationCallback,
- WallpaperPickerRecyclerViewAccessibilityDelegate.BottomSheetHost {
-
- private final Rect mPreviewLocalRect = new Rect();
- private final Rect mPreviewGlobalRect = new Rect();
- private final int[] mLivePreviewLocation = new int[2];
- private final WallpaperSurfaceCallback mWallpaperSurfaceCallback =
- new WallpaperSurfaceCallback();
+ WallpaperPickerRecyclerViewAccessibilityDelegate.BottomSheetHost,
+ IndividualPickerFragment.IndividualPickerFragmentHost {
/**
* Interface to be implemented by an Activity hosting a {@link CategoryFragment}
@@ -116,6 +107,8 @@
void show(String collectionId);
boolean isNavigationTabsContained();
+
+ void fetchCategories();
}
public static CategoryFragment newInstance(CharSequence title) {
@@ -135,6 +128,7 @@
private SurfaceView mWorkspaceSurface;
private WorkspaceSurfaceHolderCallback mWorkspaceSurfaceCallback;
private SurfaceView mWallpaperSurface;
+ private WallpaperSurfaceCallback mWallpaperSurfaceCallback;
private ImageView mLockscreenPreview;
private PreviewPager mPreviewPager;
private List<View> mWallPaperPreviews;
@@ -151,13 +145,13 @@
// The wallpaper information which is currently shown on the lock preview.
private WallpaperInfo mLockPreviewWallpaperInfo;
- // Home workspace surface is behind the app window, and so must the home image wallpaper like
- // the live wallpaper. This view is rendered on mWallpaperSurface for home image wallpaper.
- private ImageView mHomeImageWallpaper;
- private boolean mIsCollapsingByUserSelecting;
private LockScreenPreviewer mLockScreenPreviewer;
private View mRootContainer;
+ private final Rect mPreviewLocalRect = new Rect();
+ private final Rect mPreviewGlobalRect = new Rect();
+ private final int[] mLivePreviewLocation = new int[2];
+
public CategoryFragment() {
mCategorySelectorFragment = new CategorySelectorFragment();
}
@@ -176,6 +170,8 @@
mWorkspaceSurfaceCallback = new WorkspaceSurfaceHolderCallback(
mWorkspaceSurface, getContext());
mWallpaperSurface = homePreviewCard.findViewById(R.id.wallpaper_surface);
+ mWallpaperSurfaceCallback = new WallpaperSurfaceCallback(getContext(), mHomePreview,
+ mWallpaperSurface);
mWallPaperPreviews.add(homePreviewCard);
CardView lockscreenPreviewCard = (CardView) inflater.inflate(
@@ -287,6 +283,22 @@
.beginTransaction()
.replace(R.id.category_fragment_container, mCategorySelectorFragment)
.commitNow();
+
+ // Deep link case
+ Intent intent = getActivity().getIntent();
+ String deepLinkCollectionId = DeepLinkUtils.getCollectionId(intent);
+ if (!TextUtils.isEmpty(deepLinkCollectionId)) {
+ mIndividualPickerFragment = InjectorProvider.getInjector()
+ .getIndividualPickerFragment(deepLinkCollectionId);
+ mIndividualPickerFragment.highlightAppliedWallpaper(mWallpaperIndex);
+ getChildFragmentManager()
+ .beginTransaction()
+ .replace(R.id.category_fragment_container, mIndividualPickerFragment)
+ .addToBackStack(null)
+ .commit();
+ getChildFragmentManager().executePendingTransactions();
+ intent.setData(null);
+ }
return view;
}
@@ -409,7 +421,6 @@
mIndividualPickerFragment.resizeLayout(mBottomSheetBehavior.getPeekHeight());
mIndividualPickerFragment.scrollToPosition(position);
if (mBottomSheetBehavior.getState() != STATE_COLLAPSED) {
- mIsCollapsingByUserSelecting = true;
mBottomSheetBehavior.setState(STATE_COLLAPSED);
}
});
@@ -427,6 +438,16 @@
}
@Override
+ public void moveToPreviousFragment() {
+ getChildFragmentManager().popBackStack();
+ }
+
+ @Override
+ public void fetchCategories() {
+ getFragmentHost().fetchCategories();
+ }
+
+ @Override
public void expandBottomSheet() {
if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
@@ -647,34 +668,37 @@
if (mWallpaperConnection != null) {
mWallpaperConnection.disconnect();
}
- ImageView previewView = mWallpaperIndex == 0 ? mHomePreview : mLockscreenPreview;
- previewView.getLocationOnScreen(mLivePreviewLocation);
- mPreviewGlobalRect.set(0, 0, previewView.getMeasuredWidth(),
- previewView.getMeasuredHeight());
- mPreviewLocalRect.set(mPreviewGlobalRect);
- mPreviewGlobalRect.offset(mLivePreviewLocation[0], mLivePreviewLocation[1]);
- mWallpaperConnection = new WallpaperConnection(
- getWallpaperIntent(homeWallpaper.getWallpaperComponent()), activity,
- new WallpaperConnectionListener() {
- @Override
- public void onWallpaperColorsChanged(WallpaperColors colors, int displayId) {
- if (mLockPreviewWallpaperInfo instanceof LiveWallpaperInfo) {
- mLockScreenPreviewer.setColor(colors);
+ if (WallpaperConnection.isPreviewAvailable()) {
+ ImageView previewView = mWallpaperIndex == 0 ? mHomePreview : mLockscreenPreview;
+ previewView.getLocationOnScreen(mLivePreviewLocation);
+ mPreviewGlobalRect.set(0, 0, previewView.getMeasuredWidth(),
+ previewView.getMeasuredHeight());
+ mPreviewLocalRect.set(mPreviewGlobalRect);
+ mPreviewGlobalRect.offset(mLivePreviewLocation[0], mLivePreviewLocation[1]);
+ mWallpaperConnection = new WallpaperConnection(
+ getWallpaperIntent(homeWallpaper.getWallpaperComponent()), activity,
+ new WallpaperConnectionListener() {
+ @Override
+ public void onWallpaperColorsChanged(WallpaperColors colors,
+ int displayId) {
+ if (mLockPreviewWallpaperInfo instanceof LiveWallpaperInfo) {
+ mLockScreenPreviewer.setColor(colors);
+ }
}
- }
- }, mPreviewGlobalRect);
+ }, mPreviewGlobalRect);
- LiveTileOverlay.INSTANCE.update(new RectF(mPreviewLocalRect),
- ((CardView) previewView.getParent()).getRadius());
+ LiveTileOverlay.INSTANCE.update(new RectF(mPreviewLocalRect),
+ ((CardView) previewView.getParent()).getRadius());
- mWallpaperConnection.setVisibility(true);
- previewView.post(() -> {
- if (mWallpaperConnection != null && !mWallpaperConnection.connect()) {
- mWallpaperConnection = null;
- LiveTileOverlay.INSTANCE.detach(previewView.getOverlay());
- }
- });
+ mWallpaperConnection.setVisibility(true);
+ previewView.post(() -> {
+ if (mWallpaperConnection != null && !mWallpaperConnection.connect()) {
+ mWallpaperConnection = null;
+ LiveTileOverlay.INSTANCE.detach(previewView.getOverlay());
+ }
+ });
+ }
}
private void updateThumbnail(WallpaperInfo wallpaperInfo, ImageView thumbnailView,
@@ -696,7 +720,8 @@
boolean renderInImageWallpaperSurface =
!(wallpaperInfo instanceof LiveWallpaperInfo) && isHomeWallpaper;
- ImageView imageView = renderInImageWallpaperSurface ? mHomeImageWallpaper : thumbnailView;
+ ImageView imageView = renderInImageWallpaperSurface
+ ? mWallpaperSurfaceCallback.getHomeImageWallpaper() : thumbnailView;
if (imageView != null) {
wallpaperInfo.getThumbAsset(activity.getApplicationContext())
.loadPreviewImage(activity, imageView,
@@ -706,9 +731,9 @@
if (isHomeWallpaper) {
LiveTileOverlay.INSTANCE.detach(thumbnailView.getOverlay());
if (wallpaperInfo instanceof LiveWallpaperInfo) {
- if(mHomeImageWallpaper != null) {
+ if (mWallpaperSurfaceCallback.getHomeImageWallpaper() != null) {
wallpaperInfo.getThumbAsset(activity.getApplicationContext()).loadPreviewImage(
- activity, mHomeImageWallpaper,
+ activity, mWallpaperSurfaceCallback.getHomeImageWallpaper(),
getResources().getColor(R.color.secondary_color));
}
setUpLiveWallpaperPreview(wallpaperInfo);
@@ -720,7 +745,8 @@
}
} else {
// lock screen wallpaper
- if (wallpaperInfo instanceof LiveWallpaperInfo) {
+ if (wallpaperInfo instanceof LiveWallpaperInfo
+ && WallpaperConnection.isPreviewAvailable()) {
LiveTileOverlay.INSTANCE.attach(thumbnailView.getOverlay());
} else {
LiveTileOverlay.INSTANCE.detach(thumbnailView.getOverlay());
@@ -747,45 +773,6 @@
mWorkspaceSurface.getHolder().addCallback(mWorkspaceSurfaceCallback);
}
- private class WallpaperSurfaceCallback implements SurfaceHolder.Callback {
-
- private Surface mLastSurface;
- private SurfaceControlViewHost mHost;
-
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- if (mLastSurface != holder.getSurface()) {
- mLastSurface = holder.getSurface();
- mHomeImageWallpaper = new ImageView(getContext());
- mHomeImageWallpaper.setBackgroundColor(
- ContextCompat.getColor(getContext(), R.color.primary_color));
- mHomeImageWallpaper.measure(makeMeasureSpec(mHomePreview.getWidth(), EXACTLY),
- makeMeasureSpec(mHomePreview.getHeight(), EXACTLY));
- mHomeImageWallpaper.layout(0, 0, mHomePreview.getWidth(), mHomePreview.getHeight());
-
- cleanUp();
- mHost = new SurfaceControlViewHost(getContext(),
- getContext().getDisplay(), mWallpaperSurface.getHostToken());
- mHost.setView(mHomeImageWallpaper, mHomeImageWallpaper.getWidth(),
- mHomeImageWallpaper.getHeight());
- mWallpaperSurface.setChildSurfacePackage(mHost.getSurfacePackage());
- }
- }
-
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }
-
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) { }
-
- public void cleanUp() {
- if (mHost != null) {
- mHost.release();
- mHost = null;
- }
- }
- };
-
private static class PreviewPagerAdapter extends PagerAdapter {
private List<View> mPages;
diff --git a/src/com/android/wallpaper/picker/CategorySelectorFragment.java b/src/com/android/wallpaper/picker/CategorySelectorFragment.java
index 98e739b..887eb92 100644
--- a/src/com/android/wallpaper/picker/CategorySelectorFragment.java
+++ b/src/com/android/wallpaper/picker/CategorySelectorFragment.java
@@ -45,6 +45,7 @@
import com.android.wallpaper.model.Category;
import com.android.wallpaper.module.InjectorProvider;
import com.android.wallpaper.module.UserEventLogger;
+import com.android.wallpaper.util.DeepLinkUtils;
import com.android.wallpaper.util.DisplayMetricsRetriever;
import com.android.wallpaper.util.SizeCalculator;
import com.android.wallpaper.widget.WallpaperPickerRecyclerViewAccessibilityDelegate;
@@ -88,6 +89,11 @@
* Sets the title in the toolbar.
*/
void setToolbarTitle(CharSequence title);
+
+ /**
+ * Fetches the wallpaper categories.
+ */
+ void fetchCategories();
}
private RecyclerView mImageGrid;
@@ -121,6 +127,10 @@
mImageGrid, (BottomSheetHost) getParentFragment(), getNumColumns()));
getCategorySelectorFragmentHost().setToolbarTitle(getText(R.string.wallpaper_title));
+ if (!DeepLinkUtils.isDeepLink(getActivity().getIntent())) {
+ getCategorySelectorFragmentHost().fetchCategories();
+ }
+
return view;
}
@@ -246,7 +256,6 @@
}
getCategorySelectorFragmentHost().show(mCategory);
- getCategorySelectorFragmentHost().setToolbarTitle(mCategory.getTitle());
}
/**
diff --git a/src/com/android/wallpaper/picker/DeepLinkActivity.java b/src/com/android/wallpaper/picker/DeepLinkActivity.java
new file mode 100644
index 0000000..9c4afb4
--- /dev/null
+++ b/src/com/android/wallpaper/picker/DeepLinkActivity.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2020 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.wallpaper.picker;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+
+import com.android.wallpaper.module.InjectorProvider;
+
+/**
+ * An intermediate activity to redirect to a brand new target activity when the user clicks
+ * the url link to deep link.
+ */
+public class DeepLinkActivity extends Activity {
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ startActivity(InjectorProvider.getInjector().getDeepLinkRedirectIntent(
+ this, getIntent().getData()));
+ finish();
+ }
+}
diff --git a/src/com/android/wallpaper/picker/FragmentTransactionChecker.java b/src/com/android/wallpaper/picker/FragmentTransactionChecker.java
new file mode 100644
index 0000000..c25a41f
--- /dev/null
+++ b/src/com/android/wallpaper/picker/FragmentTransactionChecker.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 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.wallpaper.picker;
+
+/**
+ * An interface for a class to keep track of whether fragment transactions are safe to commit given
+ * the activity's current lifecycle state.
+ */
+public interface FragmentTransactionChecker {
+ /**
+ * Checks if the fragment transactions are safe to commit
+ *
+ * @return {@code true} if it is safe; {@code false} otherwise.
+ */
+ boolean isSafeToCommitFragmentTransaction();
+}
diff --git a/src/com/android/wallpaper/picker/ImagePreviewFragment.java b/src/com/android/wallpaper/picker/ImagePreviewFragment.java
index b1153bb..308e907 100755
--- a/src/com/android/wallpaper/picker/ImagePreviewFragment.java
+++ b/src/com/android/wallpaper/picker/ImagePreviewFragment.java
@@ -52,6 +52,7 @@
import com.android.wallpaper.R;
import com.android.wallpaper.asset.Asset;
+import com.android.wallpaper.asset.CurrentWallpaperAssetVN;
import com.android.wallpaper.model.WallpaperInfo;
import com.android.wallpaper.module.WallpaperPersister.Destination;
import com.android.wallpaper.module.WallpaperPersister.SetWallpaperCallback;
@@ -314,7 +315,8 @@
// Set page bitmap.
mFullResImageView.setImage(ImageSource.bitmap(pageBitmap));
- setDefaultWallpaperZoomAndScroll();
+ setDefaultWallpaperZoomAndScroll(
+ mWallpaperAsset instanceof CurrentWallpaperAssetVN);
crossFadeInMosaicView();
}
getActivity().invalidateOptionsMenu();
@@ -370,14 +372,20 @@
*
* <p>This method is called once in the Fragment lifecycle after the wallpaper asset has loaded
* and rendered to the layout.
+ *
+ * @param offsetToFarLeft {@code true} if we want to offset the visible rectangle to far left of
+ * the raw wallpaper; {@code false} otherwise.
*/
- private void setDefaultWallpaperZoomAndScroll() {
+ private void setDefaultWallpaperZoomAndScroll(boolean offsetToFarLeft) {
// Determine minimum zoom to fit maximum visible area of wallpaper on crop surface.
int cropWidth = mWorkspaceSurface.getMeasuredWidth();
int cropHeight = mWorkspaceSurface.getMeasuredHeight();
Point crop = new Point(cropWidth, cropHeight);
Rect visibleRawWallpaperRect =
WallpaperCropUtils.calculateVisibleRect(mRawWallpaperSize, crop);
+ if (offsetToFarLeft) {
+ visibleRawWallpaperRect.offsetTo(/* newLeft= */ 0, visibleRawWallpaperRect.top);
+ }
final PointF centerPosition = WallpaperCropUtils.calculateDefaultCenter(requireContext(),
mRawWallpaperSize, visibleRawWallpaperRect);
diff --git a/src/com/android/wallpaper/picker/LivePreviewFragment.java b/src/com/android/wallpaper/picker/LivePreviewFragment.java
index 7af31ac..d207809 100644
--- a/src/com/android/wallpaper/picker/LivePreviewFragment.java
+++ b/src/com/android/wallpaper/picker/LivePreviewFragment.java
@@ -69,10 +69,12 @@
import com.android.wallpaper.util.ScreenSizeCalculator;
import com.android.wallpaper.util.SizeCalculator;
import com.android.wallpaper.util.WallpaperConnection;
+import com.android.wallpaper.util.WallpaperSurfaceCallback;
import com.android.wallpaper.widget.BottomActionBar;
import com.android.wallpaper.widget.BottomActionBar.AccessibilityCallback;
import com.android.wallpaper.widget.LiveTileOverlay;
import com.android.wallpaper.widget.LockScreenPreviewer;
+import com.android.wallpaper.widget.WallpaperColorsLoader;
import com.android.wallpaper.widget.WallpaperInfoView;
import com.google.android.material.tabs.TabLayout;
@@ -115,9 +117,11 @@
private ViewGroup mPreviewContainer;
private TouchForwardingLayout mTouchForwardingLayout;
private SurfaceView mWorkspaceSurface;
+ private SurfaceView mWallpaperSurface;
private ViewGroup mLockPreviewContainer;
private LockScreenPreviewer mLockScreenPreviewer;
private WorkspaceSurfaceHolderCallback mWorkspaceSurfaceCallback;
+ private WallpaperSurfaceCallback mWallpaperSurfaceCallback;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -190,9 +194,13 @@
mLockPreviewContainer = mPreviewContainer.findViewById(R.id.lock_screen_preview_container);
mLockScreenPreviewer = new LockScreenPreviewer(getLifecycle(), activity,
mLockPreviewContainer);
+ mWallpaperSurface = mHomePreviewCard.findViewById(R.id.wallpaper_surface);
mWorkspaceSurface = mHomePreviewCard.findViewById(R.id.workspace_surface);
+
mWorkspaceSurfaceCallback = new WorkspaceSurfaceHolderCallback(
mWorkspaceSurface, getContext());
+ mWallpaperSurfaceCallback = new WallpaperSurfaceCallback(getContext(),
+ mHomePreview, mWallpaperSurface);
TabLayout tabs = inflater.inflate(R.layout.full_preview_tabs,
view.findViewById(R.id.toolbar_tabs_container))
@@ -231,10 +239,15 @@
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
+ updateWallpaperSurface();
setupCurrentWallpaperPreview();
renderWorkspaceSurface();
}
+ private void updateWallpaperSurface() {
+ mWallpaperSurface.getHolder().addCallback(mWallpaperSurfaceCallback);
+ }
+
private void updateScreenPreview(boolean isHomeSelected) {
mWorkspaceSurface.setVisibility(isHomeSelected ? View.VISIBLE : View.INVISIBLE);
mLockPreviewContainer.setVisibility(isHomeSelected ? View.INVISIBLE : View.VISIBLE);
@@ -289,13 +302,19 @@
mWallpaperConnection = null;
}
mWorkspaceSurfaceCallback.cleanUp();
+ mWorkspaceSurface.getHolder().removeCallback(mWorkspaceSurfaceCallback);
+ mWallpaperSurfaceCallback.cleanUp();
+ mWallpaperSurface.getHolder().removeCallback(mWallpaperSurfaceCallback);
}
private void previewLiveWallpaper(ImageView thumbnailView) {
thumbnailView.post(() -> {
- mWallpaper.getThumbAsset(requireActivity().getApplicationContext()).loadPreviewImage(
- requireActivity(), thumbnailView,
- getResources().getColor(R.color.secondary_color));
+ if (mWallpaperSurfaceCallback.getHomeImageWallpaper() != null) {
+ mWallpaper.getThumbAsset(requireActivity().getApplicationContext())
+ .loadPreviewImage(requireActivity(),
+ mWallpaperSurfaceCallback.getHomeImageWallpaper(),
+ getResources().getColor(R.color.secondary_color));
+ }
LiveTileOverlay.INSTANCE.detach(thumbnailView.getOverlay());
setUpLiveWallpaperPreview(mWallpaper, thumbnailView,
@@ -317,18 +336,25 @@
thumbnail.setBounds(previewView.getLeft(), previewView.getTop(), previewView.getRight(),
previewView.getBottom());
}
- repositionPreview(previewView);
- mWallpaperConnection = new WallpaperConnection(
- getWallpaperIntent(homeWallpaper.getWallpaperComponent()),
- activity,
- /* listener= */ this,
- mPreviewGlobalRect);
+ if (WallpaperConnection.isPreviewAvailable()) {
+ repositionPreview(previewView);
+ mWallpaperConnection = new WallpaperConnection(
+ getWallpaperIntent(homeWallpaper.getWallpaperComponent()),
+ activity,
+ /* listener= */ this,
+ mPreviewGlobalRect);
- LiveTileOverlay.INSTANCE.update(new RectF(mPreviewLocalRect),
- ((CardView) previewView.getParent()).getRadius());
+ LiveTileOverlay.INSTANCE.update(new RectF(mPreviewLocalRect),
+ ((CardView) previewView.getParent()).getRadius());
- mWallpaperConnection.setVisibility(true);
+ mWallpaperConnection.setVisibility(true);
+ } else {
+ WallpaperColorsLoader.getWallpaperColors(
+ activity,
+ homeWallpaper.getThumbAsset(activity),
+ mLockScreenPreviewer::setColor);
+ }
mLoadingScrim.post(() -> mLoadingScrim.animate()
.alpha(0f)
.setStartDelay(50)
diff --git a/src/com/android/wallpaper/picker/PreviewFragment.java b/src/com/android/wallpaper/picker/PreviewFragment.java
index 8963d60..c5c95ec 100755
--- a/src/com/android/wallpaper/picker/PreviewFragment.java
+++ b/src/com/android/wallpaper/picker/PreviewFragment.java
@@ -313,7 +313,10 @@
protected abstract void setCurrentWallpaper(@Destination int destination);
protected void finishActivity(boolean success) {
- Activity activity = requireActivity();
+ Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
if (success) {
try {
Toast.makeText(activity,
diff --git a/src/com/android/wallpaper/picker/TopLevelPickerActivity.java b/src/com/android/wallpaper/picker/TopLevelPickerActivity.java
index 36e8bbf..40627b5 100755
--- a/src/com/android/wallpaper/picker/TopLevelPickerActivity.java
+++ b/src/com/android/wallpaper/picker/TopLevelPickerActivity.java
@@ -305,8 +305,6 @@
.add(R.id.fragment_container, newFragment)
.commit();
}
-
- mDelegate.initialize(shouldForceRefresh);
}
private void initializeDesktop(Bundle savedInstanceState) {
@@ -803,6 +801,11 @@
}
@Override
+ public void fetchCategories() {
+ mDelegate.initialize(!mDelegate.getCategoryProvider().isCategoriesFetched());
+ }
+
+ @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
mDelegate.onRequestPermissionsResult(requestCode, permissions, grantResults);
diff --git a/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java b/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
index 53617f5..260d121 100755
--- a/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
+++ b/src/com/android/wallpaper/picker/individual/IndividualPickerFragment.java
@@ -44,6 +44,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.core.widget.ContentLoadingProgressBar;
import androidx.fragment.app.DialogFragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -77,6 +78,7 @@
import com.android.wallpaper.picker.BaseActivity;
import com.android.wallpaper.picker.BottomActionBarFragment;
import com.android.wallpaper.picker.CurrentWallpaperBottomSheetPresenter;
+import com.android.wallpaper.picker.FragmentTransactionChecker;
import com.android.wallpaper.picker.MyPhotosStarter.MyPhotosStarterProvider;
import com.android.wallpaper.picker.PreviewActivity;
import com.android.wallpaper.picker.RotationStarter;
@@ -169,6 +171,21 @@
void onWallpaperSelected(int position);
}
+ /**
+ * Interface to be implemented by a Fragment hosting a {@link IndividualPickerFragment}
+ */
+ public interface IndividualPickerFragmentHost {
+ /**
+ * Sets the title in the toolbar.
+ */
+ void setToolbarTitle(CharSequence title);
+
+ /**
+ * Moves to the previous fragment.
+ */
+ void moveToPreviousFragment();
+ }
+
WallpaperPersister mWallpaperPersister;
WallpaperPreferences mWallpaperPreferences;
WallpaperChangedNotifier mWallpaperChangedNotifier;
@@ -185,6 +202,7 @@
Handler mHandler;
Random mRandom;
+ boolean mIsWallpapersReceived;
WallpaperChangedNotifier.Listener mWallpaperChangedListener =
new WallpaperChangedNotifier.Listener() {
@@ -218,6 +236,7 @@
private boolean mTestingMode;
private CurrentWallpaperBottomSheetPresenter mCurrentWallpaperBottomSheetPresenter;
private SetIndividualHolder mPendingSetIndividualHolder;
+ private ContentLoadingProgressBar mLoading;
/**
* Staged error dialog fragments that were unable to be shown when the activity didn't allow
@@ -357,7 +376,9 @@
// The absence of this category in the CategoryProvider indicates a broken
// state, see b/38030129. Hence, finish the activity and return.
- getActivity().finish();
+ getIndividualPickerFragmentHost().moveToPreviousFragment();
+ Toast.makeText(getContext(), R.string.collection_not_exist_msg,
+ Toast.LENGTH_SHORT).show();
return;
}
onCategoryLoaded();
@@ -365,7 +386,9 @@
}, false);
}
+
protected void onCategoryLoaded() {
+ getIndividualPickerFragmentHost().setToolbarTitle(mCategory.getTitle());
mWallpaperRotationInitializer = mCategory.getWallpaperRotationInitializer();
// Avoids the "rotation" action is not shown correctly
// in a rare case : onCategoryLoaded() is called after onBottomActionBarReady().
@@ -391,9 +414,13 @@
void fetchWallpapers(boolean forceReload) {
mWallpapers.clear();
+ mIsWallpapersReceived = false;
+ updateLoading();
mCategory.fetchWallpapers(getActivity().getApplicationContext(), new WallpaperReceiver() {
@Override
public void onWallpapersReceived(List<WallpaperInfo> wallpapers) {
+ mIsWallpapersReceived = true;
+ updateLoading();
for (WallpaperInfo wallpaper : wallpapers) {
mWallpapers.add(wallpaper);
}
@@ -421,6 +448,18 @@
}, forceReload);
}
+ void updateLoading() {
+ if (mLoading == null) {
+ return;
+ }
+
+ if (mIsWallpapersReceived) {
+ mLoading.hide();
+ } else {
+ mLoading.show();
+ }
+ }
+
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
@@ -446,6 +485,8 @@
mImageGrid.setAccessibilityDelegateCompat(
new WallpaperPickerRecyclerViewAccessibilityDelegate(
mImageGrid, (BottomSheetHost) getParentFragment(), getNumColumns()));
+ mLoading = view.findViewById(R.id.loading_indicator);
+ updateLoading();
maybeSetUpImageGrid();
setUpBottomSheet();
return view;
@@ -468,6 +509,10 @@
gridPaddingPx, gridPaddingPx, 0, paddingBottomPx);
}
+ private IndividualPickerFragmentHost getIndividualPickerFragmentHost() {
+ return (IndividualPickerFragmentHost) getParentFragment();
+ }
+
private void maybeSetUpImageGrid() {
// Skip if mImageGrid been initialized yet
if (mImageGrid == null) {
@@ -772,7 +817,7 @@
}
private void showStartRotationErrorDialog(@NetworkPreference int networkPreference) {
- BaseActivity activity = (BaseActivity) getActivity();
+ FragmentTransactionChecker activity = (FragmentTransactionChecker) getActivity();
if (activity != null) {
StartRotationErrorDialogFragment startRotationErrorDialogFragment =
StartRotationErrorDialogFragment.newInstance(networkPreference);
diff --git a/src/com/android/wallpaper/util/DeepLinkUtils.java b/src/com/android/wallpaper/util/DeepLinkUtils.java
new file mode 100644
index 0000000..604b64a
--- /dev/null
+++ b/src/com/android/wallpaper/util/DeepLinkUtils.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2020 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.wallpaper.util;
+
+import android.content.Intent;
+import android.net.Uri;
+
+/** Util class for deep link. */
+public class DeepLinkUtils {
+ private static final String KEY_COLLECTION_ID = "collection_id";
+ private static final String SCHEME = "https";
+ private static final String SCHEME_SPECIFIC_PART_PREFIX = "//g.co/wallpaper";
+
+ /**
+ * Checks if it is the deep link case.
+ */
+ public static boolean isDeepLink(Intent intent) {
+ Uri data = intent.getData();
+ return data != null && SCHEME.equals(data.getScheme())
+ && data.getSchemeSpecificPart().startsWith(SCHEME_SPECIFIC_PART_PREFIX);
+ }
+
+ /**
+ * Gets the wallpaper collection which wants to deep link to.
+ *
+ * @return the wallpaper collection id
+ */
+ public static String getCollectionId(Intent intent) {
+ return isDeepLink(intent) ? intent.getData().getQueryParameter(KEY_COLLECTION_ID) : null;
+ }
+}
diff --git a/src/com/android/wallpaper/util/WallpaperConnection.java b/src/com/android/wallpaper/util/WallpaperConnection.java
index 1b5bdae..27b02ee 100644
--- a/src/com/android/wallpaper/util/WallpaperConnection.java
+++ b/src/com/android/wallpaper/util/WallpaperConnection.java
@@ -42,6 +42,13 @@
*/
public class WallpaperConnection extends IWallpaperConnection.Stub implements ServiceConnection {
+ /**
+ * Returns whether live preview is available in framework.
+ */
+ public static boolean isPreviewAvailable() {
+ return WallpaperEngineCompat.supportsScalePreview();
+ }
+
private static final String TAG = "WallpaperConnection";
private final Activity mActivity;
private final Intent mIntent;
diff --git a/src/com/android/wallpaper/util/WallpaperSurfaceCallback.java b/src/com/android/wallpaper/util/WallpaperSurfaceCallback.java
new file mode 100644
index 0000000..64f13bd
--- /dev/null
+++ b/src/com/android/wallpaper/util/WallpaperSurfaceCallback.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2020 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.wallpaper.util;
+
+import static android.view.View.MeasureSpec.EXACTLY;
+import static android.view.View.MeasureSpec.makeMeasureSpec;
+
+import android.content.Context;
+import android.view.Surface;
+import android.view.SurfaceControlViewHost;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.widget.ImageView;
+
+import androidx.annotation.Nullable;
+import androidx.core.content.ContextCompat;
+
+import com.android.wallpaper.R;
+
+/**
+ * Default implementation of {@link SurfaceHolder.Callback} to render a static wallpaper when the
+ * surface has been created.
+ */
+public class WallpaperSurfaceCallback implements SurfaceHolder.Callback {
+
+ /**
+ * Listener used to be notified when this surface is created
+ */
+ public interface SurfaceListener {
+ /**
+ * Called when {@link WallpaperSurfaceCallback#surfaceCreated(SurfaceHolder)} is called.
+ */
+ void onSurfaceCreated();
+ }
+
+ private Surface mLastSurface;
+ private SurfaceControlViewHost mHost;
+ // Home workspace surface is behind the app window, and so must the home image wallpaper like
+ // the live wallpaper. This view is rendered on here for home image wallpaper.
+ private ImageView mHomeImageWallpaper;
+ private final Context mContext;
+ private final ImageView mHomePreview;
+ private final SurfaceView mWallpaperSurface;
+ @Nullable
+ private final SurfaceListener mListener;
+
+ public WallpaperSurfaceCallback(Context context, ImageView homePreview,
+ SurfaceView wallpaperSurface, @Nullable SurfaceListener listener) {
+ mContext = context;
+ mHomePreview = homePreview;
+ mWallpaperSurface = wallpaperSurface;
+ mListener = listener;
+ }
+
+ public WallpaperSurfaceCallback(Context context, ImageView homePreview,
+ SurfaceView wallpaperSurface) {
+ this(context, homePreview, wallpaperSurface, null);
+ }
+
+ @Override
+ public void surfaceCreated(SurfaceHolder holder) {
+ if (mLastSurface != holder.getSurface()) {
+ mLastSurface = holder.getSurface();
+ mHomeImageWallpaper = new ImageView(mContext);
+ mHomeImageWallpaper.setBackgroundColor(
+ ContextCompat.getColor(mContext, R.color.primary_color));
+ mHomeImageWallpaper.measure(makeMeasureSpec(mHomePreview.getWidth(), EXACTLY),
+ makeMeasureSpec(mHomePreview.getHeight(), EXACTLY));
+ mHomeImageWallpaper.layout(0, 0, mHomePreview.getWidth(),
+ mHomePreview.getHeight());
+
+ cleanUp();
+ mHost = new SurfaceControlViewHost(mContext,
+ mContext.getDisplay(), mWallpaperSurface.getHostToken());
+ mHost.setView(mHomeImageWallpaper, mHomeImageWallpaper.getWidth(),
+ mHomeImageWallpaper.getHeight());
+ mWallpaperSurface.setChildSurfacePackage(mHost.getSurfacePackage());
+ }
+ if (mListener != null) {
+ mListener.onSurfaceCreated();
+ }
+ }
+
+ @Override
+ public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { }
+
+ @Override
+ public void surfaceDestroyed(SurfaceHolder holder) { }
+
+ /**
+ * Call to release resources.
+ */
+ public void cleanUp() {
+ if (mHost != null) {
+ mHost.release();
+ mHost = null;
+ }
+ }
+
+ @Nullable
+ public ImageView getHomeImageWallpaper() {
+ return mHomeImageWallpaper;
+ }
+}
diff --git a/src_override/com/android/wallpaper/module/WallpapersInjector.java b/src_override/com/android/wallpaper/module/WallpapersInjector.java
index 124dfc4..fa846a9 100755
--- a/src_override/com/android/wallpaper/module/WallpapersInjector.java
+++ b/src_override/com/android/wallpaper/module/WallpapersInjector.java
@@ -16,6 +16,8 @@
package com.android.wallpaper.module;
import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
import androidx.fragment.app.Fragment;
@@ -23,6 +25,7 @@
import com.android.wallpaper.model.WallpaperInfo;
import com.android.wallpaper.monitor.PerformanceMonitor;
import com.android.wallpaper.picker.ImagePreviewFragment;
+import com.android.wallpaper.picker.TopLevelPickerActivity;
/**
* A concrete, real implementation of the dependency provider.
@@ -75,6 +78,15 @@
}
@Override
+ public Intent getDeepLinkRedirectIntent(Context context, Uri uri) {
+ Intent intent = new Intent();
+ intent.setClass(context, TopLevelPickerActivity.class);
+ intent.setData(uri);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ return intent;
+ }
+
+ @Override
public synchronized PerformanceMonitor getPerformanceMonitor() {
if (mPerformanceMonitor == null) {
mPerformanceMonitor = new PerformanceMonitor() {
diff --git a/tests/src/com/android/wallpaper/testing/TestCategoryProvider.java b/tests/src/com/android/wallpaper/testing/TestCategoryProvider.java
index 310840c..c7d7c95 100644
--- a/tests/src/com/android/wallpaper/testing/TestCategoryProvider.java
+++ b/tests/src/com/android/wallpaper/testing/TestCategoryProvider.java
@@ -87,6 +87,11 @@
return null;
}
+ @Override
+ public boolean isCategoriesFetched() {
+ return false;
+ }
+
/** Returns a list of test Category objects used by this TestCategoryProvider. */
public List<Category> getTestCategories() {
return mCategories;
diff --git a/tests/src/com/android/wallpaper/testing/TestInjector.java b/tests/src/com/android/wallpaper/testing/TestInjector.java
index 8dffdca..9b7927f 100644
--- a/tests/src/com/android/wallpaper/testing/TestInjector.java
+++ b/tests/src/com/android/wallpaper/testing/TestInjector.java
@@ -16,6 +16,8 @@
package com.android.wallpaper.testing;
import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
import androidx.fragment.app.Fragment;
@@ -236,6 +238,11 @@
}
@Override
+ public Intent getDeepLinkRedirectIntent(Context context, Uri uri) {
+ return null;
+ }
+
+ @Override
public PerformanceMonitor getPerformanceMonitor() {
if (mPerformanceMonitor == null) {
mPerformanceMonitor = new TestPerformanceMonitor();