summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/usage/IUsageStatsManager.aidl2
-rw-r--r--core/java/android/app/usage/UsageEvents.java38
-rw-r--r--core/java/android/util/FeatureFlagUtils.java1
-rw-r--r--core/java/com/android/internal/app/ColorDisplayController.java40
-rw-r--r--core/java/com/android/internal/app/SuspendedAppActivity.java2
-rw-r--r--core/java/com/android/internal/os/BatteryStatsHelper.java7
-rw-r--r--core/java/com/android/internal/os/SensorPowerCalculator.java36
-rw-r--r--libs/hwui/pipeline/skia/GLFunctorDrawable.cpp11
-rw-r--r--media/java/android/media/AudioManager.java6
-rw-r--r--media/java/android/media/IAudioService.aidl2
-rw-r--r--media/jni/android_media_MediaCodec.cpp5
-rw-r--r--packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java24
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java2
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back.pngbin1412 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_dark.pngbin1630 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime.pngbin1468 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_dark.pngbin1614 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step.pngbin1034 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step_dark.pngbin681 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step.pngbin1008 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step_dark.pngbin695 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.pngbin1254 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked_dark.pngbin1456 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_home.pngbin1777 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_dark.pngbin1848 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step.pngbin895 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step_dark.pngbin637 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu.pngbin857 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_dark.pngbin1420 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent.pngbin803 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_dark.pngbin1302 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.pngbin1151 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked_dark.pngbin1437 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step.pngbin875 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step_dark.pngbin649 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.pngbin1402 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked_dark.pngbin1518 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step.pngbin1087 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step_dark.pngbin762 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.pngbin1643 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked_dark.pngbin1726 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step.pngbin1661 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step_dark.pngbin1182 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.pngbin995 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked_dark.pngbin1414 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step.pngbin1800 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step_dark.pngbin1548 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-land/ic_sysbar_docked.pngbin907 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-land/ic_sysbar_docked_dark.pngbin1316 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back.pngbin1535 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step.pngbin1010 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step_dark.pngbin710 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back.pngbin965 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step.pngbin809 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step_dark.pngbin524 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back.pngbin1906 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back_dark.pngbin1715 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back.pngbin1081 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back_dark.pngbin994 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back.pngbin2739 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back_dark.pngbin2496 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back.pngbin4954 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back_dark.pngbin4592 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back.pngbin7747 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back_dark.pngbin7152 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back.pngbin2084 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step.pngbin1309 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step_dark.pngbin904 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back.pngbin1358 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step.pngbin1723 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step_dark.pngbin1596 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back.pngbin1077 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_dark.pngbin1426 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime.pngbin1037 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_dark.pngbin1413 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step.pngbin800 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step_dark.pngbin524 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step.pngbin810 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step_dark.pngbin522 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.pngbin972 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked_dark.pngbin1324 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_home.pngbin1169 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_dark.pngbin1528 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step.pngbin744 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step_dark.pngbin502 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu.pngbin588 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_dark.pngbin1267 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent.pngbin703 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_dark.pngbin1217 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back.pngbin1910 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_dark.pngbin1764 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime.pngbin2022 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime_dark.pngbin1833 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked.pngbin1554 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked_dark.pngbin1411 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home.pngbin2399 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home_dark.pngbin2153 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu.pngbin1049 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu_dark.pngbin974 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent.pngbin1151 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent_dark.pngbin1083 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked.pngbin1397 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked_dark.pngbin1358 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked.pngbin634 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked_dark.pngbin602 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked.pngbin1596 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked_dark.pngbin1518 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked.pngbin2900 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked_dark.pngbin2744 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked.pngbin4470 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked_dark.pngbin4245 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back.pngbin1121 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_dark.pngbin1011 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime.pngbin1160 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime_dark.pngbin1063 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked.pngbin623 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked_dark.pngbin608 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home.pngbin1212 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home_dark.pngbin1070 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu.pngbin575 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu_dark.pngbin538 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent.pngbin594 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent_dark.pngbin595 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back.pngbin2843 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_dark.pngbin2583 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_ime.pngbin3036 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked.pngbin1610 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked_dark.pngbin1513 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home.pngbin3256 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home_dark.pngbin2952 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu.pngbin1576 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu_dark.pngbin1463 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent.pngbin1535 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent_dark.pngbin1461 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_dark.pngbin4703 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_ime.pngbin5369 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked.pngbin2815 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked_dark.pngbin2695 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home.pngbin6025 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home_dark.pngbin5635 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_ime_dark.pngbin4806 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu.pngbin2978 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu_dark.pngbin2805 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent.pngbin2674 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent_dark.pngbin2574 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back.pngbin7856 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_dark.pngbin7338 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime.pngbin8288 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime_dark.pngbin7537 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked.pngbin4376 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked_dark.pngbin4155 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home.pngbin9666 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home_dark.pngbin8971 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu.pngbin9533 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu_dark.pngbin8798 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent.pngbin4269 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent_dark.pngbin4108 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back.pngbin1933 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_dark.pngbin1814 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime.pngbin1864 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_dark.pngbin1790 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step.pngbin1317 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step_dark.pngbin870 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step.pngbin1302 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step_dark.pngbin879 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.pngbin1346 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked_dark.pngbin1504 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home.pngbin2470 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_dark.pngbin2165 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step.pngbin1065 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step_dark.pngbin752 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu.pngbin1243 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_dark.pngbin1516 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent.pngbin840 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_dark.pngbin1345 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back.pngbin2934 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_dark.pngbin2382 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime.pngbin2999 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_dark.pngbin2324 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step.pngbin2062 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step_dark.pngbin1306 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step.pngbin1963 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step_dark.pngbin1348 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.pngbin1608 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked_dark.pngbin1740 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home.pngbin3748 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_dark.pngbin2910 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step.pngbin1631 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step_dark.pngbin1142 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu.pngbin847 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_dark.pngbin1784 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent.pngbin1063 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_dark.pngbin1488 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back.pngbin3313 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_dark.pngbin2248 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime.pngbin3419 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_dark.pngbin2277 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step.pngbin1848 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step_dark.pngbin1616 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step.pngbin1740 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step_dark.pngbin1554 -> 0 bytes
-rwxr-xr-xpackages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.pngbin1096 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked_dark.pngbin1398 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home.pngbin4428 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_dark.pngbin2624 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step.pngbin1802 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step_dark.pngbin1418 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_menu_dark.pngbin2114 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent.pngbin1675 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_dark.pngbin1356 -> 0 bytes
-rw-r--r--packages/SystemUI/res/drawable/ic_qs_auto_rotate.xml45
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_accessibility_button.xml9
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_back.xml26
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_back_quick_step.xml28
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_docked.xml29
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_home.xml26
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_home_quick_step.xml26
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_menu.xml26
-rw-r--r--packages/SystemUI/res/drawable/ic_sysbar_recent.xml26
-rw-r--r--packages/SystemUI/res/layout/back.xml4
-rw-r--r--packages/SystemUI/res/layout/car_fullscreen_user_pod.xml6
-rw-r--r--packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml1
-rw-r--r--packages/SystemUI/res/layout/home.xml4
-rw-r--r--packages/SystemUI/res/layout/recent_apps.xml4
-rw-r--r--packages/SystemUI/res/values-sw600dp/dimens.xml3
-rw-r--r--packages/SystemUI/res/values/colors.xml3
-rw-r--r--packages/SystemUI/res/values/dimens.xml6
-rw-r--r--packages/SystemUI/res/values/dimens_car.xml1
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java16
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java18
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java25
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java24
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java30
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java137
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadowKeyDrawable.java207
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonDrawable.java36
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/TintedKeyButtonDrawable.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java12
-rw-r--r--proto/src/metrics_constants.proto91
-rw-r--r--proto/src/wifi.proto3
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java7
-rw-r--r--services/core/java/com/android/server/am/ActivityRecord.java12
-rw-r--r--services/core/java/com/android/server/am/ActivityStartController.java3
-rw-r--r--services/core/java/com/android/server/am/ActivityStarter.java30
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java87
-rw-r--r--services/core/java/com/android/server/display/ColorDisplayService.java19
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java12
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java (renamed from services/tests/servicestests/src/com/android/server/ColorDisplayServiceTest.java)6
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java76
255 files changed, 1045 insertions, 309 deletions
diff --git a/core/java/android/app/usage/IUsageStatsManager.aidl b/core/java/android/app/usage/IUsageStatsManager.aidl
index 00d8711c7baa..971352783dcb 100644
--- a/core/java/android/app/usage/IUsageStatsManager.aidl
+++ b/core/java/android/app/usage/IUsageStatsManager.aidl
@@ -36,6 +36,8 @@ interface IUsageStatsManager {
String callingPackage);
UsageEvents queryEvents(long beginTime, long endTime, String callingPackage);
UsageEvents queryEventsForPackage(long beginTime, long endTime, String callingPackage);
+ UsageEvents queryEventsForUser(long beginTime, long endTime, int userId, String callingPackage);
+ UsageEvents queryEventsForPackageForUser(long beginTime, long endTime, int userId, String pkg, String callingPackage);
void setAppInactive(String packageName, boolean inactive, int userId);
boolean isAppInactive(String packageName, int userId);
void whitelistAppTemporarily(String packageName, long duration, int userId);
diff --git a/core/java/android/app/usage/UsageEvents.java b/core/java/android/app/usage/UsageEvents.java
index 503ca6c3712d..3e90af356da0 100644
--- a/core/java/android/app/usage/UsageEvents.java
+++ b/core/java/android/app/usage/UsageEvents.java
@@ -399,16 +399,20 @@ public final class UsageEvents implements Parcelable {
* {@hide}
*/
public UsageEvents(Parcel in) {
- mEventCount = in.readInt();
- mIndex = in.readInt();
+ byte[] bytes = in.readBlob();
+ Parcel data = Parcel.obtain();
+ data.unmarshall(bytes, 0, bytes.length);
+ data.setDataPosition(0);
+ mEventCount = data.readInt();
+ mIndex = data.readInt();
if (mEventCount > 0) {
- mStringPool = in.createStringArray();
+ mStringPool = data.createStringArray();
- final int listByteLength = in.readInt();
- final int positionInParcel = in.readInt();
+ final int listByteLength = data.readInt();
+ final int positionInParcel = data.readInt();
mParcel = Parcel.obtain();
mParcel.setDataPosition(0);
- mParcel.appendFrom(in, in.dataPosition(), listByteLength);
+ mParcel.appendFrom(data, data.dataPosition(), listByteLength);
mParcel.setDataSize(mParcel.dataPosition());
mParcel.setDataPosition(positionInParcel);
}
@@ -586,10 +590,11 @@ public final class UsageEvents implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
- dest.writeInt(mEventCount);
- dest.writeInt(mIndex);
+ Parcel data = Parcel.obtain();
+ data.writeInt(mEventCount);
+ data.writeInt(mIndex);
if (mEventCount > 0) {
- dest.writeStringArray(mStringPool);
+ data.writeStringArray(mStringPool);
if (mEventsToWrite != null) {
// Write out the events
@@ -604,31 +609,34 @@ public final class UsageEvents implements Parcelable {
final int listByteLength = p.dataPosition();
// Write the total length of the data.
- dest.writeInt(listByteLength);
+ data.writeInt(listByteLength);
// Write our current position into the data.
- dest.writeInt(0);
+ data.writeInt(0);
// Write the data.
- dest.appendFrom(p, 0, listByteLength);
+ data.appendFrom(p, 0, listByteLength);
} finally {
p.recycle();
}
} else if (mParcel != null) {
// Write the total length of the data.
- dest.writeInt(mParcel.dataSize());
+ data.writeInt(mParcel.dataSize());
// Write out current position into the data.
- dest.writeInt(mParcel.dataPosition());
+ data.writeInt(mParcel.dataPosition());
// Write the data.
- dest.appendFrom(mParcel, 0, mParcel.dataSize());
+ data.appendFrom(mParcel, 0, mParcel.dataSize());
} else {
throw new IllegalStateException(
"Either mParcel or mEventsToWrite must not be null");
}
}
+ // Data can be too large for a transact. Write the data as a Blob, which will be written to
+ // ashmem if too large.
+ dest.writeBlob(data.marshall());
}
public static final Creator<UsageEvents> CREATOR = new Creator<UsageEvents>() {
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java
index b13f831cb910..2d8b4d482b21 100644
--- a/core/java/android/util/FeatureFlagUtils.java
+++ b/core/java/android/util/FeatureFlagUtils.java
@@ -43,6 +43,7 @@ public class FeatureFlagUtils {
DEFAULT_FLAGS.put("settings_bluetooth_while_driving", "false");
DEFAULT_FLAGS.put("settings_data_usage_v2", "true");
DEFAULT_FLAGS.put("settings_audio_switcher", "true");
+ DEFAULT_FLAGS.put("settings_systemui_theme", "false");
}
/**
diff --git a/core/java/com/android/internal/app/ColorDisplayController.java b/core/java/com/android/internal/app/ColorDisplayController.java
index 6cc964bf16ed..ba6cf269b737 100644
--- a/core/java/com/android/internal/app/ColorDisplayController.java
+++ b/core/java/com/android/internal/app/ColorDisplayController.java
@@ -335,7 +335,7 @@ public final class ColorDisplayController {
if (colorTemperature == -1) {
if (DEBUG) {
Slog.d(TAG, "Using default value for setting: "
- + Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE);
+ + Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE);
}
colorTemperature = getDefaultColorTemperature();
}
@@ -358,7 +358,7 @@ public final class ColorDisplayController {
*/
public boolean setColorTemperature(int colorTemperature) {
return Secure.putIntForUser(mContext.getContentResolver(),
- Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE, colorTemperature, mUserId);
+ Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE, colorTemperature, mUserId);
}
/**
@@ -367,10 +367,10 @@ public final class ColorDisplayController {
* See com.android.server.display.DisplayTransformManager.
*/
private @ColorMode int getCurrentColorModeFromSystemProperties() {
- int displayColorSetting = SystemProperties.getInt("persist.sys.sf.native_mode", 0);
+ final int displayColorSetting = SystemProperties.getInt("persist.sys.sf.native_mode", 0);
if (displayColorSetting == 0) {
return "1.0".equals(SystemProperties.get("persist.sys.sf.color_saturation"))
- ? COLOR_MODE_NATURAL : COLOR_MODE_BOOSTED;
+ ? COLOR_MODE_NATURAL : COLOR_MODE_BOOSTED;
} else if (displayColorSetting == 1) {
return COLOR_MODE_SATURATED;
} else if (displayColorSetting == 2) {
@@ -381,16 +381,13 @@ public final class ColorDisplayController {
}
private boolean isColorModeAvailable(@ColorMode int colorMode) {
- // SATURATED is always allowed
- if (colorMode == COLOR_MODE_SATURATED) {
- return true;
- }
-
final int[] availableColorModes = mContext.getResources().getIntArray(
R.array.config_availableColorModes);
- for (int mode : availableColorModes) {
- if (mode == colorMode) {
- return true;
+ if (availableColorModes != null) {
+ for (int mode : availableColorModes) {
+ if (mode == colorMode) {
+ return true;
+ }
}
}
return false;
@@ -401,14 +398,18 @@ public final class ColorDisplayController {
*/
public int getColorMode() {
if (getAccessibilityTransformActivated()) {
- return COLOR_MODE_SATURATED;
+ if (isColorModeAvailable(COLOR_MODE_SATURATED)) {
+ return COLOR_MODE_SATURATED;
+ } else if (isColorModeAvailable(COLOR_MODE_AUTOMATIC)) {
+ return COLOR_MODE_AUTOMATIC;
+ }
}
int colorMode = System.getIntForUser(mContext.getContentResolver(),
- System.DISPLAY_COLOR_MODE, -1, mUserId);
+ System.DISPLAY_COLOR_MODE, -1, mUserId);
if (colorMode == -1) {
- // There still might be a legacy system property controlling color mode that we need to
- // respect.
+ // There might be a system property controlling color mode that we need to respect; if
+ // not, this will set a suitable default.
colorMode = getCurrentColorModeFromSystemProperties();
}
@@ -418,10 +419,13 @@ public final class ColorDisplayController {
if (colorMode == COLOR_MODE_BOOSTED && isColorModeAvailable(COLOR_MODE_NATURAL)) {
colorMode = COLOR_MODE_NATURAL;
} else if (colorMode == COLOR_MODE_SATURATED
- && isColorModeAvailable(COLOR_MODE_AUTOMATIC)) {
+ && isColorModeAvailable(COLOR_MODE_AUTOMATIC)) {
colorMode = COLOR_MODE_AUTOMATIC;
- } else {
+ } else if (colorMode == COLOR_MODE_AUTOMATIC
+ && isColorModeAvailable(COLOR_MODE_SATURATED)) {
colorMode = COLOR_MODE_SATURATED;
+ } else {
+ colorMode = -1;
}
}
diff --git a/core/java/com/android/internal/app/SuspendedAppActivity.java b/core/java/com/android/internal/app/SuspendedAppActivity.java
index f42a195f001f..a8edfb6ec936 100644
--- a/core/java/com/android/internal/app/SuspendedAppActivity.java
+++ b/core/java/com/android/internal/app/SuspendedAppActivity.java
@@ -60,7 +60,7 @@ public class SuspendedAppActivity extends AlertActivity
if (resolvedInfo != null && resolvedInfo.activityInfo != null
&& requiredPermission.equals(resolvedInfo.activityInfo.permission)) {
moreDetailsIntent.putExtra(Intent.EXTRA_PACKAGE_NAME, suspendedPackage)
- .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
return moreDetailsIntent;
}
return null;
diff --git a/core/java/com/android/internal/os/BatteryStatsHelper.java b/core/java/com/android/internal/os/BatteryStatsHelper.java
index b49aaced83a3..a6b29c5f8ce8 100644
--- a/core/java/com/android/internal/os/BatteryStatsHelper.java
+++ b/core/java/com/android/internal/os/BatteryStatsHelper.java
@@ -409,10 +409,9 @@ public class BatteryStatsHelper {
}
mBluetoothPowerCalculator.reset();
- if (mSensorPowerCalculator == null) {
- mSensorPowerCalculator = new SensorPowerCalculator(mPowerProfile,
- (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE));
- }
+ mSensorPowerCalculator = new SensorPowerCalculator(mPowerProfile,
+ (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE),
+ mStats, rawRealtimeUs, statsType);
mSensorPowerCalculator.reset();
if (mCameraPowerCalculator == null) {
diff --git a/core/java/com/android/internal/os/SensorPowerCalculator.java b/core/java/com/android/internal/os/SensorPowerCalculator.java
index c98639b1d548..04cb49a48c26 100644
--- a/core/java/com/android/internal/os/SensorPowerCalculator.java
+++ b/core/java/com/android/internal/os/SensorPowerCalculator.java
@@ -20,20 +20,23 @@ import android.hardware.SensorManager;
import android.os.BatteryStats;
import android.util.SparseArray;
+import com.android.internal.location.gnssmetrics.GnssMetrics;
+
import java.util.List;
public class SensorPowerCalculator extends PowerCalculator {
private final List<Sensor> mSensors;
- private final double mGpsPowerOn;
+ private final double mGpsPower;
- public SensorPowerCalculator(PowerProfile profile, SensorManager sensorManager) {
+ public SensorPowerCalculator(PowerProfile profile, SensorManager sensorManager,
+ BatteryStats stats, long rawRealtimeUs, int statsType) {
mSensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
- mGpsPowerOn = profile.getAveragePower(PowerProfile.POWER_GPS_ON);
+ mGpsPower = getAverageGpsPower(profile, stats, rawRealtimeUs, statsType);
}
@Override
public void calculateApp(BatterySipper app, BatteryStats.Uid u, long rawRealtimeUs,
- long rawUptimeUs, int statsType) {
+ long rawUptimeUs, int statsType) {
// Process Sensor usage
final SparseArray<? extends BatteryStats.Uid.Sensor> sensorStats = u.getSensorStats();
final int NSE = sensorStats.size();
@@ -42,10 +45,11 @@ public class SensorPowerCalculator extends PowerCalculator {
final int sensorHandle = sensorStats.keyAt(ise);
final BatteryStats.Timer timer = sensor.getSensorTime();
final long sensorTime = timer.getTotalTimeLocked(rawRealtimeUs, statsType) / 1000;
+
switch (sensorHandle) {
case BatteryStats.Uid.Sensor.GPS:
app.gpsTimeMs = sensorTime;
- app.gpsPowerMah = (app.gpsTimeMs * mGpsPowerOn) / (1000*60*60);
+ app.gpsPowerMah = (app.gpsTimeMs * mGpsPower) / (1000*60*60);
break;
default:
final int sensorsCount = mSensors.size();
@@ -60,4 +64,26 @@ public class SensorPowerCalculator extends PowerCalculator {
}
}
}
+
+ private double getAverageGpsPower(PowerProfile profile, BatteryStats stats, long rawRealtimeUs,
+ int statsType) {
+ double averagePower =
+ profile.getAveragePowerOrDefault(PowerProfile.POWER_GPS_ON, -1);
+ if (averagePower != -1) {
+ return averagePower;
+ }
+ averagePower = 0;
+ long totalTime = 0;
+ double totalPower = 0;
+ for (int i = 0; i < GnssMetrics.NUM_GPS_SIGNAL_QUALITY_LEVELS; i++) {
+ long timePerLevel = stats.getGpsSignalQualityTime(i, rawRealtimeUs, statsType);
+ totalTime += timePerLevel;
+ totalPower += profile.getAveragePower(PowerProfile.POWER_GPS_SIGNAL_QUALITY_BASED, i)
+ * timePerLevel;
+ }
+ if (totalTime != 0) {
+ averagePower = totalPower / totalTime;
+ }
+ return averagePower;
+ }
}
diff --git a/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp b/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
index 145e3c485cbc..9c80ff86df53 100644
--- a/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
+++ b/libs/hwui/pipeline/skia/GLFunctorDrawable.cpp
@@ -76,13 +76,20 @@ void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
// apply a simple clip with a scissor or a complex clip with a stencil
SkRegion clipRegion;
canvas->temporary_internal_getRgnClip(&clipRegion);
+ canvas->flush();
+ glBindFramebuffer(GL_FRAMEBUFFER, 0);
+ glViewport(0, 0, info.width, info.height);
if (CC_UNLIKELY(clipRegion.isComplex())) {
+ //TODO: move stencil clear and canvas flush to SkAndroidFrameworkUtils::clipWithStencil
glDisable(GL_SCISSOR_TEST);
glStencilMask(0x1);
glClearStencil(0);
glClear(GL_STENCIL_BUFFER_BIT);
+ // GL ops get inserted here if previous flush is missing, which could dirty the stencil
bool stencilWritten = SkAndroidFrameworkUtils::clipWithStencil(canvas);
- canvas->flush();
+ canvas->flush(); //need this flush for the single op that draws into the stencil
+ glBindFramebuffer(GL_FRAMEBUFFER, 0);
+ glViewport(0, 0, info.width, info.height);
if (stencilWritten) {
glStencilMask(0x1);
glStencilFunc(GL_EQUAL, 0x1, 0x1);
@@ -93,11 +100,9 @@ void GLFunctorDrawable::onDraw(SkCanvas* canvas) {
glDisable(GL_STENCIL_TEST);
}
} else if (clipRegion.isEmpty()) {
- canvas->flush();
glDisable(GL_STENCIL_TEST);
glDisable(GL_SCISSOR_TEST);
} else {
- canvas->flush();
glDisable(GL_STENCIL_TEST);
glEnable(GL_SCISSOR_TEST);
setScissor(info.height, clipRegion.getBounds());
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 6c9a01b89977..0c38c38e88ff 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -3939,6 +3939,7 @@ public class AudioManager {
* @param device Bluetooth device connected/disconnected
* @param state new connection state (BluetoothProfile.STATE_xxx)
* @param profile profile for the A2DP device
+ * @param a2dpVolume New volume for the connecting device. Does nothing if disconnecting.
* (either {@link android.bluetooth.BluetoothProfile.A2DP} or
* {@link android.bluetooth.BluetoothProfile.A2DP_SINK})
* @param suppressNoisyIntent if true the
@@ -3948,12 +3949,13 @@ public class AudioManager {
* {@hide}
*/
public int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(
- BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent) {
+ BluetoothDevice device, int state, int profile,
+ boolean suppressNoisyIntent, int a2dpVolume) {
final IAudioService service = getService();
int delay = 0;
try {
delay = service.setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(device,
- state, profile, suppressNoisyIntent);
+ state, profile, suppressNoisyIntent, a2dpVolume);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl
index 4af88507580d..569db16c312e 100644
--- a/media/java/android/media/IAudioService.aidl
+++ b/media/java/android/media/IAudioService.aidl
@@ -211,7 +211,7 @@ interface IAudioService {
oneway void playerHasOpPlayAudio(in int piid, in boolean hasOpPlayAudio);
int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(in BluetoothDevice device,
- int state, int profile, boolean suppressNoisyIntent);
+ int state, int profile, boolean suppressNoisyIntent, int a2dpVolume);
oneway void setFocusRequestResultFromExtPolicy(in AudioFocusInfo afi, int requestResult,
in IAudioPolicyCallback pcb);
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 16f6284b6031..3490ff8fcf43 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -742,7 +742,12 @@ status_t JMediaCodec::setParameters(const sp<AMessage> &msg) {
void JMediaCodec::setVideoScalingMode(int mode) {
if (mSurfaceTextureClient != NULL) {
+ // this works for components that queue to surface
native_window_set_scaling_mode(mSurfaceTextureClient.get(), mode);
+ // also signal via param for components that queue to IGBP
+ sp<AMessage> msg = new AMessage;
+ msg->setInt32("android._video-scaling", mode);
+ (void)mCodec->setParameters(msg);
}
}
diff --git a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
index 91c04fa65e24..3630005416be 100644
--- a/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
+++ b/packages/CaptivePortalLogin/src/com/android/captiveportallogin/CaptivePortalLoginActivity.java
@@ -16,6 +16,9 @@
package com.android.captiveportallogin;
+import static android.net.ConnectivityManager.EXTRA_CAPTIVE_PORTAL_PROBE_SPEC;
+import static android.net.captiveportal.CaptivePortalProbeSpec.HTTP_LOCATION_HEADER_NAME;
+
import android.app.Activity;
import android.app.LoadedApk;
import android.content.Context;
@@ -29,6 +32,7 @@ import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.net.Proxy;
import android.net.Uri;
+import android.net.captiveportal.CaptivePortalProbeSpec;
import android.net.dns.ResolvUtil;
import android.net.http.SslError;
import android.net.wifi.WifiInfo;
@@ -85,6 +89,7 @@ public class CaptivePortalLoginActivity extends Activity {
};
private URL mUrl;
+ private CaptivePortalProbeSpec mProbeSpec;
private String mUserAgent;
private Network mNetwork;
private CaptivePortal mCaptivePortal;
@@ -118,6 +123,14 @@ public class CaptivePortalLoginActivity extends Activity {
Log.d(TAG, String.format("onCreate for %s", mUrl.toString()));
}
+ final String spec = getIntent().getStringExtra(EXTRA_CAPTIVE_PORTAL_PROBE_SPEC);
+ try {
+ mProbeSpec = CaptivePortalProbeSpec.parseSpecOrNull(spec);
+ } catch (Exception e) {
+ // Make extra sure that invalid configurations do not cause crashes
+ mProbeSpec = null;
+ }
+
// Also initializes proxy system properties.
mCm.bindProcessToNetwork(mNetwork);
mCm.setProcessDefaultNetworkForHostResolution(
@@ -329,6 +342,7 @@ public class CaptivePortalLoginActivity extends Activity {
}
HttpURLConnection urlConnection = null;
int httpResponseCode = 500;
+ String locationHeader = null;
try {
urlConnection = (HttpURLConnection) network.openConnection(mUrl);
urlConnection.setInstanceFollowRedirects(false);
@@ -343,6 +357,7 @@ public class CaptivePortalLoginActivity extends Activity {
urlConnection.getInputStream();
httpResponseCode = urlConnection.getResponseCode();
+ locationHeader = urlConnection.getHeaderField(HTTP_LOCATION_HEADER_NAME);
if (DBG) {
Log.d(TAG, "probe at " + mUrl +
" ret=" + httpResponseCode +
@@ -353,13 +368,20 @@ public class CaptivePortalLoginActivity extends Activity {
} finally {
if (urlConnection != null) urlConnection.disconnect();
}
- if (httpResponseCode == 204) {
+ if (isDismissed(httpResponseCode, locationHeader, mProbeSpec)) {
done(Result.DISMISSED);
}
}
}).start();
}
+ private static boolean isDismissed(
+ int httpResponseCode, String locationHeader, CaptivePortalProbeSpec probeSpec) {
+ return (probeSpec != null)
+ ? probeSpec.getResult(httpResponseCode, locationHeader).isSuccessful()
+ : (httpResponseCode == 204);
+ }
+
private class MyWebViewClient extends WebViewClient {
private static final String INTERNAL_ASSETS = "file:///android_asset/";
diff --git a/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java b/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
index 5b8e1fc7f6f8..2fc6db08c7f9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
+++ b/packages/SettingsLib/src/com/android/settingslib/graph/BatteryMeterDrawableBase.java
@@ -57,7 +57,7 @@ public class BatteryMeterDrawableBase extends Drawable {
private int mLevel = -1;
private boolean mCharging;
private boolean mPowerSaveEnabled;
- private boolean mPowerSaveAsColorError = true;
+ protected boolean mPowerSaveAsColorError = true;
private boolean mShowPercent;
private static final boolean SINGLE_DIGIT_PERCENT = false;
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back.png
deleted file mode 100644
index aa9f6d43b5d0..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 0a6074b499ff..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 151caea27a28..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 64bc40a304b2..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step.png
deleted file mode 100644
index d7f94497409a..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step_dark.png
deleted file mode 100644
index 7c657036c4fc..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index eea819a1109e..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index 504ceb79fba0..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.png
deleted file mode 100755
index 0622ddc420e3..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index fb44f22af258..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home.png
deleted file mode 100644
index 613afce784f1..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index a665e23e7cd7..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index 8e7d8cba1a4e..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index 456a68f0200c..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu.png
deleted file mode 100644
index 72b2b21772ea..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index 4f656602064f..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent.png
deleted file mode 100644
index eb8042609d90..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index c57facec96d0..000000000000
--- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.png
deleted file mode 100755
index c03ad203f47b..000000000000
--- a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index bbaab441737b..000000000000
--- a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index fb854ec51296..000000000000
--- a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index 75d184a1f739..000000000000
--- a/packages/SystemUI/res/drawable-land-hdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.png
deleted file mode 100755
index bfe2b4a973c6..000000000000
--- a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index dba004096c84..000000000000
--- a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index 9e0af28efced..000000000000
--- a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index 7c00bd5d1f30..000000000000
--- a/packages/SystemUI/res/drawable-land-xhdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.png
deleted file mode 100755
index 5ed0ee8c74f7..000000000000
--- a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 2b64b8073c59..000000000000
--- a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index 81b44665e078..000000000000
--- a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index 724aa9e19e41..000000000000
--- a/packages/SystemUI/res/drawable-land-xxhdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.png
deleted file mode 100755
index d1811629f417..000000000000
--- a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 151a3c04fff8..000000000000
--- a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index 7ba0d1b1b7d3..000000000000
--- a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index a175ccb5b4f8..000000000000
--- a/packages/SystemUI/res/drawable-land-xxxhdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-land/ic_sysbar_docked.png
deleted file mode 100755
index 236b70afffef..000000000000
--- a/packages/SystemUI/res/drawable-land/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-land/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-land/ic_sysbar_docked_dark.png
deleted file mode 100644
index 3456a9760eb2..000000000000
--- a/packages/SystemUI/res/drawable-land/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back.png
deleted file mode 100644
index 2fcfdde08164..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index 45ce1d4b62b6..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index 6da0c9e6bd5e..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back.png
deleted file mode 100644
index 48708a5099a8..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index 71e89595f35d..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index bb7ae2637fcc..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back.png
deleted file mode 100644
index 74f9256340c3..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index c3aea469d1cf..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-hdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back.png
deleted file mode 100644
index 4de10b6dc5d7..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 470b3e2c21df..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-mdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back.png
deleted file mode 100644
index 965d2f5f4063..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index e7137c68f752..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back.png
deleted file mode 100644
index a123262566a0..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 03dec1566ff9..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back.png
deleted file mode 100644
index 0a95ddda616a..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index e1ca853959ca..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-sw900dp-xxxhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back.png
deleted file mode 100644
index 3d731840a93f..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index 32b9ded52836..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index ed1949c71438..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back.png
deleted file mode 100644
index 786935d5d185..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index 2d62a80a63ba..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index a52e5b10fcf3..000000000000
--- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back.png
deleted file mode 100644
index 34a11df8a587..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 5383215a5aef..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 1c1e78cb0a7c..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 3a22912b86b0..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step.png
deleted file mode 100644
index d888869d2b0f..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step_dark.png
deleted file mode 100644
index dc3b25c0d347..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index d4e5a94fca1b..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index 0e693f7d6e9a..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.png
deleted file mode 100755
index 93d1905d8c48..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index c7e47319bf5d..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home.png
deleted file mode 100644
index 7c25fc510d5b..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index d2949f33c01d..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index 07577999201f..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index 4f07ec1a9797..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu.png
deleted file mode 100644
index 35e7af450332..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index 06e4c26c85ca..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent.png
deleted file mode 100644
index 1ee9cf5f352d..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 1c855c45d409..000000000000
--- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back.png
deleted file mode 100644
index 1e2c75196c42..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 0520c493af27..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index fac2da82faba..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 3dc2b8804447..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked.png
deleted file mode 100644
index 63739b9dec30..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 2ba5d5b150fb..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home.png
deleted file mode 100644
index bb24c8bbe10a..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index 62dc2d9a9eff..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu.png
deleted file mode 100644
index 711fd7a5db48..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index e718b7ad1848..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent.png
deleted file mode 100644
index bbb00a0c986e..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 469800a34e12..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-hdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked.png
deleted file mode 100644
index 43f77c0456c0..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 42863c634ade..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-hdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked.png
deleted file mode 100644
index 872af0933db3..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index d9ec9d5d71b7..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-mdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked.png
deleted file mode 100644
index ea7ac9361471..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 8ee4e43ab78f..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-xhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked.png
deleted file mode 100644
index fe07f814e3d2..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index dfa8a974f50f..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-xxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked.png
deleted file mode 100644
index 4193b218219a..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index d23abc7f4971..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-land-xxxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back.png
deleted file mode 100644
index 56c26383c36c..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 8e56e9cf7fa4..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index c3aa434e945c..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 28a1465efa18..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked.png
deleted file mode 100644
index 41a7209d28f9..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 0fc9677c0301..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home.png
deleted file mode 100644
index faaef603d947..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index 7b81eeea67f8..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu.png
deleted file mode 100644
index c8e40d086072..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index a6483452601e..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent.png
deleted file mode 100644
index 26124850f62e..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 7f7452107d94..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-mdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back.png
deleted file mode 100644
index 3b831a3cd619..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 8c9945518464..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 3c377827f516..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked.png
deleted file mode 100644
index b2baa099aca6..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index b78dc9cb395f..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home.png
deleted file mode 100644
index 37590a5381b6..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index 3a208aa0ea46..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu.png
deleted file mode 100644
index 4940d5c4f78b..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index 625ba45235b3..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent.png
deleted file mode 100644
index 7ad2a29cce6a..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 604397e9728e..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xhdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 274e5df76fb4..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 6fb19aedf5ba..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked.png
deleted file mode 100644
index 49d2c3a3cde1..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index ac1689524020..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home.png
deleted file mode 100644
index 216f2c77dd9f..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index e69a03790bbc..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_ime_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_ime_dark.png
deleted file mode 100644
index 65a43544732b..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu.png
deleted file mode 100644
index a8c2786cb348..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index 8bddcd9e754e..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent.png
deleted file mode 100644
index ca35888dec13..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 38c5959566f3..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxhdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back.png
deleted file mode 100644
index 4d239564a5f5..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index c6d7c98a5e1e..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 74abc313b89c..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 06c52aa43d71..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked.png
deleted file mode 100644
index 89bed92dd17c..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 766099774e52..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home.png
deleted file mode 100644
index 8d4f5f3048e7..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index 0d9ecc2a73e2..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu.png
deleted file mode 100644
index 83e96a2f095c..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index d6bb8b151f0d..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent.png
deleted file mode 100644
index 636c0c15f76b..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 298ef3ac7193..000000000000
--- a/packages/SystemUI/res/drawable-sw900dp-xxxhdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back.png
deleted file mode 100644
index 987aac50d810..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index 371a84d5a85c..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 433e5a74d3f6..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 360ed77cde6a..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step.png
deleted file mode 100644
index ba5b457a0bfa..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step_dark.png
deleted file mode 100644
index a55ea1d5b1ab..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index 407ef28a3f2a..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index 39cfbf2afb48..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.png
deleted file mode 100755
index 73ddde86cda4..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 96cecc97eaa7..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home.png
deleted file mode 100644
index 0e2a14d3b54b..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index 9ff98255ad5a..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index a7fd3a69e98c..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index f2a1255c3570..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu.png
deleted file mode 100644
index 69a018d190e3..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index e505f5ede33d..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent.png
deleted file mode 100644
index f810704c9aa7..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 472c55b125d3..000000000000
--- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back.png
deleted file mode 100644
index be03cbe16ddb..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index c04d650a82bc..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index b6b1615c5fa4..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 0f6d2060d7a9..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step.png
deleted file mode 100644
index 5a7eec6502af..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step_dark.png
deleted file mode 100644
index f7abb54f974f..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index a1f44dc598b2..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index 175a9aefa463..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.png
deleted file mode 100755
index 1e84732f755a..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 58bf920297b4..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home.png
deleted file mode 100644
index f16aa4882dd4..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index f47533ec8762..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index 0fb93ca2a18d..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index 1052940af382..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu.png
deleted file mode 100644
index a37ca5d7daf5..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index f299d975fba6..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent.png
deleted file mode 100644
index 109aeedab42a..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index 84d6dc8de573..000000000000
--- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back.png
deleted file mode 100644
index a059704f9848..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_dark.png
deleted file mode 100644
index d813bc7afb18..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime.png
deleted file mode 100644
index 8f00a64b3603..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_dark.png
deleted file mode 100644
index 30e878283a70..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step.png
deleted file mode 100644
index d13c730d4f7a..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step_dark.png
deleted file mode 100644
index 31c602e8d2d6..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step.png
deleted file mode 100644
index ddbcb07dacfb..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step_dark.png
deleted file mode 100644
index ce91fcbb24b2..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png
deleted file mode 100755
index ee3ffde568bc..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked_dark.png
deleted file mode 100644
index 83fc6628c5fe..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_docked_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home.png
deleted file mode 100644
index 194d39f9f137..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_dark.png
deleted file mode 100644
index 71101a1b12a4..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step.png
deleted file mode 100644
index c606a58c247e..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step_dark.png
deleted file mode 100644
index c2a5fef89799..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_quick_step_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_menu_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_menu_dark.png
deleted file mode 100644
index 4a477addb866..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_menu_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent.png
deleted file mode 100644
index 046d850f3e0c..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_dark.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_dark.png
deleted file mode 100644
index bc24c00db788..000000000000
--- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_dark.png
+++ /dev/null
Binary files differ
diff --git a/packages/SystemUI/res/drawable/ic_qs_auto_rotate.xml b/packages/SystemUI/res/drawable/ic_qs_auto_rotate.xml
index fba45d17cc5b..9c24c2ce9f83 100644
--- a/packages/SystemUI/res/drawable/ic_qs_auto_rotate.xml
+++ b/packages/SystemUI/res/drawable/ic_qs_auto_rotate.xml
@@ -18,44 +18,9 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:height="48dp"
android:width="48dp"
- android:viewportHeight="48"
- android:viewportWidth="48">
- <group
- android:name="device"
- android:translateX="24"
- android:translateY="24" >
- <group
- android:name="device_pivot"
- android:translateX="-24.15"
- android:translateY="-24.25" >
- <group
- android:name="device_0"
- android:translateX="24.14999"
- android:translateY="24.25" >
- <path
- android:name="device_merged"
- android:pathData="M -3.5,-20.5 c -1.19999694824,-1.19999694824 -3.10000610352,-1.19999694824 -4.19999694824,0.0 c 0.0,0.0 -12.8000030518,12.6999969482 -12.8000030518,12.6999969482 c -1.19999694824,1.19999694824 -1.19999694824,3.10000610352 0.0,4.19999694824 c 0.0,0.0 24.0,24.0000152588 24.0,24.0000152588 c 1.19999694824,1.19999694824 3.10000610352,1.19999694824 4.19999694824,0.0 c 0.0,0.0 12.6999969482,-12.700012207 12.6999969482,-12.700012207 c 1.20001220703,-1.19999694824 1.20001220703,-3.09999084473 0.0,-4.19999694824 c 0.0,0.0 -23.8999938965,-24.0 -23.8999938965,-24.0 Z M 2.84999084473,15.5500183105 c 0.0,0.0 -18.6000061035,-18.5000457764 -18.6000061035,-18.5000457764 c 0.0,0.0 12.5999908447,-12.8000030518 12.5999908447,-12.8000030518 c 0.0,0.0 18.6000213623,18.5000457764 18.6000213623,18.5000457764 c 0.0,0.0 -12.6000061035,12.8000030518 -12.6000061035,12.8000030518 Z"
- android:fillColor="#FFFFFFFF" />
- </group>
- </group>
- </group>
- <group
- android:name="arrows"
- android:translateX="24"
- android:translateY="24" >
- <group
- android:name="arrows_pivot"
- android:translateX="-24.0798"
- android:translateY="-24.23" >
- <group
- android:name="arrows_0"
- android:translateX="12.2505"
- android:translateY="37.2145" >
- <path
- android:name="bottom_merged"
- android:pathData="M 20.7395019531,-31.9844970703 c 6.23999023438,2.83999633789 10.6999969482,8.7200012207 11.8399963379,15.7799987793 c 0.119995117188,0.699996948242 0.740005493164,1.2200012207 1.46099853516,1.2200012207 c 0.919998168945,0.0 1.6190032959,-0.84001159668 1.47900390625,-1.74000549316 c -1.75900268555,-10.3800048828 -9.75900268555,-19.1199951172 -22.5800018311,-20.1600036621 c -0.919998168945,-0.0800018310547 -1.43899536133,1.04000854492 -0.800003051758,1.70001220703 c 0.0,0.0 5.12100219727,5.11999511719 5.12100219727,5.11999511719 c 0.378997802734,0.380004882812 0.97900390625,0.380004882812 1.37899780273,0.020004272461 c 0.0,0.0 2.10000610352,-1.94000244141 2.10000610352,-1.94000244141 Z M 2.73950195312,6.01550292969 c -6.26000976562,-2.83999633789 -10.7200012207,-8.76000976562 -11.8399963379,-15.8600006104 c -0.118011474609,-0.667007446289 -0.702011108398,-1.15100097656 -1.38000488281,-1.13999938965 c -0.860000610352,0.0 -1.52000427246,0.759994506836 -1.38000488281,1.61999511719 c 1.54000854492,10.4000091553 9.5,19.2200012207 22.4199981689,20.2799987793 c 0.920013427734,0.0800018310547 1.44100952148,-1.03999328613 0.800003051758,-1.69999694824 c 0.0,0.0 -5.11999511719,-5.11999511719 -5.11999511719,-5.11999511719 c -0.380004882812,-0.376007080078 -0.988998413086,-0.385009765625 -1.38000488281,-0.0200042724609 c 0.0,0.0 -2.11999511719,1.94000244141 -2.11999511719,1.94000244141 Z"
- android:fillColor="#FFFFFFFF" />
- </group>
- </group>
- </group>
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M12.72,23H11C5.49,23 1,18.51 1,13h2c0,3.78 2.63,6.95 6.15,7.79L8.13,19L9.87,18L12.72,23zM13,1h-1.72l2.85,5L15.87,5l-1.02,-1.79C18.37,4.05 21,7.22 21,11h2C23,5.49 18.51,1 13,1zM10.23,6L18,13.76L13.77,18L6,10.24L10.23,6C10.23,6 10.23,6 10.23,6M10.23,4C9.72,4 9.21,4.2 8.82,4.59L4.59,8.82c-0.78,0.78 -0.78,2.04 0,2.82l7.77,7.77c0.39,0.39 0.9,0.59 1.41,0.59c0.51,0 1.02,-0.2 1.41,-0.59l4.24,-4.24c0.78,-0.78 0.78,-2.04 0,-2.82l-7.77,-7.77C11.26,4.2 10.75,4 10.23,4L10.23,4z"/>
</vector>
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_accessibility_button.xml b/packages/SystemUI/res/drawable/ic_sysbar_accessibility_button.xml
index 1603ebab1f27..6fbc404d9905 100644
--- a/packages/SystemUI/res/drawable/ic_sysbar_accessibility_button.xml
+++ b/packages/SystemUI/res/drawable/ic_sysbar_accessibility_button.xml
@@ -14,12 +14,11 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
<path
android:pathData="M20.5,6c-2.61,0.7 -5.67,1 -8.5,1S6.11,6.7 3.5,6L3,8c1.86,0.5 4,0.83 6,1v13h2v-6h2v6h2V9c2,-0.17 4.14,-0.5 6,-1L20.5,6zM12,6c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2s-2,0.9 -2,2S10.9,6 12,6z"
android:fillColor="?attr/singleToneColor"/>
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_back.xml b/packages/SystemUI/res/drawable/ic_sysbar_back.xml
new file mode 100644
index 000000000000..144884349c52
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_back.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
+
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M6.49,14.86c-0.66-0.39-0.66-1.34,0-1.73l6.02-3.53l5.89-3.46C19.11,5.73,20,6.26,20,7.1V14v6.9 c0,0.84-0.89,1.37-1.6,0.95l-5.89-3.46L6.49,14.86z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_back_quick_step.xml b/packages/SystemUI/res/drawable/ic_sysbar_back_quick_step.xml
new file mode 100644
index 000000000000..b02a252bf01d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_back_quick_step.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
+
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M17.25,10.15V14v3.85L14,15.95L10.69,14L14,12.05L17.25,10.15 M18.16,7.71c-0.14,0-0.28,0.04-0.42,0.12 l-4.63,2.72l-4.73,2.78c-0.52,0.3-0.52,1.05,0,1.36l4.73,2.78l4.63,2.72c0.13,0.08,0.28,0.12,0.42,0.12c0.44,0,0.84-0.36,0.84-0.86 V14V8.58C19,8.08,18.6,7.71,18.16,7.71L18.16,7.71z" />
+ <path
+ android:pathData="M 0 0 H 28 V 28 H 0 V 0 Z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_docked.xml b/packages/SystemUI/res/drawable/ic_sysbar_docked.xml
new file mode 100644
index 000000000000..693835f5364d
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_docked.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
+
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M20.5,13h-13C6.67,13,6,12.33,6,11.5v-4C6,6.67,6.67,6,7.5,6h13C21.33,6,22,6.67,22,7.5v4 C22,12.33,21.33,13,20.5,13z" />
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M20.5,22h-13C6.67,22,6,21.33,6,20.5v-4C6,15.67,6.67,15,7.5,15h13c0.83,0,1.5,0.67,1.5,1.5v4 C22,21.33,21.33,22,20.5,22z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_home.xml b/packages/SystemUI/res/drawable/ic_sysbar_home.xml
new file mode 100644
index 000000000000..a960af7ca856
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_home.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval"
+ android:useLevel="false">
+
+ <solid android:color="?attr/singleToneColor" />
+
+ <size
+ android:height="14dp"
+ android:width="14dp" />
+</shape>
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_home_quick_step.xml b/packages/SystemUI/res/drawable/ic_sysbar_home_quick_step.xml
new file mode 100644
index 000000000000..ba1236e1bada
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_home_quick_step.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
+
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M23,19H5c-2.76,0-5-2.24-5-5l0,0c0-2.76,2.24-5,5-5h18c2.76,0,5,2.24,5,5l0,0C28,16.76,25.76,19,23,19z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_menu.xml b/packages/SystemUI/res/drawable/ic_sysbar_menu.xml
new file mode 100644
index 000000000000..5cc17911f11f
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_menu.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
+
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M14,9.5c1.24,0,2.25-1.01,2.25-2.25S15.24,5,14,5s-2.25,1.01-2.25,2.25S12.76,9.5,14,9.5z M14,11.75 c-1.24,0-2.25,1.01-2.25,2.25s1.01,2.25,2.25,2.25s2.25-1.01,2.25-2.25S15.24,11.75,14,11.75z M14,18.5 c-1.24,0-2.25,1.01-2.25,2.25S12.76,23,14,23s2.25-1.01,2.25-2.25S15.24,18.5,14,18.5z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_recent.xml b/packages/SystemUI/res/drawable/ic_sysbar_recent.xml
new file mode 100644
index 000000000000..6b038d179568
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_sysbar_recent.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="28dp"
+ android:height="28dp"
+ android:viewportWidth="28"
+ android:viewportHeight="28">
+
+ <path
+ android:fillColor="?attr/singleToneColor"
+ android:pathData="M19.9,21.5H8.1c-0.88,0-1.6-0.72-1.6-1.6V8.1c0-0.88,0.72-1.6,1.6-1.6h11.8c0.88,0,1.6,0.72,1.6,1.6v11.8 C21.5,20.78,20.78,21.5,19.9,21.5z" />
+</vector> \ No newline at end of file
diff --git a/packages/SystemUI/res/layout/back.xml b/packages/SystemUI/res/layout/back.xml
index 6843db9313d4..4e8726b3a634 100644
--- a/packages/SystemUI/res/layout/back.xml
+++ b/packages/SystemUI/res/layout/back.xml
@@ -22,10 +22,8 @@
android:layout_height="match_parent"
android:layout_weight="0"
systemui:keyCode="4"
- android:scaleType="fitCenter"
+ android:scaleType="center"
android:contentDescription="@string/accessibility_back"
- android:paddingTop="@dimen/home_padding"
- android:paddingBottom="@dimen/home_padding"
android:paddingStart="@dimen/navigation_key_padding"
android:paddingEnd="@dimen/navigation_key_padding"
/>
diff --git a/packages/SystemUI/res/layout/car_fullscreen_user_pod.xml b/packages/SystemUI/res/layout/car_fullscreen_user_pod.xml
index f34811eb53f8..8379dbb4826d 100644
--- a/packages/SystemUI/res/layout/car_fullscreen_user_pod.xml
+++ b/packages/SystemUI/res/layout/car_fullscreen_user_pod.xml
@@ -23,15 +23,13 @@
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
- android:gravity="center"
- >
+ android:gravity="center">
<ImageView android:id="@+id/user_avatar"
android:layout_width="@dimen/car_user_switcher_image_avatar_size"
android:layout_height="@dimen/car_user_switcher_image_avatar_size"
android:background="@drawable/car_button_ripple_background_inverse"
- android:gravity="center"
- />
+ android:gravity="center"/>
<TextView android:id="@+id/user_name"
android:layout_width="match_parent"
diff --git a/packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml b/packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml
index bf5f188b25fa..2e1487c21024 100644
--- a/packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml
+++ b/packages/SystemUI/res/layout/car_fullscreen_user_switcher.xml
@@ -37,6 +37,7 @@
android:id="@+id/user_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/car_user_switcher_margin_top"
app:verticallyCenterListContent="true"
app:dayNightStyle="force_night"
app:showPagedListViewDivider="false"
diff --git a/packages/SystemUI/res/layout/home.xml b/packages/SystemUI/res/layout/home.xml
index 7b67b79f9432..95863272b9bf 100644
--- a/packages/SystemUI/res/layout/home.xml
+++ b/packages/SystemUI/res/layout/home.xml
@@ -21,10 +21,8 @@
android:layout_height="match_parent"
android:layout_weight="0"
systemui:keyCode="3"
- android:scaleType="fitCenter"
+ android:scaleType="center"
android:contentDescription="@string/accessibility_home"
- android:paddingTop="@dimen/home_padding"
- android:paddingBottom="@dimen/home_padding"
android:paddingStart="@dimen/navigation_key_padding"
android:paddingEnd="@dimen/navigation_key_padding"
/>
diff --git a/packages/SystemUI/res/layout/recent_apps.xml b/packages/SystemUI/res/layout/recent_apps.xml
index 6b08cea7705f..870bcf7547a7 100644
--- a/packages/SystemUI/res/layout/recent_apps.xml
+++ b/packages/SystemUI/res/layout/recent_apps.xml
@@ -21,10 +21,8 @@
android:layout_width="@dimen/navigation_key_width"
android:layout_height="match_parent"
android:layout_weight="0"
- android:scaleType="fitCenter"
+ android:scaleType="center"
android:contentDescription="@string/accessibility_recent"
- android:paddingTop="@dimen/home_padding"
- android:paddingBottom="@dimen/home_padding"
android:paddingStart="@dimen/navigation_key_padding"
android:paddingEnd="@dimen/navigation_key_padding"
/>
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 923edc8f1e92..2dc6525ffdd9 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -91,7 +91,4 @@
<!-- The offsets the tasks animate from when recents is launched while docking -->
<dimen name="recents_task_stack_animation_launched_while_docking_offset">192dp</dimen>
-
- <!-- Home button padding for sizing -->
- <dimen name="home_padding">0dp</dimen>
</resources>
diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml
index 3472477c4ce5..d8607ccf0f37 100644
--- a/packages/SystemUI/res/values/colors.xml
+++ b/packages/SystemUI/res/values/colors.xml
@@ -104,6 +104,9 @@
<!-- The color of the navigation bar icons. Need to be in sync with ic_sysbar_* -->
<color name="navigation_bar_icon_color">#E5FFFFFF</color>
+ <!-- The shadow color for light navigation bar icons. -->
+ <color name="nav_key_button_shadow_color">#30000000</color>
+
<!-- Shadow color for the first pixels around the fake shadow for recents. -->
<color name="fake_shadow_start_color">#44000000</color>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 0c7c60010818..0024fe4979ed 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -941,8 +941,10 @@
<dimen name="nav_quick_scrub_track_edge_padding">42dp</dimen>
<dimen name="nav_quick_scrub_track_thickness">2dp</dimen>
- <!-- Home button padding for sizing -->
- <dimen name="home_padding">16dp</dimen>
+ <!-- Navigation bar shadow params. -->
+ <dimen name="nav_key_button_shadow_offset_x">0dp</dimen>
+ <dimen name="nav_key_button_shadow_offset_y">1dp</dimen>
+ <dimen name="nav_key_button_shadow_radius">0.5dp</dimen>
<!-- Smart reply button. Total height 48dp, visible height 32dp. -->
<dimen name="smart_reply_button_spacing">8dp</dimen>
diff --git a/packages/SystemUI/res/values/dimens_car.xml b/packages/SystemUI/res/values/dimens_car.xml
index 8e17b52e6180..afbe17632346 100644
--- a/packages/SystemUI/res/values/dimens_car.xml
+++ b/packages/SystemUI/res/values/dimens_car.xml
@@ -21,6 +21,7 @@
<dimen name="car_user_switcher_image_avatar_size">@dimen/car_large_avatar_size</dimen>
<dimen name="car_user_switcher_vertical_spacing_between_users">@dimen/car_padding_5</dimen>
<dimen name="car_user_switcher_vertical_spacing_between_name_and_avatar">@dimen/car_padding_4</dimen>
+ <dimen name="car_user_switcher_margin_top">@dimen/car_padding_4</dimen>
<dimen name="car_navigation_button_width">64dp</dimen>
<dimen name="car_navigation_bar_width">760dp</dimen>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
index 97cf1e51e1df..52e1c167ffc8 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java
@@ -84,10 +84,9 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
private LiveData<Slice> mLiveData;
private int mIconSize;
/**
- * Listener called whenever the view contents change.
- * Boolean will be true when the change happens animated.
+ * Runnable called whenever the view contents change.
*/
- private Consumer<Boolean> mContentChangeListener;
+ private Runnable mContentChangeListener;
private boolean mHasHeader;
private Slice mSlice;
private boolean mPulsing;
@@ -150,7 +149,9 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
if (mPulsing || mSlice == null) {
mTitle.setVisibility(GONE);
mRow.setVisibility(GONE);
- mContentChangeListener.accept(getLayoutTransition() != null);
+ if (mContentChangeListener != null) {
+ mContentChangeListener.run();
+ }
return;
}
@@ -223,7 +224,7 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
}
if (mContentChangeListener != null) {
- mContentChangeListener.accept(getLayoutTransition() != null);
+ mContentChangeListener.run();
}
}
@@ -310,11 +311,10 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe
}
/**
- * Listener that gets invoked every time the title or the row visibility changes.
- * Parameter will be {@code true} whenever the change happens animated.
+ * Runnable that gets invoked every time the title or the row visibility changes.
* @param contentChangeListener The listener.
*/
- public void setContentChangeListener(Consumer<Boolean> contentChangeListener) {
+ public void setContentChangeListener(Runnable contentChangeListener) {
mContentChangeListener = contentChangeListener;
}
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 758a1b44b927..976b45424502 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -76,7 +76,6 @@ public class KeyguardStatusView extends GridLayout implements
private float mDarkAmount = 0;
private int mTextColor;
private float mWidgetPadding;
- private boolean mAnimateLayout;
private int mLastLayoutHeight;
private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
@@ -185,7 +184,7 @@ public class KeyguardStatusView extends GridLayout implements
mClockView.addOnLayoutChangeListener(this);
mClockSeparator.addOnLayoutChangeListener(this);
mKeyguardSlice.setContentChangeListener(this::onSliceContentChanged);
- onSliceContentChanged(false /* animated */);
+ onSliceContentChanged();
boolean shouldMarquee = KeyguardUpdateMonitor.getInstance(mContext).isDeviceInteractive();
setEnableMarquee(shouldMarquee);
@@ -199,8 +198,7 @@ public class KeyguardStatusView extends GridLayout implements
mClockView.setElegantTextHeight(false);
}
- private void onSliceContentChanged(boolean animated) {
- mAnimateLayout = animated;
+ private void onSliceContentChanged() {
boolean smallClock = mKeyguardSlice.hasHeader() || mPulsing;
float clockScale = smallClock ? mSmallClockScale : 1;
@@ -228,10 +226,12 @@ public class KeyguardStatusView extends GridLayout implements
long duration = KeyguardSliceView.DEFAULT_ANIM_DURATION;
long delay = smallClock ? 0 : duration / 4;
+ boolean shouldAnimate = mKeyguardSlice.getLayoutTransition() != null
+ && mKeyguardSlice.getLayoutTransition().isRunning();
if (view == mClockView) {
float clockScale = smallClock ? mSmallClockScale : 1;
Paint.Style style = smallClock ? Paint.Style.FILL_AND_STROKE : Paint.Style.FILL;
- if (mAnimateLayout) {
+ if (shouldAnimate) {
mClockView.setY(oldTop + heightOffset);
mClockView.animate().cancel();
mClockView.animate()
@@ -257,7 +257,7 @@ public class KeyguardStatusView extends GridLayout implements
} else if (view == mClockSeparator) {
boolean hasSeparator = hasHeader && !mPulsing;
float alpha = hasSeparator ? 1 : 0;
- if (mAnimateLayout) {
+ if (shouldAnimate) {
boolean isAwake = mDarkAmount != 0;
mClockSeparator.setY(oldTop + heightOffset);
mClockSeparator.animate().cancel();
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java
index 89f86c539b74..23e3f25f6f5a 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/BatterySaverTile.java
@@ -110,7 +110,8 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
@Override
public Drawable getDrawable(Context context) {
- BatterySaverDrawable b = new BatterySaverDrawable(context, 0);
+ BatterySaverDrawable b =
+ new BatterySaverDrawable(context, QSTileImpl.getColorForState(context, mState));
b.mState = mState;
final int pad = context.getResources()
.getDimensionPixelSize(R.dimen.qs_tile_divider_height);
@@ -130,11 +131,16 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
setPowerSave(true);
setCharging(false);
setPowerSaveAsColorError(false);
+ mPowerSaveAsColorError = true;
+ mFramePaint.setColor(0);
+ mPowersavePaint.setColor(frameColor);
+ mFramePaint.setStrokeWidth(mPowersavePaint.getStrokeWidth());
+ mPlusPaint.setColor(frameColor);
}
@Override
protected int batteryColorForLevel(int level) {
- return QSTileImpl.getColorForState(mContext, mState);
+ return 0;
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
index 167df8c614a6..481d54f3bbb6 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java
@@ -28,6 +28,7 @@ import android.graphics.drawable.ColorDrawable;
import android.os.Binder;
import android.os.RemoteException;
import android.util.DisplayMetrics;
+import android.view.ContextThemeWrapper;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
@@ -40,6 +41,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.android.settingslib.Utils;
import com.android.systemui.R;
import com.android.systemui.SysUiServiceProvider;
import com.android.systemui.statusbar.phone.NavigationBarView;
@@ -259,10 +261,16 @@ public class ScreenPinningRequest implements View.OnClickListener {
}
if (navigationBarView != null) {
+ int dualToneDarkTheme = Utils.getThemeAttr(getContext(), R.attr.darkIconTheme);
+ int dualToneLightTheme = Utils.getThemeAttr(getContext(), R.attr.lightIconTheme);
+ Context lightContext = new ContextThemeWrapper(getContext(), dualToneLightTheme);
+ Context darkContext = new ContextThemeWrapper(getContext(), dualToneDarkTheme);
((ImageView) mLayout.findViewById(R.id.screen_pinning_back_icon))
- .setImageDrawable(navigationBarView.getBackDrawable(mContext));
+ .setImageDrawable(navigationBarView.getBackDrawable(lightContext,
+ darkContext));
((ImageView) mLayout.findViewById(R.id.screen_pinning_home_icon))
- .setImageDrawable(navigationBarView.getHomeDrawable(mContext));
+ .setImageDrawable(navigationBarView.getHomeDrawable(lightContext,
+ darkContext));
}
((TextView) mLayout.findViewById(R.id.screen_pinning_description))
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
index 364ed80638de..6a387971500e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java
@@ -515,6 +515,13 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
}
}
+ @Override
+ public void setDistanceToTopRoundness(float distanceToTopRoundness) {
+ super.setDistanceToTopRoundness(distanceToTopRoundness);
+ mBackgroundNormal.setDistanceToTopRoundness(distanceToTopRoundness);
+ mBackgroundDimmed.setDistanceToTopRoundness(distanceToTopRoundness);
+ }
+
/**
* Set an override tint color that is used for the background.
*
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index d03da8f7c9aa..f30fa6bd4b93 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -2795,6 +2795,24 @@ public class ExpandableNotificationRow extends ActivatableNotificationView
}
@Override
+ public boolean topAmountNeedsClipping() {
+ if (isGroupExpanded()) {
+ return true;
+ }
+ if (isGroupExpansionChanging()) {
+ return true;
+ }
+ if (getShowingLayout().shouldClipToRounding(true /* topRounded */,
+ false /* bottomRounded */)) {
+ return true;
+ }
+ if (mGuts != null && mGuts.getAlpha() != 0.0f) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
protected boolean childNeedsClipping(View child) {
if (child instanceof NotificationContentView) {
NotificationContentView contentView = (NotificationContentView) child;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java
index 67268c00a4ce..edfa61b4ddc2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java
@@ -76,7 +76,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
* it is moved. Otherwise, the translation is set on the {@code ExpandableOutlineView} itself.
*/
protected boolean mShouldTranslateContents;
- private boolean mClipRoundedToClipTopAmount;
+ private boolean mTopAmountRounded;
private float mDistanceToTopRoundness = -1;
private float mExtraWidthForClipping;
private int mMinimumHeightForClipping = 0;
@@ -85,7 +85,8 @@ public abstract class ExpandableOutlineView extends ExpandableView {
@Override
public void getOutline(View view, Outline outline) {
if (!mCustomOutline && mCurrentTopRoundness == 0.0f
- && mCurrentBottomRoundness == 0.0f && !mAlwaysRoundBothCorners) {
+ && mCurrentBottomRoundness == 0.0f && !mAlwaysRoundBothCorners
+ && !mTopAmountRounded) {
int translation = mShouldTranslateContents ? (int) getTranslation() : 0;
int left = Math.max(translation, 0);
int top = mClipTopAmount + mBackgroundTop;
@@ -145,9 +146,9 @@ public abstract class ExpandableOutlineView extends ExpandableView {
return EMPTY_PATH;
}
float topRoundness = mAlwaysRoundBothCorners
- ? mOutlineRadius : mCurrentTopRoundness * mOutlineRadius;
+ ? mOutlineRadius : getCurrentBackgroundRadiusTop();
float bottomRoundness = mAlwaysRoundBothCorners
- ? mOutlineRadius : mCurrentBottomRoundness * mOutlineRadius;
+ ? mOutlineRadius : getCurrentBackgroundRadiusBottom();
if (topRoundness + bottomRoundness > height) {
float overShoot = topRoundness + bottomRoundness - height;
topRoundness -= overShoot * mCurrentTopRoundness
@@ -203,7 +204,7 @@ public abstract class ExpandableOutlineView extends ExpandableView {
protected boolean drawChild(Canvas canvas, View child, long drawingTime) {
canvas.save();
Path intersectPath = null;
- if (mClipRoundedToClipTopAmount) {
+ if (mTopAmountRounded && topAmountNeedsClipping()) {
int left = (int) (- mExtraWidthForClipping / 2.0f);
int top = (int) (mClipTopAmount - mDistanceToTopRoundness);
int right = getWidth() + (int) (mExtraWidthForClipping + left);
@@ -248,9 +249,9 @@ public abstract class ExpandableOutlineView extends ExpandableView {
public void setDistanceToTopRoundness(float distanceToTopRoundness) {
super.setDistanceToTopRoundness(distanceToTopRoundness);
if (distanceToTopRoundness != mDistanceToTopRoundness) {
- mClipRoundedToClipTopAmount = distanceToTopRoundness >= 0;
+ mTopAmountRounded = distanceToTopRoundness >= 0;
mDistanceToTopRoundness = distanceToTopRoundness;
- invalidate();
+ applyRoundness();
}
}
@@ -258,9 +259,12 @@ public abstract class ExpandableOutlineView extends ExpandableView {
return false;
}
+ public boolean topAmountNeedsClipping() {
+ return true;
+ }
+
protected boolean isClippingNeeded() {
return mAlwaysRoundBothCorners || mCustomOutline || getTranslation() != 0 ;
-
}
private void initDimens() {
@@ -296,6 +300,11 @@ public abstract class ExpandableOutlineView extends ExpandableView {
}
public float getCurrentBackgroundRadiusTop() {
+ // If this view is top amount notification view, it should always has round corners on top.
+ // It will be applied with applyRoundness()
+ if (mTopAmountRounded) {
+ return mOutlineRadius;
+ }
return mCurrentTopRoundness * mOutlineRadius;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java
index 0ff4dde580b7..969e9d97a1f0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java
@@ -53,6 +53,9 @@ public class NotificationBackgroundView extends View {
private int mDrawableAlpha = 255;
private boolean mIsPressedAllowed;
+ private boolean mTopAmountRounded;
+ private float mDistanceToTopRoundness;
+
public NotificationBackgroundView(Context context, AttributeSet attrs) {
super(context, attrs);
mDontModifyCorners = getResources().getBoolean(
@@ -74,6 +77,7 @@ public class NotificationBackgroundView extends View {
private void draw(Canvas canvas, Drawable drawable) {
if (drawable != null) {
+ int top = mBackgroundTop;
int bottom = mActualHeight;
if (mBottomIsRounded && mBottomAmountClips && !mExpandAnimationRunning) {
bottom -= mClipBottomAmount;
@@ -84,7 +88,14 @@ public class NotificationBackgroundView extends View {
left = (int) ((getWidth() - mActualWidth) / 2.0f);
right = (int) (left + mActualWidth);
}
- drawable.setBounds(left, mBackgroundTop, right, bottom);
+ if (mTopAmountRounded) {
+ int clipTop = (int) (mClipTopAmount - mDistanceToTopRoundness);
+ top += clipTop;
+ if (clipTop >= 0) {
+ bottom += clipTop;
+ }
+ }
+ drawable.setBounds(left, top, right, bottom);
drawable.draw(canvas);
}
}
@@ -165,6 +176,14 @@ public class NotificationBackgroundView extends View {
invalidate();
}
+ public void setDistanceToTopRoundness(float distanceToTopRoundness) {
+ if (distanceToTopRoundness != mDistanceToTopRoundness) {
+ mTopAmountRounded = distanceToTopRoundness >= 0;
+ mDistanceToTopRoundness = distanceToTopRoundness;
+ invalidate();
+ }
+ }
+
@Override
public boolean hasOverlappingRendering() {
@@ -198,6 +217,9 @@ public class NotificationBackgroundView extends View {
}
public void setRoundness(float topRoundness, float bottomRoundNess) {
+ if (topRoundness == mCornerRadii[0] && bottomRoundNess == mCornerRadii[4]) {
+ return;
+ }
mBottomIsRounded = bottomRoundNess != 0.0f;
mCornerRadii[0] = topRoundness;
mCornerRadii[1] = topRoundness;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java b/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
index aaf1989d162e..a49d507aa21a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/car/UserGridRecyclerView.java
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.car;
+import static android.content.DialogInterface.BUTTON_NEGATIVE;
import static android.content.DialogInterface.BUTTON_POSITIVE;
import android.app.AlertDialog;
@@ -27,7 +28,6 @@ import android.content.pm.UserInfo;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.os.AsyncTask;
-import android.os.UserHandle;
import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
import android.support.v7.widget.RecyclerView;
@@ -167,6 +167,9 @@ public class UserGridRecyclerView extends PagedListView implements
private AlertDialog mDialog;
// View that holds the add user button. Used to enable/disable the view
private View mAddUserView;
+ // User record for the add user. Need to call notifyUserSelected only if the user
+ // confirms adding a user
+ private UserRecord mAddUserRecord;
public UserAdapter(Context context, List<UserRecord> users) {
mRes = context.getResources();
@@ -201,18 +204,16 @@ public class UserGridRecyclerView extends PagedListView implements
circleIcon.setCircular(true);
holder.mUserAvatarImageView.setImageDrawable(circleIcon);
holder.mUserNameTextView.setText(userRecord.mInfo.name);
+
holder.mView.setOnClickListener(v -> {
if (userRecord == null) {
return;
}
- // Notify the listener which user was selected
- if (mUserSelectionListener != null) {
- mUserSelectionListener.onUserSelected(userRecord);
- }
// If the user selects Guest, start the guest session.
if (userRecord.mIsStartGuestSession) {
+ notifyUserSelected(userRecord);
mUserManagerHelper.startNewGuestSession(mGuestName);
return;
}
@@ -228,6 +229,7 @@ public class UserGridRecyclerView extends PagedListView implements
.concat(System.getProperty("line.separator"))
.concat(mRes.getString(R.string.user_add_user_message_update));
+ mAddUserRecord = userRecord;
mDialog = new Builder(mContext, R.style.Theme_Car_Dark_Dialog_Alert)
.setTitle(R.string.user_add_user_title)
.setMessage(message)
@@ -240,11 +242,19 @@ public class UserGridRecyclerView extends PagedListView implements
return;
}
// If the user doesn't want to be a guest or add a user, switch to the user selected
+ notifyUserSelected(userRecord);
mUserManagerHelper.switchToUser(userRecord.mInfo);
});
}
+ private void notifyUserSelected(UserRecord userRecord) {
+ // Notify the listener which user was selected
+ if (mUserSelectionListener != null) {
+ mUserSelectionListener.onUserSelected(userRecord);
+ }
+ }
+
private Bitmap getUserRecordIcon(UserRecord userRecord) {
if (userRecord.mIsStartGuestSession) {
return mUserManagerHelper.getGuestDefaultIcon();
@@ -260,12 +270,14 @@ public class UserGridRecyclerView extends PagedListView implements
@Override
public void onClick(DialogInterface dialog, int which) {
- // Enable the add button
- if (mAddUserView != null) {
- mAddUserView.setEnabled(true);
- }
if (which == BUTTON_POSITIVE) {
+ notifyUserSelected(mAddUserRecord);
new AddNewUserTask().execute(mNewUserName);
+ } else if (which == BUTTON_NEGATIVE) {
+ // Enable the add button only if cancel
+ if (mAddUserView != null) {
+ mAddUserView.setEnabled(true);
+ }
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
index 98672b238c4e..a907bdd32521 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java
@@ -39,7 +39,6 @@ import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.os.RemoteException;
import android.os.SystemProperties;
import android.support.annotation.ColorInt;
import android.util.AttributeSet;
@@ -119,7 +118,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
private Rect mRotationButtonBounds = new Rect();
private int[] mTmpPosition = new int[2];
- private KeyButtonDrawable mBackIcon, mBackLandIcon, mBackAltIcon, mBackAltLandIcon;
+ private KeyButtonDrawable mBackIcon;
private KeyButtonDrawable mBackCarModeIcon, mBackLandCarModeIcon;
private KeyButtonDrawable mBackAltCarModeIcon, mBackAltLandCarModeIcon;
private KeyButtonDrawable mHomeDefaultIcon, mHomeCarModeIcon;
@@ -453,6 +452,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
&& ((mOverviewProxyService.getInteractionFlags() & FLAG_DISABLE_QUICK_SCRUB) == 0);
}
+ // TODO(b/80003212): change car mode icons to vector icons.
private void updateCarModeIcons(Context ctx) {
mBackCarModeIcon = getDrawable(ctx,
R.drawable.ic_sysbar_back_carmode, R.drawable.ic_sysbar_back_carmode);
@@ -469,33 +469,27 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
}
private void updateIcons(Context ctx, Configuration oldConfig, Configuration newConfig) {
+ int dualToneDarkTheme = Utils.getThemeAttr(ctx, R.attr.darkIconTheme);
+ int dualToneLightTheme = Utils.getThemeAttr(ctx, R.attr.lightIconTheme);
+ Context lightContext = new ContextThemeWrapper(ctx, dualToneLightTheme);
+ Context darkContext = new ContextThemeWrapper(ctx, dualToneDarkTheme);
+
if (oldConfig.orientation != newConfig.orientation
|| oldConfig.densityDpi != newConfig.densityDpi) {
- mDockedIcon = getDrawable(ctx,
- R.drawable.ic_sysbar_docked, R.drawable.ic_sysbar_docked_dark);
- mHomeDefaultIcon = getHomeDrawable(ctx);
+ mDockedIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_docked);
+ mHomeDefaultIcon = getHomeDrawable(lightContext, darkContext);
}
if (oldConfig.densityDpi != newConfig.densityDpi
|| oldConfig.getLayoutDirection() != newConfig.getLayoutDirection()) {
- mBackIcon = getBackDrawable(ctx);
- mBackLandIcon = mBackIcon;
- mBackAltIcon = getBackImeDrawable(ctx);
- mBackAltLandIcon = mBackAltIcon;
- mRecentIcon = getDrawable(ctx,
- R.drawable.ic_sysbar_recent, R.drawable.ic_sysbar_recent_dark);
- mMenuIcon = getDrawable(ctx, R.drawable.ic_sysbar_menu, R.drawable.ic_sysbar_menu_dark);
-
- int dualToneDarkTheme = Utils.getThemeAttr(ctx, R.attr.darkIconTheme);
- int dualToneLightTheme = Utils.getThemeAttr(ctx, R.attr.lightIconTheme);
- Context darkContext = new ContextThemeWrapper(ctx, dualToneDarkTheme);
- Context lightContext = new ContextThemeWrapper(ctx, dualToneLightTheme);
-
- mAccessibilityIcon = getDrawable(darkContext, lightContext,
- R.drawable.ic_sysbar_accessibility_button,
- R.drawable.ic_sysbar_accessibility_button);
-
- mImeIcon = getDrawable(darkContext, lightContext,
- R.drawable.ic_ime_switcher_default, R.drawable.ic_ime_switcher_default);
+ mBackIcon = getBackDrawable(lightContext, darkContext);
+ mRecentIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_recent);
+ mMenuIcon = getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_menu);
+
+ mAccessibilityIcon = getDrawable(lightContext, darkContext,
+ R.drawable.ic_sysbar_accessibility_button, false /* hasShadow */);
+
+ mImeIcon = getDrawable(lightContext, darkContext, R.drawable.ic_ime_switcher_default,
+ false /* hasShadow */);
updateRotateSuggestionButtonStyle(mRotateBtnStyle, false);
@@ -505,42 +499,58 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
}
}
- public KeyButtonDrawable getBackDrawable(Context ctx) {
- return chooseNavigationIconDrawable(ctx, R.drawable.ic_sysbar_back,
- R.drawable.ic_sysbar_back_dark, R.drawable.ic_sysbar_back_quick_step,
- R.drawable.ic_sysbar_back_quick_step_dark);
+ public KeyButtonDrawable getBackDrawable(Context lightContext, Context darkContext) {
+ KeyButtonDrawable drawable = chooseNavigationIconDrawable(lightContext, darkContext,
+ R.drawable.ic_sysbar_back, R.drawable.ic_sysbar_back_quick_step);
+ orientBackButton(drawable);
+ return drawable;
}
- public KeyButtonDrawable getBackImeDrawable(Context ctx) {
- return chooseNavigationIconDrawable(ctx, R.drawable.ic_sysbar_back_ime,
- R.drawable.ic_sysbar_back_ime_dark, R.drawable.ic_sysbar_back_ime_quick_step,
- R.drawable.ic_sysbar_back_ime_quick_step_dark);
+ public KeyButtonDrawable getHomeDrawable(Context lightContext, Context darkContext) {
+ final boolean quickStepEnabled = mOverviewProxyService.shouldShowSwipeUpUI();
+ KeyButtonDrawable drawable = quickStepEnabled
+ ? getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_home_quick_step)
+ : getDrawable(lightContext, darkContext, R.drawable.ic_sysbar_home,
+ false /* hasShadow */);
+ orientHomeButton(drawable);
+ return drawable;
+ }
+
+ private void orientBackButton(KeyButtonDrawable drawable) {
+ final boolean useAltBack =
+ (mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0;
+ drawable.setRotation(useAltBack
+ ? -90 : (getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) ? 180 : 0);
}
- public KeyButtonDrawable getHomeDrawable(Context ctx) {
- return chooseNavigationIconDrawable(ctx, R.drawable.ic_sysbar_home,
- R.drawable.ic_sysbar_home_dark, R.drawable.ic_sysbar_home_quick_step,
- R.drawable.ic_sysbar_home_quick_step_dark);
+ private void orientHomeButton(KeyButtonDrawable drawable) {
+ drawable.setRotation(mVertical ? 90 : 0);
}
- private KeyButtonDrawable chooseNavigationIconDrawable(Context ctx, @DrawableRes int iconLight,
- @DrawableRes int iconDark, @DrawableRes int quickStepIconLight,
- @DrawableRes int quickStepIconDark) {
+ private KeyButtonDrawable chooseNavigationIconDrawable(Context lightContext,
+ Context darkContext, @DrawableRes int icon, @DrawableRes int quickStepIcon) {
final boolean quickStepEnabled = mOverviewProxyService.shouldShowSwipeUpUI();
return quickStepEnabled
- ? getDrawable(ctx, quickStepIconLight, quickStepIconDark)
- : getDrawable(ctx, iconLight, iconDark);
+ ? getDrawable(lightContext, darkContext, quickStepIcon)
+ : getDrawable(lightContext, darkContext, icon);
}
- private KeyButtonDrawable getDrawable(Context ctx, @DrawableRes int lightIcon,
- @DrawableRes int darkIcon) {
- return getDrawable(ctx, ctx, lightIcon, darkIcon);
+ private KeyButtonDrawable getDrawable(Context lightContext, Context darkContext,
+ @DrawableRes int icon) {
+ return getDrawable(lightContext, darkContext, icon, true /* hasShadow */);
+ }
+
+ private KeyButtonDrawable getDrawable(Context lightContext, Context darkContext,
+ @DrawableRes int icon, boolean hasShadow) {
+ return KeyButtonDrawable.create(lightContext, lightContext.getDrawable(icon),
+ darkContext.getDrawable(icon), hasShadow);
}
- private KeyButtonDrawable getDrawable(Context darkContext, Context lightContext,
- @DrawableRes int lightIcon, @DrawableRes int darkIcon) {
- return KeyButtonDrawable.create(lightContext.getDrawable(lightIcon),
- darkContext.getDrawable(darkIcon));
+ private KeyButtonDrawable getDrawable(Context ctx, @DrawableRes int lightIcon,
+ @DrawableRes int darkIcon) {
+ // Legacy image icons using separate light and dark images will not support shadows
+ return KeyButtonDrawable.create(ctx, ctx.getDrawable(lightIcon),
+ ctx.getDrawable(darkIcon), false /* hasShadow */);
}
private TintedKeyButtonDrawable getDrawable(Context ctx, @DrawableRes int icon,
@@ -557,13 +567,13 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
private KeyButtonDrawable getBackIconWithAlt(boolean carMode, boolean landscape) {
return landscape
- ? carMode ? mBackAltLandCarModeIcon : mBackAltLandIcon
- : carMode ? mBackAltCarModeIcon : mBackAltIcon;
+ ? carMode ? mBackAltLandCarModeIcon : mBackIcon
+ : carMode ? mBackAltCarModeIcon : mBackIcon;
}
private KeyButtonDrawable getBackIcon(boolean carMode, boolean landscape) {
return landscape
- ? carMode ? mBackLandCarModeIcon : mBackLandIcon
+ ? carMode ? mBackLandCarModeIcon : mBackIcon
: carMode ? mBackCarModeIcon : mBackIcon;
}
@@ -600,20 +610,21 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
// We have to replace or restore the back and home button icons when exiting or entering
// carmode, respectively. Recents are not available in CarMode in nav bar so change
// to recent icon is not required.
- KeyButtonDrawable backIcon
- = ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0)
- ? getBackIconWithAlt(mUseCarModeUi, mVertical)
- : getBackIcon(mUseCarModeUi, mVertical);
+ final boolean useAltBack =
+ (mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0;
+ KeyButtonDrawable backIcon = useAltBack
+ ? getBackIconWithAlt(mUseCarModeUi, mVertical)
+ : getBackIcon(mUseCarModeUi, mVertical);
+ KeyButtonDrawable homeIcon = mUseCarModeUi ? mHomeCarModeIcon : mHomeDefaultIcon;
+ if (!mUseCarModeUi) {
+ orientBackButton(backIcon);
+ orientHomeButton(homeIcon);
+ }
+ getHomeButton().setImageDrawable(homeIcon);
getBackButton().setImageDrawable(backIcon);
updateRecentsIcon();
- if (mUseCarModeUi) {
- getHomeButton().setImageDrawable(mHomeCarModeIcon);
- } else {
- getHomeButton().setImageDrawable(mHomeDefaultIcon);
- }
-
// Update IME button visibility, a11y and rotate button always overrides the appearance
final boolean showImeButton =
!mShowAccessibilityButton &&
@@ -640,8 +651,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
// Always disable recents when alternate car mode UI is active.
boolean disableRecent = mUseCarModeUi || !isOverviewEnabled();
- boolean disableBack = ((mDisabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0)
- && ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) == 0);
+ boolean disableBack = ((mDisabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0) && !useAltBack;
// When screen pinning, don't hide back and home when connected service or back and
// recents buttons when disconnected from launcher service in screen pinning mode,
@@ -945,6 +955,7 @@ public class NavigationBarView extends FrameLayout implements PluginListener<Nav
}
private void updateRecentsIcon() {
+ mDockedIcon.setRotation(mDockedStackExists && mVertical ? 90 : 0);
getRecentsButton().setImageDrawable(mDockedStackExists ? mDockedIcon : mRecentIcon);
mBarTransitions.reapplyDarkIntensity();
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadowKeyDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadowKeyDrawable.java
new file mode 100644
index 000000000000..8311dfd64fd2
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ShadowKeyDrawable.java
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.systemui.statusbar.phone;
+
+
+import android.graphics.Bitmap;
+import android.graphics.BlurMaskFilter;
+import android.graphics.BlurMaskFilter.Blur;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+
+import com.android.systemui.R;
+
+/**
+ * A drawable which adds shadow around a child drawable.
+ */
+public class ShadowKeyDrawable extends Drawable {
+ private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
+
+ private final ShadowDrawableState mState;
+
+ public ShadowKeyDrawable(Drawable d) {
+ this(d, new ShadowDrawableState());
+ }
+
+ private ShadowKeyDrawable(Drawable d, ShadowDrawableState state) {
+ mState = state;
+ if (d != null) {
+ mState.mBaseHeight = d.getIntrinsicHeight();
+ mState.mBaseWidth = d.getIntrinsicWidth();
+ mState.mChangingConfigurations = d.getChangingConfigurations();
+ mState.mChildState = d.getConstantState();
+ }
+ }
+
+ public void setRotation(float degrees) {
+ if (mState.mRotateDegrees != degrees) {
+ mState.mRotateDegrees = degrees;
+ mState.mLastDrawnBitmap = null;
+ invalidateSelf();
+ }
+ }
+
+ public void setShadowProperties(int x, int y, int size, int color) {
+ if (mState.mShadowOffsetX != x || mState.mShadowOffsetY != y
+ || mState.mShadowSize != size || mState.mShadowColor != color) {
+ mState.mShadowOffsetX = x;
+ mState.mShadowOffsetY = y;
+ mState.mShadowSize = size;
+ mState.mShadowColor = color;
+ mState.mLastDrawnBitmap = null;
+ invalidateSelf();
+ }
+ }
+
+ public float getRotation() {
+ return mState.mRotateDegrees;
+ }
+
+ @Override
+ public void draw(Canvas canvas) {
+ Rect bounds = getBounds();
+ if (bounds.isEmpty()) {
+ return;
+ }
+ if (mState.mLastDrawnBitmap == null) {
+ regenerateBitmapCache();
+ }
+ canvas.drawBitmap(mState.mLastDrawnBitmap, null, bounds, mPaint);
+ }
+
+ @Override
+ public void setTint(int tintColor) {
+ super.setTint(tintColor);
+ }
+
+ @Override
+ public void setAlpha(int alpha) {
+ mPaint.setAlpha(alpha);
+ invalidateSelf();
+ }
+
+ @Override
+ public void setColorFilter(ColorFilter colorFilter) {
+ mPaint.setColorFilter(colorFilter);
+ invalidateSelf();
+ }
+
+ @Override
+ public ConstantState getConstantState() {
+ return mState;
+ }
+
+ @Override
+ public int getOpacity() {
+ return PixelFormat.TRANSLUCENT;
+ }
+
+ @Override
+ public int getIntrinsicHeight() {
+ return mState.mBaseHeight;
+ }
+
+ @Override
+ public int getIntrinsicWidth() {
+ return mState.mBaseWidth;
+ }
+
+ @Override
+ public boolean canApplyTheme() {
+ return mState.canApplyTheme();
+ }
+
+ private void regenerateBitmapCache() {
+ final int width = getIntrinsicWidth();
+ final int height = getIntrinsicHeight();
+ Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+ canvas.save();
+ final float radians = (float) (mState.mRotateDegrees * Math.PI / 180);
+
+ // Rotate canvas before drawing original drawable if no shadow
+ if (mState.mShadowSize == 0) {
+ canvas.rotate(mState.mRotateDegrees, width / 2, height / 2);
+ }
+
+ // Call mutate, so that the pixel allocation by the underlying vector drawable is cleared.
+ final Drawable d = mState.mChildState.newDrawable().mutate();
+ d.setBounds(0, 0, mState.mBaseWidth, mState.mBaseHeight);
+ d.draw(canvas);
+
+ if (mState.mShadowSize > 0) {
+ // Draws the shadow
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
+ paint.setMaskFilter(new BlurMaskFilter(mState.mShadowSize, Blur.NORMAL));
+ int[] offset = new int[2];
+
+ final Bitmap shadow = bitmap.extractAlpha(paint, offset);
+
+ paint.setMaskFilter(null);
+ paint.setColor(mState.mShadowColor);
+ bitmap.eraseColor(Color.TRANSPARENT);
+
+ canvas.rotate(mState.mRotateDegrees, width / 2, height / 2);
+
+ final float shadowOffsetX = (float) (Math.sin(radians) * mState.mShadowOffsetY
+ + Math.cos(radians) * mState.mShadowOffsetX);
+ final float shadowOffsetY = (float) (Math.cos(radians) * mState.mShadowOffsetY
+ - Math.sin(radians) * mState.mShadowOffsetX);
+
+ canvas.drawBitmap(shadow, offset[0] + shadowOffsetX, offset[1] + shadowOffsetY, paint);
+ d.draw(canvas);
+ }
+
+ bitmap = bitmap.copy(Bitmap.Config.HARDWARE, false);
+ mState.mLastDrawnBitmap = bitmap;
+ canvas.restore();
+ }
+
+ private static class ShadowDrawableState extends ConstantState {
+ int mChangingConfigurations;
+ int mBaseWidth;
+ int mBaseHeight;
+ float mRotateDegrees;
+ int mShadowOffsetX;
+ int mShadowOffsetY;
+ int mShadowSize;
+ int mShadowColor;
+
+ Bitmap mLastDrawnBitmap;
+ ConstantState mChildState;
+
+ @Override
+ public Drawable newDrawable() {
+ return new ShadowKeyDrawable(null, this);
+ }
+
+ @Override
+ public int getChangingConfigurations() {
+ return mChangingConfigurations;
+ }
+
+ @Override
+ public boolean canApplyTheme() {
+ return true;
+ }
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonDrawable.java
index cce9d1cd6d95..1a85c479a42c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonDrawable.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyButtonDrawable.java
@@ -17,10 +17,16 @@
package com.android.systemui.statusbar.policy;
import android.annotation.Nullable;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.view.Gravity;
+import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.ShadowKeyDrawable;
+
/**
* Drawable for {@link KeyButtonView}s which contains an asset for both normal mode and light
* navigation bar mode.
@@ -29,13 +35,24 @@ public class KeyButtonDrawable extends LayerDrawable {
private final boolean mHasDarkDrawable;
- public static KeyButtonDrawable create(Drawable lightDrawable,
- @Nullable Drawable darkDrawable) {
+ public static KeyButtonDrawable create(Context lightContext, Drawable lightDrawable,
+ @Nullable Drawable darkDrawable, boolean hasShadow) {
if (darkDrawable != null) {
- return new KeyButtonDrawable(
- new Drawable[] { lightDrawable.mutate(), darkDrawable.mutate() });
+ ShadowKeyDrawable light = new ShadowKeyDrawable(lightDrawable.mutate());
+ ShadowKeyDrawable dark = new ShadowKeyDrawable(darkDrawable.mutate());
+ if (hasShadow) {
+ // Only apply the shadow on the light drawable
+ Resources res = lightContext.getResources();
+ int offsetX = res.getDimensionPixelSize(R.dimen.nav_key_button_shadow_offset_x);
+ int offsetY = res.getDimensionPixelSize(R.dimen.nav_key_button_shadow_offset_y);
+ int radius = res.getDimensionPixelSize(R.dimen.nav_key_button_shadow_radius);
+ int color = lightContext.getColor(R.color.nav_key_button_shadow_color);
+ light.setShadowProperties(offsetX, offsetY, radius, color);
+ }
+ return new KeyButtonDrawable(new Drawable[] { light, dark });
} else {
- return new KeyButtonDrawable(new Drawable[] { lightDrawable.mutate() });
+ return new KeyButtonDrawable(new Drawable[] {
+ new ShadowKeyDrawable(lightDrawable.mutate()) });
}
}
@@ -57,4 +74,13 @@ public class KeyButtonDrawable extends LayerDrawable {
getDrawable(1).setAlpha((int) (intensity * 255f));
invalidateSelf();
}
+
+ public void setRotation(float degrees) {
+ if (getDrawable(0) instanceof ShadowKeyDrawable) {
+ ((ShadowKeyDrawable) getDrawable(0)).setRotation(degrees);
+ }
+ if (mHasDarkDrawable && getDrawable(1) instanceof ShadowKeyDrawable) {
+ ((ShadowKeyDrawable) getDrawable(1)).setRotation(degrees);
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/TintedKeyButtonDrawable.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/TintedKeyButtonDrawable.java
index 4d33dec56397..30a5cc841c45 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/TintedKeyButtonDrawable.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/TintedKeyButtonDrawable.java
@@ -21,6 +21,7 @@ import android.graphics.Color;
import android.graphics.drawable.Drawable;
import com.android.internal.graphics.ColorUtils;
+import com.android.systemui.statusbar.phone.ShadowKeyDrawable;
/**
* Drawable for {@link KeyButtonView}s which contains a single asset and colors for light and dark
@@ -36,7 +37,8 @@ public class TintedKeyButtonDrawable extends KeyButtonDrawable {
public static TintedKeyButtonDrawable create(Drawable drawable, @ColorInt int lightColor,
@ColorInt int darkColor) {
- return new TintedKeyButtonDrawable(new Drawable[] { drawable }, lightColor, darkColor);
+ return new TintedKeyButtonDrawable(new Drawable[] { drawable },
+ lightColor, darkColor);
}
private TintedKeyButtonDrawable(Drawable[] drawables, int lightColor, int darkColor){
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
index a2b33fa1a581..0aa51c99c24b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java
@@ -760,7 +760,9 @@ public class NotificationStackScrollLayout extends ViewGroup
}
private void updateClippingToTopRoundedCorner() {
- Float clipStart = (float) mTopPadding + mAmbientState.getExpandAnimationTopChange();
+ Float clipStart = (float) mTopPadding
+ + mStackTranslation
+ + mAmbientState.getExpandAnimationTopChange();
Float clipEnd = clipStart + mCornerRadius;
boolean first = true;
for (int i = 0; i < getChildCount(); i++) {
@@ -769,8 +771,7 @@ public class NotificationStackScrollLayout extends ViewGroup
continue;
}
float start = child.getTranslationY();
- float end = start + Math.max(child.getActualHeight() - child.getClipBottomAmount(),
- 0);
+ float end = start + child.getActualHeight();
boolean clip = clipStart > start && clipStart < end
|| clipEnd >= start && clipEnd <= end;
clip &= !(first && mOwnScrollY == 0);
diff --git a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
index 17a4fbc4c1f6..189b1eed15e3 100644
--- a/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
+++ b/packages/SystemUI/tests/src/com/android/keyguard/KeyguardSliceViewTest.java
@@ -57,9 +57,7 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
public void showSlice_notifiesListener() {
ListBuilder builder = new ListBuilder(getContext(), mSliceUri);
AtomicBoolean notified = new AtomicBoolean();
- mKeyguardSliceView.setContentChangeListener((hasHeader)-> {
- notified.set(true);
- });
+ mKeyguardSliceView.setContentChangeListener(()-> notified.set(true));
mKeyguardSliceView.onChanged(builder.build());
Assert.assertTrue("Listener should be notified about slice changes.",
notified.get());
@@ -68,9 +66,7 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
@Test
public void showSlice_emptySliceNotifiesListener() {
AtomicBoolean notified = new AtomicBoolean();
- mKeyguardSliceView.setContentChangeListener((hasHeader)-> {
- notified.set(true);
- });
+ mKeyguardSliceView.setContentChangeListener(()-> notified.set(true));
mKeyguardSliceView.onChanged(null);
Assert.assertTrue("Listener should be notified about slice changes.",
notified.get());
@@ -92,9 +88,7 @@ public class KeyguardSliceViewTest extends SysuiTestCase {
@Test
public void refresh_replacesSliceContentAndNotifiesListener() {
AtomicBoolean notified = new AtomicBoolean();
- mKeyguardSliceView.setContentChangeListener((hasHeader)-> {
- notified.set(true);
- });
+ mKeyguardSliceView.setContentChangeListener(()-> notified.set(true));
mKeyguardSliceView.refresh();
Assert.assertTrue("Listener should be notified about slice changes.",
notified.get());
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index 686ab53ecc22..d06410597391 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -205,6 +205,14 @@ message MetricsEvent {
HARDWARE_FAILURE_FINGERPRINT_TOO_MANY_DEAD_PIXELS = 5;
}
+ enum IoOperation {
+ IOOP_UNKNOWN = 0;
+ IOOP_READ = 1;
+ IOOP_WRITE = 2;
+ IOOP_UNMAP = 3;
+ IOOP_SYNC = 4;
+ }
+
// Known visual elements: views or controls.
enum View {
// Unknown view
@@ -5931,8 +5939,7 @@ message MetricsEvent {
// ACTION: Battery health snapshot
// CATEGORY: OTHER
// OS: P
- // uses FIELD_END_BATTERY_PERCENT for batt %
- // uses FIELD_END_BATTERY_UA for instantaneous current load
+ // uses FIELD_END_BATTERY_PERCENT for instantaneous batt %
ACTION_BATTERY_HEALTH = 1433;
// FIELD: Battery health snapshot type - min daily voltage, resistance, etc.
@@ -5940,31 +5947,33 @@ message MetricsEvent {
// OS: P
FIELD_BATTERY_HEALTH_SNAPSHOT_TYPE = 1434;
- // FIELD: Battery temperature at snapshop.
+ // FIELD: Battery temperature at snapshot, in 1/10 deg C.
// CATEGORY: OTHER
// OS: P
- FIELD_BATTERY_TEMPERATURE = 1435;
+ FIELD_BATTERY_TEMPERATURE_DECI_C = 1435;
- // FIELD: Battery voltage at snapshot.
+ // FIELD: Battery voltage at snapshot, in microVolts.
// CATEGORY: OTHER
// OS: P
- FIELD_BATTERY_VOLTAGE = 1436;
+ FIELD_BATTERY_VOLTAGE_UV = 1436;
- // FIELD: Battery open circuit voltage at snapshot.
+ // FIELD: Battery open circuit voltage at snapshot, in microVolts.
// CATEGORY: OTHER
// OS: P
- FIELD_BATTERY_OPEN_CIRCUIT_VOLTAGE = 1437;
+ FIELD_BATTERY_OPEN_CIRCUIT_VOLTAGE_UV = 1437;
- // ACTION: Battery charge cycles
- // Number of times the battery has charged beyond a
+ // ACTION: Number of times the battery has charged beyond a
// fractional threshold of full capacity.
// CATEGORY: OTHER
// OS: P
ACTION_BATTERY_CHARGE_CYCLES = 1438;
- // FIELD: Battery charge cycles
- // Number of times the battery has charged beyond a
- // fractional threshold of full capacity.
+ // FIELD: BATTERY_CHARGE_CYCLES - Number of times the battery has charged
+ // beyond a fractional threshold of full
+ // capacity. A comma-separated string of
+ // buckets. If there are eight buckets,
+ // each bucket represents charging to n/8
+ // percent full.
// CATEGORY: OTHER
// OS: P
FIELD_BATTERY_CHARGE_CYCLES = 1439;
@@ -5980,6 +5989,62 @@ message MetricsEvent {
// OS: P
DIALOG_BLUETOOTH_DISABLE_A2DP_HW_OFFLOAD = 1441;
+ // ACTION: SLOW_IO - I/O operation took longer than threshold,
+ // reported aggregated per day when > 0.
+ // CATEGORY: OTHER
+ // OS: P
+ ACTION_SLOW_IO = 1442;
+
+ // FIELD: IO_OPERATION_TYPE - The IO Operation that caused the high latency.
+ // The value is an integer from the enum IoOperation.
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_IO_OPERATION_TYPE = 1443;
+
+ // FIELD: IO_OPERATION_COUNT - Count of how many times this slow IO operation happened
+ // over the past 24hr (reported only if > 0).
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_IO_OPERATION_COUNT = 1444;
+
+ // ACTION: Speaker Imedance - last recorded speaker impedance.
+ // reported max once per 24hr.
+ // CATEGORY: OTHER
+ // OS: P
+ ACTION_SPEAKER_IMPEDANCE = 1445;
+
+ // FIELD: Speaker Impedance in milliohms.
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_SPEAKER_IMPEDANCE_MILLIOHMS = 1446;
+
+ // FIELD: Speaker Location - identifies one of several speakers on a device.
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_SPEAKER_LOCATION = 1447;
+
+ // FIELD: Instantaneous battery resistance in microohms.
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_BATTERY_RESISTANCE_UOHMS = 1448;
+
+ // FIELD: Instantaneous battery current - in microamps.
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_BATTERY_CURRENT_UA = 1449;
+
+ // FIELD: HARDWARE_LOCATION - Identifier for instance of a hardware type on a
+ // board.
+ // CATEGORY: OTHER
+ // OS: P
+ FIELD_HARDWARE_LOCATION = 1450;
+
+ // ACTION: BATTERY_CAUSED_SHUTDOWN - shutdown due to low battery, the
+ // action is logged after the subsequent boot.
+ // CATEGORY: OTHER
+ // OS: P
+ ACTION_BATTERY_CAUSED_SHUTDOWN = 1451;
+
// ---- End P Constants, all P constants go above this line ----
// Add new aosp constants above this line.
// END OF AOSP CONSTANTS
diff --git a/proto/src/wifi.proto b/proto/src/wifi.proto
index bf9ccb838ae9..72f11e0a63c1 100644
--- a/proto/src/wifi.proto
+++ b/proto/src/wifi.proto
@@ -619,6 +619,9 @@ message RssiPollCount {
// Number of RSSI polls with 'rssi'
optional int32 count = 2;
+
+ // Beacon frequency of the channel in MHz
+ optional int32 frequency = 3;
}
// Number of occurrences of a specific alert reason value
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 98bf740d0d30..c25f8ff843a8 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -37,9 +37,7 @@ import static android.app.ActivityManagerInternal.ASSIST_KEY_DATA;
import static android.app.ActivityManagerInternal.ASSIST_KEY_RECEIVER_EXTRAS;
import static android.app.ActivityManagerInternal.ASSIST_KEY_STRUCTURE;
import static android.app.ActivityThread.PROC_START_SEQ_IDENT;
-import static android.app.AppOpsManager.OP_ASSIST_STRUCTURE;
import static android.app.AppOpsManager.OP_NONE;
-import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM;
@@ -5128,6 +5126,7 @@ public class ActivityManagerService extends IActivityManager.Stub
final ActivityRecord sourceRecord;
final int targetUid;
final String targetPackage;
+ final boolean isResolver;
synchronized (this) {
if (resultTo == null) {
throw new SecurityException("Must be called from an activity");
@@ -5165,6 +5164,7 @@ public class ActivityManagerService extends IActivityManager.Stub
}
targetUid = sourceRecord.launchedFromUid;
targetPackage = sourceRecord.launchedFromPackage;
+ isResolver = sourceRecord.isResolverOrChildActivity();
}
if (userId == UserHandle.USER_NULL) {
@@ -5184,6 +5184,7 @@ public class ActivityManagerService extends IActivityManager.Stub
.setActivityOptions(bOptions)
.setMayWait(userId)
.setIgnoreTargetSecurity(ignoreTargetSecurity)
+ .setFilterCallingUid(isResolver ? 0 /* system */ : targetUid)
.execute();
} catch (SecurityException e) {
// XXX need to figure out how to propagate to original app.
@@ -20547,7 +20548,7 @@ public class ActivityManagerService extends IActivityManager.Stub
IPackageManager pm = AppGlobals.getPackageManager();
ApplicationInfo app = null;
try {
- app = pm.getApplicationInfo(packageName, 0, userId);
+ app = pm.getApplicationInfo(packageName, STOCK_PM_FLAGS, userId);
} catch (RemoteException e) {
// can't happen; package manager is process-local
}
diff --git a/services/core/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
index d64b429edcd4..ef5a5a322aa8 100644
--- a/services/core/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -826,6 +826,18 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
return ResolverActivity.class.getName().equals(realActivity.getClassName());
}
+ boolean isResolverOrChildActivity() {
+ if (!"android".equals(packageName)) {
+ return false;
+ }
+ try {
+ return ResolverActivity.class.isAssignableFrom(
+ Object.class.getClassLoader().loadClass(realActivity.getClassName()));
+ } catch (ClassNotFoundException e) {
+ return false;
+ }
+ }
+
ActivityRecord(ActivityManagerService _service, ProcessRecord _caller, int _launchedFromPid,
int _launchedFromUid, String _launchedFromPackage, Intent _intent, String _resolvedType,
ActivityInfo aInfo, Configuration _configuration,
diff --git a/services/core/java/com/android/server/am/ActivityStartController.java b/services/core/java/com/android/server/am/ActivityStartController.java
index bbdc9248a256..a7c32009a4c4 100644
--- a/services/core/java/com/android/server/am/ActivityStartController.java
+++ b/services/core/java/com/android/server/am/ActivityStartController.java
@@ -37,6 +37,7 @@ import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
+import android.os.UserHandle;
import android.provider.Settings;
import android.util.Slog;
import android.view.RemoteAnimationAdapter;
@@ -340,7 +341,7 @@ public class ActivityStartController {
// Collect information about the target of the Intent.
ActivityInfo aInfo = mSupervisor.resolveActivity(intent, resolvedTypes[i], 0,
null, userId, ActivityStarter.computeResolveFilterUid(
- callingUid, realCallingUid));
+ callingUid, realCallingUid, UserHandle.USER_NULL));
// TODO: New, check if this is correct
aInfo = mService.getActivityInfoForUser(aInfo, userId);
diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java
index ad434b4db27e..73e3d33073fc 100644
--- a/services/core/java/com/android/server/am/ActivityStarter.java
+++ b/services/core/java/com/android/server/am/ActivityStarter.java
@@ -312,6 +312,7 @@ class ActivityStarter {
Configuration globalConfig;
int userId;
WaitResult waitResult;
+ int filterCallingUid;
/**
* If set to {@code true}, allows this activity start to look into
@@ -367,6 +368,7 @@ class ActivityStarter {
mayWait = false;
avoidMoveToFront = false;
allowPendingRemoteAnimationRegistryLookup = true;
+ filterCallingUid = UserHandle.USER_NULL;
}
/**
@@ -404,6 +406,7 @@ class ActivityStarter {
avoidMoveToFront = request.avoidMoveToFront;
allowPendingRemoteAnimationRegistryLookup
= request.allowPendingRemoteAnimationRegistryLookup;
+ filterCallingUid = request.filterCallingUid;
}
}
@@ -792,7 +795,8 @@ class ActivityStarter {
callingPid = realCallingPid;
rInfo = mSupervisor.resolveIntent(intent, resolvedType, userId, 0,
- computeResolveFilterUid(callingUid, realCallingUid));
+ computeResolveFilterUid(
+ callingUid, realCallingUid, mRequest.filterCallingUid));
aInfo = mSupervisor.resolveActivity(intent, rInfo, startFlags,
null /*profilerInfo*/);
@@ -984,7 +988,9 @@ class ActivityStarter {
}
ResolveInfo rInfo = mSupervisor.resolveIntent(intent, resolvedType, userId,
- 0 /* matchFlags */, computeResolveFilterUid(callingUid, realCallingUid));
+ 0 /* matchFlags */,
+ computeResolveFilterUid(
+ callingUid, realCallingUid, mRequest.filterCallingUid));
if (rInfo == null) {
UserInfo userInfo = mSupervisor.getUserInfo(userId);
if (userInfo != null && userInfo.isManagedProfile()) {
@@ -1006,7 +1012,8 @@ class ActivityStarter {
rInfo = mSupervisor.resolveIntent(intent, resolvedType, userId,
PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
- computeResolveFilterUid(callingUid, realCallingUid));
+ computeResolveFilterUid(
+ callingUid, realCallingUid, mRequest.filterCallingUid));
}
}
}
@@ -1078,8 +1085,8 @@ class ActivityStarter {
callingPid = Binder.getCallingPid();
componentSpecified = true;
rInfo = mSupervisor.resolveIntent(intent, null /*resolvedType*/, userId,
- 0 /* matchFlags */, computeResolveFilterUid(callingUid,
- realCallingUid));
+ 0 /* matchFlags */, computeResolveFilterUid(
+ callingUid, realCallingUid, mRequest.filterCallingUid));
aInfo = rInfo != null ? rInfo.activityInfo : null;
if (aInfo != null) {
aInfo = mService.getActivityInfoForUser(aInfo, userId);
@@ -1173,10 +1180,14 @@ class ActivityStarter {
*
* @param customCallingUid The UID on whose behalf to make the call.
* @param actualCallingUid The UID actually making the call.
+ * @param filterCallingUid The UID to be used to filter for instant apps.
* @return The logical UID making the call.
*/
- static int computeResolveFilterUid(int customCallingUid, int actualCallingUid) {
- return customCallingUid >= 0 ? customCallingUid : actualCallingUid;
+ static int computeResolveFilterUid(int customCallingUid, int actualCallingUid,
+ int filterCallingUid) {
+ return filterCallingUid != UserHandle.USER_NULL
+ ? filterCallingUid
+ : (customCallingUid >= 0 ? customCallingUid : actualCallingUid);
}
private int startActivity(final ActivityRecord r, ActivityRecord sourceRecord,
@@ -2562,6 +2573,11 @@ class ActivityStarter {
return this;
}
+ ActivityStarter setFilterCallingUid(int filterCallingUid) {
+ mRequest.filterCallingUid = filterCallingUid;
+ return this;
+ }
+
ActivityStarter setComponentSpecified(boolean componentSpecified) {
mRequest.componentSpecified = componentSpecified;
return this;
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index 7c9a3ae260f4..28665e3c3942 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -3795,7 +3795,7 @@ public class AudioService extends IAudioService.Stub
queueMsgUnderWakeLock(mAudioHandler,
MSG_SET_A2DP_SINK_CONNECTION_STATE,
state,
- 0 /* arg2 unused */,
+ -1,
btDevice,
delay);
}
@@ -4641,22 +4641,22 @@ public class AudioService extends IAudioService.Stub
public int setBluetoothA2dpDeviceConnectionState(BluetoothDevice device, int state, int profile)
{
return setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(
- device, state, profile, false /* suppressNoisyIntent */);
+ device, state, profile, false /* suppressNoisyIntent */, -1 /* a2dpVolume */);
}
public int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(BluetoothDevice device,
- int state, int profile, boolean suppressNoisyIntent)
+ int state, int profile, boolean suppressNoisyIntent, int a2dpVolume)
{
if (mAudioHandler.hasMessages(MSG_SET_A2DP_SINK_CONNECTION_STATE, device)) {
return 0;
}
return setBluetoothA2dpDeviceConnectionStateInt(
- device, state, profile, suppressNoisyIntent, AudioSystem.DEVICE_NONE);
+ device, state, profile, suppressNoisyIntent, AudioSystem.DEVICE_NONE, a2dpVolume);
}
public int setBluetoothA2dpDeviceConnectionStateInt(
BluetoothDevice device, int state, int profile, boolean suppressNoisyIntent,
- int musicDevice)
+ int musicDevice, int a2dpVolume)
{
int delay;
if (profile != BluetoothProfile.A2DP && profile != BluetoothProfile.A2DP_SINK) {
@@ -4674,7 +4674,7 @@ public class AudioService extends IAudioService.Stub
(profile == BluetoothProfile.A2DP ?
MSG_SET_A2DP_SINK_CONNECTION_STATE : MSG_SET_A2DP_SRC_CONNECTION_STATE),
state,
- 0 /* arg2 unused */,
+ a2dpVolume,
device,
delay);
}
@@ -5204,41 +5204,41 @@ public class AudioService extends IAudioService.Stub
}
}
- /** Handles internal volume messages in separate volume thread. */
- private class AudioHandler extends Handler {
-
- private void setDeviceVolume(VolumeStreamState streamState, int device) {
+ private void setDeviceVolume(VolumeStreamState streamState, int device) {
- synchronized (VolumeStreamState.class) {
- // Apply volume
- streamState.applyDeviceVolume_syncVSS(device);
+ synchronized (VolumeStreamState.class) {
+ // Apply volume
+ streamState.applyDeviceVolume_syncVSS(device);
- // Apply change to all streams using this one as alias
- int numStreamTypes = AudioSystem.getNumStreamTypes();
- for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
- if (streamType != streamState.mStreamType &&
- mStreamVolumeAlias[streamType] == streamState.mStreamType) {
- // Make sure volume is also maxed out on A2DP device for aliased stream
- // that may have a different device selected
- int streamDevice = getDeviceForStream(streamType);
- if ((device != streamDevice) && mAvrcpAbsVolSupported &&
- ((device & AudioSystem.DEVICE_OUT_ALL_A2DP) != 0)) {
- mStreamStates[streamType].applyDeviceVolume_syncVSS(device);
- }
- mStreamStates[streamType].applyDeviceVolume_syncVSS(streamDevice);
+ // Apply change to all streams using this one as alias
+ int numStreamTypes = AudioSystem.getNumStreamTypes();
+ for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {
+ if (streamType != streamState.mStreamType &&
+ mStreamVolumeAlias[streamType] == streamState.mStreamType) {
+ // Make sure volume is also maxed out on A2DP device for aliased stream
+ // that may have a different device selected
+ int streamDevice = getDeviceForStream(streamType);
+ if ((device != streamDevice) && mAvrcpAbsVolSupported &&
+ ((device & AudioSystem.DEVICE_OUT_ALL_A2DP) != 0)) {
+ mStreamStates[streamType].applyDeviceVolume_syncVSS(device);
}
+ mStreamStates[streamType].applyDeviceVolume_syncVSS(streamDevice);
}
}
- // Post a persist volume msg
- sendMsg(mAudioHandler,
- MSG_PERSIST_VOLUME,
- SENDMSG_QUEUE,
- device,
- 0,
- streamState,
- PERSIST_DELAY);
-
}
+ // Post a persist volume msg
+ sendMsg(mAudioHandler,
+ MSG_PERSIST_VOLUME,
+ SENDMSG_QUEUE,
+ device,
+ 0,
+ streamState,
+ PERSIST_DELAY);
+
+ }
+
+ /** Handles internal volume messages in separate volume thread. */
+ private class AudioHandler extends Handler {
private void setAllVolumes(VolumeStreamState streamState) {
@@ -5605,7 +5605,7 @@ public class AudioService extends IAudioService.Stub
break;
case MSG_SET_A2DP_SINK_CONNECTION_STATE:
- onSetA2dpSinkConnectionState((BluetoothDevice)msg.obj, msg.arg1);
+ onSetA2dpSinkConnectionState((BluetoothDevice)msg.obj, msg.arg1, msg.arg2);
mAudioEventWakeLock.release();
break;
@@ -5899,7 +5899,7 @@ public class AudioService extends IAudioService.Stub
return mAudioHandler.hasMessages(MSG_BTA2DP_DOCK_TIMEOUT);
}
- private void onSetA2dpSinkConnectionState(BluetoothDevice btDevice, int state)
+ private void onSetA2dpSinkConnectionState(BluetoothDevice btDevice, int state, int a2dpVolume)
{
if (DEBUG_DEVICES) {
Log.d(TAG, "onSetA2dpSinkConnectionState btDevice=" + btDevice+"state=" + state);
@@ -5944,6 +5944,14 @@ public class AudioService extends IAudioService.Stub
makeA2dpDeviceUnavailableNow(mDockAddress);
}
}
+ if (a2dpVolume != -1) {
+ VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC];
+ // Convert index to internal representation in VolumeStreamState
+ a2dpVolume = a2dpVolume * 10;
+ streamState.setIndex(a2dpVolume, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP,
+ "onSetA2dpSinkConnectionState");
+ setDeviceVolume(streamState, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP);
+ }
makeA2dpDeviceAvailable(address, btDevice.getName(),
"onSetA2dpSinkConnectionState");
setCurrentAudioRouteName(btDevice.getAliasName());
@@ -6046,7 +6054,7 @@ public class AudioService extends IAudioService.Stub
// consistent with audio policy manager state
setBluetoothA2dpDeviceConnectionStateInt(
btDevice, BluetoothA2dp.STATE_DISCONNECTED, BluetoothProfile.A2DP,
- false /* suppressNoisyIntent */, musicDevice);
+ false /* suppressNoisyIntent */, musicDevice, -1 /* a2dpVolume */);
}
}
}
@@ -6056,6 +6064,9 @@ public class AudioService extends IAudioService.Stub
// address is not used for now, but may be used when multiple a2dp devices are supported
synchronized (mA2dpAvrcpLock) {
mAvrcpAbsVolSupported = support;
+ sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE,
+ AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0,
+ mStreamStates[AudioSystem.STREAM_MUSIC], 0);
}
}
diff --git a/services/core/java/com/android/server/display/ColorDisplayService.java b/services/core/java/com/android/server/display/ColorDisplayService.java
index 213ec364f78f..0b6786cf8c07 100644
--- a/services/core/java/com/android/server/display/ColorDisplayService.java
+++ b/services/core/java/com/android/server/display/ColorDisplayService.java
@@ -189,6 +189,13 @@ public final class ColorDisplayService extends SystemService
mController = new ColorDisplayController(getContext(), mCurrentUser);
mController.setListener(this);
+ // Set the color mode, if valid, and immediately apply the updated tint matrix based on the
+ // existing activated state. This ensures consistency of tint across the color mode change.
+ onDisplayColorModeChanged(mController.getColorMode());
+
+ // Reset the activated state.
+ mIsActivated = null;
+
setCoefficientMatrix(getContext(), DisplayTransformManager.needsLinearColorMatrix());
// Prepare color transformation matrix.
@@ -201,9 +208,6 @@ public final class ColorDisplayService extends SystemService
if (mIsActivated == null) {
onActivated(mController.isActivated());
}
-
- // Transition the screen to the current temperature.
- applyTint(false);
}
private void tearDown() {
@@ -223,8 +227,6 @@ public final class ColorDisplayService extends SystemService
mColorMatrixAnimator.end();
mColorMatrixAnimator = null;
}
-
- mIsActivated = null;
}
@Override
@@ -288,6 +290,10 @@ public final class ColorDisplayService extends SystemService
@Override
public void onDisplayColorModeChanged(int mode) {
+ if (mode == -1) {
+ return;
+ }
+
// Cancel the night display tint animator if it's running.
if (mColorMatrixAnimator != null) {
mColorMatrixAnimator.cancel();
@@ -297,7 +303,8 @@ public final class ColorDisplayService extends SystemService
setMatrix(mController.getColorTemperature(), mMatrixNight);
final DisplayTransformManager dtm = getLocalService(DisplayTransformManager.class);
- dtm.setColorMode(mode, mIsActivated ? mMatrixNight : MATRIX_IDENTITY);
+ dtm.setColorMode(mode, (mIsActivated != null && mIsActivated) ? mMatrixNight
+ : MATRIX_IDENTITY);
}
@Override
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 5f9a363dc728..9886a07c0a49 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -8781,8 +8781,16 @@ public class PackageManagerService extends IPackageManager.Stub
if (scanSystemPartition && isSystemPkgUpdated && !isSystemPkgBetter) {
// The version of the application on the /system partition is less than or
- // equal to the version on the /data partition. Throw an exception and use
- // the application already installed on the /data partition.
+ // equal to the version on the /data partition. Even though the disabled system package
+ // is likely to be replaced by a version on the /data partition, we make assumptions
+ // that it's part of the mPackages collection during package manager initialization. So,
+ // add it to mPackages if there isn't already a package in the collection and then throw
+ // an exception to use the application already installed on the /data partition.
+ synchronized (mPackages) {
+ if (!mPackages.containsKey(pkg.packageName)) {
+ mPackages.put(pkg.packageName, pkg);
+ }
+ }
throw new PackageManagerException(Log.WARN, "Package " + pkg.packageName + " at "
+ pkg.codePath + " ignored: updated version " + pkgSetting.versionCode
+ " better than this " + pkg.getLongVersionCode());
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 61400da6e452..a735297b06c2 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -6655,6 +6655,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
void launchVoiceAssistWithWakeLock() {
+ sendCloseSystemWindows(SYSTEM_DIALOG_REASON_ASSIST);
+
final Intent voiceIntent;
if (!keyguardOn()) {
voiceIntent = new Intent(RecognizerIntent.ACTION_WEB_SEARCH);
diff --git a/services/tests/servicestests/src/com/android/server/ColorDisplayServiceTest.java b/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java
index c004074d241b..6bd8011f1aa9 100644
--- a/services/tests/servicestests/src/com/android/server/ColorDisplayServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.display;
import android.annotation.NonNull;
import android.app.ActivityManager;
@@ -32,8 +32,8 @@ import android.test.mock.MockContentResolver;
import com.android.internal.app.ColorDisplayController;
import com.android.internal.util.test.FakeSettingsProvider;
-import com.android.server.display.DisplayTransformManager;
-import com.android.server.display.ColorDisplayService;
+import com.android.server.LocalServices;
+import com.android.server.SystemService;
import com.android.server.twilight.TwilightListener;
import com.android.server.twilight.TwilightManager;
import com.android.server.twilight.TwilightState;
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 7d42eb369c57..6311127a1ffe 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -699,6 +699,29 @@ public class UsageStatsService extends SystemService implements
== PackageManager.PERMISSION_GRANTED;
}
+ private void checkCallerIsSystemOrSameApp(String pkg) {
+ if (isCallingUidSystem()) {
+ return;
+ }
+ checkCallerIsSameApp(pkg);
+ }
+
+ private void checkCallerIsSameApp(String pkg) {
+ final int callingUid = Binder.getCallingUid();
+ final int callingUserId = UserHandle.getUserId(callingUid);
+
+ if (mPackageManagerInternal.getPackageUid(pkg, PackageManager.MATCH_ANY_USER,
+ callingUserId) != callingUid) {
+ throw new SecurityException("Calling uid " + pkg + " cannot query events"
+ + "for package " + pkg);
+ }
+ }
+
+ private boolean isCallingUidSystem() {
+ final int uid = Binder.getCallingUid();
+ return uid == Process.SYSTEM_UID;
+ }
+
@Override
public ParceledListSlice<UsageStats> queryUsageStats(int bucketType, long beginTime,
long endTime, String callingPackage) {
@@ -792,11 +815,7 @@ public class UsageStatsService extends SystemService implements
final int callingUid = Binder.getCallingUid();
final int callingUserId = UserHandle.getUserId(callingUid);
- if (mPackageManagerInternal.getPackageUid(callingPackage, PackageManager.MATCH_ANY_USER,
- callingUserId) != callingUid) {
- throw new SecurityException("Calling uid " + callingPackage + " cannot query events"
- + "for package " + callingPackage);
- }
+ checkCallerIsSameApp(callingPackage);
final long token = Binder.clearCallingIdentity();
try {
return UsageStatsService.this.queryEventsForPackage(callingUserId, beginTime,
@@ -807,6 +826,53 @@ public class UsageStatsService extends SystemService implements
}
@Override
+ public UsageEvents queryEventsForUser(long beginTime, long endTime, int userId,
+ String callingPackage) {
+ if (!hasPermission(callingPackage)) {
+ return null;
+ }
+
+ if (userId != UserHandle.getCallingUserId()) {
+ getContext().enforceCallingPermission(
+ Manifest.permission.INTERACT_ACROSS_USERS_FULL,
+ "No permission to query usage stats for this user");
+ }
+
+ final boolean obfuscateInstantApps = shouldObfuscateInstantAppsForCaller(
+ Binder.getCallingUid(), UserHandle.getCallingUserId());
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return UsageStatsService.this.queryEvents(userId, beginTime, endTime,
+ obfuscateInstantApps);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override
+ public UsageEvents queryEventsForPackageForUser(long beginTime, long endTime,
+ int userId, String pkg, String callingPackage) {
+ if (!hasPermission(callingPackage)) {
+ return null;
+ }
+ if (userId != UserHandle.getCallingUserId()) {
+ getContext().enforceCallingPermission(
+ Manifest.permission.INTERACT_ACROSS_USERS_FULL,
+ "No permission to query usage stats for this user");
+ }
+ checkCallerIsSystemOrSameApp(pkg);
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return UsageStatsService.this.queryEventsForPackage(userId, beginTime,
+ endTime, callingPackage);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override
public boolean isAppInactive(String packageName, int userId) {
try {
userId = ActivityManager.getService().handleIncomingUser(Binder.getCallingPid(),