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();