summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/app/ActivityManager.java13
-rw-r--r--core/java/android/app/ActivityThread.java23
-rw-r--r--core/java/android/app/ApplicationThreadNative.java34
-rw-r--r--core/java/android/app/IApplicationThread.java5
-rw-r--r--core/java/com/android/internal/app/ProcessStats.java91
-rw-r--r--core/jni/android/graphics/BitmapFactory.cpp10
-rw-r--r--core/jni/android_view_GLES20Canvas.cpp17
-rw-r--r--core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.pngbin680 -> 628 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.pngbin686 -> 665 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.pngbin1245 -> 1069 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.pngbin1238 -> 1077 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.pngbin432 -> 426 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.pngbin443 -> 424 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.pngbin2121 -> 1563 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.pngbin2033 -> 1894 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.pngbin2658 -> 1879 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.pngbin2479 -> 2268 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_dark.pngbin3534 -> 3562 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_light.pngbin3731 -> 3761 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_dark.pngbin1470 -> 2193 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_light.pngbin1570 -> 2406 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_dark.pngbin3727 -> 3806 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_light.pngbin3919 -> 3953 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_dark.pngbin1601 -> 2412 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_light.pngbin1664 -> 2548 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_dark.pngbin3905 -> 4202 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_light.pngbin4280 -> 4291 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_dark.pngbin3611 -> 3665 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_light.pngbin3714 -> 3735 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_dark.pngbin2277 -> 2335 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_light.pngbin2359 -> 2405 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_dark.pngbin3868 -> 3887 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_light.pngbin3884 -> 3913 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_dark.pngbin2429 -> 2472 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_light.pngbin2533 -> 2593 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_dark.pngbin3571 -> 4268 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_light.pngbin4198 -> 4268 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_dark.pngbin2576 -> 2642 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_light.pngbin2762 -> 2804 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_disabled_holo_dark.pngbin1159 -> 1756 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_disabled_holo_light.pngbin1209 -> 1904 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_focused_holo_dark.pngbin2734 -> 2816 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_focused_holo_light.pngbin2943 -> 2984 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_normal_holo_dark.pngbin1317 -> 1964 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_normal_holo_light.pngbin1326 -> 2047 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_pressed_holo_dark.pngbin3092 -> 3239 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_off_pressed_holo_light.pngbin3302 -> 3320 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_dark.pngbin2601 -> 2666 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_light.pngbin2743 -> 2785 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_disabled_holo_dark.pngbin1848 -> 1897 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_disabled_holo_light.pngbin1864 -> 1924 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_focused_holo_dark.pngbin2764 -> 2826 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_focused_holo_light.pngbin2913 -> 2971 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_normal_holo_dark.pngbin1992 -> 2043 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_normal_holo_light.pngbin2002 -> 2063 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_pressed_holo_dark.pngbin2599 -> 3282 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_star_on_pressed_holo_light.pngbin3088 -> 3302 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.pngbin472 -> 462 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.pngbin476 -> 459 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.pngbin566 -> 563 bytes
-rw-r--r--core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.pngbin638 -> 604 bytes
-rw-r--r--core/res/res/drawable-hdpi/list_longpressed_holo_dark.9.pngbin159 -> 159 bytes
-rw-r--r--core/res/res/drawable-hdpi/list_pressed_holo_dark.9.pngbin159 -> 159 bytes
-rw-r--r--core/res/res/drawable-hdpi/list_pressed_holo_light.9.pngbin158 -> 159 bytes
-rw-r--r--core/res/res/drawable-hdpi/spinner_ab_pressed_holo_dark_am.9.pngbin431 -> 439 bytes
-rw-r--r--core/res/res/drawable-hdpi/spinner_ab_pressed_holo_light_am.9.pngbin421 -> 446 bytes
-rw-r--r--core/res/res/drawable-hdpi/spinner_pressed_holo_dark_am.9.pngbin401 -> 412 bytes
-rw-r--r--core/res/res/drawable-hdpi/spinner_pressed_holo_light_am.9.pngbin395 -> 409 bytes
-rw-r--r--core/res/res/drawable-hdpi/switch_thumb_pressed_holo_dark.9.pngbin542 -> 534 bytes
-rw-r--r--core/res/res/drawable-hdpi/switch_thumb_pressed_holo_light.9.pngbin546 -> 520 bytes
-rw-r--r--core/res/res/drawable-hdpi/tab_selected_pressed_holo.9.pngbin152 -> 166 bytes
-rw-r--r--core/res/res/drawable-hdpi/tab_unselected_pressed_holo.9.pngbin152 -> 157 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.pngbin560 -> 513 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.pngbin572 -> 542 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.pngbin952 -> 824 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.pngbin939 -> 823 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.pngbin311 -> 313 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.pngbin317 -> 315 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.pngbin1284 -> 1024 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.pngbin1263 -> 1226 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.pngbin1547 -> 1203 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.pngbin1527 -> 1419 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_dark.pngbin2208 -> 2256 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_light.pngbin2285 -> 2331 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_dark.pngbin979 -> 1478 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_light.pngbin1060 -> 1585 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_dark.pngbin2331 -> 2382 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_light.pngbin2361 -> 2420 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_dark.pngbin1057 -> 1600 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_light.pngbin1116 -> 1661 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_dark.pngbin2590 -> 2688 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_light.pngbin2739 -> 2720 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_dark.pngbin2236 -> 2277 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_light.pngbin2286 -> 2342 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_dark.pngbin1511 -> 1556 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_light.pngbin1575 -> 1623 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_dark.pngbin2357 -> 2422 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_light.pngbin2361 -> 2421 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_dark.pngbin1573 -> 1624 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_light.pngbin1661 -> 1709 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_dark.pngbin2306 -> 2714 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_light.pngbin2686 -> 2716 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_dark.pngbin1569 -> 1613 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_light.pngbin1668 -> 1704 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_disabled_holo_dark.pngbin770 -> 1151 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_disabled_holo_light.pngbin813 -> 1239 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_focused_holo_dark.pngbin1648 -> 1687 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_focused_holo_light.pngbin1731 -> 1776 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_normal_holo_dark.pngbin857 -> 1256 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_normal_holo_light.pngbin877 -> 1307 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_pressed_holo_dark.pngbin1906 -> 1967 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_off_pressed_holo_light.pngbin2005 -> 2012 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_dark.pngbin1575 -> 1626 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_light.pngbin1649 -> 1682 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_disabled_holo_dark.pngbin1165 -> 1216 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_disabled_holo_light.pngbin1198 -> 1254 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_focused_holo_dark.pngbin1658 -> 1720 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_focused_holo_light.pngbin1724 -> 1773 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_normal_holo_dark.pngbin1239 -> 1290 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_normal_holo_light.pngbin1274 -> 1329 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_pressed_holo_dark.pngbin1647 -> 1959 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_star_on_pressed_holo_light.pngbin1905 -> 2003 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.pngbin345 -> 343 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.pngbin346 -> 344 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.pngbin388 -> 382 bytes
-rw-r--r--core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.pngbin405 -> 413 bytes
-rw-r--r--core/res/res/drawable-mdpi/list_longpressed_holo_dark.9.pngbin158 -> 156 bytes
-rw-r--r--core/res/res/drawable-mdpi/list_pressed_holo_dark.9.pngbin158 -> 158 bytes
-rw-r--r--core/res/res/drawable-mdpi/list_pressed_holo_light.9.pngbin157 -> 158 bytes
-rw-r--r--core/res/res/drawable-mdpi/spinner_ab_pressed_holo_dark_am.9.pngbin340 -> 341 bytes
-rw-r--r--core/res/res/drawable-mdpi/spinner_ab_pressed_holo_light_am.9.pngbin337 -> 356 bytes
-rw-r--r--core/res/res/drawable-mdpi/spinner_pressed_holo_dark_am.9.pngbin314 -> 324 bytes
-rw-r--r--core/res/res/drawable-mdpi/spinner_pressed_holo_light_am.9.pngbin315 -> 319 bytes
-rw-r--r--core/res/res/drawable-mdpi/switch_thumb_pressed_holo_dark.9.pngbin358 -> 351 bytes
-rw-r--r--core/res/res/drawable-mdpi/switch_thumb_pressed_holo_light.9.pngbin357 -> 349 bytes
-rw-r--r--core/res/res/drawable-mdpi/tab_selected_pressed_holo.9.pngbin148 -> 161 bytes
-rw-r--r--core/res/res/drawable-mdpi/tab_unselected_pressed_holo.9.pngbin148 -> 156 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_dark.pngbin816 -> 736 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_light.pngbin786 -> 770 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_dark.pngbin1652 -> 1380 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_light.pngbin1612 -> 1385 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.pngbin565 -> 551 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.pngbin569 -> 557 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_dark.pngbin2903 -> 2149 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_light.pngbin2788 -> 2525 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_dark.pngbin3586 -> 2604 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_light.pngbin3457 -> 3002 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_dark.pngbin5296 -> 5329 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_light.pngbin5447 -> 5477 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_dark.pngbin2049 -> 3169 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_light.pngbin2159 -> 3395 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_dark.pngbin5678 -> 5711 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_light.pngbin5692 -> 5747 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_normal.pngbin5754 -> 9533 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_dark.pngbin2313 -> 3491 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_light.pngbin2343 -> 3650 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_pressed.pngbin11080 -> 11125 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_dark.pngbin5998 -> 6334 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_light.pngbin6343 -> 6374 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_off_selected.pngbin10986 -> 11068 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_dark.pngbin5456 -> 5493 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_light.pngbin5429 -> 5445 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_dark.pngbin3370 -> 3432 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_light.pngbin3313 -> 3367 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_dark.pngbin5861 -> 5920 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_light.pngbin5687 -> 5743 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_normal.pngbin11325 -> 11438 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_dark.pngbin3640 -> 3696 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_light.pngbin3592 -> 3656 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_pressed.pngbin11920 -> 11991 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_dark.pngbin5203 -> 6519 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_light.pngbin6090 -> 6303 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_rating_star_on_selected.pngbin11846 -> 11952 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_off.pngbin2674 -> 4500 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_off_disable.pngbin2798 -> 5144 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_off_disable_focused.pngbin5067 -> 5105 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_off_pressed.pngbin4733 -> 4792 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_off_selected.pngbin4663 -> 4707 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_on.pngbin5092 -> 5133 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_on_disable.pngbin4802 -> 4849 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_on_disable_focused.pngbin4818 -> 4874 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_on_pressed.pngbin4825 -> 4893 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_big_on_selected.pngbin4605 -> 4674 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_dark.pngbin3672 -> 3729 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_light.pngbin4000 -> 4033 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_dark.pngbin1514 -> 2310 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_light.pngbin1609 -> 2539 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_focused_holo_dark.pngbin3934 -> 3970 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_focused_holo_light.pngbin4185 -> 4226 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_normal_holo_dark.pngbin1749 -> 2631 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_normal_holo_light.pngbin1777 -> 2764 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_dark.pngbin4292 -> 4460 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_light.pngbin4608 -> 4644 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_dark.pngbin3795 -> 3853 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_light.pngbin3948 -> 3980 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_dark.pngbin2480 -> 2499 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_light.pngbin2499 -> 2537 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_focused_holo_dark.pngbin4060 -> 4118 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_focused_holo_light.pngbin4166 -> 4202 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_normal_holo_dark.pngbin2657 -> 2693 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_normal_holo_light.pngbin2677 -> 2751 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_dark.pngbin3608 -> 4622 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_light.pngbin4313 -> 4604 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.pngbin611 -> 601 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.pngbin614 -> 605 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.pngbin721 -> 714 bytes
-rw-r--r--core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.pngbin791 -> 780 bytes
-rw-r--r--core/res/res/drawable-xhdpi/list_longpressed_holo_dark.9.pngbin163 -> 163 bytes
-rw-r--r--core/res/res/drawable-xhdpi/list_pressed_holo_dark.9.pngbin163 -> 163 bytes
-rw-r--r--core/res/res/drawable-xhdpi/list_pressed_holo_light.9.pngbin162 -> 163 bytes
-rw-r--r--core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_dark_am.9.pngbin561 -> 570 bytes
-rw-r--r--core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_light_am.9.pngbin555 -> 571 bytes
-rw-r--r--core/res/res/drawable-xhdpi/spinner_pressed_holo_dark_am.9.pngbin530 -> 545 bytes
-rw-r--r--core/res/res/drawable-xhdpi/spinner_pressed_holo_light_am.9.pngbin535 -> 543 bytes
-rw-r--r--core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_dark.9.pngbin641 -> 634 bytes
-rw-r--r--core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_light.9.pngbin647 -> 631 bytes
-rw-r--r--core/res/res/drawable-xhdpi/tab_selected_pressed_holo.9.pngbin154 -> 167 bytes
-rw-r--r--core/res/res/drawable-xhdpi/tab_unselected_pressed_holo.9.pngbin155 -> 164 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_dark.pngbin1438 -> 1384 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_light.pngbin1422 -> 1393 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_dark.pngbin2001 -> 1890 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_light.pngbin2009 -> 1913 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_default_pressed_holo_dark.9.pngbin1704 -> 1701 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_default_pressed_holo_light.9.pngbin1713 -> 1687 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_dark.pngbin3990 -> 3210 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_light.pngbin4023 -> 3706 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_dark.pngbin4682 -> 3900 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_light.pngbin4596 -> 4174 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_dark.pngbin7787 -> 8469 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_light.pngbin8198 -> 8615 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_dark.pngbin7000 -> 8769 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_light.pngbin8064 -> 8570 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_dark.pngbin5389 -> 5574 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_light.pngbin5634 -> 5539 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_dark.pngbin4909 -> 5662 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_light.pngbin5503 -> 5550 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_dark.9.pngbin1725 -> 1716 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_light.9.pngbin1738 -> 1721 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_dark.9.pngbin1954 -> 1938 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_light.9.pngbin2072 -> 2020 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/list_longpressed_holo_dark.9.pngbin1049 -> 1051 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/list_pressed_holo_dark.9.pngbin1049 -> 1051 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/list_pressed_holo_light.9.pngbin1049 -> 1051 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_dark_am.9.pngbin1461 -> 1487 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_light_am.9.pngbin1496 -> 1512 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/spinner_pressed_holo_dark_am.9.pngbin1512 -> 1527 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/spinner_pressed_holo_light_am.9.pngbin1507 -> 1533 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_dark.9.pngbin1767 -> 1757 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_light.9.pngbin1813 -> 1772 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/tab_selected_pressed_holo.9.pngbin1040 -> 1050 bytes
-rw-r--r--core/res/res/drawable-xxhdpi/tab_unselected_pressed_holo.9.pngbin1038 -> 1037 bytes
-rw-r--r--docs/html/sdk/index.jd4
-rw-r--r--docs/html/tools/revisions/platforms.jd21
-rw-r--r--libs/hwui/FontRenderer.cpp2
-rw-r--r--packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow.9.pngbin0 -> 244 bytes
-rw-r--r--packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow.9.pngbin0 -> 244 bytes
-rw-r--r--packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow.9.pngbin0 -> 244 bytes
-rw-r--r--packages/DocumentsUI/res/layout-sw720dp/activity.xml2
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java2
-rw-r--r--packages/SystemUI/res/values/colors.xml2
-rw-r--r--services/java/com/android/server/AlarmManagerService.java3
-rw-r--r--services/java/com/android/server/LocationManagerService.java2
-rw-r--r--services/java/com/android/server/NetworkTimeUpdateService.java6
-rw-r--r--services/java/com/android/server/am/ActiveServices.java14
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java255
-rw-r--r--services/java/com/android/server/am/ActivityStack.java15
-rw-r--r--services/java/com/android/server/am/ActivityStackSupervisor.java45
-rw-r--r--services/java/com/android/server/am/BroadcastQueue.java37
-rw-r--r--services/java/com/android/server/am/ProcessList.java162
-rw-r--r--services/java/com/android/server/am/ProcessRecord.java22
-rw-r--r--services/java/com/android/server/net/NetworkPolicyManagerService.java6
-rw-r--r--services/java/com/android/server/net/NetworkStatsService.java6
-rwxr-xr-xservices/java/com/android/server/pm/PackageManagerService.java3
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java7
-rw-r--r--tests/Camera2Tests/Android.mk1
-rw-r--r--wifi/java/android/net/wifi/WifiWatchdogStateMachine.java7
277 files changed, 519 insertions, 299 deletions
diff --git a/api/current.txt b/api/current.txt
index 15a19cc..b3e5c6e 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -2944,6 +2944,7 @@ package android.app {
method public void moveTaskToFront(int, int);
method public void moveTaskToFront(int, int, android.os.Bundle);
method public deprecated void restartPackage(java.lang.String);
+ field public static final java.lang.String META_HOME_ALTERNATE = "android.app.home.alternate";
field public static final int MOVE_TASK_NO_USER_ACTION = 2; // 0x2
field public static final int MOVE_TASK_WITH_HOME = 1; // 0x1
field public static final int RECENT_IGNORE_UNAVAILABLE = 2; // 0x2
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 2d28280..1e65098 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -68,6 +68,13 @@ public class ActivityManager {
private final Handler mHandler;
/**
+ * <meta-data> string for a 'home' Activity that names a package that is to be
+ * uninstalled in lieu of the declaring one. The package named here must be
+ * signed with the same certificate as the one declaring the <meta-data>.
+ */
+ public static final String META_HOME_ALTERNATE = "android.app.home.alternate";
+
+ /**
* Result for IActivityManager.startActivity: an error where the
* start had to be canceled.
* @hide
@@ -672,6 +679,12 @@ public class ActivityManager {
*/
public int numRunning;
+ /**
+ * Last time task was run. For sorting.
+ * @hide
+ */
+ public long lastActiveTime;
+
public RunningTaskInfo() {
}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 209514a..3e20f1f 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -855,10 +855,6 @@ public final class ActivityThread {
}
}
- public void getMemoryInfo(Debug.MemoryInfo outInfo) {
- Debug.getMemoryInfo(outInfo);
- }
-
public void dispatchPackageBroadcast(int cmd, String[] packages) {
queueOrSendMessage(H.DISPATCH_PACKAGE_BROADCAST, packages, cmd);
}
@@ -895,30 +891,23 @@ public final class ActivityThread {
}
@Override
- public Debug.MemoryInfo dumpMemInfo(FileDescriptor fd, boolean checkin,
+ public void dumpMemInfo(FileDescriptor fd, Debug.MemoryInfo mem, boolean checkin,
boolean dumpInfo, boolean dumpDalvik, String[] args) {
FileOutputStream fout = new FileOutputStream(fd);
PrintWriter pw = new FastPrintWriter(fout);
try {
- return dumpMemInfo(pw, checkin, dumpInfo, dumpDalvik);
+ dumpMemInfo(pw, mem, checkin, dumpInfo, dumpDalvik);
} finally {
pw.flush();
}
}
- private Debug.MemoryInfo dumpMemInfo(PrintWriter pw, boolean checkin, boolean dumpInfo,
- boolean dumpDalvik) {
+ private void dumpMemInfo(PrintWriter pw, Debug.MemoryInfo memInfo, boolean checkin,
+ boolean dumpInfo, boolean dumpDalvik) {
long nativeMax = Debug.getNativeHeapSize() / 1024;
long nativeAllocated = Debug.getNativeHeapAllocatedSize() / 1024;
long nativeFree = Debug.getNativeHeapFreeSize() / 1024;
- Debug.MemoryInfo memInfo = new Debug.MemoryInfo();
- Debug.getMemoryInfo(memInfo);
-
- if (!dumpInfo) {
- return memInfo;
- }
-
Runtime runtime = Runtime.getRuntime();
long dalvikMax = runtime.totalMemory() / 1024;
@@ -1043,7 +1032,7 @@ public final class ActivityThread {
}
pw.println();
- return memInfo;
+ return;
}
// otherwise, show human-readable format
@@ -1168,8 +1157,6 @@ public final class ActivityThread {
pw.println(" Asset Allocations");
pw.print(assetAlloc);
}
-
- return memInfo;
}
@Override
diff --git a/core/java/android/app/ApplicationThreadNative.java b/core/java/android/app/ApplicationThreadNative.java
index a4e80e5..876bf78 100644
--- a/core/java/android/app/ApplicationThreadNative.java
+++ b/core/java/android/app/ApplicationThreadNative.java
@@ -450,16 +450,6 @@ public abstract class ApplicationThreadNative extends Binder
return true;
}
- case GET_MEMORY_INFO_TRANSACTION:
- {
- data.enforceInterface(IApplicationThread.descriptor);
- Debug.MemoryInfo mi = new Debug.MemoryInfo();
- getMemoryInfo(mi);
- reply.writeNoException();
- mi.writeToParcel(reply, 0);
- return true;
- }
-
case DISPATCH_PACKAGE_BROADCAST_TRANSACTION:
{
data.enforceInterface(IApplicationThread.descriptor);
@@ -530,14 +520,14 @@ public abstract class ApplicationThreadNative extends Binder
{
data.enforceInterface(IApplicationThread.descriptor);
ParcelFileDescriptor fd = data.readFileDescriptor();
+ Debug.MemoryInfo mi = Debug.MemoryInfo.CREATOR.createFromParcel(data);
boolean checkin = data.readInt() != 0;
boolean dumpInfo = data.readInt() != 0;
boolean dumpDalvik = data.readInt() != 0;
String[] args = data.readStringArray();
- Debug.MemoryInfo mi = null;
if (fd != null) {
try {
- mi = dumpMemInfo(fd.getFileDescriptor(), checkin, dumpInfo, dumpDalvik, args);
+ dumpMemInfo(fd.getFileDescriptor(), mi, checkin, dumpInfo, dumpDalvik, args);
} finally {
try {
fd.close();
@@ -547,7 +537,6 @@ public abstract class ApplicationThreadNative extends Binder
}
}
reply.writeNoException();
- mi.writeToParcel(reply, 0);
return true;
}
@@ -1108,17 +1097,6 @@ class ApplicationThreadProxy implements IApplicationThread {
data.recycle();
}
- public void getMemoryInfo(Debug.MemoryInfo outInfo) throws RemoteException {
- Parcel data = Parcel.obtain();
- Parcel reply = Parcel.obtain();
- data.writeInterfaceToken(IApplicationThread.descriptor);
- mRemote.transact(GET_MEMORY_INFO_TRANSACTION, data, reply, 0);
- reply.readException();
- outInfo.readFromParcel(reply);
- data.recycle();
- reply.recycle();
- }
-
public void dispatchPackageBroadcast(int cmd, String[] packages) throws RemoteException {
Parcel data = Parcel.obtain();
data.writeInterfaceToken(IApplicationThread.descriptor);
@@ -1194,23 +1172,21 @@ class ApplicationThreadProxy implements IApplicationThread {
IBinder.FLAG_ONEWAY);
}
- public Debug.MemoryInfo dumpMemInfo(FileDescriptor fd, boolean checkin, boolean dumpInfo,
- boolean dumpDalvik, String[] args) throws RemoteException {
+ public void dumpMemInfo(FileDescriptor fd, Debug.MemoryInfo mem, boolean checkin,
+ boolean dumpInfo, boolean dumpDalvik, String[] args) throws RemoteException {
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IApplicationThread.descriptor);
data.writeFileDescriptor(fd);
+ mem.writeToParcel(data, 0);
data.writeInt(checkin ? 1 : 0);
data.writeInt(dumpInfo ? 1 : 0);
data.writeInt(dumpDalvik ? 1 : 0);
data.writeStringArray(args);
mRemote.transact(DUMP_MEM_INFO_TRANSACTION, data, reply, 0);
reply.readException();
- Debug.MemoryInfo info = new Debug.MemoryInfo();
- info.readFromParcel(reply);
data.recycle();
reply.recycle();
- return info;
}
public void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException {
diff --git a/core/java/android/app/IApplicationThread.java b/core/java/android/app/IApplicationThread.java
index 058b975..43a5fbd 100644
--- a/core/java/android/app/IApplicationThread.java
+++ b/core/java/android/app/IApplicationThread.java
@@ -118,7 +118,6 @@ public interface IApplicationThread extends IInterface {
void dumpHeap(boolean managed, String path, ParcelFileDescriptor fd)
throws RemoteException;
void setSchedulingGroup(int group) throws RemoteException;
- void getMemoryInfo(Debug.MemoryInfo outInfo) throws RemoteException;
static final int PACKAGE_REMOVED = 0;
static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
void dispatchPackageBroadcast(int cmd, String[] packages) throws RemoteException;
@@ -128,7 +127,7 @@ public interface IApplicationThread extends IInterface {
void setCoreSettings(Bundle coreSettings) throws RemoteException;
void updatePackageCompatibilityInfo(String pkg, CompatibilityInfo info) throws RemoteException;
void scheduleTrimMemory(int level) throws RemoteException;
- Debug.MemoryInfo dumpMemInfo(FileDescriptor fd, boolean checkin, boolean dumpInfo,
+ void dumpMemInfo(FileDescriptor fd, Debug.MemoryInfo mem, boolean checkin, boolean dumpInfo,
boolean dumpDalvik, String[] args) throws RemoteException;
void dumpGfxInfo(FileDescriptor fd, String[] args) throws RemoteException;
void dumpDbInfo(FileDescriptor fd, String[] args) throws RemoteException;
@@ -171,7 +170,7 @@ public interface IApplicationThread extends IInterface {
int SET_SCHEDULING_GROUP_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+28;
int SCHEDULE_CREATE_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+29;
int SCHEDULE_DESTROY_BACKUP_AGENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+30;
- int GET_MEMORY_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+31;
+
int SCHEDULE_SUICIDE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+32;
int DISPATCH_PACKAGE_BROADCAST_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+33;
int SCHEDULE_CRASH_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+34;
diff --git a/core/java/com/android/internal/app/ProcessStats.java b/core/java/com/android/internal/app/ProcessStats.java
index 1475e2c..a281f7c 100644
--- a/core/java/com/android/internal/app/ProcessStats.java
+++ b/core/java/com/android/internal/app/ProcessStats.java
@@ -166,7 +166,7 @@ public final class ProcessStats implements Parcelable {
static final String CSV_SEP = "\t";
// Current version of the parcel format.
- private static final int PARCEL_VERSION = 12;
+ private static final int PARCEL_VERSION = 13;
// In-memory Parcel magic number, used to detect attempts to unmarshall bad data
private static final int MAGIC = 0x50535453;
@@ -646,6 +646,13 @@ public final class ProcessStats implements Parcelable {
pw.print(prefix); pw.print("Killed for excessive CPU use: ");
pw.print(proc.mNumExcessiveCpu); pw.println(" times");
}
+ if (proc.mNumCachedKill != 0) {
+ pw.print(prefix); pw.print("Killed from cached state: ");
+ pw.print(proc.mNumCachedKill); pw.print(" times from pss ");
+ printSizeValue(pw, proc.mMinCachedKillPss * 1024); pw.print("-");
+ printSizeValue(pw, proc.mAvgCachedKillPss * 1024); pw.print("-");
+ printSizeValue(pw, proc.mMaxCachedKillPss * 1024); pw.println();
+ }
}
static void dumpStateHeadersCsv(PrintWriter pw, String sep, int[] screenStates,
@@ -2033,7 +2040,8 @@ public final class ProcessStats implements Parcelable {
dumpAllProcessPssCheckin(pw, proc);
pw.println();
}
- if (proc.mNumExcessiveWake > 0 || proc.mNumExcessiveCpu > 0) {
+ if (proc.mNumExcessiveWake > 0 || proc.mNumExcessiveCpu > 0
+ || proc.mNumCachedKill > 0) {
pw.print("pkgkills,");
pw.print(pkgName);
pw.print(",");
@@ -2044,6 +2052,14 @@ public final class ProcessStats implements Parcelable {
pw.print(proc.mNumExcessiveWake);
pw.print(",");
pw.print(proc.mNumExcessiveCpu);
+ pw.print(",");
+ pw.print(proc.mNumCachedKill);
+ pw.print(",");
+ pw.print(proc.mMinCachedKillPss);
+ pw.print(":");
+ pw.print(proc.mAvgCachedKillPss);
+ pw.print(":");
+ pw.print(proc.mMaxCachedKillPss);
pw.println();
}
}
@@ -2090,7 +2106,8 @@ public final class ProcessStats implements Parcelable {
dumpAllProcessPssCheckin(pw, procState);
pw.println();
}
- if (procState.mNumExcessiveWake > 0 || procState.mNumExcessiveCpu > 0) {
+ if (procState.mNumExcessiveWake > 0 || procState.mNumExcessiveCpu > 0
+ || procState.mNumCachedKill > 0) {
pw.print("kills,");
pw.print(procName);
pw.print(",");
@@ -2099,6 +2116,14 @@ public final class ProcessStats implements Parcelable {
pw.print(procState.mNumExcessiveWake);
pw.print(",");
pw.print(procState.mNumExcessiveCpu);
+ pw.print(",");
+ pw.print(procState.mNumCachedKill);
+ pw.print(",");
+ pw.print(procState.mMinCachedKillPss);
+ pw.print(":");
+ pw.print(procState.mAvgCachedKillPss);
+ pw.print(":");
+ pw.print(procState.mMaxCachedKillPss);
pw.println();
}
}
@@ -2135,6 +2160,11 @@ public final class ProcessStats implements Parcelable {
int mNumExcessiveWake;
int mNumExcessiveCpu;
+ int mNumCachedKill;
+ long mMinCachedKillPss;
+ long mAvgCachedKillPss;
+ long mMaxCachedKillPss;
+
boolean mMultiPackage;
boolean mDead;
@@ -2200,6 +2230,10 @@ public final class ProcessStats implements Parcelable {
}
pnew.mNumExcessiveWake = mNumExcessiveWake;
pnew.mNumExcessiveCpu = mNumExcessiveCpu;
+ pnew.mNumCachedKill = mNumCachedKill;
+ pnew.mMinCachedKillPss = mMinCachedKillPss;
+ pnew.mAvgCachedKillPss = mAvgCachedKillPss;
+ pnew.mMaxCachedKillPss = mMaxCachedKillPss;
pnew.mActive = mActive;
pnew.mNumStartedServices = mNumStartedServices;
return pnew;
@@ -2226,6 +2260,10 @@ public final class ProcessStats implements Parcelable {
}
mNumExcessiveWake += other.mNumExcessiveWake;
mNumExcessiveCpu += other.mNumExcessiveCpu;
+ if (other.mNumCachedKill > 0) {
+ addCachedKill(other.mNumCachedKill, other.mMinCachedKillPss,
+ other.mAvgCachedKillPss, other.mMaxCachedKillPss);
+ }
}
void resetSafely(long now) {
@@ -2238,6 +2276,8 @@ public final class ProcessStats implements Parcelable {
mPssTableSize = 0;
mNumExcessiveWake = 0;
mNumExcessiveCpu = 0;
+ mNumCachedKill = 0;
+ mMinCachedKillPss = mAvgCachedKillPss = mMaxCachedKillPss = 0;
}
void makeDead() {
@@ -2268,6 +2308,12 @@ public final class ProcessStats implements Parcelable {
}
out.writeInt(mNumExcessiveWake);
out.writeInt(mNumExcessiveCpu);
+ out.writeInt(mNumCachedKill);
+ if (mNumCachedKill > 0) {
+ out.writeLong(mMinCachedKillPss);
+ out.writeLong(mAvgCachedKillPss);
+ out.writeLong(mMaxCachedKillPss);
+ }
}
boolean readFromParcel(Parcel in, boolean fully) {
@@ -2289,6 +2335,14 @@ public final class ProcessStats implements Parcelable {
mPssTableSize = mPssTable != null ? mPssTable.length : 0;
mNumExcessiveWake = in.readInt();
mNumExcessiveCpu = in.readInt();
+ mNumCachedKill = in.readInt();
+ if (mNumCachedKill > 0) {
+ mMinCachedKillPss = in.readLong();
+ mAvgCachedKillPss = in.readLong();
+ mMaxCachedKillPss = in.readLong();
+ } else {
+ mMinCachedKillPss = mAvgCachedKillPss = mMaxCachedKillPss = 0;
+ }
return true;
}
@@ -2502,6 +2556,37 @@ public final class ProcessStats implements Parcelable {
}
}
+ private void addCachedKill(int num, long minPss, long avgPss, long maxPss) {
+ if (mNumCachedKill <= 0) {
+ mNumCachedKill = num;
+ mMinCachedKillPss = minPss;
+ mAvgCachedKillPss = avgPss;
+ mMaxCachedKillPss = maxPss;
+ } else {
+ if (minPss < mMinCachedKillPss) {
+ mMinCachedKillPss = minPss;
+ }
+ if (maxPss > mMaxCachedKillPss) {
+ mMaxCachedKillPss = maxPss;
+ }
+ mAvgCachedKillPss = (long)( ((mAvgCachedKillPss*(double)mNumCachedKill) + avgPss)
+ / (mNumCachedKill+num) );
+ mNumCachedKill += num;
+ }
+ }
+
+ public void reportCachedKill(ArrayMap<String, ProcessState> pkgList, long pss) {
+ ensureNotDead();
+ mCommonProcess.addCachedKill(1, pss, pss, pss);
+ if (!mCommonProcess.mMultiPackage) {
+ return;
+ }
+
+ for (int ip=pkgList.size()-1; ip>=0; ip--) {
+ pullFixedProc(pkgList, ip).addCachedKill(1, pss, pss, pss);
+ }
+ }
+
ProcessState pullFixedProc(String pkgName) {
if (mMultiPackage) {
// The array map is still pointing to a common process state
diff --git a/core/jni/android/graphics/BitmapFactory.cpp b/core/jni/android/graphics/BitmapFactory.cpp
index 9c20de2..0d757f7 100644
--- a/core/jni/android/graphics/BitmapFactory.cpp
+++ b/core/jni/android/graphics/BitmapFactory.cpp
@@ -297,6 +297,9 @@ static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding
(SkBitmap::Allocator*)&recyclingAllocator : (SkBitmap::Allocator*)&javaAllocator;
if (decodeMode != SkImageDecoder::kDecodeBounds_Mode) {
if (!willScale) {
+ // If the java allocator is being used to allocate the pixel memory, the decoder
+ // need not write zeroes, since the memory is initialized to 0.
+ decoder->setSkipWritingZeroes(outputAllocator == &javaAllocator);
decoder->setAllocator(outputAllocator);
} else if (javaBitmap != NULL) {
// check for eventual scaled bounds at allocation time, so we don't decode the bitmap
@@ -403,7 +406,12 @@ static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding
if (!outputBitmap->allocPixels(outputAllocator, NULL)) {
return nullObjectReturn("allocation failed for scaled bitmap");
}
- outputBitmap->eraseColor(0);
+
+ // If outputBitmap's pixels are newly allocated by Java, there is no need
+ // to erase to 0, since the pixels were initialized to 0.
+ if (outputAllocator != &javaAllocator) {
+ outputBitmap->eraseColor(0);
+ }
SkPaint paint;
paint.setFilterBitmap(true);
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp
index dc90da7..b720e73 100644
--- a/core/jni/android_view_GLES20Canvas.cpp
+++ b/core/jni/android_view_GLES20Canvas.cpp
@@ -878,6 +878,23 @@ static void android_view_GLES20Canvas_updateTextureLayer(JNIEnv* env, jobject cl
sp<GLConsumer> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, surface));
if (surfaceTexture->updateTexImage() == NO_ERROR) {
+ int64_t frameNumber = surfaceTexture->getFrameNumber();
+ // If the GLConsumer queue is in synchronous mode, need to discard all
+ // but latest frame, using the frame number to tell when we no longer
+ // have newer frames to target. Since we can't tell which mode it is in,
+ // do this unconditionally.
+ int dropCounter = 0;
+ while (surfaceTexture->updateTexImage() == NO_ERROR) {
+ int64_t newFrameNumber = surfaceTexture->getFrameNumber();
+ if (newFrameNumber == frameNumber) break;
+ frameNumber = newFrameNumber;
+ dropCounter++;
+ }
+ #if DEBUG_RENDERER
+ if (dropCounter > 0) {
+ RENDERER_LOGD("Dropped %d frames on texture layer update", dropCounter);
+ }
+ #endif
surfaceTexture->getTransformMatrix(transform);
GLenum renderTarget = surfaceTexture->getCurrentTextureTarget();
diff --git a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png
index 7f79718..86b43c1 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png
index 951be79..cdf0078 100644
--- a/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png
index 47f7c29..266ac98 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png
index 841c964..49b375f 100644
--- a/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_check_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png
index 4fa62d7..b7c125b 100644
--- a/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
index 242cee9..bf09b6f 100644
--- a/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png
index 3ffd433..9fd5b76 100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png
index 6065eb7..caff83d 100644
--- a/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_radio_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png
index 63ec738..4cddfda 100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png
index 1d80d5c..e94aabe 100644
--- a/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_radio_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_dark.png
index 17a1051..961b0f7 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_light.png
index ef8320c..503de5c 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_dark.png
index 74e5235..a756e30 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_light.png
index 8c74e06..0d5bbe8 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_dark.png
index 5b3ca5d..c58a841 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_light.png
index 469e9f6..9e018ef 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_dark.png
index d0a5ca5..afaf691 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_light.png
index 08e7553..26adc72 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_dark.png
index 9aed106..e0cc6c5 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_light.png
index c5e4694..607d1cf 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_dark.png
index 5829969..4791366 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_light.png
index 5efe111..8680012 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_dark.png
index a967836..7dc2567 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_light.png
index 4f10c79..de02ace 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_dark.png
index eb0ef89..9b34307 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_light.png
index d8652d5..fc9af78 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_dark.png
index 2b0e235..c22ac4c 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_light.png
index 06dfad2..b2b0e29 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_dark.png
index 0fe4b14..f45882c 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_light.png
index aaced6e..d06fbeb 100644
--- a/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_rating_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_dark.png
index 61f9e6b..ce3954f 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_light.png
index 62ac7f9..2e7346a 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_dark.png
index e10d5d1..1a642f7 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_light.png
index 685f8b5..cee608b 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_off_focused_holo_dark.png
index d7ef1a6..0eb9e38 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_star_off_focused_holo_light.png
index fcf4623..f396c47 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_normal_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_off_normal_holo_dark.png
index 9a6fc4d..cbbbfb3 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_normal_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_normal_holo_light.png b/core/res/res/drawable-hdpi/btn_star_off_normal_holo_light.png
index 3875ac3..c4e1d81 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_normal_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_dark.png
index 185f9f7..97730d1 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_light.png
index 5d695d9..4350f16 100644
--- a/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_dark.png
index 57cfa4d..b7035fd 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_light.png
index 1a37993..852ad55 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_dark.png
index 5694cf7..3d40107 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_light.png b/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_light.png
index 6406c06..ee79ed6 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_focused_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_on_focused_holo_dark.png
index c50efaf..6cad71e 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_focused_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_focused_holo_light.png b/core/res/res/drawable-hdpi/btn_star_on_focused_holo_light.png
index 1a899c9..edcb86d 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_focused_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_normal_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_on_normal_holo_dark.png
index fecb1af..02013fa 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_normal_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_normal_holo_light.png b/core/res/res/drawable-hdpi/btn_star_on_normal_holo_light.png
index 37547d2..6689a89 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_normal_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_dark.png b/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_dark.png
index de15a23..36f9ad1 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_light.png b/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_light.png
index beda050..10d74ce 100644
--- a/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-hdpi/btn_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png
index 9206f57..94c0ee7 100644
--- a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png
index bef235b..9bef909 100644
--- a/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png
index 63204eb..469ba9b 100644
--- a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png
index 7b79f3f..40a61ca 100644
--- a/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/list_longpressed_holo_dark.9.png b/core/res/res/drawable-hdpi/list_longpressed_holo_dark.9.png
index da023d3..f5cc0ed 100644
--- a/core/res/res/drawable-hdpi/list_longpressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/list_longpressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/list_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/list_pressed_holo_dark.9.png
index 1a0bf0d..596accb 100644
--- a/core/res/res/drawable-hdpi/list_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/list_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/list_pressed_holo_light.9.png
index e852a45..2054530 100644
--- a/core/res/res/drawable-hdpi/list_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_dark_am.9.png b/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_dark_am.9.png
index f06d898..66f0d88 100644
--- a/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_light_am.9.png b/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_light_am.9.png
index 0638e58..10af163 100644
--- a/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-hdpi/spinner_ab_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_pressed_holo_dark_am.9.png b/core/res/res/drawable-hdpi/spinner_pressed_holo_dark_am.9.png
index 6d2a8a4..aca9435 100644
--- a/core/res/res/drawable-hdpi/spinner_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-hdpi/spinner_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/spinner_pressed_holo_light_am.9.png b/core/res/res/drawable-hdpi/spinner_pressed_holo_light_am.9.png
index bb43a46..eafd44a 100644
--- a/core/res/res/drawable-hdpi/spinner_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-hdpi/spinner_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_dark.9.png b/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_dark.9.png
index 88717cc..b6009e6 100644
--- a/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_light.9.png b/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_light.9.png
index c759ca4..54d813c 100644
--- a/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_light.9.png
+++ b/core/res/res/drawable-hdpi/switch_thumb_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_selected_pressed_holo.9.png b/core/res/res/drawable-hdpi/tab_selected_pressed_holo.9.png
index fe5850c..956d3c4 100644
--- a/core/res/res/drawable-hdpi/tab_selected_pressed_holo.9.png
+++ b/core/res/res/drawable-hdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/tab_unselected_pressed_holo.9.png b/core/res/res/drawable-hdpi/tab_unselected_pressed_holo.9.png
index b59edc8..57e57e1 100644
--- a/core/res/res/drawable-hdpi/tab_unselected_pressed_holo.9.png
+++ b/core/res/res/drawable-hdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png
index 2eaa6e1..47e8b5b 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png
index 83b3315..1dc83fa 100644
--- a/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png
index 2b8541c..af5c463 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png
index e51e72a..819c552 100644
--- a/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_check_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png
index c10b235..ebdc717 100644
--- a/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
index db9eab0..c73984e 100644
--- a/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png
index 45252b1..cebaf6d 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png
index 1090816..7b12bea 100644
--- a/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_radio_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png
index a740800..eabb9d2 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png
index faa95fc..09592355 100644
--- a/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_radio_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_dark.png
index 217aa83..563f609 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_light.png
index 6853157..60e4717 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_dark.png
index 8b6bd93..fa4db4f 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_light.png
index 7992806..73a9d9e 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_dark.png
index fc74193..790251f 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_light.png
index 0b1e231..aa4690f 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_dark.png
index 1360dd0..c08b5c2 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_light.png
index 7e82935..5f0a748 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_dark.png
index bc82b1a..ba916c1 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_light.png
index ab3a79b..8d0638d 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_dark.png
index 3db345a..9b04c59 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_light.png
index 632f822..291fdb3 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_dark.png
index efd016c..5cc6600 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_light.png
index 484f115..f17edca 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_dark.png
index a314bef..26f5f11 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_light.png
index 4b4a1b9..6346fff 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_dark.png
index d6660cf..14bfde7 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_light.png
index 060bb5b..c5005f1 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_dark.png
index 9b169d4..886d86a 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_light.png
index 29ebf09..9f9eb1d 100644
--- a/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_rating_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_dark.png
index f4a1cbc..690371d 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_light.png
index 79ca527..6d026dc 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_dark.png
index 33d1308..6e368d6 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_light.png
index 9672415..71cb582 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_off_focused_holo_dark.png
index 94d3784..ebc9914 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_star_off_focused_holo_light.png
index 9f3ce4e..edc3399 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_normal_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_off_normal_holo_dark.png
index 05563bf..7dc8089 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_normal_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_normal_holo_light.png b/core/res/res/drawable-mdpi/btn_star_off_normal_holo_light.png
index ee166bc..a9abdc0 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_normal_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_dark.png
index a703645..360ce61 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_light.png
index 42876ce..4884309 100644
--- a/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_dark.png
index becc091..3b5901f 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_light.png
index e49dbab..d61bf39 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_dark.png
index 61837f8..ff9f888 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_light.png b/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_light.png
index 19f139f..0aa36fe 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_focused_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_on_focused_holo_dark.png
index 9fed6b5..fdd1e95 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_focused_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_focused_holo_light.png b/core/res/res/drawable-mdpi/btn_star_on_focused_holo_light.png
index d52dbb7..15c9334 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_focused_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_normal_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_on_normal_holo_dark.png
index c0c6b49..14183171 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_normal_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_normal_holo_light.png b/core/res/res/drawable-mdpi/btn_star_on_normal_holo_light.png
index 237f7e7..2e81887 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_normal_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_dark.png b/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_dark.png
index c8ffef4..9083aec 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_light.png b/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_light.png
index 8be8533..b5f0542 100644
--- a/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-mdpi/btn_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png
index 5e55f6b..626a605 100644
--- a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png
index 791eda5..196c650 100644
--- a/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png
index 646ed1c..0536053 100644
--- a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png
index 08ea670..9fc345b 100644
--- a/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/list_longpressed_holo_dark.9.png b/core/res/res/drawable-mdpi/list_longpressed_holo_dark.9.png
index d120ab1..c6c1c02 100644
--- a/core/res/res/drawable-mdpi/list_longpressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/list_longpressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/list_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/list_pressed_holo_dark.9.png
index 5f97f2b..fd0e8d7 100644
--- a/core/res/res/drawable-mdpi/list_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/list_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/list_pressed_holo_light.9.png
index b6427cc..061904c 100644
--- a/core/res/res/drawable-mdpi/list_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_dark_am.9.png b/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_dark_am.9.png
index 561ac55..b21c73c 100644
--- a/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_light_am.9.png b/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_light_am.9.png
index 05ffe3f..58904e8 100644
--- a/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-mdpi/spinner_ab_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_pressed_holo_dark_am.9.png b/core/res/res/drawable-mdpi/spinner_pressed_holo_dark_am.9.png
index 363531a..75fb81e 100644
--- a/core/res/res/drawable-mdpi/spinner_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-mdpi/spinner_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/spinner_pressed_holo_light_am.9.png b/core/res/res/drawable-mdpi/spinner_pressed_holo_light_am.9.png
index d62c04b..fdd88b5 100644
--- a/core/res/res/drawable-mdpi/spinner_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-mdpi/spinner_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_dark.9.png b/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_dark.9.png
index 92ba340..f9f2fc6 100644
--- a/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_light.9.png b/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_light.9.png
index e099458..28a57a2 100644
--- a/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_light.9.png
+++ b/core/res/res/drawable-mdpi/switch_thumb_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_selected_pressed_holo.9.png b/core/res/res/drawable-mdpi/tab_selected_pressed_holo.9.png
index cdb7b19..c98f046 100644
--- a/core/res/res/drawable-mdpi/tab_selected_pressed_holo.9.png
+++ b/core/res/res/drawable-mdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/tab_unselected_pressed_holo.9.png b/core/res/res/drawable-mdpi/tab_unselected_pressed_holo.9.png
index b27c88d..8753459 100644
--- a/core/res/res/drawable-mdpi/tab_unselected_pressed_holo.9.png
+++ b/core/res/res/drawable-mdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_dark.png
index ebb439d..ffb13b1 100644
--- a/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_light.png
index c497bf1..86eb889 100644
--- a/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_check_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_dark.png
index 30b884e..0e1b948 100644
--- a/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_light.png
index 511f125..8d8aabc 100644
--- a/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_check_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png
index 8a751c3..37f30eb 100644
--- a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
index 4294246..a4ac0c7 100644
--- a/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_dark.png
index bda54ee..0f5f32f 100644
--- a/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_light.png
index 812e1b5..4097ef2 100644
--- a/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_radio_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_dark.png
index 6a0ee8d..a3795a0 100644
--- a/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_light.png
index 4bedd5c..f8e3bd4 100644
--- a/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_radio_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_dark.png
index 7cc4db2..94d6b6e 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_light.png
index e6d5630bf..68b8e53 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_dark.png
index 3556d13..0968ae1 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_light.png
index 42c6dfc..a444bf3 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_dark.png
index 0373da0..95eee6a 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_light.png
index 51b211c..4489c67 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_normal.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_normal.png
index d17506f..67cbc1a 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_normal.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_normal.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_dark.png
index c70eeb5..0f46649 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_light.png
index fa1450e..e3c0761 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed.png
index 93a01a5..aaa1c5b 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_dark.png
index e711d9d..dad564d 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_light.png
index 4bdf427..c891ae3 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_off_selected.png b/core/res/res/drawable-xhdpi/btn_rating_star_off_selected.png
index dea640a..7eed14c 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_off_selected.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_off_selected.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_dark.png
index 3a264a4..a8a7bf8 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_light.png
index 33b0516..e898819 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_dark.png
index b349d10..f3a9d3d 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_light.png
index 47e56f1..92dfd1a 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_dark.png
index 4102fd5..0c9d726 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_light.png
index f60477b..3b2055c 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_normal.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_normal.png
index cf93bfb..1db48b3 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_normal.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_normal.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_dark.png
index 5780bab..2b9b617 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_light.png
index 7483fbd..386b90a 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed.png
index 0696e04..a8e5d00 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_dark.png
index 79567ad..530eed2 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_light.png
index 65d472f..33ee629 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_rating_star_on_selected.png b/core/res/res/drawable-xhdpi/btn_rating_star_on_selected.png
index 5f3bec2..8ec2103 100644
--- a/core/res/res/drawable-xhdpi/btn_rating_star_on_selected.png
+++ b/core/res/res/drawable-xhdpi/btn_rating_star_on_selected.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_off.png b/core/res/res/drawable-xhdpi/btn_star_big_off.png
index f60eb48..4b2abf1 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_off.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_off.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_off_disable.png b/core/res/res/drawable-xhdpi/btn_star_big_off_disable.png
index 8e0858d..c2f8598 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_off_disable.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_off_disable.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_off_disable_focused.png b/core/res/res/drawable-xhdpi/btn_star_big_off_disable_focused.png
index f77e08c..1d1a1de 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_off_disable_focused.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_off_disable_focused.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_off_pressed.png b/core/res/res/drawable-xhdpi/btn_star_big_off_pressed.png
index 3f9695e..c6bb731 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_off_pressed.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_off_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_off_selected.png b/core/res/res/drawable-xhdpi/btn_star_big_off_selected.png
index b2e82da..c25f82e 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_off_selected.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_off_selected.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_on.png b/core/res/res/drawable-xhdpi/btn_star_big_on.png
index 7cda089..93606c5 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_on.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_on.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_on_disable.png b/core/res/res/drawable-xhdpi/btn_star_big_on_disable.png
index da50266..c78e42c 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_on_disable.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_on_disable.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_on_disable_focused.png b/core/res/res/drawable-xhdpi/btn_star_big_on_disable_focused.png
index df07003..6b2a537 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_on_disable_focused.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_on_disable_focused.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_on_pressed.png b/core/res/res/drawable-xhdpi/btn_star_big_on_pressed.png
index d56f46d..a25d0de 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_on_pressed.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_on_pressed.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_big_on_selected.png b/core/res/res/drawable-xhdpi/btn_star_big_on_selected.png
index 5a62f47..4d84628 100644
--- a/core/res/res/drawable-xhdpi/btn_star_big_on_selected.png
+++ b/core/res/res/drawable-xhdpi/btn_star_big_on_selected.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_dark.png
index f31cf27..13a190d 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_light.png
index 9b28db8..e9953d9 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_dark.png
index bec293c..0f05262 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_light.png
index eec89df..90243a0 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_dark.png
index 757908e..ce667b6 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_light.png
index c58bd5c..fe9cdee 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_dark.png
index c591cae..392c1be 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_light.png
index b3e981a..28869df 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_dark.png
index 614f428..07c20fd 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_light.png
index f80f9b3..aabcec2 100644
--- a/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_dark.png
index 25fd6bb..5ffb71b 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_light.png
index fcd06af..22d0cfb 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_disabled_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_dark.png
index 641f79b..fdee7fa 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_light.png
index 9e47d8b..7b6534b 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_dark.png
index 8f14270..b4e438a 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_light.png
index 1d55670..8d19fc9 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_focused_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_dark.png
index 032e89f..046df69 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_light.png
index ef59ce2..f17d60b 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_normal_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_dark.png b/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_dark.png
index 840967c..474a25a 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_light.png b/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_light.png
index d7f7ee4..f66c059 100644
--- a/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xhdpi/btn_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png
index a1b4e40..ce3d0d9 100644
--- a/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png
index ba9f6a0..9d07941 100644
--- a/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png
index 4afca86..ab794db 100644
--- a/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png
index eb79128..2ea1047 100644
--- a/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/list_longpressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/list_longpressed_holo_dark.9.png
index 4baaed3..1080244 100644
--- a/core/res/res/drawable-xhdpi/list_longpressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/list_longpressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/list_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/list_pressed_holo_dark.9.png
index e9e7c18..29037a0 100644
--- a/core/res/res/drawable-xhdpi/list_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/list_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/list_pressed_holo_light.9.png
index 5326b45..f4af926 100644
--- a/core/res/res/drawable-xhdpi/list_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_dark_am.9.png b/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_dark_am.9.png
index fe701d8..2dab26f 100644
--- a/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_light_am.9.png b/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_light_am.9.png
index efec27b..d15cd51 100644
--- a/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-xhdpi/spinner_ab_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_pressed_holo_dark_am.9.png b/core/res/res/drawable-xhdpi/spinner_pressed_holo_dark_am.9.png
index eb44f17..2023a9d 100644
--- a/core/res/res/drawable-xhdpi/spinner_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-xhdpi/spinner_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/spinner_pressed_holo_light_am.9.png b/core/res/res/drawable-xhdpi/spinner_pressed_holo_light_am.9.png
index dfceeed..3b066ae 100644
--- a/core/res/res/drawable-xhdpi/spinner_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-xhdpi/spinner_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_dark.9.png b/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_dark.9.png
index 64a2e52..dc69b12 100644
--- a/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_light.9.png b/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_light.9.png
index 5110439..2370b63 100644
--- a/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xhdpi/switch_thumb_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/tab_selected_pressed_holo.9.png b/core/res/res/drawable-xhdpi/tab_selected_pressed_holo.9.png
index 1df4a4d..f13a194 100644
--- a/core/res/res/drawable-xhdpi/tab_selected_pressed_holo.9.png
+++ b/core/res/res/drawable-xhdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png b/core/res/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png
index 574dbef..358ce26 100644
--- a/core/res/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png
+++ b/core/res/res/drawable-xhdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_dark.png
index 5ba273a..4c95f96 100644
--- a/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_light.png
index 32942b9..df468e0 100644
--- a/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_check_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_dark.png
index 70ee78f..81b0f87 100644
--- a/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_light.png
index 5bd562e..385350c 100644
--- a/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_check_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_dark.9.png b/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_dark.9.png
index a476b99..016a5ee 100644
--- a/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_light.9.png b/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_light.9.png
index cfa776c..9521603 100644
--- a/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xxhdpi/btn_default_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_dark.png
index 181f0a5..39ff3d5 100644
--- a/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_light.png
index 536c618..702155f 100644
--- a/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_radio_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_dark.png
index 3bb4ed0..d43a0f9 100644
--- a/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_light.png
index 1171dcb..c05643f 100644
--- a/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_radio_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_dark.png
index 03c26f0..899e577 100644
--- a/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_light.png
index f601b3b..aaa6826 100644
--- a/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_rating_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_dark.png
index dc5233b..e15fc63 100644
--- a/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_light.png
index 2afb586..cc82a54 100644
--- a/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_rating_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_dark.png
index d7416c0..b756e79 100644
--- a/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_light.png
index 47587d2..89bf5b4 100644
--- a/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_star_off_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_dark.png b/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_dark.png
index b258503..50e4940 100644
--- a/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_light.png b/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_light.png
index 703e502..0b77905 100644
--- a/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/btn_star_on_pressed_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_dark.9.png b/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_dark.9.png
index 966511e..1e675d3 100644
--- a/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_light.9.png b/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_light.9.png
index b6cd6a2..2ceb802 100644
--- a/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xxhdpi/btn_toggle_off_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_dark.9.png b/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_dark.9.png
index 33eb011..e7a9265 100644
--- a/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_light.9.png b/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_light.9.png
index 8d55f44..df58767 100644
--- a/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xxhdpi/btn_toggle_on_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/list_longpressed_holo_dark.9.png b/core/res/res/drawable-xxhdpi/list_longpressed_holo_dark.9.png
index c6079cd..6eb451f 100644
--- a/core/res/res/drawable-xxhdpi/list_longpressed_holo_dark.9.png
+++ b/core/res/res/drawable-xxhdpi/list_longpressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/list_pressed_holo_dark.9.png b/core/res/res/drawable-xxhdpi/list_pressed_holo_dark.9.png
index 2d4f230..d4952ea 100644
--- a/core/res/res/drawable-xxhdpi/list_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xxhdpi/list_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/list_pressed_holo_light.9.png b/core/res/res/drawable-xxhdpi/list_pressed_holo_light.9.png
index bd707b0..1352a17 100644
--- a/core/res/res/drawable-xxhdpi/list_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xxhdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_dark_am.9.png b/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_dark_am.9.png
index 5cb3d60..e78bfd0 100644
--- a/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_light_am.9.png b/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_light_am.9.png
index 91528b4..66c80a2 100644
--- a/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-xxhdpi/spinner_ab_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/spinner_pressed_holo_dark_am.9.png b/core/res/res/drawable-xxhdpi/spinner_pressed_holo_dark_am.9.png
index 37e1cdc..e2212a5 100644
--- a/core/res/res/drawable-xxhdpi/spinner_pressed_holo_dark_am.9.png
+++ b/core/res/res/drawable-xxhdpi/spinner_pressed_holo_dark_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/spinner_pressed_holo_light_am.9.png b/core/res/res/drawable-xxhdpi/spinner_pressed_holo_light_am.9.png
index 2990407..881ce7e 100644
--- a/core/res/res/drawable-xxhdpi/spinner_pressed_holo_light_am.9.png
+++ b/core/res/res/drawable-xxhdpi/spinner_pressed_holo_light_am.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_dark.9.png b/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_dark.9.png
index 94ab960..98c517f 100644
--- a/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_dark.9.png
+++ b/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_dark.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_light.9.png b/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_light.9.png
index b795052..a93ee06 100644
--- a/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_light.9.png
+++ b/core/res/res/drawable-xxhdpi/switch_thumb_pressed_holo_light.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/tab_selected_pressed_holo.9.png b/core/res/res/drawable-xxhdpi/tab_selected_pressed_holo.9.png
index c2ee05f..ffedd02 100644
--- a/core/res/res/drawable-xxhdpi/tab_selected_pressed_holo.9.png
+++ b/core/res/res/drawable-xxhdpi/tab_selected_pressed_holo.9.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/tab_unselected_pressed_holo.9.png b/core/res/res/drawable-xxhdpi/tab_unselected_pressed_holo.9.png
index 7faf667..82c6998 100644
--- a/core/res/res/drawable-xxhdpi/tab_unselected_pressed_holo.9.png
+++ b/core/res/res/drawable-xxhdpi/tab_unselected_pressed_holo.9.png
Binary files differ
diff --git a/docs/html/sdk/index.jd b/docs/html/sdk/index.jd
index 118958d..eb2d6a7 100644
--- a/docs/html/sdk/index.jd
+++ b/docs/html/sdk/index.jd
@@ -36,8 +36,8 @@ sdk.mac_bytes=74859877
sdk.mac_checksum=727a51affa2af733eca1aa307c73c3bd
sdk.win_download=android-sdk_r22.2.1-windows.zip
-sdk.win_bytes=108676651
-sdk.win_checksum=3b3f63ae00cf946d1174fa08b37d8542
+sdk.win_bytes=108797377
+sdk.win_checksum=bea5d28cfb6c073b32643dd3ed0bc1e0
sdk.win_installer=installer_r22.2.1-windows.exe
sdk.win_installer_bytes=88795776
diff --git a/docs/html/tools/revisions/platforms.jd b/docs/html/tools/revisions/platforms.jd
index 7cf3735..02216de 100644
--- a/docs/html/tools/revisions/platforms.jd
+++ b/docs/html/tools/revisions/platforms.jd
@@ -96,14 +96,29 @@ class="toggle-content-img" alt="" />Revision 1</a> <em>(July 2013)</em>
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png"
+class="toggle-content-img" alt="" />Revision 3</a> <em>(September 2013)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+
+ <p>Maintenance update. This release includes
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.2.65,
+ allowing you to test your application in an emulator using the latest Google Play services.</p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png"
class="toggle-content-img" alt="" />Revision 2</a> <em>(August 2013)</em>
</p>
<div class="toggle-content-toggleme">
<p>Maintenance update. This release includes
- <a href="{@docRoot}google/play-services/index.html">Google Play Services</a> version 3.2.25,
- allowing you to test your application in an emulator using the latest Google Play Services.</p>
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.2.25,
+ allowing you to test your application in an emulator using the latest Google Play services.</p>
</div>
</div>
@@ -117,7 +132,7 @@ class="toggle-content-img" alt="" />Revision 1</a> <em>(July 2013)</em>
<div class="toggle-content-toggleme">
<p>Initial release. This release includes
- <a href="{@docRoot}google/play-services/index.html">Google Play Services</a> version 3.1.58.</p>
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.1.58.</p>
</div>
</div>
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 7e99a5f..00e7870 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -353,7 +353,7 @@ void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyp
memset(dstR += dstStride, 0, borderSize); // trailing border column
}
// write trailing border line
- memset(dstL, 0, rowSize + 2 * borderSize);
+ memset(dstL += dstStride, 0, rowSize + 2 * borderSize);
break;
}
case SkMask::kBW_Format: {
diff --git a/packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow.9.png
new file mode 100644
index 0000000..0240874
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable-hdpi/ic_dir_shadow.9.png
Binary files differ
diff --git a/packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow.9.png
new file mode 100644
index 0000000..0240874
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable-mdpi/ic_dir_shadow.9.png
Binary files differ
diff --git a/packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow.9.png b/packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow.9.png
new file mode 100644
index 0000000..0240874
--- /dev/null
+++ b/packages/DocumentsUI/res/drawable-xxhdpi/ic_dir_shadow.9.png
Binary files differ
diff --git a/packages/DocumentsUI/res/layout-sw720dp/activity.xml b/packages/DocumentsUI/res/layout-sw720dp/activity.xml
index 584a44d..78735fd 100644
--- a/packages/DocumentsUI/res/layout-sw720dp/activity.xml
+++ b/packages/DocumentsUI/res/layout-sw720dp/activity.xml
@@ -44,7 +44,7 @@
android:layout_weight="1"
android:orientation="vertical">
- <FrameLayout
+ <com.android.documentsui.DirectoryContainerView
android:id="@+id/container_directory"
android:layout_width="match_parent"
android:layout_height="0dip"
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
index 140373b..b533925 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RecentsCreateFragment.java
@@ -206,7 +206,7 @@ public class RecentsCreateFragment extends Fragment {
title.setText(builder);
title.setEllipsize(TruncateAt.MIDDLE);
- line2.setVisibility(View.GONE);
+ if (line2 != null) line2.setVisibility(View.GONE);
return convertView;
}
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 4cd781a..757121f 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -21,7 +21,7 @@
<drawable name="ticker_background_color">#ff1d1d1d</drawable>
<drawable name="system_bar_background">#ff000000</drawable>
<color name="system_bar_background_semi_transparent">#66000000</color> <!-- 40% black -->
- <color name="system_bar_background_gradient_start">#7f000000</color> <!-- 50% black -->
+ <color name="system_bar_background_gradient_start">#8c000000</color> <!-- 55% black -->
<color name="system_bar_background_gradient_end">#00000000</color>
<color name="notification_panel_solid_background">#ff000000</color>
<drawable name="status_bar_recents_app_thumbnail_background">#88000000</drawable>
diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/java/com/android/server/AlarmManagerService.java
index 98b5f66..bb6c4e6 100644
--- a/services/java/com/android/server/AlarmManagerService.java
+++ b/services/java/com/android/server/AlarmManagerService.java
@@ -470,7 +470,8 @@ class AlarmManagerService extends IAlarmManager.Stub {
mTimeTickSender = PendingIntent.getBroadcastAsUser(context, 0,
new Intent(Intent.ACTION_TIME_TICK).addFlags(
- Intent.FLAG_RECEIVER_REGISTERED_ONLY), 0,
+ Intent.FLAG_RECEIVER_REGISTERED_ONLY
+ | Intent.FLAG_RECEIVER_FOREGROUND), 0,
UserHandle.ALL);
Intent intent = new Intent(Intent.ACTION_DATE_CHANGED);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index f70f4db..b6ccce7 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -1472,7 +1472,7 @@ public class LocationManagerService extends ILocationManager.Stub {
+ " " + name + " " + request + " from " + packageName + "(" + uid + ")");
LocationProviderInterface provider = mProvidersByName.get(name);
if (provider == null) {
- throw new IllegalArgumentException("provider doesn't exisit: " + provider);
+ throw new IllegalArgumentException("provider doesn't exist: " + provider);
}
UpdateRecord record = new UpdateRecord(name, request, receiver);
diff --git a/services/java/com/android/server/NetworkTimeUpdateService.java b/services/java/com/android/server/NetworkTimeUpdateService.java
index cbddf67..fddb54e 100644
--- a/services/java/com/android/server/NetworkTimeUpdateService.java
+++ b/services/java/com/android/server/NetworkTimeUpdateService.java
@@ -27,6 +27,7 @@ import android.database.ContentObserver;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.os.SystemClock;
@@ -35,7 +36,6 @@ import android.util.Log;
import android.util.NtpTrustedTime;
import android.util.TrustedTime;
-import com.android.internal.os.BackgroundThread;
import com.android.internal.telephony.TelephonyIntents;
/**
@@ -113,7 +113,9 @@ public class NetworkTimeUpdateService {
registerForAlarms();
registerForConnectivityIntents();
- mHandler = new MyHandler(BackgroundThread.get().getLooper());
+ HandlerThread thread = new HandlerThread(TAG);
+ thread.start();
+ mHandler = new MyHandler(thread.getLooper());
// Check the network time on the new thread
mHandler.obtainMessage(EVENT_POLL_NETWORK_TIME).sendToTarget();
diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java
index fea7623..4379c70 100644
--- a/services/java/com/android/server/am/ActiveServices.java
+++ b/services/java/com/android/server/am/ActiveServices.java
@@ -311,7 +311,7 @@ public final class ActiveServices {
final ServiceMap smap = getServiceMap(r.userId);
boolean addToStarting = false;
if (!callerFg && r.app == null && mAm.mStartedUsers.get(r.userId) != null) {
- ProcessRecord proc = mAm.getProcessRecordLocked(r.processName, r.appInfo.uid);
+ ProcessRecord proc = mAm.getProcessRecordLocked(r.processName, r.appInfo.uid, false);
if (proc == null || proc.curProcState > ActivityManager.PROCESS_STATE_RECEIVER) {
// If this is not coming from a foreground caller, then we may want
// to delay the start if there are already other background services
@@ -562,7 +562,7 @@ public final class ActiveServices {
if (r.isForeground) {
r.isForeground = false;
if (r.app != null) {
- mAm.updateLruProcessLocked(r.app, false);
+ mAm.updateLruProcessLocked(r.app, false, false);
updateServiceForegroundLocked(r.app, true);
}
}
@@ -1241,9 +1241,9 @@ public final class ActiveServices {
ProcessRecord app;
if (!isolated) {
- app = mAm.getProcessRecordLocked(procName, r.appInfo.uid);
- if (DEBUG_MU)
- Slog.v(TAG_MU, "bringUpServiceLocked: appInfo.uid=" + r.appInfo.uid + " app=" + app);
+ app = mAm.getProcessRecordLocked(procName, r.appInfo.uid, false);
+ if (DEBUG_MU) Slog.v(TAG_MU, "bringUpServiceLocked: appInfo.uid=" + r.appInfo.uid
+ + " app=" + app);
if (app != null && app.thread != null) {
try {
app.addPackage(r.appInfo.packageName, mAm.mProcessStats);
@@ -1270,7 +1270,7 @@ public final class ActiveServices {
// to be executed when the app comes up.
if (app == null) {
if ((app=mAm.startProcessLocked(procName, r.appInfo, true, intentFlags,
- "service", r.name, false, isolated)) == null) {
+ "service", r.name, false, isolated, false)) == null) {
String msg = "Unable to launch app "
+ r.appInfo.packageName + "/"
+ r.appInfo.uid + " for service "
@@ -1322,7 +1322,7 @@ public final class ActiveServices {
app.services.add(r);
bumpServiceExecutingLocked(r, execInFg, "create");
- mAm.updateLruProcessLocked(app, true);
+ mAm.updateLruProcessLocked(app, true, false);
boolean created = false;
try {
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index f08b5b9..7a480dc 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -499,6 +499,11 @@ public final class ActivityManagerService extends ActivityManagerNative
final ArrayList<ProcessRecord> mLruProcesses = new ArrayList<ProcessRecord>();
/**
+ * Where in mLruProcesses that the processes hosting activities start.
+ */
+ int mLruProcessActivityStart = 0;
+
+ /**
* List of processes that should gc as soon as things are idle.
*/
final ArrayList<ProcessRecord> mProcessesToGc = new ArrayList<ProcessRecord>();
@@ -1638,7 +1643,7 @@ public final class ActivityManagerService extends ActivityManagerNative
int pid;
synchronized (ActivityManagerService.this) {
if (i >= mPendingPssProcesses.size()) {
- if (DEBUG_PSS) Slog.i(TAG, "Collected PSS of " + num + " of " + i
+ if (DEBUG_PSS) Slog.d(TAG, "Collected PSS of " + num + " of " + i
+ " processes in " + (SystemClock.uptimeMillis()-start) + "ms");
mPendingPssProcesses.clear();
return;
@@ -1661,10 +1666,16 @@ public final class ActivityManagerService extends ActivityManagerNative
num++;
proc.lastPssTime = SystemClock.uptimeMillis();
proc.baseProcessTracker.addPss(pss, tmp[0], true);
+ if (DEBUG_PSS) Slog.d(TAG, "PSS of " + proc.toShortString()
+ + ": " + pss + " lastPss=" + proc.lastPss
+ + " state=" + ProcessList.makeProcStateString(procState));
if (proc.initialIdlePss == 0) {
proc.initialIdlePss = pss;
}
proc.lastPss = pss;
+ if (procState >= ActivityManager.PROCESS_STATE_HOME) {
+ proc.lastCachedPss = pss;
+ }
}
}
}
@@ -1704,7 +1715,7 @@ public final class ActivityManagerService extends ActivityManagerNative
synchronized (mSelf.mPidsSelfLocked) {
mSelf.mPidsSelfLocked.put(app.pid, app);
}
- mSelf.updateLruProcessLocked(app, true);
+ mSelf.updateLruProcessLocked(app, true, false);
}
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(
@@ -2219,52 +2230,76 @@ public final class ActivityManagerService extends ActivityManagerNative
mHandler.sendMessage(msg);
}
- private final void updateLruProcessInternalLocked(ProcessRecord app, int bestPos) {
- // put it on the LRU to keep track of when it should be exited.
- int lrui = mLruProcesses.indexOf(app);
- if (lrui >= 0) mLruProcesses.remove(lrui);
+ private final int updateLruProcessInternalLocked(ProcessRecord app, long now, int index) {
+ app.lastActivityTime = now;
- int i = mLruProcesses.size()-1;
- int skipTop = 0;
+ if (app.activities.size() > 0) {
+ // Don't want to touch dependent processes that are hosting activities.
+ return index;
+ }
- app.lruSeq = mLruSeq;
+ int lrui = mLruProcesses.lastIndexOf(app);
+ if (lrui < 0) {
+ throw new IllegalStateException("Adding dependent process " + app
+ + " not on LRU list!");
+ }
- // compute the new weight for this process.
- app.lastActivityTime = SystemClock.uptimeMillis();
- if (app.activities.size() > 0) {
- // If this process has activities, we more strongly want to keep
- // it around.
- app.lruWeight = app.lastActivityTime;
- } else if (app.pubProviders.size() > 0) {
- // If this process contains content providers, we want to keep
- // it a little more strongly.
- app.lruWeight = app.lastActivityTime - ProcessList.CONTENT_APP_IDLE_OFFSET;
- // Also don't let it kick out the first few "real" cached processes.
- skipTop = ProcessList.MIN_CACHED_APPS;
- } else {
- // If this process doesn't have activities, we less strongly
- // want to keep it around, and generally want to avoid getting
- // in front of any very recently used activities.
- app.lruWeight = app.lastActivityTime - ProcessList.EMPTY_APP_IDLE_OFFSET;
- // Also don't let it kick out the first few "real" cached processes.
- skipTop = ProcessList.MIN_CACHED_APPS;
- }
-
- while (i >= 0) {
- ProcessRecord p = mLruProcesses.get(i);
- // If this app shouldn't be in front of the first N background
- // apps, then skip over that many that are currently cached.
- if (skipTop > 0 && p.setAdj >= ProcessList.CACHED_APP_MIN_ADJ) {
- skipTop--;
- }
- if (p.lruWeight <= app.lruWeight || i < bestPos) {
- mLruProcesses.add(i+1, app);
- break;
+ if (lrui >= mLruProcessActivityStart) {
+ // Don't want to touch dependent processes that are hosting activities.
+ return index;
+ }
+
+ mLruProcesses.remove(lrui);
+ if (index > 0) {
+ index--;
+ }
+ mLruProcesses.add(index, app);
+ return index;
+ }
+
+ final void removeLruProcessLocked(ProcessRecord app) {
+ int lrui = mLruProcesses.lastIndexOf(app);
+ if (lrui >= 0) {
+ if (lrui <= mLruProcessActivityStart) {
+ mLruProcessActivityStart--;
}
- i--;
+ mLruProcesses.remove(lrui);
+ }
+ }
+
+ final void updateLruProcessLocked(ProcessRecord app, boolean oomAdj, boolean activityChange) {
+ final boolean hasActivity = app.activities.size() > 0;
+ if (!activityChange && hasActivity) {
+ // The process has activties, so we are only going to allow activity-based
+ // adjustments move it. It should be kept in the front of the list with other
+ // processes that have activities, and we don't want those to change their
+ // order except due to activity operations.
+ return;
+ }
+
+ mLruSeq++;
+ final long now = SystemClock.uptimeMillis();
+ app.lastActivityTime = now;
+
+ int lrui = mLruProcesses.lastIndexOf(app);
+
+ if (lrui >= 0) {
+ if (lrui < mLruProcessActivityStart) {
+ mLruProcessActivityStart--;
+ }
+ mLruProcesses.remove(lrui);
}
- if (i < 0) {
- mLruProcesses.add(0, app);
+
+ int nextIndex;
+ if (!hasActivity) {
+ // Process doesn't have activities, it goes to the top of the non-activity area.
+ mLruProcesses.add(mLruProcessActivityStart, app);
+ nextIndex = mLruProcessActivityStart-1;
+ mLruProcessActivityStart++;
+ } else {
+ // Process does have activities, put it at the very tipsy-top.
+ mLruProcesses.add(app);
+ nextIndex = mLruProcessActivityStart;
}
// If the app is currently using a content provider or service,
@@ -2274,20 +2309,15 @@ public final class ActivityManagerService extends ActivityManagerNative
if (cr.binding != null && cr.binding.service != null
&& cr.binding.service.app != null
&& cr.binding.service.app.lruSeq != mLruSeq) {
- updateLruProcessInternalLocked(cr.binding.service.app, i+1);
+ nextIndex = updateLruProcessInternalLocked(cr.binding.service.app, now, nextIndex);
}
}
for (int j=app.conProviders.size()-1; j>=0; j--) {
ContentProviderRecord cpr = app.conProviders.get(j).provider;
if (cpr.proc != null && cpr.proc.lruSeq != mLruSeq) {
- updateLruProcessInternalLocked(cpr.proc, i+1);
+ nextIndex = updateLruProcessInternalLocked(cpr.proc, now, nextIndex);
}
}
- }
-
- final void updateLruProcessLocked(ProcessRecord app, boolean oomAdj) {
- mLruSeq++;
- updateLruProcessInternalLocked(app, 0);
//Slog.i(TAG, "Putting proc to front: " + app.processName);
if (oomAdj) {
@@ -2295,14 +2325,12 @@ public final class ActivityManagerService extends ActivityManagerNative
}
}
- final ProcessRecord getProcessRecordLocked(
- String processName, int uid) {
+ final ProcessRecord getProcessRecordLocked(String processName, int uid, boolean keepIfLarge) {
if (uid == Process.SYSTEM_UID) {
// The system gets to run in any process. If there are multiple
// processes with the same uid, just pick the first (this
// should never happen).
- SparseArray<ProcessRecord> procs = mProcessNames.getMap().get(
- processName);
+ SparseArray<ProcessRecord> procs = mProcessNames.getMap().get(processName);
if (procs == null) return null;
final int N = procs.size();
for (int i = 0; i < N; i++) {
@@ -2310,6 +2338,26 @@ public final class ActivityManagerService extends ActivityManagerNative
}
}
ProcessRecord proc = mProcessNames.get(processName, uid);
+ if (false && proc != null && !keepIfLarge
+ && proc.setProcState >= ActivityManager.PROCESS_STATE_CACHED_EMPTY
+ && proc.lastCachedPss >= 4000) {
+ // Turn this condition on to cause killing to happen regularly, for testing.
+ if (proc.baseProcessTracker != null) {
+ proc.baseProcessTracker.reportCachedKill(proc.pkgList, proc.lastCachedPss);
+ }
+ killUnneededProcessLocked(proc, Long.toString(proc.lastCachedPss)
+ + "k from cached");
+ } else if (proc != null && !keepIfLarge && mLastMemoryLevel > ProcessStats.ADJ_MEM_FACTOR_NORMAL
+ && proc.setProcState >= ActivityManager.PROCESS_STATE_CACHED_EMPTY) {
+ if (DEBUG_PSS) Slog.d(TAG, "May not keep " + proc + ": pss=" + proc.lastCachedPss);
+ if (proc.lastCachedPss >= mProcessList.getCachedRestoreThreshold()) {
+ if (proc.baseProcessTracker != null) {
+ proc.baseProcessTracker.reportCachedKill(proc.pkgList, proc.lastCachedPss);
+ }
+ killUnneededProcessLocked(proc, Long.toString(proc.lastCachedPss)
+ + "k from cached");
+ }
+ }
return proc;
}
@@ -2333,10 +2381,10 @@ public final class ActivityManagerService extends ActivityManagerNative
final ProcessRecord startProcessLocked(String processName,
ApplicationInfo info, boolean knownToBeDead, int intentFlags,
String hostingType, ComponentName hostingName, boolean allowWhileBooting,
- boolean isolated) {
+ boolean isolated, boolean keepIfLarge) {
ProcessRecord app;
if (!isolated) {
- app = getProcessRecordLocked(processName, info.uid);
+ app = getProcessRecordLocked(processName, info.uid, keepIfLarge);
} else {
// If this is an isolated process, it can't re-use an existing process.
app = null;
@@ -2647,7 +2695,7 @@ public final class ActivityManagerService extends ActivityManagerNative
aInfo = new ActivityInfo(aInfo);
aInfo.applicationInfo = getAppInfoForUser(aInfo.applicationInfo, userId);
ProcessRecord app = getProcessRecordLocked(aInfo.processName,
- aInfo.applicationInfo.uid);
+ aInfo.applicationInfo.uid, true);
if (app == null || app.instrumentationClass == null) {
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NEW_TASK);
mStackSupervisor.startHomeActivity(intent, aInfo);
@@ -3364,7 +3412,7 @@ public final class ActivityManagerService extends ActivityManagerNative
boolean restarting, boolean allowRestart) {
cleanUpApplicationRecordLocked(app, restarting, allowRestart, -1);
if (!restarting) {
- mLruProcesses.remove(app);
+ removeLruProcessLocked(app);
}
if (mProfileProc == app) {
@@ -4212,7 +4260,7 @@ public final class ActivityManagerService extends ActivityManagerNative
// Only the system server can kill an application
if (callerUid == Process.SYSTEM_UID) {
synchronized (this) {
- ProcessRecord app = getProcessRecordLocked(processName, uid);
+ ProcessRecord app = getProcessRecordLocked(processName, uid, true);
if (app != null && app.thread != null) {
try {
app.thread.scheduleSuicide();
@@ -4517,7 +4565,7 @@ public final class ActivityManagerService extends ActivityManagerNative
}
killUnneededProcessLocked(app, reason);
handleAppDiedLocked(app, true, allowRestart);
- mLruProcesses.remove(app);
+ removeLruProcessLocked(app);
if (app.persistent && !app.isolated) {
if (!callerWillRestart) {
@@ -4712,7 +4760,7 @@ public final class ActivityManagerService extends ActivityManagerNative
isRestrictedBackupMode || !normalMode, app.persistent,
new Configuration(mConfiguration), app.compat, getCommonServicesLocked(),
mCoreSettingsObserver.getCoreSettingsLocked());
- updateLruProcessLocked(app, false);
+ updateLruProcessLocked(app, false, false);
app.lastRequestedGc = app.lastLowMemory = SystemClock.uptimeMillis();
} catch (Exception e) {
// todo: Yikes! What should we do? For now we will try to
@@ -7175,7 +7223,7 @@ public final class ActivityManagerService extends ActivityManagerNative
// make sure to count it as being accessed and thus
// back up on the LRU list. This is good because
// content providers are often expensive to start.
- updateLruProcessLocked(cpr.proc, false);
+ updateLruProcessLocked(cpr.proc, false, false);
}
}
@@ -7325,7 +7373,7 @@ public final class ActivityManagerService extends ActivityManagerNative
ProcessRecord proc = startProcessLocked(cpi.processName,
cpr.appInfo, false, 0, "content provider",
new ComponentName(cpi.applicationInfo.packageName,
- cpi.name), false, false);
+ cpi.name), false, false, false);
if (proc == null) {
Slog.w(TAG, "Unable to launch app "
+ cpi.applicationInfo.packageName + "/"
@@ -7734,7 +7782,7 @@ public final class ActivityManagerService extends ActivityManagerNative
final ProcessRecord addAppLocked(ApplicationInfo info, boolean isolated) {
ProcessRecord app;
if (!isolated) {
- app = getProcessRecordLocked(info.processName, info.uid);
+ app = getProcessRecordLocked(info.processName, info.uid, true);
} else {
app = null;
}
@@ -7745,7 +7793,7 @@ public final class ActivityManagerService extends ActivityManagerNative
if (isolated) {
mIsolatedProcesses.put(app.uid, app);
}
- updateLruProcessLocked(app, true);
+ updateLruProcessLocked(app, true, false);
}
// This package really, really can not be stopped.
@@ -8613,6 +8661,8 @@ public final class ActivityManagerService extends ActivityManagerNative
} else if (proc.setProcState < ActivityManager.PROCESS_STATE_HOME) {
proc.notCachedSinceIdle = true;
proc.initialIdlePss = 0;
+ proc.nextPssTime = ProcessList.computeNextPssTime(proc.curProcState, true,
+ mSleeping, now);
}
}
@@ -10230,13 +10280,16 @@ public final class ActivityManagerService extends ActivityManagerNative
}
if (mLruProcesses.size() > 0) {
- boolean printed = dumpProcessOomList(pw, this, mLruProcesses, " ",
- "Proc", "PERS", false, dumpPackage, needSep,
- " Process LRU list (sorted by oom_adj):");
- if (printed) {
- needSep = true;
- printedAnything = true;
+ if (needSep) {
+ pw.println();
}
+ pw.print(" Process LRU list (sorted by oom_adj, "); pw.print(mLruProcesses.size());
+ pw.print(" total, non-activities at ");
+ pw.print(mLruProcesses.size()-mLruProcessActivityStart);
+ pw.println("):");
+ dumpProcessOomList(pw, this, mLruProcesses, " ", "Proc", "PERS", false, dumpPackage);
+ needSep = true;
+ printedAnything = true;
}
if (dumpAll || dumpPackage != null) {
@@ -10607,14 +10660,15 @@ public final class ActivityManagerService extends ActivityManagerNative
printOomLevel(pw, "CACHED_APP_MAX_ADJ", ProcessList.CACHED_APP_MAX_ADJ);
if (needSep) pw.println();
- needSep = true;
- pw.println(" Process OOM control:");
- dumpProcessOomList(pw, this, mLruProcesses, " ",
- "Proc", "PERS", true, null, false, null);
+ pw.print(" Process OOM control ("); pw.print(mLruProcesses.size());
+ pw.print(" total, non-activities at ");
+ pw.print(mLruProcesses.size()-mLruProcessActivityStart);
+ pw.println("):");
+ dumpProcessOomList(pw, this, mLruProcesses, " ", "Proc", "PERS", true, null);
needSep = true;
}
- needSep = dumpProcessesToGc(fd, pw, args, opti, needSep, dumpAll, null);
+ dumpProcessesToGc(fd, pw, args, opti, needSep, dumpAll, null);
pw.println();
pw.println(" mHomeProcess: " + mHomeProcess);
@@ -11034,7 +11088,7 @@ public final class ActivityManagerService extends ActivityManagerNative
private static final boolean dumpProcessOomList(PrintWriter pw,
ActivityManagerService service, List<ProcessRecord> origList,
String prefix, String normalLabel, String persistentLabel,
- boolean inclDetails, String dumpPackage, boolean needSep, String header) {
+ boolean inclDetails, String dumpPackage) {
ArrayList<Pair<ProcessRecord, Integer>> list
= new ArrayList<Pair<ProcessRecord, Integer>>(origList.size());
@@ -11050,13 +11104,6 @@ public final class ActivityManagerService extends ActivityManagerNative
return false;
}
- if (header != null) {
- if (needSep) {
- pw.println();
- }
- pw.println(header);
- }
-
Comparator<Pair<ProcessRecord, Integer>> comparator
= new Comparator<Pair<ProcessRecord, Integer>>() {
@Override
@@ -11156,6 +11203,12 @@ public final class ActivityManagerService extends ActivityManagerNative
pw.print(" set="); pw.println(r.setAdj);
pw.print(prefix);
pw.print(" ");
+ pw.print("state: cur="); pw.print(ProcessList.makeProcStateString(r.curProcState));
+ pw.print(" set="); pw.print(ProcessList.makeProcStateString(r.setProcState));
+ pw.print(" lastPss="); pw.print(r.lastPss);
+ pw.print(" lastCachedPss="); pw.println(r.lastCachedPss);
+ pw.print(prefix);
+ pw.print(" ");
pw.print("keeping="); pw.print(r.keeping);
pw.print(" cached="); pw.print(r.cached);
pw.print(" empty="); pw.print(r.empty);
@@ -11505,27 +11558,25 @@ public final class ActivityManagerService extends ActivityManagerNative
if (!isCheckinRequest && dumpDetails) {
pw.println("\n** MEMINFO in pid " + pid + " [" + r.processName + "] **");
}
+ if (mi == null) {
+ mi = new Debug.MemoryInfo();
+ }
+ if (dumpDetails || (!brief && !oomOnly)) {
+ Debug.getMemoryInfo(pid, mi);
+ } else {
+ mi.dalvikPss = (int)Debug.getPss(pid, tmpLong);
+ mi.dalvikPrivateDirty = (int)tmpLong[0];
+ }
if (dumpDetails) {
try {
pw.flush();
- mi = null;
- mi = thread.dumpMemInfo(fd, isCheckinRequest, true, dumpDalvik, innerArgs);
+ thread.dumpMemInfo(fd, mi, isCheckinRequest, true, dumpDalvik, innerArgs);
} catch (RemoteException e) {
if (!isCheckinRequest) {
pw.println("Got RemoteException!");
pw.flush();
}
}
- } else {
- if (mi == null) {
- mi = new Debug.MemoryInfo();
- }
- if (!brief && !oomOnly) {
- Debug.getMemoryInfo(pid, mi);
- } else {
- mi.dalvikPss = (int)Debug.getPss(pid, tmpLong);
- mi.dalvikPrivateDirty = (int)tmpLong[0];
- }
}
final long myTotalPss = mi.getTotalPss();
@@ -11821,7 +11872,7 @@ public final class ActivityManagerService extends ActivityManagerNative
private final void cleanUpApplicationRecordLocked(ProcessRecord app,
boolean restarting, boolean allowRestart, int index) {
if (index >= 0) {
- mLruProcesses.remove(index);
+ removeLruProcessLocked(app);
}
mProcessesToGc.remove(app);
@@ -12278,7 +12329,7 @@ public final class ActivityManagerService extends ActivityManagerNative
: new ComponentName("android", "FullBackupAgent");
// startProcessLocked() returns existing proc's record if it's already running
ProcessRecord proc = startProcessLocked(app.processName, app,
- false, 0, "backup", hostingName, false, false);
+ false, 0, "backup", hostingName, false, false, false);
if (proc == null) {
Slog.e(TAG, "Unable to start backup agent process " + r);
return false;
@@ -14711,17 +14762,21 @@ public final class ActivityManagerService extends ActivityManagerNative
}
if (app.setProcState < 0 || ProcessList.procStatesDifferForMem(app.curProcState,
app.setProcState)) {
- if (DEBUG_PSS) Slog.d(TAG, "Process state change from " + app.setProcState
- + " to " + app.curProcState + ": " + app);
app.lastStateTime = now;
app.nextPssTime = ProcessList.computeNextPssTime(app.curProcState, true,
mSleeping, now);
+ if (DEBUG_PSS) Slog.d(TAG, "Process state change from "
+ + ProcessList.makeProcStateString(app.setProcState) + " to "
+ + ProcessList.makeProcStateString(app.curProcState) + " next pss in "
+ + (app.nextPssTime-now) + ": " + app);
} else {
if (now > app.nextPssTime || (now > (app.lastPssTime+ProcessList.PSS_MAX_INTERVAL)
&& now > (app.lastStateTime+ProcessList.PSS_MIN_TIME_FROM_STATE_CHANGE))) {
requestPssLocked(app, app.setProcState);
app.nextPssTime = ProcessList.computeNextPssTime(app.curProcState, false,
mSleeping, now);
+ } else if (false && DEBUG_PSS) {
+ Slog.d(TAG, "Not requesting PSS of " + app + ": next=" + (app.nextPssTime-now));
}
}
if (app.setProcState != app.curProcState) {
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/java/com/android/server/am/ActivityStack.java
index 1482440..3bdd01a 100644
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/java/com/android/server/am/ActivityStack.java
@@ -69,7 +69,6 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
-import android.os.PowerManager;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserHandle;
@@ -1342,7 +1341,7 @@ final class ActivityStack {
if (next.app != null && next.app.thread != null) {
// No reason to do full oom adj update here; we'll let that
// happen whenever it needs to later.
- mService.updateLruProcessLocked(next.app, false);
+ mService.updateLruProcessLocked(next.app, false, true);
}
if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
return true;
@@ -1470,7 +1469,7 @@ final class ActivityStack {
mResumedActivity = next;
next.task.touchActiveTime();
mService.addRecentTaskLocked(next.task);
- mService.updateLruProcessLocked(next.app, true);
+ mService.updateLruProcessLocked(next.app, true, true);
updateLRUListLocked(next);
// Have the window manager re-evaluate the orientation of
@@ -2707,7 +2706,8 @@ final class ActivityStack {
ActivityManagerService.CANCEL_HEAVY_NOTIFICATION_MSG);
}
if (r.app.activities.isEmpty()) {
- // No longer have activities, so update oom adj.
+ // No longer have activities, so update LRU list and oom adj.
+ mService.updateLruProcessLocked(r.app, false, false);
mService.updateOomAdjLocked();
}
}
@@ -3323,11 +3323,10 @@ final class ActivityStack {
return didSomething;
}
- ActivityRecord getTasksLocked(int maxNum, IThumbnailReceiver receiver,
+ ActivityRecord getTasksLocked(IThumbnailReceiver receiver,
PendingThumbnailsRecord pending, List<RunningTaskInfo> list) {
ActivityRecord topRecord = null;
- for (int taskNdx = mTaskHistory.size() - 1; maxNum > 0 && taskNdx >= 0;
- --maxNum, --taskNdx) {
+ for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
final TaskRecord task = mTaskHistory.get(taskNdx);
ActivityRecord r = null;
ActivityRecord top = null;
@@ -3358,6 +3357,8 @@ final class ActivityStack {
ci.id = task.taskId;
ci.baseActivity = r.intent.getComponent();
ci.topActivity = top.intent.getComponent();
+ ci.lastActiveTime = task.lastActiveTime;
+
if (top.thumbHolder != null) {
ci.description = top.thumbHolder.lastDescription;
}
diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/java/com/android/server/am/ActivityStackSupervisor.java
index 219cb85..9549e0a 100644
--- a/services/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/java/com/android/server/am/ActivityStackSupervisor.java
@@ -88,7 +88,7 @@ public final class ActivityStackSupervisor {
static final boolean DEBUG_ADD_REMOVE = DEBUG || false;
static final boolean DEBUG_APP = DEBUG || false;
static final boolean DEBUG_SAVED_STATE = DEBUG || false;
- static final boolean DEBUG_STATES = DEBUG || false;
+ static final boolean DEBUG_STATES = DEBUG || true;
static final boolean DEBUG_IDLE = DEBUG || false;
public static final int HOME_STACK_ID = 0;
@@ -548,14 +548,43 @@ public final class ActivityStackSupervisor {
ActivityRecord getTasksLocked(int maxNum, IThumbnailReceiver receiver,
PendingThumbnailsRecord pending, List<RunningTaskInfo> list) {
ActivityRecord r = null;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+
+ // Gather all of the running tasks for each stack into runningTaskLists.
+ final int numStacks = mStacks.size();
+ ArrayList<RunningTaskInfo>[] runningTaskLists = new ArrayList[numStacks];
+ for (int stackNdx = numStacks - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = mStacks.get(stackNdx);
- final ActivityRecord ar =
- stack.getTasksLocked(maxNum - list.size(), receiver, pending, list);
+ ArrayList<RunningTaskInfo> stackTaskList = new ArrayList<RunningTaskInfo>();
+ runningTaskLists[stackNdx] = stackTaskList;
+ final ActivityRecord ar = stack.getTasksLocked(receiver, pending, stackTaskList);
if (isFrontStack(stack)) {
r = ar;
}
}
+
+ // The lists are already sorted from most recent to oldest. Just pull the most recent off
+ // each list and add it to list. Stop when all lists are empty or maxNum reached.
+ while (maxNum > 0) {
+ long mostRecentActiveTime = Long.MIN_VALUE;
+ ArrayList<RunningTaskInfo> selectedStackList = null;
+ for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ ArrayList<RunningTaskInfo> stackTaskList = runningTaskLists[stackNdx];
+ if (!stackTaskList.isEmpty()) {
+ final long lastActiveTime = stackTaskList.get(0).lastActiveTime;
+ if (lastActiveTime > mostRecentActiveTime) {
+ mostRecentActiveTime = lastActiveTime;
+ selectedStackList = stackTaskList;
+ }
+ }
+ }
+ if (selectedStackList != null) {
+ list.add(selectedStackList.remove(0));
+ --maxNum;
+ } else {
+ break;
+ }
+ }
+
return r;
}
@@ -883,7 +912,7 @@ public final class ActivityStackSupervisor {
if (idx < 0) {
app.activities.add(r);
}
- mService.updateLruProcessLocked(app, true);
+ mService.updateLruProcessLocked(app, true, true);
final ActivityStack stack = r.task.stack;
try {
@@ -1023,7 +1052,7 @@ public final class ActivityStackSupervisor {
boolean andResume, boolean checkConfig) {
// Is this activity's application already running?
ProcessRecord app = mService.getProcessRecordLocked(r.processName,
- r.info.applicationInfo.uid);
+ r.info.applicationInfo.uid, true);
r.task.stack.setLaunchTime(r);
@@ -1042,7 +1071,7 @@ public final class ActivityStackSupervisor {
}
mService.startProcessLocked(r.processName, r.info.applicationInfo, true, 0,
- "activity", r.intent.getComponent(), false, false);
+ "activity", r.intent.getComponent(), false, false, true);
}
final int startActivityLocked(IApplicationThread caller,
@@ -2076,12 +2105,12 @@ public final class ActivityStackSupervisor {
mService.mHandler.removeMessages(LAUNCH_TIMEOUT_MSG);
}
}
+ checkReadyForSleepLocked();
}
boolean shutdownLocked(int timeout) {
boolean timedout = false;
goingToSleepLocked();
- checkReadyForSleepLocked();
final long endTime = System.currentTimeMillis() + timeout;
while (true) {
diff --git a/services/java/com/android/server/am/BroadcastQueue.java b/services/java/com/android/server/am/BroadcastQueue.java
index b35ca79..b2e3ce7 100644
--- a/services/java/com/android/server/am/BroadcastQueue.java
+++ b/services/java/com/android/server/am/BroadcastQueue.java
@@ -220,7 +220,7 @@ public final class BroadcastQueue {
r.curApp = app;
app.curReceiver = r;
app.forceProcessStateUpTo(ActivityManager.PROCESS_STATE_RECEIVER);
- mService.updateLruProcessLocked(app, true);
+ mService.updateLruProcessLocked(app, true, false);
// Tell the application to launch this receiver.
r.intent.setComponent(r.curComponent);
@@ -334,6 +334,7 @@ public final class BroadcastQueue {
public boolean finishReceiverLocked(BroadcastRecord r, int resultCode,
String resultData, Bundle resultExtras, boolean resultAbort, boolean waitForServices) {
final int state = r.state;
+ final ActivityInfo receiver = r.curReceiver;
r.state = BroadcastRecord.IDLE;
if (state == BroadcastRecord.IDLE) {
Slog.w(TAG, "finishReceiver [" + mQueueName + "] called but state is IDLE");
@@ -363,15 +364,27 @@ public final class BroadcastQueue {
if (waitForServices && r.curComponent != null && r.queue.mDelayBehindServices
&& r.queue.mOrderedBroadcasts.size() > 0
&& r.queue.mOrderedBroadcasts.get(0) == r) {
- // In this case, we are ready to process the next receiver for the current broadcast,
- // but are on a queue that would like to wait for services to finish before moving
- // on. If there are background services currently starting, then we will go into a
- // special state where we hold off on continuing this broadcast until they are done.
- if (mService.mServices.hasBackgroundServices(r.userId)) {
- Slog.i(ActivityManagerService.TAG, "Delay finish: "
- + r.curComponent.flattenToShortString());
- r.state = BroadcastRecord.WAITING_SERVICES;
- return false;
+ ActivityInfo nextReceiver;
+ if (r.nextReceiver < r.receivers.size()) {
+ Object obj = r.receivers.get(r.nextReceiver);
+ nextReceiver = (obj instanceof ActivityInfo) ? (ActivityInfo)obj : null;
+ } else {
+ nextReceiver = null;
+ }
+ // Don't do this if the next receive is in the same process as the current one.
+ if (receiver == null || nextReceiver == null
+ || receiver.applicationInfo.uid != nextReceiver.applicationInfo.uid
+ || !receiver.processName.equals(nextReceiver.processName)) {
+ // In this case, we are ready to process the next receiver for the current broadcast,
+ // but are on a queue that would like to wait for services to finish before moving
+ // on. If there are background services currently starting, then we will go into a
+ // special state where we hold off on continuing this broadcast until they are done.
+ if (mService.mServices.hasBackgroundServices(r.userId)) {
+ Slog.i(ActivityManagerService.TAG, "Delay finish: "
+ + r.curComponent.flattenToShortString());
+ r.state = BroadcastRecord.WAITING_SERVICES;
+ return false;
+ }
}
}
@@ -833,7 +846,7 @@ public final class BroadcastQueue {
// Is this receiver's application already running?
ProcessRecord app = mService.getProcessRecordLocked(targetProcess,
- info.activityInfo.applicationInfo.uid);
+ info.activityInfo.applicationInfo.uid, false);
if (app != null && app.thread != null) {
try {
app.addPackage(info.activityInfo.packageName, mService.mProcessStats);
@@ -871,7 +884,7 @@ public final class BroadcastQueue {
info.activityInfo.applicationInfo, true,
r.intent.getFlags() | Intent.FLAG_FROM_BACKGROUND,
"broadcast", r.curComponent,
- (r.intent.getFlags()&Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0, false))
+ (r.intent.getFlags()&Intent.FLAG_RECEIVER_BOOT_UPGRADE) != 0, false, false))
== null) {
// Ah, this recipient is unavailable. Finish it if necessary,
// and mark the broadcast record as ready for the next.
diff --git a/services/java/com/android/server/am/ProcessList.java b/services/java/com/android/server/am/ProcessList.java
index 54593aa..ef7f523 100644
--- a/services/java/com/android/server/am/ProcessList.java
+++ b/services/java/com/android/server/am/ProcessList.java
@@ -173,6 +173,8 @@ final class ProcessList {
private final long mTotalMemMb;
+ private long mCachedRestoreLevel;
+
private boolean mHaveDisplaySize;
ProcessList() {
@@ -243,6 +245,11 @@ final class ProcessList {
}
}
+ // The maximum size we will restore a process from cached to background, when under
+ // memory duress, is 1/3 the size we have reserved for kernel caches and other overhead
+ // before killing background processes.
+ mCachedRestoreLevel = (getMemLevel(ProcessList.CACHED_APP_MAX_ADJ)/1024) / 3;
+
for (int i=0; i<mOomAdj.length; i++) {
if (i > 0) {
adjString.append(',');
@@ -323,6 +330,70 @@ final class ProcessList {
}
}
+ public static String makeProcStateString(int curProcState) {
+ String procState;
+ switch (curProcState) {
+ case -1:
+ procState = "N ";
+ break;
+ case ActivityManager.PROCESS_STATE_PERSISTENT:
+ procState = "P ";
+ break;
+ case ActivityManager.PROCESS_STATE_PERSISTENT_UI:
+ procState = "PU";
+ break;
+ case ActivityManager.PROCESS_STATE_TOP:
+ procState = "T ";
+ break;
+ case ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND:
+ procState = "IF";
+ break;
+ case ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND:
+ procState = "IB";
+ break;
+ case ActivityManager.PROCESS_STATE_BACKUP:
+ procState = "BU";
+ break;
+ case ActivityManager.PROCESS_STATE_HEAVY_WEIGHT:
+ procState = "HW";
+ break;
+ case ActivityManager.PROCESS_STATE_SERVICE:
+ procState = "S ";
+ break;
+ case ActivityManager.PROCESS_STATE_RECEIVER:
+ procState = "R ";
+ break;
+ case ActivityManager.PROCESS_STATE_HOME:
+ procState = "HO";
+ break;
+ case ActivityManager.PROCESS_STATE_LAST_ACTIVITY:
+ procState = "LA";
+ break;
+ case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY:
+ procState = "CA";
+ break;
+ case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT:
+ procState = "Ca";
+ break;
+ case ActivityManager.PROCESS_STATE_CACHED_EMPTY:
+ procState = "CE";
+ break;
+ default:
+ procState = "??";
+ break;
+ }
+ return procState;
+ }
+
+ public static void appendRamKb(StringBuilder sb, long ramKb) {
+ for (int j=0, fact=10; j<6; j++, fact*=10) {
+ if (ramKb < fact) {
+ sb.append(' ');
+ }
+ }
+ sb.append(ramKb);
+ }
+
// The minimum amount of time after a state change it is safe ro collect PSS.
public static final int PSS_MIN_TIME_FROM_STATE_CHANGE = 15*1000;
@@ -336,10 +407,13 @@ final class ProcessList {
private static final int PSS_SHORT_INTERVAL = 2*60*1000;
// The amount of time until PSS when a process first becomes top.
- private static final int PSS_FIRST_TOP_INTERVAL = 15*1000;
+ private static final int PSS_FIRST_TOP_INTERVAL = 10*1000;
+
+ // The amount of time until PSS when a process first goes into the background.
+ private static final int PSS_FIRST_BACKGROUND_INTERVAL = 20*1000;
// The amount of time until PSS when a process first becomes cached.
- private static final int PSS_FIRST_CACHED_INTERVAL = 5*60*1000;
+ private static final int PSS_FIRST_CACHED_INTERVAL = 30*1000;
// The amount of time until PSS when an important process stays in the same state.
private static final int PSS_SAME_IMPORTANT_INTERVAL = 15*60*1000;
@@ -377,12 +451,12 @@ final class ProcessList {
PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_PERSISTENT
PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_PERSISTENT_UI
PSS_FIRST_TOP_INTERVAL, // ActivityManager.PROCESS_STATE_TOP
- PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND
- PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND
- PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_BACKUP
- PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_HEAVY_WEIGHT
- PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_SERVICE
- PSS_SHORT_INTERVAL, // ActivityManager.PROCESS_STATE_RECEIVER
+ PSS_FIRST_BACKGROUND_INTERVAL, // ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND
+ PSS_FIRST_BACKGROUND_INTERVAL, // ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND
+ PSS_FIRST_BACKGROUND_INTERVAL, // ActivityManager.PROCESS_STATE_BACKUP
+ PSS_FIRST_BACKGROUND_INTERVAL, // ActivityManager.PROCESS_STATE_HEAVY_WEIGHT
+ PSS_FIRST_BACKGROUND_INTERVAL, // ActivityManager.PROCESS_STATE_SERVICE
+ PSS_FIRST_CACHED_INTERVAL, // ActivityManager.PROCESS_STATE_RECEIVER
PSS_FIRST_CACHED_INTERVAL, // ActivityManager.PROCESS_STATE_HOME
PSS_FIRST_CACHED_INTERVAL, // ActivityManager.PROCESS_STATE_LAST_ACTIVITY
PSS_FIRST_CACHED_INTERVAL, // ActivityManager.PROCESS_STATE_CACHED_ACTIVITY
@@ -411,70 +485,6 @@ final class ProcessList {
return sProcStateToProcMem[procState1] != sProcStateToProcMem[procState2];
}
- public static String makeProcStateString(int curProcState) {
- String procState;
- switch (curProcState) {
- case -1:
- procState = "N ";
- break;
- case ActivityManager.PROCESS_STATE_PERSISTENT:
- procState = "P ";
- break;
- case ActivityManager.PROCESS_STATE_PERSISTENT_UI:
- procState = "PU";
- break;
- case ActivityManager.PROCESS_STATE_TOP:
- procState = "T ";
- break;
- case ActivityManager.PROCESS_STATE_IMPORTANT_FOREGROUND:
- procState = "IF";
- break;
- case ActivityManager.PROCESS_STATE_IMPORTANT_BACKGROUND:
- procState = "IB";
- break;
- case ActivityManager.PROCESS_STATE_BACKUP:
- procState = "BU";
- break;
- case ActivityManager.PROCESS_STATE_HEAVY_WEIGHT:
- procState = "HW";
- break;
- case ActivityManager.PROCESS_STATE_SERVICE:
- procState = "S ";
- break;
- case ActivityManager.PROCESS_STATE_RECEIVER:
- procState = "R ";
- break;
- case ActivityManager.PROCESS_STATE_HOME:
- procState = "HO";
- break;
- case ActivityManager.PROCESS_STATE_LAST_ACTIVITY:
- procState = "LA";
- break;
- case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY:
- procState = "CA";
- break;
- case ActivityManager.PROCESS_STATE_CACHED_ACTIVITY_CLIENT:
- procState = "Ca";
- break;
- case ActivityManager.PROCESS_STATE_CACHED_EMPTY:
- procState = "CE";
- break;
- default:
- procState = "??";
- break;
- }
- return procState;
- }
-
- public static void appendRamKb(StringBuilder sb, long ramKb) {
- for (int j=0, fact=10; j<6; j++, fact*=10) {
- if (ramKb < fact) {
- sb.append(' ');
- }
- }
- sb.append(ramKb);
- }
-
public static long computeNextPssTime(int procState, boolean first, boolean sleeping,
long now) {
final long[] table = sleeping
@@ -496,6 +506,14 @@ final class ProcessList {
return mOomMinFree[mOomAdj.length-1] * 1024;
}
+ /**
+ * Return the maximum pss size in kb that we consider a process acceptable to
+ * restore from its cached state for running in the background when RAM is low.
+ */
+ long getCachedRestoreThreshold() {
+ return mCachedRestoreLevel;
+ }
+
private void writeFile(String path, String data) {
FileOutputStream fos = null;
try {
diff --git a/services/java/com/android/server/am/ProcessRecord.java b/services/java/com/android/server/am/ProcessRecord.java
index 7a456f7..c5491ef 100644
--- a/services/java/com/android/server/am/ProcessRecord.java
+++ b/services/java/com/android/server/am/ProcessRecord.java
@@ -62,12 +62,12 @@ final class ProcessRecord {
int pid; // The process of this application; 0 if none
boolean starting; // True if the process is being started
long lastActivityTime; // For managing the LRU list
- long lruWeight; // Weight for ordering in LRU list
long lastPssTime; // Last time we retrieved PSS data
long nextPssTime; // Next time we want to request PSS data
long lastStateTime; // Last time setProcState changed
long initialIdlePss; // Initial memory pss of process for idle maintenance.
long lastPss; // Last computed memory pss.
+ long lastCachedPss; // Last computed pss when in cached state.
int maxAdj; // Maximum OOM adjustment for this process
int curRawAdj; // Current OOM unlimited adjustment for this process
int setRawAdj; // Last set OOM unlimited adjustment for this process
@@ -214,15 +214,22 @@ final class ProcessRecord {
pw.println(starting);
pw.print(prefix); pw.print("lastActivityTime=");
TimeUtils.formatDuration(lastActivityTime, now, pw);
- pw.print(" lruWeight="); pw.println(lruWeight);
+ pw.print(" lastPssTime=");
+ TimeUtils.formatDuration(lastPssTime, now, pw);
+ pw.print(" nextPssTime=");
+ TimeUtils.formatDuration(nextPssTime, now, pw);
+ pw.println();
+ pw.print(prefix); pw.print("adjSeq="); pw.print(adjSeq);
+ pw.print(" lruSeq="); pw.print(lruSeq);
+ pw.print(" lastPss="); pw.print(lastPss);
+ pw.print(" lastCachedPss="); pw.println(lastCachedPss);
pw.print(prefix); pw.print("serviceb="); pw.print(serviceb);
pw.print(" keeping="); pw.print(keeping);
pw.print(" cached="); pw.print(cached);
pw.print(" empty="); pw.println(empty);
if (notCachedSinceIdle) {
pw.print(prefix); pw.print("notCachedSinceIdle="); pw.print(notCachedSinceIdle);
- pw.print(" initialIdlePss="); pw.print(initialIdlePss);
- pw.print(" lastPss="); pw.println(lastPss);
+ pw.print(" initialIdlePss="); pw.println(initialIdlePss);
}
pw.print(prefix); pw.print("oom: max="); pw.print(maxAdj);
pw.print(" curRaw="); pw.print(curRawAdj);
@@ -240,13 +247,6 @@ final class ProcessRecord {
pw.print(" lastStateTime=");
TimeUtils.formatDuration(lastStateTime, now, pw);
pw.println();
- pw.print(prefix); pw.print("adjSeq="); pw.print(adjSeq);
- pw.print(" lruSeq="); pw.print(lruSeq);
- pw.print(" lastPssTime=");
- TimeUtils.formatDuration(lastPssTime, now, pw);
- pw.print(" nextPssTime=");
- TimeUtils.formatDuration(nextPssTime, now, pw);
- pw.println();
if (hasShownUi || pendingUiClean || hasAboveClient) {
pw.print(prefix); pw.print("hasShownUi="); pw.print(hasShownUi);
pw.print(" pendingUiClean="); pw.print(pendingUiClean);
diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/java/com/android/server/net/NetworkPolicyManagerService.java
index 5ca7242..d568b11 100644
--- a/services/java/com/android/server/net/NetworkPolicyManagerService.java
+++ b/services/java/com/android/server/net/NetworkPolicyManagerService.java
@@ -106,6 +106,7 @@ import android.net.wifi.WifiManager;
import android.os.Binder;
import android.os.Environment;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.INetworkManagementService;
import android.os.IPowerManager;
import android.os.Message;
@@ -133,7 +134,6 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.IndentingPrintWriter;
import com.android.internal.util.Objects;
-import com.android.server.IoThread;
import com.google.android.collect.Lists;
import com.google.android.collect.Maps;
import com.google.android.collect.Sets;
@@ -305,7 +305,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
mNetworkManager = checkNotNull(networkManagement, "missing networkManagement");
mTime = checkNotNull(time, "missing TrustedTime");
- mHandler = new Handler(IoThread.get().getLooper(), mHandlerCallback);
+ HandlerThread thread = new HandlerThread(TAG);
+ thread.start();
+ mHandler = new Handler(thread.getLooper(), mHandlerCallback);
mSuppressDefaultPolicy = suppressDefaultPolicy;
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/java/com/android/server/net/NetworkStatsService.java
index 1e8a7b0..5d6adc2 100644
--- a/services/java/com/android/server/net/NetworkStatsService.java
+++ b/services/java/com/android/server/net/NetworkStatsService.java
@@ -96,6 +96,7 @@ import android.os.Binder;
import android.os.DropBoxManager;
import android.os.Environment;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.INetworkManagementService;
import android.os.Message;
import android.os.PowerManager;
@@ -119,7 +120,6 @@ import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FileRotator;
import com.android.internal.util.IndentingPrintWriter;
import com.android.server.EventLogTags;
-import com.android.server.IoThread;
import com.android.server.connectivity.Tethering;
import com.google.android.collect.Maps;
@@ -270,7 +270,9 @@ public class NetworkStatsService extends INetworkStatsService.Stub {
Context.POWER_SERVICE);
mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
- mHandler = new Handler(IoThread.get().getLooper(), mHandlerCallback);
+ HandlerThread thread = new HandlerThread(TAG);
+ thread.start();
+ mHandler = new Handler(thread.getLooper(), mHandlerCallback);
mSystemDir = checkNotNull(systemDir);
mBaseDir = new File(systemDir, "netstats");
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java
index decda96..d1ca35e 100755
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/java/com/android/server/pm/PackageManagerService.java
@@ -9883,7 +9883,8 @@ public class PackageManagerService extends IPackageManager.Stub {
intent.addCategory(Intent.CATEGORY_HOME);
final int callingUserId = UserHandle.getCallingUserId();
- List<ResolveInfo> list = queryIntentActivities(intent, null, 0, callingUserId);
+ List<ResolveInfo> list = queryIntentActivities(intent, null,
+ PackageManager.GET_META_DATA, callingUserId);
ResolveInfo preferred = findPreferredActivity(intent, null, 0, list, 0,
true, false, callingUserId);
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 9a495ac..29a5d5f 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -158,7 +158,7 @@ public class WindowManagerService extends IWindowManager.Stub
DisplayManagerService.WindowManagerFuncs, DisplayManager.DisplayListener {
static final String TAG = "WindowManager";
static final boolean DEBUG = false;
- static final boolean DEBUG_ADD_REMOVE = false;
+ static final boolean DEBUG_ADD_REMOVE = true;
static final boolean DEBUG_FOCUS = false;
static final boolean DEBUG_FOCUS_LIGHT = DEBUG_FOCUS || false;
static final boolean DEBUG_ANIM = false;
@@ -4764,7 +4764,6 @@ public class WindowManagerService extends IWindowManager.Stub
synchronized(mWindowMap) {
Task task = mTaskIdToTask.get(taskId);
if (task == null) {
- Slog.e(TAG, "moveTaskToTop: taskId=" + taskId + " not found in mTaskIdToTask");
return;
}
final TaskStack stack = task.mStack;
@@ -9711,8 +9710,8 @@ public class WindowManagerService extends IWindowManager.Stub
newFocus = computeFocusedWindowLocked();
}
- if (DEBUG_FOCUS_LIGHT || localLOGV) Slog.v(
- TAG, "Changing focus from " + mCurrentFocus + " to " + newFocus);
+ if (true || DEBUG_FOCUS_LIGHT || localLOGV) Slog.v(TAG, "Changing focus from " +
+ mCurrentFocus + " to " + newFocus + " Callers=" + Debug.getCallers(4));
final WindowState oldFocus = mCurrentFocus;
mCurrentFocus = newFocus;
mLosingFocus.remove(newFocus);
diff --git a/tests/Camera2Tests/Android.mk b/tests/Camera2Tests/Android.mk
new file mode 100644
index 0000000..5053e7d
--- /dev/null
+++ b/tests/Camera2Tests/Android.mk
@@ -0,0 +1 @@
+include $(call all-subdir-makefiles)
diff --git a/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java b/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java
index eb47a4a..6278c89 100644
--- a/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java
@@ -75,8 +75,7 @@ import java.text.DecimalFormat;
*/
public class WifiWatchdogStateMachine extends StateMachine {
- /* STOPSHIP: Keep this configurable for debugging until ship */
- private static boolean DBG = false;
+ private static final boolean DBG = false;
private static final int BASE = Protocol.BASE_WIFI_WATCHDOG;
@@ -697,10 +696,6 @@ public class WifiWatchdogStateMachine extends StateMachine {
switch (msg.what) {
case EVENT_WATCHDOG_SETTINGS_CHANGE:
updateSettings();
- // STOPSHIP: Remove this at ship
- logd("Updated secure settings and turned debug on");
- DBG = true;
-
if (mPoorNetworkDetectionEnabled) {
transitionTo(mOnlineWatchState);
} else {