Merge "Import translations. DO NOT MERGE"
diff --git a/res/drawable-hdpi/ic_appwidget_settings_bluetooth_on_holo.png b/res/drawable-hdpi/ic_appwidget_settings_bluetooth_on_holo.png
index 37b1b10..77e120f7 100644
--- a/res/drawable-hdpi/ic_appwidget_settings_bluetooth_on_holo.png
+++ b/res/drawable-hdpi/ic_appwidget_settings_bluetooth_on_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_appwidget_settings_brightness_auto_holo.png b/res/drawable-hdpi/ic_appwidget_settings_brightness_auto_holo.png
index 5776a5f..a8fde41 100644
--- a/res/drawable-hdpi/ic_appwidget_settings_brightness_auto_holo.png
+++ b/res/drawable-hdpi/ic_appwidget_settings_brightness_auto_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_appwidget_settings_brightness_full_holo.png b/res/drawable-hdpi/ic_appwidget_settings_brightness_full_holo.png
index 976844b..c5ea9b6 100644
--- a/res/drawable-hdpi/ic_appwidget_settings_brightness_full_holo.png
+++ b/res/drawable-hdpi/ic_appwidget_settings_brightness_full_holo.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_cellphone.png b/res/drawable-hdpi/ic_bt_cellphone.png
index 89200cb..a6a6448 100644
--- a/res/drawable-hdpi/ic_bt_cellphone.png
+++ b/res/drawable-hdpi/ic_bt_cellphone.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_headphones_a2dp.png b/res/drawable-hdpi/ic_bt_headphones_a2dp.png
index 4d15411..7e0f73b 100644
--- a/res/drawable-hdpi/ic_bt_headphones_a2dp.png
+++ b/res/drawable-hdpi/ic_bt_headphones_a2dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_headset_hfp.png b/res/drawable-hdpi/ic_bt_headset_hfp.png
index 6e47d9d..a32379e 100644
--- a/res/drawable-hdpi/ic_bt_headset_hfp.png
+++ b/res/drawable-hdpi/ic_bt_headset_hfp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_imaging.png b/res/drawable-hdpi/ic_bt_imaging.png
index 6d36e60..66d7538 100644
--- a/res/drawable-hdpi/ic_bt_imaging.png
+++ b/res/drawable-hdpi/ic_bt_imaging.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_keyboard_hid.png b/res/drawable-hdpi/ic_bt_keyboard_hid.png
index a2bed50..3021165 100644
--- a/res/drawable-hdpi/ic_bt_keyboard_hid.png
+++ b/res/drawable-hdpi/ic_bt_keyboard_hid.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_laptop.png b/res/drawable-hdpi/ic_bt_laptop.png
index 98276ef..1f9a1e8 100644
--- a/res/drawable-hdpi/ic_bt_laptop.png
+++ b/res/drawable-hdpi/ic_bt_laptop.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_misc_hid.png b/res/drawable-hdpi/ic_bt_misc_hid.png
index 77776d1..1d75d6c 100644
--- a/res/drawable-hdpi/ic_bt_misc_hid.png
+++ b/res/drawable-hdpi/ic_bt_misc_hid.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_network_pan.png b/res/drawable-hdpi/ic_bt_network_pan.png
index dfd77fb..78c0294 100644
--- a/res/drawable-hdpi/ic_bt_network_pan.png
+++ b/res/drawable-hdpi/ic_bt_network_pan.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_bt_pointing_hid.png b/res/drawable-hdpi/ic_bt_pointing_hid.png
index 11f1039..4755d22 100644
--- a/res/drawable-hdpi/ic_bt_pointing_hid.png
+++ b/res/drawable-hdpi/ic_bt_pointing_hid.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_item_delete.png b/res/drawable-hdpi/ic_item_delete.png
index 2956109..5804521 100644
--- a/res/drawable-hdpi/ic_item_delete.png
+++ b/res/drawable-hdpi/ic_item_delete.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_data_usage.png b/res/drawable-hdpi/ic_settings_data_usage.png
index a8af00e..05cc163 100644
--- a/res/drawable-hdpi/ic_settings_data_usage.png
+++ b/res/drawable-hdpi/ic_settings_data_usage.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_date_time.png b/res/drawable-hdpi/ic_settings_date_time.png
old mode 100755
new mode 100644
index 65f909a..2b61b22
--- a/res/drawable-hdpi/ic_settings_date_time.png
+++ b/res/drawable-hdpi/ic_settings_date_time.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_display.png b/res/drawable-hdpi/ic_settings_display.png
index e0b3173..1230978 100644
--- a/res/drawable-hdpi/ic_settings_display.png
+++ b/res/drawable-hdpi/ic_settings_display.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_dock.png b/res/drawable-hdpi/ic_settings_dock.png
index 1fff758..97b1694 100644
--- a/res/drawable-hdpi/ic_settings_dock.png
+++ b/res/drawable-hdpi/ic_settings_dock.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_home.png b/res/drawable-hdpi/ic_settings_home.png
index ce1a06c..1333b3a 100644
--- a/res/drawable-hdpi/ic_settings_home.png
+++ b/res/drawable-hdpi/ic_settings_home.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_language.png b/res/drawable-hdpi/ic_settings_language.png
old mode 100755
new mode 100644
index f635b2e..5332469
--- a/res/drawable-hdpi/ic_settings_language.png
+++ b/res/drawable-hdpi/ic_settings_language.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_location.png b/res/drawable-hdpi/ic_settings_location.png
index 22d2dea..98cfb86 100644
--- a/res/drawable-hdpi/ic_settings_location.png
+++ b/res/drawable-hdpi/ic_settings_location.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_multiuser.png b/res/drawable-hdpi/ic_settings_multiuser.png
index 74af8ae0..ae48c4d 100644
--- a/res/drawable-hdpi/ic_settings_multiuser.png
+++ b/res/drawable-hdpi/ic_settings_multiuser.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_notifications.png b/res/drawable-hdpi/ic_settings_notifications.png
index 5041ebb..c064620 100644
--- a/res/drawable-hdpi/ic_settings_notifications.png
+++ b/res/drawable-hdpi/ic_settings_notifications.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_security.png b/res/drawable-hdpi/ic_settings_security.png
index 6ea7562..c779437 100644
--- a/res/drawable-hdpi/ic_settings_security.png
+++ b/res/drawable-hdpi/ic_settings_security.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_sound.png b/res/drawable-hdpi/ic_settings_sound.png
old mode 100755
new mode 100644
index 42354cd..8400123
--- a/res/drawable-hdpi/ic_settings_sound.png
+++ b/res/drawable-hdpi/ic_settings_sound.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_sync.png b/res/drawable-hdpi/ic_settings_sync.png
old mode 100755
new mode 100644
index cab2405..333ca53
--- a/res/drawable-hdpi/ic_settings_sync.png
+++ b/res/drawable-hdpi/ic_settings_sync.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_settings_wireless.png b/res/drawable-hdpi/ic_settings_wireless.png
index faed9e3..1f0c444 100644
--- a/res/drawable-hdpi/ic_settings_wireless.png
+++ b/res/drawable-hdpi/ic_settings_wireless.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_sysbar_quicksettings.png b/res/drawable-hdpi/ic_sysbar_quicksettings.png
index 47b4ba2..939a14d 100644
--- a/res/drawable-hdpi/ic_sysbar_quicksettings.png
+++ b/res/drawable-hdpi/ic_sysbar_quicksettings.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_tab_selected_download.png b/res/drawable-hdpi/ic_tab_selected_download.png
index 39d2938..dd3f5f9 100644
--- a/res/drawable-hdpi/ic_tab_selected_download.png
+++ b/res/drawable-hdpi/ic_tab_selected_download.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_tab_selected_running.png b/res/drawable-hdpi/ic_tab_selected_running.png
index a73d078..17b71b4 100644
--- a/res/drawable-hdpi/ic_tab_selected_running.png
+++ b/res/drawable-hdpi/ic_tab_selected_running.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_appwidget_settings_bluetooth_on_holo.png b/res/drawable-mdpi/ic_appwidget_settings_bluetooth_on_holo.png
index e647c03..c2fc5e4 100644
--- a/res/drawable-mdpi/ic_appwidget_settings_bluetooth_on_holo.png
+++ b/res/drawable-mdpi/ic_appwidget_settings_bluetooth_on_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_appwidget_settings_brightness_auto_holo.png b/res/drawable-mdpi/ic_appwidget_settings_brightness_auto_holo.png
index 2fdd9d3..8fe0ac4 100644
--- a/res/drawable-mdpi/ic_appwidget_settings_brightness_auto_holo.png
+++ b/res/drawable-mdpi/ic_appwidget_settings_brightness_auto_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_appwidget_settings_brightness_full_holo.png b/res/drawable-mdpi/ic_appwidget_settings_brightness_full_holo.png
index 92dbf0f..bb98273 100644
--- a/res/drawable-mdpi/ic_appwidget_settings_brightness_full_holo.png
+++ b/res/drawable-mdpi/ic_appwidget_settings_brightness_full_holo.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_cellphone.png b/res/drawable-mdpi/ic_bt_cellphone.png
index bd84c48..2286bb4 100644
--- a/res/drawable-mdpi/ic_bt_cellphone.png
+++ b/res/drawable-mdpi/ic_bt_cellphone.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_headphones_a2dp.png b/res/drawable-mdpi/ic_bt_headphones_a2dp.png
index 84ac3d6..09a811e 100644
--- a/res/drawable-mdpi/ic_bt_headphones_a2dp.png
+++ b/res/drawable-mdpi/ic_bt_headphones_a2dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_headset_hfp.png b/res/drawable-mdpi/ic_bt_headset_hfp.png
index 9b53439..95d776a 100644
--- a/res/drawable-mdpi/ic_bt_headset_hfp.png
+++ b/res/drawable-mdpi/ic_bt_headset_hfp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_imaging.png b/res/drawable-mdpi/ic_bt_imaging.png
index 09367d2..64bc9f1 100644
--- a/res/drawable-mdpi/ic_bt_imaging.png
+++ b/res/drawable-mdpi/ic_bt_imaging.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_keyboard_hid.png b/res/drawable-mdpi/ic_bt_keyboard_hid.png
index 1594b2c..fdaa38d 100644
--- a/res/drawable-mdpi/ic_bt_keyboard_hid.png
+++ b/res/drawable-mdpi/ic_bt_keyboard_hid.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_laptop.png b/res/drawable-mdpi/ic_bt_laptop.png
index 4b9ad6b..b07a7d0 100644
--- a/res/drawable-mdpi/ic_bt_laptop.png
+++ b/res/drawable-mdpi/ic_bt_laptop.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_misc_hid.png b/res/drawable-mdpi/ic_bt_misc_hid.png
index 99aaa59..d4a9eda 100644
--- a/res/drawable-mdpi/ic_bt_misc_hid.png
+++ b/res/drawable-mdpi/ic_bt_misc_hid.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_network_pan.png b/res/drawable-mdpi/ic_bt_network_pan.png
index 7d1929f..5f3371f 100644
--- a/res/drawable-mdpi/ic_bt_network_pan.png
+++ b/res/drawable-mdpi/ic_bt_network_pan.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_bt_pointing_hid.png b/res/drawable-mdpi/ic_bt_pointing_hid.png
index 8145e13..cdbb182 100644
--- a/res/drawable-mdpi/ic_bt_pointing_hid.png
+++ b/res/drawable-mdpi/ic_bt_pointing_hid.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_item_delete.png b/res/drawable-mdpi/ic_item_delete.png
index 6ed1327..f4dbdc0 100644
--- a/res/drawable-mdpi/ic_item_delete.png
+++ b/res/drawable-mdpi/ic_item_delete.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_data_usage.png b/res/drawable-mdpi/ic_settings_data_usage.png
index 8064773..b3fe265 100644
--- a/res/drawable-mdpi/ic_settings_data_usage.png
+++ b/res/drawable-mdpi/ic_settings_data_usage.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_date_time.png b/res/drawable-mdpi/ic_settings_date_time.png
index f4fc73c..0833699 100644
--- a/res/drawable-mdpi/ic_settings_date_time.png
+++ b/res/drawable-mdpi/ic_settings_date_time.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_display.png b/res/drawable-mdpi/ic_settings_display.png
index 9366298..4585f60 100644
--- a/res/drawable-mdpi/ic_settings_display.png
+++ b/res/drawable-mdpi/ic_settings_display.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_dock.png b/res/drawable-mdpi/ic_settings_dock.png
index 01ebe91..4120f20 100644
--- a/res/drawable-mdpi/ic_settings_dock.png
+++ b/res/drawable-mdpi/ic_settings_dock.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_home.png b/res/drawable-mdpi/ic_settings_home.png
index 05b5e4d..06d96d9 100644
--- a/res/drawable-mdpi/ic_settings_home.png
+++ b/res/drawable-mdpi/ic_settings_home.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_language.png b/res/drawable-mdpi/ic_settings_language.png
index f8aca67..af42f4a 100644
--- a/res/drawable-mdpi/ic_settings_language.png
+++ b/res/drawable-mdpi/ic_settings_language.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_location.png b/res/drawable-mdpi/ic_settings_location.png
index 3e16033..2853c7f 100644
--- a/res/drawable-mdpi/ic_settings_location.png
+++ b/res/drawable-mdpi/ic_settings_location.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_multiuser.png b/res/drawable-mdpi/ic_settings_multiuser.png
index 758c9ec..e1ff083 100644
--- a/res/drawable-mdpi/ic_settings_multiuser.png
+++ b/res/drawable-mdpi/ic_settings_multiuser.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_notifications.png b/res/drawable-mdpi/ic_settings_notifications.png
index b8022fd..35e23e3 100644
--- a/res/drawable-mdpi/ic_settings_notifications.png
+++ b/res/drawable-mdpi/ic_settings_notifications.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_security.png b/res/drawable-mdpi/ic_settings_security.png
index 3eb4421..98ba690 100644
--- a/res/drawable-mdpi/ic_settings_security.png
+++ b/res/drawable-mdpi/ic_settings_security.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_sound.png b/res/drawable-mdpi/ic_settings_sound.png
index f647fea..2db9413 100644
--- a/res/drawable-mdpi/ic_settings_sound.png
+++ b/res/drawable-mdpi/ic_settings_sound.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_sync.png b/res/drawable-mdpi/ic_settings_sync.png
index 4130f31..5570bad 100644
--- a/res/drawable-mdpi/ic_settings_sync.png
+++ b/res/drawable-mdpi/ic_settings_sync.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_settings_wireless.png b/res/drawable-mdpi/ic_settings_wireless.png
index 37d84b8..7acea3a 100644
--- a/res/drawable-mdpi/ic_settings_wireless.png
+++ b/res/drawable-mdpi/ic_settings_wireless.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_sysbar_quicksettings.png b/res/drawable-mdpi/ic_sysbar_quicksettings.png
index 7928104..c2d7876 100644
--- a/res/drawable-mdpi/ic_sysbar_quicksettings.png
+++ b/res/drawable-mdpi/ic_sysbar_quicksettings.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_tab_selected_download.png b/res/drawable-mdpi/ic_tab_selected_download.png
index 6d9faf1..a9d71ae 100644
--- a/res/drawable-mdpi/ic_tab_selected_download.png
+++ b/res/drawable-mdpi/ic_tab_selected_download.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_tab_selected_running.png b/res/drawable-mdpi/ic_tab_selected_running.png
index b76a1d3..714c5a4 100644
--- a/res/drawable-mdpi/ic_tab_selected_running.png
+++ b/res/drawable-mdpi/ic_tab_selected_running.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_appwidget_settings_bluetooth_on_holo.png b/res/drawable-xhdpi/ic_appwidget_settings_bluetooth_on_holo.png
index 380c442..8e4d12e 100644
--- a/res/drawable-xhdpi/ic_appwidget_settings_bluetooth_on_holo.png
+++ b/res/drawable-xhdpi/ic_appwidget_settings_bluetooth_on_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_appwidget_settings_brightness_auto_holo.png b/res/drawable-xhdpi/ic_appwidget_settings_brightness_auto_holo.png
index 8528759..16d8fe3 100644
--- a/res/drawable-xhdpi/ic_appwidget_settings_brightness_auto_holo.png
+++ b/res/drawable-xhdpi/ic_appwidget_settings_brightness_auto_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_appwidget_settings_brightness_full_holo.png b/res/drawable-xhdpi/ic_appwidget_settings_brightness_full_holo.png
index b6b115c..f4dee45 100644
--- a/res/drawable-xhdpi/ic_appwidget_settings_brightness_full_holo.png
+++ b/res/drawable-xhdpi/ic_appwidget_settings_brightness_full_holo.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_cellphone.png b/res/drawable-xhdpi/ic_bt_cellphone.png
index 57bad3f..cd9ff60 100644
--- a/res/drawable-xhdpi/ic_bt_cellphone.png
+++ b/res/drawable-xhdpi/ic_bt_cellphone.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_headphones_a2dp.png b/res/drawable-xhdpi/ic_bt_headphones_a2dp.png
index 125c013..82fdf72 100644
--- a/res/drawable-xhdpi/ic_bt_headphones_a2dp.png
+++ b/res/drawable-xhdpi/ic_bt_headphones_a2dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_headset_hfp.png b/res/drawable-xhdpi/ic_bt_headset_hfp.png
index b7f8108..8793a31 100644
--- a/res/drawable-xhdpi/ic_bt_headset_hfp.png
+++ b/res/drawable-xhdpi/ic_bt_headset_hfp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_imaging.png b/res/drawable-xhdpi/ic_bt_imaging.png
index 724a134..5b0da65 100644
--- a/res/drawable-xhdpi/ic_bt_imaging.png
+++ b/res/drawable-xhdpi/ic_bt_imaging.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_keyboard_hid.png b/res/drawable-xhdpi/ic_bt_keyboard_hid.png
index a4c310c..0703859 100644
--- a/res/drawable-xhdpi/ic_bt_keyboard_hid.png
+++ b/res/drawable-xhdpi/ic_bt_keyboard_hid.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_laptop.png b/res/drawable-xhdpi/ic_bt_laptop.png
index ead98e3..25124bf 100644
--- a/res/drawable-xhdpi/ic_bt_laptop.png
+++ b/res/drawable-xhdpi/ic_bt_laptop.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_misc_hid.png b/res/drawable-xhdpi/ic_bt_misc_hid.png
index 231c6ef..06dfe48 100644
--- a/res/drawable-xhdpi/ic_bt_misc_hid.png
+++ b/res/drawable-xhdpi/ic_bt_misc_hid.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_network_pan.png b/res/drawable-xhdpi/ic_bt_network_pan.png
index 2b425c4..fb76575 100644
--- a/res/drawable-xhdpi/ic_bt_network_pan.png
+++ b/res/drawable-xhdpi/ic_bt_network_pan.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_bt_pointing_hid.png b/res/drawable-xhdpi/ic_bt_pointing_hid.png
index bb01e17..7a724b0 100644
--- a/res/drawable-xhdpi/ic_bt_pointing_hid.png
+++ b/res/drawable-xhdpi/ic_bt_pointing_hid.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_item_delete.png b/res/drawable-xhdpi/ic_item_delete.png
index 942cf23..9bfadf0 100644
--- a/res/drawable-xhdpi/ic_item_delete.png
+++ b/res/drawable-xhdpi/ic_item_delete.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_data_usage.png b/res/drawable-xhdpi/ic_settings_data_usage.png
index 8c8f620..5eb888a 100644
--- a/res/drawable-xhdpi/ic_settings_data_usage.png
+++ b/res/drawable-xhdpi/ic_settings_data_usage.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_date_time.png b/res/drawable-xhdpi/ic_settings_date_time.png
index ca8cac6..a8ddced 100644
--- a/res/drawable-xhdpi/ic_settings_date_time.png
+++ b/res/drawable-xhdpi/ic_settings_date_time.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_display.png b/res/drawable-xhdpi/ic_settings_display.png
index 3f073b4..ab05aeb 100644
--- a/res/drawable-xhdpi/ic_settings_display.png
+++ b/res/drawable-xhdpi/ic_settings_display.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_dock.png b/res/drawable-xhdpi/ic_settings_dock.png
index 483579a..578c81f 100644
--- a/res/drawable-xhdpi/ic_settings_dock.png
+++ b/res/drawable-xhdpi/ic_settings_dock.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_home.png b/res/drawable-xhdpi/ic_settings_home.png
index 6a4d84a..837ec65 100644
--- a/res/drawable-xhdpi/ic_settings_home.png
+++ b/res/drawable-xhdpi/ic_settings_home.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_language.png b/res/drawable-xhdpi/ic_settings_language.png
index 2c42db3..cdc1e1e 100644
--- a/res/drawable-xhdpi/ic_settings_language.png
+++ b/res/drawable-xhdpi/ic_settings_language.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_location.png b/res/drawable-xhdpi/ic_settings_location.png
index a3912a3..5059c3f 100644
--- a/res/drawable-xhdpi/ic_settings_location.png
+++ b/res/drawable-xhdpi/ic_settings_location.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_multiuser.png b/res/drawable-xhdpi/ic_settings_multiuser.png
index dbf8cd4..b85ddf3 100644
--- a/res/drawable-xhdpi/ic_settings_multiuser.png
+++ b/res/drawable-xhdpi/ic_settings_multiuser.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_notifications.png b/res/drawable-xhdpi/ic_settings_notifications.png
index 4a21a1b..da0d626 100644
--- a/res/drawable-xhdpi/ic_settings_notifications.png
+++ b/res/drawable-xhdpi/ic_settings_notifications.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_security.png b/res/drawable-xhdpi/ic_settings_security.png
index b5a383a..61947ea 100644
--- a/res/drawable-xhdpi/ic_settings_security.png
+++ b/res/drawable-xhdpi/ic_settings_security.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_sound.png b/res/drawable-xhdpi/ic_settings_sound.png
index 687025d..29cd34c 100644
--- a/res/drawable-xhdpi/ic_settings_sound.png
+++ b/res/drawable-xhdpi/ic_settings_sound.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_sync.png b/res/drawable-xhdpi/ic_settings_sync.png
index a66d8a4..28cb714 100644
--- a/res/drawable-xhdpi/ic_settings_sync.png
+++ b/res/drawable-xhdpi/ic_settings_sync.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_settings_wireless.png b/res/drawable-xhdpi/ic_settings_wireless.png
index 79d0ef5..dded3fd 100644
--- a/res/drawable-xhdpi/ic_settings_wireless.png
+++ b/res/drawable-xhdpi/ic_settings_wireless.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_sysbar_quicksettings.png b/res/drawable-xhdpi/ic_sysbar_quicksettings.png
index a057db8..6fec792 100644
--- a/res/drawable-xhdpi/ic_sysbar_quicksettings.png
+++ b/res/drawable-xhdpi/ic_sysbar_quicksettings.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_tab_selected_download.png b/res/drawable-xhdpi/ic_tab_selected_download.png
index 8e76bbb..6c6d26b 100644
--- a/res/drawable-xhdpi/ic_tab_selected_download.png
+++ b/res/drawable-xhdpi/ic_tab_selected_download.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_tab_selected_running.png b/res/drawable-xhdpi/ic_tab_selected_running.png
index 8eda83f..37084d2 100644
--- a/res/drawable-xhdpi/ic_tab_selected_running.png
+++ b/res/drawable-xhdpi/ic_tab_selected_running.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_appwidget_settings_bluetooth_on_holo.png b/res/drawable-xxhdpi/ic_appwidget_settings_bluetooth_on_holo.png
index de20952..53c41b9 100644
--- a/res/drawable-xxhdpi/ic_appwidget_settings_bluetooth_on_holo.png
+++ b/res/drawable-xxhdpi/ic_appwidget_settings_bluetooth_on_holo.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_appwidget_settings_brightness_auto_holo.png b/res/drawable-xxhdpi/ic_appwidget_settings_brightness_auto_holo.png
index 73acdb2..bb352cd 100644
--- a/res/drawable-xxhdpi/ic_appwidget_settings_brightness_auto_holo.png
+++ b/res/drawable-xxhdpi/ic_appwidget_settings_brightness_auto_holo.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_appwidget_settings_brightness_full_holo.png b/res/drawable-xxhdpi/ic_appwidget_settings_brightness_full_holo.png
index f2289b8..e5ab2a0 100644
--- a/res/drawable-xxhdpi/ic_appwidget_settings_brightness_full_holo.png
+++ b/res/drawable-xxhdpi/ic_appwidget_settings_brightness_full_holo.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_cellphone.png b/res/drawable-xxhdpi/ic_bt_cellphone.png
new file mode 100644
index 0000000..3c546e5
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_cellphone.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_headphones_a2dp.png b/res/drawable-xxhdpi/ic_bt_headphones_a2dp.png
new file mode 100644
index 0000000..a9edd47
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_headphones_a2dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_headset_hfp.png b/res/drawable-xxhdpi/ic_bt_headset_hfp.png
new file mode 100644
index 0000000..a4c98e7
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_headset_hfp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_imaging.png b/res/drawable-xxhdpi/ic_bt_imaging.png
new file mode 100644
index 0000000..9470510
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_imaging.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_keyboard_hid.png b/res/drawable-xxhdpi/ic_bt_keyboard_hid.png
new file mode 100644
index 0000000..488cd83
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_keyboard_hid.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_laptop.png b/res/drawable-xxhdpi/ic_bt_laptop.png
new file mode 100644
index 0000000..04c3995
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_laptop.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_misc_hid.png b/res/drawable-xxhdpi/ic_bt_misc_hid.png
new file mode 100644
index 0000000..c78ca2b
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_misc_hid.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_network_pan.png b/res/drawable-xxhdpi/ic_bt_network_pan.png
new file mode 100644
index 0000000..72bc804
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_network_pan.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_bt_pointing_hid.png b/res/drawable-xxhdpi/ic_bt_pointing_hid.png
new file mode 100644
index 0000000..49f14d0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_bt_pointing_hid.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_item_delete.png b/res/drawable-xxhdpi/ic_item_delete.png
new file mode 100644
index 0000000..58e8ce9
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_item_delete.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_data_usage.png b/res/drawable-xxhdpi/ic_settings_data_usage.png
new file mode 100644
index 0000000..b6331fb
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_data_usage.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_date_time.png b/res/drawable-xxhdpi/ic_settings_date_time.png
new file mode 100644
index 0000000..4808605
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_date_time.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_display.png b/res/drawable-xxhdpi/ic_settings_display.png
new file mode 100644
index 0000000..f5a7a1c
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_display.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_dock.png b/res/drawable-xxhdpi/ic_settings_dock.png
new file mode 100644
index 0000000..9151116
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_dock.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_home.png b/res/drawable-xxhdpi/ic_settings_home.png
index aac8773..1a01637 100644
--- a/res/drawable-xxhdpi/ic_settings_home.png
+++ b/res/drawable-xxhdpi/ic_settings_home.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_language.png b/res/drawable-xxhdpi/ic_settings_language.png
new file mode 100644
index 0000000..787be2a
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_language.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_location.png b/res/drawable-xxhdpi/ic_settings_location.png
index 72499ef..ed455b4 100644
--- a/res/drawable-xxhdpi/ic_settings_location.png
+++ b/res/drawable-xxhdpi/ic_settings_location.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_multiuser.png b/res/drawable-xxhdpi/ic_settings_multiuser.png
new file mode 100644
index 0000000..32d55c3
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_multiuser.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_notifications.png b/res/drawable-xxhdpi/ic_settings_notifications.png
index 6f5d5c1..10a129c 100644
--- a/res/drawable-xxhdpi/ic_settings_notifications.png
+++ b/res/drawable-xxhdpi/ic_settings_notifications.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_security.png b/res/drawable-xxhdpi/ic_settings_security.png
new file mode 100644
index 0000000..0b563b1
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_security.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_sound.png b/res/drawable-xxhdpi/ic_settings_sound.png
new file mode 100644
index 0000000..8748833
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_sound.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_sync.png b/res/drawable-xxhdpi/ic_settings_sync.png
new file mode 100644
index 0000000..498d9ad
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_sync.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_settings_wireless.png b/res/drawable-xxhdpi/ic_settings_wireless.png
new file mode 100644
index 0000000..0f8d454
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_settings_wireless.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_sysbar_quicksettings.png b/res/drawable-xxhdpi/ic_sysbar_quicksettings.png
new file mode 100644
index 0000000..fc3600e
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_sysbar_quicksettings.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_tab_selected_download.png b/res/drawable-xxhdpi/ic_tab_selected_download.png
new file mode 100644
index 0000000..3abb0f0
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_tab_selected_download.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_tab_selected_running.png b/res/drawable-xxhdpi/ic_tab_selected_running.png
new file mode 100644
index 0000000..bfc9b5c
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_tab_selected_running.png
Binary files differ
diff --git a/res/drawable/switch_inner.xml b/res/drawable/switch_inner.xml
new file mode 100644
index 0000000..755d645
--- /dev/null
+++ b/res/drawable/switch_inner.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_enabled="false" android:state_checked="true">
+        <nine-patch android:src="@*android:drawable/switch_on_qntm_alpha"
+                    android:tint="?android:attr/colorControlNormal"
+                    android:alpha="?android:attr/disabledAlpha" />
+    </item>
+    <item android:state_enabled="false">
+        <nine-patch android:src="@*android:drawable/switch_off_qntm_alpha"
+                    android:tint="?android:attr/colorControlNormal"
+                    android:alpha="?android:attr/disabledAlpha" />
+    </item>
+    <item android:state_checked="true">
+        <nine-patch android:src="@*android:drawable/switch_on_qntm_alpha"
+                    android:tint="@color/switch_accent_color" />
+    </item>
+    <item>
+        <nine-patch android:src="@*android:drawable/switch_off_qntm_alpha"
+                    android:tint="?android:attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/res/drawable/switch_track.xml b/res/drawable/switch_track.xml
new file mode 100644
index 0000000..466cc2c
--- /dev/null
+++ b/res/drawable/switch_track.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_checked="true">
+        <nine-patch android:src="@*android:drawable/switch_track_qntm_alpha"
+                    android:tint="@color/switch_accent_color" />
+    </item>
+    <item>
+        <nine-patch android:src="@*android:drawable/switch_track_qntm_alpha"
+                    android:tint="?android:attr/colorControlNormal" />
+    </item>
+</selector>
diff --git a/res/layout/settings_main.xml b/res/layout/settings_main.xml
index 47ed02b..b4be3bf 100644
--- a/res/layout/settings_main.xml
+++ b/res/layout/settings_main.xml
@@ -27,6 +27,12 @@
             android:layout_height="match_parent"
             android:layout_width="match_parent">
 
+        <com.android.settings.widget.SwitchBar android:id="@+id/switch_bar"
+                  android:layout_height="?android:attr/actionBarSize"
+                  android:layout_width="match_parent"
+                  android:background="@color/switch_bar_background_color"
+                  android:theme="@android:style/Theme.Quantum" />
+
         <FrameLayout
                 android:id="@+id/prefs"
                 android:layout_width="match_parent"
@@ -49,6 +55,7 @@
                 android:layout_alignParentStart="true"
                 android:text="@*android:string/back_button_label"
                 />
+
         <LinearLayout
                 android:orientation="horizontal"
                 android:layout_width="wrap_content"
diff --git a/res/layout/switch_bar.xml b/res/layout/switch_bar.xml
new file mode 100644
index 0000000..f9a887f
--- /dev/null
+++ b/res/layout/switch_bar.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2014, 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.
+*/
+-->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <TextView android:id="@+id/switch_text"
+              android:layout_height="wrap_content"
+              android:layout_width="0dp"
+              android:layout_weight="1"
+              android:paddingStart="32dp"
+              android:layout_gravity="center_vertical"
+              android:textAppearance="@style/TextAppearance.Switch"
+              android:textAlignment="viewStart" />
+
+    <Switch android:id="@+id/switch_widget"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:paddingEnd="32dp" />
+</merge>
+
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b996e1e..8a2c1f5 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -15,9 +15,6 @@
 -->
 
 <resources>
-    <!-- TODO: remove this as this is temporary. Waiting for the new Assets. -->
-    <color name="temporary_background_icon">#ffcccccc</color>
-
     <color name="black">#000</color>
     <color name="red">#F00</color>
 
@@ -62,4 +59,6 @@
 
     <color name="actionbar_background_color">#ff263238</color>
     <color name="dashboard_background_color">#ffe1e1e0</color>
+    <color name="switch_bar_background_color">#ff384248</color>
+    <color name="switch_accent_color">#ff7fcac3</color>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fd3922c..350798d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1895,10 +1895,14 @@
     <string name="accelerometer_summary_off" product="tablet">Switch orientation automatically when rotating tablet</string>
     <!-- Sound & display settings screen, accelerometer-based rotation summary text when check box is clear -->
     <string name="accelerometer_summary_off" product="default">Switch orientation automatically when rotating phone</string>
-    <!-- Sound & display settings screen, setting option name to change brightness -->
-    <string name="brightness">Brightness</string>
-    <!-- Sound & display settings screen, setting option summary to change brightness -->
+    <!-- Sound & display settings screen, setting option name to change brightness level -->
+    <string name="brightness">Brightness level</string>
+    <!-- Sound & display settings screen, setting option summary to change brightness level -->
     <string name="brightness_summary">Adjust the brightness of the screen</string>
+    <!-- Sound & display settings screen, setting option name to enable adaptive brightness -->
+    <string name="auto_brightness_title">Adaptive brightness</string>
+    <!-- Sound & display settings screen, setting option summary to enable adaptive brightness -->
+    <string name="auto_brightness_summary">Optimize brightness level for available light</string>
     <!-- Sound & display settings screen, setting option name to change screen timeout -->
     <string name="screen_timeout">Sleep</string>
     <!-- Sound & display settings screen, setting option summary to change screen timeout -->
@@ -3200,9 +3204,9 @@
     <!-- Setting title to revoke secure USB debugging authorizations -->
     <string name="clear_adb_keys">Revoke USB debugging authorizations</string>
     <!-- [CHAR LIMIT=NONE] Setting checkbox title for Whether to include bug report item in power menu. -->
-    <string name="bugreport_in_power">Power menu bug reports</string>
+    <string name="bugreport_in_power">Bug report shortcut</string>
     <!-- [CHAR LIMIT=NONE] Setting checkbox summary for Whether to include bug report item in power -->
-    <string name="bugreport_in_power_summary">Include option in power menu for taking a bug report</string>
+    <string name="bugreport_in_power_summary">Show a button in Quick Settings for taking a bug report</string>
     <!-- Setting Checkbox title whether to keep the screen on when plugged in to a power source -->
     <string name="keep_screen_on">Stay awake</string>
     <!-- setting Checkbox summary whether to keep the screen on when plugged in  -->
@@ -5243,4 +5247,8 @@
 
     <!-- Full package name of OEM preferred device feedback reporter [DO NOT TRANSLATE] -->
     <string name="oem_preferred_feedback_reporter" translatable="false"></string>
+
+    <!-- Switch On/Off  -->
+    <string name="switch_on_text">On</string>
+    <string name="switch_off_text">Off</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 08f7ff4..f9e7b2b 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -261,4 +261,8 @@
     <style name="ApnPreference">
         <item name="android:layout">@layout/apn_preference_layout</item>
     </style>
+
+    <style name="TextAppearance.Switch" parent="@android:style/TextAppearance.Quantum.Medium">
+        <item name="android:textSize">16sp</item>
+    </style>
 </resources>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 67cd7d3..c145938 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -22,6 +22,12 @@
                 android:title="@string/brightness"
                 android:persistent="false"/>
 
+        <CheckBoxPreference
+                android:key="auto_brightness"
+                android:title="@string/auto_brightness_title"
+                android:summary="@string/auto_brightness_summary"
+                android:persistent="false" />
+
         <PreferenceScreen
                 android:key="wallpaper"
                 android:title="@string/wallpaper_settings_title"
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index bc78330..d21e4ab 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -66,6 +66,7 @@
 import android.widget.Switch;
 import android.widget.TextView;
 
+import com.android.settings.widget.SwitchBar;
 import dalvik.system.VMRuntime;
 
 import java.io.File;
@@ -78,7 +79,7 @@
  */
 public class DevelopmentSettings extends SettingsPreferenceFragment
         implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
-                OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
+                OnPreferenceChangeListener, SwitchBar.OnSwitchChangeListener {
     private static final String TAG = "DevelopmentSettings";
 
     /**
@@ -163,6 +164,7 @@
     private DevicePolicyManager mDpm;
     private UserManager mUm;
 
+    private SwitchBar mSwitchBar;
     private Switch mEnabledSwitch;
     private boolean mLastEnabledState;
     private boolean mHaveDebugSettings;
@@ -377,37 +379,27 @@
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
-        final Activity activity = getActivity();
-        mEnabledSwitch = new Switch(activity.getActionBar().getThemedContext());
+        final SettingsActivity activity = (SettingsActivity) getActivity();
 
-        final int padding = activity.getResources().getDimensionPixelSize(
-                R.dimen.action_bar_switch_padding);
-        mEnabledSwitch.setPaddingRelative(0, 0, padding, 0);
+        mSwitchBar = activity.getSwitchBar();
+        mEnabledSwitch = mSwitchBar.getSwitch();
         if (mUnavailable) {
             mEnabledSwitch.setEnabled(false);
             return;
         }
-        mEnabledSwitch.setOnCheckedChangeListener(this);
+        mSwitchBar.addOnSwitchChangeListener(this);
     }
 
     @Override
     public void onStart() {
         super.onStart();
-        final Activity activity = getActivity();
-        activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
-                ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(mEnabledSwitch, new ActionBar.LayoutParams(
-                ActionBar.LayoutParams.WRAP_CONTENT,
-                ActionBar.LayoutParams.WRAP_CONTENT,
-                Gravity.CENTER_VERTICAL | Gravity.END));
+        mSwitchBar.show();
     }
 
     @Override
     public void onStop() {
         super.onStop();
-        final Activity activity = getActivity();
-        activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(null);
+        mSwitchBar.hide();
     }
 
     private boolean removePreferenceForProduction(Preference preference) {
@@ -1217,28 +1209,29 @@
     }
 
     @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        if (buttonView == mEnabledSwitch) {
-            if (isChecked != mLastEnabledState) {
-                if (isChecked) {
-                    mDialogClicked = false;
-                    if (mEnableDialog != null) dismissDialogs();
-                    mEnableDialog = new AlertDialog.Builder(getActivity()).setMessage(
-                            getActivity().getResources().getString(
-                                    R.string.dev_settings_warning_message))
-                            .setTitle(R.string.dev_settings_warning_title)
-                            .setIconAttribute(android.R.attr.alertDialogIcon)
-                            .setPositiveButton(android.R.string.yes, this)
-                            .setNegativeButton(android.R.string.no, this)
-                            .show();
-                    mEnableDialog.setOnDismissListener(this);
-                } else {
-                    resetDangerousOptions();
-                    Settings.Global.putInt(getActivity().getContentResolver(),
-                            Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
-                    mLastEnabledState = isChecked;
-                    setPrefsEnabledState(mLastEnabledState);
-                }
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+        if (switchView != mEnabledSwitch) {
+            return;
+        }
+        if (isChecked != mLastEnabledState) {
+            if (isChecked) {
+                mDialogClicked = false;
+                if (mEnableDialog != null) dismissDialogs();
+                mEnableDialog = new AlertDialog.Builder(getActivity()).setMessage(
+                        getActivity().getResources().getString(
+                                R.string.dev_settings_warning_message))
+                        .setTitle(R.string.dev_settings_warning_title)
+                        .setIconAttribute(android.R.attr.alertDialogIcon)
+                        .setPositiveButton(android.R.string.yes, this)
+                        .setNegativeButton(android.R.string.no, this)
+                        .show();
+                mEnableDialog.setOnDismissListener(this);
+            } else {
+                resetDangerousOptions();
+                Settings.Global.putInt(getActivity().getContentResolver(),
+                        Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
+                mLastEnabledState = isChecked;
+                setPrefsEnabledState(mLastEnabledState);
             }
         }
     }
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index afe5b68..3bf7cce 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -16,6 +16,9 @@
 
 package com.android.settings;
 
+import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
+import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
+import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL;
 import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
 
 import android.app.ActivityManagerNative;
@@ -25,7 +28,6 @@
 import android.content.Context;
 import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.database.ContentObserver;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.RemoteException;
@@ -35,7 +37,6 @@
 import android.preference.Preference.OnPreferenceClickListener;
 import android.preference.PreferenceScreen;
 import android.provider.Settings;
-import android.provider.Settings.SettingNotFoundException;
 import android.util.Log;
 
 import java.util.ArrayList;
@@ -50,6 +51,7 @@
     private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
     private static final String KEY_FONT_SIZE = "font_size";
     private static final String KEY_SCREEN_SAVER = "screensaver";
+    private static final String KEY_AUTO_BRIGHTNESS = "auto_brightness";
 
     private static final int DLG_GLOBAL_CHANGE_WARNING = 1;
 
@@ -60,6 +62,7 @@
 
     private ListPreference mScreenTimeoutPreference;
     private Preference mScreenSaverPreference;
+    private CheckBoxPreference mAutoBrightnessPreference;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -86,6 +89,15 @@
         mFontSizePref = (WarnedListPreference) findPreference(KEY_FONT_SIZE);
         mFontSizePref.setOnPreferenceChangeListener(this);
         mFontSizePref.setOnPreferenceClickListener(this);
+
+        boolean automaticBrightnessAvailable = getResources().getBoolean(
+                com.android.internal.R.bool.config_automatic_brightness_available);
+        if (automaticBrightnessAvailable) {
+            mAutoBrightnessPreference = (CheckBoxPreference) findPreference(KEY_AUTO_BRIGHTNESS);
+            mAutoBrightnessPreference.setOnPreferenceChangeListener(this);
+        } else {
+            removePreference(KEY_AUTO_BRIGHTNESS);
+        }
     }
 
     private void updateTimeoutPreferenceDescription(long currentTimeout) {
@@ -189,7 +201,6 @@
     @Override
     public void onResume() {
         super.onResume();
-
         updateState();
     }
 
@@ -210,6 +221,13 @@
     private void updateState() {
         readFontSizePreference(mFontSizePref);
         updateScreenSaverSummary();
+
+        // Update auto brightness if it is available.
+        if (mAutoBrightnessPreference != null) {
+            int brightnessMode = Settings.System.getInt(getContentResolver(),
+                    SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
+            mAutoBrightnessPreference.setChecked(brightnessMode != SCREEN_BRIGHTNESS_MODE_MANUAL);
+        }
     }
 
     private void updateScreenSaverSummary() {
@@ -248,7 +266,11 @@
         if (KEY_FONT_SIZE.equals(key)) {
             writeFontSizePreference(objValue);
         }
-
+        if (preference == mAutoBrightnessPreference) {
+            boolean auto = (Boolean) objValue;
+            Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE,
+                    auto ? SCREEN_BRIGHTNESS_MODE_AUTOMATIC : SCREEN_BRIGHTNESS_MODE_MANUAL);
+        }
         return true;
     }
 
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index f814a9b..fb2f0ac 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -102,6 +102,7 @@
 import com.android.settings.users.UserSettings;
 import com.android.settings.vpn2.VpnSettings;
 import com.android.settings.wfd.WifiDisplaySettings;
+import com.android.settings.widget.SwitchBar;
 import com.android.settings.wifi.AdvancedWifiSettings;
 import com.android.settings.wifi.WifiSettings;
 import com.android.settings.wifi.p2p.WifiP2pSettings;
@@ -300,8 +301,10 @@
     private final DynamicIndexableContentMonitor mDynamicIndexableContentMonitor =
             new DynamicIndexableContentMonitor();
 
-    private Button mNextButton;
     private ActionBar mActionBar;
+    private SwitchBar mSwitchBar;
+
+    private Button mNextButton;
     private boolean mDisplayHomeAsUpEnabled;
 
     private boolean mIsShowingDashboard;
@@ -330,6 +333,10 @@
 
     private boolean mNeedToRevertToInitialFragment = false;
 
+    public SwitchBar getSwitchBar() {
+        return mSwitchBar;
+    }
+
     public AuthenticatorHelper getAuthenticatorHelper() {
         return mAuthenticatorHelper;
     }
@@ -389,11 +396,6 @@
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        // Only show the Search menu on the main screen (Dashboard)
-        if (!mIsShowingDashboard) {
-            return true;
-        }
-
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.options_menu, menu);
 
@@ -505,6 +507,8 @@
         mActionBar.setDisplayHomeAsUpEnabled(mDisplayHomeAsUpEnabled);
         mActionBar.setHomeButtonEnabled(mDisplayHomeAsUpEnabled);
 
+        mSwitchBar = (SwitchBar) findViewById(R.id.switch_bar);
+
         // see if we should show Back/Next buttons
         Intent intent = getIntent();
         if (intent.getBooleanExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false)) {
@@ -1245,9 +1249,11 @@
         if (current != null && current instanceof SearchResultsSummary) {
             mSearchResultsFragment = (SearchResultsSummary) current;
         } else {
+            final boolean isShowingSwitchBar = mSwitchBar.isShowing();
             String title = getString(R.string.search_results_title);
             mSearchResultsFragment = (SearchResultsSummary) switchToFragment(
-                    SearchResultsSummary.class.getName(), null, false, true, title, true);
+                    SearchResultsSummary.class.getName(), null, false, true, title,
+                    !isShowingSwitchBar);
         }
         mSearchResultsFragment.setSearchView(mSearchView);
         mSearchMenuItemExpanded = true;
diff --git a/src/com/android/settings/bluetooth/BluetoothEnabler.java b/src/com/android/settings/bluetooth/BluetoothEnabler.java
index 1907cd1..be03b63 100644
--- a/src/com/android/settings/bluetooth/BluetoothEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothEnabler.java
@@ -31,15 +31,17 @@
 import com.android.settings.R;
 import com.android.settings.WirelessSettings;
 import com.android.settings.search.Index;
+import com.android.settings.widget.SwitchBar;
 
 /**
  * BluetoothEnabler is a helper to manage the Bluetooth on/off checkbox
  * preference. It turns on/off Bluetooth and ensures the summary of the
  * preference reflects the current state.
  */
-public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeListener {
+public final class BluetoothEnabler implements SwitchBar.OnSwitchChangeListener {
     private Context mContext;
     private Switch mSwitch;
+    private SwitchBar mSwitchBar;
     private boolean mValidListener;
     private final LocalBluetoothAdapter mLocalAdapter;
     private final IntentFilter mIntentFilter;
@@ -70,9 +72,10 @@
         }
     };
 
-    public BluetoothEnabler(Context context, Switch switch_) {
+    public BluetoothEnabler(Context context, SwitchBar switchBar) {
         mContext = context;
-        mSwitch = switch_;
+        mSwitchBar = switchBar;
+        mSwitch = switchBar.getSwitch();
         mValidListener = false;
 
         LocalBluetoothManager manager = LocalBluetoothManager.getInstance(context);
@@ -100,7 +103,8 @@
         handleStateChanged(mLocalAdapter.getBluetoothState());
 
         mContext.registerReceiver(mReceiver, mIntentFilter);
-        mSwitch.setOnCheckedChangeListener(this);
+        mSwitchBar.addOnSwitchChangeListener(this);
+        mSwitchBar.show();
         mValidListener = true;
     }
 
@@ -110,39 +114,11 @@
         }
 
         mContext.unregisterReceiver(mReceiver);
-        mSwitch.setOnCheckedChangeListener(null);
+        mSwitchBar.removeOnSwitchChangeListener(this);
+        mSwitchBar.hide();
         mValidListener = false;
     }
 
-    public void setSwitch(Switch switch_) {
-        if (mSwitch == switch_) return;
-        mSwitch.setOnCheckedChangeListener(null);
-        mSwitch = switch_;
-        mSwitch.setOnCheckedChangeListener(mValidListener ? this : null);
-
-        int bluetoothState = BluetoothAdapter.STATE_OFF;
-        if (mLocalAdapter != null) bluetoothState = mLocalAdapter.getBluetoothState();
-        boolean isOn = bluetoothState == BluetoothAdapter.STATE_ON;
-        boolean isOff = bluetoothState == BluetoothAdapter.STATE_OFF;
-        setChecked(isOn);
-        mSwitch.setEnabled(isOn || isOff);
-    }
-
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        // Show toast message if Bluetooth is not allowed in airplane mode
-        if (isChecked &&
-                !WirelessSettings.isRadioAllowed(mContext, Settings.Global.RADIO_BLUETOOTH)) {
-            Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show();
-            // Reset switch to off
-            buttonView.setChecked(false);
-        }
-
-        if (mLocalAdapter != null) {
-            mLocalAdapter.setBluetoothEnabled(isChecked);
-        }
-        mSwitch.setEnabled(false);
-    }
-
     void handleStateChanged(int state) {
         switch (state) {
             case BluetoothAdapter.STATE_TURNING_ON:
@@ -173,11 +149,11 @@
             // set listener to null, so onCheckedChanged won't be called
             // if the checked status on Switch isn't changed by user click
             if (mValidListener) {
-                mSwitch.setOnCheckedChangeListener(null);
+                mSwitchBar.removeOnSwitchChangeListener(this);
             }
             mSwitch.setChecked(isChecked);
             if (mValidListener) {
-                mSwitch.setOnCheckedChangeListener(this);
+                mSwitchBar.addOnSwitchChangeListener(this);
             }
         }
     }
@@ -190,4 +166,20 @@
         msg.getData().putBoolean(EVENT_DATA_IS_BT_ON, isBluetoothOn);
         mHandler.sendMessage(msg);
     }
+
+    @Override
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+        // Show toast message if Bluetooth is not allowed in airplane mode
+        if (isChecked &&
+                !WirelessSettings.isRadioAllowed(mContext, Settings.Global.RADIO_BLUETOOTH)) {
+            Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show();
+            // Reset switch to off
+            switchView.setChecked(false);
+        }
+
+        if (mLocalAdapter != null) {
+            mLocalAdapter.setBluetoothEnabled(isChecked);
+        }
+        mSwitch.setEnabled(false);
+    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 5f5b1f8..dd4edff 100755
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -46,6 +46,7 @@
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.widget.SwitchBar;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -77,7 +78,7 @@
     private boolean mActivityStarted;
 
     private TextView mEmptyView;
-    private Switch mSwitch;
+    private SwitchBar mSwitchBar;
 
     private final IntentFilter mIntentFilter;
 
@@ -114,35 +115,10 @@
         mEmptyView = (TextView) getView().findViewById(android.R.id.empty);
         getListView().setEmptyView(mEmptyView);
 
-        final Activity activity = getActivity();
-        final int padding = activity.getResources().getDimensionPixelSize(
-                R.dimen.action_bar_switch_padding);
-        mSwitch = new Switch(activity.getActionBar().getThemedContext());
-        mSwitch.setPaddingRelative(0, 0, padding, 0);
-
-        mBluetoothEnabler = new BluetoothEnabler(activity, mSwitch);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
         final SettingsActivity activity = (SettingsActivity) getActivity();
+        mSwitchBar = activity.getSwitchBar();
 
-        activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
-                ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(mSwitch, new ActionBar.LayoutParams(
-                ActionBar.LayoutParams.WRAP_CONTENT,
-                ActionBar.LayoutParams.WRAP_CONTENT,
-                Gravity.CENTER_VERTICAL | Gravity.END));
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        final SettingsActivity activity = (SettingsActivity) getActivity();
-        activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(null);
+        mBluetoothEnabler = new BluetoothEnabler(activity, mSwitchBar);
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 0f3d907..6cd6d7a 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -157,7 +157,6 @@
         }
         if (tileIcon != null) {
             if (tile.iconRes > 0) {
-                tileIcon.setBackgroundResource(R.color.temporary_background_icon);
             } else {
                 tileIcon.setBackground(null);
             }
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index 6a6431d..e45c585 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -616,7 +616,6 @@
                     // Not much we can do except logging
                     Log.e(LOG_TAG, "Cannot load Drawable for " + result.title);
                 }
-                imageView.setBackgroundResource(R.color.temporary_background_icon);
             } else {
                 imageView.setImageDrawable(null);
                 imageView.setBackgroundResource(R.drawable.empty_icon);
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 1549bbd..8794a8d 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.location;
 
-import android.app.ActionBar;
-import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -29,12 +27,11 @@
 import android.preference.PreferenceGroup;
 import android.preference.PreferenceScreen;
 import android.util.Log;
-import android.view.Gravity;
-import android.widget.CompoundButton;
 import android.widget.Switch;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.widget.SwitchBar;
 
 import java.util.Collections;
 import java.util.Comparator;
@@ -44,7 +41,7 @@
  * Location access settings.
  */
 public class LocationSettings extends LocationSettingsBase
-        implements CompoundButton.OnCheckedChangeListener {
+        implements SwitchBar.OnSwitchChangeListener {
 
     private static final String TAG = "LocationSettings";
 
@@ -55,6 +52,7 @@
     /** Key for preference category "Location services" */
     private static final String KEY_LOCATION_SERVICES = "location_services";
 
+    private SwitchBar mSwitchBar;
     private Switch mSwitch;
     private boolean mValidListener;
     private Preference mLocationMode;
@@ -71,43 +69,24 @@
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
-        final Activity activity = getActivity();
-
-        mSwitch = new Switch(activity.getActionBar().getThemedContext());
-        final int padding = activity.getResources().getDimensionPixelSize(
-                R.dimen.action_bar_switch_padding);
-        mSwitch.setPaddingRelative(0, 0, padding, 0);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
         final SettingsActivity activity = (SettingsActivity) getActivity();
 
-        // Only show the master switch when we're not being used as Setup Wizard.
-        activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
-                ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(mSwitch, new ActionBar.LayoutParams(
-                ActionBar.LayoutParams.WRAP_CONTENT,
-                ActionBar.LayoutParams.WRAP_CONTENT,
-                Gravity.CENTER_VERTICAL | Gravity.END));
+        mSwitchBar = activity.getSwitchBar();
+        mSwitch = mSwitchBar.getSwitch();
     }
 
     @Override
     public void onStop() {
         super.onStop();
-        final SettingsActivity activity = (SettingsActivity) getActivity();
-        activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(null);
     }
 
     @Override
     public void onResume() {
         super.onResume();
-        mValidListener = true;
         createPreferenceHierarchy();
-        mSwitch.setOnCheckedChangeListener(this);
+        mSwitchBar.addOnSwitchChangeListener(this);
+        mSwitchBar.show();
+        mValidListener = true;
     }
 
     @Override
@@ -118,8 +97,9 @@
             // Ignore exceptions caused by race condition
         }
         super.onPause();
+        mSwitchBar.removeOnSwitchChangeListener(this);
+        mSwitchBar.hide();
         mValidListener = false;
-        mSwitch.setOnCheckedChangeListener(null);
     }
 
     private void addPreferencesSorted(List<Preference> prefs, PreferenceGroup container) {
@@ -248,11 +228,11 @@
         if (enabled != mSwitch.isChecked()) {
             // set listener to null so that that code below doesn't trigger onCheckedChanged()
             if (mValidListener) {
-                mSwitch.setOnCheckedChangeListener(null);
+                mSwitchBar.removeOnSwitchChangeListener(this);
             }
             mSwitch.setChecked(enabled);
             if (mValidListener) {
-                mSwitch.setOnCheckedChangeListener(this);
+                mSwitchBar.addOnSwitchChangeListener(this);
             }
         }
         // As a safety measure, also reloads on location mode change to ensure the settings are
@@ -264,7 +244,7 @@
      * Listens to the state change of the location master switch.
      */
     @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
         if (isChecked) {
             setLocationMode(android.provider.Settings.Secure.LOCATION_MODE_HIGH_ACCURACY);
         } else {
diff --git a/src/com/android/settings/search/IndexDatabaseHelper.java b/src/com/android/settings/search/IndexDatabaseHelper.java
index 319e7f1..b697c30 100644
--- a/src/com/android/settings/search/IndexDatabaseHelper.java
+++ b/src/com/android/settings/search/IndexDatabaseHelper.java
@@ -28,7 +28,7 @@
     private static final String TAG = "IndexDatabaseHelper";
 
     private static final String DATABASE_NAME = "search_index.db";
-    private static final int DATABASE_VERSION = 113;
+    private static final int DATABASE_VERSION = 114;
 
     public interface Tables {
         public static final String TABLE_PREFS_INDEX = "prefs_index";
diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java
new file mode 100644
index 0000000..e871671
--- /dev/null
+++ b/src/com/android/settings/widget/SwitchBar.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2014 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.widget;
+
+import android.content.Context;
+import android.transition.TransitionManager;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CompoundButton;
+import android.widget.LinearLayout;
+
+import android.widget.Switch;
+import android.widget.TextView;
+import com.android.settings.R;
+
+import java.util.ArrayList;
+
+public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedChangeListener {
+
+    private Switch mSwitch;
+    private TextView mTextView;
+
+    private ArrayList<OnSwitchChangeListener> mSwitchChangeListeners =
+            new ArrayList<OnSwitchChangeListener>();
+
+    public static interface OnSwitchChangeListener {
+        /**
+         * Called when the checked state of the Switch has changed.
+         *
+         * @param switchView The Switch view whose state has changed.
+         * @param isChecked  The new checked state of switchView.
+         */
+        void onSwitchChanged(Switch switchView, boolean isChecked);
+    }
+
+    public SwitchBar(Context context) {
+        this(context, null);
+    }
+
+    public SwitchBar(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public SwitchBar(Context context, AttributeSet attrs, int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public SwitchBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+
+        LayoutInflater.from(context).inflate(R.layout.switch_bar, this);
+
+        mTextView = (TextView) findViewById(R.id.switch_text);
+        mTextView.setText(R.string.switch_off_text);
+
+        mSwitch = (Switch) findViewById(R.id.switch_widget);
+        mSwitch.setOnCheckedChangeListener(this);
+
+        addOnSwitchChangeListener(new OnSwitchChangeListener() {
+            @Override
+            public void onSwitchChanged(Switch switchView, boolean isChecked) {
+                mTextView.setText(isChecked ? R.string.switch_on_text : R.string.switch_off_text);
+            }
+        });
+
+        mSwitch.setTrackResource(R.drawable.switch_track);
+        mSwitch.setThumbResource(R.drawable.switch_inner);
+
+        // Default is hide
+        setVisibility(View.GONE);
+    }
+
+    public Switch getSwitch() {
+        return mSwitch;
+    }
+
+    public void show() {
+        TransitionManager.beginDelayedTransition((ViewGroup) getParent());
+        setVisibility(View.VISIBLE);
+    }
+
+    public void hide() {
+        TransitionManager.beginDelayedTransition((ViewGroup) getParent());
+        setVisibility(View.GONE);
+    }
+
+    public boolean isShowing() {
+        return (getVisibility() == View.VISIBLE);
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        final int count = mSwitchChangeListeners.size();
+        for (int n = 0; n < count; n++) {
+            mSwitchChangeListeners.get(n).onSwitchChanged(mSwitch,isChecked);
+        }
+    }
+
+    public void addOnSwitchChangeListener(OnSwitchChangeListener listener) {
+        if (mSwitchChangeListeners.contains(listener)) {
+            throw new IllegalStateException("Cannot add twice the same OnSwitchChangeListener");
+        }
+        mSwitchChangeListeners.add(listener);
+    }
+
+    public void removeOnSwitchChangeListener(OnSwitchChangeListener listener) {
+        if (!mSwitchChangeListeners.contains(listener)) {
+            throw new IllegalStateException("Cannot remove OnSwitchChangeListener");
+        }
+        mSwitchChangeListeners.remove(listener);
+    }
+}
diff --git a/src/com/android/settings/wifi/WifiEnabler.java b/src/com/android/settings/wifi/WifiEnabler.java
index d289171..9f0b6fa 100644
--- a/src/com/android/settings/wifi/WifiEnabler.java
+++ b/src/com/android/settings/wifi/WifiEnabler.java
@@ -34,12 +34,14 @@
 import com.android.settings.R;
 import com.android.settings.WirelessSettings;
 import com.android.settings.search.Index;
+import com.android.settings.widget.SwitchBar;
 
 import java.util.concurrent.atomic.AtomicBoolean;
 
-public class WifiEnabler implements CompoundButton.OnCheckedChangeListener  {
+public class WifiEnabler implements SwitchBar.OnSwitchChangeListener  {
     private Context mContext;
     private Switch mSwitch;
+    private SwitchBar mSwitchBar;
     private AtomicBoolean mConnected = new AtomicBoolean(false);
 
     private final WifiManager mWifiManager;
@@ -82,9 +84,10 @@
         }
     };
 
-    public WifiEnabler(Context context, Switch switch_) {
+    public WifiEnabler(Context context, SwitchBar switchBar) {
         mContext = context;
-        mSwitch = switch_;
+        mSwitchBar = switchBar;
+        mSwitch = switchBar.getSwitch();
 
         mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
         mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION);
@@ -97,53 +100,14 @@
         mContext = context;
         // Wi-Fi state is sticky, so just let the receiver update UI
         mContext.registerReceiver(mReceiver, mIntentFilter);
-        mSwitch.setOnCheckedChangeListener(this);
+        mSwitchBar.addOnSwitchChangeListener(this);
+        mSwitchBar.show();
     }
 
     public void pause() {
         mContext.unregisterReceiver(mReceiver);
-        mSwitch.setOnCheckedChangeListener(null);
-    }
-
-    public void setSwitch(Switch switch_) {
-        if (mSwitch == switch_) return;
-        mSwitch.setOnCheckedChangeListener(null);
-        mSwitch = switch_;
-        mSwitch.setOnCheckedChangeListener(this);
-
-        final int wifiState = mWifiManager.getWifiState();
-        boolean isEnabled = wifiState == WifiManager.WIFI_STATE_ENABLED;
-        boolean isDisabled = wifiState == WifiManager.WIFI_STATE_DISABLED;
-        mSwitch.setChecked(isEnabled);
-        mSwitch.setEnabled(isEnabled || isDisabled);
-    }
-
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        //Do nothing if called as a result of a state machine event
-        if (mStateMachineEvent) {
-            return;
-        }
-        // Show toast message if Wi-Fi is not allowed in airplane mode
-        if (isChecked && !WirelessSettings.isRadioAllowed(mContext, Settings.Global.RADIO_WIFI)) {
-            Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show();
-            // Reset switch to off. No infinite check/listenenr loop.
-            buttonView.setChecked(false);
-            return;
-        }
-
-        // Disable tethering if enabling Wifi
-        int wifiApState = mWifiManager.getWifiApState();
-        if (isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) ||
-                (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) {
-            mWifiManager.setWifiApEnabled(null, false);
-        }
-
-        mSwitch.setEnabled(false);
-        if (!mWifiManager.setWifiEnabled(isChecked)) {
-            // Error
-            mSwitch.setEnabled(true);
-            Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show();
-        }
+        mSwitchBar.removeOnSwitchChangeListener(this);
+        mSwitchBar.hide();
     }
 
     private void handleWifiStateChanged(int state) {
@@ -203,4 +167,33 @@
         }
         */
     }
+
+    @Override
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+        //Do nothing if called as a result of a state machine event
+        if (mStateMachineEvent) {
+            return;
+        }
+        // Show toast message if Wi-Fi is not allowed in airplane mode
+        if (isChecked && !WirelessSettings.isRadioAllowed(mContext, Settings.Global.RADIO_WIFI)) {
+            Toast.makeText(mContext, R.string.wifi_in_airplane_mode, Toast.LENGTH_SHORT).show();
+            // Reset switch to off. No infinite check/listenenr loop.
+            switchView.setChecked(false);
+            return;
+        }
+
+        // Disable tethering if enabling Wifi
+        int wifiApState = mWifiManager.getWifiApState();
+        if (isChecked && ((wifiApState == WifiManager.WIFI_AP_STATE_ENABLING) ||
+                (wifiApState == WifiManager.WIFI_AP_STATE_ENABLED))) {
+            mWifiManager.setWifiApEnabled(null, false);
+        }
+
+        mSwitch.setEnabled(false);
+        if (!mWifiManager.setWifiEnabled(isChecked)) {
+            // Error
+            mSwitch.setEnabled(true);
+            Toast.makeText(mContext, R.string.wifi_error, Toast.LENGTH_SHORT).show();
+        }
+    }
 }
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 4e702b5..a7d46e8 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -19,13 +19,13 @@
 import static android.net.wifi.WifiConfiguration.INVALID_NETWORK_ID;
 import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
 
-import android.preference.PreferenceActivity;
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
 import com.android.settings.SettingsActivity;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.widget.SwitchBar;
 import com.android.settings.wifi.p2p.WifiP2pSettings;
 
 import android.app.ActionBar;
@@ -179,7 +179,7 @@
     // the action bar uses a different set of controls for Setup Wizard
     private boolean mSetupWizardMode;
 
-    private Switch mSwitch;
+    private SwitchBar mSwitchBar;
 
     /* End of "used in Wifi Setup context" */
 
@@ -413,34 +413,14 @@
 
         // On/off switch is hidden for Setup Wizard
         if (!mSetupWizardMode) {
-            final Activity activity = getActivity();
+            final SettingsActivity activity = (SettingsActivity) getActivity();
 
-            mSwitch = new Switch(activity.getActionBar().getThemedContext());
-
-            final int padding = activity.getResources().getDimensionPixelSize(
-                    R.dimen.action_bar_switch_padding);
-            mSwitch.setPaddingRelative(0, 0, padding, 0);
-
-            activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
-                    ActionBar.DISPLAY_SHOW_CUSTOM);
-            activity.getActionBar().setCustomView(mSwitch, new ActionBar.LayoutParams(
-                    ActionBar.LayoutParams.WRAP_CONTENT,
-                    ActionBar.LayoutParams.WRAP_CONTENT,
-                    Gravity.CENTER_VERTICAL | Gravity.END));
-
-            mWifiEnabler = new WifiEnabler(activity, mSwitch);
+            mSwitchBar = activity.getSwitchBar();
+            mWifiEnabler = new WifiEnabler(activity, mSwitchBar);
         }
     }
 
     @Override
-    public void onStop() {
-        super.onStop();
-        final Activity activity = getActivity();
-        activity.getActionBar().setDisplayOptions(0, ActionBar.DISPLAY_SHOW_CUSTOM);
-        activity.getActionBar().setCustomView(null);
-    }
-
-    @Override
     public void onResume() {
         final Activity activity = getActivity();
         super.onResume();