diff --git a/res/drawable-nodpi/gesture_ambient_lift b/res/drawable-nodpi/gesture_ambient_lift
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/gesture_ambient_lift
diff --git a/res/drawable-nodpi/gesture_ambient_tap b/res/drawable-nodpi/gesture_ambient_tap
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/gesture_ambient_tap
diff --git a/res/drawable-nodpi/gesture_double_tap b/res/drawable-nodpi/gesture_double_tap
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/gesture_double_tap
diff --git a/res/drawable-nodpi/gesture_fingerprint_swipe b/res/drawable-nodpi/gesture_fingerprint_swipe
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/gesture_fingerprint_swipe
diff --git a/res/drawable-nodpi/gesture_twist b/res/drawable-nodpi/gesture_twist
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/gesture_twist
diff --git a/res/layout/gesture_preference.xml b/res/layout/gesture_preference.xml
index d5685ea..ccbc42a 100644
--- a/res/layout/gesture_preference.xml
+++ b/res/layout/gesture_preference.xml
@@ -74,6 +74,7 @@
                 android:id="@+id/gesture_image"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
+                android:scaleType="fitXY"
                 android:background="@color/gestures_setting_background_color"/>
 
             <ImageView
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 9808398..d7cc454 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -2603,7 +2603,7 @@
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"Kun alarmer"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Total stilhed"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloker synsforstyrrelser"</string>
+    <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Bloker visuelle forstyrrelser"</string>
     <string name="configure_notification_settings" msgid="3558846607192693233">"Konfigurer underretninger"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avanceret"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Arbejdsunderretninger"</string>
@@ -2733,10 +2733,10 @@
     <string name="zen_mode_summary_alarms_only_by_time" msgid="7465525754879341907">"Skift til Kun alarmer frem til <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="6172985102689237703">"Skift til Afbryd altid"</string>
     <string name="zen_mode_screen_on" msgid="7712038508173845101">"Bloker, når skærmen er tændt"</string>
-    <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"Undgå, at underretninger, der er lydløse, når Forstyr ikke er slået til, vises på skærmen"</string>
+    <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"Underretninger, der gøres lydløse af Forstyr ikke, vises ikke på skærmen"</string>
     <string name="zen_mode_screen_off" msgid="5026854939192419879">"Bloker, når skærmen er slukket"</string>
-    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"Undgå, at underretninger, der er lydløse, når Forstyr ikke er slået til, tænder skærmen eller får underretningslyset til at blinke"</string>
-    <string name="zen_mode_screen_off_summary_no_led" msgid="3758698381956461866">"Undgå, at underretninger, der er lydløse, når Forstyr ikke er slået til, tænder skærmen"</string>
+    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"Underretninger, der gøres lydløse af Forstyr ikke, tænder ikke skærmen og får ikke underretningslyset til at blinke"</string>
+    <string name="zen_mode_screen_off_summary_no_led" msgid="3758698381956461866">"Underretninger, der gøres lydløse af Forstyr ikke, tænder ikke skærmen"</string>
     <string name="zen_mode_all_visual_interruptions" msgid="2851308980832487411">"Fra"</string>
     <string name="zen_mode_screen_on_visual_interruptions" msgid="7373348148129140528">"Når skærmen er tændt"</string>
     <string name="zen_mode_screen_off_visual_interruptions" msgid="4850792880144382633">"Når skærmen er slukket"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index f50c6ee..ccbf4ab 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -752,7 +752,7 @@
     <string name="wifi_wps_nfc_enter_password" msgid="2288214226916117159">"Εισαγάγετε κωδικό πρόσβασης δικτύου"</string>
     <string name="wifi_scan_always_turnon_message" msgid="203123538572122989">"Για τη βελτίωση της ακρίβειας της τοποθεσίας σας και για άλλους σκοπούς, η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> επιθυμεί να ενεργοποιήσει τη σάρωση δικτύων, ακόμη και όταν το Wi-Fi είναι απενεργοποιημένο.\n\nΝα επιτρέπεται αυτή η ενέργεια για όλες τις εφαρμογές που επιθυμούν σάρωση;"</string>
     <string name="wifi_scan_always_turnoff_message" msgid="5538901671131941043">"Για να το απενεργοποιήσετε, μεταβείτε στις Σύνθετες ρυθμίσεις, στο μενού υπερχείλισης."</string>
-    <string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"Να επιτραπεί"</string>
+    <string name="wifi_scan_always_confirm_allow" msgid="5355973075896817232">"Να επιτρέπεται"</string>
     <string name="wifi_scan_always_confirm_deny" msgid="4463982053823520710">"Απόρριψη"</string>
     <string name="wifi_hotspot_title" msgid="7726205804813286950">"Να γίνει σύνδεση στο σημείο πρόσβασης Wi-Fi;"</string>
     <string name="wifi_hotspot_message" msgid="3673833421453455747">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> απαιτεί σύνδεση διαδικτύου, πριν από τη σύνδεση στο δίκτυο."</string>
@@ -1236,8 +1236,8 @@
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Αυτήν τη στιγμή είστε συνδεδεμένοι στους παρακάτω λογαριασμούς:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"Υπάρχουν άλλοι χρήστες σε αυτήν τη συσκευή.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Μουσική"</li>\n<li>"Φωτογραφίες"</li>\n<li>"Άλλα δεδομένα χρήστη"</li></string>
-    <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7744115866662613411">\n\n"Πρέπει να γίνει διαγραφή του "<b>"αποθηκευτικού χώρου USB"</b>" για να γίνει, επίσης, εκκαθάριση της μουσικής, των εικόνων και άλλων δεδομένων."</string>
-    <string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"Πρέπει να γίνει εκκαθάριση της "<b>"κάρτας SD"</b>" για να γίνει, επίσης, εκκαθάριση της μουσικής, των εικόνων και άλλων δεδομένων."</string>
+    <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7744115866662613411">\n\n"Πρέπει να γίνει διαγραφή του "<b>"αποθηκευτικού χώρου USB"</b>" για να γίνει, επίσης, διαγραφή της μουσικής, των εικόνων και άλλων δεδομένων."</string>
+    <string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"Πρέπει να γίνει διαγραφή της "<b>"κάρτας SD"</b>" για να γίνει, επίσης, διαγραφή της μουσικής, των εικόνων και άλλων δεδομένων."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"Διαγρ. αποθ. χώρου USB"</string>
     <string name="erase_external_storage" product="default" msgid="1397239046334307625">"Διαγραφή κάρτας SD"</string>
     <string name="erase_external_storage_description" product="nosdcard" msgid="4728558173931599429">"Διαγράψτε όλα τα δεδομένα που υπάρχουν στον εσωτερικό αποθηκευτικό χώρο USB του τηλεφώνου σας, όπως αρχεία μουσικής και φωτογραφίες"</string>
@@ -1438,13 +1438,13 @@
     <string name="screen_compatibility_label" msgid="663250687205465394">"Συμβατότητα οθόνης"</string>
     <string name="permissions_label" msgid="2605296874922726203">"Άδειες"</string>
     <string name="cache_header_label" msgid="1877197634162461830">"Κρυφή μνήμη"</string>
-    <string name="clear_cache_btn_text" msgid="5756314834291116325">"Εκκαθάριση προσωρινής μνήμης"</string>
+    <string name="clear_cache_btn_text" msgid="5756314834291116325">"Διαγραφή προσωρινής μνήμης"</string>
     <string name="cache_size_label" msgid="7505481393108282913">"Κρυφή μνήμη"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="3983110543017963732">
       <item quantity="other">%d στοιχεία</item>
       <item quantity="one">1 στοιχείο</item>
     </plurals>
-    <string name="clear_uri_btn_text" msgid="8575655132961012158">"Εκκαθάριση πρόσβασης"</string>
+    <string name="clear_uri_btn_text" msgid="8575655132961012158">"Διαγραφή πρόσβασης"</string>
     <string name="controls_label" msgid="7611113077086853799">"Στοιχεία ελέγχου"</string>
     <string name="force_stop" msgid="7435006169872876756">"Αναγκαστική διακοπή"</string>
     <string name="total_size_label" msgid="1048676419552557254">"Σύνολο"</string>
@@ -1458,12 +1458,12 @@
     <string name="install_text" msgid="884360662922471113">"Εγκατάσταση"</string>
     <string name="disable_text" msgid="6544054052049395202">"Απενεργοποίηση"</string>
     <string name="enable_text" msgid="9217362512327828987">"Ενεργοποίηση"</string>
-    <string name="clear_user_data_text" msgid="5597622864770098388">"Εκκαθάριση δεδομένων"</string>
+    <string name="clear_user_data_text" msgid="5597622864770098388">"Διαγραφή δεδομένων"</string>
     <string name="app_factory_reset" msgid="6635744722502563022">"Κατάργηση εγκατάστασης ενημερώσεων"</string>
     <string name="auto_launch_enable_text" msgid="4275746249511874845">"Έχετε επιλέξει να γίνεται εκκίνηση αυτής της εφαρμογής από προεπιλογή για ορισμένες ενέργειες."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Έχετε επιλέξει να επιτρέπεται σε αυτήν την εφαρμογή η δημιουργία γραφικών στοιχείων και η πρόσβαση στα δεδομένα τους."</string>
     <string name="auto_launch_disable_text" msgid="7800385822185540166">"Δεν έχουν οριστεί προεπιλογές."</string>
-    <string name="clear_activities" msgid="7408923511535174430">"Εκκαθάριση προεπιλογών"</string>
+    <string name="clear_activities" msgid="7408923511535174430">"Διαγραφή προεπιλογών"</string>
     <string name="screen_compatibility_text" msgid="1616155457673106022">"Αυτή η εφαρμογή ενδέχεται να μην έχει σχεδιαστεί για την οθόνη σας. Εδώ μπορείτε να ελέγξετε τον τρόπο προσαρμογής της στην οθόνη σας."</string>
     <string name="ask_compatibility" msgid="7225195569089607846">"Να ερωτώμαι κατά την εκκίνηση"</string>
     <string name="enable_compatibility" msgid="5806819252068617811">"Κλιμάκωση εφαρμογών"</string>
@@ -1501,8 +1501,8 @@
     <string name="app_not_found_dlg_title" msgid="3127123411738434964"></string>
     <string name="app_not_found_dlg_text" msgid="4893589904687340011">"Η εφαρμογή δεν βρέθηκε στη λίστα με τις εγκατεστημένες εφαρμογές."</string>
     <string name="clear_data_failed" msgid="7214074331627422248">"Δεν ήταν δυνατή η απαλοιφή των δεδομένων εφαρμογής."</string>
-    <string name="clear_failed_dlg_title" msgid="2387060805294783175">"Εκκαθάριση δεδομένων"</string>
-    <string name="clear_failed_dlg_text" msgid="5464475937929941008">"Δεν ήταν δυνατή η εκκαθάριση δεδομένων για την εφαρμογή."</string>
+    <string name="clear_failed_dlg_title" msgid="2387060805294783175">"Διαγραφή δεδομένων"</string>
+    <string name="clear_failed_dlg_text" msgid="5464475937929941008">"Δεν ήταν δυνατή η διαγραφή δεδομένων για την εφαρμογή."</string>
     <string name="security_settings_desc" product="tablet" msgid="1292421279262430109">"Αυτή η εφαρμογή μπορεί να αποκτήσει πρόσβαση στα ακόλουθα στο tablet σας:"</string>
     <string name="security_settings_desc" product="default" msgid="61749028818785244">"Αυτή η εφαρμογή μπορεί να αποκτήσει πρόσβαση στα ακόλουθα στο τηλέφωνό σας:"</string>
     <string name="security_settings_desc_multi" product="tablet" msgid="7300932212437084403">"Αυτή η εφαρμογή έχει τη δυνατότητα πρόσβασης στα παρακάτω στοιχεία στο tablet σας. Προκειμένου να βελτιωθεί η απόδοση και να περιοριστεί η χρήση μνήμης, ορισμένα από αυτά τα δικαιώματα είναι διαθέσιμα στην εφαρμογή <xliff:g id="BASE_APP_NAME">%1$s</xliff:g> καθώς εκτελείται με την ίδια διαδικασία με τις εφαρμογές <xliff:g id="ADDITIONAL_APPS_LIST">%2$s</xliff:g>:"</string>
@@ -1996,7 +1996,7 @@
     <string name="credentials_install" product="default" msgid="953914549998062317">"Εγκατάσταση από κάρτα SD"</string>
     <string name="credentials_install_summary" product="nosdcard" msgid="4220422806818210676">"Εγκατάσταση πιστοποιητικών από συσκευή αποθήκευσης"</string>
     <string name="credentials_install_summary" product="default" msgid="5737658257407822713">"Εγκατάσταση πιστοποιητικών από την κάρτα SD"</string>
-    <string name="credentials_reset" msgid="3239382277144980418">"Εκκαθάριση διαπιστευτηρίων"</string>
+    <string name="credentials_reset" msgid="3239382277144980418">"Διαγραφή διαπιστευτηρίων"</string>
     <string name="credentials_reset_summary" msgid="3369361230171260282">"Κατάργηση όλων των πιστοποιητικών"</string>
     <string name="trusted_credentials" msgid="4266945289534242402">"Αξιόπιστα διαπ/τήρια"</string>
     <string name="trusted_credentials_summary" msgid="6735221351155686632">"Προβολή αξιόπιστων πιστοποιητικών CA"</string>
@@ -2537,7 +2537,7 @@
     <string name="keywords_text_to_speech_output" msgid="5150660047085754699">"αξιολόγηση, γλώσσα, προεπιλογή, μιλώ, ομιλία, tts, προσβασιμότητα, αναγνώστης οθόνης, τυφλός"</string>
     <string name="keywords_date_and_time" msgid="758325881602648204">"ρολόι, στρατιωτικό"</string>
     <string name="keywords_network_reset" msgid="6024276007080940820">"επαναφορά, επαναφορά, εργοστασιακές ρυθμίσεις"</string>
-    <string name="keywords_factory_data_reset" msgid="5894970373671252165">"σβήσιμο, διαγραφή, αποκατάσταση, εκκαθάριση, κατάργηση"</string>
+    <string name="keywords_factory_data_reset" msgid="5894970373671252165">"σβήσιμο, διαγραφή, αποκατάσταση, διαγραφή, κατάργηση"</string>
     <string name="keywords_printing" msgid="1701778563617114846">"εκτυπωτής"</string>
     <string name="keywords_sounds" msgid="7146245090127541167">"ηχητικό σήμα ομιλητή"</string>
     <string name="keywords_sounds_and_notifications_interruptions" msgid="5426093074031208917">"μην μην ενοχλείτε, διακόπτω, διακοπή, διάλειμμα"</string>
@@ -3147,8 +3147,8 @@
     <string name="notification_log_details_ranking_null" msgid="244660392058720919">"Το αντικείμενο κατάταξης λείπει."</string>
     <string name="notification_log_details_ranking_none" msgid="599607025882587844">"Το αντικείμενο κατάταξης δεν περιέχει αυτό το κλειδί."</string>
     <string name="special_access" msgid="8275242424094109976">"Ειδική πρόσβαση"</string>
-    <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"Να γίνει όντως εκκαθάριση των δεδομένων χρήστη και μετατροπή σε κρυπτογράφηση αρχείου;"</string>
-    <string name="button_confirm_convert_fbe" msgid="7101855374850373091">"Εκκαθάριση και μετατροπή"</string>
+    <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"Να γίνει όντως διαγραφή των δεδομένων χρήστη και μετατροπή σε κρυπτογράφηση αρχείου;"</string>
+    <string name="button_confirm_convert_fbe" msgid="7101855374850373091">"Διαγραφή και μετατροπή"</string>
     <string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"Επαναφορά ορίου ρυθμού ShortcutManager"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"Έγινε επαναφορά του ορίου ρυθμού ShortcutManager"</string>
     <string name="notification_suggestion_title" msgid="4506524937307816475">"Έλεγχος ειδοποιήσεων κλειδώματος οθόνης"</string>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index a60457c..640f769 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -875,12 +875,12 @@
     <string name="musicfx_title" msgid="3415566786340790345">"સંગીત પ્રભાવો"</string>
     <string name="ring_volume_title" msgid="5592466070832128777">"રિંગ વૉલ્યુમ"</string>
     <string name="vibrate_in_silent_title" msgid="3897968069156767036">"શાંત હોય ત્યારે વાઇબ્રેટ કરો"</string>
-    <string name="notification_sound_title" msgid="5137483249425507572">"ડિફોલ્ટ સૂચના ધ્વનિ"</string>
+    <string name="notification_sound_title" msgid="5137483249425507572">"ડિફોલ્ટ સૂચના માટે ધ્વનિ"</string>
     <string name="incoming_call_volume_title" msgid="8073714801365904099">"રિંગટોન"</string>
     <string name="notification_volume_title" msgid="2012640760341080408">"સૂચના"</string>
     <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"સૂચનાઓ માટે ઇનકમિંગ કૉલ વોલ્યુમનો ઉપયોગ કરો"</string>
     <string name="home_work_profile_not_supported" msgid="7457951997970419085">"કાર્ય પ્રોફાઇલ્સનું સમર્થન કરતું નથી"</string>
-    <string name="notification_sound_dialog_title" msgid="3805140135741385667">"ડિફોલ્ટ સૂચના ધ્વનિ"</string>
+    <string name="notification_sound_dialog_title" msgid="3805140135741385667">"ડિફોલ્ટ સૂચના માટે ધ્વનિ"</string>
     <string name="media_volume_title" msgid="3576565767317118106">"મીડિયા"</string>
     <string name="media_volume_summary" msgid="5363248930648849974">"સંગીત અને વિડિઓ માટે વોલ્યૂમ સેટ કરો"</string>
     <string name="alarm_volume_title" msgid="2285597478377758706">"એલાર્મ"</string>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 218d7f2..6df41d2 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -139,6 +139,7 @@
     <!-- For GesturePreference -->
     <declare-styleable name="GesturePreference">
         <attr name="animation" format="reference" />
+        <attr name="preview" format="reference" />
     </declare-styleable>
 
     <!-- For AspectRatioFrameLayout -->
diff --git a/res/values/config.xml b/res/values/config.xml
index 6d56e18..75d8697 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -52,17 +52,10 @@
     <string name="gesture_double_twist_sensor_name" translatable="false"></string>
     <string name="gesture_double_twist_sensor_vendor" translatable="false"></string>
 
-    <!-- Pickup sensor name and vendor used by gesture setting -->
-    <string name="gesture_pickup_sensor_name" translatable="false"></string>
-    <string name="gesture_pickup_sensor_vendor" translatable="false"></string>
-
     <!-- When true enable gesture setting. -->
     <bool name="config_gesture_settings_enabled">false</bool>
 
     <!-- If the Storage Manager settings are enabled. -->
     <bool name="config_storage_manager_settings_enabled">false</bool>
 
-    <!-- When true show double-tap gesture setting. -->
-    <bool name="config_gesture_double_tap_settings_enabled">false</bool>
-
 </resources>
diff --git a/res/xml/gesture_settings.xml b/res/xml/gesture_settings.xml
index af365bf..8954916 100644
--- a/res/xml/gesture_settings.xml
+++ b/res/xml/gesture_settings.xml
@@ -23,30 +23,35 @@
         android:key="gesture_swipe_down_fingerprint"
         android:title="@string/fingerprint_swipe_for_notifications_title"
         android:summary="@string/fingerprint_swipe_for_notifications_summary"
-        settings:animation="@raw/gesture_fingerprint_swipe"/>
+        settings:animation="@raw/gesture_fingerprint_swipe"
+        settings:preview="@drawable/gesture_fingerprint_swipe"/>
 
     <com.android.settings.gestures.GesturePreference
         android:key="gesture_double_tap_power"
         android:title="@string/double_tap_power_for_camera_title"
         android:summary="@string/double_tap_power_for_camera_summary"
-        settings:animation="@raw/gesture_double_tap"/>
+        settings:animation="@raw/gesture_double_tap"
+        settings:preview="@drawable/gesture_double_tap"/>
 
     <com.android.settings.gestures.GesturePreference
         android:key="gesture_double_twist"
         android:title="@string/double_twist_for_camera_mode_title"
         android:summary="@string/double_twist_for_camera_mode_summary"
-        settings:animation="@raw/gesture_twist"/>
+        settings:animation="@raw/gesture_twist"
+        settings:preview="@drawable/gesture_twist"/>
 
     <com.android.settings.gestures.GesturePreference
         android:key="gesture_double_tap_screen"
         android:title="@string/ambient_display_title"
         android:summary="@string/ambient_display_summary"
-        settings:animation="@raw/gesture_ambient_tap"/>
+        settings:animation="@raw/gesture_ambient_tap"
+        settings:preview="@drawable/gesture_ambient_tap"/>
 
     <com.android.settings.gestures.GesturePreference
         android:key="gesture_pick_up"
         android:title="@string/ambient_display_pickup_title"
         android:summary="@string/ambient_display_pickup_summary"
-        settings:animation="@raw/gesture_ambient_lift"/>
+        settings:animation="@raw/gesture_ambient_lift"
+        settings:preview="@drawable/gesture_ambient_lift"/>
 
 </PreferenceScreen>
\ No newline at end of file
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index dd8064f..de62f92 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -277,6 +277,13 @@
                         Toast.LENGTH_LONG);
                 mDevHitToast.show();
             }
+        } else if (preference.getKey().equals(KEY_SECURITY_PATCH)) {
+            if (getPackageManager().queryIntentActivities(preference.getIntent(), 0).isEmpty()) {
+                // Don't send out the intent to stop crash
+                Log.w(LOG_TAG, "Stop click action on " + KEY_SECURITY_PATCH + ": "
+                        + "queryIntentActivities() returns empty" );
+                return true;
+            }
         } else if (preference.getKey().equals(KEY_DEVICE_FEEDBACK)) {
             sendFeedback();
         } else if(preference.getKey().equals(KEY_SYSTEM_UPDATE_SETTINGS)) {
diff --git a/src/com/android/settings/gestures/GesturePreference.java b/src/com/android/settings/gestures/GesturePreference.java
index 4536aa2..1909dcd 100644
--- a/src/com/android/settings/gestures/GesturePreference.java
+++ b/src/com/android/settings/gestures/GesturePreference.java
@@ -14,18 +14,12 @@
 
 package com.android.settings.gestures;
 
-import android.app.LoaderManager;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.Loader;
 import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
 import android.graphics.SurfaceTexture;
-import android.media.MediaMetadataRetriever;
 import android.media.MediaPlayer;
 import android.net.Uri;
-import android.os.Bundle;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.PreferenceViewHolder;
 import android.view.View;
@@ -36,15 +30,13 @@
 import android.util.Log;
 
 import com.android.settings.R;
-import com.android.settings.utils.AsyncLoader;
 
 /**
  * Preference item for a gesture with a switch to signify if it should be enabled.
  * This shows the title and description of the gesture along with an animation showing how to do
  * the gesture
  */
-public final class GesturePreference extends SwitchPreference implements
-        LoaderManager.LoaderCallbacks<Bitmap> {
+public final class GesturePreference extends SwitchPreference {
     private static final String TAG = "GesturePreference";
     private final Context mContext;
 
@@ -53,7 +45,7 @@
     private boolean mAnimationAvailable;
     private boolean mVideoReady;
     private boolean mScrolling;
-    private BitmapDrawable mPreviewImage;
+    private int mPreviewResource;
 
     public GesturePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -71,6 +63,10 @@
             mMediaPlayer = MediaPlayer.create(mContext, mVideoPath);
             if (mMediaPlayer != null && mMediaPlayer.getDuration() > 0) {
                 setLayoutResource(R.layout.gesture_preference);
+
+                mPreviewResource = attributes.getResourceId(
+                        R.styleable.GesturePreference_preview, 0);
+
                 mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
                     @Override
                     public void onSeekComplete(MediaPlayer mp) {
@@ -103,6 +99,7 @@
 
         final TextureView video = (TextureView) holder.findViewById(R.id.gesture_video);
         final ImageView imageView = (ImageView) holder.findViewById(R.id.gesture_image);
+        imageView.setImageResource(mPreviewResource);
         final ImageView playButton = (ImageView) holder.findViewById(R.id.gesture_play_button);
 
         video.setOnClickListener(new View.OnClickListener() {
@@ -138,9 +135,6 @@
 
             @Override
             public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
-                if (mPreviewImage != null && imageView.getDrawable() == null) {
-                    imageView.setImageDrawable(mPreviewImage);
-                }
                 imageView.setVisibility(View.VISIBLE);
                 return false;
             }
@@ -159,10 +153,6 @@
             }
         });
 
-        if (mPreviewImage != null) {
-            imageView.setImageDrawable(mPreviewImage);
-        }
-
     }
 
     @Override
@@ -179,63 +169,10 @@
         mScrolling = scrolling;
     }
 
-    void loadPreview(LoaderManager manager, int id) {
-        if (mAnimationAvailable) {
-            Loader<Bitmap> loader = manager.initLoader(id, Bundle.EMPTY, this);
-        }
-    }
-
     void onViewVisible() {
         if (mVideoReady && mMediaPlayer != null && !mMediaPlayer.isPlaying()) {
             mMediaPlayer.seekTo(0);
         }
     }
 
-    private static final class PreviewRetriever extends AsyncLoader<Bitmap> {
-        private Uri mVideoPath;
-
-        public PreviewRetriever(Context context, Uri videoPath) {
-            super(context);
-            mVideoPath = videoPath;
-        }
-
-        @Override
-        public Bitmap loadInBackground() {
-            MediaMetadataRetriever mediaMetadata = new MediaMetadataRetriever();
-            try {
-                mediaMetadata.setDataSource(getContext(), mVideoPath);
-                return mediaMetadata.getFrameAtTime(0);
-            } catch (Exception e) {
-                Log.w(TAG, "Unable to get animation preview.");
-            } finally {
-                mediaMetadata.release();
-            }
-            return null;
-        }
-
-        @Override
-        public void onDiscardResult(final Bitmap result) {
-            if (result != null && !result.isRecycled()) {
-                result.recycle();
-            }
-        }
-
-    }
-
-    @Override
-    public Loader<Bitmap> onCreateLoader(int id, Bundle args) {
-        return new PreviewRetriever(mContext, mVideoPath);
-    }
-
-    @Override
-    public void onLoadFinished(final Loader<Bitmap> loader, final Bitmap bitmap) {
-        if (bitmap != null) {
-            mPreviewImage = new BitmapDrawable(mContext.getResources(), bitmap);
-        }
-    }
-
-    @Override
-    public void onLoaderReset(Loader<Bitmap> loader) {
-    }
-
 }
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index 14df471..74080ce 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -20,9 +20,8 @@
 import android.content.res.Resources;
 import android.hardware.Sensor;
 import android.hardware.SensorManager;
-import android.os.Build;
 import android.os.Bundle;
-import android.os.SystemProperties;
+import android.os.UserHandle;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings.Secure;
 import android.support.v7.preference.Preference;
@@ -32,6 +31,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 
+import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -56,14 +56,11 @@
     private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint";
     private static final String PREF_KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
     private static final String DEBUG_DOZE_COMPONENT = "debug.doze.component";
-    private static final int PREF_ID_DOUBLE_TAP_POWER = 0;
-    private static final int PREF_ID_DOUBLE_TWIST = 1;
-    private static final int PREF_ID_PICK_UP = 2;
-    private static final int PREF_ID_SWIPE_DOWN_FINGERPRINT = 3;
-    private static final int PREF_ID_DOUBLE_TAP_SCREEN = 4;
 
     private List<GesturePreference> mPreferences;
 
+    private AmbientDisplayConfiguration mAmbientConfig;
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -75,30 +72,29 @@
         if (isCameraDoubleTapPowerGestureAvailable(getResources())) {
             int cameraDisabled = Secure.getInt(
                     getContentResolver(), Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
-            addPreference(PREF_KEY_DOUBLE_TAP_POWER, cameraDisabled == 0, PREF_ID_DOUBLE_TAP_POWER);
+            addPreference(PREF_KEY_DOUBLE_TAP_POWER, cameraDisabled == 0);
         } else {
             removePreference(PREF_KEY_DOUBLE_TAP_POWER);
         }
 
         // Ambient Display
-        boolean dozeEnabled = isDozeAvailable(context);
-        if (dozeEnabled && isPickupAvailable(context)) {
-            int pickup = Secure.getInt(getContentResolver(), Secure.DOZE_PULSE_ON_PICK_UP, 1);
-            addPreference(PREF_KEY_PICK_UP, pickup != 0, PREF_ID_PICK_UP);
+        mAmbientConfig = new AmbientDisplayConfiguration(context);
+        if (mAmbientConfig.pulseOnPickupAvailable()) {
+            boolean pickup = mAmbientConfig.pulseOnPickupEnabled(UserHandle.myUserId());
+            addPreference(PREF_KEY_PICK_UP, pickup);
         } else {
             removePreference(PREF_KEY_PICK_UP);
         }
-        if (dozeEnabled && isDoubleTapAvailable(context)) {
-            int doubleTap = Secure.getInt(getContentResolver(), Secure.DOZE_PULSE_ON_DOUBLE_TAP, 1);
-            addPreference(PREF_KEY_DOUBLE_TAP_SCREEN, doubleTap != 0, PREF_ID_DOUBLE_TAP_SCREEN);
+        if (mAmbientConfig.pulseOnDoubleTapAvailable()) {
+            boolean doubleTap = mAmbientConfig.pulseOnDoubleTapEnabled(UserHandle.myUserId());
+            addPreference(PREF_KEY_DOUBLE_TAP_SCREEN, doubleTap);
         } else {
             removePreference(PREF_KEY_DOUBLE_TAP_SCREEN);
         }
 
         // Fingerprint slide for notifications
         if (isSystemUINavigationAvailable(context)) {
-            addPreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT, isSystemUINavigationEnabled(context),
-                    PREF_ID_SWIPE_DOWN_FINGERPRINT);
+            addPreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT, isSystemUINavigationEnabled(context));
         } else {
             removePreference(PREF_KEY_SWIPE_DOWN_FINGERPRINT);
         }
@@ -107,7 +103,7 @@
         if (isDoubleTwistAvailable(context)) {
             int doubleTwistEnabled = Secure.getInt(
                     getContentResolver(), Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
-            addPreference(PREF_KEY_DOUBLE_TWIST, doubleTwistEnabled != 0, PREF_ID_DOUBLE_TWIST);
+            addPreference(PREF_KEY_DOUBLE_TWIST, doubleTwistEnabled != 0);
         } else {
             removePreference(PREF_KEY_DOUBLE_TWIST);
         }
@@ -184,15 +180,6 @@
                 com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled);
     }
 
-    private static boolean isDozeAvailable(Context context) {
-        String name = Build.IS_DEBUGGABLE ? SystemProperties.get(DEBUG_DOZE_COMPONENT) : null;
-        if (TextUtils.isEmpty(name)) {
-            name = context.getResources().getString(
-                    com.android.internal.R.string.config_dozeComponent);
-        }
-        return !TextUtils.isEmpty(name);
-    }
-
     private static boolean isSystemUINavigationAvailable(Context context) {
         return context.getResources().getBoolean(
                 com.android.internal.R.bool.config_supportSystemNavigationKeys);
@@ -208,11 +195,6 @@
                 R.string.gesture_double_twist_sensor_vendor);
     }
 
-    private static boolean isPickupAvailable(Context context) {
-        return hasSensor(context, R.string.gesture_pickup_sensor_name,
-                R.string.gesture_pickup_sensor_vendor);
-    }
-
     private static boolean hasSensor(Context context, int nameResId, int vendorResId) {
         Resources resources = context.getResources();
         String name = resources.getString(nameResId);
@@ -229,16 +211,10 @@
         return false;
     }
 
-    private static boolean isDoubleTapAvailable(Context context) {
-        return context.getResources().getBoolean(
-                R.bool.config_gesture_double_tap_settings_enabled);
-    }
-
-    private void addPreference(String key, boolean enabled, int id) {
+    private void addPreference(String key, boolean enabled) {
         GesturePreference preference = (GesturePreference) findPreference(key);
         preference.setChecked(enabled);
         preference.setOnPreferenceChangeListener(this);
-        preference.loadPreview(getLoaderManager(), id);
         mPreferences.add(preference);
     }
 
@@ -260,13 +236,15 @@
             @Override
             public List<String> getNonIndexableKeys(Context context) {
                 ArrayList<String> result = new ArrayList<String>();
+                AmbientDisplayConfiguration ambientConfig
+                        = new AmbientDisplayConfiguration(context);
                 if (!isCameraDoubleTapPowerGestureAvailable(context.getResources())) {
                     result.add(PREF_KEY_DOUBLE_TAP_POWER);
                 }
-                if (!isDozeAvailable(context) || !isPickupAvailable(context)) {
+                if (!ambientConfig.pulseOnPickupAvailable()) {
                     result.add(PREF_KEY_PICK_UP);
                 }
-                if (!isDozeAvailable(context) || !isDoubleTapAvailable(context)) {
+                if (!ambientConfig.pulseOnDoubleTapAvailable()) {
                     result.add(PREF_KEY_DOUBLE_TAP_SCREEN);
                 }
                 if (!isSystemUINavigationAvailable(context)) {
