Merge "[DON'T BLOCK] Test ownership migration rules" into main
diff --git a/Android.bp b/Android.bp
index 1b7d20e..c9a409c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -58,7 +58,7 @@
         "src/**/*.kt",
     ],
     exclude_srcs: [
-        "src/com/android/settings/biometrics/fingerprint2/shared/**/*.kt",
+        "src/com/android/settings/biometrics/fingerprint2/lib/**/*.kt",
     ],
     use_resource_processor: true,
     resource_dirs: [
diff --git a/aconfig/Android.bp b/aconfig/Android.bp
index d14cc6f..b2ffa22 100644
--- a/aconfig/Android.bp
+++ b/aconfig/Android.bp
@@ -5,6 +5,7 @@
 aconfig_declarations {
     name: "aconfig_settings_flags",
     package: "com.android.settings.flags",
+    container: "system",
     srcs: [
         "*.aconfig",
     ],
@@ -18,6 +19,7 @@
 aconfig_declarations {
     name: "factory_reset_flags",
     package: "com.android.settings.factory_reset",
+    container: "system",
     srcs: ["factory_reset/*.aconfig"],
 }
 
@@ -29,6 +31,7 @@
 aconfig_declarations {
     name: "media_drm_flags",
     package: "com.android.settings.media_drm",
+    container: "system",
     srcs: ["media_drm/*.aconfig"],
 }
 
@@ -40,6 +43,7 @@
 aconfig_declarations {
     name: "accessibility_flags",
     package: "com.android.settings.accessibility",
+    container: "system",
     srcs: ["accessibility/*.aconfig"],
 }
 
@@ -51,8 +55,9 @@
 aconfig_declarations {
     name: "development_settings_flags",
     package: "com.android.settings.development",
+    container: "system",
     srcs: [
-        "development/**/*.aconfig"
+        "development/**/*.aconfig",
     ],
 }
 
diff --git a/aconfig/accessibility/accessibility_flags.aconfig b/aconfig/accessibility/accessibility_flags.aconfig
index ad770fb..24e108e 100644
--- a/aconfig/accessibility/accessibility_flags.aconfig
+++ b/aconfig/accessibility/accessibility_flags.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.accessibility"
+container: "system"
 
 # NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
 
diff --git a/aconfig/development/settings_core_flag_declarations.aconfig b/aconfig/development/settings_core_flag_declarations.aconfig
index c012263..b73b026 100644
--- a/aconfig/development/settings_core_flag_declarations.aconfig
+++ b/aconfig/development/settings_core_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.development"
+container: "system"
 
 flag {
   name: "deprecate_list_activity"
diff --git a/aconfig/factory_reset/factory_reset_flag_declarations.aconfig b/aconfig/factory_reset/factory_reset_flag_declarations.aconfig
index 2b1ce72..7feebf5 100644
--- a/aconfig/factory_reset/factory_reset_flag_declarations.aconfig
+++ b/aconfig/factory_reset/factory_reset_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.factory_reset"
+container: "system"
 
 flag {
   name: "enable_factory_reset_wizard"
diff --git a/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig b/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig
index 06d75f1..4697a11 100644
--- a/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig
+++ b/aconfig/media_drm/settings_mediadrm_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.media_drm"
+container: "system"
 
 flag {
     name: "force_l3_enabled"
diff --git a/aconfig/settings_accessibility_flag_declarations_legacy.aconfig b/aconfig/settings_accessibility_flag_declarations_legacy.aconfig
index 5a464b5..6e02bfe 100644
--- a/aconfig/settings_accessibility_flag_declarations_legacy.aconfig
+++ b/aconfig/settings_accessibility_flag_declarations_legacy.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 # NOTE: Don't add new accessibility flags here, since the package name doesn't follow
 # the best practice for setting's feature flag go/settings-trunk-stable
diff --git a/aconfig/settings_biometrics_framework_flag_declarations.aconfig b/aconfig/settings_biometrics_framework_flag_declarations.aconfig
index 810f2de..e9f19bc 100644
--- a/aconfig/settings_biometrics_framework_flag_declarations.aconfig
+++ b/aconfig/settings_biometrics_framework_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "biometric_settings_provider"
diff --git a/aconfig/settings_biometrics_integration_declarations.aconfig b/aconfig/settings_biometrics_integration_declarations.aconfig
index bc437f2..ea3ac19 100644
--- a/aconfig/settings_biometrics_integration_declarations.aconfig
+++ b/aconfig/settings_biometrics_integration_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "sfps_enroll_refinement"
diff --git a/aconfig/settings_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig
index 58ddd25..3e771cd 100644
--- a/aconfig/settings_bluetooth_declarations.aconfig
+++ b/aconfig/settings_bluetooth_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "enable_offload_bluetooth_operations_to_background_thread"
diff --git a/aconfig/settings_connecteddevice_flag_declarations.aconfig b/aconfig/settings_connecteddevice_flag_declarations.aconfig
index 0fc164e..84bb578 100644
--- a/aconfig/settings_connecteddevice_flag_declarations.aconfig
+++ b/aconfig/settings_connecteddevice_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "enable_subsequent_pair_settings_integration"
diff --git a/aconfig/settings_development_flag_declarations.aconfig b/aconfig/settings_development_flag_declarations.aconfig
index e12bccc..318f862 100644
--- a/aconfig/settings_development_flag_declarations.aconfig
+++ b/aconfig/settings_development_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 # NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
 
diff --git a/aconfig/settings_display_flag_declarations.aconfig b/aconfig/settings_display_flag_declarations.aconfig
index 52a326d..9fe587b 100644
--- a/aconfig/settings_display_flag_declarations.aconfig
+++ b/aconfig/settings_display_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
     name: "protect_screen_timeout_with_auth"
diff --git a/aconfig/settings_experience_flag_declarations.aconfig b/aconfig/settings_experience_flag_declarations.aconfig
index 7642734..e6cb924 100644
--- a/aconfig/settings_experience_flag_declarations.aconfig
+++ b/aconfig/settings_experience_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
     name: "new_apn_page_enabled"
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
index 36f104c..9c3a7e1 100644
--- a/aconfig/settings_flag_declarations.aconfig
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
     name: "show_factory_reset_cancel_button"
diff --git a/aconfig/settings_globalintl_flag_declarations.aconfig b/aconfig/settings_globalintl_flag_declarations.aconfig
index 68662d0..95202d3 100644
--- a/aconfig/settings_globalintl_flag_declarations.aconfig
+++ b/aconfig/settings_globalintl_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
     name: "terms_of_address_enabled"
diff --git a/aconfig/settings_notification_flag_declarations.aconfig b/aconfig/settings_notification_flag_declarations.aconfig
index f2bf1c8..bdb6573 100644
--- a/aconfig/settings_notification_flag_declarations.aconfig
+++ b/aconfig/settings_notification_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "dedupe_dnd_settings_channels"
diff --git a/aconfig/settings_onboarding_experience_flag_declarations.aconfig b/aconfig/settings_onboarding_experience_flag_declarations.aconfig
index 6fb5377..8d58d40 100644
--- a/aconfig/settings_onboarding_experience_flag_declarations.aconfig
+++ b/aconfig/settings_onboarding_experience_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "enable_sound_backup"
diff --git a/aconfig/settings_panel_flag_declarations.aconfig b/aconfig/settings_panel_flag_declarations.aconfig
index 10eb655..efab83e 100644
--- a/aconfig/settings_panel_flag_declarations.aconfig
+++ b/aconfig/settings_panel_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "enable_volume_plus_quick_settings"
diff --git a/aconfig/settings_security_flag_declarations.aconfig b/aconfig/settings_security_flag_declarations.aconfig
index 42ef4d0..3684212 100644
--- a/aconfig/settings_security_flag_declarations.aconfig
+++ b/aconfig/settings_security_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "protect_lock_after_timeout_with_auth"
diff --git a/aconfig/settings_telephony_flag_declarations.aconfig b/aconfig/settings_telephony_flag_declarations.aconfig
index 0999a7b..dab1b45 100644
--- a/aconfig/settings_telephony_flag_declarations.aconfig
+++ b/aconfig/settings_telephony_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
     name: "remove_key_hide_enable_2g"
diff --git a/aconfig/settings_voice_activation_apps_flag_declarations.aconfig b/aconfig/settings_voice_activation_apps_flag_declarations.aconfig
index d98bc52..a18e8c5 100644
--- a/aconfig/settings_voice_activation_apps_flag_declarations.aconfig
+++ b/aconfig/settings_voice_activation_apps_flag_declarations.aconfig
@@ -1,4 +1,5 @@
 package: "com.android.settings.flags"
+container: "system"
 
 flag {
   name: "enable_voice_activation_apps_in_settings"
diff --git a/res-product/values-af/strings.xml b/res-product/values-af/strings.xml
index 1f46168..73fdec6 100644
--- a/res-product/values-af/strings.xml
+++ b/res-product/values-af/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Jou foon is na fabriekinstellings teruggestel. Voer jou vorige wagwoord in om dié foon te gebruik."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Jou tablet is na fabriekinstellings teruggestel. Voer vorige wagwoord in om dié tablet te gebruik."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Jou toestel is na fabriekinstellings teruggestel. Voer vorige wagwoord in om dié toestel te gebruik."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Jou foon laai dalk stadig of laai glad nie. Gebruik ’n aanbeveelde kabel en aansluitprop om vinniger te laai."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Jou toestel laai dalk stadig of laai glad nie. Gebruik ’n aanbeveelde kabel en aansluitprop om vinniger te laai."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Jou tablet laai dalk stadig of laai glad nie. Gebruik ’n aanbeveelde kabel en aansluitprop om vinniger te laai."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sonder om jou foon te ontsluit"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sonder om jou tablet te ontsluit"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Wanneer jy jou foon tussen portret en landskap beweeg"</string>
diff --git a/res-product/values-am/strings.xml b/res-product/values-am/strings.xml
index 89e4c36..df771ea 100644
--- a/res-product/values-am/strings.xml
+++ b/res-product/values-am/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"የእርስዎ ስልክ ወደ የፋብሪካ ቅንብሮች ዳግም ተጀምሯል። ይህን ስልክ ለመጠቀም ቀዳሚውን ይለፍ ቃልዎን ያስገቡ።"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"የእርስዎ ጡባዊ ወደ የፋብሪካ ቅንብሮች ዳግም ተጀምሯል። ይህን ጡባዊ ለመጠቀም የእርስዎን ቀዳሚ የይለፍ ቃል ያስገቡ።"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"የእርስዎ መሣሪያ ወደ የፋብሪካ ቅንብሮች ዳግም ተጀምሯል። ይህን መሣሪያ ለመጠቀም የእርስዎን ቀዳሚ የይለፍ ቃል ያስገቡ።"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ስልክዎ በዝግታ ኃይል እየሞላ ሊሆን ወይም ኃይል እየሞላ ላይሆን ይችላል። ይበልጥ ፈጣን ለሆነ ኃይል መሙላት የሚመከር ገመድ እና የኃይል አስማሚ ይጠቀሙ።"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"መሣሪያዎ በዝግታ ኃይል እየሞላ ሊሆን ወይም ኃይል እየሞላ ላይሆን ይችላል። ይበልጥ ፈጣን ለሆነ ኃይል መሙላት የሚመከር ገመድ እና የኃይል አስማሚ ይጠቀሙ።"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ጡባዊዎ በዝግታ ኃይል እየሞላ ሊሆን ወይም ኃይል እየሞላ ላይሆን ይችላል። ይበልጥ ፈጣን ለሆነ ኃይል መሙላት የሚመከር ገመድ እና የኃይል አስማሚ ይጠቀሙ።"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ስልክዎን ሳይከፍቱ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ጡባዊዎን ሳይክፍቱ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ስልክዎን በቁም ፎቶ እና በወርድ መካከል ሲያንቀሳቅሱ"</string>
diff --git a/res-product/values-ar/strings.xml b/res-product/values-ar/strings.xml
index be429c4..fe29067 100644
--- a/res-product/values-ar/strings.xml
+++ b/res-product/values-ar/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"تمت إعادة ضبط هاتفك على الإعدادات الأصلية. لاستخدام هذا الهاتف، أدخِل كلمة المرور السابقة."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"تمت إعادة ضبط جهازك اللوحي على الإعدادات الأصلية. لاستخدام جهازك اللوحي، أدخِل كلمة المرور السابقة."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"تمت إعادة ضبط جهازك على الإعدادات الأصلية. لاستخدام هذا الجهاز، أدخِل كلمة المرور السابقة."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"قد يتم شحن هاتفك ببطء أو لا يتم شحنه. لشحن أسرع، استخدِم كابلاً ومحوِّل طاقة يُنصح باستخدامهما."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"قد يتم شحن جهازك ببطء أو لا يتم شحنه. لشحن أسرع، استخدِم كابلاً ومحوِّل طاقة يُنصح باستخدامهما."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"قد يتم شحن جهازك اللوحي ببطء أو لا يتم شحنه. لشحن أسرع، استخدِم كابلاً ومحوِّل طاقة يُنصح باستخدامهما."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"بدون فتح قفل هاتفك"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"بدون فتح قفل جهازك اللوحي"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"عند تغيير اتّجاه شاشة هاتفك بين الوضع العمودي والوضع الأفقي"</string>
diff --git a/res-product/values-as/strings.xml b/res-product/values-as/strings.xml
index fb39878..a1720d3 100644
--- a/res-product/values-as/strings.xml
+++ b/res-product/values-as/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"আপোনাৰ ফ’নটো ফেক্টৰী ছেটিঙলৈ ৰিছেট কৰা হৈছিল। ফ’নটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ আগৰ পাছৱৰ্ডটো দিয়ক।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"আপোনাৰ টেবলেটটো ফেক্টৰীৰ ছেটিঙলৈ ৰিছেট কৰা হৈছে। এই টেবলেটটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ আগৰ পাছৱৰ্ডটো দিয়ক।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"আপোনাৰ ডিভাইচটো ফেক্টৰীৰ ছেটিঙলৈ ৰিছেট কৰা হৈছে। এই ডিভাইচটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ আগৰ পাছৱৰ্ডটো দিয়ক।"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"আপোনাৰ ফ’নটো হয়তো লাহে লাহে চাৰ্জ হৈ আছে বা চাৰ্জ হোৱা নাই। দ্ৰুত চাৰ্জিঙৰ বাবে, চুপাৰিছ কৰা কে’বল আৰু এডাপ্টাৰ ব্যৱহাৰ কৰক।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"আপোনাৰ ডিভাইচটো হয়তো লাহে লাহে চাৰ্জ হৈ আছে বা চাৰ্জ হোৱা নাই। দ্ৰুত চাৰ্জিঙৰ বাবে, চুপাৰিছ কৰা কে’বল আৰু এডাপ্টাৰ ব্যৱহাৰ কৰক।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"আপোনাৰ টেবলেটটো হয়তো লাহে লাহে চাৰ্জ হৈ আছে বা চাৰ্জ হোৱা নাই। দ্ৰুত চাৰ্জিঙৰ বাবে, চুপাৰিছ কৰা কে’বল আৰু এডাপ্টাৰ ব্যৱহাৰ কৰক।"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"আপোনাৰ ফ’নটো আনলক নকৰাকৈ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"আপোনাৰ টেবলেটটো আনলক নকৰাকৈ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"আপুনি নিজৰ ফ’নটো প’ৰ্ট্ৰেইট আৰু লেণ্ডস্কে’পৰ মাজত সালসলনি কৰিলে"</string>
diff --git a/res-product/values-az/strings.xml b/res-product/values-az/strings.xml
index 8e0d0fd..efeac52 100644
--- a/res-product/values-az/strings.xml
+++ b/res-product/values-az/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonunuz zavod ayarlarına sıfırlanıb. Telefondan istifadə etmək üçün əvvəlki parolu daxil edin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Planşetiniz zavod ayarlarına sıfırlanıb. Bu planşeti istifadə etmək üçün əvvəlki parolu daxil edin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Cihazınız zavod ayarlarına sıfırlanıb. Bu cihazı istifadə etmək üçün əvvəlki parolu daxil edin."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon asta şarj edilə, yaxud şarj edilməyə bilər. Sürətli şarj üçün tövsiyə edilən kabel və adapter istifadə edin."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Cihaz asta şarj edilə, yaxud şarj edilməyə bilər. Sürətli şarj üçün tövsiyə edilən kabel və adapter istifadə edin."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Planşet asta şarj edilə, yaxud şarj edilməyə bilər. Sürətli şarj üçün tövsiyə edilən kabel və adapter istifadə edin."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefonu kiliddən çıxarmadan"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Planşeti kiliddən çıxarmadan"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefon rejimini portret və landşaft arasında dəyişdikdə"</string>
diff --git a/res-product/values-b+sr+Latn/strings.xml b/res-product/values-b+sr+Latn/strings.xml
index 7d4af34..9f8486e 100644
--- a/res-product/values-b+sr+Latn/strings.xml
+++ b/res-product/values-b+sr+Latn/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Uređaj je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon se možda sporo puni ili se uopšte ne puni. Ako želite brže punjenje, koristite preporučeni kabl i adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Uređaj se možda sporo puni ili se uopšte ne puni. Ako želite brže punjenje, koristite preporučeni kabl i adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet se možda sporo puni ili se uopšte ne puni. Ako želite brže punjenje, koristite preporučeni kabl i adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez otključavanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez otključavanja tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kada okrećete telefon u uspravni ili vodoravni režim"</string>
diff --git a/res-product/values-be/strings.xml b/res-product/values-be/strings.xml
index b47d27f..2714695 100644
--- a/res-product/values-be/strings.xml
+++ b/res-product/values-be/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Налады тэлефона скінуты да заводскіх значэнняў. Каб карыстацца ім, увядзіце свой былы пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Налады планшэта скінуты да заводскіх значэнняў. Каб карыстацца ім, увядзіце свой былы пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Налады прылады скінуты да заводскіх значэнняў. Каб карыстацца ёю, увядзіце свой былы пароль."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Магчыма, ваш тэлефон не зараджаецца або зараджаецца павольна. Каб паскорыць зарадку, выкарыстоўвайце рэкамендаваныя кабель і адаптар."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Магчыма, ваша прылада не зараджаецца або зараджаецца павольна. Каб паскорыць зарадку, выкарыстоўвайце рэкамендаваныя кабель і адаптар."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Магчыма, ваш планшэт не зараджаецца або зараджаецца павольна. Каб паскорыць зарадку, выкарыстоўвайце рэкамендаваныя кабель і адаптар."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без разблакіроўкі тэлефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без разблакіроўкі планшэта"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Калі вы паварочваеце тэлефон для змянення арыентацыі экрана"</string>
diff --git a/res-product/values-bg/strings.xml b/res-product/values-bg/strings.xml
index 0adf002..78f7df4 100644
--- a/res-product/values-bg/strings.xml
+++ b/res-product/values-bg/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Фабр. настройки на телефона са били възстановени. За да го ползвате, въведете предишната си парола."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Фабр. настройки на таблета са били възстановени. За да го използвате, въведете предишната си парола."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Фабр. настройки на у-вото са били възстановени. За да го използвате, въведете предишната си парола."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Възможно е телефонът ви да се зарежда бавно или да не се зарежда. За по-бързо зареждане използвайте препоръчителните кабел и адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Възможно е устройството ви да се зарежда бавно или да не се зарежда. За по-бързо зареждане използвайте препоръчителните кабел и адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Възможно е таблетът ви да се зарежда бавно или да не се зарежда. За по-бързо зареждане използвайте препоръчителните кабел и адаптер."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без отключване на телефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без отключване на таблета"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Когато завъртите телефона си вертикално или хоризонтално"</string>
diff --git a/res-product/values-bn/strings.xml b/res-product/values-bn/strings.xml
index 174a34f..a3c4747 100644
--- a/res-product/values-bn/strings.xml
+++ b/res-product/values-bn/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"আপনার ফোন ফ্যাক্টরি সেটিংসে রিসেট করা হয়েছে। এই ফোনটি ব্যবহার করতে হলে, আগের পাসওয়ার্ডটি লিখুন।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"আপনার ট্যাবলেট ফ্যাক্টরি সেটিংসে রিসেট করা হয়েছে। এই ট্যাবলেট ব্যবহার করতে, আগের পাসওয়ার্ড লিখুন।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"আপনার ডিভাইস ফ্যাক্টরি সেটিংসে রিসেট করা হয়েছে। এই ডিভাইস ব্যবহার করতে, আপনার আগের পাসওয়ার্ড লিখুন।"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"আপনার ফোন হয়ত ধীরে ধীরে চার্জ হচ্ছে বা চার্জ হচ্ছে না। আরও দ্রুত চার্জের জন্য সাজেস্ট করা কেবল ও অ্যাডাপ্টার ব্যবহার করুন।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"আপনার ডিভাইস হয়ত ধীরে ধীরে চার্জ হচ্ছে বা চার্জ হচ্ছে না। আরও দ্রুত চার্জের জন্য সাজেস্ট করা কেবল ও অ্যাডাপ্টার ব্যবহার করুন।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"আপনার ট্যাবলেট হয়ত ধীরে ধীরে চার্জ হচ্ছে বা চার্জ হচ্ছে না। আরও দ্রুত চার্জের জন্য সাজেস্ট করা কেবল ও অ্যাডাপ্টার ব্যবহার করুন।"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"আপনার ফোন আনলক না করে"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"আপনার ট্যাবলেট আনলক না করে"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"আপনার ফোন, \'পোর্ট্রেট\' ও \'ল্যান্ডস্কেপ\' মোডের মধ্যে অদলবদল করলে"</string>
diff --git a/res-product/values-bs/strings.xml b/res-product/values-bs/strings.xml
index 53710f8..bef680a 100644
--- a/res-product/values-bs/strings.xml
+++ b/res-product/values-bs/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je vraćen na fabričke postavke. Da koristite telefon, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet je vraćen na fabričke postavke. Da koristite tablet, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Uređaj je vraćen na fabričke postavke. Da koristite uređaj, unesite prethodnu lozinku."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon se možda puni sporo ili se ne puni. Za brže punjenje koristite preporučen kabl i adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Uređaj se možda puni sporo ili se ne puni. Za brže punjenje koristite preporučen kabl i adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet se možda puni sporo ili se ne puni. Za brže punjenje koristite preporučen kabl i adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez otključavanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez otključavanja tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kada mijenjate prikaz na telefonu između uspravnog i vodoravnog"</string>
diff --git a/res-product/values-ca/strings.xml b/res-product/values-ca/strings.xml
index 48690a9..0575f52 100644
--- a/res-product/values-ca/strings.xml
+++ b/res-product/values-ca/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"S\'ha restablert la config. de fàbrica del dispositiu. Per utilitzar-lo, escriu la contrasenya antiga."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"S\'ha restablert la config. de fàbrica de la tauleta. Per utilitzar-la, escriu la contrasenya antiga."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"S\'ha restablert la config. de fàbrica del dispositiu. Per utilitzar-lo, escriu la contrasenya antiga."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"És possible que el telèfon s\'estigui carregant lentament o que no s\'estigui carregant. Per carregar-lo ràpidament, utilitza un cable i un adaptador recomanats."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"És possible que el dispositiu s\'estigui carregant lentament o que no s\'estigui carregant. Per carregar-lo ràpidament, utilitza un cable i un adaptador recomanats."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"És possible que la tauleta s\'estigui carregant lentament o que no s\'estigui carregant. Per carregar-la ràpidament, utilitza un cable i un adaptador recomanats."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sense desbloquejar el telèfon"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sense desbloquejar la tauleta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quan canvies entre el mode vertical i horitzontal al telèfon"</string>
diff --git a/res-product/values-cs/strings.xml b/res-product/values-cs/strings.xml
index f2d2453..c0c07d5 100644
--- a/res-product/values-cs/strings.xml
+++ b/res-product/values-cs/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon byl resetován do továrního nastavení. Chcete-li tento telefon použít, zadejte předchozí heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet byl resetován do továrního nastavení. Chcete-li tento tablet použít, zadejte předchozí heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Zařízení bylo resetováno do továrního nastavení. Chcete-li toto zařízení použít, zadejte předchozí heslo."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon se nabíjí pomalu nebo se nenabíjí vůbec. K rychlejšímu nabíjení použijte doporučený kabel a adaptér."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Zařízení se nabíjí pomalu nebo se nenabíjí vůbec. K rychlejšímu nabíjení použijte doporučený kabel a adaptér."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet se nabíjí pomalu nebo se nenabíjí vůbec. K rychlejšímu nabíjení použijte doporučený kabel a adaptér."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez odemknutí telefonu"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez odemknutí tabletu"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Když telefon otočíte z režimu na výšku do režimu na šířku nebo naopak"</string>
diff --git a/res-product/values-da/strings.xml b/res-product/values-da/strings.xml
index 9b59b6c..7225742 100644
--- a/res-product/values-da/strings.xml
+++ b/res-product/values-da/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Fabriksindstillingerne er gendannet på telefonen. Angiv din tidligere adgangskode for at bruge den."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Fabriksindstillingerne er gendannet på tabletten. Angiv din tidligere adgangskode for at bruge den."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Fabriksindstillingerne er gendannet på enheden. Angiv din tidligere adgangskode for at bruge den."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Din telefon oplader muligvis langsomt eller slet ikke. Opnå hurtigere opladning ved at bruge et kabel og en adapter, som er anbefalet."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Din enhed oplader muligvis langsomt eller slet ikke. Opnå hurtigere opladning ved at bruge et kabel og en adapter, som er anbefalet."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Din tablet oplader muligvis langsomt eller slet ikke. Opnå hurtigere opladning ved at bruge et kabel og en adapter, som er anbefalet."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Uden at låse op for din telefon"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Uden at låse op for din tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Når du drejer telefonen til stående eller liggende format"</string>
diff --git a/res-product/values-de/strings.xml b/res-product/values-de/strings.xml
index 0ac0b0b..552073c 100644
--- a/res-product/values-de/strings.xml
+++ b/res-product/values-de/strings.xml
@@ -308,9 +308,9 @@
     <string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"Wenn du im Web Änderungen an deinen Konten vornimmst, werden diese automatisch auf dein Telefon kopiert.\n\nIm Gegenzug werden bei manchen Konten automatisch alle Änderungen, die auf dem Telefon vorgenommen wurden, ins Web kopiert. Dazu gehören auch Google-Konten."</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"Mobile Daten werden deaktiviert, sobald das von dir festgelegte Limit erreicht wurde.\n\nDer dabei angesetzte Wert wird von deinem Tablet berechnet und kann von der Messung des genutzten Datenvolumens durch deinen Mobilfunkanbieter abweichen. Daher empfiehlt es sich, ein etwas niedrigeres Limit anzugeben."</string>
     <string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"Mobile Daten werden deaktiviert, sobald das von dir festgelegte Limit erreicht wurde.\n\nDer dabei angesetzte Wert wird von deinem Smartphone berechnet und kann von der Messung des genutzten Datenvolumens durch deinen Mobilfunkanbieter abweichen. Daher empfiehlt es sich, ein etwas niedrigeres Limit anzugeben."</string>
-    <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Du kannst dein Gerät teilen, indem du neue Nutzer hinzufügst. Jeder Nutzer hat einen privaten Bereich auf deinem Gerät für benutzerdefinierte Startbildschirme, Konten, Apps, Einstellungen usw."</string>
-    <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Wenn auch andere Nutzer dein Tablet verwenden dürfen, kannst du ihm neue Nutzer hinzufügen. Jeder Nutzer erhält auf deinem Tablet seinen privaten Bereich für benutzerdefinierte Startbildschirme, Konten, Apps, Einstellungen usw."</string>
-    <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Wenn du dein Smartphone mit anderen teilen möchtest, kannst du neue Nutzer hinzufügen. Jeder Nutzer erhält auf deinem Smartphone einen privaten Bereich für eigene Startbildschirme, Konten, Apps, Einstellungen usw."</string>
+    <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"Du kannst dein Gerät teilen, indem du neue Nutzer hinzufügst. Jeder Nutzer hat ein privates Profil auf deinem Gerät für benutzerdefinierte Startbildschirme, Konten, Apps, Einstellungen usw."</string>
+    <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"Wenn auch andere Nutzer dein Tablet verwenden dürfen, kannst du ihm neue Nutzer hinzufügen. Jeder Nutzer erhält auf deinem Tablet sein privates Profil für benutzerdefinierte Startbildschirme, Konten, Apps, Einstellungen usw."</string>
+    <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"Wenn du dein Smartphone mit anderen teilen möchtest, kannst du neue Nutzer hinzufügen. Jeder Nutzer erhält auf deinem Smartphone ein privates Profil für eigene Startbildschirme, Konten, Apps, Einstellungen usw."</string>
     <string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"Nur der Eigentümer des Tablets kann Nutzer verwalten."</string>
     <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"Nur der Eigentümer des Telefons kann Nutzer verwalten."</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"Dein Profil und deine Daten werden vom Tablet entfernt. Du kannst diese Aktion nicht rückgängig machen."</string>
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Smartphone wurde auf Werkseinstellungen zurückgesetzt. Zum Verwenden vorheriges Passwort eingeben."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet wurde auf Werkseinstellungen zurückgesetzt. Zum Verwenden vorheriges Passwort eingeben."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Gerät wurde auf Werkseinstellungen zurückgesetzt. Zum Verwenden vorheriges Passwort eingeben."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Dein Smartphone lädt möglicherweise langsamer oder gar nicht. Damit es schneller lädt, solltest du ein empfohlenes Kabel und Netzteil verwenden."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Dein Gerät lädt möglicherweise langsamer oder gar nicht. Damit es schneller lädt, solltest du ein empfohlenes Kabel und Netzteil verwenden."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Dein Tablet lädt möglicherweise langsamer oder gar nicht. Damit es schneller lädt, solltest du ein empfohlenes Kabel und Netzteil verwenden."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Ohne dein Smartphone zu entsperren"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Ohne dein Tablet zu entsperren"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Wenn du das Smartphone drehst"</string>
diff --git a/res-product/values-el/strings.xml b/res-product/values-el/strings.xml
index f5c1e38..fc0e35e 100644
--- a/res-product/values-el/strings.xml
+++ b/res-product/values-el/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Έγινε επαναφ. των εργοστ. ρυθμ. τηλεφ. Για να χρησιμ. το τηλέφ. εισαγάγ. τον παλιό κωδ. πρόσβασης."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Έγινε επαναφορά των εργοστ. ρυθμίσ. του tablet. Για να χρησ. το tablet εισαγ. τον προηγ. κωδ. πρόσβ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Έγινε επαναφ. των εργοστ. ρυθμίσ. της συσκευής. Για να χρησ. τη συσκ. εισαγ. τον προηγ. κωδ. πρόσβ."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Το τηλέφωνό σας μπορεί να φορτίζει αργά ή να μην φορτίζει. Για πιο γρήγορη φόρτιση, χρησιμοποιήστε ένα προτεινόμενο καλώδιο και μετασχηματιστή."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Η συσκευή σας μπορεί να φορτίζει αργά ή να μην φορτίζει. Για πιο γρήγορη φόρτιση, χρησιμοποιήστε ένα προτεινόμενο καλώδιο και μετασχηματιστή."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Το tablet σας μπορεί να φορτίζει αργά ή να μην φορτίζει. Για πιο γρήγορη φόρτιση, χρησιμοποιήστε ένα προτεινόμενο καλώδιο και μετασχηματιστή."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Χωρίς να ξεκλειδώσετε το τηλέφωνό σας"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Χωρίς να ξεκλειδώσετε το tablet σας"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Όταν μετακινείτε το τηλέφωνο σε κατακόρυφο ή οριζόντιο προσανατολισμό"</string>
diff --git a/res-product/values-en-rAU/strings.xml b/res-product/values-en-rAU/strings.xml
index 6a2b50d..a22553a 100644
--- a/res-product/values-en-rAU/strings.xml
+++ b/res-product/values-en-rAU/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Your phone may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Your device may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Your tablet may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
diff --git a/res-product/values-en-rGB/strings.xml b/res-product/values-en-rGB/strings.xml
index 5f7cd7b..6e2f89f 100644
--- a/res-product/values-en-rGB/strings.xml
+++ b/res-product/values-en-rGB/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Your phone may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Your device may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Your tablet may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
diff --git a/res-product/values-en-rIN/strings.xml b/res-product/values-en-rIN/strings.xml
index 5f7cd7b..6e2f89f 100644
--- a/res-product/values-en-rIN/strings.xml
+++ b/res-product/values-en-rIN/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Your phone may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Your device may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Your tablet may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
diff --git a/res-product/values-es-rUS/strings.xml b/res-product/values-es-rUS/strings.xml
index ddbb0fc..c0b27c0 100644
--- a/res-product/values-es-rUS/strings.xml
+++ b/res-product/values-es-rUS/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Configuración de fábrica restablecida. Para usar este teléfono, ingresa la contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Configuración de fábrica restablecida. Para usar esta tablet, ingresa la contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Configuración de fábrica restablecida. Para usar el dispositivo, ingresa la contraseña anterior."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Es posible que tu teléfono se esté cargando lentamente o no se esté cargando. Para una carga más rápida, usa un cable y un adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Es posible que tu dispositivo se esté cargando lentamente o no se esté cargando. Para una carga más rápida, usa un cable y un adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Es posible que tu tablet se esté cargando lentamente o no se esté cargando. Para una carga más rápida, usa un cable y un adaptador recomendados."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sin desbloquear tu teléfono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sin desbloquear tu tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Cuando muevas el teléfono entre el modo vertical y el horizontal"</string>
diff --git a/res-product/values-es/strings.xml b/res-product/values-es/strings.xml
index 81ab874..657202b 100644
--- a/res-product/values-es/strings.xml
+++ b/res-product/values-es/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ajustes de fábrica del teléfono restablecidos. Para usarlo, introduce tu contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Ajustes de fábrica de la tablet restablecidos. Para usarla, introduce tu contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Ajustes de fábrica del dispositivo restablecidos. Para usarlo, introduce tu contraseña anterior."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Es posible que el teléfono se esté cargando muy lentamente o no se esté cargando. Para que se cargue más rápido, usa un cable y un adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Es posible que el dispositivo se esté cargando muy lentamente o no se esté cargando. Para que se cargue más rápido, usa un cable y un adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Es posible que la tablet se esté cargando muy lentamente o no se esté cargando. Para que se cargue más rápido, usa un cable y un adaptador recomendados."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sin desbloquear tu teléfono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sin desbloquear tu tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Cuando cambias el teléfono entre vertical y horizontal"</string>
diff --git a/res-product/values-et/strings.xml b/res-product/values-et/strings.xml
index e141b84..d0881ee 100644
--- a/res-product/values-et/strings.xml
+++ b/res-product/values-et/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon lähtestati tehaseseadetele. Telefoni kasutamiseks sisestage oma eelmine parool."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tahvelarvuti lähtestati tehaseseadetele. Tahvelarvuti kasutamiseks sisestage oma eelmine parool."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Seade lähtestati tehaseseadetele. Seadme kasutamiseks sisestage oma eelmine parool."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Teie telefoni võidakse laadida aeglaselt või üldse mitte. Kiiremaks laadimiseks kasutage soovitatavat kaablit ja adapterit."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Teie seadet võidakse laadida aeglaselt või üldse mitte. Kiiremaks laadimiseks kasutage soovitatavat kaablit ja adapterit."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Teie tahvelarvutit võidakse laadida aeglaselt või üldse mitte. Kiiremaks laadimiseks kasutage soovitatavat kaablit ja adapterit."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Ilma telefoni avamata"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Ilma tahvelarvutit avamata"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Liigutades telefoni vertikaal- ja horisontaalrežiimi vahel"</string>
diff --git a/res-product/values-eu/strings.xml b/res-product/values-eu/strings.xml
index a91b9b6..e74a624 100644
--- a/res-product/values-eu/strings.xml
+++ b/res-product/values-eu/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonoaren jatorrizko ezarpenak berrezarri dira. Telefonoa erabiltzeko, idatzi aurreko pasahitza."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tabletaren jatorrizko ezarpenak berrezarri dira. Tableta erabiltzeko, idatzi aurreko pasahitza."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Gailuaren jatorrizko ezarpenak berrezarri dira. Gailua erabiltzeko, idatzi aurreko pasahitza."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Agian telefonoa ez da kargatzen ari edo oso mantso kargatzen ari da. Bizkorrago karga dadin, erabili gomendatutako egokigailu bat eta kable bat."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Agian gailua ez da kargatzen ari edo oso mantso kargatzen ari da. Bizkorrago karga dadin, erabili gomendatutako egokigailu bat eta kable bat."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Agian tableta ez da kargatzen ari edo oso mantso kargatzen ari da. Bizkorrago karga dadin, erabili gomendatutako egokigailu bat eta kable bat."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefonoa desblokeatu gabe"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tableta desblokeatu gabe"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefonoaren pantailaren orientazioa bertikaletik horizontalera, eta alderantziz, aldatzen duzunean"</string>
diff --git a/res-product/values-fa/strings.xml b/res-product/values-fa/strings.xml
index ad77798..cd7a52f 100644
--- a/res-product/values-fa/strings.xml
+++ b/res-product/values-fa/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"تلفن به تنظیمات کارخانه بازنشانی شده است. برای استفاده از این تلفن، گذرواژه قبلی را وارد کنید."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"رایانه لوحی به تنظیمات کارخانه بازنشانی شده است. برای استفاده از این رایانه لوحی، گذرواژه قبلی را وارد کنید."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"دستگاه به تنظیمات کارخانه بازنشانی شده است. برای استفاده از این دستگاه، گذرواژه قبلی را وارد کنید."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ممکن است تلفن شارژ نشود یا سرعت شارژ کم باشد. برای شارژ سریع‌تر، از کابل و آداپتور توصیه‌شده استفاده کنید."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ممکن است دستگاه شارژ نشود یا سرعت شارژ کم باشد. برای شارژ سریع‌تر، از کابل و آداپتور توصیه‌شده استفاده کنید."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ممکن است رایانه لوحی شارژ نشود یا سرعت شارژ کم باشد. برای شارژ سریع‌تر، از کابل و آداپتور توصیه‌شده استفاده کنید."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"بدون باز کردن قفل تلفن"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"بدون باز کردن قفل رایانه لوحی"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"وقتی تلفن را بین حالت افقی و عمودی جابه‌جا می‌کنید"</string>
diff --git a/res-product/values-fi/strings.xml b/res-product/values-fi/strings.xml
index 49aaa93..3d93665 100644
--- a/res-product/values-fi/strings.xml
+++ b/res-product/values-fi/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Puhelimen laiteasetukset palautettiin. Jos haluat käyttää tätä puhelinta, lisää aiempi salasana."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tabletin tehdasasetukset palautettiin. Käytä tablettia lisäämällä aiempi salasana."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Laitteen tehdasasetukset palautettiin. Käytä laitetta lisäämällä aiempi salasana."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Puhelin saattaa latautua hitaasti tai ei lainkaan. Käytä suositeltua johtoa ja laturia, jotta akku latautuu nopeammin."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Laite saattaa latautua hitaasti tai ei lainkaan. Käytä suositeltua johtoa ja laturia, jotta akku latautuu nopeammin."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tabletti saattaa latautua hitaasti tai ei lainkaan. Käytä suositeltua johtoa ja laturia, jotta akku latautuu nopeammin."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Avaamatta puhelimen lukitusta"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Avaamatta tabletin lukitusta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kun käännät puhelimen pysty- tai vaaka-asentoon"</string>
diff --git a/res-product/values-fr-rCA/strings.xml b/res-product/values-fr-rCA/strings.xml
index aa23b80..5f55424 100644
--- a/res-product/values-fr-rCA/strings.xml
+++ b/res-product/values-fr-rCA/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Téléphone réinitialisé aux paramètres par défaut Pour l\'utiliser, entrez votre ancien mot de passe."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablette réinitialisée aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Appareil réinitialisé aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Votre téléphone pourrait se recharger lentement ou ne pas se recharger. Pour une recharge plus rapide, utilisez un adaptateur et un câble recommandés."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Votre appareil pourrait se recharger lentement ou ne pas se recharger. Pour une recharge plus rapide, utilisez un adaptateur et un câble recommandés."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Votre tablette pourrait se recharger lentement ou ne pas se recharger. Pour une recharge plus rapide, utilisez un adaptateur et un câble recommandés."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sans déverrouiller votre téléphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sans déverrouiller votre tablette"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Lorsque vous orientez votre téléphone entre les modes portrait et paysage"</string>
diff --git a/res-product/values-fr/strings.xml b/res-product/values-fr/strings.xml
index 222d414..07d19e3 100644
--- a/res-product/values-fr/strings.xml
+++ b/res-product/values-fr/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Configuration d\'usine du téléphone rétablie. Pour l\'utiliser, saisissez votre mot passe précédent."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Configuration d\'usine de la tablette rétablie. Pour l\'utiliser, saisissez le mot de passe précédent."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Configuration d\'usine de l\'appareil rétablie. Pour l\'utiliser, saisissez le mot de passe précédent."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Votre téléphone se recharge peut-être lentement ou pas du tout. Pour une recharge plus rapide, utilisez un câble et un adaptateur recommandés."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Votre appareil se recharge peut-être lentement ou pas du tout. Pour une recharge plus rapide, utilisez un câble et un adaptateur recommandés."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Votre tablette se recharge peut-être lentement ou pas du tout. Pour une recharge plus rapide, utilisez un câble et un adaptateur recommandés."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sans déverrouiller votre téléphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sans déverrouiller votre tablette"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quand vous basculez votre téléphone en mode portrait ou paysage"</string>
diff --git a/res-product/values-gl/strings.xml b/res-product/values-gl/strings.xml
index b3bbcc4..62c14dc 100644
--- a/res-product/values-gl/strings.xml
+++ b/res-product/values-gl/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Restableceuse a configuración de fábrica do teléfono. Para usalo, pon o contrasinal anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Restableceuse a configuración de fábrica da tableta. Para usala, pon o contrasinal anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Restableceuse a configuración de fábrica do dispositivo. Para usalo, pon o contrasinal anterior."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"É posible que o teu teléfono estea cargando lentamente ou non cargue. Para acelerar a carga, usa un adaptador e un cable recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"É posible que o teu dispositivo estea cargando lentamente ou non cargue. Para acelerar a carga, usa un adaptador e un cable recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"É posible que a túa tableta estea cargando lentamente ou non cargue. Para acelerar a carga, usa un adaptador e un cable recomendados."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sen desbloquear o teléfono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sen desbloquear a tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ao cambiar o teléfono do modo vertical ao horizontal"</string>
diff --git a/res-product/values-gu/strings.xml b/res-product/values-gu/strings.xml
index b741021..19edabe 100644
--- a/res-product/values-gu/strings.xml
+++ b/res-product/values-gu/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ફોન ફેક્ટરી સેટિંગ પર રીસેટ કરવામાં આવ્યો છે. આ ફોનનો ઉપયોગ કરવા માટે તમારો અગાઉનો પાસવર્ડ દાખલ કરો."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"તમારું ટૅબ્લેટ ફેક્ટરી સેટિંગ પર રીસેટ કરાયું છે. આ ટૅબ્લેટનો ઉપયોગ કરવા, તમારો અગાઉનો પાસવર્ડ દાખલ કરો."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"તમારું ડિવાઇસ ફેક્ટરી સેટિંગ પર રીસેટ કરાયું છે. આ ડિવાઇસનો ઉપયોગ કરવા, અગાઉનો પાસવર્ડ દાખલ કરો."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"તમારો ફોન ધીમે ચાર્જ થઈ રહ્યો હોય અથવા ચાર્જ ન થઈ રહ્યો હોય એવું બની શકે છે. વધુ ઝડપી ચાર્જિંગ માટે, સુઝાવ આપેલા કેબલ અને અડૅપ્ટરનો ઉપયોગ કરો."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"તમારું ડિવાઇસ ધીમે ચાર્જ થઈ રહ્યું હોય અથવા ચાર્જ ન થઈ રહ્યું હોય એવું બની શકે છે. વધુ ઝડપી ચાર્જિંગ માટે, સુઝાવ આપેલા કેબલ અને અડૅપ્ટરનો ઉપયોગ કરો."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"તમારું ટૅબ્લેટ ધીમે ચાર્જ થઈ રહ્યું હોય અથવા ચાર્જ ન થઈ રહ્યું હોય એવું બની શકે છે. વધુ ઝડપી ચાર્જિંગ માટે, સુઝાવ આપેલા કેબલ અને અડૅપ્ટરનો ઉપયોગ કરો."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"તમારો ફોન અનલૉક કર્યા વિના"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"તમારું ટૅબ્લેટ અનલૉક કર્યા વિના"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"તમારા ફોનને પોર્ટ્રેટ અને લૅન્ડસ્કેપ વચ્ચેની સ્થિતિમાં ખસેડતી વખતે"</string>
diff --git a/res-product/values-hi/strings.xml b/res-product/values-hi/strings.xml
index 305deda..f44ecad 100644
--- a/res-product/values-hi/strings.xml
+++ b/res-product/values-hi/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"आपका फ़ोन, फ़ैक्ट्री सेटिंग पर रीसेट किया गया था. इस फ़ोन को चलाने के लिए, पिछला पासवर्ड डालें."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"आपका टैबलेट, फ़ैक्ट्री सेटिंग पर रीसेट किया गया था. इस टैबलेट को चलाने के लिए, पिछला पासवर्ड डालें."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"आपका डिवाइस, फ़ैक्ट्री सेटिंग पर रीसेट किया गया था. इस डिवाइस को चलाने के लिए, पिछला पासवर्ड डालें."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ऐसा हो सकता है कि आपका फ़ोन धीरे चार्ज हो रहा हो या चार्ज न हो रहा हो. इसे फ़ास्ट चार्ज करने के लिए, सुझाए गए अडैप्टर और केबल का इस्तेमाल करें."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ऐसा हो सकता है कि आपका डिवाइस धीरे चार्ज हो रहा हो या चार्ज न हो रहा हो. इसे फ़ास्ट चार्ज करने के लिए, सुझाए गए अडैप्टर और केबल का इस्तेमाल करें."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ऐसा हो सकता है कि आपका टैबलेट धीरे चार्ज हो रहा हो या चार्ज न हो रहा हो. इसे फ़ास्ट चार्ज करने के लिए, सुझाए गए अडैप्टर और केबल का इस्तेमाल करें."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"फ़ोन अनलॉक किए बिना"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"टैबलेट अनलॉक किए बिना"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"फ़ोन को पोर्ट्रेट से लैंडस्केप मोड में स्विच करने पर, स्क्रीन अपने-आप घूम जाएगी"</string>
diff --git a/res-product/values-hr/strings.xml b/res-product/values-hr/strings.xml
index 0f9c3b5..17b8612 100644
--- a/res-product/values-hr/strings.xml
+++ b/res-product/values-hr/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je vraćen na tvorničke postavke. Da biste ga koristili, unesite prethodnu zaporku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet je vraćen na tvorničke postavke. Da biste ga koristili, unesite prethodnu zaporku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Uređaj je vraćen na tvorničke postavke. Da biste ga koristili, unesite prethodnu zaporku."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon se možda sporo puni ili se ne puni. Za brže punjenje upotrijebite preporučeni kabel i pretvarač napona."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Uređaj se možda sporo puni ili se ne puni. Za brže punjenje upotrijebite preporučeni kabel i pretvarač napona."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet se možda sporo puni ili se ne puni. Za brže punjenje upotrijebite preporučeni kabel i pretvarač napona."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez otključavanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez otključavanja tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kad izmjenjujete prikaz zaslona telefona između okomitog i vodoravnog"</string>
diff --git a/res-product/values-hu/strings.xml b/res-product/values-hu/strings.xml
index ccf1caf..1f7f7db 100644
--- a/res-product/values-hu/strings.xml
+++ b/res-product/values-hu/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"A telefon gyári beállításai visszaállítva. A telefon használatához adja meg az előző jelszavát."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"A táblagép gyári beállításai visszaállítva. A táblagép használatához adja meg az előző jelszavát."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Az eszköz gyári beállításai visszaállítva. Az eszköz használatához adja meg az előző jelszavát."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Előfordulhat, hogy telefonja lassan vagy egyáltalán nem tölt. A gyorsabb töltéshez használjon ajánlott kábelt és adaptert."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Előfordulhat, hogy eszköze lassan vagy egyáltalán nem tölt. A gyorsabb töltéshez használjon ajánlott kábelt és adaptert."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Előfordulhat, hogy táblagépe lassan vagy egyáltalán nem tölt. A gyorsabb töltéshez használjon ajánlott kábelt és adaptert."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"A telefon zárolásának feloldása nélkül"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"A táblagép zárolásának feloldása nélkül"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Amikor Ön álló vagy fekvő helyzetbe fordítja a telefont"</string>
diff --git a/res-product/values-hy/strings.xml b/res-product/values-hy/strings.xml
index b4d081f..6861e6a 100644
--- a/res-product/values-hy/strings.xml
+++ b/res-product/values-hy/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ձեր հեռախոսում վերականգնվել են գործարանային կարգավորումները։ Մուտքագրեք ձեր նախորդ գաղտնաբառը։"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Ձեր պլանշետում վերականգնվել են գործարանային կարգավորումները։ Մուտքագրեք ձեր նախորդ գաղտնաբառը։"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Ձեր սարքում վերականգնվել են գործարանային կարգավորումները։ Մուտքագրեք ձեր նախորդ գաղտնաբառը։"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Ձեր հեռախոսը կարող է դանդաղ լիցքավորվել կամ ընդհանրապես չլիցքավորվել։ Արագ լիցքավորման համար օգտագործեք խորհուրդ տրվող մալուխը և ադապտերը։"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Ձեր սարքը կարող է դանդաղ լիցքավորվել կամ ընդհանրապես չլիցքավորվել։ Արագ լիցքավորման համար օգտագործեք խորհուրդ տրվող մալուխը և ադապտերը։"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Ձեր պլանշետը կարող է դանդաղ լիցքավորվել կամ ընդհանրապես չլիցքավորվել։ Արագ լիցքավորման համար օգտագործեք խորհուրդ տրվող մալուխը և ադապտերը։"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Առանց հեռախոսն ապակողպելու"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Առանց պլանշետն ապակողպելու"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Փոխել էկրանի դիրքը ուղղաձիգի/հորիզոնականի՝ հեռախոսը պտտելիս"</string>
diff --git a/res-product/values-in/strings.xml b/res-product/values-in/strings.xml
index 202863b..295916c 100644
--- a/res-product/values-in/strings.xml
+++ b/res-product/values-in/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ponsel direset ke setelan pabrik. Untuk menggunakan ponsel ini, masukkan sandi sebelumnya."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet direset ke setelan pabrik. Untuk menggunakan tablet ini, masukkan sandi sebelumnya."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Perangkat direset ke setelan pabrik. Untuk menggunakan perangkat ini, masukkan sandi sebelumnya."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Ponsel Anda mungkin mengisi daya lambat atau tidak mengisi daya. Untuk mengisi daya lebih cepat, gunakan kabel dan adaptor yang direkomendasikan."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Perangkat Anda mungkin mengisi daya lambat atau tidak mengisi daya. Untuk mengisi daya lebih cepat, gunakan kabel dan adaptor yang direkomendasikan."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet Anda mungkin mengisi daya lambat atau tidak mengisi daya. Untuk mengisi daya lebih cepat, gunakan kabel dan adaptor yang direkomendasikan."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Tanpa membuka kunci ponsel Anda"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tanpa membuka kunci tablet Anda"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Saat Anda berganti mode ponsel antara potret dan lanskap"</string>
diff --git a/res-product/values-is/strings.xml b/res-product/values-is/strings.xml
index d826f66..4324989 100644
--- a/res-product/values-is/strings.xml
+++ b/res-product/values-is/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Síminn var núllstilltur. Til að nota símann skaltu slá inn fyrra aðgangsorð."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Spjaldtölvan var núllstillt. Til að nota spjaldtölvuna skaltu slá inn fyrra aðgangsorð."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Tækið var núllstillt. Til að nota tækið skaltu slá inn fyrra aðgangsorð."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Síminn þinn hleðst hugsanlega hægt eða hleðst ekki. Notaðu straumbreyti og snúru sem mælt er með til að hlaða hraðar."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Tækið þitt hleðst hugsanlega hægt eða hleðst ekki. Notaðu straumbreyti og snúru sem mælt er með til að hlaða hraðar."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Spjaldtölvan þín hleðst hugsanlega hægt eða hleðst ekki. Notaðu straumbreyti og snúru sem mælt er með til að hlaða hraðar."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Án þess að taka símann úr lás"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Án þess að taka spjaldtölvuna úr lás"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Þegar þú skiptir á milli skammsniðs og langsniðs í símanum"</string>
diff --git a/res-product/values-it/strings.xml b/res-product/values-it/strings.xml
index a60cc7a..a0c622c 100644
--- a/res-product/values-it/strings.xml
+++ b/res-product/values-it/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Impostazioni di fabbrica ripristinate. Per usare il telefono, inserisci la password precedente."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Impostazioni di fabbrica ripristinate. Per usare il tablet, inserisci la password precedente."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Impostazioni di fabbrica ripristinate. Per usare il dispositivo, inserisci la password precedente."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Lo smartphone potrebbe ricaricarsi lentamente o non ricaricarsi affatto. Per velocizzare la ricarica, usa un cavo e un alimentatore consigliati."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Il dispositivo potrebbe ricaricarsi lentamente o non ricaricarsi affatto. Per velocizzare la ricarica, usa un cavo e un alimentatore consigliati."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Il tablet potrebbe ricaricarsi lentamente o non ricaricarsi affatto. Per velocizzare la ricarica, usa un cavo e un alimentatore consigliati."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Senza sbloccare il telefono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Senza sbloccare il tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quando ruoti il telefono in orizzontale e verticale"</string>
diff --git a/res-product/values-iw/strings.xml b/res-product/values-iw/strings.xml
index 890dc33..f7b1b4e 100644
--- a/res-product/values-iw/strings.xml
+++ b/res-product/values-iw/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"הטלפון שלך עבר איפוס להגדרות המקוריות. כדי להשתמש בטלפון הזה, יש להזין את הסיסמה הקודמת."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"הטאבלט שלך עבר איפוס להגדרות המקוריות. כדי להשתמש בטאבלט הזה, יש להזין את הסיסמה הקודמת."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"המכשיר שלך עבר איפוס להגדרות המקוריות. כדי להשתמש במכשיר הזה, יש להזין את הסיסמה הקודמת."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"יכול להיות שהטלפון נטען לאט או לא נטען. לטעינה מהירה יותר, כדאי להשתמש במתאם ובכבל מומלצים."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"יכול להיות שהמכשיר נטען לאט או לא נטען. לטעינה מהירה יותר, כדאי להשתמש במתאם ובכבל מומלצים."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"יכול להיות שהטאבלט נטען לאט או לא נטען. לטעינה מהירה יותר, כדאי להשתמש במתאם ובכבל מומלצים."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"בלי לבטל את נעילת הטלפון"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"בלי לבטל את נעילת הטאבלט"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"כשמזיזים את הטלפון ממצב \'לאורך\' למצב \'לרוחב\' ולהפך"</string>
diff --git a/res-product/values-ja/strings.xml b/res-product/values-ja/strings.xml
index cb08c13..32e2a3e 100644
--- a/res-product/values-ja/strings.xml
+++ b/res-product/values-ja/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"スマートフォンは出荷時の設定にリセットされました。使用するには、以前のパスワードを入力してください。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"タブレットは出荷時の設定にリセットされました。使用するには、以前のパスワードを入力してください。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"デバイスは出荷時の設定にリセットされました。使用するには、以前のパスワードを入力してください。"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"スマートフォンのバッテリーが充電されていないか、充電に非常に時間がかかっています。充電時間を短くするには、推奨されるケーブルとアダプターを使用してください。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"デバイスのバッテリーが充電されていないか、充電に非常に時間がかかっています。充電時間を短くするには、推奨されるケーブルとアダプターを使用してください。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"タブレットのバッテリーが充電されていないか、充電に非常に時間がかかっています。充電時間を短くするには、推奨されるケーブルとアダプターを使用してください。"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"スマートフォンのロックを解除せずに操作"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"タブレットのロックを解除せずに操作"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"スマートフォンを動かして縦向きと横向きを切り替えたとき"</string>
diff --git a/res-product/values-ka/strings.xml b/res-product/values-ka/strings.xml
index 6a93bec..aa1b099 100644
--- a/res-product/values-ka/strings.xml
+++ b/res-product/values-ka/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"თქვენი ტელეფონი დაბრუნდა ქარხნულ პარამეტრებზე. ამ ტელეფონის გამოსაყენებლად, შეიყვანეთ თქვენი წინა პაროლი."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"თქვენი ტაბლეტი დაბრუნდა ქარხნულ პარამეტრებზე. ამ ტაბლეტის გამოსაყენებლად შეიყვანეთ თქვენი წინა პაროლი."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"თქვენი მოწყობილობა დაბრუნდა ქარხნულ პარამეტრებზე. ამ მოწყობილობის გამოსაყენებლად შეიყვანეთ თქვენი წინა პაროლი."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"თქვენი ტელეფონი შესაძლოა ნელა ან საერთოდ არ იტენებოდეს. უფრო სწრაფად დატენვისთვის გამოიყენეთ რეკომენდებული კაბელი და ადაპტერი."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"თქვენი მოწყობილობა შესაძლოა ნელა ან საერთოდ არ იტენებოდეს. უფრო სწრაფად დატენვისთვის გამოიყენეთ რეკომენდებული კაბელი და ადაპტერი."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"თქვენი ტაბლეტი შესაძლოა ნელა ან საერთოდ არ იტენებოდეს. უფრო სწრაფად დატენვისთვის გამოიყენეთ რეკომენდებული კაბელი და ადაპტერი."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"თქვენი ტელეფონის განბლოკვის გარეშე"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"თქვენი ტაბლეტის განბლოკვის გარეშე"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"როცა ტელეფონი პორტრეტის რეჟიმიდან პეიზაჟის რეჟიმზე გადაგყავთ"</string>
diff --git a/res-product/values-km/strings.xml b/res-product/values-km/strings.xml
index 6017a7d..4186609 100644
--- a/res-product/values-km/strings.xml
+++ b/res-product/values-km/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ទូរសព្ទរបស់អ្នក​ត្រូវបានកំណត់ឡើងវិញ​ដូចចេញពីរោងចក្រ។ ដើម្បីប្រើទូរសព្ទនេះ សូមបញ្ចូល​ពាក្យសម្ងាត់មុន​របស់អ្នក។"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ថេប្លេតរបស់អ្នកត្រូវបានកំណត់ឡើងវិញទៅការកំណត់ដូចចេញពីរោងចក្រ។ ដើម្បីប្រើថេប្លេតនេះ សូមបញ្ចូលពាក្យសម្ងាត់ពីមុនរបស់អ្នក។"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ឧបករណ៍របស់អ្នកត្រូវបានកំណត់ឡើងវិញទៅការកំណត់ដូចចេញពីរោងចក្រ។ ដើម្បីប្រើឧបករណ៍នេះ សូមបញ្ចូលពាក្យសម្ងាត់ពីមុនរបស់អ្នក។"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ទូរសព្ទរបស់អ្នកអាចនឹងសាកថ្មយឺត ឬមិនសាក។ សម្រាប់ការសាកថ្មរហ័ស សូមប្រើខ្សែ និងអាដាប់ទ័រតាមការណែនាំ។"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ឧបករណ៍របស់អ្នកអាច​នឹងសាកថ្មយឺត ឬមិនសាក។ សម្រាប់ការសាកថ្មរហ័ស សូមប្រើខ្សែ និងអាដាប់ទ័រតាមការណែនាំ។"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ថេប្លេតរបស់អ្នកអាចនឹងសាកថ្មយឺត ឬមិនសាក។ សម្រាប់ការសាកថ្មរហ័ស សូមប្រើខ្សែ និងអាដាប់ទ័រតាមការណែនាំ។"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ដោយមិនចាំបាច់​ដោះសោ​ទូរសព្ទរបស់អ្នក"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ដោយមិនចាំបាច់​ដោះសោ​ថេប្លេតរបស់អ្នក"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"នៅពេលដែល​អ្នកដាក់​ទូរសព្ទ​របស់អ្នកឱ្យ​បញ្ឈរ និងផ្ដេក"</string>
diff --git a/res-product/values-kn/strings.xml b/res-product/values-kn/strings.xml
index efdea33..9df074a 100644
--- a/res-product/values-kn/strings.xml
+++ b/res-product/values-kn/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ನಿಮ್ಮ ಫೋನ್‌ ಅನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈ ಫೋನ್‌ ಬಳಸಲು, ನಿಮ್ಮ ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಬಳಸಲು, ನಿಮ್ಮ ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈ ಸಾಧನವನ್ನು ಬಳಸಲು, ನಿಮ್ಮ ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ನಿಮ್ಮ ಫೋನ್ ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿರಬಹುದು ಅಥವಾ ಚಾರ್ಜ್ ಆಗದೇ ಇರಬಹುದು. ವೇಗವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಲು, ಶಿಫಾರಸು ಮಾಡಲಾದ ಕೇಬಲ್ ಮತ್ತು ಅಡಾಪ್ಟರ್ ಅನ್ನು ಬಳಸಿ."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ನಿಮ್ಮ ಸಾಧನವು ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿರಬಹುದು ಅಥವಾ ಚಾರ್ಜ್ ಆಗದೇ ಇರಬಹುದು. ವೇಗವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಲು, ಶಿಫಾರಸು ಮಾಡಲಾದ ಕೇಬಲ್ ಮತ್ತು ಅಡಾಪ್ಟರ್ ಅನ್ನು ಬಳಸಿ."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿರಬಹುದು ಅಥವಾ ಚಾರ್ಜ್ ಆಗದೇ ಇರಬಹುದು. ವೇಗವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಲು, ಶಿಫಾರಸು ಮಾಡಲಾದ ಕೇಬಲ್ ಮತ್ತು ಅಡಾಪ್ಟರ್ ಅನ್ನು ಬಳಸಿ."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡದೆಯೇ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್‌‌ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡದೆಯೇ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ಫೋನ್ ಅನ್ನು ಪೋರ್ಟ್ರೇಟ್ ಹಾಗೂ ಲ್ಯಾಂಡ್‌ಸ್ಕೇಪ್ ನಡುವೆ ಬದಲಾಯಿಸಿದಾಗ"</string>
diff --git a/res-product/values-ko/strings.xml b/res-product/values-ko/strings.xml
index c4b50fe..24346a6 100644
--- a/res-product/values-ko/strings.xml
+++ b/res-product/values-ko/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"휴대전화가 기본 설정으로 초기화되었습니다. 이 휴대전화를 사용하려면 이전 비밀번호를 입력하세요."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"태블릿이 기본 설정으로 초기화되었습니다. 이 태블릿을 사용하려면 이전 비밀번호를 입력하세요."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"기기가 기본 설정으로 초기화되었습니다. 이 기기를 사용하려면 이전 비밀번호를 입력하세요."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"휴대전화가 느리게 충전되거나 충전이 되지 않을 수 있습니다. 더 빠르게 충전하려면 권장되는 케이블과 어댑터를 사용하세요."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"기기가 느리게 충전되거나 충전이 되지 않을 수 있습니다. 더 빠르게 충전하려면 권장되는 케이블과 어댑터를 사용하세요."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"태블릿이 느리게 충전되거나 충전이 되지 않을 수 있습니다. 더 빠르게 충전하려면 권장되는 케이블과 어댑터를 사용하세요."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"휴대전화를 잠금 해제하지 않은 채 사용"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"태블릿을 잠금 해제하지 않은 채 사용"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"휴대전화를 가로 또는 세로로 움직이면 자동으로 방향 전환"</string>
diff --git a/res-product/values-ky/strings.xml b/res-product/values-ky/strings.xml
index 39b0e99..f394bfd 100644
--- a/res-product/values-ky/strings.xml
+++ b/res-product/values-ky/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефонуңуз демейки параметрлерге кайтарылды. Аны колдонуу үчүн мурунку сырсөзүңүздү киргизиңиз."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Планшет демейки параметрлерге кайтарылды. Аны колдонуу үчүн мурунку сырсөзүңүздү киргизиңиз."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Түзмөк демейки параметрлерге кайтарылды. Аны колдонуу үчүн мурунку сырсөзүңүздү киргизиңиз."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Телефонуңуз жай кубатталып же такыр кубатталбай жаткан болушу мүмкүн. Тезирээк кубаттоо үчүн сунушталган кабелди жана адаптерди колдонуңуз."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Түзмөгүңүз жай кубатталып же такыр кубатталбай жаткан болушу мүмкүн. Тезирээк кубаттоо үчүн сунушталган кабелди жана адаптерди колдонуңуз."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Планшетиңиз жай кубатталып же такыр кубатталбай жаткан болушу мүмкүн. Тезирээк кубаттоо үчүн сунушталган кабелди жана адаптерди колдонуңуз."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Телефонуңуздун кулпусун ачпай туруп"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Планшетиңиздин кулпусун ачпай туруп"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Телефонду тигинен же туурасынан кармаганда"</string>
diff --git a/res-product/values-lo/strings.xml b/res-product/values-lo/strings.xml
index 5acf2a8..b40518f 100644
--- a/res-product/values-lo/strings.xml
+++ b/res-product/values-lo/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ໂທລະສັບຂອງທ່ານຖືກຣີເຊັດເປັນຄ່າຈາກໂຮງງານແລ້ວ. ເພື່ອໃຊ້ໂທລະສັບນີ້, ໃຫ້ໃສ່ລະຫັດຜ່ານກ່ອນໜ້າຂອງທ່ານ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ແທັບເລັດຂອງທ່ານບໍ່ໄດ້ຖືກຣີເຊັດເປັນຄ່າຈາກໂຮງງານ. ເພື່ອໃຊ້ແທັບເລັດນີ້, ໃຫ້ໃສ່ລະຫັດຜ່ານກ່ອນໜ້າຂອງທ່ານ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ອຸປະກອນຂອງທ່ານບໍ່ໄດ້ຖືກຣີເຊັດເປັນຄ່າຈາກໂຮງງານ. ເພື່ອໃຊ້ອຸປະກອນນີ້, ໃຫ້ໃສ່ລະຫັດຜ່ານກ່ອນໜ້າຂອງທ່ານ."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ໂທລະສັບຂອງທ່ານອາດສາກຢ່າງຊ້າໆ ຫຼື ບໍ່ສາກ. ເພື່ອການສາກທີ່ໄວຂຶ້ນ, ໃຫ້ໃຊ້ສາຍ ແລະ ຫົວສາກທີ່ແນະນຳໃຫ້."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ອຸປະກອນຂອງທ່ານອາດສາກຢ່າງຊ້າໆ ຫຼື ບໍ່ສາກ. ເພື່ອການສາກທີ່ໄວຂຶ້ນ, ໃຫ້ໃຊ້ສາຍ ແລະ ຫົວສາກທີ່ແນະນຳໃຫ້."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ແທັບເລັດຂອງທ່ານອາດສາກຢ່າງຊ້າໆ ຫຼື ບໍ່ສາກ. ເພື່ອການສາກທີ່ໄວຂຶ້ນ, ໃຫ້ໃຊ້ສາຍ ແລະ ຫົວສາກທີ່ແນະນຳໃຫ້."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ໂດຍບໍ່ຕ້ອງປົດລັອກໂທລະສັບຂອງທ່ານ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ໂດຍບໍ່ຕ້ອງປົດລັອກແທັບເລັດຂອງທ່ານ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ເມື່ອທ່ານປິ່ນໂທລະສັບຂອງທ່ານໄປມາລະຫວ່າງແນວຕັ້ງ ແລະ ແນວນອນ"</string>
diff --git a/res-product/values-lt/strings.xml b/res-product/values-lt/strings.xml
index e909598..9528ae9 100644
--- a/res-product/values-lt/strings.xml
+++ b/res-product/values-lt/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Atkurti gamykliniai telefono nustatymai. Naudokite šį telefoną įvedę ankstesnį slaptažodį."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Atkurti gamykliniai planšetinio kompiuterio nustatymai. Naudokite jį įvedę ankstesnį slaptažodį."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Atkurti gamykliniai įrenginio nustatymai. Naudokite šį įrenginį įvedę ankstesnį slaptažodį."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefonas gali būti įkraunamas lėtai arba neįkraunamas. Kad greičiau įkrautumėte, naudokite rekomenduojamą laidą ir adapterį."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Įrenginys gali būti įkraunamas lėtai arba neįkraunamas. Kad greičiau įkrautumėte, naudokite rekomenduojamą laidą ir adapterį."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Planšetinis kompiuteris gali būti įkraunamas lėtai arba neįkraunamas. Kad greičiau įkrautumėte, naudokite rekomenduojamą laidą ir adapterį."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Neatrakinus telefono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Neatrakinus planšetinio kompiuterio"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kai pasukate telefoną stačiai ar gulsčiai"</string>
diff --git a/res-product/values-lv/strings.xml b/res-product/values-lv/strings.xml
index d2c0c8f..1f064a5 100644
--- a/res-product/values-lv/strings.xml
+++ b/res-product/values-lv/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Tālrunī atiestatīti rūpnīcas iestatījumi. Lai izmantotu tālruni, ievadiet iepriekšējo paroli."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Atiestatīti rūpnīcas iestatījumi. Lai izmantotu šo planšetdatoru, ievadiet iepriekšējo paroli."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Ierīcē atiestatīti rūpnīcas iestatījumi. Lai izmantotu šo ierīci, ievadiet iepriekšējo paroli."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Iespējams, tālruņa uzlāde notiek lēni vai nenotiek nemaz. Lai paātrinātu uzlādi, izmantojiet kādu no ieteiktajiem vadiem un adapteriem."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Iespējams, ierīces uzlāde notiek lēni vai nenotiek nemaz. Lai paātrinātu uzlādi, izmantojiet kādu no ieteiktajiem vadiem un adapteriem."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Iespējams, planšetdatora uzlāde notiek lēni vai nenotiek nemaz. Lai paātrinātu uzlādi, izmantojiet kādu no ieteiktajiem vadiem un adapteriem."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Neatbloķējot tālruni"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Neatbloķējot planšetdatoru"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Pārvietojot tālruni no portreta režīma ainavas režīmā vai otrādi"</string>
diff --git a/res-product/values-mk/strings.xml b/res-product/values-mk/strings.xml
index 08571de..5953ecd 100644
--- a/res-product/values-mk/strings.xml
+++ b/res-product/values-mk/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефонот беше ресетиран на фабрички поставки. За да го користите, внесете ја претходната лозинка."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Таблетот беше ресетиран на фабрички поставки. За да го користите, внесете ја претходната лозинка."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Уредот беше ресетиран на фабрички поставки. За да го користите, внесете ја претходната лозинка."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Можеби вашиот телефон се полни бавно или не се полни. За побрзо полнење, користете препорачан кабел и адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Можеби вашиот уред се полни бавно или не се полни. За побрзо полнење, користете препорачан кабел и адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Можеби вашиот таблет се полни бавно или не се полни. За побрзо полнење, користете препорачан кабел и адаптер."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без да го отклучите телефонот"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без да го отклучите таблетот"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Менување меѓу портрет и пејзаж кога го движите телефонот"</string>
diff --git a/res-product/values-ml/strings.xml b/res-product/values-ml/strings.xml
index b186854..4e790ef 100644
--- a/res-product/values-ml/strings.xml
+++ b/res-product/values-ml/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ഫാക്‌ടറി ക്രമീകരണത്തിലേക്ക് ഫോൺ റീസെറ്റ് ചെയ്‌തു. ഫോൺ ഉപയോഗിക്കാനായി മുമ്പത്തെ പാസ്‌വേഡ് നൽകുക."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ഫാക്ടറി ക്രമീകരണത്തിലേക്ക് ടാബ്‌ലെറ്റ് റീസെറ്റുചെയ്തു. ഈ ടാബ്‌ലെറ്റ് ഉപയോഗിക്കാൻ മുമ്പത്തെ പാസ്‌വേഡ് നൽകൂ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ഫാക്‌ടറി ക്രമീകരണത്തിലേക്ക് ഉപകരണം റീസെറ്റ് ചെയ്തു. ഈ ഉപകരണം ഉപയോഗിക്കാൻ, മുമ്പത്തെ പാസ്‌വേഡ് നൽകൂ."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"നിങ്ങളുടെ ഫോൺ പതുക്കെയായിരിക്കാം ചാർജ് ചെയ്യുന്നത് അല്ലെങ്കിൽ ചാർജ് ചെയ്യുന്നില്ലായിരിക്കാം. വേഗത്തിലുള്ള ചാർജിംഗിനായി, നിർദ്ദേശിച്ച കേബിളും അഡാപ്റ്ററും ഉപയോഗിക്കുക."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"നിങ്ങളുടെ ഉപകരണം പതുക്കെയായിരിക്കാം ചാർജ് ചെയ്യുന്നത് അല്ലെങ്കിൽ ചാർജ് ചെയ്യുന്നില്ലായിരിക്കാം. വേഗത്തിലുള്ള ചാർജിംഗിനായി, നിർദ്ദേശിച്ച കേബിളും അഡാപ്റ്ററും ഉപയോഗിക്കുക."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് പതുക്കെയായിരിക്കാം ചാർജ് ചെയ്യുന്നത് അല്ലെങ്കിൽ ചാർജ് ചെയ്യുന്നില്ലായിരിക്കാം. വേഗത്തിലുള്ള ചാർജിംഗിനായി, നിർദ്ദേശിച്ച കേബിളും അഡാപ്റ്ററും ഉപയോഗിക്കുക."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യാതെ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് അൺലോക്ക് ചെയ്യാതെ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"പോർട്രെയ്‌റ്റിനും ലാൻഡ്സ്കേപ്പിനും ഇടയിൽ നിങ്ങളുടെ ഫോൺ തിരിക്കുമ്പോൾ"</string>
diff --git a/res-product/values-mn/strings.xml b/res-product/values-mn/strings.xml
index 7b54dd4..e306cc9 100644
--- a/res-product/values-mn/strings.xml
+++ b/res-product/values-mn/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Таны утсыг үйлдвэрийн тохиргоонд шинэчилсэн. Энэ утсыг ашиглахын тулд өмнөх нууц үгээ оруулна уу."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Таны таблетыг үйлдвэрийн тохиргоонд шинэчилсэн. Өмнөх нууц үгээ оруулж энэ таблетыг ашиглана уу."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Таны төхөөрөмжийг үйлдвэрийн тохиргоонд шинэчилсэн. Өмнөх нууц үгээ оруулж төхөөрөмжийг ашиглана уу."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Таны утас удаан цэнэглэгдэж эсвэл цэнэглэгдээгүй байж магадгүй. Илүү шуурхай цэнэглэхийн тулд санал болгосон кабель болон адаптерыг ашиглана уу."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Таны төхөөрөмж удаан цэнэглэгдэж эсвэл цэнэглэгдээгүй байж магадгүй. Илүү шуурхай цэнэглэхийн тулд санал болгосон кабель болон адаптерыг ашиглана уу."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Таны таблет удаан цэнэглэгдэж эсвэл цэнэглэгдээгүй байж магадгүй. Илүү шуурхай цэнэглэхийн тулд санал болгосон кабель болон адаптерыг ашиглана уу."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Утасныхаа түгжээг тайлалгүйгээр"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Таблетынхаа түгжээг тайлалгүйгээр"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Таныг утсаа босоо болон хөндлөн чиглэлийн хооронд шилжүүлэх үед"</string>
diff --git a/res-product/values-mr/strings.xml b/res-product/values-mr/strings.xml
index 6c911f5..2707719 100644
--- a/res-product/values-mr/strings.xml
+++ b/res-product/values-mr/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"तुमचा फोन फॅक्टरी सेटिंग्जवर रीसेट केला होता. हा फोन वापरण्यासाठी, तुमचा मागील पासवर्ड एंटर करा."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"तुमचा टॅबलेट फॅक्टरी सेटिंग्जवर रीसेट केले होता. हा टॅबलेट वापरण्यासाठी, मागील पासवर्ड एंटर करा."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"तुमचे डिव्हाइस फॅक्टरी सेटिंग्जवर रीसेट केले होते. हे डिव्हाइस वापरण्यासाठी, मागील पासवर्ड एंटर करा."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"तुमचा फोन कदाचित हळू चार्ज होत आहे किंवा चार्ज होत नाही. आणखी जलद चार्जिंगसाठी, शिफारस केलेली केबल आणि अडॅप्टर वापरा."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"तुमचे डिव्हाइस कदाचित हळू चार्ज होत आहे किंवा चार्ज होत नाही. आणखी जलद चार्जिंगसाठी, शिफारस केलेली केबल आणि अडॅप्टर वापरा."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"तुमचा टॅबलेट कदाचित हळू चार्ज होत आहे किंवा चार्ज होत नाही. आणखी जलद चार्जिंगसाठी, शिफारस केलेली केबल आणि अडॅप्टर वापरा."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"तुमचा फोन अनलॉक न करता"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"तुमचा टॅबलेट अनलॉक न करता"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"तुम्ही फोन हा पोर्ट्रेट व लॅंडस्केप मोडदरम्यान हलवल्यास"</string>
diff --git a/res-product/values-ms/strings.xml b/res-product/values-ms/strings.xml
index 614decf..f6b8740 100644
--- a/res-product/values-ms/strings.xml
+++ b/res-product/values-ms/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon ditetapkan semula kepada tetapan kilang. Masukkan kata laluan terdahulu untuk menggunakan telefon."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet ditetapkan semula kepada tetapan kilang. Masukkan kata laluan terdahulu untuk menggunakan tablet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Peranti ditetapkan semula kepada tetapan kilang. Masukkan kata laluan terdahulu untuk menggunakan peranti."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon anda mungkin mengecas dengan perlahan atau tidak mengecas. Untuk pengecasan yang lebih pantas, gunakan kabel dan penyesuai yang disyorkan."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Peranti anda mungkin mengecas dengan perlahan atau tidak mengecas. Untuk pengecasan yang lebih pantas, gunakan kabel dan penyesuai yang disyorkan."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet anda mungkin mengecas dengan perlahan atau tidak mengecas. Untuk pengecasan yang lebih pantas, gunakan kabel dan penyesuai yang disyorkan."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Tanpa membuka kunci telefon anda"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tanpa membuka kunci tablet anda"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Apabila anda menggerakkan telefon anda antara potret dengan landskap"</string>
diff --git a/res-product/values-my/strings.xml b/res-product/values-my/strings.xml
index a91ad22..0716e6e 100644
--- a/res-product/values-my/strings.xml
+++ b/res-product/values-my/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"သင့်ဖုန်းကို စက်ရုံဆက်တင်သို့ ပြင်ဆင်သတ်မှတ်ထားသည်။ ဤဖုန်းသုံးရန် ယခင်စကားဝှက် ထည့်ပါ။"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"တက်ဘလက်ကို စက်ရုံထုတ်ဆက်တင်သို့ ပြင်ဆင်သတ်မှတ်ထားသည်။ ဤတက်ဘလက်သုံးရန် ယခင်စကားဝှက် ထည့်ပါ။"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"စက်ကို စက်ရုံထုတ်ဆက်တင်သို့ ပြင်ဆင်သတ်မှတ်ထားသည်။ ဤစက်ပစ္စည်းသုံးရန် ယခင်စကားဝှက် ထည့်ပါ။"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"သင့်ဖုန်းသည် နှေးကွေးစွာ အားသွင်းနေသည် (သို့) ၎င်းကို အားသွင်းမနေပါ။ အမြန်အားသွင်းခြင်းအတွက် အကြံပြုထားသော ကြိုးနှင့် အဒက်တာ သုံးပါ။"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"သင့်စက်သည် နှေးကွေးစွာ အားသွင်းနေသည် (သို့) ၎င်းကို အားသွင်းမနေပါ။ အမြန်အားသွင်းခြင်းအတွက် အကြံပြုထားသော ကြိုးနှင့် အဒက်တာ သုံးပါ။"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"သင့်တက်ဘလက်သည် နှေးကွေးစွာ အားသွင်းနေသည် (သို့) ၎င်းကို အားသွင်းမနေပါ။ အမြန်အားသွင်းခြင်းအတွက် အကြံပြုထားသော ကြိုးနှင့် အဒက်တာ သုံးပါ။"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"သင့်ဖုန်းကို လော့ခ်မဖွင့်ဘဲ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"သင့်တက်ဘလက်ကို လော့ခ်မဖွင့်ဘဲ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"သင့်ဖုန်းကို အလျားလိုက်နှင့် ဒေါင်လိုက် ပြောင်းသောအခါ"</string>
diff --git a/res-product/values-nb/strings.xml b/res-product/values-nb/strings.xml
index abb62b7..f5f348c 100644
--- a/res-product/values-nb/strings.xml
+++ b/res-product/values-nb/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonen er tilbakestilt til fabrikkstandard. For å bruke den, legg inn det forrige passordet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Nettbrettet er tilbakestilt til fabrikkstandard. For å bruke det, legg inn det forrige passordet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Enheten er tilbakestilt til fabrikkstandard. For å bruke den, legg inn det forrige passordet."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Det kan hende at telefonen din lader tregt eller ikke i det hele tatt. For å lade den raskere bør du bruke en anbefalt kabel og adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Det kan hende at enheten din lader tregt eller ikke i det hele tatt. For å lade den raskere bør du bruke en anbefalt kabel og adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Det kan hende at nettbrettet ditt lader tregt eller ikke i det hele tatt. For å lade det raskere bør du bruke en anbefalt kabel og adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Uten å låse opp telefonen"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Uten å låse opp nettbrettet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Når du beveger telefonen mellom stående og liggende format"</string>
diff --git a/res-product/values-ne/strings.xml b/res-product/values-ne/strings.xml
index e5b106c..30f327e 100644
--- a/res-product/values-ne/strings.xml
+++ b/res-product/values-ne/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"तपाईंको फोन रिसेट गरी डिफल्ट सेटिङ लागू गरिएको छ। यो फोन प्रयोग गर्न अघिल्लो पासवर्ड हाल्नुहोस्।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"तपाईंको ट्याब्लेट रिसेट गरी डिफल्ट सेटिङ लागू गरिएको छ। यो ट्याब्लेट प्रयोग गर्न अघिल्लो पासवर्ड हाल्नुहोस्।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"तपाईंको डिभाइस रिसेट गरी डिफल्ट सेटिङ लागू गरिएको छ। यो डिभाइस प्रयोग गर्न अघिल्लो पासवर्ड हाल्नुहोस्।"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"तपाईंको फोन बिस्तारै चार्ज भइरहेको वा चार्ज नै नभइरहेको हुन सक्छ। अझ छिटो चार्ज गर्न सिफारिस गरिएको केबल र एडाप्टर प्रयोग गर्नुहोस्।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"तपाईंको डिभाइस बिस्तारै चार्ज भइरहेको वा चार्ज नै नभइरहेको हुन सक्छ। अझ छिटो चार्ज गर्न सिफारिस गरिएको केबल र एडाप्टर प्रयोग गर्नुहोस्।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"तपाईंको ट्याब्लेट बिस्तारै चार्ज भइरहेको वा चार्ज नै नभइरहेको हुन सक्छ। अझ छिटो चार्ज गर्न सिफारिस गरिएको केबल र एडाप्टर प्रयोग गर्नुहोस्।"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"तपाईंको फोन अनलक नगरिकनै"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"तपाईंको ट्याब्लेट अनलक नगरिकनै"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"तपाईंले आफ्नो फोन पोर्ट्रेट र ल्यान्डस्केपबिच अदलबदल गर्दा"</string>
diff --git a/res-product/values-nl/strings.xml b/res-product/values-nl/strings.xml
index 98751fc..90ff019 100644
--- a/res-product/values-nl/strings.xml
+++ b/res-product/values-nl/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Je telefoon is teruggezet op de fabrieksinstellingen. Geef je vorige wachtwoord op."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Je tablet is teruggezet op de fabrieksinstellingen. Geef je vorige wachtwoord op."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Je apparaat is teruggezet op de fabrieksinstellingen. Geef je vorige wachtwoord op."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Je telefoon laadt misschien langzaam of helemaal niet op. Gebruik een aanbevolen kabel en adapter om sneller op te laden."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Je apparaat laadt misschien langzaam of helemaal niet op. Gebruik een aanbevolen kabel en adapter om sneller op te laden."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Je tablet laadt misschien langzaam of helemaal niet op. Gebruik een aanbevolen kabel en adapter om sneller op te laden."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Zonder je telefoon te ontgrendelen"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Zonder je tablet te ontgrendelen"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Als je wisselt tussen de staande en liggende telefoonstand"</string>
diff --git a/res-product/values-or/strings.xml b/res-product/values-or/strings.xml
index 554cc67..45eb653 100644
--- a/res-product/values-or/strings.xml
+++ b/res-product/values-or/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ଆପଣଙ୍କ ଫୋନ ଫେକ୍ଟୋରୀ ସେଟିଂସରେ ରିସେଟ ହୋଇଛି। ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ପୂର୍ବବର୍ତ୍ତୀ ପାସୱାର୍ଡ ଲେଖ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ଆପଣଙ୍କ ଟାବଲେଟ ଫେକ୍ଟୋରୀ ସେଟିଂସରେ ରିସେଟ ହୋଇଛି। ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ପୂର୍ବବର୍ତ୍ତୀ ପାସୱାର୍ଡ ଲେଖ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ଆପଣଙ୍କ ଡିଭାଇସ ଫେକ୍ଟୋରୀ ସେଟିଂସରେ ରିସେଟ ହୋଇଛି। ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ପୂର୍ବବର୍ତ୍ତୀ ପାସୱାର୍ଡ ଲେଖ।"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ଆପଣଙ୍କ ଫୋନ ଧୀରେ ଚାର୍ଜ ହେଉଥାଇପାରେ କିମ୍ବା ଚାର୍ଜ ହେଉନଥାଇପାରେ। ଆହୁରି ଶୀଘ୍ର ଚାର୍ଜ କରିବା ପାଇଁ ସୁପାରିଶ କରାଯାଇଥିବା ଏକ କେବୁଲ ଓ ଆଡାପ୍ଟର ବ୍ୟବହାର କରନ୍ତୁ।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ଆପଣଙ୍କ ଡିଭାଇସ ଧୀରେ ଚାର୍ଜ ହେଉଥାଇପାରେ କିମ୍ବା ଚାର୍ଜ ହେଉନଥାଇପାରେ। ଆହୁରି ଶୀଘ୍ର ଚାର୍ଜ କରିବା ପାଇଁ ସୁପାରିଶ କରାଯାଇଥିବା ଏକ କେବୁଲ ଓ ଆଡାପ୍ଟର ବ୍ୟବହାର କରନ୍ତୁ।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ଆପଣଙ୍କ ଟାବଲେଟ ଧୀରେ ଚାର୍ଜ ହେଉଥାଇପାରେ କିମ୍ବା ଚାର୍ଜ ହେଉନଥାଇପାରେ। ଆହୁରି ଶୀଘ୍ର ଚାର୍ଜ କରିବା ପାଇଁ ସୁପାରିଶ କରାଯାଇଥିବା ଏକ କେବୁଲ ଓ ଆଡାପ୍ଟର ବ୍ୟବହାର କରନ୍ତୁ।"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ ନକରି"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ଆପଣଙ୍କ ଟାବଲେଟକୁ ଅନଲକ ନକରି"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ଆପଣ ଆପଣଙ୍କ ଫୋନକୁ ପୋର୍ଟ୍ରେଟ ଓ ଲାଣ୍ଡସ୍କେପ ମଧ୍ୟରେ ମୁଭ କଲେ"</string>
diff --git a/res-product/values-pa/strings.xml b/res-product/values-pa/strings.xml
index aac15f2..79d1fd2 100644
--- a/res-product/values-pa/strings.xml
+++ b/res-product/values-pa/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਫੈਕਟਰੀ ਸੈਟਿੰਗਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਇਹ ਫ਼ੋਨ ਵਰਤਣ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਫੈਕਟਰੀ ਸੈਟਿੰਗਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਇਹ ਟੈਬਲੈੱਟ ਵਰਤਣ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਫੈਕਟਰੀ ਸੈਟਿੰਗਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਇਹ ਡੀਵਾਈਸ ਵਰਤਣ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ਸ਼ਾਇਦ ਤੁਹਾਡਾ ਫ਼ੋਨ ਹੌਲੀ-ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ ਜਾਂ ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਿਹਾ। ਤੇਜ਼ੀ ਨਾਲ ਚਾਰਜ ਕਰਨ ਲਈ, ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਕੇਬਲ ਅਤੇ ਅਡਾਪਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ਸ਼ਾਇਦ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਹੌਲੀ-ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ ਜਾਂ ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਿਹਾ। ਤੇਜ਼ੀ ਨਾਲ ਚਾਰਜ ਕਰਨ ਲਈ, ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਕੇਬਲ ਅਤੇ ਅਡਾਪਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ਸ਼ਾਇਦ ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਹੌਲੀ-ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਿਹਾ ਹੈ ਜਾਂ ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਿਹਾ। ਤੇਜ਼ੀ ਨਾਲ ਚਾਰਜ ਕਰਨ ਲਈ, ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਕੇਬਲ ਅਤੇ ਅਡਾਪਟਰ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕੀਤੇ ਬਿਨਾਂ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕੀਤੇ ਬਿਨਾਂ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਪੋਰਟਰੇਟ ਅਤੇ ਲੈਂਡਸਕੇਪ ਮੋਡ ਵਿਚਕਾਰ ਅਦਲਾ-ਬਦਲੀ ਕਰਦੇ ਹੋ"</string>
diff --git a/res-product/values-pl/strings.xml b/res-product/values-pl/strings.xml
index f04d427..513a72c 100644
--- a/res-product/values-pl/strings.xml
+++ b/res-product/values-pl/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon został zresetowany do ustawień fabrycznych. Aby go używać, wpisz poprzednie hasło."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet został zresetowany do ustawień fabrycznych. Aby go używać, wpisz poprzednie hasło."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Urządzenie zostało zresetowane do ustawień fabrycznych. Aby go używać, wpisz poprzednie hasło."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefon może ładować się powoli lub w ogóle się nie ładować. Aby ładować go szybciej, użyj zalecanego kabla i ładowarki."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Urządzenie może ładować się powoli lub w ogóle się nie ładować. Aby ładować je szybciej, użyj zalecanego kabla i ładowarki."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tablet może ładować się powoli lub w ogóle się nie ładować. Aby ładować go szybciej, użyj zalecanego kabla i ładowarki."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez odblokowywania telefonu"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez odblokowywania tabletu"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Gdy obracasz telefon do pionu lub poziomu"</string>
diff --git a/res-product/values-pt-rBR/strings.xml b/res-product/values-pt-rBR/strings.xml
index ffabb2e..938944c 100644
--- a/res-product/values-pt-rBR/strings.xml
+++ b/res-product/values-pt-rBR/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"O smartphone foi redefinido para as configurações originais. Para usá-lo, digite a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"O tablet foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"O dispositivo foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"O smartphone pode estar com o carregamento lento ou não estar carregando. Para um carregamento mais rápido, use um cabo e um adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"O dispositivo pode estar com o carregamento lento ou não estar carregando. Para um carregamento mais rápido, use um cabo e um adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"O tablet pode estar com o carregamento lento ou não estar carregando. Para um carregamento mais rápido, use um cabo e um adaptador recomendados."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sem desbloquear o smartphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sem desbloquear o tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ao virar o smartphone para as posições vertical e horizontal"</string>
diff --git a/res-product/values-pt-rPT/strings.xml b/res-product/values-pt-rPT/strings.xml
index 234017a..a675d51 100644
--- a/res-product/values-pt-rPT/strings.xml
+++ b/res-product/values-pt-rPT/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Definições de fábrica do telemóvel repostas. Para o usar, introduza a palavra-passe anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Definições de fábrica do tablet repostas. Para o usar, introduza a palavra-passe anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Definições de fábrica do dispositivo repostas. Para o usar, introduza a palavra-passe anterior."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"O telemóvel pode estar a carregar lentamente ou não estar a carregar. Para um carregamento mais rápido, use um cabo e um transformador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"O dispositivo pode estar a carregar lentamente ou não estar a carregar. Para um carregamento mais rápido, use um cabo e um transformador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"O tablet pode estar a carregar lentamente ou não estar a carregar. Para um carregamento mais rápido, use um cabo e um transformador recomendados."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sem desbloquear o telemóvel"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sem desbloquear o tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quando move o telemóvel entre o modo vertical e horizontal"</string>
diff --git a/res-product/values-pt/strings.xml b/res-product/values-pt/strings.xml
index ffabb2e..938944c 100644
--- a/res-product/values-pt/strings.xml
+++ b/res-product/values-pt/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"O smartphone foi redefinido para as configurações originais. Para usá-lo, digite a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"O tablet foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"O dispositivo foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"O smartphone pode estar com o carregamento lento ou não estar carregando. Para um carregamento mais rápido, use um cabo e um adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"O dispositivo pode estar com o carregamento lento ou não estar carregando. Para um carregamento mais rápido, use um cabo e um adaptador recomendados."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"O tablet pode estar com o carregamento lento ou não estar carregando. Para um carregamento mais rápido, use um cabo e um adaptador recomendados."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sem desbloquear o smartphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sem desbloquear o tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ao virar o smartphone para as posições vertical e horizontal"</string>
diff --git a/res-product/values-ro/strings.xml b/res-product/values-ro/strings.xml
index 9cbc548..0c9b9c9 100644
--- a/res-product/values-ro/strings.xml
+++ b/res-product/values-ro/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"S-a revenit la setările din fabrică ale telefonului. Ca să-l folosești, introdu parola anterioară."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"S-a revenit la setările din fabrică ale tabletei. Ca să o folosești, introdu parola anterioară."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"S-a revenit la setările din fabrică ale dispozitivului. Ca să-l folosești, introdu parola anterioară."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Este posibil ca telefonul tău să se încarce lent sau deloc. Pentru încărcare mai rapidă, folosește un cablu și un adaptor recomandat."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Este posibil ca dispozitivul tău să se încarce lent sau deloc. Pentru încărcare mai rapidă, folosește un cablu și un adaptor recomandat."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Este posibil ca tableta ta să se încarce lent sau deloc. Pentru încărcare mai rapidă, folosește un cablu și un adaptor recomandat."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Fără a debloca telefonul"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Fără a debloca tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Când comuți telefonul între orientările portret și peisaj"</string>
diff --git a/res-product/values-ru/strings.xml b/res-product/values-ru/strings.xml
index ac503b9..62c074c 100644
--- a/res-product/values-ru/strings.xml
+++ b/res-product/values-ru/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Настройки телефона были сброшены. Чтобы использовать его, введите свой прежний пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Настройки планшета были сброшены. Чтобы использовать его, введите свой прежний пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Настройки устройства были сброшены. Чтобы использовать его, введите свой прежний пароль."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Возможно, ваш телефон заряжается медленно или не заряжается. Чтобы устранить проблему, используйте рекомендуемые кабель и адаптер питания."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Возможно, ваше устройство заряжается медленно или не заряжается. Чтобы устранить проблему, используйте рекомендуемые кабель и адаптер питания."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Возможно, ваш планшет заряжается медленно или не заряжается. Чтобы устранить проблему, используйте рекомендуемые кабель и адаптер питания."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без разблокировки телефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без разблокировки планшета"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Переключать ориентацию при изменении положения телефона"</string>
diff --git a/res-product/values-si/strings.xml b/res-product/values-si/strings.xml
index 10ff8d0..541f5fa 100644
--- a/res-product/values-si/strings.xml
+++ b/res-product/values-si/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ඔබේ දුරකථනය කම්හල් සැකසීම් වෙත යළි සකසා ඇත. මෙම දුරකථනය භාවිතා කිරීමට, ඔබේ පෙර මුරපදය ඇතුළු කරන්න."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ඔබේ ටැබ්ලටය කම්හල් සැකසීම් වෙත යළි සකසන ලදි. මෙම ටැබ්ලටය භාවිතය සඳහා, ඔබේ පෙර මුරපදය ඇතුළු කරන්න."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ඔබේ උපාංගය කම්හල් සැකසීම් වෙත යළි සකසන ලදි. මෙම උපාංගය භාවිතය සඳහා, ඔබේ පෙර මුරපදය ඇතුළු කරන්න."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ඔබේ දුරකථනය සෙමින් ආරෝපණය වෙමින් හෝ ආරෝපණය නොවීමට ඉඩ ඇත. වේගවත් ආරෝපණය සඳහා, නිර්දේශිත කේබලයක් සහ ඇඩප්ටරයක් භාවිත කරන්න."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ඔබේ උපාංගය සෙමින් ආරෝපණය වෙමින් හෝ ආරෝපණය නොවීමට ඉඩ ඇත. වේගවත් ආරෝපණය සඳහා, නිර්දේශිත කේබලයක් සහ ඇඩප්ටරයක් භාවිත කරන්න."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ඔබේ ටැබ්ලටය සෙමින් ආරෝපණය වෙමින් හෝ ආරෝපණය නොවීමට ඉඩ ඇත. වේගවත් ආරෝපණය සඳහා, නිර්දේශිත කේබලයක් සහ ඇඩප්ටරයක් භාවිත කරන්න."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ඔබේ දුරකථනය අගුළු හැරීමෙන් තොරව"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ඔබේ ටැබ්ලටය අගුළු හැරීමෙන් තොරව"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ඔබ ඔබේ දුරකථනය සිරස් සහ තිරස් අතර ගෙන යන විට"</string>
diff --git a/res-product/values-sk/strings.xml b/res-product/values-sk/strings.xml
index 8ffb92d..9146769 100644
--- a/res-product/values-sk/strings.xml
+++ b/res-product/values-sk/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"V telefóne boli obnovené výrobné nastavenia. Ak ho chcete použiť, zadajte predchádzajúce heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"V tablete boli obnovené výrobné nastavenia. Ak ho chcete používať, zadajte predchádzajúce heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"V zariadení boli obnovené výrobné nastavenia. Ak ho chcete používať, zadajte predchádzajúce heslo."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Váš telefón sa zrejme nabíja pomaly alebo sa nenabíja vôbec. Ak chcete, aby sa nabíjal rýchlejšie, použite odporúčaný kábel a nabíjačku."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Vaše zariadenie sa zrejme nabíja pomaly alebo sa nenabíja vôbec. Ak chcete, aby sa nabíjalo rýchlejšie, použite odporúčaný kábel a nabíjačku."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Váš tablet sa zrejme nabíja pomaly alebo sa nenabíja vôbec. Ak chcete, aby sa nabíjal rýchlejšie, použite odporúčaný kábel a nabíjačku."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez odomykania telefónu"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez odomykania tabletu"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Keď telefón otočíte z orientácie na výšku do polohy na šírku"</string>
diff --git a/res-product/values-sl/strings.xml b/res-product/values-sl/strings.xml
index c706abd..db4f2a9 100644
--- a/res-product/values-sl/strings.xml
+++ b/res-product/values-sl/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je bil ponastavljen na tovarniške nastavitve. Če ga želite uporabljati, vnesite prejšnje geslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablični računalnik je bil ponastavljen na tovarniške nastavitve. Če ga želite uporabljati, vnesite prejšnje geslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Naprava je bila ponastavljena na tovarniške nastavitve. Če jo želite uporabljati, vnesite prejšnje geslo."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Baterija telefona se morda polni počasi ali se sploh ne polni. Za hitrejše polnjenje uporabite priporočena kabel in napajalnik."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Baterija naprave se morda polni počasi ali se sploh ne polni. Za hitrejše polnjenje uporabite priporočena kabel in napajalnik."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Baterija tabličnega računalnika se morda polni počasi ali se sploh ne polni. Za hitrejše polnjenje uporabite priporočena kabel in napajalnik."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Brez odklepanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Brez odklepanja tabličnega računalnika"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ko telefon obrnete iz navpičnega v vodoravni položaj ali obratno."</string>
diff --git a/res-product/values-sq/strings.xml b/res-product/values-sq/strings.xml
index 992a579..9fc07a6 100644
--- a/res-product/values-sq/strings.xml
+++ b/res-product/values-sq/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefoni u rivendos në cilësimet e fabrikës. Për të përdorur telefonin, fut fjalëkalim të mëparshëm."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tableti u rivendos në cilësimet e fabrikës. Për të përdorur tabletin, fut fjalëkalimin e mëparshëm."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Pajisja u rivendos në cilësimet e fabrikës. Për të përdorur pajisjen, fut fjalëkalimin e mëparshëm."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefoni yt mund të jetë duke u karikuar ngadalë ose nuk po karikohet. Për karikim më të shpejtë, përdor një kabllo dhe përshtatës të rekomanduar."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Pajisja jote mund të jetë duke u karikuar ngadalë ose nuk po karikohet. Për karikim më të shpejtë, përdor një kabllo dhe përshtatës të rekomanduar."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tableti yt mund të jetë duke u karikuar ngadalë ose nuk po karikohet. Për karikim më të shpejtë, përdor një kabllo dhe përshtatës të rekomanduar."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Pa e shkyçur telefonin"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Pa e shkyçur tabletin"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kur lëviz telefonin mes modalitetit \"portret\" e \"horizontal\""</string>
diff --git a/res-product/values-sr/strings.xml b/res-product/values-sr/strings.xml
index dd38414..a949982 100644
--- a/res-product/values-sr/strings.xml
+++ b/res-product/values-sr/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефон је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Таблет је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Уређај је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Телефон се можда споро пуни или се уопште не пуни. Ако желите брже пуњење, користите препоручени кабл и адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Уређај се можда споро пуни или се уопште не пуни. Ако желите брже пуњење, користите препоручени кабл и адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Таблет се можда споро пуни или се уопште не пуни. Ако желите брже пуњење, користите препоручени кабл и адаптер."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без откључавања телефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без откључавања таблета"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Када окрећете телефон у усправни или водоравни режим"</string>
diff --git a/res-product/values-sv/strings.xml b/res-product/values-sv/strings.xml
index 254c1fe..218576a 100644
--- a/res-product/values-sv/strings.xml
+++ b/res-product/values-sv/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonens standardinställningar har återställts. Ange det tidigare lösenordet för telefonen."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Surfplattans standardinställningar har återställts. Ange det tidigare lösenordet för surfplattan."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Enhetens standardinställningar har återställts. Ange det tidigare lösenordet för enheten."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefonen kanske laddas långsamt eller inte laddas alls. Använd en rekommenderad kabel och nätadapter för snabbare laddning."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Enheten kanske laddas långsamt eller inte laddas alls. Använd en rekommenderad kabel och nätadapter för snabbare laddning."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Surfplattan kanske laddas långsamt eller inte laddas alls. Använd en rekommenderad kabel och nätadapter för snabbare laddning."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Utan att låsa upp telefonen"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Utan att låsa upp surfplattan"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"När du vänder telefonen mellan stående och liggande läge"</string>
diff --git a/res-product/values-sw/strings.xml b/res-product/values-sw/strings.xml
index c7b900e..2db568b 100644
--- a/res-product/values-sw/strings.xml
+++ b/res-product/values-sw/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Mipangilio ya kiwandani ilirejeshwa kwenye simu yako. Ili utumie simu hii, weka nenosiri lako la awali."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Mipangilio ya kiwandani ilirejeshwa kwenye kompyuta kibao yako. Ili utumie kompyuta kibao hii, weka nenosiri lako la awali."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Mipangilio ya kiwandani ilirejeshwa kwenye kifaa chako. Ili utumie kifaa hiki, weka nenosiri lako la awali."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Huenda simu yako inachaji polepole au haichaji. Ili uchaji kwa kasi, tumia kebo na adapta inayopendekezwa."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Huenda kifaa chako kinachaji polepole au hakichaji. Ili uchaji kwa kasi, tumia kebo na adapta inayopendekezwa."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Huenda kishikwambi chako kinachaji polepole au hakichaji. Ili uchaji kwa kasi, tumia kebo na adapta inayopendekezwa."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bila kufungua simu yako"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bila kufungua kompyuta kibao yako"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Unapobadilisha mkao wa simu yako kati ya wima na mlalo"</string>
diff --git a/res-product/values-ta/strings.xml b/res-product/values-ta/strings.xml
index c0cb33e..e033621 100644
--- a/res-product/values-ta/strings.xml
+++ b/res-product/values-ta/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"உங்கள் மொபைல் ஆரம்பநிலைக்கு மீட்டமைக்கப்பட்டது. இதைப் பயன்படுத்த முந்தைய கடவுச்சொல்லை உள்ளிடுங்கள்."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"உங்கள் டேப்லெட் ஆரம்பநிலைக்கு மீட்டமைக்கப்பட்டது. இதை உபயோகிக்க முந்தைய கடவுச்சொல்லை உள்ளிடுங்கள்."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"உங்கள் சாதனம் ஆரம்பநிலைக்கு மீட்டமைக்கப்பட்டது. இதைப் பயன்படுத்த முந்தைய கடவுச்சொல்லை உள்ளிடுங்கள்."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"உங்கள் மொபைல் மெதுவாகச் சார்ஜ் ஆகலாம் அல்லது சார்ஜ் ஆகாமல் இருக்கலாம். விரைவாகச் சார்ஜ் ஆவதற்கு, பரிந்துரைக்கப்படும் கேபிளையும் அடாப்டரையும் பயன்படுத்துங்கள்."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"உங்கள் சாதனம் மெதுவாகச் சார்ஜ் ஆகலாம் அல்லது சார்ஜ் ஆகாமல் இருக்கலாம். விரைவாகச் சார்ஜ் ஆவதற்கு, பரிந்துரைக்கப்படும் கேபிளையும் அடாப்டரையும் பயன்படுத்துங்கள்."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"உங்கள் டேப்லெட் மெதுவாகச் சார்ஜ் ஆகலாம் அல்லது சார்ஜ் ஆகாமல் இருக்கலாம். விரைவாகச் சார்ஜ் ஆவதற்கு, பரிந்துரைக்கப்படும் கேபிளையும் அடாப்டரையும் பயன்படுத்துங்கள்."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"உங்கள் மொபைலைத் திறக்காமலேயே"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"உங்கள் டேப்லெட்டைத் திறக்காமலேயே"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"போர்ட்ரெய்ட் &amp; லேண்ட்ஸ்கேப் காட்சிக்கு மொபைலை மாற்றும்போது"</string>
diff --git a/res-product/values-te/strings.xml b/res-product/values-te/strings.xml
index 8ff91d6..157be1a 100644
--- a/res-product/values-te/strings.xml
+++ b/res-product/values-te/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"మీ ఫోన్ ఫ్యాక్టరీ సెట్టింగ్‌లకు రీసెట్ అయింది. ఈ ఫోన్‌ను వాడాలంటే, మీ పాత పాస్‌వర్డ్ ఎంటర్ చేయండి."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"మీ టాబ్లెట్ ఫ్యాక్టరీ సెట్టింగ్స్‌కు రీసెట్ అయింది. ఈ టాబ్లెట్ వాడాలంటే పాత పాస్‌వర్డ్ ఎంటర్ చేయండి."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"మీ పరికరం, ఫ్యాక్టరీ సెట్టింగ్‌లకు రీసెట్ అయింది. ఈ పరికరం వాడాలంటే, మీ పాత పాస్‌వర్డ్ ఎంటర్ చేయండి."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"మీ ఫోన్ నెమ్మదిగా ఛార్జింగ్ అవుతూ ఉండవచ్చు లేదా అస్సలు ఛార్జ్ కాకపోవచ్చు. ఛార్జింగ్ మరింత వేగవంతంగా అవ్వడం కోసం, సిఫార్సు చేయబడిన కేబుల్‌ను, అడాప్టర్‌ను ఉపయోగించండి."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"మీ పరికరం నెమ్మదిగా ఛార్జింగ్ అవుతూ ఉండవచ్చు లేదా అస్సలు ఛార్జ్ కాకపోవచ్చు. ఛార్జింగ్ మరింత వేగవంతంగా అవ్వడం కోసం, సిఫార్సు చేయబడిన కేబుల్‌ను, అడాప్టర్‌ను ఉపయోగించండి."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"మీ టాబ్లెట్ నెమ్మదిగా ఛార్జింగ్ అవుతూ ఉండవచ్చు లేదా అస్సలు ఛార్జ్ కాకపోవచ్చు. ఛార్జింగ్ మరింత వేగవంతంగా అవ్వడం కోసం, సిఫార్సు చేయబడిన కేబుల్‌ను, అడాప్టర్‌ను ఉపయోగించండి."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"మీ ఫోన్‌ను అన్‌లాక్ చేయకుండా"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"మీ టాబ్లెట్‌ను అన్‌లాక్ చేయకుండా"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ఫోన్‌ను పోర్ట్రెయిట్, ల్యాండ్‌స్కేప్‌‌ల మధ్య మార్చినప్పుడు"</string>
diff --git a/res-product/values-th/strings.xml b/res-product/values-th/strings.xml
index 85d0d63..cbf2b41 100644
--- a/res-product/values-th/strings.xml
+++ b/res-product/values-th/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"รีเซ็ตโทรศัพท์เป็นการตั้งค่าเริ่มต้นแล้ว หากต้องการใช้โทรศัพท์นี้ ให้ป้อนรหัสผ่านก่อนหน้าของคุณ"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"รีเซ็ตแท็บเล็ตเป็นการตั้งค่าเริ่มต้นแล้ว หากต้องการใช้แท็บเล็ตนี้ ให้ป้อนรหัสผ่านก่อนหน้าของคุณ"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"รีเซ็ตอุปกรณ์เป็นการตั้งค่าเริ่มต้นแล้ว หากต้องการใช้อุปกรณ์นี้ ให้ป้อนรหัสผ่านก่อนหน้าของคุณ"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"โทรศัพท์อาจชาร์จอย่างช้าๆ หรือไม่ชาร์จ ให้ใช้สายและอะแดปเตอร์ที่แนะนำเพื่อให้ชาร์จได้เร็วขึ้น"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"อุปกรณ์อาจชาร์จอย่างช้าๆ หรือไม่ชาร์จ ให้ใช้สายและอะแดปเตอร์ที่แนะนำเพื่อให้ชาร์จได้เร็วขึ้น"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"แท็บเล็ตอาจชาร์จอย่างช้าๆ หรือไม่ชาร์จ ให้ใช้สายและอะแดปเตอร์ที่แนะนำเพื่อให้ชาร์จได้เร็วขึ้น"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"โดยไม่ต้องปลดล็อกโทรศัพท์"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"โดยไม่ต้องปลดล็อกแท็บเล็ต"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"เมื่อคุณหมุนโทรศัพท์ไปมาระหว่างแนวตั้งกับแนวนอน"</string>
diff --git a/res-product/values-tl/strings.xml b/res-product/values-tl/strings.xml
index b2f9812..91c2fa7 100644
--- a/res-product/values-tl/strings.xml
+++ b/res-product/values-tl/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Na-reset sa mga factory setting ang iyong telepono. Ilagay ang dati mong password para magamit ito."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Na-reset sa mga factory setting ang tablet mo. Ilagay ang dating password para magamit itong tablet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Na-reset sa mga factory setting ang device mo. Ilagay ang dating password para magamit itong device."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Posibleng mabagal mag-charge o hindi nagcha-charge ang iyong telepono. Para sa mas mabilis na pag-charge, gumamit ng inirerekomendang cable at adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Posibleng mabagal mag-charge o hindi nagcha-charge ang iyong device. Para sa mas mabilis na pag-charge, gumamit ng inirerekomendang cable at adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Posibleng mabagal mag-charge o hindi nagcha-charge ang iyong tablet. Para sa mas mabilis na pag-charge, gumamit ng inirerekomendang cable at adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Nang hindi ina-unlock ang iyong telepono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Nang hindi ina-unlock ang iyong tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kapag pinalipat-lipat ang telepono sa portrait at landscape"</string>
diff --git a/res-product/values-tr/strings.xml b/res-product/values-tr/strings.xml
index b9083e7..828e86b 100644
--- a/res-product/values-tr/strings.xml
+++ b/res-product/values-tr/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonunuz fabrika ayarlarına sıfırlandı. Bu telefonu kullanmak için önceki şifrenizi girin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tabletiniz fabrika ayarlarına sıfırlandı. Bu tableti kullanmak için önceki şifrenizi girin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Cihazınız fabrika ayarlarına sıfırlandı. Bu cihazı kullanmak için önceki şifrenizi girin."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefonunuz yavaş şarj oluyor veya hiç şarj olmuyor olabilir. Daha hızlı şarj için önerilen bir kablo ve adaptör kullanın."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Cihazınız yavaş şarj oluyor veya hiç şarj olmuyor olabilir. Daha hızlı şarj için önerilen bir kablo ve adaptör kullanın."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Tabletiniz yavaş şarj oluyor veya hiç şarj olmuyor olabilir. Daha hızlı şarj için önerilen bir kablo ve adaptör kullanın."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefonunuzun kilidini açmak zorunda değilsiniz"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tabletinizin kilidini açmak zorunda değilsiniz"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefonunuzu dikey/yatay mod arasında hareket ettirdiğinizde"</string>
diff --git a/res-product/values-uk/strings.xml b/res-product/values-uk/strings.xml
index bb40a2b..5b09163 100644
--- a/res-product/values-uk/strings.xml
+++ b/res-product/values-uk/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Налаштування телефона скинуто. Щоб користуватися ним, введіть попередній пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Налаштування планшета скинуто. Щоб користуватися ним, введіть попередній пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Налаштування пристрою скинуто. Щоб користуватися ним, введіть попередній пароль."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Можливо, телефон заряджається повільно або взагалі не заряджається. Щоб він заряджався швидше, використовуйте рекомендований кабель і адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Можливо, пристрій заряджається повільно або взагалі не заряджається. Щоб він заряджався швидше, використовуйте рекомендований кабель і адаптер."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Можливо, планшет заряджається повільно або взагалі не заряджається. Щоб він заряджався швидше, використовуйте рекомендований кабель і адаптер."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Не розблоковуючи телефон"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Не розблоковуючи планшет"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Змінення орієнтації телефона з портретної на альбомну й навпаки"</string>
diff --git a/res-product/values-ur/strings.xml b/res-product/values-ur/strings.xml
index 819e44e..32c1460 100644
--- a/res-product/values-ur/strings.xml
+++ b/res-product/values-ur/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"آپ کا فون فیکٹری ترتیبات پر ری سیٹ کر دیا گیا تھا۔ یہ فون استعمال کرنے کیلئے، پچھلا پاس ورڈ ڈالیں۔"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"آپ کا ٹیبلیٹ فیکٹری ترتیبات پر ری سیٹ ہوا تھا۔ یہ ٹیبلیٹ استعمال کرنے کیلئے گزشتہ پاس ورڈ ڈالیں۔"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"آپ کا آلہ فیکٹری کی ترتیبات پر ری سیٹ ہوا تھا۔ یہ آلہ استعمال کرنے کیلئے گزشتہ پاس ورڈ درج کریں۔"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"ہو سکتا ہے کہ آپ کا فون آہستہ چارج ہو رہا ہو یا چارج نہ ہو رہا ہو۔ فاسٹ چارجنگ کے لیے، تجویز کردہ کیبل اور ایڈاپٹر استعمال کریں۔"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"ہو سکتا ہے کہ آپ کا آلہ آہستہ چارج ہو رہا ہو یا چارج نہ ہو رہا ہو۔ فاسٹ چارجنگ کے لیے، تجویز کردہ کیبل اور ایڈاپٹر استعمال کریں۔"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"ہو سکتا ہے کہ آپ کا ٹیبلیٹ آہستہ چارج ہو رہا ہو یا چارج نہ ہو رہا ہو۔ فاسٹ چارجنگ کے لیے، تجویز کردہ کیبل اور ایڈاپٹر استعمال کریں۔"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"اپنے فون کو اَن لاک کئے بغیر"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"اپنے ٹیبلیٹ کو اَن لاک کئے بغیر"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"جب آپ اپنا فون پورٹریٹ اور لینڈ اسکیپ کے درمیان گھماتے ہیں"</string>
diff --git a/res-product/values-uz/strings.xml b/res-product/values-uz/strings.xml
index b3fa298..1a050c8 100644
--- a/res-product/values-uz/strings.xml
+++ b/res-product/values-uz/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefoningiz zavod sozlamalariga qaytarildi. Bu telefondan foydalanish uchun avvalgi parolni kiriting."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Planshet zavod sozlamalariga qaytarildi. Bu planshetdan foydalanish uchun avvalgi parolni kiriting."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Qurilma zavod sozlamalariga qaytarildi. Bu qurilmadan foydalanish uchun avvalgi parolni kiriting."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Telefoningiz sekin quvvat olyapti yoki umuman olmayapti. Tezroq quvvatlash uchun tavsiya etiladigan quvvat kabel va adapterdan foydalaning."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Qurilmangiz sekin quvvat olyapti yoki umuman olmayapti. Tezroq quvvatlash uchun tavsiya etiladigan quvvat kabel va adapterdan foydalaning."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Planshetingiz sekin quvvat olyapti yoki umuman olmayapti. Tezroq quvvatlash uchun tavsiya etiladigan quvvat kabel va adapterdan foydalaning."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefoningizni qulfdan chiqarmasdan"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Planshetingizni qulfdan chiqarmasdan"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefoningizni boʻyiga va eniga burganingizda"</string>
diff --git a/res-product/values-vi/strings.xml b/res-product/values-vi/strings.xml
index 48d7e84..9605a13 100644
--- a/res-product/values-vi/strings.xml
+++ b/res-product/values-vi/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Điện thoại đã được đặt lại về trạng thái cài đặt ban đầu. Để dùng điện thoại này, hãy nhập mật khẩu trước đây của bạn."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Máy tính bảng đã được đặt lại về trạng thái cài đặt ban đầu. Để dùng máy tính bảng này, hãy nhập mật khẩu trước đây của bạn."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Thiết bị đã được đặt lại về trạng thái cài đặt ban đầu. Để dùng thiết bị này, hãy nhập mật khẩu trước đây của bạn."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Điện thoại của bạn có thể sạc chậm hoặc không sạc được. Để sạc nhanh hơn, hãy dùng một bộ sạc và cáp sạc được đề xuất."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Thiết bị của bạn có thể sạc chậm hoặc không sạc được. Để sạc nhanh hơn, hãy dùng một bộ sạc và cáp sạc được đề xuất."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Máy tính bảng của bạn có thể sạc chậm hoặc không sạc được. Để sạc nhanh hơn, hãy dùng một bộ sạc và cáp sạc được đề xuất."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Không cần mở khoá điện thoại của bạn"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Không cần mở khoá máy tính bảng của bạn"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Khi bạn chuyển điện thoại giữa chế độ dọc và chế độ ngang"</string>
diff --git a/res-product/values-zh-rCN/strings.xml b/res-product/values-zh-rCN/strings.xml
index a59174a..95aa501 100644
--- a/res-product/values-zh-rCN/strings.xml
+++ b/res-product/values-zh-rCN/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"您的手机已恢复出厂设置。如要使用此手机,请输入之前使用的密码。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"您的平板电脑已恢复出厂设置。如要使用此平板电脑,请输入之前使用的密码。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"您的设备已恢复出厂设置。如要使用此设备,请输入之前使用的密码。"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"您的手机可能充电缓慢或未在充电。为了加快充电速度,请使用推荐的数据线和适配器。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"您的设备可能充电缓慢或未在充电。为了加快充电速度,请使用推荐的数据线和适配器。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"您的平板电脑可能充电缓慢或未在充电。为了加快充电速度,请使用推荐的数据线和适配器。"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"不解锁手机"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"不解锁平板电脑"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"当您在纵向与横向之间变换手机持握方向时"</string>
diff --git a/res-product/values-zh-rHK/strings.xml b/res-product/values-zh-rHK/strings.xml
index 27321d9..032e2d9 100644
--- a/res-product/values-zh-rHK/strings.xml
+++ b/res-product/values-zh-rHK/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"你的手機已回復原廠設定。如要使用此手機,請輸入先前的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"你的平板電腦已回復原廠設定。如要使用此平板電腦,請輸入先前的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"你的裝置已回復原廠設定。如要使用此裝置,請輸入先前的密碼。"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"手機可能充電速度緩慢或未充電。如要快速充電,請使用建議的連接線和電源適配器。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"裝置可能充電速度緩慢或未充電。如要快速充電,請使用建議的連接線和電源適配器。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"平板電腦可能充電速度緩慢或未充電。如要快速充電,請使用建議的連接線和電源適配器。"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"無需解鎖手機"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"無需解鎖平板電腦"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"喺手機轉成直向或者橫向嘅時候自動旋轉畫面"</string>
diff --git a/res-product/values-zh-rTW/strings.xml b/res-product/values-zh-rTW/strings.xml
index 81f09fa..de2ee3d 100644
--- a/res-product/values-zh-rTW/strings.xml
+++ b/res-product/values-zh-rTW/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"你的手機已恢復原廠設定。如要使用這支手機,請輸入先前使用的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"平板電腦已恢復原廠設定。如要使用這台平板電腦,請輸入先前使用的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"裝置已恢復原廠設定。如要使用這部裝置,請輸入先前使用的密碼。"</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"你的手機可能正在緩慢充電或未充電。如要快速充電,請使用建議的傳輸線和變壓器。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"你的裝置可能正在緩慢充電或未充電。如要快速充電,請使用建議的傳輸線和變壓器。"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"你的平板電腦可能正在緩慢充電或未充電。如要快速充電,請使用建議的傳輸線和變壓器。"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"不必解鎖手機"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"不必解鎖平板電腦"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"在手機轉成直向或橫向時自動旋轉畫面"</string>
diff --git a/res-product/values-zu/strings.xml b/res-product/values-zu/strings.xml
index f6ab35a..e4c0010 100644
--- a/res-product/values-zu/strings.xml
+++ b/res-product/values-zu/strings.xml
@@ -347,12 +347,9 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ifoni yakho isethwe kabusha kumasethingi asekuqaleni. Ukusebenzisa le foni, sicela ufake iphasiwedi yakho yangaphambilini."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Ithebulethi yakho isethwe kabusha kumasethingi asekuqaleni. Ukuze usebenzise le thebulethi, faka iphasiwedi yakho yangaphambilini."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Idivayisi yakho isethwe kabusha kumasethingi asekuqaleni. Ukuze usebenzise le divayisi, faka iphasiwedi yakho yangaphambilini."</string>
-    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
-    <skip />
-    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
-    <skip />
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Ifoni yakho kungenzeka ishaja kancane noma ayishaji. Ukuze ushaje ngokushesha, sebenzisa ikhebula ne-adaptha enconyiwe."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Icebo lakho ishaja kancane noma ayishaji. Ukuze ushaje ngokushesha, sebenzisa ikhebula ne-adaptha enconyiwe."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Ithebhulethi yakho kungenzeka ishaja kancane noma ayishaji. Ukuze ushaje ngokushesha, sebenzisa ikhebula ne-adaptha enconyiwe."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Ngaphandle kokuvula ifoni yakho"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Ngaphandle kokuvula ithebulethi yakho"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Uma uhambisa ifoni yakho phakathi kokuma ngobude nokuvundla"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c27187f..17569e0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12004,6 +12004,11 @@
     <!-- Keywords for the media controls setting [CHAR LIMIT=NONE]-->
     <string name="keywords_media_controls">media</string>
 
+    <!-- Title of toggle to enable or disable the media resumption on lockscreen [CHAR LIMIT=NONE]-->
+    <string name="camera_extensions_fallback_title">Allow camera software extensions</string>
+    <!-- Description of toggle to enable or disable the media resumption on lockscreen [CHAR LIMIT=NONE]-->
+    <string name="camera_extensions_fallback_description">Enables the default software implementation of advanced camera features, such as Eyes Free videography.</string>
+
     <!-- Summary for see all preference when bluetooth is disable [CHAR LIMIT=none]-->
     <string name="connected_device_see_all_summary">Bluetooth will turn on</string>
 
diff --git a/res/xml/more_security_privacy_settings.xml b/res/xml/more_security_privacy_settings.xml
index 5cd60f0..92c3fa7 100644
--- a/res/xml/more_security_privacy_settings.xml
+++ b/res/xml/more_security_privacy_settings.xml
@@ -93,6 +93,14 @@
             settings:controller=
                 "com.android.settings.sound.MediaControlsLockScreenPreferenceController" />
 
+        <!-- Allow software fallback for camera extensions -->
+        <SwitchPreference
+            android:key="privacy_camera_extensions_fallback"
+            android:title="@string/camera_extensions_fallback_title"
+            android:summary="@string/camera_extensions_fallback_description"
+            settings:controller=
+                "com.android.settings.privacy.CameraExtensionsFallbackPreferenceController" />
+
         <!-- Content Capture -->
         <!-- NOTE: content capture has a different preference, depending whether or not the
              ContentCaptureService implementations defines a custom settings activitiy on its manifest.
diff --git a/src/com/android/settings/applications/AppStateClonedAppsBridge.java b/src/com/android/settings/applications/AppStateClonedAppsBridge.java
index 719023d1..de0251d 100644
--- a/src/com/android/settings/applications/AppStateClonedAppsBridge.java
+++ b/src/com/android/settings/applications/AppStateClonedAppsBridge.java
@@ -76,7 +76,8 @@
     protected void updateExtraInfo(AppEntry app, String pkg, int uid) {
         // Display package if allowlisted but not yet cloned.
         // Or if the app is present in clone profile alongwith being in allowlist.
-        if (mAllowedApps.contains(pkg) && ((!mCloneProfileApps.contains(pkg) || (app.isCloned)))) {
+        if (mAllowedApps.contains(pkg)
+                && ((!mCloneProfileApps.contains(pkg) || (app.isClonedProfile())))) {
             app.extraInfo = Boolean.TRUE;
         } else {
             app.extraInfo = Boolean.FALSE;
diff --git a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
index 1d96688..cd3fd6b 100644
--- a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
+++ b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
@@ -231,7 +231,7 @@
     void updateAppCloneWidget(Context context, View.OnClickListener onClickListener,
             AppEntry entry) {
         if (mAddIcon != null) {
-            if (!entry.isCloned) {
+            if (!entry.isClonedProfile()) {
                 mAddIcon.setBackground(context.getDrawable(R.drawable.ic_add_24dp));
             } else {
                 mAddIcon.setBackground(context.getDrawable(R.drawable.ic_trash_can));
@@ -254,7 +254,7 @@
                 String packageName = entry.info.packageName;
 
                 if (mWidgetContainer != null) {
-                    if (!entry.isCloned) {
+                    if (!entry.isClonedProfile()) {
                         metricsFeatureProvider.action(context,
                                 SettingsEnums.ACTION_CREATE_CLONE_APP);
                         mAddIcon.setVisibility(View.INVISIBLE);
@@ -285,7 +285,7 @@
                             }
                         }.execute();
 
-                    } else if (entry.isCloned) {
+                    } else if (entry.isClonedProfile()) {
                         metricsFeatureProvider.action(context,
                                 SettingsEnums.ACTION_DELETE_CLONE_APP);
                         cloneBackend.uninstallClonedApp(packageName, /*allUsers*/ false,
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index e370f3e..c2fabff 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -295,6 +295,7 @@
     private String mVolumeUuid;
     private int mStorageType;
     private boolean mIsWorkOnly;
+    private boolean mIsPrivateProfileOnly;
     private int mWorkUserId;
     private boolean mIsPersonalOnly;
     private View mEmptyView;
@@ -378,6 +379,8 @@
                 == ProfileSelectFragment.ProfileType.PERSONAL;
         mIsWorkOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
                 == ProfileSelectFragment.ProfileType.WORK;
+        mIsPrivateProfileOnly = args != null && args.getInt(ProfileSelectFragment.EXTRA_PROFILE)
+                == ProfileSelectFragment.ProfileType.PRIVATE;
         mWorkUserId = args != null ? args.getInt(EXTRA_WORK_ID) : UserHandle.myUserId();
         if (mIsWorkOnly && mWorkUserId == UserHandle.myUserId()) {
             mWorkUserId = Utils.getManagedProfileId(mUserManager, UserHandle.myUserId());
@@ -660,6 +663,10 @@
         if (mIsWorkOnly) {
             compositeFilter = new CompoundFilter(compositeFilter, ApplicationsState.FILTER_WORK);
         }
+        if (mIsPrivateProfileOnly) {
+            compositeFilter =
+                    new CompoundFilter(compositeFilter, ApplicationsState.FILTER_PRIVATE_PROFILE);
+        }
         if (mIsPersonalOnly) {
             compositeFilter = new CompoundFilter(compositeFilter,
                     ApplicationsState.FILTER_PERSONAL);
diff --git a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
index 58ef509..0ef1d25 100644
--- a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
@@ -20,8 +20,8 @@
 import android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_UNABLE_TO_PROCESS
 import android.hardware.fingerprint.FingerprintManager
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 
 object Util {
   fun EnrollReason.toOriginalReason(): Int {
@@ -71,6 +71,4 @@
       this == FINGERPRINT_ERROR_CANCELED,
     )
   }
-
 }
-
diff --git a/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepo.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepo.kt
new file mode 100644
index 0000000..c045b0e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/FingerprintSensorRepo.kt
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.data.repository
+
+import android.hardware.biometrics.ComponentInfoInternal
+import android.hardware.biometrics.SensorLocationInternal
+import android.hardware.biometrics.SensorProperties
+import android.hardware.fingerprint.FingerprintManager
+import android.hardware.fingerprint.FingerprintSensorProperties
+import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
+import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import com.android.systemui.biometrics.shared.model.toFingerprintSensor
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.withContext
+
+/**
+ * Provides the [FingerprintSensor]
+ *
+ * TODO(b/313493336): Move this to systemui
+ */
+interface FingerprintSensorRepo {
+  /** Get the [FingerprintSensor] */
+  val fingerprintSensor: Flow<FingerprintSensor>
+}
+
+class FingerprintSensorRepoImpl(
+    fingerprintManager: FingerprintManager,
+    backgroundDispatcher: CoroutineDispatcher,
+    activityScope: CoroutineScope,
+) : FingerprintSensorRepo {
+
+  override val fingerprintSensor: Flow<FingerprintSensor> =
+    callbackFlow {
+        val callback =
+          object : IFingerprintAuthenticatorsRegisteredCallback.Stub() {
+            override fun onAllAuthenticatorsRegistered(
+              sensors: List<FingerprintSensorPropertiesInternal>
+            ) {
+              if (sensors.isEmpty()) {
+                trySend(DEFAULT_PROPS)
+              } else {
+                trySend(sensors[0].toFingerprintSensor())
+              }
+            }
+          }
+        withContext(backgroundDispatcher) {
+          fingerprintManager?.addAuthenticatorsRegisteredCallback(callback)
+        }
+        awaitClose {}
+      }
+      .stateIn(activityScope, started = SharingStarted.Eagerly, initialValue = DEFAULT_PROPS)
+
+    companion object {
+        private const val TAG = "FingerprintSensorRepoImpl"
+
+        private val DEFAULT_PROPS =
+            FingerprintSensorPropertiesInternal(
+                -1 /* sensorId */,
+                SensorProperties.STRENGTH_CONVENIENCE,
+                0 /* maxEnrollmentsPerUser */,
+                listOf<ComponentInfoInternal>(),
+                FingerprintSensorProperties.TYPE_UNKNOWN,
+                false /* halControlsIllumination */,
+                true /* resetLockoutRequiresHardwareAuthToken */,
+                listOf<SensorLocationInternal>(SensorLocationInternal.DEFAULT),
+            )
+                .toFingerprintSensor()
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/repository/PressToAuthProviderImpl.kt b/src/com/android/settings/biometrics/fingerprint2/data/repository/PressToAuthRepo.kt
similarity index 67%
rename from src/com/android/settings/biometrics/fingerprint2/repository/PressToAuthProviderImpl.kt
rename to src/com/android/settings/biometrics/fingerprint2/data/repository/PressToAuthRepo.kt
index 38c5335..5909825 100644
--- a/src/com/android/settings/biometrics/fingerprint2/repository/PressToAuthProviderImpl.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/data/repository/PressToAuthRepo.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,13 +14,24 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.repository
+package com.android.settings.biometrics.fingerprint2.data.repository
 
 import android.content.Context
 import android.provider.Settings
-import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
 
-class PressToAuthProviderImpl(val context: Context) : PressToAuthProvider {
+/** Interface that indicates if press to auth is on or off. */
+interface PressToAuthRepo {
+  /** Indicates true if the PressToAuth feature is enabled, false otherwise. */
+  val isEnabled: Boolean
+}
+
+/** Indicates whether or not the press to auth feature is enabled. */
+class PressToAuthRepoImpl(private val context: Context) : PressToAuthRepo {
+  /**
+   * Gets the status of the press to auth feature.
+   *
+   * Returns whether or not the press to auth feature is enabled.
+   */
   override val isEnabled: Boolean
     get() {
       var toReturn: Int =
@@ -43,7 +54,7 @@
           context.contentResolver,
           Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
           toReturn,
-          context.userId
+          context.userId,
         )
       }
       return (toReturn == 1)
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
index 984d04c..1fbeb44 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
@@ -26,16 +26,16 @@
 import com.android.settings.biometrics.GatekeeperPasswordProvider
 import com.android.settings.biometrics.fingerprint2.conversion.Util.toEnrollError
 import com.android.settings.biometrics.fingerprint2.conversion.Util.toOriginalReason
-import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintFlow
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
-import com.android.settings.biometrics.fingerprint2.shared.model.SetupWizard
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepo
+import com.android.settings.biometrics.fingerprint2.data.repository.PressToAuthRepo
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
+import com.android.settings.biometrics.fingerprint2.lib.model.SetupWizard
 import com.android.settings.password.ChooseLockSettingsHelper
-import com.android.systemui.biometrics.shared.model.toFingerprintSensor
 import kotlin.coroutines.resume
 import kotlin.coroutines.suspendCoroutine
 import kotlinx.coroutines.CancellableContinuation
@@ -57,8 +57,9 @@
   applicationContext: Context,
   private val backgroundDispatcher: CoroutineDispatcher,
   private val fingerprintManager: FingerprintManager,
+  fingerprintSensorRepo: FingerprintSensorRepo,
   private val gatekeeperPasswordProvider: GatekeeperPasswordProvider,
-  private val pressToAuthProvider: PressToAuthProvider,
+  private val pressToAuthRepo: PressToAuthRepo,
   private val fingerprintFlow: FingerprintFlow,
 ) : FingerprintManagerInteractor {
 
@@ -100,13 +101,7 @@
     )
   }
 
-  override val sensorPropertiesInternal = flow {
-    val sensorPropertiesInternal = fingerprintManager.sensorPropertiesInternal
-    emit(
-      if (sensorPropertiesInternal.isEmpty()) null
-      else sensorPropertiesInternal.first().toFingerprintSensor()
-    )
-  }
+  override val sensorPropertiesInternal = fingerprintSensorRepo.fingerprintSensor
 
   override val maxEnrollableFingerprints = flow { emit(maxFingerprints) }
 
@@ -136,8 +131,7 @@
             totalSteps = remaining + 1
           }
 
-          trySend(FingerEnrollState.EnrollProgress(remaining, totalSteps!!)).onFailure {
-            error ->
+          trySend(FingerEnrollState.EnrollProgress(remaining, totalSteps!!)).onFailure { error ->
             Log.d(TAG, "onEnrollmentProgress($remaining) failed to send, due to $error")
           }
 
@@ -148,13 +142,16 @@
         }
 
         override fun onEnrollmentHelp(helpMsgId: Int, helpString: CharSequence?) {
-          trySend(FingerEnrollState.EnrollHelp(helpMsgId, helpString.toString()))
-            .onFailure { error -> Log.d(TAG, "onEnrollmentHelp failed to send, due to $error") }
+          trySend(FingerEnrollState.EnrollHelp(helpMsgId, helpString.toString())).onFailure { error
+            ->
+            Log.d(TAG, "onEnrollmentHelp failed to send, due to $error")
+          }
         }
 
         override fun onEnrollmentError(errMsgId: Int, errString: CharSequence?) {
-          trySend(errMsgId.toEnrollError(fingerprintFlow == SetupWizard))
-            .onFailure { error -> Log.d(TAG, "onEnrollmentError failed to send, due to $error") }
+          trySend(errMsgId.toEnrollError(fingerprintFlow == SetupWizard)).onFailure { error ->
+            Log.d(TAG, "onEnrollmentError failed to send, due to $error")
+          }
           Log.d(TAG, "onEnrollmentError($errMsgId)")
           streamEnded = true
           enrollRequestOutstanding.update { false }
@@ -185,14 +182,14 @@
         override fun onRemovalError(
           fp: android.hardware.fingerprint.Fingerprint,
           errMsgId: Int,
-          errString: CharSequence
+          errString: CharSequence,
         ) {
           it.resume(false)
         }
 
         override fun onRemovalSucceeded(
           fp: android.hardware.fingerprint.Fingerprint?,
-          remaining: Int
+          remaining: Int,
         ) {
           it.resume(true)
         }
@@ -200,7 +197,7 @@
     fingerprintManager.remove(
       android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
       applicationContext.userId,
-      callback
+      callback,
     )
   }
 
@@ -215,7 +212,7 @@
   }
 
   override suspend fun pressToAuthEnabled(): Boolean = suspendCancellableCoroutine {
-    it.resume(pressToAuthProvider.isEnabled)
+    it.resume(pressToAuthRepo.isEnabled)
   }
 
   override suspend fun authenticate(): FingerprintAuthAttemptModel =
@@ -249,7 +246,7 @@
         cancellationSignal,
         authenticationCallback,
         null,
-        applicationContext.userId
+        applicationContext.userId,
       )
     }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp b/src/com/android/settings/biometrics/fingerprint2/lib/Android.bp
similarity index 100%
rename from src/com/android/settings/biometrics/fingerprint2/shared/Android.bp
rename to src/com/android/settings/biometrics/fingerprint2/lib/Android.bp
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/AndroidManifest.xml b/src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml
similarity index 91%
rename from src/com/android/settings/biometrics/fingerprint2/shared/AndroidManifest.xml
rename to src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml
index e2c97fc..250f0af 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/AndroidManifest.xml
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/AndroidManifest.xml
@@ -14,5 +14,5 @@
   ~ limitations under the License.
   -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.settings.biometrics.fingerprint2.shared">
+    package="com.android.settings.biometrics.fingerprint2.lib">
 </manifest>
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/FingerprintManagerInteractor.kt
similarity index 82%
rename from src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt
rename to src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/FingerprintManagerInteractor.kt
index 94afa49..6e6df23 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/domain/interactor/FingerprintManagerInteractor.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.domain.interactor
+package com.android.settings.biometrics.fingerprint2.lib.domain.interactor
 
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
 import kotlinx.coroutines.flow.Flow
 
@@ -56,12 +56,12 @@
 
   /**
    * Runs [FingerprintManager.enroll] with the [hardwareAuthToken] and [EnrollReason] for this
-   * enrollment. Returning the [FingerEnrollState] that represents this fingerprint
-   * enrollment state.
+   * enrollment. Returning the [FingerEnrollState] that represents this fingerprint enrollment
+   * state.
    */
   suspend fun enroll(
-      hardwareAuthToken: ByteArray?,
-      enrollReason: EnrollReason,
+    hardwareAuthToken: ByteArray?,
+    enrollReason: EnrollReason,
   ): Flow<FingerEnrollState>
 
   /**
@@ -78,5 +78,4 @@
 
   /** Indicates if the press to auth feature has been enabled */
   suspend fun pressToAuthEnabled(): Boolean
-
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt b/src/com/android/settings/biometrics/fingerprint2/lib/model/EnrollReason.kt
similarity index 93%
rename from src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt
rename to src/com/android/settings/biometrics/fingerprint2/lib/model/EnrollReason.kt
index 47a0af0..3cc6497 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/model/EnrollReason.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.model
+package com.android.settings.biometrics.fingerprint2.lib.model
 
 /** The reason for enrollment */
 enum class EnrollReason {
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt
similarity index 81%
rename from src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
rename to src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt
index 4766d59..683397f 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.model
+package com.android.settings.biometrics.fingerprint2.lib.model
 
 import android.annotation.StringRes
 
@@ -28,16 +28,12 @@
    *
    * Progress is obtained by (totalStepsRequired - remainingSteps) / totalStepsRequired
    */
-  data class EnrollProgress(
-    val remainingSteps: Int,
-    val totalStepsRequired: Int,
-  ) : FingerEnrollState()
+  data class EnrollProgress(val remainingSteps: Int, val totalStepsRequired: Int) :
+    FingerEnrollState()
 
   /** Represents that recoverable error has been encountered during enrollment. */
-  data class EnrollHelp(
-    @StringRes val helpMsgId: Int,
-    val helpString: String,
-  ) : FingerEnrollState()
+  data class EnrollHelp(@StringRes val helpMsgId: Int, val helpString: String) :
+    FingerEnrollState()
 
   /** Represents that an unrecoverable error has been encountered and the operation is complete. */
   data class EnrollError(
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintAuthAttemptModel.kt b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintAuthAttemptModel.kt
new file mode 100644
index 0000000..45259e9
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintAuthAttemptModel.kt
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.lib.model
+
+/** Information indicating whether an auth was successful or not */
+sealed class FingerprintAuthAttemptModel {
+  /** Indicates a successful auth attempt has occurred for [fingerId] */
+  data class Success(val fingerId: Int) : FingerprintAuthAttemptModel()
+
+  /** Indicates a failed auth attempt has occurred. */
+  data class Error(val error: Int, val message: String) : FingerprintAuthAttemptModel()
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintData.kt
similarity index 67%
rename from src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
rename to src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintData.kt
index e776b9a..62aa2c7 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintData.kt
@@ -14,14 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.data.repository
+package com.android.settings.biometrics.fingerprint2.lib.model
 
-/**
- * Interface that indicates if press to auth is on or off.
- */
-interface PressToAuthProvider {
-    /**
-     * Indicates true if the PressToAuth feature is enabled, false otherwise.
-     */
-    val isEnabled: Boolean
-}
\ No newline at end of file
+/** Basic information about an enrolled fingerprint */
+data class FingerprintData(val name: String, val fingerId: Int, val deviceId: Long)
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintFlow.kt b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintFlow.kt
similarity index 83%
rename from src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintFlow.kt
rename to src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintFlow.kt
index 93c7577..40d7a03 100644
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintFlow.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerprintFlow.kt
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package com.android.settings.biometrics.fingerprint2.shared.model
+package com.android.settings.biometrics.fingerprint2.lib.model
 
 /**
- * The [FingerprintFlow] for fingerprint enrollment indicates information on how the flow should behave.
+ * The [FingerprintFlow] for fingerprint enrollment indicates information on how the flow should
+ * behave.
  */
 sealed class FingerprintFlow
 
@@ -32,3 +33,6 @@
 
 /** Flow to specify settings type */
 data object Settings : FingerprintFlow()
+
+/** Indicates that the fast enroll experience should occur */
+data object FastEnroll : FingerprintFlow()
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt
deleted file mode 100644
index b2aa25c..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.shared.model
-
-data class FingerprintData(
-  val name: String,
-  val fingerId: Int,
-  val deviceId: Long,
-)
-
-sealed class FingerprintAuthAttemptModel {
-  data class Success(
-    val fingerId: Int,
-  ) : FingerprintAuthAttemptModel()
-
-  data class Error(
-    val error: Int,
-    val message: String,
-  ) : FingerprintAuthAttemptModel()
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
index 06307a4..f7e6135 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
@@ -21,7 +21,6 @@
 import android.content.res.Configuration
 import android.hardware.fingerprint.FingerprintManager
 import android.os.Bundle
-import android.provider.Settings
 import android.util.Log
 import android.view.accessibility.AccessibilityManager
 import androidx.activity.result.contract.ActivityResultContracts
@@ -31,16 +30,18 @@
 import androidx.lifecycle.lifecycleScope
 import com.android.internal.widget.LockPatternUtils
 import com.android.settings.R
+import com.android.settings.SettingsApplication
 import com.android.settings.SetupWizardUtils
 import com.android.settings.Utils.SETTINGS_PACKAGE_NAME
 import com.android.settings.biometrics.BiometricEnrollBase
 import com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST
 import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
 import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepoImpl
+import com.android.settings.biometrics.fingerprint2.data.repository.PressToAuthRepoImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.shared.model.Default
-import com.android.settings.biometrics.fingerprint2.shared.model.SetupWizard
-import com.android.settings.biometrics.fingerprint2.repository.PressToAuthProviderImpl
+import com.android.settings.biometrics.fingerprint2.lib.model.Default
+import com.android.settings.biometrics.fingerprint2.lib.model.SetupWizard
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollConfirmationV2Fragment
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollEnrollingV2Fragment
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollFindSensorV2Fragment
@@ -49,20 +50,24 @@
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.AccessibilityViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Confirmation
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintAction
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollIntroViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.ConfirmDeviceCredential
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Confirmation
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Init
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Introduction
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.TransitionStep
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Finish
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FoldStateViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Intro
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.LaunchConfirmDeviceCredential
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
 import com.android.settings.password.ChooseLockGeneric
 import com.android.settings.password.ChooseLockSettingsHelper
@@ -71,7 +76,6 @@
 import com.google.android.setupcompat.util.WizardManagerHelper
 import com.google.android.setupdesign.util.ThemeHelper
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.combine
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.launch
 
@@ -83,7 +87,7 @@
  */
 class FingerprintEnrollmentV2Activity : FragmentActivity() {
   private lateinit var fingerprintEnrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel
-  private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
+  private lateinit var navigationViewModel: FingerprintNavigationViewModel
   private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
   private lateinit var fingerprintEnrollViewModel: FingerprintEnrollViewModel
   private lateinit var accessibilityViewModel: AccessibilityViewModel
@@ -91,6 +95,7 @@
   private lateinit var orientationStateViewModel: OrientationStateViewModel
   private lateinit var fingerprintScrollViewModel: FingerprintScrollViewModel
   private lateinit var backgroundViewModel: BackgroundViewModel
+  private lateinit var fingerprintFlowViewModel: FingerprintFlowViewModel
   private val coroutineDispatcher = Dispatchers.Default
 
   /** Result listener for ChooseLock activity flow. */
@@ -119,6 +124,7 @@
     super.onResume()
     backgroundViewModel.inForeground()
   }
+
   override fun onConfigurationChanged(newConfig: Configuration) {
     super.onConfigurationChanged(newConfig)
     foldStateViewModel.onConfigurationChange(newConfig)
@@ -127,8 +133,20 @@
   private fun onConfirmDevice(resultCode: Int, data: Intent?) {
     val wasSuccessful = resultCode == RESULT_FINISHED || resultCode == Activity.RESULT_OK
     val gateKeeperPasswordHandle = data?.getExtra(EXTRA_KEY_GK_PW_HANDLE) as Long?
+
     lifecycleScope.launch {
+      val confirmDeviceResult =
+        if (wasSuccessful) {
+          FingerprintAction.CONFIRM_DEVICE_SUCCESS
+        } else {
+          FingerprintAction.CONFIRM_DEVICE_FAIL
+        }
       gatekeeperViewModel.onConfirmDevice(wasSuccessful, gateKeeperPasswordHandle)
+      navigationViewModel.update(
+        confirmDeviceResult,
+        ConfirmDeviceCredential::class,
+        "$TAG#onConfirmDevice",
+      )
     }
   }
 
@@ -156,14 +174,21 @@
       ViewModelProvider(this, BackgroundViewModel.BackgroundViewModelFactory())[
         BackgroundViewModel::class.java]
 
+    fingerprintFlowViewModel =
+      ViewModelProvider(this, FingerprintFlowViewModel.FingerprintFlowViewModelFactory(enrollType))[
+        FingerprintFlowViewModel::class.java]
 
-    val interactor =
+    val fingerprintSensorRepo =
+      FingerprintSensorRepoImpl(fingerprintManager, backgroundDispatcher, lifecycleScope)
+
+    val fingerprintManagerInteractor =
       FingerprintManagerInteractorImpl(
         context,
         backgroundDispatcher,
         fingerprintManager,
+        fingerprintSensorRepo,
         GatekeeperPasswordProvider(LockPatternUtils(context)),
-        PressToAuthProviderImpl(context),
+        PressToAuthRepoImpl(context),
         enrollType,
       )
 
@@ -171,27 +196,37 @@
     val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
     val gatekeeperInfo = FingerprintGatekeeperViewModel.toGateKeeperInfo(challenge, token)
 
+    val hasConfirmedDeviceCredential = gatekeeperInfo is GatekeeperInfo.GatekeeperPasswordInfo
+
+    navigationViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintNavigationViewModel.FingerprintNavigationViewModelFactory(
+          Init,
+          hasConfirmedDeviceCredential,
+          fingerprintFlowViewModel,
+          fingerprintManagerInteractor,
+        ),
+      )[FingerprintNavigationViewModel::class.java]
+    // Initialize FingerprintEnrollIntroViewModel
+    ViewModelProvider(
+      this,
+      FingerprintEnrollIntroViewModel.FingerprintEnrollIntoViewModelFactory(
+        navigationViewModel,
+        fingerprintFlowViewModel,
+        fingerprintManagerInteractor,
+      ),
+    )[FingerprintEnrollIntroViewModel::class.java]
+
     gatekeeperViewModel =
       ViewModelProvider(
         this,
         FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
           gatekeeperInfo,
-          interactor,
-        )
+          fingerprintManagerInteractor,
+        ),
       )[FingerprintGatekeeperViewModel::class.java]
 
-    navigationViewModel =
-      ViewModelProvider(
-        this,
-        FingerprintEnrollNavigationViewModel.FingerprintEnrollNavigationViewModelFactory(
-          backgroundDispatcher,
-          interactor,
-          gatekeeperViewModel,
-          gatekeeperInfo is GatekeeperInfo.GatekeeperPasswordInfo,
-          enrollType,
-        )
-      )[FingerprintEnrollNavigationViewModel::class.java]
-
     // Initialize FoldStateViewModel
     foldStateViewModel =
       ViewModelProvider(this, FoldStateViewModel.FoldStateViewModelFactory(context))[
@@ -203,10 +238,10 @@
       ViewModelProvider(
         this,
         FingerprintEnrollViewModel.FingerprintEnrollViewModelFactory(
-          interactor,
+          fingerprintManagerInteractor,
           gatekeeperViewModel,
           navigationViewModel,
-        )
+        ),
       )[FingerprintEnrollViewModel::class.java]
 
     // Initialize scroll view model
@@ -220,7 +255,7 @@
         this,
         AccessibilityViewModel.AccessibilityViewModelFactory(
           getSystemService(AccessibilityManager::class.java)!!
-        )
+        ),
       )[AccessibilityViewModel::class.java]
 
     // Initialize OrientationViewModel
@@ -234,8 +269,8 @@
         this,
         FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingViewModelFactory(
           fingerprintEnrollViewModel,
-          backgroundViewModel
-        )
+          backgroundViewModel,
+        ),
       )[FingerprintEnrollEnrollingViewModel::class.java]
 
     // Initialize FingerprintEnrollFindSensorViewModel
@@ -248,36 +283,48 @@
         backgroundViewModel,
         accessibilityViewModel,
         foldStateViewModel,
-        orientationStateViewModel
-      )
+        orientationStateViewModel,
+        fingerprintFlowViewModel,
+      ),
     )[FingerprintEnrollFindSensorViewModel::class.java]
 
     // Initialize RFPS View Model
     ViewModelProvider(
       this,
-      RFPSViewModel.RFPSViewModelFactory(fingerprintEnrollEnrollingViewModel)
+      RFPSViewModel.RFPSViewModelFactory(fingerprintEnrollEnrollingViewModel, navigationViewModel),
     )[RFPSViewModel::class.java]
+    lifecycleScope.launch {
+      navigationViewModel.currentStep.collect { step ->
+        if (step is Init) {
+          Log.d(TAG, "FingerprintNav.init($step)")
+          navigationViewModel.update(FingerprintAction.ACTIVITY_CREATED, Init::class, "$TAG#init")
+        }
+      }
+    }
 
     lifecycleScope.launch {
-      navigationViewModel.navigationViewModel
-        .filterNotNull()
-        .combine(fingerprintEnrollViewModel.sensorType) { nav, sensorType -> Pair(nav, sensorType) }
-        .collect { (nav, sensorType) ->
-          Log.d(TAG, "navigationStep $nav")
-          fingerprintEnrollViewModel.sensorTypeCached = sensorType
-          val isForward = nav.forward
-          val currStep = nav.currStep
-          val theClass: Class<Fragment>? =
-            when (currStep) {
-              Confirmation -> FingerprintEnrollConfirmationV2Fragment::class.java as Class<Fragment>
-              Education -> FingerprintEnrollFindSensorV2Fragment::class.java as Class<Fragment>
+      navigationViewModel.navigateTo.filterNotNull().collect { step ->
+        if (step is ConfirmDeviceCredential) {
+          launchConfirmOrChooseLock(userId)
+          navigationViewModel.update(
+            FingerprintAction.TRANSITION_FINISHED,
+            TransitionStep::class,
+            "$TAG#launchConfirmOrChooseLock",
+          )
+        } else {
+          val theClass: Fragment? =
+            when (step) {
+              Confirmation -> FingerprintEnrollConfirmationV2Fragment()
+              is Education -> {
+                FingerprintEnrollFindSensorV2Fragment(step.sensor.sensorType)
+              }
               is Enrollment -> {
-                when (sensorType) {
-                  FingerprintSensorType.REAR -> RFPSEnrollFragment::class.java as Class<Fragment>
-                  else -> FingerprintEnrollEnrollingV2Fragment::class.java as Class<Fragment>
+                when (step.sensor.sensorType) {
+                  FingerprintSensorType.REAR -> RFPSEnrollFragment()
+                  else -> FingerprintEnrollEnrollingV2Fragment()
                 }
               }
-              Intro -> FingerprintEnrollIntroV2Fragment::class.java as Class<Fragment>
+              Introduction -> FingerprintEnrollIntroV2Fragment()
               else -> null
             }
 
@@ -291,19 +338,31 @@
               .setReorderingAllowed(true)
               .add(R.id.fragment_container_view, theClass, null)
               .commit()
-          } else {
-
-            if (currStep is Finish) {
-              if (currStep.resultCode != null) {
-                finishActivity(currStep.resultCode)
-              } else {
-                finish()
-              }
-            } else if (currStep == LaunchConfirmDeviceCredential) {
-              launchConfirmOrChooseLock(userId)
-            }
+            navigationViewModel.update(
+              FingerprintAction.TRANSITION_FINISHED,
+              TransitionStep::class,
+              "$TAG#fragmentManager.add($theClass)",
+            )
           }
         }
+      }
+    }
+
+    lifecycleScope.launch {
+      navigationViewModel.shouldFinish.filterNotNull().collect {
+        Log.d(TAG, "FingerprintSettingsNav.finishing($it)")
+        if (it.result != null) {
+          finishActivity(it.result as Int)
+        } else {
+          finish()
+        }
+      }
+    }
+
+    lifecycleScope.launch {
+      navigationViewModel.currentScreen.filterNotNull().collect { screen ->
+        Log.d(TAG, "FingerprintSettingsNav.currentScreen($screen)")
+      }
     }
 
     val fromSettingsSummary =
@@ -313,7 +372,7 @@
     ) {
       overridePendingTransition(
         com.google.android.setupdesign.R.anim.sud_slide_next_in,
-        com.google.android.setupdesign.R.anim.sud_slide_next_out
+        com.google.android.setupdesign.R.anim.sud_slide_next_out,
       )
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
index b12491f..fd07a95 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
@@ -18,8 +18,6 @@
 
 import android.os.Bundle
 import androidx.fragment.app.Fragment
-import androidx.lifecycle.ViewModelProvider
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
 
 /**
  * A fragment to indicate that fingerprint enrollment has been completed.
@@ -31,9 +29,5 @@
 
   override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
-    if (savedInstanceState == null) {
-      val navigationViewModel =
-        ViewModelProvider(requireActivity())[FingerprintEnrollNavigationViewModel::class.java]
-    }
   }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
index 0140d57..be30346 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
@@ -18,18 +18,12 @@
 
 import android.os.Bundle
 import androidx.fragment.app.Fragment
-import androidx.lifecycle.ViewModelProvider
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
 
 /** A fragment that is responsible for enrolling a users fingerprint. */
 class FingerprintEnrollEnrollingV2Fragment : Fragment(R.layout.fingerprint_enroll_enrolling) {
 
   override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
-    if (savedInstanceState == null) {
-      val navigationViewModel =
-        ViewModelProvider(requireActivity())[FingerprintEnrollNavigationViewModel::class.java]
-    }
   }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
index bfd4264..9603e6b 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
@@ -50,7 +50,7 @@
  * 2. Explain to the user how the enrollment process shown by [FingerprintEnrollEnrollingV2Fragment]
  *    will work.
  */
-class FingerprintEnrollFindSensorV2Fragment : Fragment() {
+class FingerprintEnrollFindSensorV2Fragment(val sensorType: FingerprintSensorType) : Fragment() {
   // This is only for non-udfps or non-sfps sensor. For udfps and sfps, we show lottie.
   private var animation: FingerprintFindSensorAnimation? = null
 
@@ -62,7 +62,7 @@
   override fun onCreateView(
     inflater: LayoutInflater,
     container: ViewGroup?,
-    savedInstanceState: Bundle?
+    savedInstanceState: Bundle?,
   ): View? {
 
     val sensorType =
@@ -104,8 +104,7 @@
       }
       lifecycleScope.launch {
         viewModel.showRfpsAnimation.collect {
-          animation =
-            view.findViewById(R.id.fingerprint_sensor_location_animation)
+          animation = view.findViewById(R.id.fingerprint_sensor_location_animation)
           animation!!.startAnimation()
         }
       }
@@ -128,14 +127,7 @@
     footerBarMixin.secondaryButton =
       FooterButton.Builder(requireActivity())
         .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-        .setListener {
-          run {
-            // TODO: Show the dialog for suw
-            Log.d(TAG, "onSkipClicked")
-            // TODO: Finish activity in the root activity instead.
-            requireActivity().finish()
-          }
-        }
+        .setListener { viewModel.secondaryButtonClicked() }
         .setButtonType(FooterButton.ButtonType.SKIP)
         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
         .build()
@@ -146,10 +138,8 @@
       FooterButton.Builder(requireActivity())
         .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
         .setListener {
-          run {
-            Log.d(TAG, "onStartButtonClick")
-            viewModel.proceedToEnrolling()
-          }
+          Log.d(TAG, "onStartButtonClick")
+          viewModel.proceedToEnrolling()
         }
         .setButtonType(FooterButton.ButtonType.NEXT)
         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
@@ -159,7 +149,7 @@
   private fun setupLottie(
     view: View,
     lottieAnimation: Int,
-    lottieClickListener: View.OnClickListener? = null
+    lottieClickListener: View.OnClickListener? = null,
   ) {
     val illustrationLottie: LottieAnimationView? = view.findViewById(R.id.illustration_lottie)
     illustrationLottie?.setAnimation(lottieAnimation)
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
index 32d201d..53d0ddf 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
@@ -24,7 +24,6 @@
 import android.os.Bundle
 import android.text.Html
 import android.text.method.LinkMovementMethod
-import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
@@ -36,9 +35,8 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.lifecycleScope
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.Unicorn
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.lib.model.Unicorn
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollIntroViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
@@ -48,6 +46,7 @@
 import com.google.android.setupdesign.template.RequireScrollMixin
 import com.google.android.setupdesign.util.DynamicColorPalette
 import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.launch
 
 private const val TAG = "FingerprintEnrollmentIntroV2Fragment"
@@ -96,16 +95,14 @@
   private lateinit var footerBarMixin: FooterBarMixin
   private lateinit var textModel: TextModel
 
-  // Note that the ViewModels cannot be requested before the onCreate call
-  private val navigationViewModel: FingerprintEnrollNavigationViewModel by lazy {
-    viewModelProvider[FingerprintEnrollNavigationViewModel::class.java]
+  private val viewModel: FingerprintEnrollIntroViewModel by lazy {
+    viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
   }
-  private val fingerprintViewModel: FingerprintEnrollViewModel by lazy {
-    viewModelProvider[FingerprintEnrollViewModel::class.java]
-  }
+
   private val fingerprintScrollViewModel: FingerprintScrollViewModel by lazy {
     viewModelProvider[FingerprintScrollViewModel::class.java]
   }
+
   private val gateKeeperViewModel: FingerprintGatekeeperViewModel by lazy {
     viewModelProvider[FingerprintGatekeeperViewModel::class.java]
   }
@@ -113,17 +110,16 @@
   override fun onCreateView(
     inflater: LayoutInflater,
     container: ViewGroup?,
-    savedInstanceState: Bundle?
+    savedInstanceState: Bundle?,
   ): View? =
     super.onCreateView(inflater, container, savedInstanceState).also { theView ->
       val view = theView!!
 
       viewLifecycleOwner.lifecycleScope.launch {
-        combine(
-            navigationViewModel.fingerprintFlow,
-            fingerprintViewModel.sensorType,
-          ) { enrollType, sensorType ->
-            Pair(enrollType, sensorType)
+        combine(viewModel.fingerprintFlow, viewModel.sensor.filterNotNull()) {
+            enrollType,
+            sensorType ->
+            Pair(enrollType, sensorType.sensorType)
           }
           .collect { (enrollType, sensorType) ->
             textModel =
@@ -147,7 +143,7 @@
                 R.id.icon_trash_can,
                 R.id.icon_info,
                 R.id.icon_shield,
-                R.id.icon_link
+                R.id.icon_link,
               )
               .forEach { icon ->
                 view.requireViewById<ImageView>(icon).drawable.colorFilter = colorFilter
@@ -186,31 +182,24 @@
       return view
     }
 
-  /**
-   * TODO (b/305269201): This link isn't displaying for screenshot tests.
-   */
+  /** TODO (b/305269201): This link isn't displaying for screenshot tests. */
   private fun setFooterLink(view: View) {
     val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
     footerLink.movementMethod = LinkMovementMethod.getInstance()
     footerLink.text =
       Html.fromHtml(
         getString(R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more),
-        Html.FROM_HTML_MODE_LEGACY
+        Html.FROM_HTML_MODE_LEGACY,
       )
   }
 
-  private fun setupFooterBarAndScrollView(
-    view: View,
-  ) {
+  private fun setupFooterBarAndScrollView(view: View) {
     val scrollView: ScrollView =
       view.requireViewById(com.google.android.setupdesign.R.id.sud_scroll_view)
     scrollView.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
     // Next button responsible for starting the next fragment.
     val onNextButtonClick: View.OnClickListener =
-      View.OnClickListener {
-        Log.d(TAG, "OnNextClicked")
-        navigationViewModel.nextStep()
-      }
+      View.OnClickListener { viewModel.primaryButtonClicked() }
 
     val layout: GlifLayout = view.findViewById(R.id.setup_wizard_layout)!!
     footerBarMixin = layout.getMixin(FooterBarMixin::class.java)
@@ -225,11 +214,11 @@
     footerBarMixin.setSecondaryButton(
       FooterButton.Builder(requireContext())
         .setText(textModel.negativeButton)
-        .setListener({ Log.d(TAG, "prevClicked") })
+        .setListener { viewModel.onSecondaryButtonClicked() }
         .setButtonType(FooterButton.ButtonType.NEXT)
         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
         .build(),
-      true /* usePrimaryStyle */
+      true, /* usePrimaryStyle */
     )
 
     val primaryButton = footerBarMixin.primaryButton
@@ -242,7 +231,7 @@
       requireContext(),
       primaryButton,
       R.string.security_settings_face_enroll_introduction_more,
-      onNextButtonClick
+      onNextButtonClick,
     )
 
     requireScrollMixin.setOnRequireScrollStateChangedListener { scrollNeeded: Boolean ->
@@ -257,7 +246,7 @@
         if (consented) {
           primaryButton.setText(
             requireContext(),
-            R.string.security_settings_fingerprint_enroll_introduction_agree
+            R.string.security_settings_fingerprint_enroll_introduction_agree,
           )
           secondaryButton.visibility = View.VISIBLE
         } else {
@@ -309,7 +298,7 @@
   private fun getIconColorFilter(): PorterDuffColorFilter {
     return PorterDuffColorFilter(
       DynamicColorPalette.getColor(context, DynamicColorPalette.ColorType.ACCENT),
-      PorterDuff.Mode.SRC_IN
+      PorterDuff.Mode.SRC_IN,
     )
   }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt
index d8c2f5a..c6e284a 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/fragment/RFPSEnrollFragment.kt
@@ -32,13 +32,15 @@
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.repeatOnLifecycle
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSIconTouchViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.viewmodel.RFPSViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.FingerprintErrorDialog
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.IconTouchDialog
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.modules.enrolling.rfps.ui.widget.RFPSProgressBar
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment
 import com.google.android.setupcompat.template.FooterBarMixin
@@ -49,8 +51,6 @@
 import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.launch
 
-private const val TAG = "RFPSEnrollFragment"
-
 /** This fragment is responsible for taking care of rear fingerprint enrollment. */
 class RFPSEnrollFragment : Fragment(R.layout.fingerprint_v2_rfps_enroll_enrolling) {
 
@@ -74,11 +74,14 @@
   private val backgroundViewModel: BackgroundViewModel by lazy {
     ViewModelProvider(requireActivity())[BackgroundViewModel::class.java]
   }
+  private val navigationViewModel: FingerprintNavigationViewModel by lazy {
+    ViewModelProvider(requireActivity())[FingerprintNavigationViewModel::class.java]
+  }
 
   override fun onCreateView(
     inflater: LayoutInflater,
     container: ViewGroup?,
-    savedInstanceState: Bundle?
+    savedInstanceState: Bundle?,
   ): View? {
     val view = super.onCreateView(inflater, container, savedInstanceState)!!
     val fragment = this
@@ -99,7 +102,7 @@
     footerBarMixin.secondaryButton =
       FooterButton.Builder(context)
         .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-        .setListener { Log.e(TAG, "skip enrollment!") }
+        .setListener { rfpsViewModel.negativeButtonClicked() }
         .setButtonType(FooterButton.ButtonType.SKIP)
         .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
         .build()
@@ -150,7 +153,7 @@
     viewLifecycleOwner.lifecycleScope.launch {
       backgroundViewModel.background
         .filter { inBackground -> inBackground }
-        .collect { rfpsViewModel.stopEnrollment() }
+        .collect { rfpsViewModel.didGoToBackground() }
     }
 
     viewLifecycleOwner.lifecycleScope.launch {
@@ -171,7 +174,6 @@
           .setDuration(200)
           .setInterpolator(linearOutSlowInInterpolator)
           .start()
-
       }
     }
 
@@ -207,6 +209,12 @@
         dismissDialogs()
       }
     }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      rfpsViewModel.didCompleteEnrollment
+        .filter { it }
+        .collect { rfpsViewModel.finishedSuccessfully() }
+    }
     return view
   }
 
@@ -215,29 +223,19 @@
     viewLifecycleOwner.lifecycleScope.launch {
       try {
         val shouldRestartEnrollment = FingerprintErrorDialog.showInstance(error, fragment)
+        rfpsViewModel.userClickedStopEnrollDialog()
       } catch (exception: Exception) {
         Log.e(TAG, "Exception occurred $exception")
       }
-      onEnrollmentFailed()
     }
   }
 
-  private fun onEnrollmentFailed() {
-    rfpsViewModel.stopEnrollment()
-  }
-
   private fun handleEnrollProgress(progress: FingerEnrollState.EnrollProgress) {
     progressBar.updateProgress(
       progress.remainingSteps.toFloat() / progress.totalStepsRequired.toFloat()
     )
-
-    if (progress.remainingSteps == 0) {
-      performNextStepSuccess()
-    }
   }
 
-  private fun performNextStepSuccess() {}
-
   private fun dismissDialogs() {
     val transaction = parentFragmentManager.beginTransaction()
     for (frag in parentFragmentManager.fragments) {
@@ -249,4 +247,9 @@
     }
     transaction.commitAllowingStateLoss()
   }
+
+  companion object {
+    private const val TAG = "RFPSEnrollFragment"
+    private val navStep = FingerprintNavigationStep.Enrollment::class
+  }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt
index c16e65c..cbcb1d4 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSIconTouchViewModel.kt
@@ -38,9 +38,9 @@
   private val _touches: MutableStateFlow<Int> = MutableStateFlow(0)
 
   /**
-   * Whether or not the UI should be showing the dialog. By making this SharingStarted.Eagerly
-   * the first event 0 % 3 == 0 will fire as soon as this view model is created, so it should
-   * be ignored and work as intended.
+   * Whether or not the UI should be showing the dialog. By making this SharingStarted.Eagerly the
+   * first event 0 % 3 == 0 will fire as soon as this view model is created, so it should be ignored
+   * and work as intended.
    */
   val shouldShowDialog: Flow<Boolean> =
     _touches
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
index 58d604e..99250e6 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/viewmodel/RFPSViewModel.kt
@@ -19,13 +19,17 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintAction
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.flow.filterIsInstance
+import kotlinx.coroutines.flow.filterNotNull
 import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.flow.shareIn
 import kotlinx.coroutines.flow.transform
@@ -34,9 +38,10 @@
 /** View Model used by the rear fingerprint enrollment fragment. */
 class RFPSViewModel(
   private val fingerprintEnrollViewModel: FingerprintEnrollEnrollingViewModel,
+  private val navigationViewModel: FingerprintNavigationViewModel,
 ) : ViewModel() {
 
-  /** Value to indicate if the text view is visible or not **/
+  /** Value to indicate if the text view is visible or not */
   private val _textViewIsVisible = MutableStateFlow<Boolean>(false)
   val textViewIsVisible: Flow<Boolean> = _textViewIsVisible.asStateFlow()
 
@@ -61,9 +66,8 @@
   val helpMessage: Flow<FingerEnrollState.EnrollHelp?> =
     enrollFlow
       .filterIsInstance<FingerEnrollState.EnrollHelp>()
-      .shareIn(viewModelScope, SharingStarted.Eagerly, 0).transform {
-        _textViewIsVisible.update { true }
-      }
+      .shareIn(viewModelScope, SharingStarted.Eagerly, 0)
+      .transform { _textViewIsVisible.update { true } }
 
   /**
    * The error message should only be shown once, for scenarios like screen rotations, we don't want
@@ -74,6 +78,8 @@
       .filterIsInstance<FingerEnrollState.EnrollError>()
       .shareIn(viewModelScope, SharingStarted.Eagerly, 0)
 
+  val didCompleteEnrollment: Flow<Boolean> = progress.filterNotNull().map { it.remainingSteps == 0 }
+
   /** Indicates if the consumer is ready for enrollment */
   fun readyForEnrollment() {
     fingerprintEnrollViewModel.canEnroll()
@@ -88,15 +94,51 @@
     _textViewIsVisible.update { isVisible }
   }
 
+  /** Indicates that the user is done with trying to enroll a fingerprint */
+  fun userClickedStopEnrollDialog() {
+    navigationViewModel.update(
+      FingerprintAction.USER_CLICKED_FINISH,
+      navStep,
+      "${TAG}#userClickedStopEnrollingDialog",
+    )
+  }
+
+  /** Indicates that the application went to the background. */
+  fun didGoToBackground() {
+    navigationViewModel.update(
+      FingerprintAction.DID_GO_TO_BACKGROUND,
+      navStep,
+      "${TAG}#didGoToBackground",
+    )
+    stopEnrollment()
+  }
+
+  /** Indicates the negative button has been clicked */
+  fun negativeButtonClicked() {
+    navigationViewModel.update(
+      FingerprintAction.NEGATIVE_BUTTON_PRESSED,
+      navStep,
+      "${TAG}negativeButtonClicked",
+    )
+  }
+
+  fun finishedSuccessfully() {
+    navigationViewModel.update(FingerprintAction.NEXT, navStep, "${TAG}#progressFinished")
+  }
+
   class RFPSViewModelFactory(
     private val fingerprintEnrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel,
+    private val navigationViewModel: FingerprintNavigationViewModel,
   ) : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
-      return RFPSViewModel(fingerprintEnrollEnrollingViewModel) as T
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return RFPSViewModel(fingerprintEnrollEnrollingViewModel, navigationViewModel) as T
     }
   }
+
+  companion object {
+    private val navStep = Enrollment::class
+    private const val TAG = "RFPSViewModel"
+  }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt
index b9c628e..9c0040b 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/rfps/ui/widget/FingerprintErrorDialog.kt
@@ -24,7 +24,7 @@
 import android.util.Log
 import androidx.fragment.app.Fragment
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment
 import kotlin.coroutines.resume
 import kotlinx.coroutines.suspendCancellableCoroutine
@@ -86,39 +86,28 @@
     private const val KEY_TITLE = "fingerprint_title"
     private const val KEY_SHOULD_TRY_AGAIN = "should_try_again"
 
-    suspend fun showInstance(
-        error: FingerEnrollState.EnrollError,
-        fragment: Fragment,
-    ) = suspendCancellableCoroutine { continuation ->
-      val dialog = FingerprintErrorDialog()
-      dialog.onTryAgain = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
+    suspend fun showInstance(error: FingerEnrollState.EnrollError, fragment: Fragment) =
+      suspendCancellableCoroutine { continuation ->
+        val dialog = FingerprintErrorDialog()
+        dialog.onTryAgain = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
 
-      dialog.onContinue = DialogInterface.OnClickListener { _, _ -> continuation.resume(false) }
+        dialog.onContinue = DialogInterface.OnClickListener { _, _ -> continuation.resume(false) }
 
-      dialog.onCancelListener =
-        DialogInterface.OnCancelListener {
-          Log.d(TAG, "onCancelListener clicked $dialog")
-          continuation.resume(null)
-        }
+        dialog.onCancelListener =
+          DialogInterface.OnCancelListener {
+            Log.d(TAG, "onCancelListener clicked $dialog")
+            continuation.resume(null)
+          }
 
-      continuation.invokeOnCancellation { Log.d(TAG, "invokeOnCancellation $dialog") }
+        continuation.invokeOnCancellation { Log.d(TAG, "invokeOnCancellation $dialog") }
 
-      val bundle = Bundle()
-      bundle.putInt(
-        KEY_TITLE,
-        error.errTitle,
-      )
-      bundle.putInt(
-        KEY_MESSAGE,
-        error.errString,
-      )
-      bundle.putBoolean(
-        KEY_SHOULD_TRY_AGAIN,
-        error.shouldRetryEnrollment,
-      )
-      dialog.arguments = bundle
-      Log.d(TAG, "showing dialog $dialog")
-      dialog.show(fragment.parentFragmentManager, FingerprintErrorDialog::class.java.toString())
-    }
+        val bundle = Bundle()
+        bundle.putInt(KEY_TITLE, error.errTitle)
+        bundle.putInt(KEY_MESSAGE, error.errString)
+        bundle.putBoolean(KEY_SHOULD_TRY_AGAIN, error.shouldRetryEnrollment)
+        dialog.arguments = bundle
+        Log.d(TAG, "showing dialog $dialog")
+        dialog.show(fragment.parentFragmentManager, FingerprintErrorDialog::class.java.toString())
+      }
   }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/AccessibilityViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/AccessibilityViewModel.kt
index a86ad5d..608b370 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/AccessibilityViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/AccessibilityViewModel.kt
@@ -41,15 +41,13 @@
       .stateIn(
         viewModelScope, // This is going to tied to the view model scope
         SharingStarted.WhileSubscribed(), // When no longer subscribed, we removeTheListener
-        false
+        false,
       )
 
   class AccessibilityViewModelFactory(private val accessibilityManager: AccessibilityManager) :
     ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
       return AccessibilityViewModel(accessibilityManager) as T
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt
index 7ab315e..63182bb 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModel.kt
@@ -25,8 +25,8 @@
 import kotlinx.coroutines.flow.update
 
 /**
- * This class is a wrapper around the [FingerprintEnrollViewModel] and decides when
- * the user should or should not be enrolling.
+ * This class is a wrapper around the [FingerprintEnrollViewModel] and decides when the user should
+ * or should not be enrolling.
  */
 class FingerprintEnrollEnrollingViewModel(
   private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
@@ -72,12 +72,10 @@
 
   class FingerprintEnrollEnrollingViewModelFactory(
     private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
-    private val backgroundViewModel: BackgroundViewModel
+    private val backgroundViewModel: BackgroundViewModel,
   ) : ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
       return FingerprintEnrollEnrollingViewModel(fingerprintEnrollViewModel, backgroundViewModel)
         as T
     }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
index 7722a46..92261b1 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
@@ -19,8 +19,10 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
-import com.android.settings.biometrics.fingerprint2.shared.model.SetupWizard
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.SetupWizard
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollFindSensorV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -36,20 +38,22 @@
 
 /** Models the UI state for [FingerprintEnrollFindSensorV2Fragment]. */
 class FingerprintEnrollFindSensorViewModel(
-  private val navigationViewModel: FingerprintEnrollNavigationViewModel,
+  private val navigationViewModel: FingerprintNavigationViewModel,
   private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
   private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
   backgroundViewModel: BackgroundViewModel,
   accessibilityViewModel: AccessibilityViewModel,
   foldStateViewModel: FoldStateViewModel,
-  orientationStateViewModel: OrientationStateViewModel
+  orientationStateViewModel: OrientationStateViewModel,
+  fingerprintFlowViewModel: FingerprintFlowViewModel,
 ) : ViewModel() {
+
   /** Represents the stream of sensor type. */
   val sensorType: Flow<FingerprintSensorType> =
     fingerprintEnrollViewModel.sensorType.shareIn(
       viewModelScope,
       SharingStarted.WhileSubscribed(),
-      1
+      1,
     )
   private val _isUdfps: Flow<Boolean> =
     sensorType.map {
@@ -103,10 +107,10 @@
           fingerprintEnrollViewModel.sensorType,
           gatekeeperViewModel.hasValidGatekeeperInfo,
           gatekeeperViewModel.gatekeeperInfo,
-          navigationViewModel.navigationViewModel
-        ) { sensorType, hasValidGatekeeperInfo, gatekeeperInfo, navigationViewModel ->
+          navigationViewModel.currentScreen,
+        ) { sensorType, hasValidGatekeeperInfo, gatekeeperInfo, currStep ->
           val shouldStartEnroll =
-            navigationViewModel.currStep == Education &&
+            currStep is Education &&
               sensorType != FingerprintSensorType.UDFPS_OPTICAL &&
               sensorType != FingerprintSensorType.UDFPS_ULTRASONIC &&
               hasValidGatekeeperInfo
@@ -128,22 +132,19 @@
         // Only collect the flow when we should be running.
         if (it) {
           combine(
-              navigationViewModel.fingerprintFlow,
               fingerprintEnrollViewModel.educationEnrollFlow.filterNotNull(),
-            ) { enrollType, educationFlow ->
-              Pair(enrollType, educationFlow)
+              fingerprintFlowViewModel.fingerprintFlow,
+            ) { educationFlow, type ->
+              Pair(educationFlow, type)
             }
-            .collect { (enrollType, educationFlow) ->
+            .collect { (educationFlow, type) ->
               when (educationFlow) {
-                // TODO: Cancel the enroll() when EnrollProgress is received instead of proceeding
-                // to
-                // Enrolling page. Otherwise Enrolling page will receive the EnrollError.
                 is FingerEnrollState.EnrollProgress -> proceedToEnrolling()
                 is FingerEnrollState.EnrollError -> {
                   if (educationFlow.isCancelled) {
                     proceedToEnrolling()
                   } else {
-                    _showErrorDialog.update { Pair(educationFlow.errString, enrollType == SetupWizard) }
+                    _showErrorDialog.update { Pair(educationFlow.errString, type == SetupWizard) }
                   }
                 }
                 is FingerEnrollState.EnrollHelp -> {}
@@ -169,17 +170,28 @@
 
   /** Proceed to EnrollEnrolling page. */
   fun proceedToEnrolling() {
-    navigationViewModel.nextStep()
+    stopEducation()
+    navigationViewModel.update(FingerprintAction.NEXT, navStep, "$TAG#proceedToEnrolling")
+  }
+
+  /** Indicates the secondary button has been clicked */
+  fun secondaryButtonClicked() {
+    navigationViewModel.update(
+      FingerprintAction.NEGATIVE_BUTTON_PRESSED,
+      navStep,
+      "${TAG}#secondaryButtonClicked",
+    )
   }
 
   class FingerprintEnrollFindSensorViewModelFactory(
-    private val navigationViewModel: FingerprintEnrollNavigationViewModel,
+    private val navigationViewModel: FingerprintNavigationViewModel,
     private val fingerprintEnrollViewModel: FingerprintEnrollViewModel,
     private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
     private val backgroundViewModel: BackgroundViewModel,
     private val accessibilityViewModel: AccessibilityViewModel,
     private val foldStateViewModel: FoldStateViewModel,
-    private val orientationStateViewModel: OrientationStateViewModel
+    private val orientationStateViewModel: OrientationStateViewModel,
+    private val fingerprintFlowViewModel: FingerprintFlowViewModel,
   ) : ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
     override fun <T : ViewModel> create(modelClass: Class<T>): T {
@@ -190,9 +202,15 @@
         backgroundViewModel,
         accessibilityViewModel,
         foldStateViewModel,
-        orientationStateViewModel
+        orientationStateViewModel,
+        fingerprintFlowViewModel,
       )
         as T
     }
   }
+
+  companion object {
+    private const val TAG = "FingerprintEnrollFindSensorViewModel"
+    private val navStep = Education::class
+  }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt
new file mode 100644
index 0000000..3bf003c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollIntroViewModel.kt
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Introduction
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import kotlinx.coroutines.flow.Flow
+
+/** A view model for fingerprint enroll introduction. */
+class FingerprintEnrollIntroViewModel(
+  val navigationViewModel: FingerprintNavigationViewModel,
+  private val fingerprintFlowViewModel: FingerprintFlowViewModel,
+  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+) : ViewModel() {
+
+  /** Represents a stream of [FingerprintSensor] */
+  val sensor: Flow<FingerprintSensor?> = fingerprintManagerInteractor.sensorPropertiesInternal
+
+  /** Represents a stream of [FingerprintFlow] */
+  val fingerprintFlow: Flow<FingerprintFlow?> = fingerprintFlowViewModel.fingerprintFlow
+
+  /** Indicates the primary button has been clicked */
+  fun primaryButtonClicked() {
+    navigationViewModel.update(FingerprintAction.NEXT, navStep, "${TAG}#onNextClicked")
+  }
+
+  /** Indicates the secondary button has been clicked */
+  fun onSecondaryButtonClicked() {
+    navigationViewModel.update(
+      FingerprintAction.NEGATIVE_BUTTON_PRESSED,
+      navStep,
+      "${TAG}#negativeButtonClicked",
+    )
+  }
+
+  class FingerprintEnrollIntoViewModelFactory(
+    val navigationViewModel: FingerprintNavigationViewModel,
+    val fingerprintFlowViewModel: FingerprintFlowViewModel,
+    val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return FingerprintEnrollIntroViewModel(
+        navigationViewModel,
+        fingerprintFlowViewModel,
+        fingerprintManagerInteractor,
+      )
+        as T
+    }
+  }
+
+  companion object {
+    val navStep = Introduction::class
+    private const val TAG = "FingerprintEnrollIntroViewModel"
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
index c7a1071..c2cff5e 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
@@ -18,9 +18,11 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.SharingStarted
@@ -34,7 +36,7 @@
 class FingerprintEnrollViewModel(
   private val fingerprintManagerInteractor: FingerprintManagerInteractor,
   gatekeeperViewModel: FingerprintGatekeeperViewModel,
-  navigationViewModel: FingerprintEnrollNavigationViewModel,
+  val navigationViewModel: FingerprintNavigationViewModel,
 ) : ViewModel() {
 
   /**
@@ -45,8 +47,8 @@
    */
   var sensorTypeCached: FingerprintSensorType? = null
   private var _enrollReason: Flow<EnrollReason?> =
-    navigationViewModel.navigationViewModel.map {
-      when (it.currStep) {
+    navigationViewModel.currentScreen.map {
+      when (it) {
         is Enrollment -> EnrollReason.EnrollEnrolling
         is Education -> EnrollReason.FindSensor
         else -> null
@@ -64,8 +66,7 @@
    * This flow should be the only flow which calls enroll().
    */
   val _enrollFlow: Flow<FingerEnrollState> =
-    combine(gatekeeperViewModel.gatekeeperInfo, _enrollReason) { hardwareAuthToken, enrollReason,
-        ->
+    combine(gatekeeperViewModel.gatekeeperInfo, _enrollReason) { hardwareAuthToken, enrollReason ->
         Pair(hardwareAuthToken, enrollReason)
       }
       .transformLatest {
@@ -110,18 +111,11 @@
   class FingerprintEnrollViewModelFactory(
     val interactor: FingerprintManagerInteractor,
     val gatekeeperViewModel: FingerprintGatekeeperViewModel,
-    val navigationViewModel: FingerprintEnrollNavigationViewModel,
+    val navigationViewModel: FingerprintNavigationViewModel,
   ) : ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
-      return FingerprintEnrollViewModel(
-        interactor,
-        gatekeeperViewModel,
-        navigationViewModel,
-      )
-        as T
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return FingerprintEnrollViewModel(interactor, gatekeeperViewModel, navigationViewModel) as T
     }
   }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt
deleted file mode 100644
index 2e5dce0..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
-
-import android.util.Log
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintFlow
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.SharingStarted
-import kotlinx.coroutines.flow.asStateFlow
-import kotlinx.coroutines.flow.filterNotNull
-import kotlinx.coroutines.flow.shareIn
-import kotlinx.coroutines.flow.update
-import kotlinx.coroutines.launch
-
-private const val TAG = "FingerprintEnrollNavigationViewModel"
-
-/**
- * This class is responsible for sending a [NavigationStep] which indicates where the user is in the
- * Fingerprint Enrollment flow
- */
-class FingerprintEnrollNavigationViewModel(
-  private val dispatcher: CoroutineDispatcher,
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-  private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
-  private val firstStep: NextStepViewModel,
-  private val navState: NavState,
-  private val theFingerprintFlow: FingerprintFlow,
-) : ViewModel() {
-
-  private class InternalNavigationStep(
-    lastStep: NextStepViewModel,
-    nextStep: NextStepViewModel,
-    forward: Boolean,
-    var canNavigate: Boolean,
-  ) : NavigationStep(lastStep, nextStep, forward)
-
-  private var _fingerprintFlow = MutableStateFlow<FingerprintFlow?>(theFingerprintFlow)
-
-  /** A flow that indicates the [FingerprintFlow] */
-  val fingerprintFlow: Flow<FingerprintFlow?> = _fingerprintFlow.asStateFlow()
-
-  private val _navigationStep =
-    MutableStateFlow(
-      InternalNavigationStep(PlaceHolderState, firstStep, forward = false, canNavigate = true)
-    )
-
-  init {
-    viewModelScope.launch {
-      gatekeeperViewModel.credentialConfirmed.filterNotNull().collect {
-        if (_navigationStep.value.currStep is LaunchConfirmDeviceCredential) {
-          if (it) nextStep() else finish()
-        }
-      }
-    }
-  }
-
-  /**
-   * A flow that contains the [NavigationStep] used to indicate where in the enrollment process the
-   * user is.
-   */
-  val navigationViewModel: Flow<NavigationStep> = _navigationStep.asStateFlow()
-
-  /** This action indicates that the UI should actually update the navigation to the given step. */
-  val navigationAction: Flow<NavigationStep?> =
-    _navigationStep.shareIn(viewModelScope, SharingStarted.Lazily, 0)
-
-  /** Used to start the next step of Fingerprint Enrollment. */
-  fun nextStep() {
-    viewModelScope.launch {
-      val currStep = _navigationStep.value.currStep
-      val nextStep = currStep.next(navState)
-      Log.d(TAG, "nextStep(${currStep} -> $nextStep)")
-      _navigationStep.update {
-        InternalNavigationStep(currStep, nextStep, forward = true, canNavigate = false)
-      }
-    }
-  }
-
-  /** Go back a step of fingerprint enrollment. */
-  fun prevStep() {
-    viewModelScope.launch {
-      val currStep = _navigationStep.value.currStep
-      val nextStep = currStep.prev(navState)
-      _navigationStep.update {
-        InternalNavigationStep(currStep, nextStep, forward = false, canNavigate = false)
-      }
-    }
-  }
-
-  private fun finish() {
-    _navigationStep.update {
-      InternalNavigationStep(Finish(null), Finish(null), forward = false, canNavigate = false)
-    }
-  }
-
-  class FingerprintEnrollNavigationViewModelFactory(
-    private val backgroundDispatcher: CoroutineDispatcher,
-    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-    private val fingerprintGatekeeperViewModel: FingerprintGatekeeperViewModel,
-    private val canSkipConfirm: Boolean,
-    private val fingerprintFlow: FingerprintFlow,
-  ) : ViewModelProvider.Factory {
-
-    @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
-
-      val navState = NavState(canSkipConfirm)
-      return FingerprintEnrollNavigationViewModel(
-        backgroundDispatcher,
-        fingerprintManagerInteractor,
-        fingerprintGatekeeperViewModel,
-        Start.next(navState),
-        navState,
-        fingerprintFlow,
-      )
-        as T
-    }
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintFlowViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintFlowViewModel.kt
new file mode 100644
index 0000000..f076524
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintFlowViewModel.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.shareIn
+
+class FingerprintFlowViewModel(private val fingerprintFlowType: FingerprintFlow) : ViewModel() {
+  val fingerprintFlow: Flow<FingerprintFlow> =
+    flowOf(fingerprintFlowType).shareIn(viewModelScope, SharingStarted.Eagerly, 1)
+
+  class FingerprintFlowViewModelFactory(val flowType: FingerprintFlow) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return FingerprintFlowViewModel(flowType) as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
index db93d02..322be6a 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
@@ -21,7 +21,7 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.asStateFlow
@@ -29,11 +29,11 @@
 import kotlinx.coroutines.flow.update
 import kotlinx.coroutines.launch
 
-private const val TAG = "FingerprintGatekeeperViewModel"
-
 sealed interface GatekeeperInfo {
   object Invalid : GatekeeperInfo
+
   object Timeout : GatekeeperInfo
+
   data class GatekeeperPasswordInfo(val token: ByteArray?, val passwordHandle: Long?) :
     GatekeeperInfo
 }
@@ -97,7 +97,19 @@
       }
   }
 
+  class FingerprintGatekeeperViewModelFactory(
+    private val gatekeeperInfo: GatekeeperInfo?,
+    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return FingerprintGatekeeperViewModel(gatekeeperInfo, fingerprintManagerInteractor) as T
+    }
+  }
+
   companion object {
+    private const val TAG = "FingerprintGatekeeperViewModel"
     /**
      * A function that checks if the challenge and token are valid, in which case a
      * [GatekeeperInfo.GatekeeperPasswordInfo] is provided, else [GatekeeperInfo.Invalid]
@@ -110,17 +122,4 @@
       return GatekeeperInfo.GatekeeperPasswordInfo(token, challenge)
     }
   }
-
-  class FingerprintGatekeeperViewModelFactory(
-    private val gatekeeperInfo: GatekeeperInfo?,
-    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-  ) : ViewModelProvider.Factory {
-
-    @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
-      return FingerprintGatekeeperViewModel(gatekeeperInfo, fingerprintManagerInteractor) as T
-    }
-  }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationStep.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationStep.kt
new file mode 100644
index 0000000..979f953
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationStep.kt
@@ -0,0 +1,186 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import com.android.settings.biometrics.fingerprint2.lib.model.FastEnroll
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintFlow
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+
+/**
+ * A [FingerprintAction] event notifies the current [FingerprintNavigationStep] that an event
+ * occurred. Depending on the type of [FingerprintAction] and the current
+ * [FingerprintNavigationStep], the navstep will potentially produce a new
+ * [FingerprintNavigationStep] indicating either 1). Control flow has changed 2). The activity has
+ * finished 3). A transition is required
+ */
+enum class FingerprintAction {
+  NEXT,
+  PREV,
+  CONFIRM_DEVICE_SUCCESS,
+  CONFIRM_DEVICE_FAIL,
+  TRANSITION_FINISHED,
+  DID_GO_TO_BACKGROUND,
+  ACTIVITY_CREATED,
+  NEGATIVE_BUTTON_PRESSED,
+  USER_CLICKED_FINISH,
+}
+
+/** State that can be used to help a [FingerprintNavigationStep] determine the next step to take. */
+data class NavigationState(
+  val flowType: FingerprintFlow,
+  val hasConfirmedDeviceCredential: Boolean,
+  val fingerprintSensor: FingerprintSensor?,
+)
+
+/**
+ * A generic interface for operating on (state, action) -> state? which will produce either another
+ * FingerprintNavStep if something is required, or nothing.
+ *
+ * Note during the lifetime of the Activity, their should only be one [FingerprintNavigationStep] at
+ * a time.
+ */
+sealed interface FingerprintNavigationStep {
+  fun update(state: NavigationState, action: FingerprintAction): FingerprintNavigationStep?
+
+  /**
+   * This indicates that a transition should occur from one screen to another. This class should
+   * contain all necessary info about the transition.
+   *
+   * A transition step will cause a screen to change ownership from the current screen to the
+   * [nextUiStep], after the transition has been completed and a
+   * [FingerprintAction.TRANSITION_FINISHED] has been sent, the [nextUiStep] will be given control.
+   */
+  class TransitionStep(val nextUiStep: UiStep) : FingerprintNavigationStep {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.TRANSITION_FINISHED -> nextUiStep
+        else -> null
+      }
+    }
+
+    override fun toString(): String = "TransitionStep(nextUiStep=$nextUiStep)"
+  }
+
+  /** Indicates we should finish the enrolling activity */
+  data class Finish(val result: Int?) : FingerprintNavigationStep {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? = null
+  }
+
+  /** UiSteps should have a 1 to 1 mapping between each screen of FingerprintEnrollment */
+  sealed class UiStep : FingerprintNavigationStep
+
+  /** This is the landing page for enrollment, where no content is shown. */
+  data object Init : UiStep() {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.ACTIVITY_CREATED -> {
+          if (!state.hasConfirmedDeviceCredential) {
+            TransitionStep(ConfirmDeviceCredential)
+          } else if (state.flowType is FastEnroll) {
+            TransitionStep(Enrollment(state.fingerprintSensor!!))
+          } else {
+            TransitionStep(Introduction)
+          }
+        }
+        else -> null
+      }
+    }
+  }
+
+  /** Indicates the ConfirmDeviceCredential activity is being presented to the user */
+  data object ConfirmDeviceCredential : UiStep() {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.CONFIRM_DEVICE_SUCCESS -> TransitionStep(Introduction)
+        FingerprintAction.CONFIRM_DEVICE_FAIL -> Finish(null)
+        else -> null
+      }
+    }
+  }
+
+  /** Indicates the FingerprintIntroduction screen is being presented to the user */
+  data object Introduction : UiStep() {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.NEXT -> TransitionStep(Education(state.fingerprintSensor!!))
+        FingerprintAction.NEGATIVE_BUTTON_PRESSED,
+        FingerprintAction.PREV -> Finish(null)
+        else -> null
+      }
+    }
+  }
+
+  /** Indicates the FingerprintEducation screen is being presented to the user */
+  data class Education(val sensor: FingerprintSensor) : UiStep() {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.NEXT -> TransitionStep(Enrollment(state.fingerprintSensor!!))
+        FingerprintAction.NEGATIVE_BUTTON_PRESSED,
+        FingerprintAction.PREV -> TransitionStep(Introduction)
+        else -> null
+      }
+    }
+  }
+
+  /** Indicates the Enrollment screen is being presented to the user */
+  data class Enrollment(val sensor: FingerprintSensor) : UiStep() {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.NEXT -> TransitionStep(Confirmation)
+        FingerprintAction.NEGATIVE_BUTTON_PRESSED,
+        FingerprintAction.USER_CLICKED_FINISH,
+        FingerprintAction.DID_GO_TO_BACKGROUND -> Finish(null)
+        else -> null
+      }
+    }
+  }
+
+  /** Indicates the Confirmation screen is being presented to the user */
+  data object Confirmation : UiStep() {
+    override fun update(
+      state: NavigationState,
+      action: FingerprintAction,
+    ): FingerprintNavigationStep? {
+      return when (action) {
+        FingerprintAction.NEXT -> Finish(null)
+        FingerprintAction.PREV -> TransitionStep(Education(state.fingerprintSensor!!))
+        else -> null
+      }
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt
new file mode 100644
index 0000000..26c20cf
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintNavigationViewModel.kt
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import android.util.Log
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Finish
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.TransitionStep
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.UiStep
+import java.lang.NullPointerException
+import kotlin.reflect.KClass
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.combineTransform
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+/**
+ * This class is essentially a wrapper around [FingerprintNavigationStep] that will be used by
+ * fragments/viewmodels that want to consume these events. It should provide no additional
+ * functionality beyond what is available in [FingerprintNavigationStep].
+ */
+class FingerprintNavigationViewModel(
+  step: UiStep,
+  hasConfirmedDeviceCredential: Boolean,
+  flowViewModel: FingerprintFlowViewModel,
+  fingerprintManagerInteractor: FingerprintManagerInteractor,
+) : ViewModel() {
+
+  private var _navStateInternal: MutableStateFlow<NavigationState?> = MutableStateFlow(null)
+
+  init {
+    viewModelScope.launch {
+      flowViewModel.fingerprintFlow
+        .combineTransform(fingerprintManagerInteractor.sensorPropertiesInternal) { flow, props ->
+          if (props?.sensorId != -1) {
+            emit(NavigationState(flow, hasConfirmedDeviceCredential, props))
+          }
+        }
+        .collect { navState -> _navStateInternal.update { navState } }
+    }
+  }
+
+  private var _currentStep = MutableStateFlow<FingerprintNavigationStep?>(step)
+
+  private var _navigateTo: MutableStateFlow<UiStep?> = MutableStateFlow(null)
+  val navigateTo: Flow<UiStep?> = _navigateTo.asStateFlow()
+
+  /**
+   * This indicates a navigation event should occur. Navigation depends on navStateInternal being
+   * present.
+   */
+  val currentStep: Flow<FingerprintNavigationStep> =
+    _currentStep.filterNotNull().combineTransform(_navStateInternal.filterNotNull()) { navigation, _
+      ->
+      emit(navigation)
+    }
+
+  private var _finishState = MutableStateFlow<Finish?>(null)
+
+  /** This indicates the activity should finish. */
+  val shouldFinish: Flow<Finish?> = _finishState.asStateFlow()
+
+  private var _currentScreen = MutableStateFlow<UiStep?>(null)
+
+  /** This indicates what screen should currently be presenting to the user. */
+  val currentScreen: Flow<UiStep?> = _currentScreen.asStateFlow()
+
+  /** See [updateInternal] for more details */
+  fun update(action: FingerprintAction, caller: KClass<*>, debugStr: String) {
+    Log.d(TAG, "$caller.update($action) $debugStr")
+    val currentStep = _currentStep.value
+    val isUiStep = currentStep is UiStep
+    if (currentStep == null) {
+      throw NullPointerException("current step is null")
+    }
+    if (isUiStep && currentStep::class != caller) {
+      throw IllegalAccessError(
+        "Error $currentStep != $caller, $caller should not be sending any events at this time"
+      )
+    }
+    val navState = _navStateInternal.value
+    if (navState == null) {
+      throw NullPointerException("nav state is null")
+    }
+    val nextStep = currentStep.update(navState, action) ?: return
+    Log.d(TAG, "nextStep=$nextStep")
+    // Whenever an state update occurs, everything should be cleared.
+    _currentStep.update { nextStep }
+    _finishState.update { null }
+    _currentScreen.update { null }
+
+    when (nextStep) {
+      is TransitionStep -> {
+        _navigateTo.update { nextStep.nextUiStep }
+      }
+      is Finish -> {
+        _finishState.update { nextStep }
+      }
+      is UiStep -> {
+        _currentScreen.update { nextStep }
+      }
+    }
+  }
+
+  class FingerprintNavigationViewModelFactory(
+    private val step: UiStep,
+    private val hasConfirmedDeviceCredential: Boolean,
+    private val flowViewModel: FingerprintFlowViewModel,
+    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return FingerprintNavigationViewModel(
+        step,
+        hasConfirmedDeviceCredential,
+        flowViewModel,
+        fingerprintManagerInteractor,
+      )
+        as T
+    }
+  }
+
+  companion object {
+    private const val TAG = "FingerprintNavigationViewModel"
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt
index 989d4d3..bc9703d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt
@@ -39,9 +39,7 @@
   class FingerprintScrollViewModelFactory : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
       return FingerprintScrollViewModel() as T
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.kt
index a4c7ff2..94a70b0 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.kt
@@ -49,9 +49,7 @@
 
   class FoldStateViewModelFactory(private val context: Context) : ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
       return FoldStateViewModel(context) as T
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
deleted file mode 100644
index b68f6d6..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
-
-/**
- * A class that represents an action that the consumer should transition between lastStep and
- * currStep and in what direction this transition is occurring (e.g. forward or backwards)
- */
-open class NavigationStep(
-  val lastStep: NextStepViewModel,
-  val currStep: NextStepViewModel,
-  val forward: Boolean
-) {
-  override fun toString(): String {
-    return "lastStep=$lastStep, currStep=$currStep, forward=$forward"
-  }
-}
-
-/** The navigation state used by a [NavStep] to determine what the [NextStepViewModel] should be. */
-class NavState(val confirmedDevice: Boolean)
-
-interface NavStep<T> {
-  fun next(state: NavState): T
-  fun prev(state: NavState): T
-}
-
-/**
- * A class to represent a high level step (I.E. EnrollmentIntroduction) for FingerprintEnrollment.
- */
-sealed class NextStepViewModel : NavStep<NextStepViewModel>
-
-/**
- * This is the initial state for the previous step, used to indicate that there have been no
- * previous states.
- */
-object PlaceHolderState : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Finish(null)
-
-  override fun prev(state: NavState): NextStepViewModel = Finish(null)
-}
-
-/**
- * This state is the initial state for the current step, and will be used to determine if the user
- * needs to [LaunchConfirmDeviceCredential] if not, it will go to [Intro]
- */
-data object Start : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel =
-    if (state.confirmedDevice) Intro else LaunchConfirmDeviceCredential
-
-  override fun prev(state: NavState): NextStepViewModel = Finish(null)
-}
-
-/** State indicating enrollment has been completed */
-class Finish(val resultCode: Int?) : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Finish(resultCode)
-  override fun prev(state: NavState): NextStepViewModel = Finish(null)
-}
-
-/** State for the FingerprintEnrollment introduction */
-data object Intro : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Education
-  override fun prev(state: NavState): NextStepViewModel = Finish(null)
-}
-
-/** State for the FingerprintEnrollment education */
-data object Education : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Enrollment
-  override fun prev(state: NavState): NextStepViewModel = Intro
-}
-
-/** State for the FingerprintEnrollment enrollment */
-data object Enrollment : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Confirmation
-  override fun prev(state: NavState): NextStepViewModel = Education
-}
-
-/** State for the FingerprintEnrollment confirmation */
-object Confirmation : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Finish(0)
-  override fun prev(state: NavState): NextStepViewModel = Intro
-}
-
-/**
- * State used to send the user to the ConfirmDeviceCredential activity. This activity can either
- * confirm a users device credential, or have them create one.
- */
-object LaunchConfirmDeviceCredential : NextStepViewModel() {
-  override fun next(state: NavState): NextStepViewModel = Intro
-  override fun prev(state: NavState): NextStepViewModel = Finish(0)
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.kt
index 2e5f734..dd266e1 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.kt
@@ -58,7 +58,7 @@
       .stateIn(
         viewModelScope, // This is going to tied to the view model scope
         SharingStarted.WhileSubscribed(), // When no longer subscribed, we removeTheListener
-        context.display!!.rotation
+        context.display!!.rotation,
       )
 
   fun getRotationFromDefault(rotation: Int): Int {
@@ -73,9 +73,7 @@
 
   class OrientationViewModelFactory(private val context: Context) : ViewModelProvider.Factory {
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
       return OrientationStateViewModel(context) as T
     }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
index debdfb8..540e5ee 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
@@ -19,8 +19,8 @@
 import android.hardware.fingerprint.FingerprintManager
 import android.util.Log
 import androidx.lifecycle.LifecycleCoroutineScope
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder.FingerprintView
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollAdditionalFingerprint
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
@@ -52,7 +52,7 @@
       userId: Int,
       gateKeeperPasswordHandle: Long?,
       challenge: Long?,
-      challengeToken: ByteArray?
+      challengeToken: ByteArray?,
     )
     /** Helper to launch an add fingerprint request */
     fun launchAddFingerprint(userId: Int, challengeToken: ByteArray?)
@@ -158,7 +158,7 @@
               nextStep.userId,
               nextStep.gateKeeperPasswordHandle,
               nextStep.challenge,
-              nextStep.challengeToken
+              nextStep.challengeToken,
             )
           is EnrollAdditionalFingerprint ->
             view.launchAddFingerprint(nextStep.userId, nextStep.challengeToken)
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
index 71a22eb..46f64de 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
@@ -26,7 +26,7 @@
 import android.os.UserManager
 import androidx.appcompat.app.AlertDialog
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment
 import kotlin.coroutines.resume
 import kotlinx.coroutines.suspendCancellableCoroutine
@@ -75,8 +75,7 @@
       message =
         devicePolicyManager?.resources?.getString(messageId) {
           message + "\n\n" + context.getString(defaultMessageId)
-        }
-          ?: ""
+        } ?: ""
     }
 
     alertDialog =
@@ -85,7 +84,7 @@
         .setMessage(message)
         .setPositiveButton(
           R.string.security_settings_fingerprint_enroll_dialog_delete,
-          onClickListener
+          onClickListener,
         )
         .setNegativeButton(R.string.cancel, onNegativeClickListener)
         .create()
@@ -94,10 +93,11 @@
 
   companion object {
     private const val KEY_FINGERPRINT = "fingerprint"
+
     suspend fun showInstance(
-        fp: FingerprintData,
-        lastFingerprint: Boolean,
-        target: FingerprintSettingsV2Fragment,
+      fp: FingerprintData,
+      lastFingerprint: Boolean,
+      target: FingerprintSettingsV2Fragment,
     ) = suspendCancellableCoroutine { continuation ->
       val dialog = FingerprintDeletionDialog()
       dialog.onClickListener = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
@@ -109,7 +109,7 @@
       val bundle = Bundle()
       bundle.putObject(
         KEY_FINGERPRINT,
-        android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId)
+        android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
       )
       bundle.putBoolean(KEY_IS_LAST_FINGERPRINT, lastFingerprint)
       dialog.arguments = bundle
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
index ea26946..09dcb81 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
@@ -22,7 +22,7 @@
 import androidx.lifecycle.lifecycleScope
 import androidx.preference.PreferenceViewHolder
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settingslib.widget.TwoTargetPreference
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
@@ -30,10 +30,10 @@
 private const val TAG = "FingerprintSettingsPreference"
 
 class FingerprintSettingsPreference(
-    context: Context,
-    val fingerprintViewModel: FingerprintData,
-    val fragment: FingerprintSettingsV2Fragment,
-    val isLastFingerprint: Boolean
+  context: Context,
+  val fingerprintViewModel: FingerprintData,
+  val fragment: FingerprintSettingsV2Fragment,
+  val isLastFingerprint: Boolean,
 ) : TwoTargetPreference(context) {
   private lateinit var myView: View
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
index ff469f1..9fef0c5 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
@@ -27,7 +27,7 @@
 import android.widget.ImeAwareEditText
 import androidx.appcompat.app.AlertDialog
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment
 import kotlin.coroutines.resume
 import kotlinx.coroutines.suspendCancellableCoroutine
@@ -78,7 +78,7 @@
           end: Int,
           dest: Spanned?,
           dstart: Int,
-          dend: Int
+          dend: Int,
         ): CharSequence? {
           for (index in start until end) {
             val c = source[index]
@@ -133,13 +133,13 @@
         val bundle = Bundle()
         bundle.putObject(
           KEY_FINGERPRINT,
-          android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId)
+          android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
         )
         dialog.arguments = bundle
         Log.d(TAG, "showing dialog $dialog")
         dialog.show(
           target.parentFragmentManager,
-          FingerprintSettingsRenameDialog::class.java.toString()
+          FingerprintSettingsRenameDialog::class.java.toString(),
         )
       }
   }
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
index c22a5a7..05bb329 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
@@ -45,11 +45,12 @@
 import com.android.settings.biometrics.GatekeeperPasswordProvider
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepoImpl
+import com.android.settings.biometrics.fingerprint2.data.repository.PressToAuthRepoImpl
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.repository.PressToAuthProviderImpl
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
-import com.android.settings.biometrics.fingerprint2.shared.model.Settings
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.Settings
 import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
@@ -128,12 +129,12 @@
           if (resultCode == BiometricEnrollBase.RESULT_TIMEOUT) {
             navigationViewModel.onEnrollFirstFailure(
               "Received RESULT_TIMEOUT when enrolling",
-              resultCode
+              resultCode,
             )
           } else {
             navigationViewModel.onEnrollFirstFailure(
               "Incorrect resultCode or data was null",
-              resultCode
+              resultCode,
             )
           }
         } else {
@@ -212,21 +213,24 @@
           context.contentResolver,
           Secure.SFPS_PERFORMANT_AUTH_ENABLED,
           toReturn,
-          userHandle
+          userHandle,
         )
       }
 
       toReturn == 1
     }
+    val fingerprintSensorProvider =
+      FingerprintSensorRepoImpl(fingerprintManager, backgroundDispatcher, lifecycleScope)
 
     val interactor =
       FingerprintManagerInteractorImpl(
         context.applicationContext,
         backgroundDispatcher,
         fingerprintManager,
+        fingerprintSensorProvider,
         GatekeeperPasswordProvider(LockPatternUtils(context.applicationContext)),
-        PressToAuthProviderImpl(context),
-        isAnySuw
+        PressToAuthRepoImpl(context),
+        Settings,
       )
 
     val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
@@ -240,8 +244,8 @@
           interactor,
           backgroundDispatcher,
           token,
-          challenge
-        )
+          challenge,
+        ),
       )[FingerprintSettingsNavigationViewModel::class.java]
 
     settingsViewModel =
@@ -252,15 +256,10 @@
           interactor,
           backgroundDispatcher,
           navigationViewModel,
-        )
+        ),
       )[FingerprintSettingsViewModel::class.java]
 
-    FingerprintSettingsViewBinder.bind(
-      this,
-      settingsViewModel,
-      navigationViewModel,
-      lifecycleScope,
-    )
+    FingerprintSettingsViewBinder.bind(this, settingsViewModel, navigationViewModel, lifecycleScope)
   }
 
   override fun getMetricsCategory(): Int {
@@ -364,7 +363,7 @@
       RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
         activity,
         DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT,
-        requireActivity().userId
+        requireActivity().userId,
       )
     val activity = requireActivity()
     val helpIntent =
@@ -404,7 +403,7 @@
       column.title =
         getString(
           R.string.security_settings_fingerprint_enroll_introduction_v3_message,
-          DeviceHelper.getDeviceName(requireActivity())
+          DeviceHelper.getDeviceName(requireActivity()),
         )
       column.learnMoreOnClickListener = learnMoreClickListener
       column.learnMoreOverrideText =
@@ -437,13 +436,12 @@
       val willDelete =
         fingerprintPreferences()
           .first { it?.fingerprintViewModel == fingerprintViewModel }
-          ?.askUserToDeleteDialog()
-          ?: false
+          ?.askUserToDeleteDialog() ?: false
       if (willDelete) {
         mMetricsFeatureProvider.action(
           context,
           SettingsEnums.ACTION_FINGERPRINT_DELETE,
-          fingerprintViewModel.fingerId
+          fingerprintViewModel.fingerId,
         )
       }
       return willDelete
@@ -466,7 +464,7 @@
         mMetricsFeatureProvider.action(
           context,
           SettingsEnums.ACTION_FINGERPRINT_RENAME,
-          toReturn.first.fingerId
+          toReturn.first.fingerId,
         )
       }
       return toReturn
@@ -518,12 +516,12 @@
     val intent = Intent()
     intent.setClassName(
       SETTINGS_PACKAGE_NAME,
-      FingerprintEnrollIntroductionInternal::class.java.name
+      FingerprintEnrollIntroductionInternal::class.java.name,
     )
     intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true)
     intent.putExtra(
       SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
-      SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE
+      SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE,
     )
 
     intent.putExtra(Intent.EXTRA_USER_ID, userId)
@@ -546,7 +544,7 @@
     val intent = Intent()
     intent.setClassName(
       SETTINGS_PACKAGE_NAME,
-      FingerprintEnrollEnrolling::class.qualifiedName.toString()
+      FingerprintEnrollEnrolling::class.qualifiedName.toString(),
     )
     intent.putExtra(Intent.EXTRA_USER_ID, userId)
     intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, challengeToken)
@@ -568,8 +566,7 @@
 
     return category?.let { cat ->
       cat.childrenToList().map { it as FingerprintSettingsPreference? }
-    }
-      ?: emptyList()
+    } ?: emptyList()
   }
 
   private fun PreferenceCategory.childrenToList(): List<Preference> {
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
index 22a25e1..00b91a8 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
@@ -21,7 +21,7 @@
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
 import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
@@ -32,11 +32,11 @@
 
 /** A Viewmodel that represents the navigation of the FingerprintSettings activity. */
 class FingerprintSettingsNavigationViewModel(
-    private val userId: Int,
-    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-    private val backgroundDispatcher: CoroutineDispatcher,
-    tokenInit: ByteArray?,
-    challengeInit: Long?,
+  private val userId: Int,
+  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  private val backgroundDispatcher: CoroutineDispatcher,
+  tokenInit: ByteArray?,
+  challengeInit: Long?,
 ) : ViewModel() {
 
   private var token = tokenInit
@@ -173,17 +173,15 @@
   }
 
   class FingerprintSettingsNavigationModelFactory(
-      private val userId: Int,
-      private val interactor: FingerprintManagerInteractor,
-      private val backgroundDispatcher: CoroutineDispatcher,
-      private val token: ByteArray?,
-      private val challenge: Long?,
+    private val userId: Int,
+    private val interactor: FingerprintManagerInteractor,
+    private val backgroundDispatcher: CoroutineDispatcher,
+    private val token: ByteArray?,
+    private val challenge: Long?,
   ) : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
 
       return FingerprintSettingsNavigationViewModel(
         userId,
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
index 164f79f..80bbb43 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
@@ -21,9 +21,9 @@
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.flow.Flow
@@ -66,7 +66,7 @@
       emit(
         Pair(
           fingerprintManagerInteractor.canEnrollFingerprints.first(),
-          fingerprintManagerInteractor.maxEnrollableFingerprints.first()
+          fingerprintManagerInteractor.maxEnrollableFingerprints.first(),
         )
       )
     }
@@ -120,7 +120,7 @@
         _isLockedOut,
         _attemptsSoFar,
         _fingerprintSensorType,
-        _sensorNullOrEmpty
+        _sensorNullOrEmpty,
       ) {
         dialogShowing,
         step,
@@ -140,7 +140,7 @@
               "lockedOut=${isLockedOut}," +
               "attempts=${attempts}," +
               "sensorType=${sensorType}" +
-              "sensorNullOrEmpty=${sensorNullOrEmpty}"
+              "sensorNullOrEmpty=${sensorNullOrEmpty}",
           )
         }
         if (sensorNullOrEmpty) {
@@ -294,9 +294,7 @@
   ) : ViewModelProvider.Factory {
 
     @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
 
       return FingerprintSettingsViewModel(
         userId,
@@ -318,7 +316,7 @@
   flow6: Flow<T6>,
   flow7: Flow<T7>,
   flow8: Flow<T8>,
-  crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8) -> R
+  crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8) -> R,
 ): Flow<R> {
   return combine(flow, flow2, flow3, flow4, flow5, flow6, flow7, flow8) { args: Array<*> ->
     @Suppress("UNCHECKED_CAST")
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
index d9155b6..3acedb1 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
@@ -29,10 +29,8 @@
   val challengeToken: ByteArray?,
 ) : NextStepViewModel()
 
-data class EnrollAdditionalFingerprint(
-  val userId: Int,
-  val challengeToken: ByteArray?,
-) : NextStepViewModel()
+data class EnrollAdditionalFingerprint(val userId: Int, val challengeToken: ByteArray?) :
+  NextStepViewModel()
 
 data class FinishSettings(val reason: String) : NextStepViewModel()
 
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
index 181da4e..2a1d9c6 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
@@ -16,15 +16,11 @@
 
 package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
 
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 
 /** Classed use to represent a Dialogs state. */
 sealed class PreferenceViewModel {
-  data class RenameDialog(
-      val fingerprintViewModel: FingerprintData,
-  ) : PreferenceViewModel()
+  data class RenameDialog(val fingerprintViewModel: FingerprintData) : PreferenceViewModel()
 
-  data class DeleteDialog(
-      val fingerprintViewModel: FingerprintData,
-  ) : PreferenceViewModel()
+  data class DeleteDialog(val fingerprintViewModel: FingerprintData) : PreferenceViewModel()
 }
diff --git a/src/com/android/settings/privacy/CameraExtensionsFallbackPreferenceController.java b/src/com/android/settings/privacy/CameraExtensionsFallbackPreferenceController.java
new file mode 100644
index 0000000..1d9c354
--- /dev/null
+++ b/src/com/android/settings/privacy/CameraExtensionsFallbackPreferenceController.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privacy;
+
+import static android.provider.Settings.Secure.CAMERA_EXTENSIONS_FALLBACK;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * Toggle for camera extensions software fallback
+ */
+public class CameraExtensionsFallbackPreferenceController extends TogglePreferenceController {
+    public CameraExtensionsFallbackPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public boolean isChecked() {
+        int val = Settings.Secure.getInt(mContext.getContentResolver(),
+                CAMERA_EXTENSIONS_FALLBACK, 1);
+        return val == 1;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        int val = isChecked ? 1 : 0;
+        return Settings.Secure.putInt(mContext.getContentResolver(),
+                CAMERA_EXTENSIONS_FALLBACK, val);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return false;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        // not needed since it's not sliceable
+        return NO_RES;
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java b/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
index e426477..726567e 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
@@ -34,7 +34,8 @@
     public void onCreate(Bundle icicle) {
         if (android.os.Flags.allowPrivateProfile()) {
             super.onCreate(icicle);
-            if (getIntent().getBooleanExtra(EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED, false)) {
+            if (icicle == null
+                    && getIntent().getBooleanExtra(EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED, false)) {
                 Log.i(TAG, "Private space unlocked showing toast");
                 Toast.makeText(getContext(), R.string.private_space_unlocked, Toast.LENGTH_SHORT)
                         .show();
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt b/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt
index 024f346..cea72aa 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint2/fragment/FingerprintEnrollIntroFragmentTest.kt
@@ -33,16 +33,20 @@
 import androidx.test.espresso.matcher.ViewMatchers.withText
 import androidx.test.runner.AndroidJUnit4
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.lib.model.Default
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Introduction
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollIntroV2Fragment
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollIntroViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Intro
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
 import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import com.android.systemui.biometrics.shared.model.SensorStrength
 import com.google.android.setupdesign.GlifLayout
 import com.google.android.setupdesign.template.RequireScrollMixin
 import kotlinx.coroutines.test.StandardTestDispatcher
@@ -62,18 +66,27 @@
     )
   private val backgroundDispatcher = StandardTestDispatcher()
   private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
+  private val fingerprintSensor =
+    FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
+
+  var enrollFlow = Default
+  val flowViewModel = FingerprintFlowViewModel(enrollFlow)
 
   private val navigationViewModel =
-    FingerprintEnrollNavigationViewModel(
-      backgroundDispatcher,
-      interactor,
-      gatekeeperViewModel,
-      Intro,
-      NavState(true),
-      Default,
+    FingerprintNavigationViewModel(
+      Introduction,
+      false,
+      flowViewModel,
+      interactor
     )
+
   private var fingerprintViewModel =
-    FingerprintEnrollViewModel(interactor, gatekeeperViewModel, navigationViewModel)
+    FingerprintEnrollIntroViewModel(
+      navigationViewModel,
+      flowViewModel,
+      interactor,
+    )
+
   private var fingerprintScrollViewModel = FingerprintScrollViewModel()
 
   @Before
@@ -85,9 +98,9 @@
           modelClass: Class<T>,
         ): T {
           return when (modelClass) {
-            FingerprintEnrollViewModel::class.java -> fingerprintViewModel
+            FingerprintEnrollIntroViewModel::class.java -> fingerprintViewModel
             FingerprintScrollViewModel::class.java -> fingerprintScrollViewModel
-            FingerprintEnrollNavigationViewModel::class.java -> navigationViewModel
+            FingerprintNavigationViewModel::class.java -> navigationViewModel
             FingerprintGatekeeperViewModel::class.java -> gatekeeperViewModel
             else -> null
           }
diff --git a/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt b/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
index bf28b54..493a669 100644
--- a/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
+++ b/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
@@ -30,16 +30,19 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import androidx.test.platform.app.InstrumentationRegistry
 import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.lib.model.Default
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollIntroV2Fragment
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollIntroViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Start
 import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import com.android.systemui.biometrics.shared.model.SensorStrength
 import kotlinx.coroutines.test.StandardTestDispatcher
 import org.junit.Before
 import org.junit.Rule
@@ -60,7 +63,7 @@
         InstrumentationRegistry.getInstrumentation()
           .getTargetContext()
           .getFilesDir()
-          .getAbsolutePath() + "/settings_screenshots"
+          .getAbsolutePath() + "/settings_screenshots",
       )
     )
 
@@ -70,24 +73,27 @@
   private val gatekeeperViewModel =
     FingerprintGatekeeperViewModel(
       GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 2, 3), 100L),
-      interactor
+      interactor,
     )
 
   private val backgroundDispatcher = StandardTestDispatcher()
   private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
-  val navState = NavState(true)
+  private val fingerprintSensor =
+    FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
 
-  private val navigationViewModel = FingerprintEnrollNavigationViewModel(
-      backgroundDispatcher,
+  var enrollFlow = Default
+  val flowViewModel = FingerprintFlowViewModel(enrollFlow)
+
+  private val navigationViewModel =
+    FingerprintNavigationViewModel(
+      FingerprintNavigationStep.Introduction,
+      false,
+      flowViewModel,
       interactor,
-      gatekeeperViewModel,
-      Start.next(navState),
-      navState,
-      Default,
     )
-  private var fingerprintViewModel = FingerprintEnrollViewModel(
-      interactor, gatekeeperViewModel, navigationViewModel,
-    )
+
+  private var fingerprintViewModel =
+    FingerprintEnrollIntroViewModel(navigationViewModel, flowViewModel, interactor)
   private var fingerprintScrollViewModel = FingerprintScrollViewModel()
 
   @Before
@@ -95,13 +101,11 @@
     val factory =
       object : ViewModelProvider.Factory {
         @Suppress("UNCHECKED_CAST")
-        override fun <T : ViewModel> create(
-          modelClass: Class<T>,
-        ): T {
+        override fun <T : ViewModel> create(modelClass: Class<T>): T {
           return when (modelClass) {
-            FingerprintEnrollViewModel::class.java -> fingerprintViewModel
+            FingerprintEnrollIntroViewModel::class.java -> fingerprintViewModel
             FingerprintScrollViewModel::class.java -> fingerprintScrollViewModel
-            FingerprintEnrollNavigationViewModel::class.java -> navigationViewModel
+            FingerprintNavigationViewModel::class.java -> navigationViewModel
             FingerprintGatekeeperViewModel::class.java -> gatekeeperViewModel
             else -> null
           }
@@ -118,11 +122,7 @@
   /** Renders a [view] into a [Bitmap]. */
   private fun viewToBitmap(view: View): Bitmap {
     val bitmap =
-      Bitmap.createBitmap(
-        view.measuredWidth,
-        view.measuredHeight,
-        Bitmap.Config.ARGB_8888,
-      )
+      Bitmap.createBitmap(view.measuredWidth, view.measuredHeight, Bitmap.Config.ARGB_8888)
     val canvas = Canvas(bitmap)
     view.draw(canvas)
     return bitmap
@@ -136,12 +136,7 @@
     }
     fragmentScenario.onFragment { fragment ->
       val view = fragment.requireView().findViewById<View>(R.id.enroll_intro_content_view)!!
-      rule.assertBitmapAgainstGolden(
-        viewToBitmap(view),
-        "fp_enroll_intro",
-        MSSIMMatcher()
-      )
+      rule.assertBitmapAgainstGolden(viewToBitmap(view), "fp_enroll_intro", MSSIMMatcher())
     }
-
   }
 }
diff --git a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
index dd8658c..7991ff1 100644
--- a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
+++ b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
@@ -16,11 +16,11 @@
 
 package com.android.settings.testutils2
 
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
 import com.android.systemui.biometrics.shared.model.FingerprintSensorType
 import com.android.systemui.biometrics.shared.model.SensorStrength
diff --git a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
index 3440d2a..f1808e3 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
@@ -26,17 +26,23 @@
 import android.os.Handler
 import androidx.test.core.app.ApplicationProvider
 import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepo
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.shared.data.repository.PressToAuthProvider
-import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.shared.model.Default
-import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerEnrollState
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.data.repository.PressToAuthRepo
+import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.lib.model.Default
+import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerEnrollState
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settings.password.ChooseLockSettingsHelper
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import com.android.systemui.biometrics.shared.model.SensorStrength
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.cancelAndJoin
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.flow.last
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.test.StandardTestDispatcher
@@ -71,21 +77,28 @@
   @Mock private lateinit var gateKeeperPasswordProvider: GatekeeperPasswordProvider
 
   private var testScope = TestScope(backgroundDispatcher)
-  private var pressToAuthProvider =
-    object : PressToAuthProvider {
+  private var pressToAuthRepo =
+    object : PressToAuthRepo {
       override val isEnabled: Boolean
         get() = false
     }
 
   @Before
   fun setup() {
+    val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
+    val fingerprintSensorRepo =
+      object : FingerprintSensorRepo {
+        override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensor)
+      }
+
     underTest =
       FingerprintManagerInteractorImpl(
         context,
         backgroundDispatcher,
         fingerprintManager,
+        fingerprintSensorRepo,
         gateKeeperPasswordProvider,
-        pressToAuthProvider,
+        pressToAuthRepo,
         Default,
       )
   }
diff --git a/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt b/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
index bd94cba..3b02d49 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
@@ -21,16 +21,17 @@
 import android.view.accessibility.AccessibilityManager
 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
 import androidx.test.core.app.ApplicationProvider
-import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.lib.model.Default
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.AccessibilityViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FoldStateViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NextStepViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
 import com.android.settings.testutils2.FakeFingerprintManagerInteractor
 import com.android.systemui.biometrics.shared.model.FingerprintSensor
@@ -38,7 +39,6 @@
 import com.android.systemui.biometrics.shared.model.SensorStrength
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.test.StandardTestDispatcher
 import kotlinx.coroutines.test.TestScope
@@ -67,7 +67,7 @@
   private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
   private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
   private lateinit var enrollViewModel: FingerprintEnrollViewModel
-  private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
+  private lateinit var navigationViewModel: FingerprintNavigationViewModel
   private lateinit var accessibilityViewModel: AccessibilityViewModel
   private lateinit var foldStateViewModel: FoldStateViewModel
   private lateinit var orientationStateViewModel: OrientationStateViewModel
@@ -87,18 +87,19 @@
     gatekeeperViewModel =
       FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
           null,
-          fakeFingerprintManagerInteractor
+          fakeFingerprintManagerInteractor,
         )
         .create(FingerprintGatekeeperViewModel::class.java)
+
+    val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
+    val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
     navigationViewModel =
-      FingerprintEnrollNavigationViewModel.FingerprintEnrollNavigationViewModelFactory(
-          backgroundDispatcher,
-          fakeFingerprintManagerInteractor,
-          gatekeeperViewModel,
-          canSkipConfirm = true,
-          Default,
-        )
-        .create(FingerprintEnrollNavigationViewModel::class.java)
+      FingerprintNavigationViewModel(
+        Education(sensor),
+        false,
+        fingerprintFlowViewModel,
+        fakeFingerprintManagerInteractor,
+      )
 
     backgroundViewModel =
       BackgroundViewModel.BackgroundViewModelFactory().create(BackgroundViewModel::class.java)
@@ -126,12 +127,10 @@
           backgroundViewModel,
           accessibilityViewModel,
           foldStateViewModel,
-          orientationStateViewModel
+          orientationStateViewModel,
+          fingerprintFlowViewModel,
         )
         .create(FingerprintEnrollFindSensorViewModel::class.java)
-
-    // Navigate to Education page
-    navigationViewModel.nextStep()
   }
 
   @After
@@ -142,18 +141,6 @@
   // TODO(b/305094585): test enroll() logic
 
   @Test
-  fun currentStepIsEducation() =
-    testScope.runTest {
-      var step: NextStepViewModel? = null
-      val job = launch {
-        navigationViewModel.navigationViewModel.collectLatest { step = it.currStep }
-      }
-      advanceUntilIdle()
-      assertThat(step).isEqualTo(Education)
-      job.cancel()
-    }
-
-  @Test
   fun udfpsLottieInfo() =
     testScope.runTest {
       fakeFingerprintManagerInteractor.sensorProp =
@@ -161,7 +148,7 @@
           0 /* sensorId */,
           SensorStrength.STRONG,
           5,
-          FingerprintSensorType.UDFPS_OPTICAL
+          FingerprintSensorType.UDFPS_OPTICAL,
         )
 
       var udfpsLottieInfo: Boolean? = null
@@ -234,7 +221,7 @@
           0 /* sensorId */,
           SensorStrength.STRONG,
           5,
-          FingerprintSensorType.UDFPS_OPTICAL
+          FingerprintSensorType.UDFPS_OPTICAL,
         )
 
       var showPrimaryButton: Boolean? = null
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
index efb4a07..4678da1 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollEnrollingViewModelTest.kt
@@ -17,16 +17,20 @@
 package com.android.settings.fingerprint2.ui.enrollment.viewmodel
 
 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import com.android.settings.biometrics.fingerprint2.shared.model.Default
+import com.android.settings.biometrics.fingerprint2.lib.model.Default
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollEnrollingViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavState
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
 import com.android.settings.testutils2.FakeFingerprintManagerInteractor
+import com.android.systemui.biometrics.shared.model.FingerprintSensor
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import com.android.systemui.biometrics.shared.model.SensorStrength
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -54,7 +58,7 @@
   private lateinit var enrollEnrollingViewModel: FingerprintEnrollEnrollingViewModel
   private lateinit var backgroundViewModel: BackgroundViewModel
   private lateinit var gateKeeperViewModel: FingerprintGatekeeperViewModel
-  private lateinit var navigationViewModel: FingerprintEnrollNavigationViewModel
+  private lateinit var navigationViewModel: FingerprintNavigationViewModel
   private val defaultGatekeeperInfo = GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 3), 3)
   private var testScope = TestScope(backgroundDispatcher)
 
@@ -65,18 +69,18 @@
     gateKeeperViewModel =
       FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
           gatekeeperInfo,
-          fakeFingerprintManagerInteractor
+          fakeFingerprintManagerInteractor,
         )
         .create(FingerprintGatekeeperViewModel::class.java)
+    val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
+    val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
 
     navigationViewModel =
-      FingerprintEnrollNavigationViewModel(
-        backgroundDispatcher,
+      FingerprintNavigationViewModel(
+        Enrollment(sensor),
+        false,
+        fingerprintFlowViewModel,
         fakeFingerprintManagerInteractor,
-        gateKeeperViewModel,
-        Enrollment,
-        NavState(true),
-        Default,
       )
 
     backgroundViewModel =
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
index 064e087..201fffa 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
@@ -18,7 +18,7 @@
 
 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
 import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
diff --git a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
index 4bd9121..6577c95 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
@@ -17,8 +17,8 @@
 package com.android.settings.fingerprint2.ui.settings
 
 import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptModel
-import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintAuthAttemptModel
+import com.android.settings.biometrics.fingerprint2.lib.model.FingerprintData
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
 import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
diff --git a/tests/unit/src/com/android/settings/privacy/CameraExtensionsFallbackPreferenceControllerTest.java b/tests/unit/src/com/android/settings/privacy/CameraExtensionsFallbackPreferenceControllerTest.java
new file mode 100644
index 0000000..8871be9
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privacy/CameraExtensionsFallbackPreferenceControllerTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privacy;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.privacy.CameraExtensionsFallbackPreferenceController;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class CameraExtensionsFallbackPreferenceControllerTest {
+
+    private static final String KEY = "camera_extensions_fallback";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+
+    private int mOriginalPreference;
+    private ContentResolver mContentResolver;
+    private CameraExtensionsFallbackPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mContentResolver = mContext.getContentResolver();
+        mOriginalPreference = Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.CAMERA_EXTENSIONS_FALLBACK, 1);
+        mController = new CameraExtensionsFallbackPreferenceController(mContext, KEY);
+    }
+
+    @After
+    public void tearDown() {
+        Settings.Secure.putInt(mContentResolver, Settings.Secure.CAMERA_EXTENSIONS_FALLBACK,
+                mOriginalPreference);
+    }
+
+    @Test
+    public void getAvailability_returnAvailable() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void setChecked_disable_shouldTurnOff() {
+        Settings.Secure.putInt(mContentResolver,
+                Settings.Secure.CAMERA_EXTENSIONS_FALLBACK, 1);
+
+        assertThat(mController.isChecked()).isTrue();
+
+        mController.setChecked(false);
+
+        assertThat(Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.CAMERA_EXTENSIONS_FALLBACK, -1)).isEqualTo(0);
+    }
+
+    @Test
+    public void setChecked_enable_shouldTurnOn() {
+        Settings.Secure.putInt(mContentResolver,
+                Settings.Secure.CAMERA_EXTENSIONS_FALLBACK, 0);
+
+        assertThat(mController.isChecked()).isFalse();
+
+        mController.setChecked(true);
+
+        assertThat(Settings.Secure.getInt(mContentResolver,
+                Settings.Secure.CAMERA_EXTENSIONS_FALLBACK, -1)).isEqualTo(1);
+    }
+}