diff options
| author | ezio84 <brabus84@gmail.com> | 2018-11-01 23:00:50 +0100 |
|---|---|---|
| committer | ezio84 <brabus84@gmail.com> | 2018-11-01 23:27:29 +0100 |
| commit | 28e9597a9f69cbf0401f35e474e058c632d5fb8e (patch) | |
| tree | 9298c96302ade95fd0f3b725a736f0c4846954d0 | |
| parent | d6487bd521ea5434af1307b62f95f5e22ea863f6 (diff) | |
Keep only Pulse code for now and build with stock navbar
197 files changed, 68 insertions, 12742 deletions
diff --git a/res/anim/disappear.xml b/res/anim/disappear.xml deleted file mode 100644 index b1fd5e3..0000000 --- a/res/anim/disappear.xml +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - - <alpha - android:interpolator="@android:anim/decelerate_interpolator" - android:fromAlpha="1.0" android:toAlpha="0.0" - android:duration="400" - /> -</set>
\ No newline at end of file diff --git a/res/anim/grow_from_bottom.xml b/res/anim/grow_from_bottom.xml deleted file mode 100644 index d2a371d..0000000 --- a/res/anim/grow_from_bottom.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <scale - android:fromXScale="0.3" android:toXScale="1.0" - android:fromYScale="0.3" android:toYScale="1.0" - android:pivotX="50%" android:pivotY="100%" - android:duration="@android:integer/config_shortAnimTime" - /> - <alpha - android:interpolator="@android:anim/decelerate_interpolator" - android:fromAlpha="0.0" android:toAlpha="1.0" - android:duration="@android:integer/config_shortAnimTime" - /> -</set> diff --git a/res/anim/grow_from_bottomleft_to_topright.xml b/res/anim/grow_from_bottomleft_to_topright.xml deleted file mode 100644 index a4bf4ea..0000000 --- a/res/anim/grow_from_bottomleft_to_topright.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <scale - android:fromXScale="0.3" android:toXScale="1.0" - android:fromYScale="0.3" android:toYScale="1.0" - android:pivotX="0%" android:pivotY="50%" - android:duration="@android:integer/config_shortAnimTime" - /> - <alpha - android:interpolator="@android:anim/decelerate_interpolator" - android:fromAlpha="0.0" android:toAlpha="1.0" - android:duration="@android:integer/config_shortAnimTime" - /> -</set>
\ No newline at end of file diff --git a/res/anim/grow_from_bottomright_to_topleft.xml b/res/anim/grow_from_bottomright_to_topleft.xml deleted file mode 100644 index 3446623..0000000 --- a/res/anim/grow_from_bottomright_to_topleft.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <scale
- android:fromXScale="0.3" android:toXScale="1.0"
- android:fromYScale="0.3" android:toYScale="1.0"
- android:pivotX="100%" android:pivotY="50%"
- android:duration="@android:integer/config_shortAnimTime"
- />
- <alpha
- android:interpolator="@android:anim/decelerate_interpolator"
- android:fromAlpha="0.0" android:toAlpha="1.0"
- android:duration="@android:integer/config_shortAnimTime"
- />
-</set>
\ No newline at end of file diff --git a/res/anim/pump_bottom.xml b/res/anim/pump_bottom.xml deleted file mode 100644 index f681951..0000000 --- a/res/anim/pump_bottom.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <scale - android:fromXScale="1.1" android:toXScale="1.0" - android:fromYScale="1.1" android:toYScale="1.0" - android:pivotX="50%" android:pivotY="100%" - android:duration="@android:integer/config_shortAnimTime" - /> - <alpha - android:interpolator="@android:anim/decelerate_interpolator" - android:fromAlpha="0.0" android:toAlpha="1.0" - android:duration="@android:integer/config_shortAnimTime" - /> -</set> diff --git a/res/anim/shrink_from_top.xml b/res/anim/shrink_from_top.xml deleted file mode 100644 index 89cd8f4..0000000 --- a/res/anim/shrink_from_top.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <scale - android:fromXScale="1.0" android:toXScale="0.3" - android:fromYScale="1.0" android:toYScale="0.3" - android:pivotX="50%" android:pivotY="100%" - android:duration="@android:integer/config_shortAnimTime" - /> - <alpha - android:interpolator="@android:anim/accelerate_interpolator" - android:fromAlpha="1.0" android:toAlpha="0.0" - android:duration="@android:integer/config_shortAnimTime" - /> -</set> diff --git a/res/anim/shrink_from_topleft_to_bottomright.xml b/res/anim/shrink_from_topleft_to_bottomright.xml deleted file mode 100644 index 1341728..0000000 --- a/res/anim/shrink_from_topleft_to_bottomright.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <scale
- android:fromXScale="1.0" android:toXScale="0.3"
- android:fromYScale="1.0" android:toYScale="0.3"
- android:pivotX="100%" android:pivotY="100%"
- android:duration="@android:integer/config_shortAnimTime"
- />
- <alpha
- android:interpolator="@android:anim/accelerate_interpolator"
- android:fromAlpha="1.0" android:toAlpha="0.0"
- android:duration="@android:integer/config_shortAnimTime"
- />
-</set>
\ No newline at end of file diff --git a/res/anim/shrink_from_topright_to_bottomleft.xml b/res/anim/shrink_from_topright_to_bottomleft.xml deleted file mode 100644 index d4064fc..0000000 --- a/res/anim/shrink_from_topright_to_bottomleft.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <scale - android:fromXScale="1.0" android:toXScale="0.3" - android:fromYScale="1.0" android:toYScale="0.3" - android:pivotX="0%" android:pivotY="100%" - android:duration="@android:integer/config_shortAnimTime" - /> - <alpha - android:interpolator="@android:anim/accelerate_interpolator" - android:fromAlpha="1.0" android:toAlpha="0.0" - android:duration="@android:integer/config_shortAnimTime" - /> -</set> diff --git a/res/drawable-hdpi/arrow_down.png b/res/drawable-hdpi/arrow_down.png Binary files differdeleted file mode 100644 index 1c57f8f..0000000 --- a/res/drawable-hdpi/arrow_down.png +++ /dev/null diff --git a/res/drawable-hdpi/arrow_up.png b/res/drawable-hdpi/arrow_up.png Binary files differdeleted file mode 100644 index 523a6ad..0000000 --- a/res/drawable-hdpi/arrow_up.png +++ /dev/null diff --git a/res/drawable-xxxhdpi/ic_sysbar_home_carmode_pixel.png b/res/drawable-xxxhdpi/ic_sysbar_home_carmode_pixel.png Binary files differdeleted file mode 100644 index 60da8e4..0000000 --- a/res/drawable-xxxhdpi/ic_sysbar_home_carmode_pixel.png +++ /dev/null diff --git a/res/drawable-xxxhdpi/ic_sysbar_home_pixel.png b/res/drawable-xxxhdpi/ic_sysbar_home_pixel.png Binary files differdeleted file mode 100644 index 45ac145..0000000 --- a/res/drawable-xxxhdpi/ic_sysbar_home_pixel.png +++ /dev/null diff --git a/res/drawable/action_item_btn.xml b/res/drawable/action_item_btn.xml deleted file mode 100644 index 3057c40..0000000 --- a/res/drawable/action_item_btn.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<selector xmlns:android="http://schemas.android.com/apk/res/android" - android:dither="true"> - - <item - android:state_window_focused="false" - android:drawable="@android:color/transparent" /> - <item - android:state_pressed="true" - android:drawable="@drawable/action_item_selected"/> - <item - android:state_focused="true" - android:drawable="@drawable/action_item_selected"/> - <item - android:drawable="@android:color/transparent"/> - -</selector> diff --git a/res/drawable/action_item_selected.xml b/res/drawable/action_item_selected.xml deleted file mode 100644 index 249e7b3..0000000 --- a/res/drawable/action_item_selected.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="#267a7a7a" android:pathData="M0,0H24V24H0" />
-</vector>
diff --git a/res/drawable/edit_mode.xml b/res/drawable/edit_mode.xml deleted file mode 100644 index f80aa6e..0000000 --- a/res/drawable/edit_mode.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="50.000000dp" - android:height="50.000000dp" - android:viewportWidth="512.000000" - android:viewportHeight="512.000000"> - - <group - android:translateY="512.000000" - android:scaleX="0.100000" - android:scaleY="-0.100000"> - <path - android:fillColor="@*android:color/accent_device_default_light" - android:strokeWidth="1" - android:pathData="M2235 5045 c-278 -36 -525 -111 -780 -235 -240 -117 -452 -268 -648 -459 -407 -397 --664 -917 -733 -1483 -20 -165 -15 -540 10 -691 166 -1024 930 -1833 1942 -2056 -310 -69 748 -69 1058 0 296 65 588 187 831 346 541 356 917 884 1069 1507 45 183 -58 289 63 531 8 365 -29 601 -149 935 -74 208 -235 492 -388 685 -90 114 -258 284 --375 378 -371 300 -803 484 -1275 543 -141 17 -486 17 -625 -1z" /> - <path - android:fillColor="@color/edit_mode_check_mark_color" - android:strokeWidth="1" - android:pathData="M3303 3663 c-44 -54 -786 -1016 -1033 -1340 -47 -62 -89 -112 -93 -112 -5 -1 -117 -104 -249 232 -131 127 -248 236 -258 241 -10 4 -24 4 -32 0 -8 -5 -78 -76 -156 --159 -104 -110 -142 -157 -142 -175 0 -20 87 -109 423 -436 233 -226 434 -417 447 --424 20 -11 26 -9 55 21 27 27 1034 1329 1372 1773 84 110 93 130 71 158 -26 33 --332 268 -349 268 -9 0 -35 -21 -56 -47z" /> - </group> -</vector> diff --git a/res/drawable/ic_assistant_sound_search.xml b/res/drawable/ic_assistant_sound_search.xml deleted file mode 100644 index db11d6c..0000000 --- a/res/drawable/ic_assistant_sound_search.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Copyright (C) 2018 The Dirty Unicorns 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="30.0dp" - android:height="30.0dp" - android:viewportWidth="96.0" - android:viewportHeight="96.0"> - <path - android:fillColor="@color/icon_color_sound_search" - android:pathData="m 47.999997,18.329373 h 23.733698 v 11.866848 h -17.79676 v 32.639091 c 0,8.188699 -6.646618,14.835319 -14.835313,14.835314 -8.188698,0 -14.835315,-6.646615 -14.835317,-14.835314 2e-6,-8.188697 6.64662,-14.835313 14.835317,-14.835313 3.382285,0 6.406168,1.12578 8.898378,3.024609 z"/> -</vector> diff --git a/res/drawable/ic_assistant_sound_search_dark.xml b/res/drawable/ic_assistant_sound_search_dark.xml deleted file mode 100644 index 29ab440..0000000 --- a/res/drawable/ic_assistant_sound_search_dark.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Copyright (C) 2018 The Dirty Unicorns 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="30.0dp" - android:height="30.0dp" - android:viewportWidth="96.0" - android:viewportHeight="96.0"> - <path - android:fillColor="@color/icon_color_dark" - android:pathData="m 47.999997,18.329373 h 23.733698 v 11.866848 h -17.79676 v 32.639091 c 0,8.188699 -6.646618,14.835319 -14.835313,14.835314 -8.188698,0 -14.835315,-6.646615 -14.835317,-14.835314 2e-6,-8.188697 6.64662,-14.835313 14.835317,-14.835313 3.382285,0 6.406168,1.12578 8.898378,3.024609 z"/> -</vector> diff --git a/res/drawable/ic_eos_fling.xml b/res/drawable/ic_eos_fling.xml deleted file mode 100644 index 35bcdb8..0000000 --- a/res/drawable/ic_eos_fling.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="36dp" - android:height="36dp" - android:viewportWidth="36" - android:viewportHeight="36"> - - <path - android:fillColor="#ffffff" - android:pathData="m 18.000001,24.339682 c 3.501309,0 6.339682,-2.838372 6.339682,-6.339683 0,-3.501309 -2.838373,-6.339682 -6.339682,-6.339682 -3.501311,0 -6.339683,2.838373 -6.339683,6.339682 0,3.501311 2.838372,6.339683 6.339683,6.339683 z M 18,29.384397 C 11.712571,29.384397 6.6156025,24.287429 6.6156025,18 6.6156025,11.712573 11.712571,6.6156032 18,6.6156032 c 6.287429,0 11.384397,5.0969678 11.384397,11.3843968 0,6.287429 -5.096968,11.384397 -11.384397,11.384397 z m 0,-3.252685 v 0 c 4.49102,0 8.131712,-3.640691 8.131712,-8.131712 0,-4.49102 -3.640692,-8.1317116 -8.131712,-8.1317116 -4.491021,0 -8.1317115,3.6406906 -8.1317115,8.1317116 0,4.491021 3.6406905,8.131712 8.1317115,8.131712 z" /> - -</vector> diff --git a/res/drawable/ic_eos_fling_dark.xml b/res/drawable/ic_eos_fling_dark.xml deleted file mode 100644 index 61a1855..0000000 --- a/res/drawable/ic_eos_fling_dark.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="36dp" - android:height="36dp" - android:viewportWidth="36" - android:viewportHeight="36"> - - <path - android:fillColor="#000000" - android:pathData="m 18.000001,24.339682 c 3.501309,0 6.339682,-2.838372 6.339682,-6.339683 0,-3.501309 -2.838373,-6.339682 -6.339682,-6.339682 -3.501311,0 -6.339683,2.838373 -6.339683,6.339682 0,3.501311 2.838372,6.339683 6.339683,6.339683 z M 18,29.384397 C 11.712571,29.384397 6.6156025,24.287429 6.6156025,18 6.6156025,11.712573 11.712571,6.6156032 18,6.6156032 c 6.287429,0 11.384397,5.0969678 11.384397,11.3843968 0,6.287429 -5.096968,11.384397 -11.384397,11.384397 z m 0,-3.252685 v 0 c 4.49102,0 8.131712,-3.640691 8.131712,-8.131712 0,-4.49102 -3.640692,-8.1317116 -8.131712,-8.1317116 -4.491021,0 -8.1317115,3.6406906 -8.1317115,8.1317116 0,4.491021 3.6406905,8.131712 8.1317115,8.131712 z" /> - -</vector> diff --git a/res/drawable/ic_eos_fling_land.xml b/res/drawable/ic_eos_fling_land.xml deleted file mode 100644 index b3e0258..0000000 --- a/res/drawable/ic_eos_fling_land.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="36dp" - android:height="36dp" - android:viewportWidth="36" - android:viewportHeight="36"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="m 18.000001,24.339682 c 3.501309,0 6.339682,-2.838372 6.339682,-6.339683 0,-3.501309 -2.838373,-6.339682 -6.339682,-6.339682 -3.501311,0 -6.339683,2.838373 -6.339683,6.339682 0,3.501311 2.838372,6.339683 6.339683,6.339683 z M 18,29.384397 C 11.712571,29.384397 6.6156025,24.287429 6.6156025,18 6.6156025,11.712573 11.712571,6.6156032 18,6.6156032 c 6.287429,0 11.384397,5.0969678 11.384397,11.3843968 0,6.287429 -5.096968,11.384397 -11.384397,11.384397 z m 0,-3.252685 v 0 c 4.49102,0 8.131712,-3.640691 8.131712,-8.131712 0,-4.49102 -3.640692,-8.1317116 -8.131712,-8.1317116 -4.491021,0 -8.1317115,3.6406906 -8.1317115,8.1317116 0,4.491021 3.6406905,8.131712 8.1317115,8.131712 z" /> - -</vector> diff --git a/res/drawable/ic_eos_fling_land_dark.xml b/res/drawable/ic_eos_fling_land_dark.xml deleted file mode 100644 index b3e0258..0000000 --- a/res/drawable/ic_eos_fling_land_dark.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="36dp" - android:height="36dp" - android:viewportWidth="36" - android:viewportHeight="36"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="m 18.000001,24.339682 c 3.501309,0 6.339682,-2.838372 6.339682,-6.339683 0,-3.501309 -2.838373,-6.339682 -6.339682,-6.339682 -3.501311,0 -6.339683,2.838373 -6.339683,6.339682 0,3.501311 2.838372,6.339683 6.339683,6.339683 z M 18,29.384397 C 11.712571,29.384397 6.6156025,24.287429 6.6156025,18 6.6156025,11.712573 11.712571,6.6156032 18,6.6156032 c 6.287429,0 11.384397,5.0969678 11.384397,11.3843968 0,6.287429 -5.096968,11.384397 -11.384397,11.384397 z m 0,-3.252685 v 0 c 4.49102,0 8.131712,-3.640691 8.131712,-8.131712 0,-4.49102 -3.640692,-8.1317116 -8.131712,-8.1317116 -4.491021,0 -8.1317115,3.6406906 -8.1317115,8.1317116 0,4.491021 3.6406905,8.131712 8.1317115,8.131712 z" /> - -</vector> diff --git a/res/drawable/ic_ime_switcher_smartbar.xml b/res/drawable/ic_ime_switcher_smartbar.xml deleted file mode 100644 index 2e993fd..0000000 --- a/res/drawable/ic_ime_switcher_smartbar.xml +++ /dev/null @@ -1,25 +0,0 @@ -<!-- - ~ Copyright (C) 2014 The Android Open Source Project - ~ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License - --> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24.0dp" - android:height="24.0dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:pathData="M20.000000,5.000000L4.000000,5.000000C2.900000,5.000000 2.000000,5.900000 2.000000,7.000000l0.000000,10.000000c0.000000,1.100000 0.900000,2.000000 2.000000,2.000000l16.000000,0.000000c1.100000,0.000000 2.000000,-0.900000 2.000000,-2.000000L22.000000,7.000000C22.000000,5.900000 21.100000,5.000000 20.000000,5.000000zM11.000000,8.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000L11.000000,8.000000zM11.000000,11.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000L11.000000,11.000000zM8.000000,8.000000l2.000000,0.000000l0.000000,2.000000L8.000000,10.000000L8.000000,8.000000zM8.000000,11.000000l2.000000,0.000000l0.000000,2.000000L8.000000,13.000000L8.000000,11.000000zM7.000000,13.000000L5.000000,13.000000l0.000000,-2.000000l2.000000,0.000000L7.000000,13.000000zM7.000000,10.000000L5.000000,10.000000L5.000000,8.000000l2.000000,0.000000L7.000000,10.000000zM16.000000,17.000000L8.000000,17.000000l0.000000,-2.000000l8.000000,0.000000L16.000000,17.000000zM16.000000,13.000000l-2.000000,0.000000l0.000000,-2.000000l2.000000,0.000000L16.000000,13.000000zM16.000000,10.000000l-2.000000,0.000000L14.000000,8.000000l2.000000,0.000000L16.000000,10.000000zM19.000000,13.000000l-2.000000,0.000000l0.000000,-2.000000l2.000000,0.000000L19.000000,13.000000zM19.000000,10.000000l-2.000000,0.000000L17.000000,8.000000l2.000000,0.000000L19.000000,10.000000z" - android:fillColor="@color/icon_color_ime_switcher"/> -</vector> diff --git a/res/drawable/ic_ime_switcher_smartbar_dark.xml b/res/drawable/ic_ime_switcher_smartbar_dark.xml deleted file mode 100644 index 3610600..0000000 --- a/res/drawable/ic_ime_switcher_smartbar_dark.xml +++ /dev/null @@ -1,25 +0,0 @@ -<!-- - ~ Copyright (C) 2014 The Android Open Source Project - ~ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License - --> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24.0dp" - android:height="24.0dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:pathData="M20.000000,5.000000L4.000000,5.000000C2.900000,5.000000 2.000000,5.900000 2.000000,7.000000l0.000000,10.000000c0.000000,1.100000 0.900000,2.000000 2.000000,2.000000l16.000000,0.000000c1.100000,0.000000 2.000000,-0.900000 2.000000,-2.000000L22.000000,7.000000C22.000000,5.900000 21.100000,5.000000 20.000000,5.000000zM11.000000,8.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000L11.000000,8.000000zM11.000000,11.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000L11.000000,11.000000zM8.000000,8.000000l2.000000,0.000000l0.000000,2.000000L8.000000,10.000000L8.000000,8.000000zM8.000000,11.000000l2.000000,0.000000l0.000000,2.000000L8.000000,13.000000L8.000000,11.000000zM7.000000,13.000000L5.000000,13.000000l0.000000,-2.000000l2.000000,0.000000L7.000000,13.000000zM7.000000,10.000000L5.000000,10.000000L5.000000,8.000000l2.000000,0.000000L7.000000,10.000000zM16.000000,17.000000L8.000000,17.000000l0.000000,-2.000000l8.000000,0.000000L16.000000,17.000000zM16.000000,13.000000l-2.000000,0.000000l0.000000,-2.000000l2.000000,0.000000L16.000000,13.000000zM16.000000,10.000000l-2.000000,0.000000L14.000000,8.000000l2.000000,0.000000L16.000000,10.000000zM19.000000,13.000000l-2.000000,0.000000l0.000000,-2.000000l2.000000,0.000000L19.000000,13.000000zM19.000000,10.000000l-2.000000,0.000000L17.000000,8.000000l2.000000,0.000000L19.000000,10.000000z" - android:fillColor="@color/icon_color_dark"/> -</vector> diff --git a/res/drawable/ic_skip_next.xml b/res/drawable/ic_skip_next.xml deleted file mode 100644 index b5c2025..0000000 --- a/res/drawable/ic_skip_next.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="22dp" - android:height="22dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:fillColor="#FFFFFFFF" - android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z" /> -</vector> diff --git a/res/drawable/ic_skip_next_dark.xml b/res/drawable/ic_skip_next_dark.xml deleted file mode 100644 index dde6ad9..0000000 --- a/res/drawable/ic_skip_next_dark.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2017 The Dirty Unicorns 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="22dp" - android:height="22dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z" /> -</vector> diff --git a/res/drawable/ic_skip_previous.xml b/res/drawable/ic_skip_previous.xml deleted file mode 100644 index 5f126d7..0000000 --- a/res/drawable/ic_skip_previous.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="22dp" - android:height="22dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - <path - android:fillColor="#FFFFFFFF" - android:pathData="M6,6h2v12L6,18zM9.5,12l8.5,6L18,6z" /> -</vector> diff --git a/res/drawable/ic_skip_previous_dark.xml b/res/drawable/ic_skip_previous_dark.xml deleted file mode 100644 index f79fae8..0000000 --- a/res/drawable/ic_skip_previous_dark.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2017 The Dirty Unicorns 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="22dp" - android:height="22dp" - android:viewportWidth="24.0" - android:viewportHeight="24.0"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M6 6h2v12H6zm3.5 6l8.5 6V6z" /> -</vector> diff --git a/res/drawable/ic_smartbar_editor_actions.xml b/res/drawable/ic_smartbar_editor_actions.xml deleted file mode 100644 index 86722fd..0000000 --- a/res/drawable/ic_smartbar_editor_actions.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/flag_checkered.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M14.4,6H20V16H13L12.6,14H7V21H5V4H14L14.4,6M14,14H16V12H18V10H16V8H14V10L13,8V6H11V8H9V6H7V8H9V10H7V12H9V10H11V12H13V10L14,12V14M11,10V8H13V10H11M14,10H16V12H14V10Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_add.xml b/res/drawable/ic_smartbar_editor_add.xml deleted file mode 100644 index 28a135a..0000000 --- a/res/drawable/ic_smartbar_editor_add.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/plus.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_cancel.xml b/res/drawable/ic_smartbar_editor_cancel.xml deleted file mode 100644 index 16e0a8d..0000000 --- a/res/drawable/ic_smartbar_editor_cancel.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/block_helper.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M12,0A12,12 0 0,1 24,12A12,12 0 0,1 12,24A12,12 0 0,1 0,12A12,12 0 0,1 12,0M12,2A10,10 0 0,0 2,12C2,14.4 2.85,16.6 4.26,18.33L18.33,4.26C16.6,2.85 14.4,2 12,2M12,22A10,10 0 0,0 22,12C22,9.6 21.15,7.4 19.74,5.67L5.67,19.74C7.4,21.15 9.6,22 12,22Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_double_tap.xml b/res/drawable/ic_smartbar_editor_double_tap.xml deleted file mode 100644 index 4380ae5..0000000 --- a/res/drawable/ic_smartbar_editor_double_tap.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/view_stream.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M4,5V11H21V5M4,18H21V12H4V18Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_finish.xml b/res/drawable/ic_smartbar_editor_finish.xml deleted file mode 100644 index 9a4500d..0000000 --- a/res/drawable/ic_smartbar_editor_finish.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/window_close.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M13.46,12L19,17.54V19H17.54L12,13.46L6.46,19H5V17.54L10.54,12L5,6.46V5H6.46L12,10.54L17.54,5H19V6.46L13.46,12Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_icon.xml b/res/drawable/ic_smartbar_editor_icon.xml deleted file mode 100644 index 24065d8..0000000 --- a/res/drawable/ic_smartbar_editor_icon.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/eyedropper.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_icon_color.xml b/res/drawable/ic_smartbar_editor_icon_color.xml deleted file mode 100644 index 1bd0f22..0000000 --- a/res/drawable/ic_smartbar_editor_icon_color.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/format_color_fill.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M19,11.5C19,11.5 17,13.67 17,15A2,2 0 0,0 19,17A2,2 0 0,0 21,15C21,13.67 19,11.5 19,11.5M5.21,10L10,5.21L14.79,10M16.56,8.94L7.62,0L6.21,1.41L8.59,3.79L3.44,8.94C2.85,9.5 2.85,10.47 3.44,11.06L8.94,16.56C9.23,16.85 9.62,17 10,17C10.38,17 10.77,16.85 11.06,16.56L16.56,11.06C17.15,10.47 17.15,9.5 16.56,8.94Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_icon_gallery.xml b/res/drawable/ic_smartbar_editor_icon_gallery.xml deleted file mode 100644 index 4239cb6..0000000 --- a/res/drawable/ic_smartbar_editor_icon_gallery.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/harddisk.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_icon_pack.xml b/res/drawable/ic_smartbar_editor_icon_pack.xml deleted file mode 100644 index 6eed2d9..0000000 --- a/res/drawable/ic_smartbar_editor_icon_pack.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/image_multiple.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_icon_reset.xml b/res/drawable/ic_smartbar_editor_icon_reset.xml deleted file mode 100644 index 34df500..0000000 --- a/res/drawable/ic_smartbar_editor_icon_reset.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/undo.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_long_press.xml b/res/drawable/ic_smartbar_editor_long_press.xml deleted file mode 100644 index 69f91b2..0000000 --- a/res/drawable/ic_smartbar_editor_long_press.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/view_week.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M13,5H10A1,1 0 0,0 9,6V18A1,1 0 0,0 10,19H13A1,1 0 0,0 14,18V6A1,1 0 0,0 13,5M20,5H17A1,1 0 0,0 16,6V18A1,1 0 0,0 17,19H20A1,1 0 0,0 21,18V6A1,1 0 0,0 20,5M6,5H3A1,1 0 0,0 2,6V18A1,1 0 0,0 3,19H6A1,1 0 0,0 7,18V6A1,1 0 0,0 6,5Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_remove.xml b/res/drawable/ic_smartbar_editor_remove.xml deleted file mode 100644 index 048d891..0000000 --- a/res/drawable/ic_smartbar_editor_remove.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/content_cut.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M19,3L13,9L15,11L22,4V3M12,12.5A0.5,0.5 0 0,1 11.5,12A0.5,0.5 0 0,1 12,11.5A0.5,0.5 0 0,1 12.5,12A0.5,0.5 0 0,1 12,12.5M6,20A2,2 0 0,1 4,18C4,16.89 4.9,16 6,16A2,2 0 0,1 8,18C8,19.11 7.1,20 6,20M6,8A2,2 0 0,1 4,6C4,4.89 4.9,4 6,4A2,2 0 0,1 8,6C8,7.11 7.1,8 6,8M9.64,7.64C9.87,7.14 10,6.59 10,6A4,4 0 0,0 6,2A4,4 0 0,0 2,6A4,4 0 0,0 6,10C6.59,10 7.14,9.87 7.64,9.64L10,12L7.64,14.36C7.14,14.13 6.59,14 6,14A4,4 0 0,0 2,18A4,4 0 0,0 6,22A4,4 0 0,0 10,18C10,17.41 9.87,16.86 9.64,16.36L12,14L19,21H22V20L9.64,7.64Z" />
-</vector>
diff --git a/res/drawable/ic_smartbar_editor_single_tap.xml b/res/drawable/ic_smartbar_editor_single_tap.xml deleted file mode 100644 index 18a7833..0000000 --- a/res/drawable/ic_smartbar_editor_single_tap.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/window_minimize.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/smartbar_editor_popup_icon_fill" android:pathData="M20,14H4V10H20" />
-</vector>
diff --git a/res/drawable/ic_smartbar_screen_pinning_off.xml b/res/drawable/ic_smartbar_screen_pinning_off.xml deleted file mode 100644 index 112ce8b..0000000 --- a/res/drawable/ic_smartbar_screen_pinning_off.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/pin_off.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="#fff" android:pathData="M2,5.27L3.28,4L20,20.72L18.73,22L12.8,16.07V22H11.2V16H6V14L8,12V11.27L2,5.27M16,12L18,14V16H17.82L8,6.18V4H7V2H17V4H16V12Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_assist.xml b/res/drawable/ic_sysbar_assist.xml deleted file mode 100644 index 19d5725..0000000 --- a/res/drawable/ic_sysbar_assist.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/assistant.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_search_assistant" android:pathData="M19,2H5A2,2 0 0,0 3,4V18A2,2 0 0,0 5,20H9L12,23L15,20H19A2,2 0 0,0 21,18V4A2,2 0 0,0 19,2M13.88,12.88L12,17L10.12,12.88L6,11L10.12,9.12L12,5L13.88,9.12L18,11" />
-</vector>
diff --git a/res/drawable/ic_sysbar_assist_dark.xml b/res/drawable/ic_sysbar_assist_dark.xml deleted file mode 100644 index e2bb940..0000000 --- a/res/drawable/ic_sysbar_assist_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/assistant.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M19,2H5A2,2 0 0,0 3,4V18A2,2 0 0,0 5,20H9L12,23L15,20H19A2,2 0 0,0 21,18V4A2,2 0 0,0 19,2M13.88,12.88L12,17L10.12,12.88L6,11L10.12,9.12L12,5L13.88,9.12L18,11" />
-</vector>
diff --git a/res/drawable/ic_sysbar_back.xml b/res/drawable/ic_sysbar_back.xml deleted file mode 100644 index 5847002..0000000 --- a/res/drawable/ic_sysbar_back.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="21dp" - android:height="21dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_back" - android:pathData="M64.55,12.62C67.66,10.72 72.05,13.33 71.99,16.94C72.12,35 72.01,53.07 72.05,71.13C71.97,73.99 69.63,75.84 67.01,76.34C64.39,75.81 62.34,74.16 60.02,72.95C46.32,65.08 32.64,57.17 18.9,49.36C15.15,47.63 15.09,41.57 18.78,39.72C34.03,30.68 49.26,21.61 64.55,12.62Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_back_dark.xml b/res/drawable/ic_sysbar_back_dark.xml deleted file mode 100644 index 8be7ed6..0000000 --- a/res/drawable/ic_sysbar_back_dark.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="20dp" - android:height="20dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M64.55,12.62C67.66,10.72 72.05,13.33 71.99,16.94C72.12,35 72.01,53.07 72.05,71.13C71.97,73.99 69.63,75.84 67.01,76.34C64.39,75.81 62.34,74.16 60.02,72.95C46.32,65.08 32.64,57.17 18.9,49.36C15.15,47.63 15.09,41.57 18.78,39.72C34.03,30.68 49.26,21.61 64.55,12.62Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_back_ime.xml b/res/drawable/ic_sysbar_back_ime.xml deleted file mode 100644 index d7d1e54..0000000 --- a/res/drawable/ic_sysbar_back_ime.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="21dp" - android:height="21dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_back" - android:pathData="M16.11,16.11C34.41,15.87 52.74,16.05 71.05,16.02C74.76,15.94 77.25,20.45 75.4,23.61C66.61,39.03 57.76,54.44 48.87,69.8C46.91,72.92 42.05,72.85 39.97,69.88C30.84,54.46 21.66,39.05 12.58,23.61C10.99,20.69 12.76,16.63 16.11,16.11Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_back_ime_dark.xml b/res/drawable/ic_sysbar_back_ime_dark.xml deleted file mode 100644 index 9a7b28f..0000000 --- a/res/drawable/ic_sysbar_back_ime_dark.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="20dp" - android:height="20dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M16.11,16.11C34.41,15.87 52.74,16.05 71.05,16.02C74.76,15.94 77.25,20.45 75.4,23.61C66.61,39.03 57.76,54.44 48.87,69.8C46.91,72.92 42.05,72.85 39.97,69.88C30.84,54.46 21.66,39.05 12.58,23.61C10.99,20.69 12.76,16.63 16.11,16.11Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_back_land.xml b/res/drawable/ic_sysbar_back_land.xml deleted file mode 100644 index d7d1e54..0000000 --- a/res/drawable/ic_sysbar_back_land.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="21dp" - android:height="21dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_back" - android:pathData="M16.11,16.11C34.41,15.87 52.74,16.05 71.05,16.02C74.76,15.94 77.25,20.45 75.4,23.61C66.61,39.03 57.76,54.44 48.87,69.8C46.91,72.92 42.05,72.85 39.97,69.88C30.84,54.46 21.66,39.05 12.58,23.61C10.99,20.69 12.76,16.63 16.11,16.11Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_back_land_dark.xml b/res/drawable/ic_sysbar_back_land_dark.xml deleted file mode 100644 index 9a7b28f..0000000 --- a/res/drawable/ic_sysbar_back_land_dark.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="20dp" - android:height="20dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M16.11,16.11C34.41,15.87 52.74,16.05 71.05,16.02C74.76,15.94 77.25,20.45 75.4,23.61C66.61,39.03 57.76,54.44 48.87,69.8C46.91,72.92 42.05,72.85 39.97,69.88C30.84,54.46 21.66,39.05 12.58,23.61C10.99,20.69 12.76,16.63 16.11,16.11Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_bt.xml b/res/drawable/ic_sysbar_bt.xml deleted file mode 100644 index d06d1d3..0000000 --- a/res/drawable/ic_sysbar_bt.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/bluetooth.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_bluetooth" android:pathData="M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12L17.71,7.71Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_bt_dark.xml b/res/drawable/ic_sysbar_bt_dark.xml deleted file mode 100644 index 81679e1..0000000 --- a/res/drawable/ic_sysbar_bt_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/bluetooth.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M14.88,16.29L13,18.17V14.41M13,5.83L14.88,7.71L13,9.58M17.71,7.71L12,2H11V9.58L6.41,5L5,6.41L10.59,12L5,17.58L6.41,19L11,14.41V22H12L17.71,16.29L13.41,12L17.71,7.71Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_clear_notifications.xml b/res/drawable/ic_sysbar_clear_notifications.xml deleted file mode 100644 index 2a1fbc6..0000000 --- a/res/drawable/ic_sysbar_clear_notifications.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/clear_notifications.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" - android:width="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_clear_notifications" android:pathData="M5,13H19V11H5M3,17H17V15H3M7,7V9H21V7" /> -</vector> diff --git a/res/drawable/ic_sysbar_clear_notifications_dark.xml b/res/drawable/ic_sysbar_clear_notifications_dark.xml deleted file mode 100644 index d8480e8..0000000 --- a/res/drawable/ic_sysbar_clear_notifications_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/clear_notifications.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" - android:width="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_dark" android:pathData="M5,13H19V11H5M3,17H17V15H3M7,7V9H21V7" /> -</vector> diff --git a/res/drawable/ic_sysbar_docked.xml b/res/drawable/ic_sysbar_docked.xml deleted file mode 100644 index d11fb18..0000000 --- a/res/drawable/ic_sysbar_docked.xml +++ /dev/null @@ -1,7 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="21dp"
- android:width="21dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_split_screen" android:pathData="M20,3H3A1,1 0 0,0 2,4V10A1,1 0 0,0 3,11H20A1,1 0 0,0 21,10V4A1,1 0 0,0 20,3M20,13H3A1,1 0 0,0 2,14V20A1,1 0 0,0 3,21H20A1,1 0 0,0 21,20V14A1,1 0 0,0 20,13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_docked_dark.xml b/res/drawable/ic_sysbar_docked_dark.xml deleted file mode 100644 index 7dd39a5..0000000 --- a/res/drawable/ic_sysbar_docked_dark.xml +++ /dev/null @@ -1,7 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="19dp"
- android:width="19dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M20,3H3A1,1 0 0,0 2,4V10A1,1 0 0,0 3,11H20A1,1 0 0,0 21,10V4A1,1 0 0,0 20,3M20,13H3A1,1 0 0,0 2,14V20A1,1 0 0,0 3,21H20A1,1 0 0,0 21,20V14A1,1 0 0,0 20,13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_editing_smartbar.xml b/res/drawable/ic_sysbar_editing_smartbar.xml deleted file mode 100644 index 5d66834..0000000 --- a/res/drawable/ic_sysbar_editing_smartbar.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/editing_smartbar.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_editing_smartbar" android:pathData="M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M18,14V12H12.5L10.5,14H18M6,14H8.5L15.35,7.12C15.55,6.93 15.55,6.61 15.35,6.41L13.59,4.65C13.39,4.45 13.07,4.45 12.88,4.65L6,11.53V14Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_editing_smartbar_dark.xml b/res/drawable/ic_sysbar_editing_smartbar_dark.xml deleted file mode 100644 index 60b5ee8..0000000 --- a/res/drawable/ic_sysbar_editing_smartbar_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/editing_smartbar.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_dark" android:pathData="M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H16L12,22L8,18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M18,14V12H12.5L10.5,14H18M6,14H8.5L15.35,7.12C15.55,6.93 15.55,6.61 15.35,6.41L13.59,4.65C13.39,4.45 13.07,4.45 12.88,4.65L6,11.53V14Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_expanded_desktop.xml b/res/drawable/ic_sysbar_expanded_desktop.xml deleted file mode 100644 index 4c4344f..0000000 --- a/res/drawable/ic_sysbar_expanded_desktop.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/arrow_expand.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_expanded_desktop" android:pathData="M9.5,13.09L10.91,14.5L6.41,19H10V21H3V14H5V17.59L9.5,13.09M10.91,9.5L9.5,10.91L5,6.41V10H3V3H10V5H6.41L10.91,9.5M14.5,13.09L19,17.59V14H21V21H14V19H17.59L13.09,14.5L14.5,13.09M13.09,9.5L17.59,5H14V3H21V10H19V6.41L14.5,10.91L13.09,9.5Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_expanded_desktop_dark.xml b/res/drawable/ic_sysbar_expanded_desktop_dark.xml deleted file mode 100644 index 045ade2..0000000 --- a/res/drawable/ic_sysbar_expanded_desktop_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/arrow_expand.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M9.5,13.09L10.91,14.5L6.41,19H10V21H3V14H5V17.59L9.5,13.09M10.91,9.5L9.5,10.91L5,6.41V10H3V3H10V5H6.41L10.91,9.5M14.5,13.09L19,17.59V14H21V21H14V19H17.59L13.09,14.5L14.5,13.09M13.09,9.5L17.59,5H14V3H21V10H19V6.41L14.5,10.91L13.09,9.5Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_google_now_on_tap.xml b/res/drawable/ic_sysbar_google_now_on_tap.xml deleted file mode 100644 index 638f04f..0000000 --- a/res/drawable/ic_sysbar_google_now_on_tap.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/google-glass.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_google_now_on_tap" android:pathData="M13,11V13.5H18.87C18.26,17 15.5,19.5 12,19.5A7.5,7.5 0 0,1 4.5,12A7.5,7.5 0 0,1 12,4.5C14.09,4.5 15.9,5.39 17.16,6.84L18.93,5.06C17.24,3.18 14.83,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22C17.5,22 21.5,17.5 21.5,12V11H13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_google_now_on_tap_dark.xml b/res/drawable/ic_sysbar_google_now_on_tap_dark.xml deleted file mode 100644 index b12a923..0000000 --- a/res/drawable/ic_sysbar_google_now_on_tap_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/google-glass.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M13,11V13.5H18.87C18.26,17 15.5,19.5 12,19.5A7.5,7.5 0 0,1 4.5,12A7.5,7.5 0 0,1 12,4.5C14.09,4.5 15.9,5.39 17.16,6.84L18.93,5.06C17.24,3.18 14.83,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22C17.5,22 21.5,17.5 21.5,12V11H13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_home.xml b/res/drawable/ic_sysbar_home.xml deleted file mode 100644 index b8a5e15..0000000 --- a/res/drawable/ic_sysbar_home.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="23dp" - android:height="23dp" - android:viewportWidth="132" - android:viewportHeight="132"> - - <path - android:fillColor="@color/icon_color_home" - android:strokeWidth="1" - android:pathData="M55.5,22.4 C47.1,24.5,40.8,28.1,34.5,34.5 C16.7,52.2,16.7,79.8,34.5,97.5 -C48.1,111.2,67.9,114.6,85.7,106.3 C93.3,102.8,102.8,93.3,106.3,85.7 -C114.6,67.9,111.2,48.1,97.5,34.5 C86.2,23.1,70.6,18.6,55.5,22.4 Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_home_dark.xml b/res/drawable/ic_sysbar_home_dark.xml deleted file mode 100644 index 10091ac..0000000 --- a/res/drawable/ic_sysbar_home_dark.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="23dp" - android:height="23dp" - android:viewportWidth="132" - android:viewportHeight="132"> - - <path - android:fillColor="@color/icon_color_dark" - android:strokeWidth="1" - android:pathData="M55.5,22.4 C47.1,24.5,40.8,28.1,34.5,34.5 C16.7,52.2,16.7,79.8,34.5,97.5 -C48.1,111.2,67.9,114.6,85.7,106.3 C93.3,102.8,102.8,93.3,106.3,85.7 -C114.6,67.9,111.2,48.1,97.5,34.5 C86.2,23.1,70.6,18.6,55.5,22.4 Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_home_land.xml b/res/drawable/ic_sysbar_home_land.xml deleted file mode 100644 index b8a5e15..0000000 --- a/res/drawable/ic_sysbar_home_land.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="23dp" - android:height="23dp" - android:viewportWidth="132" - android:viewportHeight="132"> - - <path - android:fillColor="@color/icon_color_home" - android:strokeWidth="1" - android:pathData="M55.5,22.4 C47.1,24.5,40.8,28.1,34.5,34.5 C16.7,52.2,16.7,79.8,34.5,97.5 -C48.1,111.2,67.9,114.6,85.7,106.3 C93.3,102.8,102.8,93.3,106.3,85.7 -C114.6,67.9,111.2,48.1,97.5,34.5 C86.2,23.1,70.6,18.6,55.5,22.4 Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_home_land_dark.xml b/res/drawable/ic_sysbar_home_land_dark.xml deleted file mode 100644 index 10091ac..0000000 --- a/res/drawable/ic_sysbar_home_land_dark.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="23dp" - android:height="23dp" - android:viewportWidth="132" - android:viewportHeight="132"> - - <path - android:fillColor="@color/icon_color_dark" - android:strokeWidth="1" - android:pathData="M55.5,22.4 C47.1,24.5,40.8,28.1,34.5,34.5 C16.7,52.2,16.7,79.8,34.5,97.5 -C48.1,111.2,67.9,114.6,85.7,106.3 C93.3,102.8,102.8,93.3,106.3,85.7 -C114.6,67.9,111.2,48.1,97.5,34.5 C86.2,23.1,70.6,18.6,55.5,22.4 Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_hotspot.xml b/res/drawable/ic_sysbar_hotspot.xml deleted file mode 100644 index c7df50f..0000000 --- a/res/drawable/ic_sysbar_hotspot.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/access_point_network.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_hotspot" android:pathData="M4.93,2.93C3.12,4.74 2,7.24 2,10C2,12.76 3.12,15.26 4.93,17.07L6.34,15.66C4.89,14.22 4,12.22 4,10C4,7.79 4.89,5.78 6.34,4.34L4.93,2.93M19.07,2.93L17.66,4.34C19.11,5.78 20,7.79 20,10C20,12.22 19.11,14.22 17.66,15.66L19.07,17.07C20.88,15.26 22,12.76 22,10C22,7.24 20.88,4.74 19.07,2.93M7.76,5.76C6.67,6.85 6,8.35 6,10C6,11.65 6.67,13.15 7.76,14.24L9.17,12.83C8.45,12.11 8,11.11 8,10C8,8.89 8.45,7.89 9.17,7.17L7.76,5.76M16.24,5.76L14.83,7.17C15.55,7.89 16,8.89 16,10C16,11.11 15.55,12.11 14.83,12.83L16.24,14.24C17.33,13.15 18,11.65 18,10C18,8.35 17.33,6.85 16.24,5.76M12,8A2,2 0 0,0 10,10A2,2 0 0,0 12,12A2,2 0 0,0 14,10A2,2 0 0,0 12,8M11,14V18H10A1,1 0 0,0 9,19H2V21H9A1,1 0 0,0 10,22H14A1,1 0 0,0 15,21H22V19H15A1,1 0 0,0 14,18H13V14H11Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_hotspot_dark.xml b/res/drawable/ic_sysbar_hotspot_dark.xml deleted file mode 100644 index 4347813..0000000 --- a/res/drawable/ic_sysbar_hotspot_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/access_point_network.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M4.93,2.93C3.12,4.74 2,7.24 2,10C2,12.76 3.12,15.26 4.93,17.07L6.34,15.66C4.89,14.22 4,12.22 4,10C4,7.79 4.89,5.78 6.34,4.34L4.93,2.93M19.07,2.93L17.66,4.34C19.11,5.78 20,7.79 20,10C20,12.22 19.11,14.22 17.66,15.66L19.07,17.07C20.88,15.26 22,12.76 22,10C22,7.24 20.88,4.74 19.07,2.93M7.76,5.76C6.67,6.85 6,8.35 6,10C6,11.65 6.67,13.15 7.76,14.24L9.17,12.83C8.45,12.11 8,11.11 8,10C8,8.89 8.45,7.89 9.17,7.17L7.76,5.76M16.24,5.76L14.83,7.17C15.55,7.89 16,8.89 16,10C16,11.11 15.55,12.11 14.83,12.83L16.24,14.24C17.33,13.15 18,11.65 18,10C18,8.35 17.33,6.85 16.24,5.76M12,8A2,2 0 0,0 10,10A2,2 0 0,0 12,12A2,2 0 0,0 14,10A2,2 0 0,0 12,8M11,14V18H10A1,1 0 0,0 9,19H2V21H9A1,1 0 0,0 10,22H14A1,1 0 0,0 15,21H22V19H15A1,1 0 0,0 14,18H13V14H11Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_down.xml b/res/drawable/ic_sysbar_ime_down.xml deleted file mode 100644 index 9a50429..0000000 --- a/res/drawable/ic_sysbar_ime_down.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_down.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_ime_down" android:pathData="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_down_dark.xml b/res/drawable/ic_sysbar_ime_down_dark.xml deleted file mode 100644 index baf30f1..0000000 --- a/res/drawable/ic_sysbar_ime_down_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_down.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_left.xml b/res/drawable/ic_sysbar_ime_left.xml deleted file mode 100644 index 31e8388..0000000 --- a/res/drawable/ic_sysbar_ime_left.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_left.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_ime_left" android:pathData="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_left_dark.xml b/res/drawable/ic_sysbar_ime_left_dark.xml deleted file mode 100644 index 5aec8da..0000000 --- a/res/drawable/ic_sysbar_ime_left_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_left.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_right.xml b/res/drawable/ic_sysbar_ime_right.xml deleted file mode 100644 index 65822ec..0000000 --- a/res/drawable/ic_sysbar_ime_right.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_right.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_ime_right" android:pathData="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_right_dark.xml b/res/drawable/ic_sysbar_ime_right_dark.xml deleted file mode 100644 index 359993c..0000000 --- a/res/drawable/ic_sysbar_ime_right_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_right.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_up.xml b/res/drawable/ic_sysbar_ime_up.xml deleted file mode 100644 index a4c7b3d..0000000 --- a/res/drawable/ic_sysbar_ime_up.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_up.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_ime_up" android:pathData="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_ime_up_dark.xml b/res/drawable/ic_sysbar_ime_up_dark.xml deleted file mode 100644 index be23773..0000000 --- a/res/drawable/ic_sysbar_ime_up_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/chevron_up.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_in_app_search.xml b/res/drawable/ic_sysbar_in_app_search.xml deleted file mode 100644 index e5168f0..0000000 --- a/res/drawable/ic_sysbar_in_app_search.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/binoculars.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_in_app_search" android:pathData="M11,6H13V13H11V6M9,20A1,1 0 0,1 8,21H5A1,1 0 0,1 4,20V15L6,6H10V13A1,1 0 0,1 9,14V20M10,5H7V3H10V5M15,20V14A1,1 0 0,1 14,13V6H18L20,15V20A1,1 0 0,1 19,21H16A1,1 0 0,1 15,20M14,5V3H17V5H14Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_in_app_search_dark.xml b/res/drawable/ic_sysbar_in_app_search_dark.xml deleted file mode 100644 index d3accff..0000000 --- a/res/drawable/ic_sysbar_in_app_search_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/binoculars.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M11,6H13V13H11V6M9,20A1,1 0 0,1 8,21H5A1,1 0 0,1 4,20V15L6,6H10V13A1,1 0 0,1 9,14V20M10,5H7V3H10V5M15,20V14A1,1 0 0,1 14,13V6H18L20,15V20A1,1 0 0,1 19,21H16A1,1 0 0,1 15,20M14,5V3H17V5H14Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_killtask.xml b/res/drawable/ic_sysbar_killtask.xml deleted file mode 100644 index 8aa0a21..0000000 --- a/res/drawable/ic_sysbar_killtask.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/close_circle_outline.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_force_close_app" android:pathData="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_killtask_dark.xml b/res/drawable/ic_sysbar_killtask_dark.xml deleted file mode 100644 index 9792c72..0000000 --- a/res/drawable/ic_sysbar_killtask_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/close_circle_outline.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_lastapp.xml b/res/drawable/ic_sysbar_lastapp.xml deleted file mode 100644 index b89f0a1..0000000 --- a/res/drawable/ic_sysbar_lastapp.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/arrange_bring_forward.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_last_app" android:pathData="M21,19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19C20.11,3 21,3.9 21,5V19M13,18V9.5L16.5,13L17.92,11.58L12,5.66L6.08,11.58L7.5,13L11,9.5V18H13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_lastapp_dark.xml b/res/drawable/ic_sysbar_lastapp_dark.xml deleted file mode 100644 index a704626..0000000 --- a/res/drawable/ic_sysbar_lastapp_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/arrange_bring_forward.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M21,19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19C20.11,3 21,3.9 21,5V19M13,18V9.5L16.5,13L17.92,11.58L12,5.66L6.08,11.58L7.5,13L11,9.5V18H13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_menu.xml b/res/drawable/ic_sysbar_menu.xml deleted file mode 100644 index 342bf08..0000000 --- a/res/drawable/ic_sysbar_menu.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_menu" android:pathData="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_menu_dark.xml b/res/drawable/ic_sysbar_menu_dark.xml deleted file mode 100644 index 2c8f87f..0000000 --- a/res/drawable/ic_sysbar_menu_dark.xml +++ /dev/null @@ -1,7 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_dark" android:pathData="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_menu_land.xml b/res/drawable/ic_sysbar_menu_land.xml deleted file mode 100644 index 342bf08..0000000 --- a/res/drawable/ic_sysbar_menu_land.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_menu" android:pathData="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_menu_land_dark.xml b/res/drawable/ic_sysbar_menu_land_dark.xml deleted file mode 100644 index 2c8f87f..0000000 --- a/res/drawable/ic_sysbar_menu_land_dark.xml +++ /dev/null @@ -1,7 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_dark" android:pathData="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_no_action.xml b/res/drawable/ic_sysbar_no_action.xml deleted file mode 100644 index 3ac1eeb..0000000 --- a/res/drawable/ic_sysbar_no_action.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/block_helper.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_no_action" android:pathData="M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_no_action_dark.xml b/res/drawable/ic_sysbar_no_action_dark.xml deleted file mode 100644 index 29cb262..0000000 --- a/res/drawable/ic_sysbar_no_action_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/block_helper.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_notification_panel.xml b/res/drawable/ic_sysbar_notification_panel.xml deleted file mode 100644 index cec27ae..0000000 --- a/res/drawable/ic_sysbar_notification_panel.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/format_list_bulleted_type.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_notification_panel" android:pathData="M5,9.5L7.5,14H2.5L5,9.5M3,4H7V8H3V4M5,20A2,2 0 0,0 7,18A2,2 0 0,0 5,16A2,2 0 0,0 3,18A2,2 0 0,0 5,20M9,5V7H21V5H9M9,19H21V17H9V19M9,13H21V11H9V13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_notification_panel_dark.xml b/res/drawable/ic_sysbar_notification_panel_dark.xml deleted file mode 100644 index 0517921..0000000 --- a/res/drawable/ic_sysbar_notification_panel_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/format_list_bulleted_type.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M5,9.5L7.5,14H2.5L5,9.5M3,4H7V8H3V4M5,20A2,2 0 0,0 7,18A2,2 0 0,0 5,16A2,2 0 0,0 3,18A2,2 0 0,0 5,20M9,5V7H21V5H9M9,19H21V17H9V19M9,13H21V11H9V13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_one_handed_mode_left.xml b/res/drawable/ic_sysbar_one_handed_mode_left.xml deleted file mode 100644 index 322cbfa..0000000 --- a/res/drawable/ic_sysbar_one_handed_mode_left.xml +++ /dev/null @@ -1,41 +0,0 @@ -<!-- - Copyright (C) 2017 Flash ROM - - 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="21dp" - android:height="21dp" - android:viewportWidth="512" - android:viewportHeight="512"> - - <group - android:translateY="512" - android:scaleX="0.1" - android:scaleY="-0.1"> - <path - android:fillColor="@color/icon_color_one_handed_mode" - android:strokeWidth="1" - android:pathData="M3910 4305 c-311 -311 -569 -564 -575 -562 -6 2 -11 159 -13 438 -2 239 -5 440 -7 -447 -4 10 -59 12 -252 10 l-248 -3 -3 -897 -2 -898 895 0 895 0 0 255 0 255 -445 0 -c-322 0 -445 3 -445 11 0 6 227 239 504 518 493 496 607 613 615 633 3 9 -337 358 --349 358 -3 0 -259 -254 -570 -565z" /> - <path - android:fillColor="@color/icon_color_one_handed_mode" - android:strokeWidth="1" - android:pathData="M500 2065 l0 -255 445 0 c245 0 445 -4 445 -9 0 -11 6 -5 -602 -618 -285 -287 -518 --527 -518 -535 0 -7 79 -92 175 -188 l175 -175 569 569 c313 313 573 566 578 563 4 --3 10 -203 11 -444 2 -241 7 -441 11 -446 4 -4 117 -6 252 -5 l244 3 3 898 2 897 --895 0 -895 0 0 -255z" /> - </group> -</vector> diff --git a/res/drawable/ic_sysbar_one_handed_mode_left_dark.xml b/res/drawable/ic_sysbar_one_handed_mode_left_dark.xml deleted file mode 100644 index de2d964..0000000 --- a/res/drawable/ic_sysbar_one_handed_mode_left_dark.xml +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - Copyright (C) 2017 Flash ROM - 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="21dp" - android:height="21dp" - android:viewportWidth="512" - android:viewportHeight="512"> - - <group - android:translateY="512" - android:scaleX="0.1" - android:scaleY="-0.1"> - <path - android:fillColor="@color/icon_color_dark" - android:strokeWidth="1" - android:pathData="M3910 4305 c-311 -311 -569 -564 -575 -562 -6 2 -11 159 -13 438 -2 239 -5 440 -7 -447 -4 10 -59 12 -252 10 l-248 -3 -3 -897 -2 -898 895 0 895 0 0 255 0 255 -445 0 -c-322 0 -445 3 -445 11 0 6 227 239 504 518 493 496 607 613 615 633 3 9 -337 358 --349 358 -3 0 -259 -254 -570 -565z" /> - <path - android:fillColor="@color/icon_color_dark" - android:strokeWidth="1" - android:pathData="M500 2065 l0 -255 445 0 c245 0 445 -4 445 -9 0 -11 6 -5 -602 -618 -285 -287 -518 --527 -518 -535 0 -7 79 -92 175 -188 l175 -175 569 569 c313 313 573 566 578 563 4 --3 10 -203 11 -444 2 -241 7 -441 11 -446 4 -4 117 -6 252 -5 l244 3 3 898 2 897 --895 0 -895 0 0 -255z" /> - </group> -</vector> diff --git a/res/drawable/ic_sysbar_one_handed_mode_right.xml b/res/drawable/ic_sysbar_one_handed_mode_right.xml deleted file mode 100644 index 1c479a5..0000000 --- a/res/drawable/ic_sysbar_one_handed_mode_right.xml +++ /dev/null @@ -1,41 +0,0 @@ -<!-- - Copyright (C) 2017 Flash ROM - - 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="21dp" - android:height="21dp" - android:viewportWidth="512" - android:viewportHeight="512"> - - <group - android:translateY="512" - android:scaleX="0.1" - android:scaleY="-0.1"> - <path - android:fillColor="@color/icon_color_one_handed_mode" - android:strokeWidth="1" - android:pathData="M441 4696 c-95 -95 -172 -178 -170 -184 8 -20 122 -137 615 -633 277 -279 504 -512 -504 -518 0 -8 -123 -11 -445 -11 l-445 0 0 -255 0 -255 895 0 895 0 -2 898 -3 897 --244 3 c-135 1 -248 -1 -252 -5 -4 -5 -9 -205 -11 -446 -1 -241 -7 -441 -11 -444 --5 -3 -264 249 -576 561 -311 311 -568 566 -571 566 -3 0 -83 -78 -179 -174z" /> - <path - android:fillColor="@color/icon_color_one_handed_mode" - android:strokeWidth="1" - android:pathData="M2812 1423 l3 -898 244 -3 c135 -1 248 1 252 5 4 5 9 205 11 446 1 241 7 441 11 -444 5 3 265 -250 578 -563 l569 -569 175 175 c96 96 175 181 175 188 0 8 -233 248 --517 535 -609 613 -603 607 -603 618 0 5 200 9 445 9 l445 0 0 255 0 255 -895 0 --895 0 2 -897z" /> - </group> -</vector> diff --git a/res/drawable/ic_sysbar_one_handed_mode_right_dark.xml b/res/drawable/ic_sysbar_one_handed_mode_right_dark.xml deleted file mode 100644 index c7c8a37..0000000 --- a/res/drawable/ic_sysbar_one_handed_mode_right_dark.xml +++ /dev/null @@ -1,39 +0,0 @@ -<!-- - Copyright (C) 2017 Flash ROM - 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="21dp" - android:height="21dp" - android:viewportWidth="512" - android:viewportHeight="512"> - - <group - android:translateY="512" - android:scaleX="0.1" - android:scaleY="-0.1"> - <path - android:fillColor="@color/icon_color_dark" - android:strokeWidth="1" - android:pathData="M441 4696 c-95 -95 -172 -178 -170 -184 8 -20 122 -137 615 -633 277 -279 504 -512 -504 -518 0 -8 -123 -11 -445 -11 l-445 0 0 -255 0 -255 895 0 895 0 -2 898 -3 897 --244 3 c-135 1 -248 -1 -252 -5 -4 -5 -9 -205 -11 -446 -1 -241 -7 -441 -11 -444 --5 -3 -264 249 -576 561 -311 311 -568 566 -571 566 -3 0 -83 -78 -179 -174z" /> - <path - android:fillColor="@color/icon_color_dark" - android:strokeWidth="1" - android:pathData="M2812 1423 l3 -898 244 -3 c135 -1 248 1 252 5 4 5 9 205 11 446 1 241 7 441 11 -444 5 3 265 -250 578 -563 l569 -569 175 175 c96 96 175 181 175 188 0 8 -233 248 --517 535 -609 613 -603 607 -603 618 0 5 200 9 445 9 l445 0 0 255 0 255 -895 0 --895 0 2 -897z" /> - </group> -</vector> diff --git a/res/drawable/ic_sysbar_opa_blue.xml b/res/drawable/ic_sysbar_opa_blue.xml deleted file mode 100644 index a3df91c..0000000 --- a/res/drawable/ic_sysbar_opa_blue.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape android:shape="oval" - xmlns:android="http://schemas.android.com/apk/res/android"> - <size android:height="@dimen/opa_dot_diam" android:width="@dimen/opa_dot_diam" /> - <solid android:color="#ff4285f4" /> -</shape>
\ No newline at end of file diff --git a/res/drawable/ic_sysbar_opa_green.xml b/res/drawable/ic_sysbar_opa_green.xml deleted file mode 100644 index 6814ba1..0000000 --- a/res/drawable/ic_sysbar_opa_green.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape android:shape="oval" - xmlns:android="http://schemas.android.com/apk/res/android"> - <size android:height="@dimen/opa_dot_diam" android:width="@dimen/opa_dot_diam" /> - <solid android:color="#ff34a853" /> -</shape>
\ No newline at end of file diff --git a/res/drawable/ic_sysbar_opa_red.xml b/res/drawable/ic_sysbar_opa_red.xml deleted file mode 100644 index 5d44c61..0000000 --- a/res/drawable/ic_sysbar_opa_red.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape android:shape="oval" - xmlns:android="http://schemas.android.com/apk/res/android"> - <size android:height="@dimen/opa_dot_diam" android:width="@dimen/opa_dot_diam" /> - <solid android:color="#ffea4335" /> -</shape>
\ No newline at end of file diff --git a/res/drawable/ic_sysbar_opa_yellow.xml b/res/drawable/ic_sysbar_opa_yellow.xml deleted file mode 100644 index e56b8c8..0000000 --- a/res/drawable/ic_sysbar_opa_yellow.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<shape android:shape="oval" - xmlns:android="http://schemas.android.com/apk/res/android"> - <size android:height="@dimen/opa_dot_diam" android:width="@dimen/opa_dot_diam" /> - <solid android:color="#fffbbc05" /> -</shape>
\ No newline at end of file diff --git a/res/drawable/ic_sysbar_power_menu.xml b/res/drawable/ic_sysbar_power_menu.xml deleted file mode 100644 index 591b2ac..0000000 --- a/res/drawable/ic_sysbar_power_menu.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/power.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_power_menu" android:pathData="M16.56,5.44L15.11,6.89C16.84,7.94 18,9.83 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12C6,9.83 7.16,7.94 8.88,6.88L7.44,5.44C5.36,6.88 4,9.28 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,9.28 18.64,6.88 16.56,5.44M13,3H11V13H13" />
-</vector>
diff --git a/res/drawable/ic_sysbar_power_menu_dark.xml b/res/drawable/ic_sysbar_power_menu_dark.xml deleted file mode 100644 index e355b03..0000000 --- a/res/drawable/ic_sysbar_power_menu_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/power.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M16.56,5.44L15.11,6.89C16.84,7.94 18,9.83 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12C6,9.83 7.16,7.94 8.88,6.88L7.44,5.44C5.36,6.88 4,9.28 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,9.28 18.64,6.88 16.56,5.44M13,3H11V13H13" />
-</vector>
diff --git a/res/drawable/ic_sysbar_recent.xml b/res/drawable/ic_sysbar_recent.xml deleted file mode 100644 index 626b2d7..0000000 --- a/res/drawable/ic_sysbar_recent.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="21dp" - android:height="21dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_overview" - android:pathData="M14.01,19.99C13.73,16.72 16.63,13.75 19.92,14.03C35.29,13.94 50.66,14.06 66.03,13.97C68.2,14.01 70.73,13.86 72.33,15.61C74.13,17.21 74.01,19.77 74.06,21.97C74.03,36.98 74.05,52 74.06,67.02C73.99,68.58 73.87,70.18 73.32,71.65C71.62,73.28 69.39,74.21 67.01,74.02C51.66,73.99 36.3,73.99 20.95,74.02C18.54,74.22 16.33,73.23 14.61,71.59C13.88,69.13 13.9,66.54 13.93,64.01C14.03,49.34 13.86,34.66 14.01,19.99Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_recent_dark.xml b/res/drawable/ic_sysbar_recent_dark.xml deleted file mode 100644 index abcc52d..0000000 --- a/res/drawable/ic_sysbar_recent_dark.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (c) 2016 AICP - - 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="20dp" - android:height="20dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M14.01,19.99C13.73,16.72 16.63,13.75 19.92,14.03C35.29,13.94 50.66,14.06 66.03,13.97C68.2,14.01 70.73,13.86 72.33,15.61C74.13,17.21 74.01,19.77 74.06,21.97C74.03,36.98 74.05,52 74.06,67.02C73.99,68.58 73.87,70.18 73.32,71.65C71.62,73.28 69.39,74.21 67.01,74.02C51.66,73.99 36.3,73.99 20.95,74.02C18.54,74.22 16.33,73.23 14.61,71.59C13.88,69.13 13.9,66.54 13.93,64.01C14.03,49.34 13.86,34.66 14.01,19.99Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_recent_land.xml b/res/drawable/ic_sysbar_recent_land.xml deleted file mode 100644 index 626b2d7..0000000 --- a/res/drawable/ic_sysbar_recent_land.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="21dp" - android:height="21dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_overview" - android:pathData="M14.01,19.99C13.73,16.72 16.63,13.75 19.92,14.03C35.29,13.94 50.66,14.06 66.03,13.97C68.2,14.01 70.73,13.86 72.33,15.61C74.13,17.21 74.01,19.77 74.06,21.97C74.03,36.98 74.05,52 74.06,67.02C73.99,68.58 73.87,70.18 73.32,71.65C71.62,73.28 69.39,74.21 67.01,74.02C51.66,73.99 36.3,73.99 20.95,74.02C18.54,74.22 16.33,73.23 14.61,71.59C13.88,69.13 13.9,66.54 13.93,64.01C14.03,49.34 13.86,34.66 14.01,19.99Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_recent_land_dark.xml b/res/drawable/ic_sysbar_recent_land_dark.xml deleted file mode 100644 index abcc52d..0000000 --- a/res/drawable/ic_sysbar_recent_land_dark.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (c) 2016 AICP - - 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="20dp" - android:height="20dp" - android:viewportWidth="88" - android:viewportHeight="88"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M14.01,19.99C13.73,16.72 16.63,13.75 19.92,14.03C35.29,13.94 50.66,14.06 66.03,13.97C68.2,14.01 70.73,13.86 72.33,15.61C74.13,17.21 74.01,19.77 74.06,21.97C74.03,36.98 74.05,52 74.06,67.02C73.99,68.58 73.87,70.18 73.32,71.65C71.62,73.28 69.39,74.21 67.01,74.02C51.66,73.99 36.3,73.99 20.95,74.02C18.54,74.22 16.33,73.23 14.61,71.59C13.88,69.13 13.9,66.54 13.93,64.01C14.03,49.34 13.86,34.66 14.01,19.99Z"/> -</vector> diff --git a/res/drawable/ic_sysbar_record_screen.xml b/res/drawable/ic_sysbar_record_screen.xml deleted file mode 100644 index 0a42e80..0000000 --- a/res/drawable/ic_sysbar_record_screen.xml +++ /dev/null @@ -1,7 +0,0 @@ -<!-- drawable/file_video.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_screenrecord" android:pathData="M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5Z" /></vector>
diff --git a/res/drawable/ic_sysbar_record_screen_dark.xml b/res/drawable/ic_sysbar_record_screen_dark.xml deleted file mode 100644 index 0e7ae89..0000000 --- a/res/drawable/ic_sysbar_record_screen_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/file_video.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="24dp"
- android:width="24dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M17,10.5V7A1,1 0 0,0 16,6H4A1,1 0 0,0 3,7V17A1,1 0 0,0 4,18H16A1,1 0 0,0 17,17V13.5L21,17.5V6.5L17,10.5Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_region_screenshot.xml b/res/drawable/ic_sysbar_region_screenshot.xml deleted file mode 100644 index 57594d0..0000000 --- a/res/drawable/ic_sysbar_region_screenshot.xml +++ /dev/null @@ -1,11 +0,0 @@ -<!-- drawable/image_filter.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="22dp" - android:height="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - - <path - android:fillColor="@color/icon_color_region_screenshot" - android:pathData="M1,5H3V19H1V5M5,5H7V19H5V5M22,5H10A1,1 0 0,0 9,6V18A1,1 0 0,0 10,19H22A1,1 0 0,0 23,18V6A1,1 0 0,0 22,5M11,17L13.5,13.85L15.29,16L17.79,12.78L21,17H11Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_region_screenshot_dark.xml b/res/drawable/ic_sysbar_region_screenshot_dark.xml deleted file mode 100644 index bc0d337..0000000 --- a/res/drawable/ic_sysbar_region_screenshot_dark.xml +++ /dev/null @@ -1,11 +0,0 @@ -<!-- drawable/image_filter.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - - <path - android:fillColor="@color/icon_color_dark" - android:pathData="M1,5H3V19H1V5M5,5H7V19H5V5M22,5H10A1,1 0 0,0 9,6V18A1,1 0 0,0 10,19H22A1,1 0 0,0 23,18V6A1,1 0 0,0 22,5M11,17L13.5,13.85L15.29,16L17.79,12.78L21,17H11Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_rotate_button.xml b/res/drawable/ic_sysbar_rotate_button.xml deleted file mode 100644 index 20b80c1..0000000 --- a/res/drawable/ic_sysbar_rotate_button.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/format_list_bulleted_type.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" - android:width="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="#FFFFFFFF" android:pathData="m 10.015,9.8169748 -2.77,-1.9075587 2.77,-1.9075586 1.12,0.7712872 -0.85,0.5922385 h 5.16 c 0.72,0 1.31,0.3856436 1.31,0.8676981 V 14.54111 l -1.58,-1.088066 V 8.4534491 h -4.89 l 0.86,0.5922384 z m 3.96,4.3660372 -1.12,0.771287 0.85,0.592238 H 8.825 V 10.546943 L 7.245,9.4519906 v 6.3149144 c 0,0.482055 0.59,0.867698 1.31,0.867698 h 5.16 v 0.0069 l -0.85,0.585352 1.12,0.771287 2.77,-1.907558 z" /> -</vector> diff --git a/res/drawable/ic_sysbar_rotate_button_dark.xml b/res/drawable/ic_sysbar_rotate_button_dark.xml deleted file mode 100644 index 33a2b7f..0000000 --- a/res/drawable/ic_sysbar_rotate_button_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/format_list_bulleted_type.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="24dp" - android:width="24dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_dark" android:pathData="m 10.015,9.8169748 -2.77,-1.9075587 2.77,-1.9075586 1.12,0.7712872 -0.85,0.5922385 h 5.16 c 0.72,0 1.31,0.3856436 1.31,0.8676981 V 14.54111 l -1.58,-1.088066 V 8.4534491 h -4.89 l 0.86,0.5922384 z m 3.96,4.3660372 -1.12,0.771287 0.85,0.592238 H 8.825 V 10.546943 L 7.245,9.4519906 v 6.3149144 c 0,0.482055 0.59,0.867698 1.31,0.867698 h 5.16 v 0.0069 l -0.85,0.585352 1.12,0.771287 2.77,-1.907558 z" /> -</vector> diff --git a/res/drawable/ic_sysbar_screen_off.xml b/res/drawable/ic_sysbar_screen_off.xml deleted file mode 100644 index 79d435b..0000000 --- a/res/drawable/ic_sysbar_screen_off.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/sleep.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_screen_off" android:pathData="M23,12H17V10L20.39,6H17V4H23V6L19.62,10H23V12M15,16H9V14L12.39,10H9V8H15V10L11.62,14H15V16M7,20H1V18L4.39,14H1V12H7V14L3.62,18H7V20Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_screen_off_dark.xml b/res/drawable/ic_sysbar_screen_off_dark.xml deleted file mode 100644 index 4908ed5..0000000 --- a/res/drawable/ic_sysbar_screen_off_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/sleep.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M23,12H17V10L20.39,6H17V4H23V6L19.62,10H23V12M15,16H9V14L12.39,10H9V8H15V10L11.62,14H15V16M7,20H1V18L4.39,14H1V12H7V14L3.62,18H7V20Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_screenshot.xml b/res/drawable/ic_sysbar_screenshot.xml deleted file mode 100644 index b74d24d..0000000 --- a/res/drawable/ic_sysbar_screenshot.xml +++ /dev/null @@ -1,9 +0,0 @@ -<!-- drawable/image_filter.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_screenshot"
- android:pathData="M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z" />
- </vector>
diff --git a/res/drawable/ic_sysbar_screenshot_dark.xml b/res/drawable/ic_sysbar_screenshot_dark.xml deleted file mode 100644 index 3ef81c7..0000000 --- a/res/drawable/ic_sysbar_screenshot_dark.xml +++ /dev/null @@ -1,9 +0,0 @@ -<!-- drawable/image_filter.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark"
- android:pathData="M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_search.xml b/res/drawable/ic_sysbar_search.xml deleted file mode 100644 index 5daf744..0000000 --- a/res/drawable/ic_sysbar_search.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/file_find.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_voice_search" android:pathData="M9,13A3,3 0 0,0 12,16A3,3 0 0,0 15,13A3,3 0 0,0 12,10A3,3 0 0,0 9,13M20,19.59V8L14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18C18.45,22 18.85,21.85 19.19,21.6L14.76,17.17C13.96,17.69 13,18 12,18A5,5 0 0,1 7,13A5,5 0 0,1 12,8A5,5 0 0,1 17,13C17,14 16.69,14.96 16.17,15.75L20,19.59Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_search_dark.xml b/res/drawable/ic_sysbar_search_dark.xml deleted file mode 100644 index 62c185b..0000000 --- a/res/drawable/ic_sysbar_search_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/file_find.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M9,13A3,3 0 0,0 12,16A3,3 0 0,0 15,13A3,3 0 0,0 12,10A3,3 0 0,0 9,13M20,19.59V8L14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18C18.45,22 18.85,21.85 19.19,21.6L14.76,17.17C13.96,17.69 13,18 12,18A5,5 0 0,1 7,13A5,5 0 0,1 12,8A5,5 0 0,1 17,13C17,14 16.69,14.96 16.17,15.75L20,19.59Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_settings_panel.xml b/res/drawable/ic_sysbar_settings_panel.xml deleted file mode 100644 index 192c40f..0000000 --- a/res/drawable/ic_sysbar_settings_panel.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/settings_box.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_settings_panel" android:pathData="M17.25,12C17.25,12.23 17.23,12.46 17.2,12.68L18.68,13.84C18.81,13.95 18.85,14.13 18.76,14.29L17.36,16.71C17.27,16.86 17.09,16.92 16.93,16.86L15.19,16.16C14.83,16.44 14.43,16.67 14,16.85L13.75,18.7C13.72,18.87 13.57,19 13.4,19H10.6C10.43,19 10.28,18.87 10.25,18.7L10,16.85C9.56,16.67 9.17,16.44 8.81,16.16L7.07,16.86C6.91,16.92 6.73,16.86 6.64,16.71L5.24,14.29C5.15,14.13 5.19,13.95 5.32,13.84L6.8,12.68C6.77,12.46 6.75,12.23 6.75,12C6.75,11.77 6.77,11.54 6.8,11.32L5.32,10.16C5.19,10.05 5.15,9.86 5.24,9.71L6.64,7.29C6.73,7.13 6.91,7.07 7.07,7.13L8.81,7.84C9.17,7.56 9.56,7.32 10,7.15L10.25,5.29C10.28,5.13 10.43,5 10.6,5H13.4C13.57,5 13.72,5.13 13.75,5.29L14,7.15C14.43,7.32 14.83,7.56 15.19,7.84L16.93,7.13C17.09,7.07 17.27,7.13 17.36,7.29L18.76,9.71C18.85,9.86 18.81,10.05 18.68,10.16L17.2,11.32C17.23,11.54 17.25,11.77 17.25,12M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M12,10C10.89,10 10,10.89 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12C14,10.89 13.1,10 12,10Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_settings_panel_dark.xml b/res/drawable/ic_sysbar_settings_panel_dark.xml deleted file mode 100644 index 9f00066..0000000 --- a/res/drawable/ic_sysbar_settings_panel_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/settings_box.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M17.25,12C17.25,12.23 17.23,12.46 17.2,12.68L18.68,13.84C18.81,13.95 18.85,14.13 18.76,14.29L17.36,16.71C17.27,16.86 17.09,16.92 16.93,16.86L15.19,16.16C14.83,16.44 14.43,16.67 14,16.85L13.75,18.7C13.72,18.87 13.57,19 13.4,19H10.6C10.43,19 10.28,18.87 10.25,18.7L10,16.85C9.56,16.67 9.17,16.44 8.81,16.16L7.07,16.86C6.91,16.92 6.73,16.86 6.64,16.71L5.24,14.29C5.15,14.13 5.19,13.95 5.32,13.84L6.8,12.68C6.77,12.46 6.75,12.23 6.75,12C6.75,11.77 6.77,11.54 6.8,11.32L5.32,10.16C5.19,10.05 5.15,9.86 5.24,9.71L6.64,7.29C6.73,7.13 6.91,7.07 7.07,7.13L8.81,7.84C9.17,7.56 9.56,7.32 10,7.15L10.25,5.29C10.28,5.13 10.43,5 10.6,5H13.4C13.57,5 13.72,5.13 13.75,5.29L14,7.15C14.43,7.32 14.83,7.56 15.19,7.84L16.93,7.13C17.09,7.07 17.27,7.13 17.36,7.29L18.76,9.71C18.85,9.86 18.81,10.05 18.68,10.16L17.2,11.32C17.23,11.54 17.25,11.77 17.25,12M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M12,10C10.89,10 10,10.89 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12C14,10.89 13.1,10 12,10Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_torch.xml b/res/drawable/ic_sysbar_torch.xml deleted file mode 100644 index 6ded73f..0000000 --- a/res/drawable/ic_sysbar_torch.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/flashlight.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_flashlight" android:pathData="M9,10L6,5H18L15,10H9M18,4H6V2H18V4M9,22V11H15V22H9M12,13A1,1 0 0,0 11,14A1,1 0 0,0 12,15A1,1 0 0,0 13,14A1,1 0 0,0 12,13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_torch_dark.xml b/res/drawable/ic_sysbar_torch_dark.xml deleted file mode 100644 index 62bcb74..0000000 --- a/res/drawable/ic_sysbar_torch_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/flashlight.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M9,10L6,5H18L15,10H9M18,4H6V2H18V4M9,22V11H15V22H9M12,13A1,1 0 0,0 11,14A1,1 0 0,0 12,15A1,1 0 0,0 13,14A1,1 0 0,0 12,13Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_volume_panel.xml b/res/drawable/ic_sysbar_volume_panel.xml deleted file mode 100644 index c02ebba..0000000 --- a/res/drawable/ic_sysbar_volume_panel.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/volume_panel.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_volume_panel" android:pathData="M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_volume_panel_dark.xml b/res/drawable/ic_sysbar_volume_panel_dark.xml deleted file mode 100644 index 266ddc1..0000000 --- a/res/drawable/ic_sysbar_volume_panel_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/volume_panel.xml --> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:height="22dp" - android:width="22dp" - android:viewportWidth="24" - android:viewportHeight="24"> - <path android:fillColor="@color/icon_color_dark" android:pathData="M14,3.23V5.29C16.89,6.15 19,8.83 19,12C19,15.17 16.89,17.84 14,18.7V20.77C18,19.86 21,16.28 21,12C21,7.72 18,4.14 14,3.23M16.5,12C16.5,10.23 15.5,8.71 14,7.97V16C15.5,15.29 16.5,13.76 16.5,12M3,9V15H7L12,20V4L7,9H3Z" /> -</vector> diff --git a/res/drawable/ic_sysbar_wifi.xml b/res/drawable/ic_sysbar_wifi.xml deleted file mode 100644 index 796780e..0000000 --- a/res/drawable/ic_sysbar_wifi.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/wifi.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_wifi" android:pathData="M12,21L15.6,16.2C14.6,15.45 13.35,15 12,15C10.65,15 9.4,15.45 8.4,16.2L12,21M12,3C7.95,3 4.21,4.34 1.2,6.6L3,9C5.5,7.12 8.62,6 12,6C15.38,6 18.5,7.12 21,9L22.8,6.6C19.79,4.34 16.05,3 12,3M12,9C9.3,9 6.81,9.89 4.8,11.4L6.6,13.8C8.1,12.67 9.97,12 12,12C14.03,12 15.9,12.67 17.4,13.8L19.2,11.4C17.19,9.89 14.7,9 12,9Z" />
-</vector>
diff --git a/res/drawable/ic_sysbar_wifi_dark.xml b/res/drawable/ic_sysbar_wifi_dark.xml deleted file mode 100644 index 2c4d014..0000000 --- a/res/drawable/ic_sysbar_wifi_dark.xml +++ /dev/null @@ -1,8 +0,0 @@ -<!-- drawable/wifi.xml -->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:height="22dp"
- android:width="22dp"
- android:viewportWidth="24"
- android:viewportHeight="24">
- <path android:fillColor="@color/icon_color_dark" android:pathData="M12,21L15.6,16.2C14.6,15.45 13.35,15 12,15C10.65,15 9.4,15.45 8.4,16.2L12,21M12,3C7.95,3 4.21,4.34 1.2,6.6L3,9C5.5,7.12 8.62,6 12,6C15.38,6 18.5,7.12 21,9L22.8,6.6C19.79,4.34 16.05,3 12,3M12,9C9.3,9 6.81,9.89 4.8,11.4L6.6,13.8C8.1,12.67 9.97,12 12,12C14.03,12 15.9,12.67 17.4,13.8L19.2,11.4C17.19,9.89 14.7,9 12,9Z" />
-</vector>
diff --git a/res/drawable/smartbar_editmode_color.xml b/res/drawable/smartbar_editmode_color.xml deleted file mode 100644 index 3e7b298..0000000 --- a/res/drawable/smartbar_editmode_color.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<shape xmlns:android="http://schemas.android.com/apk/res/android" - android:shape="rectangle"> - <solid android:color="@*android:color/accent_device_default_light" /> -</shape> diff --git a/res/layout-sw600dp/fling_bar.xml b/res/layout-sw600dp/fling_bar.xml deleted file mode 100644 index ac6fbda..0000000 --- a/res/layout-sw600dp/fling_bar.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -** -** Copyright 2012, 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. ---> - -<!-- navigation bar for sw600dp (small tablets) --> -<com.android.systemui.navigation.fling.FlingView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android" - xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@drawable/system_bar_background" > - - <FrameLayout android:id="@+id/rot0" - android:layout_height="match_parent" - android:layout_width="match_parent" - > - - <LinearLayout - android:id="@+id/nav_buttons" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:animateLayoutChanges="true" - android:clipChildren="false" - android:clipToPadding="false" - android:orientation="horizontal" > - - <Space - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1"/> - - <!-- navigation controls --> - <com.android.systemui.navigation.fling.FlingLogoView - android:id="@+id/fling_console" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_weight="0" - android:src="@drawable/ic_eos_fling" /> - - <ImageView - android:id="@+id/rotationLogo" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:src="@drawable/ic_sysbar_rotate_button" - android:layout_weight="1" - android:visibility="invisible" /> - - </LinearLayout> - </FrameLayout> - - <FrameLayout android:id="@+id/rot90" - android:layout_height="match_parent" - android:layout_width="match_parent" - android:visibility="gone" - android:paddingTop="0dp" - > - - <LinearLayout - android:layout_height="match_parent" - android:layout_width="match_parent" - android:orientation="horizontal" - android:clipChildren="false" - android:clipToPadding="false" - android:id="@+id/nav_buttons" - android:animateLayoutChanges="true" - > - - <ImageView - android:id="@+id/rotationLogo" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:src="@drawable/ic_sysbar_rotate_button" - android:layout_weight="1" - android:visibility="invisible" /> - - <!-- navigation controls --> - <com.android.systemui.navigation.fling.FlingLogoView - android:id="@+id/fling_console" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_weight="0" - android:src="@drawable/ic_eos_fling_land" /> - - <Space - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1"/> - - </LinearLayout> - </FrameLayout> -</com.android.systemui.navigation.fling.FlingView> diff --git a/res/layout/action_item_vertical.xml b/res/layout/action_item_vertical.xml deleted file mode 100644 index 93f9d85..0000000 --- a/res/layout/action_item_vertical.xml +++ /dev/null @@ -1,26 +0,0 @@ -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:layout_width="fill_parent" - android:layout_height="96dp" - android:clickable="true" - android:focusable="true" - android:background="@drawable/action_item_btn"> - - <ImageView - android:id="@+id/iv_icon" - android:layout_width="32dp" - android:layout_height="32dp" - android:scaleType="center" /> - - <TextView - android:id="@+id/tv_title" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:gravity="center_vertical" - android:paddingStart="12dp" - android:paddingEnd="10dp" - android:textSize="18dp" - android:textColor="@color/smartbar_editor_popup_text"/> - -</LinearLayout> diff --git a/res/layout/edit_hint.xml b/res/layout/edit_hint.xml deleted file mode 100644 index f83877f..0000000 --- a/res/layout/edit_hint.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <ImageView - android:id="@+id/imageView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_alignParentEnd="true" - android:padding="5dp" - android:src="@drawable/edit_mode" /> - -</RelativeLayout> diff --git a/res/layout/fling_bar.xml b/res/layout/fling_bar.xml deleted file mode 100644 index 851ffc8..0000000 --- a/res/layout/fling_bar.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -** -** Copyright 2012, 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. ---> - -<com.android.systemui.navigation.fling.FlingView xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android" - xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="@drawable/system_bar_background" > - - <FrameLayout - android:id="@+id/rot0" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <LinearLayout - android:id="@+id/nav_buttons" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" - android:animateLayoutChanges="true" - android:clipChildren="false" - android:clipToPadding="false" - android:orientation="horizontal" > - - <Space - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - android:visibility="invisible" /> - - <com.android.systemui.navigation.fling.FlingLogoView - android:id="@+id/fling_console" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:layout_gravity="center" - android:layout_weight="0" - android:src="@drawable/ic_eos_fling" /> - - <ImageView - android:id="@+id/rotationLogo" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:src="@drawable/ic_sysbar_rotate_button" - android:layout_weight="1" - android:visibility="invisible" /> - </LinearLayout> - </FrameLayout> - - <FrameLayout - android:id="@+id/rot90" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:paddingTop="0dp" - android:visibility="gone" > - - <LinearLayout - android:id="@+id/nav_buttons" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" - android:animateLayoutChanges="true" - android:clipChildren="false" - android:clipToPadding="false" - android:orientation="vertical" > - - <ImageView - android:id="@+id/rotationLogo" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:src="@drawable/ic_sysbar_rotate_button" - android:layout_weight="1" - android:visibility="invisible" /> - - <com.android.systemui.navigation.fling.FlingLogoView - android:id="@+id/fling_console" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:layout_weight="0" - android:src="@drawable/ic_eos_fling_land" /> - - <Space - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_weight="1" - android:visibility="invisible" /> - - </LinearLayout> - </FrameLayout> -</com.android.systemui.navigation.fling.FlingView> diff --git a/res/layout/opa_smartbutton.xml b/res/layout/opa_smartbutton.xml deleted file mode 100644 index aa27da7..0000000 --- a/res/layout/opa_smartbutton.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2016 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. ---> -<com.android.systemui.navigation.OpaLayout android:id="@+id/opa_smartbutton" - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:systemui="http://schemas.android.com/apk/res-auto" - android:clipChildren="false" - android:clipToPadding="false" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> - <ImageView android:id="@+id/red" android:src="@drawable/ic_sysbar_opa_red" android:importantForAccessibility="no" style="@style/DotStyle" /> - <ImageView android:id="@+id/blue" android:src="@drawable/ic_sysbar_opa_blue" android:importantForAccessibility="no" style="@style/DotStyle" /> - <ImageView android:id="@+id/green" android:src="@drawable/ic_sysbar_opa_green" android:importantForAccessibility="no" style="@style/DotStyle" /> - <ImageView android:id="@+id/yellow" android:src="@drawable/ic_sysbar_opa_yellow" android:importantForAccessibility="no" style="@style/DotStyle" /> - </RelativeLayout> - - <com.android.systemui.navigation.smartbar.SmartButtonView - android:layout_gravity="center" - android:id="@+id/smartbutton" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:scaleType="center" /> - -</com.android.systemui.navigation.OpaLayout> diff --git a/res/layout/popup_vertical.xml b/res/layout/popup_vertical.xml deleted file mode 100644 index 6396d69..0000000 --- a/res/layout/popup_vertical.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - > - - - <ScrollView - android:id="@+id/scroller" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="16dip" - android:background="@color/smartbar_editor_popup_background" - android:fadingEdgeLength="5dip" - android:scrollbars="none" > - - <LinearLayout - android:id="@+id/tracks" - android:orientation="vertical" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1" - android:padding="10dip"/> - - </ScrollView > - - <ImageView - android:id="@+id/arrow_up" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:src="@drawable/arrow_up" /> - - <ImageView - android:id="@+id/arrow_down" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@id/scroller" - android:layout_marginTop="-4dip" - android:src="@drawable/arrow_down" /> - -</RelativeLayout> diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-af/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-ar/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml deleted file mode 100644 index aac8ec3..0000000 --- a/res/values-ca/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Cap acció</string> - <string name="label_action_settings_panel">Panell QS</string> - <string name="label_action_notification_panel">Panell de notificacions</string> - <string name="label_action_screenshot">Captura de pantalla</string> - <string name="label_action_screenrecord">Enregistra la pantalla</string> - <string name="label_action_expanded_desktop">Escriptori ampliat</string> - <string name="label_action_screen_off">Apaga la pantalla</string> - <string name="label_action_force_close_app">Força el tancament de l\'aplicació</string> - <string name="label_action_search_assistant">Assistent de cerca</string> - <string name="label_action_google_now_on_tap">Google Assistent</string> - <string name="label_action_voice_search">Cerca per veu</string> - <string name="label_action_in_app_search">Cerca dins l\'aplicació</string> - <string name="label_action_flashlight">Llanterna</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">Wi-Fi</string> - <string name="label_action_hotspot">Punt d\'accés</string> - <string name="label_action_last_app">Darrera aplicació</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Menú d\'apagat</string> - <string name="label_action_menu">Menú</string> - <string name="label_action_back">Enrere</string> - <string name="label_action_home">Inici</string> - <string name="label_action_ime_switcher">IME canviador</string> - <string name="label_action_stop_screenpinning">Atura la fixació de pantalla</string> - <string name="label_action_ime_down">Mètode d\'entrada cursor cap avall</string> - <string name="label_action_ime_left">Mètode d\'entrada cursor cap a l\'esquerra</string> - <string name="label_action_ime_right">Mètode d\'entrada cursor cap a la dreta</string> - <string name="label_action_ime_up">Mètode d\'entrada cursor cap dalt</string> - <string name="label_action_volume_panel">Panell de volum</string> - <string name="label_action_clear_notifications">Esborra les notificacions</string> - <string name="label_action_editing_smartbar">Editor de la Smartbar</string> - <string name="label_action_split_screen">Pantalla dividida</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Accions</string> - <string name="label_smartbar_icon">Icona</string> - <string name="label_smartbar_add">Afegeix</string> - <string name="label_smartbar_remove">Elimina</string> - <string name="label_smartbar_cancel">Cancel·la</string> - <string name="label_smartbar_finish">Finalitza</string> - <string name="label_smartbar_single_tap">Un toc</string> - <string name="label_smartbar_double_tap">Doble toc</string> - <string name="label_smartbar_long_press">Pulsació perllongada</string> - <string name="label_smartbar_icon_pack">Paquet d\'icones</string> - <string name="label_smartbar_icon_gallery">Galeria</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reinicia</string> - <string name="smartbar_editor_toast_starting">S\'està iniciant l\'edició del navegador</string> - <string name="smartbar_editor_toast_stopping">S\'està aturant l\'edició del navegador</string> - <string name="smartbar_editor_toast_unavailable">L\'edició del navegador no es troba disponible</string> - <string name="edit_mode">Mode d\'edició</string> - <!-- App killed message --> - <string name="app_killed_message">%s finalitzades</string> -</resources> diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml deleted file mode 100644 index 4aca5db..0000000 --- a/res/values-cs/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Žádné akce</string> - <string name="label_action_settings_panel">Panel QS</string> - <string name="label_action_notification_panel">Notifikační panel</string> - <string name="label_action_screenshot">Snímek obrazovky</string> - <string name="label_action_screenrecord">Záznam obrazovky</string> - <string name="label_action_expanded_desktop">Rozšířená plocha</string> - <string name="label_action_screen_off">Vypnout obrazovku</string> - <string name="label_action_force_close_app">Vynutit ukončení aplikace</string> - <string name="label_action_search_assistant">Vyhledávací asistent</string> - <string name="label_action_google_now_on_tap">Google asistent</string> - <string name="label_action_voice_search">Hlasové vyhledávání</string> - <string name="label_action_in_app_search">Hledat v aplikacích</string> - <string name="label_action_flashlight">Svítilna</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Poslední aplikace</string> - <string name="label_action_overview">Nedávné</string> - <string name="label_action_power_menu">Nabídka Vypnout</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Zpět</string> - <string name="label_action_home">Domovská stránka</string> - <string name="label_action_ime_switcher">Editor IME</string> - <string name="label_action_stop_screenpinning">Vypnout připnutí obrazovky</string> - <string name="label_action_ime_down">Vstupní metoda kurzor dolů</string> - <string name="label_action_ime_left">Vstupní metoda kurzor doleva</string> - <string name="label_action_ime_right">Vstupní metoda kurzor vpravo</string> - <string name="label_action_ime_up">Vstupní metoda kurzor nahoru</string> - <string name="label_action_volume_panel">Panel hlasitosti</string> - <string name="label_action_clear_notifications">Vymazat oznámení</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Akce</string> - <string name="label_smartbar_icon">Ikona</string> - <string name="label_smartbar_add">Přidat</string> - <string name="label_smartbar_remove">Odebrat</string> - <string name="label_smartbar_cancel">Storno</string> - <string name="label_smartbar_finish">Dokončit</string> - <string name="label_smartbar_single_tap">Jediným klepnutím</string> - <string name="label_smartbar_double_tap">Dvojité poklepání</string> - <string name="label_smartbar_long_press">Dlouhý stisk</string> - <string name="label_smartbar_icon_pack">Balík ikon</string> - <string name="label_smartbar_icon_gallery">Galerie</string> - <string name="label_smartbar_icon_color">Barva</string> - <string name="label_smartbar_icon_reset">Resetovat</string> - <string name="smartbar_editor_toast_starting">Výchozí navigační editor</string> - <string name="smartbar_editor_toast_stopping">Zastavující navigační editor</string> - <string name="smartbar_editor_toast_unavailable">Navigační editor není k dispozici</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-da/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml deleted file mode 100644 index bf7b4ec..0000000 --- a/res/values-de/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Keine Aktion</string> - <string name="label_action_settings_panel">Schnelleinstellungen</string> - <string name="label_action_notification_panel">Benachrichtigungsfeld</string> - <string name="label_action_screenshot">Bildschirmfoto</string> - <string name="label_action_screenrecord">Bildschirmaufnahme</string> - <string name="label_action_expanded_desktop">Erweiterter Desktop</string> - <string name="label_action_screen_off">Bildschirm ausschalten</string> - <string name="label_action_force_close_app">App beenden</string> - <string name="label_action_search_assistant">Suchassistent</string> - <string name="label_action_google_now_on_tap">Google assistent</string> - <string name="label_action_voice_search">Sprachsuche</string> - <string name="label_action_in_app_search">In-App-Suche</string> - <string name="label_action_flashlight">Taschenlampe</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WLAN</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Letzte App</string> - <string name="label_action_overview">Anwendungsverlauf</string> - <string name="label_action_power_menu">Startmenü</string> - <string name="label_action_menu">Menü</string> - <string name="label_action_back">Zurück</string> - <string name="label_action_home">Startbildschirm</string> - <string name="label_action_ime_switcher">IME-wechsler</string> - <string name="label_action_stop_screenpinning">Bildschirm anheften stoppen</string> - <string name="label_action_ime_down">Eingabemethode Cursor unten</string> - <string name="label_action_ime_left">Eingabemethode Cursor links</string> - <string name="label_action_ime_right">Eingabemethode Cursor rechts</string> - <string name="label_action_ime_up">Eingabemethode Cursor oben</string> - <string name="label_action_volume_panel">Lautstärkeregler</string> - <string name="label_action_clear_notifications">Benachrichtigungen löschen</string> - <string name="label_action_editing_smartbar">SmartBar-Editor</string> - <string name="label_action_split_screen">Geteilter Bildschirm</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Aktionen</string> - <string name="label_smartbar_icon">Symbol</string> - <string name="label_smartbar_add">Hinzufügen</string> - <string name="label_smartbar_remove">Entfernen</string> - <string name="label_smartbar_cancel">Abbrechen</string> - <string name="label_smartbar_finish">Beenden</string> - <string name="label_smartbar_single_tap">Einmal tippen</string> - <string name="label_smartbar_double_tap">Doppelt tippen</string> - <string name="label_smartbar_long_press">Lang drücken</string> - <string name="label_smartbar_icon_pack">Symbol-Paket</string> - <string name="label_smartbar_icon_gallery">Galerie</string> - <string name="label_smartbar_icon_color">Farbe</string> - <string name="label_smartbar_icon_reset">Zurücksetzen</string> - <string name="smartbar_editor_toast_starting">Navigation-Editor starten</string> - <string name="smartbar_editor_toast_stopping">Navigation-Editor stoppen</string> - <string name="smartbar_editor_toast_unavailable">Navigation-Editor nicht verfügbar</string> - <string name="edit_mode">Bearbeitungsmodus</string> - <!-- App killed message --> - <string name="app_killed_message">%s beendet</string> -</resources> diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-el/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml deleted file mode 100644 index 3c4131d..0000000 --- a/res/values-es/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Sin acción</string> - <string name="label_action_settings_panel">Panel QS</string> - <string name="label_action_notification_panel">Panel de notificaciones</string> - <string name="label_action_screenshot">Captura de pantalla</string> - <string name="label_action_screenrecord">Grabar Pantalla</string> - <string name="label_action_expanded_desktop">Escritorio extendido</string> - <string name="label_action_screen_off">Apagar pantalla</string> - <string name="label_action_force_close_app">Forzar cierre de app</string> - <string name="label_action_search_assistant">Asistente de búsqueda</string> - <string name="label_action_google_now_on_tap">Google asistente</string> - <string name="label_action_voice_search">Búsqueda por voz</string> - <string name="label_action_in_app_search">Búsqueda en la aplicación</string> - <string name="label_action_flashlight">Linterna</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">Wi-Fi</string> - <string name="label_action_hotspot">Zona Wi-Fi</string> - <string name="label_action_last_app">Última aplicación</string> - <string name="label_action_overview">Recientes</string> - <string name="label_action_power_menu">Menú de apagado</string> - <string name="label_action_menu">Menú</string> - <string name="label_action_back">Volver</string> - <string name="label_action_home">Inicio</string> - <string name="label_action_ime_switcher">Selector IME</string> - <string name="label_action_stop_screenpinning">Detener fijado de pantalla</string> - <string name="label_action_ime_down">Método de entrada el cursor hacia abajo</string> - <string name="label_action_ime_left">Método de entrada el cursor hacia izquierda</string> - <string name="label_action_ime_right">Método de entrada el cursor hacia derecha</string> - <string name="label_action_ime_up">Método de entrada el cursor hacia arriba</string> - <string name="label_action_volume_panel">Panel de volumen</string> - <string name="label_action_clear_notifications">Borrar notificaciones</string> - <string name="label_action_editing_smartbar">Editor de Smartbar</string> - <string name="label_action_split_screen">Pantalla dividida</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Acciones</string> - <string name="label_smartbar_icon">Icono</string> - <string name="label_smartbar_add">Agregar</string> - <string name="label_smartbar_remove">Eliminar</string> - <string name="label_smartbar_cancel">Cancelar</string> - <string name="label_smartbar_finish">Finalizar</string> - <string name="label_smartbar_single_tap">Un toque</string> - <string name="label_smartbar_double_tap">Doble toque</string> - <string name="label_smartbar_long_press">Pulsación larga</string> - <string name="label_smartbar_icon_pack">Paquete de iconos</string> - <string name="label_smartbar_icon_gallery">Galería</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Restablecer</string> - <string name="smartbar_editor_toast_starting">Empezar editor de barra de navegacion</string> - <string name="smartbar_editor_toast_stopping">Terminando editor de barra de navegacion</string> - <string name="smartbar_editor_toast_unavailable">Editor de barra de navegacion no disponible</string> - <string name="edit_mode">Modo de edición</string> - <!-- App killed message --> - <string name="app_killed_message">%s finalizada</string> -</resources> diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml deleted file mode 100644 index 466a7ce..0000000 --- a/res/values-fi/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Ei toimintoa</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Laajennettu työpöytä</string> - <string name="label_action_screen_off">Näyttö pois päältä</string> - <string name="label_action_force_close_app">Pakota sovelluksen sulkeminen</string> - <string name="label_action_search_assistant">Haku</string> - <string name="label_action_google_now_on_tap">Google avustaja</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Taskulamppu</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Mobiilitukiasema</string> - <string name="label_action_last_app">Viimeisin sovellus</string> - <string name="label_action_overview">Viimeaikaiset</string> - <string name="label_action_power_menu">Virtanappi-valikko</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Syöttötavan valitsimen osoitin, vasen</string> - <string name="label_action_ime_right">Syöttötavan valitsimen osoitin, oikea</string> - <string name="label_action_ime_up">Syöttötavan valitsimen osoitin, ylös</string> - <string name="label_action_volume_panel">Äänenvoimakkuus paneeli</string> - <string name="label_action_clear_notifications">Tyhjennä ilmoitukset</string> - <string name="label_action_editing_smartbar">Smartbar editori</string> - <string name="label_action_split_screen">Jaettu näyttö</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml deleted file mode 100644 index 25cc357..0000000 --- a/res/values-fr/strings.xml +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> - -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - - <!-- Bindable action labels --> - <string name="label_action_no_action">Aucune action</string> - <string name="label_action_settings_panel">Panneau de configuration rapide</string> - <string name="label_action_notification_panel">Volet de notification</string> - <string name="label_action_screenshot">Capture d\'écran</string> - <string name="label_action_region_screenshot">Capture d\'écran partielle</string> - <string name="label_action_screenrecord">Capture vidéo</string> - <string name="label_action_expanded_desktop">Bureau étendu</string> - <string name="label_action_screen_off">Mise en veille</string> - <string name="label_action_force_close_app">Forcer l\'arrêt de l\'application</string> - <string name="label_action_search_assistant">Recherche</string> - <string name="label_action_google_now_on_tap">Assistant Google</string> - <string name="label_action_voice_search">Recherche vocale</string> - <string name="label_action_in_app_search">Recherche dans l\'application</string> - <string name="label_action_flashlight">Lampe de poche</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">Wi-Fi</string> - <string name="label_action_hotspot">Partage de connexion</string> - <string name="label_action_last_app">Dernière application</string> - <string name="label_action_overview">Applications récentes</string> - <string name="label_action_power_menu">Menu marche/arrêt</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Retour</string> - <string name="label_action_home">Accueil</string> - <string name="label_action_ime_switcher">Sélecteur de clavier</string> - <string name="label_action_stop_screenpinning">Annuler l\'épinglage de l\'écran</string> - <string name="label_action_ime_down">Curseur bas</string> - <string name="label_action_ime_left">Curseur gauche</string> - <string name="label_action_ime_right">Curseur droit</string> - <string name="label_action_ime_up">Curseur haut</string> - <string name="label_action_volume_panel">Panneau de volume</string> - <string name="label_action_clear_notifications">Supprimer les notifications</string> - <string name="label_action_editing_smartbar">Menu d\'édition</string> - <string name="label_action_split_screen">Écran partagé</string> - <string name="label_action_one_handed_mode_left">Utilisation à une main (gaucher)</string> - <string name="label_action_one_handed_mode_right">Utilisation à une main (droitier)</string> - <string name="label_action_media_left">Titre musical précédent</string> - <string name="label_action_media_right">Titre musical suivant</string> - - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icône</string> - <string name="label_smartbar_add">Ajouter</string> - <string name="label_smartbar_remove">Supprimer</string> - <string name="label_smartbar_cancel">Annuler</string> - <string name="label_smartbar_finish">Terminé</string> - <string name="label_smartbar_single_tap">Appui simple</string> - <string name="label_smartbar_double_tap">Double appui</string> - <string name="label_smartbar_long_press">Appui prolongé</string> - <string name="label_smartbar_icon_pack">Pack d\'icônes</string> - <string name="label_smartbar_icon_gallery">Galerie</string> - <string name="label_smartbar_icon_color">Couleur</string> - <string name="label_smartbar_icon_reset">Réinitialiser</string> - <string name="smartbar_editor_toast_starting">Démarrage du menu d\'édition de SmartBar</string> - <string name="smartbar_editor_toast_stopping">Arrêt du menu d\'édition de SmartBar</string> - <string name="smartbar_editor_toast_unavailable">Menu d\'édition de SmartBar non disponible</string> - <string name="edit_mode">Modifier</string> - - <!-- App killed message --> - <string name="app_killed_message">Fermeture forcée de %s</string> - -</resources> diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml deleted file mode 100644 index 50e30de..0000000 --- a/res/values-hu/strings.xml +++ /dev/null @@ -1,77 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Nincs művelet</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Értesítési panel</string> - <string name="label_action_screenshot">Képernyőmentés</string> - <string name="label_action_region_screenshot">Részleges képernyőmentés</string> - <string name="label_action_screenrecord">Képernyő felvétel</string> - <string name="label_action_expanded_desktop">Kiterjesztett képernyő</string> - <string name="label_action_screen_off">Képernyő kikapcsolása</string> - <string name="label_action_force_close_app">Alkalmazás kényszerített bezárása</string> - <string name="label_action_search_assistant">Keresési segéd</string> - <string name="label_action_google_now_on_tap">Google helyettes</string> - <string name="label_action_voice_search">hangalapú keresés</string> - <string name="label_action_in_app_search">Alkalmazáson belüli keresés</string> - <string name="label_action_flashlight">Zseblámpa</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Utolsó alkalmazás</string> - <string name="label_action_overview">Előzmények</string> - <string name="label_action_power_menu">Kikapcsoló menü</string> - <string name="label_action_menu">Menü</string> - <string name="label_action_back">Vissza</string> - <string name="label_action_home">Kezdőlap</string> - <string name="label_action_ime_switcher">IME váltó</string> - <string name="label_action_stop_screenpinning">Képernyő rögzítés feloldása</string> - <string name="label_action_ime_down">Beviteli mód kurzor le</string> - <string name="label_action_ime_left">Beviteli mód kurzor balra</string> - <string name="label_action_ime_right">Beviteli mód kurzor jobbra</string> - <string name="label_action_ime_up">Beviteli mód kurzor fel</string> - <string name="label_action_volume_panel">Hangerő panel</string> - <string name="label_action_clear_notifications">Értesítés törlése</string> - <string name="label_action_editing_smartbar">Smartbar szerkesztő</string> - <string name="label_action_split_screen">Osztott képernyő</string> - <string name="label_action_one_handed_mode_left">Egykezes mód (bal oldalon)</string> - <string name="label_action_one_handed_mode_right">Egykezes mód (jobb oldalon)</string> - <string name="label_action_media_left">Előző szám</string> - <string name="label_action_media_right">Következő szám</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Műveletek</string> - <string name="label_smartbar_icon">Ikon</string> - <string name="label_smartbar_add">Hozzáadás</string> - <string name="label_smartbar_remove">Eltávolítás</string> - <string name="label_smartbar_cancel">Mégsem</string> - <string name="label_smartbar_finish">Befejezés</string> - <string name="label_smartbar_single_tap">Egyszerű érintés</string> - <string name="label_smartbar_double_tap">Dupla érintés</string> - <string name="label_smartbar_long_press">Hosszan nyomva</string> - <string name="label_smartbar_icon_pack">Ikon csomag</string> - <string name="label_smartbar_icon_gallery">Galéria</string> - <string name="label_smartbar_icon_color">Szín</string> - <string name="label_smartbar_icon_reset">Visszaállítás</string> - <string name="smartbar_editor_toast_starting">Navigációs sáv szerkesztő elindítva</string> - <string name="smartbar_editor_toast_stopping">Navigációs sáv szerkesztő megállítva</string> - <string name="smartbar_editor_toast_unavailable">Navigációs sáv szerkesztő nem érhető el</string> - <string name="edit_mode">Szerkesztési mód</string> - <!-- App killed message --> - <string name="app_killed_message">%s kilőve</string> -</resources> diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml deleted file mode 100644 index 8994815..0000000 --- a/res/values-it/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Nessuna azione</string> - <string name="label_action_settings_panel">Pannello QS</string> - <string name="label_action_notification_panel">Pannello delle Notifiche</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Registra schermo</string> - <string name="label_action_expanded_desktop">Desktop esteso</string> - <string name="label_action_screen_off">Spegni lo schermo</string> - <string name="label_action_force_close_app">Chiusura forzata app</string> - <string name="label_action_search_assistant">Assistente di ricerca</string> - <string name="label_action_google_now_on_tap">Google assistente</string> - <string name="label_action_voice_search">Ricerca vocale</string> - <string name="label_action_in_app_search">Ricerca in applicazioni</string> - <string name="label_action_flashlight">Torcia</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Switch all\'ultima applicazione</string> - <string name="label_action_overview">App Recenti</string> - <string name="label_action_power_menu">Menu tasto accensione</string> - <string name="label_action_menu">Menù</string> - <string name="label_action_back">Indietro</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">Metodo inserimento</string> - <string name="label_action_stop_screenpinning">Interrompi blocco sullo schermo</string> - <string name="label_action_ime_down">Metodo di input cursore giù</string> - <string name="label_action_ime_left">Metodo di input cursore sinistra</string> - <string name="label_action_ime_right">Metodo di input cursore destra</string> - <string name="label_action_ime_up">Metodo di input cursore sù</string> - <string name="label_action_volume_panel">Pannello volume</string> - <string name="label_action_clear_notifications">Cancella le notifiche</string> - <string name="label_action_editing_smartbar">Modifica SmartBar</string> - <string name="label_action_split_screen">Dividi schermo</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Azioni</string> - <string name="label_smartbar_icon">Icona</string> - <string name="label_smartbar_add">Aggiungi</string> - <string name="label_smartbar_remove">Rimuovi</string> - <string name="label_smartbar_cancel">Cancella</string> - <string name="label_smartbar_finish">Termina</string> - <string name="label_smartbar_single_tap">Tap singolo</string> - <string name="label_smartbar_double_tap">Doppio tap</string> - <string name="label_smartbar_long_press">Pressione prolungata</string> - <string name="label_smartbar_icon_pack">Pacchetto icone</string> - <string name="label_smartbar_icon_gallery">Galleria</string> - <string name="label_smartbar_icon_color">Colore</string> - <string name="label_smartbar_icon_reset">Ripristina</string> - <string name="smartbar_editor_toast_starting">Avvio editor di navigazione</string> - <string name="smartbar_editor_toast_stopping">Arresto editor di navigazione</string> - <string name="smartbar_editor_toast_unavailable">Editor di navigazione non disponibile</string> - <string name="edit_mode">Modalità modifica</string> - <!-- App killed message --> - <string name="app_killed_message">%s terminata</string> -</resources> diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-iw/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml deleted file mode 100644 index df695e6..0000000 --- a/res/values-ja/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">なし</string> - <string name="label_action_settings_panel">QSを設定する</string> - <string name="label_action_notification_panel">通知パネル</string> - <string name="label_action_screenshot">スクリーンショット</string> - <string name="label_action_screenrecord">画面を録画</string> - <string name="label_action_expanded_desktop">拡張デスクトップ</string> - <string name="label_action_screen_off">画面をオフにする</string> - <string name="label_action_force_close_app">アプリを強制終了</string> - <string name="label_action_search_assistant">検索アシスタント</string> - <string name="label_action_google_now_on_tap">Google アシスタント</string> - <string name="label_action_voice_search">音声検索</string> - <string name="label_action_in_app_search">アプリ内検索</string> - <string name="label_action_flashlight">フラッシュライト</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">最後に使用したアプリ</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">電源メニュー</string> - <string name="label_action_menu">メニュー</string> - <string name="label_action_back">戻る</string> - <string name="label_action_home">ホーム</string> - <string name="label_action_ime_switcher">IME Changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">音量パネル</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">スマートバーエディター</string> - <string name="label_action_split_screen">分割画面</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">アクション</string> - <string name="label_smartbar_icon">アイコン</string> - <string name="label_smartbar_add">追加</string> - <string name="label_smartbar_remove">削除</string> - <string name="label_smartbar_cancel">キャンセル</string> - <string name="label_smartbar_finish">終了</string> - <string name="label_smartbar_single_tap">シングルタップ</string> - <string name="label_smartbar_double_tap">ダブルタップ</string> - <string name="label_smartbar_long_press">長押しタップ</string> - <string name="label_smartbar_icon_pack">アイコンパック</string> - <string name="label_smartbar_icon_gallery">ギャラリー</string> - <string name="label_smartbar_icon_color">色</string> - <string name="label_smartbar_icon_reset">リセット</string> - <string name="smartbar_editor_toast_starting">ナビゲーションエディターを開始しました</string> - <string name="smartbar_editor_toast_stopping">ナビゲーションエディターを停止しました</string> - <string name="smartbar_editor_toast_unavailable">ナビゲーションエディターを使用できません</string> - <string name="edit_mode">編集モード</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-ko/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml deleted file mode 100644 index 36d9bde..0000000 --- a/res/values-nl/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Geen actie</string> - <string name="label_action_settings_panel">Instellingen QS</string> - <string name="label_action_notification_panel">Notificatie paneel</string> - <string name="label_action_screenshot">Schermafbeelding</string> - <string name="label_action_screenrecord">Scherm opnemen</string> - <string name="label_action_expanded_desktop">Uitgebreid bureaublad</string> - <string name="label_action_screen_off">Scherm uitschakelen</string> - <string name="label_action_force_close_app">App geforceerd afsluiten</string> - <string name="label_action_search_assistant">Zoekassistent</string> - <string name="label_action_google_now_on_tap">Google assistent</string> - <string name="label_action_voice_search">Gesproken zoekopdrachten</string> - <string name="label_action_in_app_search">Zoeken in apps</string> - <string name="label_action_flashlight">Zaklamp</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Vorige app</string> - <string name="label_action_overview">Recent</string> - <string name="label_action_power_menu">Power Menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Vorige</string> - <string name="label_action_home">Startpagina</string> - <string name="label_action_ime_switcher">Invoermethode</string> - <string name="label_action_stop_screenpinning">Stoppen met het scherm vastzetten</string> - <string name="label_action_ime_down">Invoermethode cursor omlaag</string> - <string name="label_action_ime_left">Invoermethode cursor links</string> - <string name="label_action_ime_right">Invoermethode cursor rechts</string> - <string name="label_action_ime_up">Invoermethode cursor omhoog</string> - <string name="label_action_volume_panel">Volume paneel</string> - <string name="label_action_clear_notifications">Melding wissen</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Scherm opsplitsen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Acties</string> - <string name="label_smartbar_icon">Pictogram</string> - <string name="label_smartbar_add">Toevoegen</string> - <string name="label_smartbar_remove">Verwijderen</string> - <string name="label_smartbar_cancel">Annuleren</string> - <string name="label_smartbar_finish">Voltooien</string> - <string name="label_smartbar_single_tap">Enkele klik</string> - <string name="label_smartbar_double_tap">Dubbel klikken</string> - <string name="label_smartbar_long_press">Lang indrukken</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallerij</string> - <string name="label_smartbar_icon_color">Kleur</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Navigatie editor aan het starten</string> - <string name="smartbar_editor_toast_stopping">Navigatie editor aan het stoppen</string> - <string name="smartbar_editor_toast_unavailable">Navigatie editor niet beschiktbaar</string> - <string name="edit_mode">Bewerkingsmodus</string> - <!-- App killed message --> - <string name="app_killed_message">%Applicatie gestopt</string> -</resources> diff --git a/res/values-no-rNO/strings.xml b/res/values-no-rNO/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-no-rNO/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml deleted file mode 100644 index 37ce078..0000000 --- a/res/values-pl/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Brak akcji</string> - <string name="label_action_settings_panel">Panel QS</string> - <string name="label_action_notification_panel">Panel powiadomień</string> - <string name="label_action_screenshot">Zrzut ekranu</string> - <string name="label_action_screenrecord">Nagrywaj ekran</string> - <string name="label_action_expanded_desktop">Rozszerzony pulpit</string> - <string name="label_action_screen_off">Wyłączanie ekranu</string> - <string name="label_action_force_close_app">Wymuś zamknięcie</string> - <string name="label_action_search_assistant">Asystent wyszukiwania</string> - <string name="label_action_google_now_on_tap">Google asystent</string> - <string name="label_action_voice_search">Wyszukiwanie głosowe</string> - <string name="label_action_in_app_search">Wyszukaj w aplikacji</string> - <string name="label_action_flashlight">Latarka</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Punkt dostępu</string> - <string name="label_action_last_app">Ostatnia aplikacja</string> - <string name="label_action_overview">Ostatnio uruchomione</string> - <string name="label_action_power_menu">Menu zasilania</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Wróć</string> - <string name="label_action_home">Strona Główna</string> - <string name="label_action_ime_switcher">Zmiana metody wprowadzania</string> - <string name="label_action_stop_screenpinning">Zatrzymaj przypinanie ekranu</string> - <string name="label_action_ime_down">Metoda wprowadzania kursor w dół</string> - <string name="label_action_ime_left">Metoda wprowadzania kursor w lewo</string> - <string name="label_action_ime_right">Metoda wprowadzania kursor w prawo</string> - <string name="label_action_ime_up">Metoda wprowadzania kursor w górę</string> - <string name="label_action_volume_panel">Panel głośności</string> - <string name="label_action_clear_notifications">Usuń powiadomienia</string> - <string name="label_action_editing_smartbar">Edycja SmartBar</string> - <string name="label_action_split_screen">Podzielony ekran</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Akcje</string> - <string name="label_smartbar_icon">Ikona</string> - <string name="label_smartbar_add">Dodaj</string> - <string name="label_smartbar_remove">Usuń</string> - <string name="label_smartbar_cancel">Anuluj</string> - <string name="label_smartbar_finish">Zakończ</string> - <string name="label_smartbar_single_tap">Pojedyncze dotknięcie</string> - <string name="label_smartbar_double_tap">Dwukrotne dotknięcie</string> - <string name="label_smartbar_long_press">Przytrzymanie</string> - <string name="label_smartbar_icon_pack">Pakiet ikon</string> - <string name="label_smartbar_icon_gallery">Galeria</string> - <string name="label_smartbar_icon_color">Kolor</string> - <string name="label_smartbar_icon_reset">Resetuj</string> - <string name="smartbar_editor_toast_starting">Rozpoczęto edycję paska nawigacji</string> - <string name="smartbar_editor_toast_stopping">Zakończono edycję paska nawigacji</string> - <string name="smartbar_editor_toast_unavailable">Edytor paska nawigacji jest niedostępny</string> - <string name="edit_mode">Tryb edycji</string> - <!-- App killed message --> - <string name="app_killed_message">%s zabitych</string> -</resources> diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml deleted file mode 100644 index 70d7b32..0000000 --- a/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Sem ação</string> - <string name="label_action_settings_panel">Painel QS</string> - <string name="label_action_notification_panel">Painel de notificação</string> - <string name="label_action_screenshot">Captura de tela</string> - <string name="label_action_screenrecord">Tela de Gravação</string> - <string name="label_action_expanded_desktop">Área de trabalho expandida</string> - <string name="label_action_screen_off">Desligar a tela</string> - <string name="label_action_force_close_app">Forçar fechamento do app</string> - <string name="label_action_search_assistant">Assistente de busca</string> - <string name="label_action_google_now_on_tap">Google assistente</string> - <string name="label_action_voice_search">Pesquisa por voz</string> - <string name="label_action_in_app_search">Pesquisa dentro do app</string> - <string name="label_action_flashlight">Lanterna</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Ponto de acesso</string> - <string name="label_action_last_app">Último app</string> - <string name="label_action_overview">Recentes</string> - <string name="label_action_power_menu">Menu do botão Liga/Desliga</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Voltar</string> - <string name="label_action_home">Página inicial</string> - <string name="label_action_ime_switcher">Alterador de IME</string> - <string name="label_action_stop_screenpinning">Parar fixação da tela</string> - <string name="label_action_ime_down">Cursor método de entrada para baixo</string> - <string name="label_action_ime_left">Cursor método de entrada esquerda</string> - <string name="label_action_ime_right">Método de entrada cursor para a direita</string> - <string name="label_action_ime_up">Método de entrada cursor para cima</string> - <string name="label_action_volume_panel">Painel de volume</string> - <string name="label_action_clear_notifications">Limpar notificações</string> - <string name="label_action_editing_smartbar">Editor de Barra Inteligente</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Ações</string> - <string name="label_smartbar_icon">Ícone</string> - <string name="label_smartbar_add">Adicionar</string> - <string name="label_smartbar_remove">Excluir</string> - <string name="label_smartbar_cancel">Cancelar</string> - <string name="label_smartbar_finish">Concluir</string> - <string name="label_smartbar_single_tap">Toque único</string> - <string name="label_smartbar_double_tap">Toque duplo</string> - <string name="label_smartbar_long_press">Segurar</string> - <string name="label_smartbar_icon_pack">Pacote de ícones</string> - <string name="label_smartbar_icon_gallery">Galeria</string> - <string name="label_smartbar_icon_color">Cor</string> - <string name="label_smartbar_icon_reset">Redefinir</string> - <string name="smartbar_editor_toast_starting">Iniciando edição do navegador</string> - <string name="smartbar_editor_toast_stopping">Parando edição do navegador</string> - <string name="smartbar_editor_toast_unavailable">Editor de navegação não está disponível</string> - <string name="edit_mode">Modo de edição</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml deleted file mode 100644 index 1f0ae5e..0000000 --- a/res/values-pt-rPT/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Sem ação</string> - <string name="label_action_settings_panel">Painel QS</string> - <string name="label_action_notification_panel">Painel de Notificações</string> - <string name="label_action_screenshot">Captura de ecrã</string> - <string name="label_action_screenrecord">Gravar ecrã</string> - <string name="label_action_expanded_desktop">Ambiente de trabalho expandido</string> - <string name="label_action_screen_off">Desligar o ecrã</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Assistente de pesquisa</string> - <string name="label_action_google_now_on_tap">Google assistente</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml deleted file mode 100644 index cd52381..0000000 --- a/res/values-ro/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Nicio acţiune</string> - <string name="label_action_settings_panel">Panoul QS</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml deleted file mode 100644 index 8426c99..0000000 --- a/res/values-ru/strings.xml +++ /dev/null @@ -1,77 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Нет действия</string> - <string name="label_action_settings_panel">Панель QS</string> - <string name="label_action_notification_panel">Панель уведомлений</string> - <string name="label_action_screenshot">Скриншот</string> - <string name="label_action_region_screenshot">Скриншот выбранной области экрана</string> - <string name="label_action_screenrecord">Запись экрана</string> - <string name="label_action_expanded_desktop">Расширенный экран</string> - <string name="label_action_screen_off">Выключить экран</string> - <string name="label_action_force_close_app">Принудительно закрыть приложение</string> - <string name="label_action_search_assistant">Поисковый помощник</string> - <string name="label_action_google_now_on_tap">Google помощник</string> - <string name="label_action_voice_search">Голосовой поиск</string> - <string name="label_action_in_app_search">Поиск в приложении</string> - <string name="label_action_flashlight">Фонарик</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">Wi-Fi</string> - <string name="label_action_hotspot">Точка доступа</string> - <string name="label_action_last_app">Последнее приложение</string> - <string name="label_action_overview">Недавние</string> - <string name="label_action_power_menu">Меню кнопки питания</string> - <string name="label_action_menu">Меню</string> - <string name="label_action_back">Назад</string> - <string name="label_action_home">Домой</string> - <string name="label_action_ime_switcher">Выбор способа ввода</string> - <string name="label_action_stop_screenpinning">Остановить закрепление экрана </string> - <string name="label_action_ime_down">Способ ввода курсор вниз</string> - <string name="label_action_ime_left">Способ ввода курсор влево</string> - <string name="label_action_ime_right">Способ ввода курсор вправо</string> - <string name="label_action_ime_up">Способ ввода курсор вверх</string> - <string name="label_action_volume_panel">Панель громкости</string> - <string name="label_action_clear_notifications">Удалить уведомления</string> - <string name="label_action_editing_smartbar">Редактор Smartbar</string> - <string name="label_action_split_screen">Разделение экрана</string> - <string name="label_action_one_handed_mode_left">Режим одной руки (слева)</string> - <string name="label_action_one_handed_mode_right">Режим одной руки (справа)</string> - <string name="label_action_media_left">Предыдущий трек</string> - <string name="label_action_media_right">Следующий трек</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Действия</string> - <string name="label_smartbar_icon">Значок</string> - <string name="label_smartbar_add">Добавить </string> - <string name="label_smartbar_remove">Удалить</string> - <string name="label_smartbar_cancel">Отмена</string> - <string name="label_smartbar_finish">Готово</string> - <string name="label_smartbar_single_tap">Одиночное нажатие</string> - <string name="label_smartbar_double_tap">Двойное нажатие</string> - <string name="label_smartbar_long_press">Долгое нажатие</string> - <string name="label_smartbar_icon_pack">Набор значков</string> - <string name="label_smartbar_icon_gallery">Галерея</string> - <string name="label_smartbar_icon_color">Цвет</string> - <string name="label_smartbar_icon_reset">Сброс</string> - <string name="smartbar_editor_toast_starting">Запуск редактора панели навигации</string> - <string name="smartbar_editor_toast_stopping">Остановка редактора панели навигации</string> - <string name="smartbar_editor_toast_unavailable">Редактор панели навигации недоступен</string> - <string name="edit_mode">Режим редактирования</string> - <!-- App killed message --> - <string name="app_killed_message">Приложение %s закрыто</string> -</resources> diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-sr/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml deleted file mode 100644 index 0144575..0000000 --- a/res/values-sv/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Ingen åtgärd</string> - <string name="label_action_settings_panel">QS Panel</string> - <string name="label_action_notification_panel">Notifieringspanel</string> - <string name="label_action_screenshot">Skärmbild</string> - <string name="label_action_screenrecord">Skärminspelning</string> - <string name="label_action_expanded_desktop">Utökat skrivbord</string> - <string name="label_action_screen_off">Stänga av skärmen</string> - <string name="label_action_force_close_app">Tvinga stängning av app</string> - <string name="label_action_search_assistant">Sökassistent</string> - <string name="label_action_google_now_on_tap">Google assistent</string> - <string name="label_action_voice_search">Röstsökning</string> - <string name="label_action_in_app_search">Sökning i app</string> - <string name="label_action_flashlight">Ficklampa</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Senaste app</string> - <string name="label_action_overview">Senaste</string> - <string name="label_action_power_menu">Avstängningsmeny</string> - <string name="label_action_menu">Meny</string> - <string name="label_action_back">Tillbaka</string> - <string name="label_action_home">Hem</string> - <string name="label_action_ime_switcher">IME-växlare</string> - <string name="label_action_stop_screenpinning">Stoppa fastlåsning av skärm</string> - <string name="label_action_ime_down">Inmatningsmetod nedre markören</string> - <string name="label_action_ime_left">Inmatningsmetod pil vänster</string> - <string name="label_action_ime_right">Inmatningsmetod markörknappen höger</string> - <string name="label_action_ime_up">Inmatningsmetod markören uppåt</string> - <string name="label_action_volume_panel">Volym panel</string> - <string name="label_action_clear_notifications">Ta bort meddelandet</string> - <string name="label_action_editing_smartbar">Redigera Smartbar</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Åtgärder</string> - <string name="label_smartbar_icon">Ikon</string> - <string name="label_smartbar_add">Lägg till</string> - <string name="label_smartbar_remove">Ta bort</string> - <string name="label_smartbar_cancel">Avbryt</string> - <string name="label_smartbar_finish">Slutför</string> - <string name="label_smartbar_single_tap">Enkeltryck</string> - <string name="label_smartbar_double_tap">Dubbeltryck</string> - <string name="label_smartbar_long_press">Långtryck</string> - <string name="label_smartbar_icon_pack">Ikonpaket</string> - <string name="label_smartbar_icon_gallery">Galleri</string> - <string name="label_smartbar_icon_color">Färg</string> - <string name="label_smartbar_icon_reset">Återställ</string> - <string name="smartbar_editor_toast_starting">Starta navigationseditor</string> - <string name="smartbar_editor_toast_stopping">Stoppa navigeringseditor</string> - <string name="smartbar_editor_toast_unavailable">Navigeringseditor ej tillgänglig</string> - <string name="edit_mode">Redigeringsläge</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml deleted file mode 100644 index 4371bc8..0000000 --- a/res/values-tr/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Eylem yok</string> - <string name="label_action_settings_panel">QS paneli</string> - <string name="label_action_notification_panel">Bildirim paneli</string> - <string name="label_action_screenshot">Ekran görüntüsü</string> - <string name="label_action_screenrecord">Kayıt ekranı</string> - <string name="label_action_expanded_desktop">Genişletilmiş masaüstü</string> - <string name="label_action_screen_off">Ekranı kapat</string> - <string name="label_action_force_close_app">Kapatmaya zorla</string> - <string name="label_action_search_assistant">Arama asistanı</string> - <string name="label_action_google_now_on_tap">Google asistanı</string> - <string name="label_action_voice_search">Sesli arama</string> - <string name="label_action_in_app_search">Uygulama içi arama</string> - <string name="label_action_flashlight">El Feneri</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Son uygulama</string> - <string name="label_action_overview">Son İşlemler</string> - <string name="label_action_power_menu">Güç menüsü</string> - <string name="label_action_menu">Menü</string> - <string name="label_action_back">Geri</string> - <string name="label_action_home">Ana Ekran</string> - <string name="label_action_ime_switcher">IME değiştirici</string> - <string name="label_action_stop_screenpinning">Ekran sabitlemeyi durdur</string> - <string name="label_action_ime_down">Aşagı imleç giriş yöntemi</string> - <string name="label_action_ime_left">Sol imleç giriş yontemi</string> - <string name="label_action_ime_right">Sağ imleç giriş yöntemi</string> - <string name="label_action_ime_up">Yukarı imleç giriş yöntemi</string> - <string name="label_action_volume_panel">Ses paneli</string> - <string name="label_action_clear_notifications">Bildirimleri temizle</string> - <string name="label_action_editing_smartbar">Smartbar düzenleyici</string> - <string name="label_action_split_screen">Bölünmüş ekran</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Eylemler</string> - <string name="label_smartbar_icon">Ikon</string> - <string name="label_smartbar_add">Ekle</string> - <string name="label_smartbar_remove">Kaldır</string> - <string name="label_smartbar_cancel">İptal</string> - <string name="label_smartbar_finish">Bitti</string> - <string name="label_smartbar_single_tap">Tek dokunma</string> - <string name="label_smartbar_double_tap">Çift dokunma</string> - <string name="label_smartbar_long_press">Uzun basma</string> - <string name="label_smartbar_icon_pack">Simge Paketi</string> - <string name="label_smartbar_icon_gallery">Galeri</string> - <string name="label_smartbar_icon_color">Renk</string> - <string name="label_smartbar_icon_reset">Sıfırla</string> - <string name="smartbar_editor_toast_starting">Gezinti çubuğu düzenleyici başlatılıyor</string> - <string name="smartbar_editor_toast_stopping">Gezinti çubuğu düzenleyici durduruluyor</string> - <string name="smartbar_editor_toast_unavailable">Gezinti düzenleyici kullanılamaz</string> - <string name="edit_mode">Düzenleme modu</string> - <!-- App killed message --> - <string name="app_killed_message">%s sonlandırıldı</string> -</resources> diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml deleted file mode 100644 index 94e8a26..0000000 --- a/res/values-uk/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">Немає дій</string> - <string name="label_action_settings_panel">Група QS</string> - <string name="label_action_notification_panel">Панель сповіщень</string> - <string name="label_action_screenshot">Знімок екрану</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Пошуковий асистент</string> - <string name="label_action_google_now_on_tap">Google асистент</string> - <string name="label_action_voice_search">Голосовий пошук</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Точка доступу</string> - <string name="label_action_last_app">Останній додаток</string> - <string name="label_action_overview">Нещодавні</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Головна</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Панель гучності</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Дії</string> - <string name="label_smartbar_icon">Значок</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Готово</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Подвійне натискання</string> - <string name="label_smartbar_long_press">Довге натискання</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Скинути</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml deleted file mode 100644 index 9b587c5..0000000 --- a/res/values-vi/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml deleted file mode 100644 index 558ba9e..0000000 --- a/res/values-zh-rCN/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">无动作</string> - <string name="label_action_settings_panel">QS面板</string> - <string name="label_action_notification_panel">通知面板</string> - <string name="label_action_screenshot">屏幕截图</string> - <string name="label_action_screenrecord">屏幕录像</string> - <string name="label_action_expanded_desktop">扩展桌面</string> - <string name="label_action_screen_off">关闭屏幕</string> - <string name="label_action_force_close_app">强制关闭应用</string> - <string name="label_action_search_assistant">搜索助手</string> - <string name="label_action_google_now_on_tap">Google 助理</string> - <string name="label_action_voice_search">语音搜索</string> - <string name="label_action_in_app_search">应用内搜索</string> - <string name="label_action_flashlight">手电筒</string> - <string name="label_action_bluetooth">蓝牙</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">热点</string> - <string name="label_action_last_app">上次运行应用</string> - <string name="label_action_overview">最近任务</string> - <string name="label_action_power_menu">电源菜单</string> - <string name="label_action_menu">菜单键</string> - <string name="label_action_back">返回键</string> - <string name="label_action_home">主页键</string> - <string name="label_action_ime_switcher">输入法切换</string> - <string name="label_action_stop_screenpinning">停止屏幕固定</string> - <string name="label_action_ime_down">输入法光标下</string> - <string name="label_action_ime_left">输入法光标左</string> - <string name="label_action_ime_right">输入法光标右</string> - <string name="label_action_ime_up">输入法光标上</string> - <string name="label_action_volume_panel">声音面板</string> - <string name="label_action_clear_notifications">清除通知</string> - <string name="label_action_editing_smartbar">Smartbar 编辑器</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">动作</string> - <string name="label_smartbar_icon">图标</string> - <string name="label_smartbar_add">添加</string> - <string name="label_smartbar_remove">移除</string> - <string name="label_smartbar_cancel">取消</string> - <string name="label_smartbar_finish">完成</string> - <string name="label_smartbar_single_tap">单击</string> - <string name="label_smartbar_double_tap">双击</string> - <string name="label_smartbar_long_press">长按</string> - <string name="label_smartbar_icon_pack">图标包</string> - <string name="label_smartbar_icon_gallery">图库</string> - <string name="label_smartbar_icon_color">颜色</string> - <string name="label_smartbar_icon_reset">重置</string> - <string name="smartbar_editor_toast_starting">开始编辑导航栏</string> - <string name="smartbar_editor_toast_stopping">停止编辑导航栏</string> - <string name="smartbar_editor_toast_unavailable">导航编辑器不可用</string> - <string name="edit_mode">编辑模式</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml deleted file mode 100644 index f751e5a..0000000 --- a/res/values-zh-rTW/strings.xml +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!--Generated by crowdin.com--> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <!-- Bindable action labels --> - <string name="label_action_no_action">沒有動作</string> - <string name="label_action_settings_panel">QS面板</string> - <string name="label_action_notification_panel">通知面板</string> - <string name="label_action_screenshot">擷取螢幕畫面</string> - <string name="label_action_screenrecord">錄製螢幕</string> - <string name="label_action_expanded_desktop">擴展桌面</string> - <string name="label_action_screen_off">關閉螢幕</string> - <string name="label_action_force_close_app">強制關閉應用程式</string> - <string name="label_action_search_assistant">搜尋助手</string> - <string name="label_action_google_now_on_tap">Google 助理助理</string> - <string name="label_action_voice_search">語音搜尋</string> - <string name="label_action_in_app_search">應用程式內搜尋</string> - <string name="label_action_flashlight">手電筒</string> - <string name="label_action_bluetooth">藍芽</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">可攜式無線基地台</string> - <string name="label_action_last_app">最後使用的應用程式</string> - <string name="label_action_overview">總覽</string> - <string name="label_action_power_menu">電源功能表</string> - <string name="label_action_menu">選單</string> - <string name="label_action_back">返回</string> - <string name="label_action_home">主畫面</string> - <string name="label_action_ime_switcher">輸入法切換</string> - <string name="label_action_stop_screenpinning">停止螢幕固定</string> - <string name="label_action_ime_down">輸入游標向下</string> - <string name="label_action_ime_left">輸入游標向左</string> - <string name="label_action_ime_right">輸入游標向右</string> - <string name="label_action_ime_up">輸入游標向上</string> - <string name="label_action_volume_panel">音量面板</string> - <string name="label_action_clear_notifications">清除通知</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <!-- Smartbar --> - <string name="label_smartbar_actions">動作</string> - <string name="label_smartbar_icon">圖示</string> - <string name="label_smartbar_add">新增</string> - <string name="label_smartbar_remove">移除</string> - <string name="label_smartbar_cancel">取消</string> - <string name="label_smartbar_finish">完成</string> - <string name="label_smartbar_single_tap">單擊</string> - <string name="label_smartbar_double_tap">雙擊</string> - <string name="label_smartbar_long_press">長按</string> - <string name="label_smartbar_icon_pack">圖示包</string> - <string name="label_smartbar_icon_gallery">圖片庫</string> - <string name="label_smartbar_icon_color">顏色</string> - <string name="label_smartbar_icon_reset">重設</string> - <string name="smartbar_editor_toast_starting">開始導覽編輯器</string> - <string name="smartbar_editor_toast_stopping">停止導覽編輯器</string> - <string name="smartbar_editor_toast_unavailable">無法使用導覽編輯器</string> - <string name="edit_mode">Edit mode</string> - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> -</resources> diff --git a/res/values/colors.xml b/res/values/colors.xml deleted file mode 100644 index 22f6402..0000000 --- a/res/values/colors.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2016 The DirtyUnicorns 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. ---> -<resources> - - <!-- PopupWindows --> - <color name="smartbar_editor_popup_background">@android:color/white</color> - <color name="smartbar_editor_popup_text">@android:color/black</color> - <color name="smartbar_editor_popup_icon_fill">@*android:color/accent_device_default_light</color> - <color name="smartbar_editor_popup_horiz_separator">@*android:color/accent_device_default_light</color> - - <!-- Edit mode --> - <color name="edit_mode_check_mark_color">@android:color/white</color> - - <!-- SmartBar icon colors --> - <color name="icon_color_default">#fff</color> - <color name="icon_color_dark">#212121</color> - <color name="icon_color_no_action">@color/icon_color_default</color> - <color name="icon_color_settings_panel">@color/icon_color_default</color> - <color name="icon_color_notification_panel">@color/icon_color_default</color> - <color name="icon_color_screenshot">@color/icon_color_default</color> - <color name="icon_color_region_screenshot">@color/icon_color_default</color> - <color name="icon_color_screenrecord">@color/icon_color_default</color> - <color name="icon_color_expanded_desktop">@color/icon_color_default</color> - <color name="icon_color_screen_off">@color/icon_color_default</color> - <color name="icon_color_force_close_app">@color/icon_color_default</color> - <color name="icon_color_search_assistant">@color/icon_color_default</color> - <color name="icon_color_google_now_on_tap">@color/icon_color_default</color> - <color name="icon_color_voice_search">@color/icon_color_default</color> - <color name="icon_color_in_app_search">@color/icon_color_default</color> - <color name="icon_color_flashlight">@color/icon_color_default</color> - <color name="icon_color_bluetooth">@color/icon_color_default</color> - <color name="icon_color_wifi">@color/icon_color_default</color> - <color name="icon_color_hotspot">@color/icon_color_default</color> - <color name="icon_color_last_app">@color/icon_color_default</color> - <color name="icon_color_overview">@color/icon_color_default</color> - <color name="icon_color_power_menu">@color/icon_color_default</color> - <color name="icon_color_menu">@color/icon_color_default</color> - <color name="icon_color_back">@color/icon_color_default</color> - <color name="icon_color_home">@color/icon_color_default</color> - <color name="icon_color_ime_switcher">@color/icon_color_default</color> - <color name="icon_color_stop_screenpinning">@color/icon_color_default</color> - <color name="icon_color_ime_down">@color/icon_color_default</color> - <color name="icon_color_ime_left">@color/icon_color_default</color> - <color name="icon_color_ime_right">@color/icon_color_default</color> - <color name="icon_color_ime_up">@color/icon_color_default</color> - <color name="icon_color_volume_panel">@color/icon_color_default</color> - <color name="icon_color_clear_notifications">@color/icon_color_default</color> - <color name="icon_color_editing_smartbar">@color/icon_color_default</color> - <color name="icon_color_split_screen">@color/icon_color_default</color> - <color name="icon_color_one_handed_mode">@color/icon_color_default</color> - <color name="icon_color_sound_search">@color/icon_color_default</color> - - <!-- Navigation button ripple color --> - <color name="navbutton_ripple_color">#FFFFFFFF</color> - -</resources> diff --git a/res/values/config.xml b/res/values/config.xml index 202a4a1..6e5b502 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -15,17 +15,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - - <!-- The factor to increase gesture touch slop. It seems the default values - from ViewConfiguration are too small for Fling. Often taps and long presses - are canceled when they shouldn't be. Applies only to Fling gesture detector - - touchSlop = ViewConfiguration.getTouchSlop() * ((100 + increase_factor) / 100)) - - Default value is a 35% increase in allowed "sloppiness". - Adjust in overlay for device specific precision --> - <item name="config_fling_touchslop_increase_factor" format="float" type="dimen">1.35</item> - <!-- Default bar fill User can define this in settings Here for reference--> diff --git a/res/values/dimens.xml b/res/values/dimens.xml deleted file mode 100644 index 824260d..0000000 --- a/res/values/dimens.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2014 The CyanogenMod 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. ---> -<resources> - - <!-- SmartBar --> - <dimen name="navigation_action_editor_width">120dp</dimen> - <dimen name="navigation_action_editor_height">160dp</dimen> - <dimen name="navigation_key_height">@dimen/navigation_key_width</dimen> - <dimen name="navigation_extra_key_height">@dimen/navigation_extra_key_width</dimen> - <dimen name="navigation_key_padding_start_port">25dp</dimen> - <dimen name="navigation_key_padding_end_port">25dp</dimen> - <dimen name="navigation_key_padding_start_land">42dp</dimen> - <dimen name="navigation_key_padding_end_land">42dp</dimen> - <dimen name="navigation_key_extra_margin_start">2dp</dimen> - <dimen name="navigation_key_extra_margin_end">2dp</dimen> - <dimen name="navigation_key_tablet_width_port">128dp</dimen> - <dimen name="navigation_key_tablet_width_land">162dp</dimen> - - <!-- OPA home dimens --> - <dimen name="halo_inner_radius">10.0dip</dimen> - <dimen name="halo_thickness">1.0dip</dimen> - <dimen name="halo_diameter">22.0dip</dimen> - <dimen name="opa_dot_diam">10.0dip</dimen> - <dimen name="opa_diamond_translation">16.0dip</dimen> - <dimen name="opa_line_y_translation">16.0dip</dimen> - <dimen name="opa_line_x_trans_ry">15.0dip</dimen> - <dimen name="opa_line_x_trans_bg">30.0dip</dimen> - <dimen name="opa_line_x_collapse_bg">46.0dip</dimen> - <dimen name="opa_line_x_collapse_ry">15.0dip</dimen> - <dimen name="opa_overshoot_translation">8.0dip</dimen> - <dimen name="opa_return_translation">-1.0dip</dimen> - <dimen name="opa_rest_to_collapse">7.0dip</dimen> -</resources> diff --git a/res/values/strings.xml b/res/values/strings.xml deleted file mode 100644 index 3815e21..0000000 --- a/res/values/strings.xml +++ /dev/null @@ -1,87 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014-2015 The Dirty Unicorns Project - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - --> - -<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - - <!-- Bindable action labels --> - <string name="label_action_no_action">No action</string> - <string name="label_action_settings_panel">QS panel</string> - <string name="label_action_notification_panel">Notification panel</string> - <string name="label_action_screenshot">Screenshot</string> - <string name="label_action_region_screenshot">Partial screenshot</string> - <string name="label_action_screenrecord">Record screen</string> - <string name="label_action_expanded_desktop">Expanded desktop</string> - <string name="label_action_screen_off">Turn off screen</string> - <string name="label_action_force_close_app">Force close app</string> - <string name="label_action_search_assistant">Search assistant</string> - <string name="label_action_google_now_on_tap">Google assistant</string> - <string name="label_action_voice_search">Voice search</string> - <string name="label_action_in_app_search">In-app search</string> - <string name="label_action_flashlight">Flashlight</string> - <string name="label_action_bluetooth">Bluetooth</string> - <string name="label_action_wifi">WiFi</string> - <string name="label_action_hotspot">Hotspot</string> - <string name="label_action_last_app">Last app</string> - <string name="label_action_overview">Recents</string> - <string name="label_action_power_menu">Power menu</string> - <string name="label_action_menu">Menu</string> - <string name="label_action_back">Back</string> - <string name="label_action_home">Home</string> - <string name="label_action_ime_switcher">IME changer</string> - <string name="label_action_stop_screenpinning">Stop screen pinning</string> - <string name="label_action_ime_down">Input method cursor down</string> - <string name="label_action_ime_left">Input method cursor left</string> - <string name="label_action_ime_right">Input method cursor right</string> - <string name="label_action_ime_up">Input method cursor up</string> - <string name="label_action_volume_panel">Volume panel</string> - <string name="label_action_clear_notifications">Clear notifications</string> - <string name="label_action_editing_smartbar">Smartbar editor</string> - <string name="label_action_split_screen">Split screen</string> - <string name="label_action_one_handed_mode_left">One handed mode (left side)</string> - <string name="label_action_one_handed_mode_right">One handed mode (right side)</string> - <string name="label_action_media_left">Previous track</string> - <string name="label_action_media_right">Next track</string> - <string name="label_action_assistant_sound_search">Google sound search</string> - <string name="label_action_rotation">Rotation</string> - - <!-- Smartbar --> - <string name="label_smartbar_actions">Actions</string> - <string name="label_smartbar_icon">Icon</string> - <string name="label_smartbar_add">Add</string> - <string name="label_smartbar_remove">Remove</string> - <string name="label_smartbar_cancel">Cancel</string> - <string name="label_smartbar_finish">Finish</string> - <string name="label_smartbar_single_tap">Single tap</string> - <string name="label_smartbar_double_tap">Double tap</string> - <string name="label_smartbar_long_press">Long press</string> - <string name="label_smartbar_icon_pack">Icon pack</string> - <string name="label_smartbar_icon_gallery">Gallery</string> - <string name="label_smartbar_icon_color">Color</string> - <string name="label_smartbar_icon_reset">Reset</string> - <string name="smartbar_editor_toast_starting">Starting navigation editor</string> - <string name="smartbar_editor_toast_stopping">Stopping navigation editor</string> - <string name="smartbar_editor_toast_unavailable">Navigation editor unavailable</string> - <string name="edit_mode">Edit mode</string> - - <!-- App killed message --> - <string name="app_killed_message">%s killed</string> - - <!-- Pulse and media arrows blacklist --> - <string name="navMediaArrowsExcludeList" translatable="false"> - chrome,youtube,netflix,firefox,dolphin,opera,browser - </string> -</resources> diff --git a/res/values/styles.xml b/res/values/styles.xml deleted file mode 100644 index f0f9576..0000000 --- a/res/values/styles.xml +++ /dev/null @@ -1,33 +0,0 @@ -<resources>
- <style name="Animations" />
- <!-- PopUpMenu -->
- <style name="Animations.PopUpMenu" />
-
- <style name="Animations.PopUpMenu.Center">
- <item name="android:windowEnterAnimation">@anim/grow_from_bottom</item>
- <item name="android:windowExitAnimation">@anim/shrink_from_top</item>
- </style>
-
- <style name="Animations.PopUpMenu.Left">
- <item name="android:windowEnterAnimation">@anim/grow_from_bottomleft_to_topright</item>
- <item name="android:windowExitAnimation">@anim/shrink_from_topright_to_bottomleft</item>
- </style>
-
- <style name="Animations.PopUpMenu.Right">
- <item name="android:windowEnterAnimation">@anim/grow_from_bottomright_to_topleft</item>
- <item name="android:windowExitAnimation">@anim/shrink_from_topleft_to_bottomright</item>
- </style>
-
- <style name="Animations.PopUpMenu.Reflect">
- <item name="android:windowEnterAnimation">@anim/pump_bottom</item>
- <item name="android:windowExitAnimation">@anim/disappear</item>
- </style>
-
- <style name="DotStyle">
- <item name="android:layout_width">wrap_content</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:layout_centerHorizontal">true</item>
- <item name="android:layout_centerVertical">true</item>
- </style>
-
-</resources>
diff --git a/src/com/android/systemui/navigation/BaseEditor.java b/src/com/android/systemui/navigation/BaseEditor.java deleted file mode 100644 index 476da32..0000000 --- a/src/com/android/systemui/navigation/BaseEditor.java +++ /dev/null @@ -1,244 +0,0 @@ -/** - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Core implementation of a inline navigation editor. Respond to many of the - * same events BaseNavigationBar does and provide subclasses with information - * regarding state changes - * - */ - -package com.android.systemui.navigation; - -import com.android.systemui.navigation.BaseNavigationBar; -import com.android.systemui.navigation.Editor; -import com.android.systemui.R; - -import com.android.internal.utils.du.Config.ActionConfig; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.res.Resources; -import android.graphics.PixelFormat; -import android.text.TextUtils; -import android.util.Log; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.WindowManager; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.Toast; - -public abstract class BaseEditor implements Editor { - - public static final String INTENT_ACTION_EDIT_CLASS = "com.android.settings"; - public static final String INTENT_ACTION_EDIT_COMPONENT = "com.abc.settings.ActionPickerDialogActivity"; - public static final String INTENT_ACTION_ICON_PICKER_COMPONENT = "com.abc.settings.IconPickerActivity"; - public static final String INTENT_ACTION_GALLERY_PICKER_COMPONENT = "com.abc.settings.IconPickerGallery"; - public static final String INTENT_ICON_PICKER = "intent_icon_picker"; - public static final String INTENT_GALLERY_PICKER = "intent_gallery_picker"; - public static final String INTENT_ACTION_PICKER = "intent_action_action_picker"; - public static final String INTENT_NAVBAR_EDIT_RESET_LAYOUT = "intent_navbar_edit_reset_layout"; - public static int MODE_ON = 1; - public static int MODE_OFF = 2; - - protected Context mContext; - protected FrameLayout mFrameLayout; - protected WindowManager mWindowManager; - - // we want any incoming hints (menu/ime/disabled) to automatcally - // turn off editor. Except when we call these hint handling methods - // as part of the editing process - protected boolean mLockEditMode; - private int mMode = MODE_OFF; - private boolean mIsLandscape; - private boolean mScreenOn; - private boolean mKeyguardShowing; - private boolean mScreenPinningOn; - private BaseNavigationBar mHost; - - public BaseEditor(BaseNavigationBar host) { - mHost = host; - mContext = host.getContext(); - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - } - - private void toastState(int state) { - if (state == MODE_ON) { - editHint(); - } else if (state == MODE_OFF) { - mWindowManager.removeView(mFrameLayout); - } else { - Toast.makeText(mContext, R.string.smartbar_editor_toast_unavailable, - Toast.LENGTH_SHORT).show(); - } - } - - private void editHint() { - WindowManager.LayoutParams params = new WindowManager.LayoutParams( - WindowManager.LayoutParams.WRAP_CONTENT, - WindowManager.LayoutParams.WRAP_CONTENT, - WindowManager.LayoutParams.TYPE_PHONE, - WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, - PixelFormat.TRANSLUCENT); - params.gravity = Gravity.TOP; - - mFrameLayout = new FrameLayout(mContext); - - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - mWindowManager.addView(mFrameLayout, params); - - LayoutInflater layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - layoutInflater.inflate(R.layout.edit_hint, mFrameLayout); - - final ImageView imageView = (ImageView) mFrameLayout.findViewById(R.id.imageView); - imageView.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - toggleNavigationEditor(); - } - }); - } - - protected abstract void onEditModeChanged(int mode); - - protected abstract void onPrepareToReorient(); - - protected abstract void onReorient(); - - protected void onActionPicked(String action, ActionConfig actionConfig) {} - - protected void onIconPicked(String type, String packageName, String iconName) {} - - protected void onImagePicked(String uri) {} - - protected void updateResources(Resources res) {} - - protected void onResetLayout() {} - - @Override - public void dispatchNavigationEditorResults(Intent intent) { - if (intent != null) { - String action = intent.getAction(); - if (TextUtils.equals(INTENT_NAVBAR_EDIT_RESET_LAYOUT, action)) { - onResetLayout(); - } else if (TextUtils.equals(INTENT_ACTION_PICKER, action)) { - int result = intent.getIntExtra("result", Activity.RESULT_CANCELED); - if (result == Activity.RESULT_OK) { - String actionString = intent.getStringExtra("action_string"); - ActionConfig config = intent.getParcelableExtra("action_config"); - onActionPicked(actionString, config); - } - } else if (TextUtils.equals(INTENT_ICON_PICKER, action)) { - int result = intent.getIntExtra("result", Activity.RESULT_CANCELED); - if (result == Activity.RESULT_OK) { - String iconType = intent.getStringExtra("icon_data_type"); - String iconPackage = intent.getStringExtra("icon_data_package"); - String iconName = intent.getStringExtra("icon_data_name"); - onIconPicked(iconType, iconPackage, iconName); - } - } else if (TextUtils.equals(INTENT_GALLERY_PICKER, action)) { - Log.d("BASEEDITOR", "ICON SELECTED"); - int result = intent.getIntExtra("result", Activity.RESULT_CANCELED); - if (result == Activity.RESULT_OK) { - String uri = intent.getStringExtra("uri"); - onImagePicked(uri); - } - } - } - } - - @Override - public void toggleNavigationEditor() { - final int mode = mMode; - if (mode == MODE_ON) { - changeEditMode(MODE_OFF); - mHost.setSlippery(true); - } else { - if (isEditorAvailable()) { - changeEditMode(MODE_ON); - mHost.setSlippery(false); - } else { - toastState(69); - } - } - } - - @Override - public final void changeEditMode(int mode) { - if (mLockEditMode || mMode == mode) - return; - mMode = mode; - toastState(mode); - onEditModeChanged(mode); - } - - public boolean isEditorAvailable() { - return !mKeyguardShowing - && mScreenOn - && !mScreenPinningOn - && !mHost.mVertical - && !mHost.mPulse.shouldDrawPulse() - && !mHost.areAnyHintsActive(); - } - - @Override - public final void prepareToReorient() { - onPrepareToReorient(); - } - - @Override - public final void reorient(boolean isLandscape) { - mIsLandscape = isLandscape; - if (mHost.mVertical) { - changeEditMode(MODE_OFF); - } - onReorient(); - } - - @Override - public void setKeyguardShowing(boolean showing) { - mKeyguardShowing = showing; - if (mKeyguardShowing) { - changeEditMode(MODE_OFF); - } - } - - @Override - public void notifyScreenOn(boolean screenOn) { - mScreenOn = screenOn; - if (!mScreenOn) { - changeEditMode(MODE_OFF); - } - } - - @Override - public void screenPinningStateChanged(boolean enabled) { - mScreenPinningOn = enabled; - if (mScreenPinningOn) { - changeEditMode(MODE_OFF); - } - } - - protected boolean isLandscape() { - return mIsLandscape; - } - - public int getMode() { - return mMode; - } -} diff --git a/src/com/android/systemui/navigation/BaseNavigationBar.java b/src/com/android/systemui/navigation/BaseNavigationBar.java deleted file mode 100644 index 0c4e649..0000000 --- a/src/com/android/systemui/navigation/BaseNavigationBar.java +++ /dev/null @@ -1,668 +0,0 @@ -/** - * Copyright (C) 2008 The Android Open Source Project - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Base navigation bar abstraction for managing keyguard policy, internal - * bar behavior, and everything else not feature implementation specific - * - */ - -package com.android.systemui.navigation; - -import java.io.FileDescriptor; -import java.io.PrintWriter; - -import com.android.systemui.Dependency; -import com.android.systemui.navigation.Navigator; -import com.android.systemui.navigation.Res; -import com.android.systemui.navigation.NavbarOverlayResources; -import com.android.systemui.navigation.pulse.PulseController; -import com.android.systemui.navigation.pulse.PulseController.PulseObserver; -import com.android.systemui.navigation.utils.SmartObserver; -import com.android.systemui.plugins.statusbar.phone.NavGesture; -import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.policy.RotationLockController; -import com.android.systemui.R; - -import com.android.internal.utils.du.DUActionUtils; -import com.android.internal.utils.du.ImageHelper; - -import android.animation.LayoutTransition; -import android.app.StatusBarManager; -import android.content.BroadcastReceiver; -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.res.Configuration; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Point; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.media.AudioManager; -import android.os.Handler; -import android.os.Message; -import android.os.PowerManager; -import android.util.AttributeSet; -import android.util.Log; -import android.view.Display; -import android.view.Surface; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.widget.FrameLayout; -import android.widget.LinearLayout; - -public abstract class BaseNavigationBar extends LinearLayout implements Navigator, PulseObserver { - final static String TAG = "PhoneStatusBar/BaseNavigationBar"; - public final static boolean DEBUG = false; - public static final boolean NAVBAR_ALWAYS_AT_RIGHT = true; - // slippery nav bar when everything is disabled, e.g. during setup - final static boolean SLIPPERY_WHEN_DISABLED = true; - - // workaround for LayoutTransitions leaving the nav buttons in a weird state (bug 5549288) - final static boolean WORKAROUND_INVALID_LAYOUT = true; - final static int MSG_CHECK_INVALID_LAYOUT = 8686; - - public static final int MSG_SET_DISABLED_FLAGS = 101; - public static final int MSG_INVALIDATE = 102; - public static boolean sIsTablet; - - private boolean mKeyguardShowing; - - protected H mHandler = new H(); - protected final Display mDisplay; - private final WindowManager mWm; - protected View[] mRotatedViews = new View[4]; - protected View mCurrentView = null; - protected FrameLayout mRot0, mRot90; - protected int mDisabledFlags = 0; - protected int mNavigationIconHints = 0; - private int mCurrentRotation = -1; - protected boolean mVertical; - protected boolean mScreenOn; - protected boolean mLeftInLandscape; - protected boolean mLayoutTransitionsEnabled; - protected boolean mWakeAndUnlocking; - protected boolean mScreenPinningEnabled; - protected OnVerticalChangedListener mOnVerticalChangedListener; - protected SmartObserver mSmartObserver; - protected PulseController mPulse; - - public NavbarOverlayResources mResourceMap; - - protected boolean mCarMode = false; - protected boolean mDockedStackExists; - - private RotationLockController mRotationLockController; - - private class H extends Handler { - public void handleMessage(Message m) { - switch (m.what) { - case MSG_CHECK_INVALID_LAYOUT: - final String how = "" + m.obj; - final int w = getWidth(); - final int h = getHeight(); - final int vw = mCurrentView.getWidth(); - final int vh = mCurrentView.getHeight(); - - if (h != vh || w != vw) { - Log.w(TAG, String.format( - "*** Invalid layout in navigation bar (%s this=%dx%d cur=%dx%d)", - how, w, h, vw, vh)); - if (WORKAROUND_INVALID_LAYOUT) { - requestLayout(); - } - } - break; - case MSG_SET_DISABLED_FLAGS: - setDisabledFlags(mDisabledFlags, true); - break; - case MSG_INVALIDATE: - invalidate(); - break; - } - } - } - - private final BroadcastReceiver mReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - onReceivedIntent(intent); - } - }; - - private void onReceivedIntent(Intent intent) { - if (Intent.ACTION_SCREEN_ON.equals(intent.getAction())) { - notifyScreenStateChange(true); - } else if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) { - notifyScreenStateChange(false); - } else if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { - notifyBootCompleted(); - } else { - onReceive(intent); - if (mPulse != null) { - mPulse.onReceive(intent); - } - } - } - - public void onReceive(Intent intent) { - } - - public BaseNavigationBar(Context context) { - this(context, null); - } - - public BaseNavigationBar(Context context, AttributeSet attrs) { - super(context, attrs); - mDisplay = ((WindowManager) context.getSystemService( - Context.WINDOW_SERVICE)).getDefaultDisplay(); - mWm = (WindowManager) context.getSystemService( - Context.WINDOW_SERVICE); - mSmartObserver = new SmartObserver(mHandler, context.getContentResolver()); - sIsTablet = !DUActionUtils.navigationBarCanMove(); - IntentFilter filter = new IntentFilter(); - filter.addAction(AudioManager.STREAM_MUTE_CHANGED_ACTION); - filter.addAction(AudioManager.VOLUME_CHANGED_ACTION); - filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGING); - filter.addAction(Intent.ACTION_SCREEN_ON); - filter.addAction(Intent.ACTION_SCREEN_OFF); - filter.addAction(Intent.ACTION_BOOT_COMPLETED); - context.registerReceiver(mReceiver, filter); - - mRotationLockController = Dependency.get(RotationLockController.class); - } - - protected RotationLockController getRotationController() { - return mRotationLockController; - } - - // require implementation - protected abstract void onDispose(); - protected abstract void notifyBootCompleted(); - - // any implementation specific handling can be handled here - protected void onInflateFromUser() {} - - protected void onKeyguardShowing(boolean showing){} - - public void abortCurrentGesture(){} - - public void setMenuVisibility(final boolean show) {} - public void setMenuVisibility(final boolean show, final boolean force) {} - public void setNavigationIconHints(int hints) {} - public void setNavigationIconHints(int hints, boolean force) {} - public void onHandlePackageChanged(){} - - public Editor getEditor() { return null; } - - //public boolean isInEditMode() { return false; } - - public void onRecreateStatusbar() {} - - public void setResourceMap(NavbarOverlayResources resourceMap) { - mResourceMap = resourceMap; - getBarTransitions().updateResources(mResourceMap); - } - - public void updateNavbarThemedResources(Resources res){ - getBarTransitions().updateResources(mResourceMap); - } - - public void setRotateSuggestionButtonState(boolean visible, boolean skipAnim) {} - public void setLastRotation(int rotation) {} - - @Override - public void setControllers(PulseController pulseController) { - mPulse = pulseController; - mPulse.setPulseObserver(this); - } - - protected PulseController getPulseController() { - return mPulse; - } - - protected static float alphaIntToFloat(int alpha) { - return (float) Math.max(0, Math.min(255, alpha)) / 255; - } - - @Override - public void setWakeAndUnlocking(boolean wakeAndUnlocking) { - setUseFadingAnimations(wakeAndUnlocking); - mWakeAndUnlocking = wakeAndUnlocking; - updateLayoutTransitionsEnabled(); - } - - @Override - public boolean needsReorient(int rotation) { - return mCurrentRotation != rotation; - } - - protected boolean areAnyHintsActive() { - return ((mDisabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0) - || ((mDisabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0) - || (((mDisabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0 - && ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) == 0))); - - } - - private WindowManager.LayoutParams getParamsFromParent() { - // we need to get params from the parent container otherwise we'd get FrameLayout params - return (WindowManager.LayoutParams) ((ViewGroup) getParent()).getLayoutParams(); - } - - protected void setUseFadingAnimations(boolean useFadingAnimations) { - WindowManager.LayoutParams lp = getParamsFromParent(); - if (lp != null) { - boolean old = lp.windowAnimations != 0; - if (!old && useFadingAnimations) { - lp.windowAnimations = R.style.Animation_NavigationBarFadeIn; - } else if (old && !useFadingAnimations) { - lp.windowAnimations = 0; - } else { - return; - } - mWm.updateViewLayout((View) getParent(), lp); - } - } - - protected void updateLayoutTransitionsEnabled() { - boolean enabled = !mWakeAndUnlocking && mLayoutTransitionsEnabled; - ViewGroup navButtons = (ViewGroup) getCurrentView().findViewById(R.id.nav_buttons); - if (navButtons == null) { - navButtons = (ViewGroup) mCurrentView.findViewWithTag(Res.Common.NAV_BUTTONS); - } - LayoutTransition lt = navButtons.getLayoutTransition(); - if (lt != null) { - if (enabled) { - lt.enableTransitionType(LayoutTransition.APPEARING); - lt.enableTransitionType(LayoutTransition.DISAPPEARING); - lt.enableTransitionType(LayoutTransition.CHANGE_APPEARING); - lt.enableTransitionType(LayoutTransition.CHANGE_DISAPPEARING); - } else { - lt.disableTransitionType(LayoutTransition.APPEARING); - lt.disableTransitionType(LayoutTransition.DISAPPEARING); - lt.disableTransitionType(LayoutTransition.CHANGE_APPEARING); - lt.disableTransitionType(LayoutTransition.CHANGE_DISAPPEARING); - } - } - } - - @Override - public void setLayoutTransitionsEnabled(boolean enabled) { - mLayoutTransitionsEnabled = enabled; - updateLayoutTransitionsEnabled(); - } - - public int findViewByIdName(String name) { - return DUActionUtils.getId(getContext(), name, - DUActionUtils.PACKAGE_SYSTEMUI); - } - - public void setBackgroundColor(Drawable drawable) { - // setBackground(drawable != null ? drawable : null); - } - - public void setLeftInLandscape(boolean leftInLandscape) { - if (mLeftInLandscape != leftInLandscape) { - mLeftInLandscape = leftInLandscape; - if (mPulse != null) { - mPulse.setLeftInLandscape(leftInLandscape); - } - } - } - - // keep keyguard methods final and use getter to access - public final void setKeyguardShowing(boolean showing) { - if (mKeyguardShowing != showing) { - mKeyguardShowing = showing; - if (mPulse != null) { - mPulse.setKeyguardShowing(showing); - } - onKeyguardShowing(showing); - } - } - - public final boolean isKeyguardShowing() { - return mKeyguardShowing; - } - - public boolean isLandscape() { - return mCurrentView == mRot90; - } - - // if a bar instance is created from a user mode switch - // PhoneStatusBar should call this. This allows the view - // to make adjustments that are otherwise not needed when - // inflating on boot, such as setting proper transition flags - public final void notifyInflateFromUser() { - getBarTransitions().transitionTo(BarTransitions.MODE_TRANSPARENT, false); - mScreenOn = true; - if (mPulse != null) { - mPulse.notifyScreenOn(mScreenOn); - } - onInflateFromUser(); - } - - public View getCurrentView() { - return mCurrentView; - } - - public View getHiddenView() { - if (mCurrentView.equals(mRot0)) { - return mRot90; - } else { - return mRot0; - } - } - - public void setDisabledFlags(int disabledFlags) { - setDisabledFlags(disabledFlags, false); - } - - public boolean isVertical() { - return mVertical; - } - - public final void setOnVerticalChangedListener(OnVerticalChangedListener onVerticalChangedListener) { - mOnVerticalChangedListener = onVerticalChangedListener; - notifyVerticalChangedListener(mVertical); - } - - public final void dispose() { - mSmartObserver.cleanUp(); - if (mPulse != null) { - mPulse.doUnlinkVisualizer(); - } - onDispose(); - unsetListeners(); - } - - private void unsetListeners() { - getContext().unregisterReceiver(mReceiver); - } - - private void notifyVerticalChangedListener(boolean newVertical) { - if (mOnVerticalChangedListener != null) { - mOnVerticalChangedListener.onVerticalChanged(mVertical); - } - } - - public void notifyScreenStateChange(boolean screenOn) { - mScreenOn = screenOn; - if (mPulse != null) { - mPulse.notifyScreenOn(screenOn); - } - setDisabledFlags(mDisabledFlags, true); - } - - public void reorient() { - final int rot = mDisplay.getRotation(); - for (int i=0; i<4; i++) { - mRotatedViews[i].setVisibility(View.GONE); - } - mCurrentView = mRotatedViews[rot]; - mCurrentView.setVisibility(View.VISIBLE); - mCurrentRotation = rot; - - if (DEBUG) { - Log.d(TAG, "reorient(): rot=" + mDisplay.getRotation()); - } - } - - protected void setSlippery(boolean newSlippery) { - WindowManager.LayoutParams lp = getParamsFromParent(); - if (lp != null) { - boolean oldSlippery = (lp.flags & WindowManager.LayoutParams.FLAG_SLIPPERY) != 0; - if (!oldSlippery && newSlippery) { - lp.flags |= WindowManager.LayoutParams.FLAG_SLIPPERY; - } else if (oldSlippery && !newSlippery) { - lp.flags &= ~WindowManager.LayoutParams.FLAG_SLIPPERY; - } else { - return; - } - mWm.updateViewLayout((View) getParent(), lp); - } - } - - public void setNotificationPanelExpanded(boolean expanded) { - } - - @Override - public void onFinishInflate() { - mRot0 = (FrameLayout) findViewById(R.id.rot0); - mRot90 = (FrameLayout) findViewById(R.id.rot90); - mRotatedViews[Surface.ROTATION_0] = - mRotatedViews[Surface.ROTATION_180] = mRot0; - mRotatedViews[Surface.ROTATION_90] = mRot90; - mRotatedViews[Surface.ROTATION_270] = mRotatedViews[Surface.ROTATION_90]; - mCurrentView = mRotatedViews[Surface.ROTATION_0]; - } - - public void setDisabledFlags(int disabledFlags, boolean force) { - if (!force && mDisabledFlags == disabledFlags) - return; - mDisabledFlags = disabledFlags; - - final boolean disableHome = ((disabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0); - final boolean disableRecent = ((disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0); - final boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0) - && ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) == 0); - final boolean disableSearch = ((disabledFlags & View.STATUS_BAR_DISABLE_SEARCH) != 0); - } - - @Override - public final View getBaseView() { - return (View)this; - } - - @Override - public void onPluginConnected(NavGesture plugin, Context context) { - - } - - @Override - public void onPluginDisconnected(NavGesture plugin) { - - } - - // for when we don't inflate xml - protected void createBaseViews() { - LinearLayout rot0NavButton = new LinearLayout(getContext()); - rot0NavButton.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT)); - rot0NavButton.setOrientation(LinearLayout.HORIZONTAL); - rot0NavButton.setClipChildren(false); - rot0NavButton.setClipToPadding(false); - rot0NavButton.setLayoutTransition(new LayoutTransition()); - rot0NavButton.setTag(Res.Common.NAV_BUTTONS); - - LinearLayout rot90NavButton = new LinearLayout(getContext()); - rot90NavButton.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT)); - rot90NavButton.setOrientation(sIsTablet ? LinearLayout.HORIZONTAL : LinearLayout.VERTICAL); - rot90NavButton.setClipChildren(false); - rot90NavButton.setClipToPadding(false); - rot90NavButton.setLayoutTransition(new LayoutTransition()); - rot90NavButton.setTag(Res.Common.NAV_BUTTONS); - - mRot0 = new FrameLayout(getContext()); - mRot0.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT)); - - mRot90 = new FrameLayout(getContext()); - mRot90.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT)); - mRot90.setVisibility(View.GONE); - mRot90.setPadding(mRot90.getPaddingLeft(), 0, mRot90.getPaddingRight(), - mRot90.getPaddingBottom()); - -// addBatteryBarLayout(mRot0); - mRot0.addView(rot0NavButton); - -// addBatteryBarLayout(mRot90); - mRot90.addView(rot90NavButton); - - addView(mRot0); - addView(mRot90); - - mRotatedViews[Surface.ROTATION_0] = - mRotatedViews[Surface.ROTATION_180] = mRot0; - mRotatedViews[Surface.ROTATION_90] = mRot90; - mRotatedViews[Surface.ROTATION_270] = mRotatedViews[Surface.ROTATION_90]; - mCurrentView = mRotatedViews[Surface.ROTATION_0]; - } -/* - private void addBatteryBarLayout(ViewGroup parent) { - int which = -1; - if (parent.equals(mRot0)) { - which = R.layout.battery_bar_rot0; - } else if (parent.equals(mRot90)) { - which = R.layout.battery_bar_rot90; - } else { - return; - } - try { - View bar = View.inflate(getContext(), which, null); - parent.addView(bar); - } catch (Exception e) { - Log.e(TAG, "BatteryBarController failed to inflate"); - } - } -*/ - protected void setVisibleOrGone(View view, boolean visible) { - if (view != null) { - view.setVisibility(visible ? VISIBLE : GONE); - } - } - - private void postCheckForInvalidLayout(final String how) { - mHandler.obtainMessage(MSG_CHECK_INVALID_LAYOUT, 0, 0, how).sendToTarget(); - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - } - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - if (DEBUG) Log.d(TAG, String.format( - "onSizeChanged: (%dx%d) old: (%dx%d)", w, h, oldw, oldh)); - - final boolean newVertical = w > 0 && h > w; - if (newVertical != mVertical) { - mVertical = newVertical; - //Log.v(TAG, String.format("onSizeChanged: h=%d, w=%d, vert=%s", h, w, mVertical?"y":"n")); - reorient(); - notifyVerticalChangedListener(newVertical); - } - postCheckForInvalidLayout("sizeChanged"); - if (mPulse != null) { - mPulse.onSizeChanged(w, h, oldw, oldh); - } - super.onSizeChanged(w, h, oldw, oldh); - } - - @Override - public void onDraw(Canvas canvas) { - super.onDraw(canvas); - if (mPulse != null) { - mPulse.onDraw(canvas); - } - } - - @Override - public Handler getHandler() { - return mHandler; - } - - protected String getResourceName(int resId) { - if (resId != 0) { - final android.content.res.Resources res = getContext().getResources(); - try { - return res.getResourceName(resId); - } catch (android.content.res.Resources.NotFoundException ex) { - return "(unknown)"; - } - } else { - return "(null)"; - } - } - - protected static String visibilityToString(int vis) { - switch (vis) { - case View.INVISIBLE: - return "INVISIBLE"; - case View.GONE: - return "GONE"; - default: - return "VISIBLE"; - } - } - - public Drawable getLocalDrawable(String resName, Resources res) { - int id = getDrawableId(resName); - Drawable icon = ImageHelper.getVector(res, id, false); - if (icon == null) { - icon = res.getDrawable(id); - } - return icon; - } - - public int getDrawableId(String resName) { - try { - int ident = getContext().getResources().getIdentifier(resName, "drawable", - getContext().getPackageName()); - return ident; - } catch (Exception e) { - return -1; - } - } - - public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - pw.println("NavigationBarView {"); - final Rect r = new Rect(); - final Point size = new Point(); - mDisplay.getRealSize(size); - - pw.println(String.format(" this: " + viewInfo(this) - + " " + visibilityToString(getVisibility()))); - - getWindowVisibleDisplayFrame(r); - final boolean offscreen = r.right > size.x || r.bottom > size.y; - pw.println(" window: " - + r.toShortString() - + " " + visibilityToString(getWindowVisibility()) - + (offscreen ? " OFFSCREEN!" : "")); - - pw.println(String.format(" mCurrentView: id=%s (%dx%d) %s", - getResourceName(mCurrentView.getId()), - mCurrentView.getWidth(), mCurrentView.getHeight(), - visibilityToString(mCurrentView.getVisibility()))); - - pw.println(" }"); - } - - protected static String viewInfo(View v) { - return "[(" + v.getLeft() + "," + v.getTop() + ")(" + v.getRight() + "," + v.getBottom() - + ") " + v.getWidth() + "x" + v.getHeight() + "]"; - } -} diff --git a/src/com/android/systemui/navigation/DarkIntensity.java b/src/com/android/systemui/navigation/DarkIntensity.java deleted file mode 100644 index 99fc2ab..0000000 --- a/src/com/android/systemui/navigation/DarkIntensity.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (C) 2017-2018 The DirtyUnicorns 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. - * - * DUI has about 4 different drawables with different inheritance which - * needs this method - * - */ -package com.android.systemui.navigation; - -public interface DarkIntensity { - public void setDarkIntensity(float intensity); -} diff --git a/src/com/android/systemui/navigation/Editor.java b/src/com/android/systemui/navigation/Editor.java deleted file mode 100644 index f069024..0000000 --- a/src/com/android/systemui/navigation/Editor.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Define behaviors of a inline navigation editor - * - */ - -package com.android.systemui.navigation; - -import android.content.Intent; - -public interface Editor { - public abstract void onCommitChanges(); - public void changeEditMode(int mode); - public void prepareToReorient(); - public void reorient(boolean isLandscape); - public void setKeyguardShowing(boolean showing); - public void notifyScreenOn(boolean screenOn); - public void screenPinningStateChanged(boolean enabled); - public void toggleNavigationEditor(); - public void dispatchNavigationEditorResults(Intent intent); -} diff --git a/src/com/android/systemui/navigation/NavbarOverlayResources.java b/src/com/android/systemui/navigation/NavbarOverlayResources.java deleted file mode 100644 index 9f7158c..0000000 --- a/src/com/android/systemui/navigation/NavbarOverlayResources.java +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2017 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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.navigation; - -import com.android.internal.utils.du.ActionHandler.ActionIconResources; -import com.android.systemui.R; -import com.android.systemui.navigation.NavbarOverlayResources; - -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; - - public class NavbarOverlayResources extends ActionIconResources { -// public int mOpaque; -// public int mSemiTransparent; -// public int mTransparent; -// public int mWarning; - public Drawable mGradient; - public Drawable mFlingLogo; - public Drawable mFlingLogoDark; - public Drawable mFlingRotationLogo; - public Drawable mFlingRotationLogoDark; - public Drawable mLightsOutLarge; - - public NavbarOverlayResources(Context ctx, Resources res) { - super(res); -// mOpaque = res.getColor(R.color.navigation_bar_background_opaque); -// mSemiTransparent = res.getColor(R.color.navigation_bar_background_semi_transparent); -// mTransparent = res.getColor(R.color.navigation_bar_background_transparent); -// mWarning = res.getColor(com.android.internal.R.color.battery_saver_mode_color); - mGradient = res.getDrawable(R.drawable.nav_background); - mFlingLogo = res.getDrawable(R.drawable.ic_eos_fling); - mFlingLogoDark = res.getDrawable(R.drawable.ic_eos_fling_dark); - mFlingRotationLogo = res.getDrawable(R.drawable.ic_sysbar_rotate_button); - mFlingRotationLogoDark = res.getDrawable(R.drawable.ic_sysbar_rotate_button_dark); - mLightsOutLarge = res.getDrawable(R.drawable.ic_sysbar_lights_out_dot_large); - } - - public void updateResources(Resources res) { - super.updateResources(res); -// mOpaque = res.getColor(R.color.navigation_bar_background_opaque); -// mSemiTransparent = res.getColor(R.color.navigation_bar_background_semi_transparent); -// mTransparent = res.getColor(R.color.navigation_bar_background_transparent); -// mWarning = res.getColor(com.android.internal.R.color.battery_saver_mode_color); - Rect bounds = mGradient.getBounds(); - mGradient = res.getDrawable(R.drawable.nav_background); - mGradient.setBounds(bounds); - mFlingLogo = res.getDrawable(R.drawable.ic_eos_fling); - mFlingLogoDark = res.getDrawable(R.drawable.ic_eos_fling_dark); - mFlingRotationLogo = res.getDrawable(R.drawable.ic_sysbar_rotate_button); - mFlingRotationLogoDark = res.getDrawable(R.drawable.ic_sysbar_rotate_button_dark); - mLightsOutLarge = res.getDrawable(R.drawable.ic_sysbar_lights_out_dot_large); - } -} diff --git a/src/com/android/systemui/navigation/Navigator.java b/src/com/android/systemui/navigation/Navigator.java deleted file mode 100644 index 148ea3e..0000000 --- a/src/com/android/systemui/navigation/Navigator.java +++ /dev/null @@ -1,134 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Interface for all the things that go in that navigation window and do - * amazing things. This is all the rest of the world needs to see ;D - * - */ - -package com.android.systemui.navigation; - -import java.io.FileDescriptor; -import java.io.PrintWriter; - -import com.android.systemui.RecentsComponent; -import com.android.systemui.navigation.NavbarOverlayResources; -import com.android.systemui.navigation.pulse.PulseController; -import com.android.systemui.plugins.PluginListener; -import com.android.systemui.plugins.statusbar.phone.NavGesture; -import com.android.systemui.stackdivider.Divider; -import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.phone.ButtonDispatcher; -import com.android.systemui.statusbar.phone.LightBarTransitionsController; - -import android.content.res.Resources; -import android.graphics.drawable.Drawable; -import android.view.View; - -public interface Navigator extends PluginListener<NavGesture> { - public interface OnVerticalChangedListener { - void onVerticalChanged(boolean isVertical); - } - - /* - * Public methods in NavigationBarView. Notice there are numerous other public methods, - * however, they are never called from anywhere or they are called by other classes that - * expect the NavigationBarView implementation (NavigationBarTransitions, etc) - */ - public BarTransitions getBarTransitions(); - public default LightBarTransitionsController getLightTransitionsController() { return null; } - public default void setComponents(RecentsComponent recentsComponent, Divider divider) {} - public default void setOnVerticalChangedListener(OnVerticalChangedListener onVerticalChangedListener) {} - public default void abortCurrentGesture() {} - public default void notifyScreenOn() {} - public default void setNavigationIconHints(int hints) {} - public default void setDisabledFlags(int disabledFlags) {} - public default void setDisabledFlags(int disabledFlags, boolean force) {} - public default void setLayoutTransitionsEnabled(boolean enabled) {} - public default void setWakeAndUnlocking(boolean wakeAndUnlocking) {} - public default void setMenuVisibility(boolean showMenu) {} - public default void setAccessibilityButtonState(final boolean visible, final boolean longClickable) {} - public default boolean needsReorient(int rotation) { return false; } - public default boolean isVertical() { return false; } - public default void reorient() {} - public default void onKeyguardOccludedChanged(boolean keyguardOccluded) {} - public default ButtonDispatcher getRecentsButton() { return null; } - public default ButtonDispatcher getBackButton() { return null; } - public default ButtonDispatcher getHomeButton() { return null; } - public default ButtonDispatcher getAccessibilityButton() { return null; } - public default void dump(FileDescriptor fd, PrintWriter pw, String[] args) {} - public default void setMediaPlaying(boolean playing) {} - public default void setNotificationPanelExpanded(boolean expanded) {} - public default void setPulseColors(boolean colorizedMedia, int[] colors) {} - - /* - * DUI additional methods to support additional winning ;D - */ - // Return a top level view of implementation. A time may come where not everything that implements - // this interface is actually a view - public View getBaseView(); - - // refresh buttons/drawables - public default void onHandlePackageChanged() {} - - /* - * PIE support. It may come back someday. - */ - public default void setForgroundColor(Drawable drawable) {} - - /* - * get this event from PhoneWindowManager - */ - public default void setLeftInLandscape(boolean isLeftInLandscape) {} - - // enable/disable features as needed for security/sanity - public default void setKeyguardShowing(boolean showing) {} - - // assist with settings states/flags that were set on boot - // but are not set with a user bar change - // let's find a better way to do this! - public default void notifyInflateFromUser() {} - - // Theme change! Update all the things! Designed for CMTE - // but may be useful again someday - public default void updateNavbarThemedResources(Resources res) {} - - // Designed for CMTE statusbar recreation events, mostly - // to catch a icon pack change. May be useful again someday - public default void onRecreateStatusbar() {} - - // also designed to assist with CMTE. CMTE had very peculiar behavior - // in how navbar resources were "separated" from other SystemUI resources - public default void setResourceMap(NavbarOverlayResources resourceMap) {} - - // shut down listeners/receivers/observers - public default void dispose() {} - - // Pulse all the things!... that use it - public default void setControllers(PulseController pulseController) {} - - // if bar uses custom editor, is it on? - //public default boolean isInEditMode() { return false; } - - // get our editor and pipe commands directly to it - public default Editor getEditor() { return null; } - - // rotation changes from SystemUI - public default void setRotateSuggestionButtonState(boolean visible, boolean skipAnim) {} - public default void setLastRotation(int rotation) {} -} diff --git a/src/com/android/systemui/navigation/OpaLayout.java b/src/com/android/systemui/navigation/OpaLayout.java deleted file mode 100644 index bcf8363..0000000 --- a/src/com/android/systemui/navigation/OpaLayout.java +++ /dev/null @@ -1,489 +0,0 @@ -package com.android.systemui.navigation; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.os.SystemClock; -import android.util.ArraySet; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.RenderNodeAnimator; -import android.view.animation.Interpolator; -import android.view.animation.PathInterpolator; -import android.widget.FrameLayout; -import android.widget.ImageView; - -import com.android.systemui.Interpolators; -import com.android.systemui.R; -import com.android.systemui.navigation.smartbar.SmartButtonView; - -public class OpaLayout extends FrameLayout { - - private static final int ANIMATION_STATE_NONE = 0; - private static final int ANIMATION_STATE_DIAMOND = 1; - private static final int ANIMATION_STATE_RETRACT = 2; - private static final int ANIMATION_STATE_OTHER = 3; - - private static final int MIN_DIAMOND_DURATION = 100; - private static final int COLLAPSE_ANIMATION_DURATION_RY = 83; - private static final int COLLAPSE_ANIMATION_DURATION_BG = 100; - private static final int LINE_ANIMATION_DURATION_Y = 275; - private static final int LINE_ANIMATION_DURATION_X = 133; - private static final int RETRACT_ANIMATION_DURATION = 300; - private static final int DIAMOND_ANIMATION_DURATION = 200; - private static final int HALO_ANIMATION_DURATION = 100; - - private static final int DOTS_RESIZE_DURATION = 200; - private static final int HOME_RESIZE_DURATION = 83; - - private static final int HOME_REAPPEAR_ANIMATION_OFFSET = 33; - private static final int HOME_REAPPEAR_DURATION = 150; - - private static final float DIAMOND_DOTS_SCALE_FACTOR = 0.8f; - private static final float DIAMOND_HOME_SCALE_FACTOR = 0.625f; - private static final float HALO_SCALE_FACTOR = 0.47619048f; - - private int mAnimationState; - private final ArraySet<Animator> mCurrentAnimators; - - private boolean mIsLandscape; - private boolean mIsPressed; - private boolean mLongClicked; - private boolean mOpaEnabled; - private boolean mEditMode; - private boolean mOpaHomeOnly; - private boolean mIsHomeButton; - private long mStartTime; - - private View mRed; - private View mBlue; - private View mGreen; - private View mYellow; - private View mSmartButton; - - private View mTop; - private View mRight; - private View mLeft; - private View mBottom; - - private final Runnable mCheckLongPress; - private final Runnable mRetract; - - private final Interpolator mRetractInterpolator; - private final Interpolator mCollapseInterpolator; - private final Interpolator mDiamondInterpolator; - private final Interpolator mDotsFullSizeInterpolator; - private final Interpolator mFastOutSlowInInterpolator; - private final Interpolator mHomeDisappearInterpolator; - - public OpaLayout(Context context) { - this(context, null); - } - - public OpaLayout(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public OpaLayout(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public OpaLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - mFastOutSlowInInterpolator = Interpolators.FAST_OUT_SLOW_IN; - mHomeDisappearInterpolator = new PathInterpolator(0.8f, 0f, 1f, 1f); - mCollapseInterpolator = Interpolators.FAST_OUT_LINEAR_IN; - mDotsFullSizeInterpolator = new PathInterpolator(0.4f, 0f, 0f, 1f); - mRetractInterpolator = new PathInterpolator(0.4f, 0f, 0f, 1f); - mDiamondInterpolator = new PathInterpolator(0.2f, 0f, 0.2f, 1f); - mCheckLongPress = new Runnable() { - @Override - public void run() { - if (mIsPressed) { - mLongClicked = true; - } - } - }; - mRetract = new Runnable() { - @Override - public void run() { - cancelCurrentAnimation(); - startRetractAnimation(); - setOpaVisibility(false); - } - }; - mAnimationState = OpaLayout.ANIMATION_STATE_NONE; - mCurrentAnimators = new ArraySet<Animator>(); - } - - private void startAll(ArraySet<Animator> animators) { - setOpaVisibility(true); - for(int i=0; i < animators.size(); i++) { - Animator curAnim = (Animator) mCurrentAnimators.valueAt(i); - curAnim.start(); - } - } - - private void startCollapseAnimation() { - mCurrentAnimators.clear(); - mCurrentAnimators.addAll(getCollapseAnimatorSet()); - mAnimationState = OpaLayout.ANIMATION_STATE_OTHER; - startAll(mCurrentAnimators); - } - - private void startDiamondAnimation() { - mCurrentAnimators.clear(); - mCurrentAnimators.addAll(getDiamondAnimatorSet()); - mAnimationState = OpaLayout.ANIMATION_STATE_DIAMOND; - startAll(mCurrentAnimators); - } - - private void startLineAnimation() { - mCurrentAnimators.clear(); - mCurrentAnimators.addAll(getLineAnimatorSet()); - mAnimationState = OpaLayout.ANIMATION_STATE_OTHER; - startAll(mCurrentAnimators); - } - - private void startRetractAnimation() { - mCurrentAnimators.clear(); - mCurrentAnimators.addAll(getRetractAnimatorSet()); - mAnimationState = OpaLayout.ANIMATION_STATE_RETRACT; - startAll(mCurrentAnimators); - } - - private void cancelCurrentAnimation() { - if(mCurrentAnimators.isEmpty()) - return; - for(int i=0; i < mCurrentAnimators.size(); i++) { - Animator curAnim = (Animator) mCurrentAnimators.valueAt(i); - curAnim.removeAllListeners(); - curAnim.cancel(); - } - mCurrentAnimators.clear(); - mAnimationState = OpaLayout.ANIMATION_STATE_NONE; - } - - private void endCurrentAnimation() { - if(mCurrentAnimators.isEmpty()) - return; - for(int i=0; i < mCurrentAnimators.size(); i++) { - Animator curAnim = (Animator) mCurrentAnimators.valueAt(i); - curAnim.removeAllListeners(); - curAnim.end(); - } - mCurrentAnimators.clear(); - mAnimationState = OpaLayout.ANIMATION_STATE_NONE; - } - - private ArraySet<Animator> getCollapseAnimatorSet() { - final ArraySet<Animator> set = new ArraySet<Animator>(); - Animator animator; - if (mIsLandscape) { - animator = getDeltaAnimatorY(mRed, mCollapseInterpolator, -getPxVal(R.dimen.opa_line_x_collapse_ry), OpaLayout.COLLAPSE_ANIMATION_DURATION_RY); - } - else { - animator = getDeltaAnimatorX(mRed, mCollapseInterpolator, getPxVal(R.dimen.opa_line_x_collapse_ry), OpaLayout.COLLAPSE_ANIMATION_DURATION_RY); - } - set.add(animator); - set.add(getScaleAnimatorX(mRed, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - set.add(getScaleAnimatorY(mRed, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - Animator animator2; - if (mIsLandscape) { - animator2 = getDeltaAnimatorY(mBlue, mCollapseInterpolator, -getPxVal(R.dimen.opa_line_x_collapse_bg), OpaLayout.COLLAPSE_ANIMATION_DURATION_BG); - } - else { - animator2 = getDeltaAnimatorX(mBlue, mCollapseInterpolator, getPxVal(R.dimen.opa_line_x_collapse_bg), OpaLayout.COLLAPSE_ANIMATION_DURATION_BG); - } - set.add(animator2); - set.add(getScaleAnimatorX(mBlue, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - set.add(getScaleAnimatorY(mBlue, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - Animator animator3; - if (mIsLandscape) { - animator3 = getDeltaAnimatorY(mYellow, mCollapseInterpolator, getPxVal(R.dimen.opa_line_x_collapse_ry), OpaLayout.COLLAPSE_ANIMATION_DURATION_RY); - } - else { - animator3 = getDeltaAnimatorX(mYellow, mCollapseInterpolator, -getPxVal(R.dimen.opa_line_x_collapse_ry), OpaLayout.COLLAPSE_ANIMATION_DURATION_RY); - } - set.add(animator3); - set.add(getScaleAnimatorX(mYellow, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - set.add(getScaleAnimatorY(mYellow, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - Animator animator4; - if (mIsLandscape) { - animator4 = getDeltaAnimatorY(mGreen, mCollapseInterpolator, getPxVal(R.dimen.opa_line_x_collapse_bg), OpaLayout.COLLAPSE_ANIMATION_DURATION_BG); - } - else { - animator4 = getDeltaAnimatorX(mGreen, mCollapseInterpolator, -getPxVal(R.dimen.opa_line_x_collapse_bg), OpaLayout.COLLAPSE_ANIMATION_DURATION_BG); - } - set.add(animator4); - set.add(getScaleAnimatorX(mGreen, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - set.add(getScaleAnimatorY(mGreen, 1.0f, OpaLayout.DOTS_RESIZE_DURATION, mDotsFullSizeInterpolator)); - final Animator scaleAnimatorX = getScaleAnimatorX(mSmartButton, 1.0f, OpaLayout.HOME_REAPPEAR_DURATION, mFastOutSlowInInterpolator); - final Animator scaleAnimatorY = getScaleAnimatorY(mSmartButton, 1.0f, OpaLayout.HOME_REAPPEAR_DURATION, mFastOutSlowInInterpolator); - scaleAnimatorX.setStartDelay(OpaLayout.HOME_REAPPEAR_ANIMATION_OFFSET); - scaleAnimatorY.setStartDelay(OpaLayout.HOME_REAPPEAR_ANIMATION_OFFSET); - set.add(scaleAnimatorX); - set.add(scaleAnimatorY); - getLongestAnim((set)).addListener((Animator.AnimatorListener)new AnimatorListenerAdapter() { - public void onAnimationEnd(final Animator animator) { - mCurrentAnimators.clear(); - mAnimationState = OpaLayout.ANIMATION_STATE_NONE; - setOpaVisibility(false); - } - }); - return set; - } - - private ArraySet<Animator> getDiamondAnimatorSet() { - final ArraySet<Animator> set = new ArraySet<Animator>(); - set.add(getDeltaAnimatorY(mTop, mDiamondInterpolator, -getPxVal(R.dimen.opa_diamond_translation), OpaLayout.DIAMOND_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mTop, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getScaleAnimatorY(mTop, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getDeltaAnimatorY(mBottom, mDiamondInterpolator, getPxVal(R.dimen.opa_diamond_translation), OpaLayout.DIAMOND_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mBottom, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getScaleAnimatorY(mBottom, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getDeltaAnimatorX(mLeft, mDiamondInterpolator, -getPxVal(R.dimen.opa_diamond_translation), OpaLayout.DIAMOND_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mLeft, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getScaleAnimatorY(mLeft, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getDeltaAnimatorX(mRight, mDiamondInterpolator, getPxVal(R.dimen.opa_diamond_translation), OpaLayout.DIAMOND_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mRight, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getScaleAnimatorY(mRight, OpaLayout.DIAMOND_DOTS_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getScaleAnimatorX(mSmartButton, OpaLayout.DIAMOND_HOME_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - set.add(getScaleAnimatorY(mSmartButton, OpaLayout.DIAMOND_HOME_SCALE_FACTOR, OpaLayout.DIAMOND_ANIMATION_DURATION, mFastOutSlowInInterpolator)); - getLongestAnim(set).addListener((Animator.AnimatorListener)new AnimatorListenerAdapter() { - public void onAnimationCancel(final Animator animator) { - mCurrentAnimators.clear(); - } - - public void onAnimationEnd(final Animator animator) { - startLineAnimation(); - } - }); - return set; - } - - private ArraySet<Animator> getLineAnimatorSet() { - final ArraySet<Animator> set = new ArraySet<Animator>(); - if (mIsLandscape) { - set.add(getDeltaAnimatorY(mRed, mFastOutSlowInInterpolator, getPxVal(R.dimen.opa_line_x_trans_ry), OpaLayout.LINE_ANIMATION_DURATION_Y)); - set.add(getDeltaAnimatorX(mRed, mFastOutSlowInInterpolator, getPxVal(R.dimen.opa_line_y_translation), OpaLayout.LINE_ANIMATION_DURATION_X)); - set.add(getDeltaAnimatorY(mBlue, mFastOutSlowInInterpolator, getPxVal(R.dimen.opa_line_x_trans_bg), OpaLayout.LINE_ANIMATION_DURATION_Y)); - set.add(getDeltaAnimatorY(mYellow, mFastOutSlowInInterpolator, -getPxVal(R.dimen.opa_line_x_trans_ry), OpaLayout.LINE_ANIMATION_DURATION_Y)); - set.add(getDeltaAnimatorX(mYellow, mFastOutSlowInInterpolator, -getPxVal(R.dimen.opa_line_y_translation), OpaLayout.LINE_ANIMATION_DURATION_X)); - set.add(getDeltaAnimatorY(mGreen, mFastOutSlowInInterpolator, -getPxVal(R.dimen.opa_line_x_trans_bg), OpaLayout.LINE_ANIMATION_DURATION_Y)); - } - else { - set.add(getDeltaAnimatorX(mRed, mFastOutSlowInInterpolator, -getPxVal(R.dimen.opa_line_x_trans_ry), OpaLayout.LINE_ANIMATION_DURATION_Y)); - set.add(getDeltaAnimatorY(mRed, mFastOutSlowInInterpolator, getPxVal(R.dimen.opa_line_y_translation), OpaLayout.LINE_ANIMATION_DURATION_X)); - set.add(getDeltaAnimatorX(mBlue, mFastOutSlowInInterpolator, -getPxVal(R.dimen.opa_line_x_trans_bg), OpaLayout.LINE_ANIMATION_DURATION_Y)); - set.add(getDeltaAnimatorX(mYellow, mFastOutSlowInInterpolator, getPxVal(R.dimen.opa_line_x_trans_ry), OpaLayout.LINE_ANIMATION_DURATION_Y)); - set.add(getDeltaAnimatorY(mYellow, mFastOutSlowInInterpolator, -getPxVal(R.dimen.opa_line_y_translation), OpaLayout.LINE_ANIMATION_DURATION_X)); - set.add(getDeltaAnimatorX(mGreen, mFastOutSlowInInterpolator, getPxVal(R.dimen.opa_line_x_trans_bg), OpaLayout.LINE_ANIMATION_DURATION_Y)); - } - set.add(getScaleAnimatorX(mSmartButton, 0.0f, OpaLayout.HOME_RESIZE_DURATION, mHomeDisappearInterpolator)); - set.add(getScaleAnimatorY(mSmartButton, 0.0f, OpaLayout.HOME_RESIZE_DURATION, mHomeDisappearInterpolator)); - getLongestAnim(set).addListener((Animator.AnimatorListener)new AnimatorListenerAdapter() { - public void onAnimationCancel(final Animator animator) { - mCurrentAnimators.clear(); - } - - public void onAnimationEnd(final Animator animator) { - startCollapseAnimation(); - } - }); - return set; - } - - private ArraySet<Animator> getRetractAnimatorSet() { - final ArraySet<Animator> set = new ArraySet<Animator>(); - set.add(getTranslationAnimatorX(mRed, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getTranslationAnimatorY(mRed, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mRed, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getScaleAnimatorY(mRed, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getTranslationAnimatorX(mBlue, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getTranslationAnimatorY(mBlue, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mBlue, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getScaleAnimatorY(mBlue, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getTranslationAnimatorX(mGreen, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getTranslationAnimatorY(mGreen, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mGreen, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getScaleAnimatorY(mGreen, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getTranslationAnimatorX(mYellow, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getTranslationAnimatorY(mYellow, mRetractInterpolator, OpaLayout.RETRACT_ANIMATION_DURATION)); - set.add(getScaleAnimatorX(mYellow, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getScaleAnimatorY(mYellow, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getScaleAnimatorX(mSmartButton, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - set.add(getScaleAnimatorY(mSmartButton, 1.0f, OpaLayout.RETRACT_ANIMATION_DURATION, mRetractInterpolator)); - getLongestAnim(set).addListener((Animator.AnimatorListener)new AnimatorListenerAdapter() { - public void onAnimationEnd(final Animator animator) { - mCurrentAnimators.clear(); - mAnimationState = OpaLayout.ANIMATION_STATE_NONE; - } - }); - return set; - } - - private float getPxVal(int id) { - return getResources().getDimensionPixelOffset(id); - } - - private Animator getDeltaAnimatorX(View v, Interpolator interpolator, float deltaX, int duration) { - RenderNodeAnimator anim = new RenderNodeAnimator(8, (int) (v.getX() + deltaX)); - anim.setTarget(v); - anim.setInterpolator(interpolator); - anim.setDuration(duration); - return anim; - } - - private Animator getDeltaAnimatorY(View v, Interpolator interpolator, float deltaY, int duration) { - RenderNodeAnimator anim = new RenderNodeAnimator(9, (int) (v.getY() + deltaY)); - anim.setTarget(v); - anim.setInterpolator(interpolator); - anim.setDuration(duration); - return anim; - } - - private Animator getScaleAnimatorX(View v, float factor, int duration, Interpolator interpolator) { - RenderNodeAnimator anim = new RenderNodeAnimator(3, factor); - anim.setTarget(v); - anim.setInterpolator(interpolator); - anim.setDuration(duration); - return anim; - } - - private Animator getScaleAnimatorY(View v, float factor, int duration, Interpolator interpolator) { - RenderNodeAnimator anim = new RenderNodeAnimator(4, factor); - anim.setTarget(v); - anim.setInterpolator(interpolator); - anim.setDuration(duration); - return anim; - } - - private Animator getTranslationAnimatorX(View v, Interpolator interpolator, int duration) { - RenderNodeAnimator anim = new RenderNodeAnimator(0, 0); - anim.setTarget(v); - anim.setInterpolator(interpolator); - anim.setDuration(duration); - return anim; - } - - private Animator getTranslationAnimatorY(View v, Interpolator interpolator, int duration) { - RenderNodeAnimator anim = new RenderNodeAnimator(1, 0); - anim.setTarget(v); - anim.setInterpolator(interpolator); - anim.setDuration(duration); - return anim; - } - - private Animator getLongestAnim(ArraySet<Animator> animators) { - long longestDuration = -1; - Animator longestAnim = null; - - for(int i=0; i < animators.size(); i++) { - Animator a = (Animator) animators.valueAt(i); - if(a.getTotalDuration() > longestDuration) { - longestDuration = a.getTotalDuration(); - longestAnim = a; - } - } - return longestAnim; - } - - protected void onFinishInflate() { - super.onFinishInflate(); - - mRed = findViewById(R.id.red); - mBlue = findViewById(R.id.blue); - mYellow = findViewById(R.id.yellow); - mGreen = findViewById(R.id.green); - mSmartButton = findViewById(R.id.smartbutton); - - setOpaVisibility(false); - } - - public SmartButtonView getButton() { - return (SmartButtonView)mSmartButton; - } - - public void setEditMode(boolean enabled){ - mEditMode = enabled; - } - - public void startDownAction() { - if (!mOpaEnabled || mEditMode) { - return; - } - if (!mCurrentAnimators.isEmpty()) { - if (mAnimationState != OpaLayout.ANIMATION_STATE_RETRACT) { - return; - } - endCurrentAnimation(); - } - mStartTime = SystemClock.elapsedRealtime(); - mLongClicked = false; - mIsPressed = true; - startDiamondAnimation(); - removeCallbacks(mCheckLongPress); - postDelayed(mCheckLongPress, (long)ViewConfiguration.getLongPressTimeout()); - } - - public void startCancelAction() { - if (!mOpaEnabled || mEditMode) { - return; - } - if (mAnimationState == OpaLayout.ANIMATION_STATE_DIAMOND) { - final long elapsedRealtime = SystemClock.elapsedRealtime(); - removeCallbacks(mRetract); - postDelayed(mRetract, 100L - (elapsedRealtime - mStartTime)); - removeCallbacks(mCheckLongPress); - return; - } - int n; - if (!mIsPressed || mLongClicked) { - n = 0; - } - else { - n = 1; - } - mIsPressed = false; - if (n != 0) { - mRetract.run(); - return; - } - } - - public void setLandscape(boolean landscape) { - mIsLandscape = landscape; - if (mIsLandscape) { - mTop = mGreen; - mBottom = mBlue; - mRight = mYellow; - mLeft = mRed; - return; - } - mTop = mRed; - mBottom = mYellow; - mLeft = mBlue; - mRight = mGreen; - } - - public void setOpaEnabled(boolean enabled) { - mOpaEnabled = enabled; - } - - public void setOpaVisibility(boolean enabled) { - int visibility = enabled ? View.VISIBLE : View.INVISIBLE; - mBlue.setVisibility(((mOpaHomeOnly && mIsHomeButton) || !mOpaHomeOnly) ? visibility : View.INVISIBLE); - mRed.setVisibility(((mOpaHomeOnly && mIsHomeButton) || !mOpaHomeOnly) ? visibility : View.INVISIBLE); - mYellow.setVisibility(((mOpaHomeOnly && mIsHomeButton) || !mOpaHomeOnly) ? visibility : View.INVISIBLE); - mGreen.setVisibility(((mOpaHomeOnly && mIsHomeButton) || !mOpaHomeOnly) ? visibility : View.INVISIBLE); - } - - public void setOpaVisibilityHome(boolean opaHomeOnly, boolean isHomeButton) { - mOpaHomeOnly = opaHomeOnly; - mIsHomeButton = isHomeButton; - } -} diff --git a/src/com/android/systemui/navigation/Res.java b/src/com/android/systemui/navigation/Res.java deleted file mode 100644 index fc60e7f..0000000 --- a/src/com/android/systemui/navigation/Res.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Some resource constants - * - */ -package com.android.systemui.navigation; - -public class Res { - - public static final class Common { - public static final String LIGHTS_OUT = "lights_out"; - public static final String LIGHTS_OUT_LARGE = "ic_sysbar_lights_out_dot_large"; - public static final String LIGHTS_OUT_SMALL = "ic_sysbar_lights_out_dot_small"; - public static final String NAV_BUTTONS = "nav_buttons"; - public static final String NAV_BACKGROUND = "nav_background"; - public static final String NAV_BACKGROUND_OPAQUE = "navigation_bar_background_opaque"; - public static final String NAV_BACKGROUND_SEMI_TRANS = "navigation_bar_background_semi_transparent"; - public static final String NAV_BACKGROUND_TRANS = "navigation_bar_background_transparent"; - public static final String NAV_BACKGROUND_BATTERY_SAVER = "battery_saver_mode_color"; - public static final String SYSTEM_BAR_BACKGROUND = "system_bar_background"; - public static final String ROT_0 = "rot0"; - public static final String ROT_90 = "rot90"; - } - - public static final class Softkey { - public static final String ACTION_EDITOR_WIDTH = "navigation_action_editor_width"; - public static final String ACTION_EDITOR_HEIGHT = "navigation_action_editor_height"; - public static final String KEY_WIDTH = "navigation_key_width"; - public static final String KEY_HEIGHT = "navigation_key_height"; - public static final String EXTRA_KEY_WIDTH = "navigation_extra_key_width"; - public static final String EXTRA_KEY_HEIGHT = "navigation_extra_key_height"; - public static final String TAB_KEY_PADDING_START_PORT = "navigation_key_padding_start_port"; - public static final String TAB_KEY_PADDING_END_PORT = "navigation_key_padding_end_port"; - public static final String TAB_KEY_PADDING_START_LAND = "navigation_key_padding_start_land"; - public static final String TAB_KEY_PADDING_END_LAND = "navigation_key_padding_end_land"; - public static final String TAB_EXTRA_KEY_MARGIN_START = "navigation_key_extra_margin_start"; - public static final String TAB_EXTRA_KEY_MARGIN_END = "navigation_key_extra_margin_end"; - public static final String IC_IME_SWITCHER_DEF = "ic_ime_switcher_default"; - public static final String IC_SYSBAR_BACK = "ic_sysbar_back"; - public static final String IC_SYSBAR_BACK_LAND = "ic_sysbar_back_land"; - public static final String IC_SYSBAR_HOME = "ic_sysbar_home"; - public static final String IC_SYSBAR_HOME_LAND = "ic_sysbar_home_land"; - public static final String IC_SYSBAR_RECENT = "ic_sysbar_recent"; - public static final String IC_SYSBAR_RECENT_LAND = "ic_sysbar_recent_land"; - public static final String IC_SYSBAR_MENU = "ic_sysbar_menu"; - public static final String IC_SYSBAR_MENU_LAND = "ic_sysbar_menu_land"; - public static final String CONTEXT_VIEW_RIGHT = "context_view_right"; - public static final String CONTEXT_VIEW_LEFT = "context_view_left"; - public static final String MENU_BUTTON = "menu_button"; - public static final String IME_SWITCHER = "ime_switcher"; - public static final String IME_ARROW_LEFT = "ime_arrow_left"; - public static final String IME_ARROW_RIGHT = "ime_arrow_right"; - public static final String STOP_SCREENPINNING = "stop_screenpinning"; - public static final String MENU_DESC = "accessibility_menu"; - public static final String IME_DESC = "accessibility_ime_switch_button"; - public static final String BUTTON_BACK = "smartbar_button_1"; - public static final String BUTTON_HOME = "smartbar_button_2"; - public static final String BUTTON_OVERVIEW = "smartbar_button_3"; - public static final String MEDIA_ARROW_LEFT = "media_arrow_left"; - public static final String MEDIA_ARROW_RIGHT = "media_arrow_right"; - public static final String ROTATION_BUTTON = "rotation_button"; - } - - public static final class Fling { - - } - -} diff --git a/src/com/android/systemui/navigation/editor/ActionItem.java b/src/com/android/systemui/navigation/editor/ActionItem.java deleted file mode 100644 index 3ecda33..0000000 --- a/src/com/android/systemui/navigation/editor/ActionItem.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.android.systemui.navigation.editor; - -import android.graphics.drawable.Drawable; -import android.graphics.Bitmap; - -/** - * @author Pontus Holmberg (EndLessMind) - * Email: the_mr_hb@hotmail.com - **/ -public class ActionItem { - private Drawable icon; - private Bitmap thumb; - private String title; - private int actionId = -1; - private boolean selected; - private boolean sticky; - - /** - * Constructor - * - * @param actionId Action id for case statements - * @param title Title - * @param icon Icon to use - */ - public ActionItem(int actionId, String title, Drawable icon) { - this.title = title; - this.icon = icon; - this.actionId = actionId; - } - - /** - * Constructor - */ - public ActionItem() { - this(-1, null, null); - } - - /** - * Constructor - * - * @param actionId Action id of the item - * @param title Text to show for the item - */ - public ActionItem(int actionId, String title) { - this(actionId, title, null); - } - - /** - * Constructor - * - * @param icon {@link Drawable} action icon - */ - public ActionItem(Drawable icon) { - this(-1, null, icon); - } - - /** - * Constructor - * - * @param actionId Action ID of item - * @param icon {@link Drawable} action icon - */ - public ActionItem(int actionId, Drawable icon) { - this(actionId, null, icon); - } - - /** - * Set action title - * - * @param title action title - */ - public void setTitle(String title) { - this.title = title; - } - - /** - * Get action title - * - * @return action title - */ - public String getTitle() { - return this.title; - } - - /** - * Set action icon - * - * @param icon {@link Drawable} action icon - */ - public void setIcon(Drawable icon) { - this.icon = icon; - } - - /** - * Get action icon - * @return {@link Drawable} action icon - */ - public Drawable getIcon() { - return this.icon; - } - - /** - * Set action id - * - * @param actionId Action id for this action - */ - public void setActionId(int actionId) { - this.actionId = actionId; - } - - /** - * @return Our action id - */ - public int getActionId() { - return actionId; - } - - /** - * Set sticky status of button - * - * @param sticky true for sticky, pop up sends event but does not disappear - */ - public void setSticky(boolean sticky) { - this.sticky = sticky; - } - - /** - * @return true if button is sticky, menu stays visible after press - */ - public boolean isSticky() { - return sticky; - } - - /** - * Set selected flag; - * - * @param selected Flag to indicate the item is selected - */ - public void setSelected(boolean selected) { - this.selected = selected; - } - - /** - * Check if item is selected - * - * @return true or false - */ - public boolean isSelected() { - return this.selected; - } - - /** - * Set thumb - * - * @param thumb Thumb image - */ - public void setThumb(Bitmap thumb) { - this.thumb = thumb; - } - - /** - * Get thumb image - * - * @return Thumb image - */ - public Bitmap getThumb() { - return this.thumb; - } -} diff --git a/src/com/android/systemui/navigation/editor/PopupWindows.java b/src/com/android/systemui/navigation/editor/PopupWindows.java deleted file mode 100644 index 68ace18..0000000 --- a/src/com/android/systemui/navigation/editor/PopupWindows.java +++ /dev/null @@ -1,135 +0,0 @@ - -package com.android.systemui.navigation.editor; - -import com.android.internal.utils.du.DUActionUtils; - -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; - -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.WindowManager; -import android.view.View.OnTouchListener; -import android.widget.PopupWindow; - -import android.content.Context; - -/** - * @author Pontus Holmberg (EndLessMind) Email: the_mr_hb@hotmail.com - **/ -public class PopupWindows { - protected Context mContext; - public PopupWindow mWindow; - protected View mRootView; - protected Drawable mBackground = null; - protected WindowManager mWindowManager; - - /** - * Constructor. - * - * @param context Context - */ - public PopupWindows(Context context) { - mContext = context; - mWindow = new PopupWindow(context); - mWindow.setBackgroundDrawable(new BitmapDrawable()); - mWindow.setTouchInterceptor(new OnTouchListener() { - public boolean onTouch(View v, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { - mWindow.dismiss(); - - return true; - } - - return false; - } - }); - - mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - } - - /** - * On dismiss - */ - protected void onDismiss() { - } - - /** - * On show - */ - protected void onShow() { - } - - /** - * On pre show - */ - protected void preShow() { - if (mRootView == null) - throw new IllegalStateException("setContentView was not called with a view to display."); - - onShow(); - - // if (mBackground == null) - // mwindow.setBackgroundDrawable(new BitmapDrawable()); - // else - // mwindow.setBackgroundDrawable(new BitmapDrawable()); - - mWindow.setWidth(WindowManager.LayoutParams.WRAP_CONTENT); - mWindow.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); - // mwindow.setTouchable(true); - // mwindow.setFocusable(true); - // mwindow.setOutsideTouchable(true); - - mWindow.setContentView(mRootView); - } - - /** - * Set background drawable. - * - * @param background Background drawable - */ - public void setBackgroundDrawable(Drawable background) { - mWindow.setBackgroundDrawable(background); - } - - /** - * Set content view. - * - * @param root Root view - */ - public void setContentView(View root) { - mRootView = root; - - mWindow.setContentView(root); - } - - /** - * Set content view. - * - * @param layoutResID Resource id - */ - public void setContentView(int layoutResID) { - LayoutInflater inflator = (LayoutInflater) mContext - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - - setContentView(inflator.inflate(layoutResID, null)); - } - - /** - * Set listener on window dismissed. - * - * @param listener - */ - public void setOnDismissListener(PopupWindow.OnDismissListener listener) { - mWindow.setOnDismissListener(listener); - } - - /** - * Dismiss the popup window. - */ - public void dismiss() { - mWindow.dismiss(); - } -} diff --git a/src/com/android/systemui/navigation/editor/QuickAction.java b/src/com/android/systemui/navigation/editor/QuickAction.java deleted file mode 100644 index e62298a..0000000 --- a/src/com/android/systemui/navigation/editor/QuickAction.java +++ /dev/null @@ -1,383 +0,0 @@ - -package com.android.systemui.navigation.editor; - -import android.content.Context; - -import android.graphics.Rect; -import android.graphics.drawable.Drawable; - -import android.widget.ImageView; -import android.widget.PopupWindow; -import android.widget.TextView; -import android.widget.ScrollView; -import android.widget.RelativeLayout; -import android.widget.PopupWindow.OnDismissListener; - -import android.util.Log; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup.LayoutParams; -import android.view.ViewGroup; - -import java.util.List; -import java.util.ArrayList; - -import com.android.systemui.R; -import com.android.systemui.navigation.editor.ActionItem; -import com.android.systemui.navigation.editor.PopupWindows; -import com.android.systemui.navigation.editor.QuickAction; - -/** - * @author Pontus Holmberg (EndLessMind) Email: the_mr_hb@hotmail.com - **/ - -public class QuickAction extends PopupWindows implements OnDismissListener { - private View mRootView; - private ImageView mArrowUp; - private ImageView mArrowDown; - private LayoutInflater mInflater; - private ViewGroup mTrack; - private ScrollView mScroller; - private OnActionItemClickListener mItemClickListener; - private OnDismissListener mDismissListener; - - private List<ActionItem> actionItems = new ArrayList<ActionItem>(); - - private boolean mDidAction; - public boolean isDismissed = false; - - private int mChildPos; - private int mInsertPos; - private int rootWidth = 0; - private int mAnimStyle; - private int mXpos = 0; - private int mBtop; - - public static final int HORIZONTAL = 0; - public static final int VERTICAL = 1; - - public static final int ANIM_GROW_FROM_LEFT = 1; - public static final int ANIM_GROW_FROM_RIGHT = 2; - public static final int ANIM_GROW_FROM_CENTER = 3; - public static final int ANIM_REFLECT = 4; - public static final int ANIM_AUTO = 5; - public static final int ANIM_NONE = 6; - - /** - * Constructor for default vertical layout - * - * @param context Context - */ - public QuickAction(Context context) { - this(context, VERTICAL); - } - - /** - * Constructor allowing orientation override - * - * @param context Context - * @param orientation Layout orientation, can be vartical or horizontal - */ - public QuickAction(Context context, int orientation) { - super(context); - mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - setRootViewId(R.layout.popup_vertical); - mChildPos = 0; - mAnimStyle = ANIM_AUTO; - } - - /** - * Get action item at an index - * - * @param index Index of item (position from callback) - * @return Action Item at the position - */ - public ActionItem getActionItem(int index) { - return actionItems.get(index); - } - - /** - * Set root view. - * - * @param id Layout resource id - */ - public void setRootViewId(int id) { - // setOutsideTouchable(true); - mRootView = (ViewGroup) mInflater.inflate(id, null); - mTrack = (ViewGroup) mRootView.findViewById(R.id.tracks); - mArrowDown = (ImageView) mRootView.findViewById(R.id.arrow_down); - mArrowUp = (ImageView) mRootView.findViewById(R.id.arrow_up); - mScroller = (ScrollView) mRootView.findViewById(R.id.scroller); - - // This was previously defined on show() method, moved here to prevent force close that - // occured - // when tapping fastly on a view to show quickaction dialog. - // thanks to zammbi (github.com/zammbi) - mRootView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, - LayoutParams.WRAP_CONTENT)); - setContentView(mRootView); - } - - /** - * Set listener for action item clicked. - * - * @param listener Listener - */ - public void setOnActionItemClickListener(OnActionItemClickListener listener) { - mItemClickListener = listener; - } - - /** - * Add action item - * - * @param action {@link ActionItem} - */ - public void addActionItem(ActionItem action) { - actionItems.add(action); - - String title = action.getTitle(); - Drawable icon = action.getIcon(); - View container = mInflater.inflate(R.layout.action_item_vertical, null); - ImageView img = (ImageView) container.findViewById(R.id.iv_icon); - TextView text = (TextView) container.findViewById(R.id.tv_title); - - if (icon != null) { - img.setImageDrawable(icon); - } else { - img.setVisibility(View.GONE); - } - - if (title != null) { - text.setText(title); - } else { - text.setVisibility(View.GONE); - } - - final int pos = mChildPos; - final int actionId = action.getActionId(); - - final boolean isActionSticky = action.isSticky(); - - container.setOnClickListener(new OnClickListener() { - public void onClick(View v) { - if (mItemClickListener != null) { - mItemClickListener.onItemClick(QuickAction.this, pos, actionId); - } - - if (!isActionSticky) { - mDidAction = true; - dismiss(); - } - } - }); - - container.setFocusable(true); - container.setClickable(true); - - mTrack.addView(container, mInsertPos); - - mChildPos++; - mInsertPos++; - } - - public void clearViews() { - actionItems.clear(); - mTrack.removeAllViews(); - mChildPos = 0; - mInsertPos = 0; - } - - /** - * Show quickaction popup. Popup is automatically positioned, on top or bottom of anchor view. - */ - public void show(View anchor) { - preShow(); - int xPos, yPos, arrowPos; - - mDidAction = false; - - int[] location = new int[2]; - - anchor.getLocationOnScreen(location); - - Rect anchorRect = new Rect(location[0], location[1], location[0] + anchor.getWidth(), - location[1] - + anchor.getHeight()); - - // mRootView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, - // LayoutParams.WRAP_CONTENT)); - - mRootView.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - - int rootHeight = mRootView.getMeasuredHeight(); - - if (rootWidth == 0) { - rootWidth = mRootView.getMeasuredWidth(); - } - - int screenWidth = mWindowManager.getDefaultDisplay().getWidth(); - int screenHeight = mWindowManager.getDefaultDisplay().getHeight(); - - // automatically get X coord of popup (top left) - if ((anchorRect.left + rootWidth) > screenWidth) { - xPos = anchorRect.left - (rootWidth - anchor.getWidth()); - xPos = (xPos < 0) ? 0 : xPos; - - arrowPos = anchorRect.centerX() - xPos; - - } else { - if (anchor.getWidth() > rootWidth) { - xPos = anchorRect.centerX() - (rootWidth / 2); - } else { - xPos = anchorRect.left; - } - - arrowPos = anchorRect.centerX() - xPos; - } - - int dyTop = anchorRect.top; - mBtop = dyTop; - int dyBottom = screenHeight - anchorRect.bottom; - - boolean onTop = (dyTop > dyBottom) ? true : false; - - if (onTop) { - if (rootHeight > dyTop) { - yPos = 15; - LayoutParams l = mScroller.getLayoutParams(); - l.height = dyTop - anchor.getHeight(); - } else { - yPos = anchorRect.top - rootHeight; - } - } else { - yPos = anchorRect.bottom; - - if (rootHeight > dyBottom) { - LayoutParams l = mScroller.getLayoutParams(); - l.height = dyBottom; - } - } - - showArrow(((onTop) ? R.id.arrow_down : R.id.arrow_up), arrowPos); - - setAnimationStyle(screenWidth, anchorRect.centerX()); - mWindow.showAtLocation(anchor, Gravity.NO_GRAVITY, xPos, yPos); - mXpos = xPos; - } - - public int getNavButtonTopY() { - return mBtop; - } - - public int getXpos() { - return mXpos; - } - - /** - * Set animation style - * - * @param screenWidth screen width - * @param requestedX distance from left edge - * @param onTop flag to indicate where the popup should be displayed. Set TRUE if displayed on - * top of anchor view and vice versa - */ - private void setAnimationStyle(int screenWidth, int requestedX) { - int arrowPos = requestedX - mArrowUp.getMeasuredWidth() / 2; - - switch (mAnimStyle) { - case ANIM_GROW_FROM_LEFT: - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Left); - break; - - case ANIM_GROW_FROM_RIGHT: - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Right); - break; - - case ANIM_GROW_FROM_CENTER: - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Center); - break; - - case ANIM_REFLECT: - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Reflect); - break; - - case ANIM_AUTO: - if (arrowPos <= screenWidth / 4) { - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Left); - } else if (arrowPos > screenWidth / 4 && arrowPos < 3 * (screenWidth / 4)) { - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Center); - } else { - mWindow.setAnimationStyle(R.style.Animations_PopUpMenu_Right); - } - break; - } - } - - /** - * Set animation style - * - * @param mAnimStyle animation style, default is set to ANIM_AUTO - */ - public void setAnimStyle(int mAnimStyle) { - this.mAnimStyle = mAnimStyle; - } - - /** - * Show arrow - * - * @param whichArrow arrow type resource id - * @param requestedX distance from left screen - */ - private void showArrow(int whichArrow, int requestedX) { - final View showArrow = (whichArrow == R.id.arrow_up) ? mArrowUp - : mArrowDown; - final View hideArrow = (whichArrow == R.id.arrow_up) ? mArrowDown - : mArrowUp; - - final int arrowWidth = mArrowDown.getMeasuredWidth(); - - showArrow.setVisibility(View.VISIBLE); - - ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams) showArrow - .getLayoutParams(); - - param.leftMargin = requestedX - arrowWidth / 2; - - hideArrow.setVisibility(View.INVISIBLE); - } - - /** - * Set listener for window dismissed. This listener will only be fired if the quicakction dialog - * is dismissed by clicking outside the dialog or clicking on sticky item. - */ - public void setOnDismissListener(QuickAction.OnDismissListener listener) { - setOnDismissListener(this); - - mDismissListener = listener; - } - - @Override - public void onDismiss() { - if (!mDidAction && mDismissListener != null) { - isDismissed = true; - Log.d("Qick", "Dismissed-inside"); - mDismissListener.onDismiss(); - } - } - - /** - * Listener for item click - */ - public interface OnActionItemClickListener { - public abstract void onItemClick(QuickAction source, int pos, int actionId); - } - - /** - * Listener for window dismiss - */ - public interface OnDismissListener { - public abstract void onDismiss(); - } -} diff --git a/src/com/android/systemui/navigation/fling/FlingActionHandler.java b/src/com/android/systemui/navigation/fling/FlingActionHandler.java deleted file mode 100644 index 508d06d..0000000 --- a/src/com/android/systemui/navigation/fling/FlingActionHandler.java +++ /dev/null @@ -1,353 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Handles binding actions to events, and a simple public api for firing - * events. Also handles observing user changes to actions and a callback - * that's called action pre-execution. Let's motion handler know if double - * tap is enabled in case of different touch handling - * - */ - -package com.android.systemui.navigation.fling; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import com.android.systemui.navigation.fling.FlingGestureHandler.Swipeable; -import com.android.systemui.navigation.utils.SmartObserver.SmartObservable; -import com.android.internal.utils.du.ActionConstants; -import com.android.internal.utils.du.ActionHandler; -import com.android.internal.utils.du.Config; -import com.android.internal.utils.du.ActionConstants.ConfigMap; -import com.android.internal.utils.du.Config.ActionConfig; -import com.android.internal.utils.du.Config.ButtonConfig; - -import android.content.Context; -import android.net.Uri; -import android.os.Handler; -import android.os.Looper; -import android.provider.Settings; -import android.text.TextUtils; -import android.view.HapticFeedbackConstants; -import android.view.SoundEffectConstants; -import android.view.View; - -public class FlingActionHandler implements Swipeable, SmartObservable { - final static String TAG = FlingActionHandler.class.getSimpleName(); - - private static Set<Uri> sUris = new HashSet<Uri>(); - static { - sUris.add(Settings.Secure.getUriFor( - ActionConstants.getDefaults(ActionConstants.FLING).getUri())); - } - - private Map<String, ActionConfig> mActionMap = new HashMap<String, ActionConfig>(); - private View mHost; - private Context mContext; - private boolean isDoubleTapEnabled; - private boolean mUseKbCursors; - private boolean mLongPressing; - private boolean mKeyguardShowing; - private boolean mOnTapPreloadedRecents; - private boolean mOnSwipePreloadedRecents; - - // TODO: move these to ActionConstants and make the whole - // preload code more granular to avoid unneeded preload tasks - private final ArrayList<String> mRightTapActions = new ArrayList<>(); - private final ArrayList<String> mLeftTapActions = new ArrayList<>(); - private final ArrayList<String> mSwipeActions = new ArrayList<>(); - - private void setRightTapActions() { - mRightTapActions.clear(); - mRightTapActions.add("single_right_tap"); - mRightTapActions.add("double_right_tap"); - mRightTapActions.add("long_right_press"); - } - - private void setLeftTapActions() { - mLeftTapActions.clear(); - mLeftTapActions.add("single_left_tap"); - mLeftTapActions.add("double_left_tap"); - mLeftTapActions.add("long_left_press"); - } - - private void setSwipeActions() { - mSwipeActions.add("fling_short_right"); - mSwipeActions.add("fling_long_right"); - mSwipeActions.add("fling_right_up"); - mSwipeActions.add("fling_short_left"); - mSwipeActions.add("fling_long_left"); - mSwipeActions.add("fling_left_up"); - } - - public FlingActionHandler(Context context, View host) { - mContext = context; - mHost = host; - loadConfigs(); - } - - void loadConfigs() { - mActionMap.clear(); - ArrayList<ButtonConfig> configs = Config.getConfig(mContext, - ActionConstants.getDefaults(ActionConstants.FLING)); - for (Map.Entry<String, ConfigMap> entry : ActionConstants - .getDefaults(ActionConstants.FLING).getActionMap().entrySet()) { - ButtonConfig button = configs.get(entry.getValue().button); - ActionConfig action = button.getActionConfig(entry.getValue().action); - mActionMap.put(entry.getKey(), action); - } - setDoubleTapEnabled(); - setLeftTapActions(); - setRightTapActions(); - setSwipeActions(); - } - - public void setKeyguardShowing(boolean showing) { - if (mKeyguardShowing == showing) { - return; - } - mKeyguardShowing = showing; - } - - public void fireAction(ActionConfig action) { - if (action == null || action.hasNoAction()) { - return; - } - final String theAction = action.getAction(); - // only back is allowed in keyguard - if (mKeyguardShowing - && (!TextUtils.equals(theAction, ActionHandler.SYSTEMUI_TASK_BACK))) { - return; - } - mHost.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); - mHost.playSoundEffect(SoundEffectConstants.CLICK); - ActionHandler.performTask(mContext, theAction); - if (mOnTapPreloadedRecents || mOnSwipePreloadedRecents - && !action.isActionRecents()) { - ActionHandler.cancelPreloadRecentApps(); - } - } - - @Override - public boolean onDoubleTapEnabled() { - return isDoubleTapEnabled; - } - - @Override - public void onShortLeftSwipe() { - fireAction((ActionConfig) mActionMap.get(ActionConstants.Fling.FLING_SHORT_LEFT_TAG)); - } - - @Override - public void onLongLeftSwipe() { - fireAction((ActionConfig) mActionMap.get(ActionConstants.Fling.FLING_LONG_LEFT_TAG)); - } - - @Override - public void onShortRightSwipe() { - fireAction((ActionConfig) mActionMap.get(ActionConstants.Fling.FLING_SHORT_RIGHT_TAG)); - } - - @Override - public void onLongRightSwipe() { - fireAction((ActionConfig) mActionMap.get(ActionConstants.Fling.FLING_LONG_RIGHT_TAG)); - } - - @Override - public void onUpRightSwipe() { - ActionConfig left_swipe = (ActionConfig) mActionMap - .get(ActionConstants.Fling.FLING_LEFT_UP_TAG); - ActionConfig right_swipe = (ActionConfig) mActionMap - .get(ActionConstants.Fling.FLING_RIGHT_UP_TAG); - fireAction(!right_swipe.hasNoAction() ? right_swipe : left_swipe); - } - - @Override - public void onUpLeftSwipe() { - ActionConfig left_swipe = (ActionConfig) mActionMap - .get(ActionConstants.Fling.FLING_LEFT_UP_TAG); - ActionConfig right_swipe = (ActionConfig) mActionMap - .get(ActionConstants.Fling.FLING_RIGHT_UP_TAG); - fireAction(!left_swipe.hasNoAction() ? left_swipe : right_swipe); - } - - @Override - public void onSingleLeftPress() { - if (mUseKbCursors) { - ActionHandler.performTask(mContext, ActionHandler.SYSTEMUI_TASK_HOME); - return; - } - ActionConfig left_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.SINGLE_LEFT_TAP_TAG); - ActionConfig right_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.SINGLE_RIGHT_TAP_TAG); - fireAction(!left_tap.hasNoAction() ? left_tap : right_tap); - } - - @Override - public void onSingleRightPress() { - if (((FlingView)mHost).isRotateButtonVisible()) { - ((FlingView)mHost).rotate(); - return; - } - - if (mUseKbCursors) { - ActionHandler.performTask(mContext, ActionHandler.SYSTEMUI_TASK_HOME); - return; - } - ActionConfig right_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.SINGLE_RIGHT_TAP_TAG); - ActionConfig left_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.SINGLE_LEFT_TAP_TAG); - fireAction(!right_tap.hasNoAction() ? right_tap : left_tap); - } - - protected void setImeActions(boolean enable) { - mUseKbCursors = enable; - } - - private void setDoubleTapEnabled() { - isDoubleTapEnabled = - !((ActionConfig) mActionMap.get(ActionConstants.Fling.DOUBLE_LEFT_TAP_TAG)).hasNoAction() - || !((ActionConfig) mActionMap.get(ActionConstants.Fling.DOUBLE_RIGHT_TAP_TAG)).hasNoAction(); - } - - @Override - public void onDoubleLeftTap() { - ActionConfig left_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.DOUBLE_LEFT_TAP_TAG); - ActionConfig right_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.DOUBLE_RIGHT_TAP_TAG); - fireAction(!left_tap.hasNoAction() ? left_tap : right_tap); - } - - @Override - public void onDoubleRightTap() { - ActionConfig right_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.DOUBLE_RIGHT_TAP_TAG); - ActionConfig left_tap = (ActionConfig) mActionMap - .get(ActionConstants.Fling.DOUBLE_LEFT_TAP_TAG); - fireAction(!right_tap.hasNoAction() ? right_tap : left_tap); - } - - @Override - public void onLongLeftPress() { - mLongPressing = true; - if (mUseKbCursors) { - moveKbCursor(false, true); - return; - } - - ActionConfig left_long = (ActionConfig) mActionMap - .get(ActionConstants.Fling.LONG_LEFT_PRESS_TAG); - ActionConfig right_long = (ActionConfig) mActionMap - .get(ActionConstants.Fling.LONG_RIGHT_PRESS_TAG); - if (ActionHandler.isLockTaskOn()) { - ActionHandler.turnOffLockTask(); - } else { - fireAction(!left_long.hasNoAction() ? left_long : right_long); - } - } - - @Override - public void onLongRightPress() { - mLongPressing = true; - if (mUseKbCursors) { - moveKbCursor(true, true); - return; - } - - ActionConfig right_long = (ActionConfig) mActionMap - .get(ActionConstants.Fling.LONG_RIGHT_PRESS_TAG); - ActionConfig left_long = (ActionConfig) mActionMap - .get(ActionConstants.Fling.LONG_LEFT_PRESS_TAG); - if (ActionHandler.isLockTaskOn()) { - ActionHandler.turnOffLockTask(); - } else { - fireAction(!right_long.hasNoAction() ? right_long : left_long); - } - } - - private void moveKbCursor(boolean right, boolean firstTrigger) { - ActionHandler.performTask(mContext, right ? ActionHandler.SYSTEMUI_TASK_IME_NAVIGATION_RIGHT - : ActionHandler.SYSTEMUI_TASK_IME_NAVIGATION_LEFT); - final Handler handler = new Handler(Looper.getMainLooper()); - final Runnable r = new Runnable() { - @Override - public void run() { - if (mLongPressing) { - moveKbCursor(right, false); - } - } - }; - if (mLongPressing) { - handler.postDelayed(r, firstTrigger ? 500 : 250); - } - } - - @Override - public void cancelLongPress() { - mLongPressing = false; - } - - @Override - public void onDownPreloadRecents(boolean isRight) { - mOnTapPreloadedRecents = false; - for (String flingAction : (isRight? mRightTapActions : mLeftTapActions)) { - ActionConfig action = (ActionConfig) mActionMap.get(flingAction); - if (!mUseKbCursors && !((FlingView)mHost).isRotateButtonVisible() && action != null && !action.hasNoAction() && action.isActionRecents()) { - ActionHandler.preloadRecentApps(); - mOnTapPreloadedRecents = true; - return; - } - } - } - - @Override - public void onScrollPreloadRecents() { - mOnSwipePreloadedRecents = false; - for (String swipeAction : mSwipeActions) { - ActionConfig action = (ActionConfig) mActionMap.get(swipeAction); - if (action != null && !action.hasNoAction() && action.isActionRecents() && !mOnTapPreloadedRecents) { - ActionHandler.preloadRecentApps(); - mOnSwipePreloadedRecents = true; - return; - } - } - } - - @Override - public void onCancelPreloadRecents() { - if (mOnTapPreloadedRecents || mOnSwipePreloadedRecents) { - ActionHandler.cancelPreloadRecentApps(); - } - } - - @Override - public Set<Uri> onGetUris() { - return sUris; - } - - @Override - public void onChange(Uri uri) { - loadConfigs(); - } -} diff --git a/src/com/android/systemui/navigation/fling/FlingBarTransitions.java b/src/com/android/systemui/navigation/fling/FlingBarTransitions.java deleted file mode 100644 index 9b1dc03..0000000 --- a/src/com/android/systemui/navigation/fling/FlingBarTransitions.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2013 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.navigation.fling; - -import android.graphics.drawable.Drawable; -import android.view.View; - -import com.android.systemui.navigation.*; -import com.android.systemui.navigation.fling.FlingView; -import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.phone.LightBarTransitionsController; -import com.android.systemui.R; - -public final class FlingBarTransitions extends BarTransitions { - - private final FlingView mView; - private boolean mLightsOut; - private final LightBarTransitionsController mLightTransitionsController; - - public FlingBarTransitions(FlingView view) { - super(view, R.drawable.nav_background); -// R.color.navigation_bar_background_opaque, -// R.color.navigation_bar_background_semi_transparent, -// R.color.navigation_bar_background_transparent, -// com.android.internal.R.color.battery_saver_mode_color); - mView = view; - mLightTransitionsController = new LightBarTransitionsController(view.getContext(), - this::applyDarkIntensity); - } - - public void init() { - applyModeBackground(-1, getMode(), false /*animate*/); - applyMode(getMode(), false /*animate*/, true /*force*/); - } - - public LightBarTransitionsController getLightTransitionsController() { - return mLightTransitionsController; - } - - public void reapplyDarkIntensity() { - applyDarkIntensity(mLightTransitionsController.getCurrentDarkIntensity()); - } - - public void applyDarkIntensity(float darkIntensity) { - Drawable current = mView.getLogoDrawable(false); - if (current != null && current instanceof DarkIntensity) { - ((DarkIntensity) current).setDarkIntensity(darkIntensity); - } - Drawable hidden = mView.getLogoDrawable(true); - if (hidden != null && hidden instanceof DarkIntensity) { - ((DarkIntensity) hidden).setDarkIntensity(darkIntensity); - } - - Drawable rotationCurrent = mView.getRotationLogoDrawable(false); - if (rotationCurrent != null && rotationCurrent instanceof DarkIntensity) { - ((DarkIntensity) rotationCurrent).setDarkIntensity(darkIntensity); - } - Drawable rotationHidden = mView.getRotationLogoDrawable(true); - if (rotationHidden != null && rotationHidden instanceof DarkIntensity) { - ((DarkIntensity) rotationHidden).setDarkIntensity(darkIntensity); - } - } - - @Override - protected void onTransition(int oldMode, int newMode, boolean animate) { - super.onTransition(oldMode, newMode, animate); - applyMode(newMode, animate, false /*force*/); - } - - private void applyMode(int mode, boolean animate, boolean force) { - // apply to lights out - applyLightsOut(isLightsOut(mode), animate, force); - } - - private void applyLightsOut(boolean lightsOut, boolean animate, boolean force) { - if (!force && lightsOut == mLightsOut) - return; - - mLightsOut = lightsOut; - final View navButtons = mView.getCurrentView().findViewById(R.id.nav_buttons); - - // ok, everyone, stop it right there - navButtons.animate().cancel(); - - final float navButtonsAlpha = lightsOut ? 0.5f : 1f; - - if (!animate) { - navButtons.setAlpha(navButtonsAlpha); - } else { - final int duration = lightsOut ? LIGHTS_OUT_DURATION : LIGHTS_IN_DURATION; - navButtons.animate() - .alpha(navButtonsAlpha) - .setDuration(duration) - .start(); - } - } -} diff --git a/src/com/android/systemui/navigation/fling/FlingGestureDetector.java b/src/com/android/systemui/navigation/fling/FlingGestureDetector.java deleted file mode 100644 index ff468e9..0000000 --- a/src/com/android/systemui/navigation/fling/FlingGestureDetector.java +++ /dev/null @@ -1,751 +0,0 @@ -/** - * Copyright (C) 2013 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. - * - * Haxd up version from sdk. exposed some values - * - */ -package com.android.systemui.navigation.fling; - -import com.android.systemui.R; - -import android.content.Context; -import android.os.Handler; -import android.os.Message; -import android.view.InputEventConsistencyVerifier; -import android.view.MotionEvent; -import android.view.VelocityTracker; -import android.view.ViewConfiguration; - -/** - * Detects various gestures and events using the supplied {@link MotionEvent}s. - * The {@link OnGestureListener} callback will notify users when a particular - * motion event has occurred. This class should only be used with {@link MotionEvent}s - * reported via touch (don't use for trackball events). - * - * To use this class: - * <ul> - * <li>Create an instance of the {@code GestureDetector} for your {@link View} - * <li>In the {@link View#onTouchEvent(MotionEvent)} method ensure you call - * {@link #onTouchEvent(MotionEvent)}. The methods defined in your callback - * will be executed when the events occur. - * </ul> - */ -public class FlingGestureDetector { - /** - * The listener that is used to notify when gestures occur. - * If you want to listen for all the different gestures then implement - * this interface. If you only want to listen for a subset it might - * be easier to extend {@link SimpleOnGestureListener}. - */ - public interface OnGestureListener { - - /** - * Notified when a tap occurs with the down {@link MotionEvent} - * that triggered it. This will be triggered immediately for - * every down event. All other events should be preceded by this. - * - * @param e The down motion event. - */ - boolean onDown(MotionEvent e); - - /** - * The user has performed a down {@link MotionEvent} and not performed - * a move or up yet. This event is commonly used to provide visual - * feedback to the user to let them know that their action has been - * recognized i.e. highlight an element. - * - * @param e The down motion event - */ - void onShowPress(MotionEvent e); - - /** - * Notified when a tap occurs with the up {@link MotionEvent} - * that triggered it. - * - * @param e The up motion event that completed the first tap - * @return true if the event is consumed, else false - */ - boolean onSingleTapUp(MotionEvent e); - - /** - * Notified when a scroll occurs with the initial on down {@link MotionEvent} and the - * current move {@link MotionEvent}. The distance in x and y is also supplied for - * convenience. - * - * @param e1 The first down motion event that started the scrolling. - * @param e2 The move motion event that triggered the current onScroll. - * @param distanceX The distance along the X axis that has been scrolled since the last - * call to onScroll. This is NOT the distance between {@code e1} - * and {@code e2}. - * @param distanceY The distance along the Y axis that has been scrolled since the last - * call to onScroll. This is NOT the distance between {@code e1} - * and {@code e2}. - * @return true if the event is consumed, else false - */ - boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY); - - /** - * Notified when a scroll occurs with the initial on move {@link MotionEvent} - * that trigged it. - * - */ - boolean onFirstScroll(); - - /** - * Notified on cancel {@link MotionEvent} - * - */ - boolean onCancel(); - - /** - * Notified when a long press occurs with the initial on down {@link MotionEvent} - * that trigged it. - * - * @param e The initial on down motion event that started the longpress. - */ - void onLongPress(MotionEvent e); - - /** - * Notified when a long press is finished - * - */ - void onFinishedLongPress(); - - /** - * Notified of a fling event when it occurs with the initial on down {@link MotionEvent} - * and the matching up {@link MotionEvent}. The calculated velocity is supplied along - * the x and y axis in pixels per second. - * - * @param e1 The first down motion event that started the fling. - * @param e2 The move motion event that triggered the current onFling. - * @param velocityX The velocity of this fling measured in pixels per second - * along the x axis. - * @param velocityY The velocity of this fling measured in pixels per second - * along the y axis. - * @return true if the event is consumed, else false - */ - boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY); - } - - /** - * The listener that is used to notify when a double-tap or a confirmed - * single-tap occur. - */ - public interface OnDoubleTapListener { - /** - * Notified when a single-tap occurs. - * <p> - * Unlike {@link OnGestureListener#onSingleTapUp(MotionEvent)}, this - * will only be called after the detector is confident that the user's - * first tap is not followed by a second tap leading to a double-tap - * gesture. - * - * @param e The down motion event of the single-tap. - * @return true if the event is consumed, else false - */ - boolean onSingleTapConfirmed(MotionEvent e); - - /** - * Notified when a double-tap occurs. - * - * @param e The down motion event of the first tap of the double-tap. - * @return true if the event is consumed, else false - */ - boolean onDoubleTap(MotionEvent e); - - /** - * Notified when an event within a double-tap gesture occurs, including - * the down, move, and up events. - * - * @param e The motion event that occurred during the double-tap gesture. - * @return true if the event is consumed, else false - */ - boolean onDoubleTapEvent(MotionEvent e); - } - - /** - * A convenience class to extend when you only want to listen for a subset - * of all the gestures. This implements all methods in the - * {@link OnGestureListener} and {@link OnDoubleTapListener} but does - * nothing and return {@code false} for all applicable methods. - */ - public static class SimpleOnGestureListener implements OnGestureListener, OnDoubleTapListener { - - public boolean onSingleTapUp(MotionEvent e) { - return false; - } - - public void onLongPress(MotionEvent e) { - } - - public void onFinishedLongPress() { - } - - public boolean onScroll(MotionEvent e1, MotionEvent e2, - float distanceX, float distanceY) { - return false; - } - - public boolean onFirstScroll() { - return false; - } - - public boolean onCancel() { - return false; - } - - public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, - float velocityY) { - return false; - } - - public void onShowPress(MotionEvent e) { - } - - public boolean onDown(MotionEvent e) { - return false; - } - - public boolean onDoubleTap(MotionEvent e) { - return false; - } - - public boolean onDoubleTapEvent(MotionEvent e) { - return false; - } - - public boolean onSingleTapConfirmed(MotionEvent e) { - return false; - } - } - - private int mTouchSlopSquare; - private int mDoubleTapTouchSlopSquare; - private int mDoubleTapSlopSquare; - private int mMinimumFlingVelocity; - private int mMaximumFlingVelocity; - - private static final int LONGPRESS_TIMEOUT = ViewConfiguration.getLongPressTimeout(); - private static final int TAP_TIMEOUT = ViewConfiguration.getTapTimeout(); - private static final int DOUBLE_TAP_TIMEOUT = ViewConfiguration.getDoubleTapTimeout(); - private static final int DOUBLE_TAP_MIN_TIME = ViewConfiguration.getDoubleTapMinTime(); - - // constants for Message.what used by GestureHandler below - private static final int SHOW_PRESS = 1; - private static final int LONG_PRESS = 2; - private static final int TAP = 3; - - private final Handler mHandler; - private final OnGestureListener mListener; - private OnDoubleTapListener mDoubleTapListener; - - private boolean mStillDown; - private boolean mDeferConfirmSingleTap; - private boolean mInLongPress; - private boolean mAlwaysInTapRegion; - private boolean mAlwaysInBiggerTapRegion; - - private MotionEvent mCurrentDownEvent; - private MotionEvent mPreviousUpEvent; - - /** - * True when the user is still touching for the second tap (down, move, and - * up events). Can only be true if there is a double tap listener attached. - */ - private boolean mIsDoubleTapping; - - private float mLastFocusX; - private float mLastFocusY; - private float mDownFocusX; - private float mDownFocusY; - - private boolean mIsLongpressEnabled; - - /** - * Determines speed during touch scrolling - */ - private VelocityTracker mVelocityTracker; - - /** - * Consistency verifier for debugging purposes. - */ - private final InputEventConsistencyVerifier mInputEventConsistencyVerifier = - InputEventConsistencyVerifier.isInstrumentationEnabled() ? - new InputEventConsistencyVerifier(this, 0) : null; - - private class GestureHandler extends Handler { - GestureHandler() { - super(); - } - - GestureHandler(Handler handler) { - super(handler.getLooper()); - } - - @Override - public void handleMessage(Message msg) { - switch (msg.what) { - case SHOW_PRESS: - mListener.onShowPress(mCurrentDownEvent); - break; - case LONG_PRESS: - dispatchLongPress(); - break; - case TAP: - // If the user's finger is still down, do not count it as a tap - if (mDoubleTapListener != null) { - if (!mStillDown) { - mDoubleTapListener.onSingleTapConfirmed(mCurrentDownEvent); - } else { - mDeferConfirmSingleTap = true; - } - } - break; - default: - throw new RuntimeException("Unknown message " + msg); //never - } - } - } - - /** - * Creates a GestureDetector with the supplied listener. - * This variant of the constructor should be used from a non-UI thread - * (as it allows specifying the Handler). - * - * @param listener the listener invoked for all the callbacks, this must - * not be null. - * @param handler the handler to use - * - * @throws NullPointerException if either {@code listener} or - * {@code handler} is null. - * - * @deprecated Use {@link #GestureDetector(android.content.Context, - * android.view.GestureDetector.OnGestureListener, android.os.Handler)} instead. - */ - @Deprecated - public FlingGestureDetector(OnGestureListener listener, Handler handler) { - this(null, listener, handler); - } - - /** - * Creates a GestureDetector with the supplied listener. - * You may only use this constructor from a UI thread (this is the usual situation). - * @see android.os.Handler#Handler() - * - * @param listener the listener invoked for all the callbacks, this must - * not be null. - * - * @throws NullPointerException if {@code listener} is null. - * - * @deprecated Use {@link #GestureDetector(android.content.Context, - * android.view.GestureDetector.OnGestureListener)} instead. - */ - @Deprecated - public FlingGestureDetector(OnGestureListener listener) { - this(null, listener, null); - } - - /** - * Creates a GestureDetector with the supplied listener that runs deferred events on the - * thread associated with the supplied {@link android.os.Handler}. - * @see android.os.Handler#Handler() - * - * @param context the application's context - * @param listener the listener invoked for all the callbacks, this must - * not be null. - * @param handler the handler to use for running deferred listener events. - * - * @throws NullPointerException if {@code listener} is null. - */ - public FlingGestureDetector(Context context, OnGestureListener listener, Handler handler) { - if (handler != null) { - mHandler = new GestureHandler(handler); - } else { - mHandler = new GestureHandler(); - } - mListener = listener; - if (listener instanceof OnDoubleTapListener) { - setOnDoubleTapListener((OnDoubleTapListener) listener); - } - init(context); - } - - /** - * Creates a GestureDetector with the supplied listener that runs deferred events on the - * thread associated with the supplied {@link android.os.Handler}. - * @see android.os.Handler#Handler() - * - * @param context the application's context - * @param listener the listener invoked for all the callbacks, this must - * not be null. - * @param handler the handler to use for running deferred listener events. - * @param unused currently not used. - * - * @throws NullPointerException if {@code listener} is null. - */ - public FlingGestureDetector(Context context, OnGestureListener listener, Handler handler, - boolean unused) { - this(context, listener, handler); - } - - private void init(Context context) { - if (mListener == null) { - throw new NullPointerException("OnGestureListener must not be null"); - } - mIsLongpressEnabled = true; - - // Fallback to support pre-donuts releases - int touchSlop, doubleTapSlop, doubleTapTouchSlop; - float touchSlopIncreaseFactor; - if (context == null) { - //noinspection deprecation - touchSlop = ViewConfiguration.getTouchSlop(); - doubleTapTouchSlop = touchSlop; // Hack rather than adding a hiden method for this - doubleTapSlop = ViewConfiguration.getDoubleTapSlop(); - //noinspection deprecation - mMinimumFlingVelocity = ViewConfiguration.getMinimumFlingVelocity(); - mMaximumFlingVelocity = ViewConfiguration.getMaximumFlingVelocity(); - } else { - final ViewConfiguration configuration = ViewConfiguration.get(context); - - touchSlopIncreaseFactor = context.getResources().getFloat(R.dimen.config_fling_touchslop_increase_factor); - final int slop = configuration.getScaledTouchSlop(); - touchSlop = Math.round(slop * touchSlopIncreaseFactor); - - doubleTapTouchSlop = configuration.getScaledDoubleTapTouchSlop(); - doubleTapSlop = configuration.getScaledDoubleTapSlop(); - mMinimumFlingVelocity = configuration.getScaledMinimumFlingVelocity(); - mMaximumFlingVelocity = configuration.getScaledMaximumFlingVelocity(); - } - mTouchSlopSquare = touchSlop * touchSlop; - mDoubleTapTouchSlopSquare = doubleTapTouchSlop * doubleTapTouchSlop; - mDoubleTapSlopSquare = doubleTapSlop * doubleTapSlop; - } - - /** - * Sets the listener which will be called for double-tap and related - * gestures. - * - * @param onDoubleTapListener the listener invoked for all the callbacks, or - * null to stop listening for double-tap gestures. - */ - public void setOnDoubleTapListener(OnDoubleTapListener onDoubleTapListener) { - mDoubleTapListener = onDoubleTapListener; - } - - /** - * Set whether longpress is enabled, if this is enabled when a user - * presses and holds down you get a longpress event and nothing further. - * If it's disabled the user can press and hold down and then later - * moved their finger and you will get scroll events. By default - * longpress is enabled. - * - * @param isLongpressEnabled whether longpress should be enabled. - */ - public void setIsLongpressEnabled(boolean isLongpressEnabled) { - mIsLongpressEnabled = isLongpressEnabled; - } - - /** - * @override to set custom longpress timeout - */ - protected int getLongPressTimeout() { - return LONGPRESS_TIMEOUT; - } - - /** - * @override to set custom doubletap timeout - */ - protected int getDoubleTapTimeout() { - return DOUBLE_TAP_TIMEOUT; - } - - /** - * @override to set custom tap timeout - */ - protected int getTapTimeout() { - return TAP_TIMEOUT; - } - - /** - * @override to set custom doubletap minimum time - */ - protected int getDoubleTapMinTime() { - return DOUBLE_TAP_MIN_TIME; - } - /** - * @return true if longpress is enabled, else false. - */ - public boolean isLongpressEnabled() { - return mIsLongpressEnabled; - } - - /** - * Analyzes the given motion event and if applicable triggers the - * appropriate callbacks on the {@link OnGestureListener} supplied. - * - * @param ev The current motion event. - * @return true if the {@link OnGestureListener} consumed the event, - * else false. - */ - public boolean onTouchEvent(MotionEvent ev) { - - if (mInputEventConsistencyVerifier != null) { - mInputEventConsistencyVerifier.onTouchEvent(ev, 0); - } - - final int action = ev.getAction(); - - if (mVelocityTracker == null) { - mVelocityTracker = VelocityTracker.obtain(); - } - mVelocityTracker.addMovement(ev); - - final boolean pointerUp = - (action & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_POINTER_UP; - final int skipIndex = pointerUp ? ev.getActionIndex() : -1; - - // Determine focal point - float sumX = 0, sumY = 0; - final int count = ev.getPointerCount(); - for (int i = 0; i < count; i++) { - if (skipIndex == i) continue; - sumX += ev.getX(i); - sumY += ev.getY(i); - } - final int div = pointerUp ? count - 1 : count; - final float focusX = sumX / div; - final float focusY = sumY / div; - - boolean handled = false; - - switch (action & MotionEvent.ACTION_MASK) { - case MotionEvent.ACTION_POINTER_DOWN: - mDownFocusX = mLastFocusX = focusX; - mDownFocusY = mLastFocusY = focusY; - // Cancel long press and taps - cancelTaps(); - break; - - case MotionEvent.ACTION_POINTER_UP: - mDownFocusX = mLastFocusX = focusX; - mDownFocusY = mLastFocusY = focusY; - - // Check the dot product of current velocities. - // If the pointer that left was opposing another velocity vector, clear. - mVelocityTracker.computeCurrentVelocity(1000, mMaximumFlingVelocity); - final int upIndex = ev.getActionIndex(); - final int id1 = ev.getPointerId(upIndex); - final float x1 = mVelocityTracker.getXVelocity(id1); - final float y1 = mVelocityTracker.getYVelocity(id1); - for (int i = 0; i < count; i++) { - if (i == upIndex) continue; - - final int id2 = ev.getPointerId(i); - final float x = x1 * mVelocityTracker.getXVelocity(id2); - final float y = y1 * mVelocityTracker.getYVelocity(id2); - - final float dot = x + y; - if (dot < 0) { - mVelocityTracker.clear(); - break; - } - } - break; - - case MotionEvent.ACTION_DOWN: - if (mDoubleTapListener != null) { - boolean hadTapMessage = mHandler.hasMessages(TAP); - if (hadTapMessage) mHandler.removeMessages(TAP); - if ((mCurrentDownEvent != null) && (mPreviousUpEvent != null) && hadTapMessage && - isConsideredDoubleTap(mCurrentDownEvent, mPreviousUpEvent, ev)) { - // This is a second tap - mIsDoubleTapping = true; - // Give a callback with the first tap of the double-tap - handled |= mDoubleTapListener.onDoubleTap(mCurrentDownEvent); - // Give a callback with down event of the double-tap - handled |= mDoubleTapListener.onDoubleTapEvent(ev); - } else { - // This is a first tap - mHandler.sendEmptyMessageDelayed(TAP, getDoubleTapTimeout()); - } - } - - mDownFocusX = mLastFocusX = focusX; - mDownFocusY = mLastFocusY = focusY; - if (mCurrentDownEvent != null) { - mCurrentDownEvent.recycle(); - } - mCurrentDownEvent = MotionEvent.obtain(ev); - mAlwaysInTapRegion = true; - mAlwaysInBiggerTapRegion = true; - mStillDown = true; - mInLongPress = false; - mDeferConfirmSingleTap = false; - - if (mIsLongpressEnabled) { - mHandler.removeMessages(LONG_PRESS); - mHandler.sendEmptyMessageAtTime(LONG_PRESS, mCurrentDownEvent.getDownTime() - + getTapTimeout() + getLongPressTimeout()); - } - mHandler.sendEmptyMessageAtTime(SHOW_PRESS, mCurrentDownEvent.getDownTime() + getTapTimeout()); - handled |= mListener.onDown(ev); - break; - - case MotionEvent.ACTION_MOVE: - if (mInLongPress) { - break; - } - final float scrollX = mLastFocusX - focusX; - final float scrollY = mLastFocusY - focusY; - if (mIsDoubleTapping) { - // Give the move events of the double-tap - handled |= mDoubleTapListener.onDoubleTapEvent(ev); - } else if (mAlwaysInTapRegion) { - final int deltaX = (int) (focusX - mDownFocusX); - final int deltaY = (int) (focusY - mDownFocusY); - int distance = (deltaX * deltaX) + (deltaY * deltaY); - if (distance > mTouchSlopSquare) { - handled = mListener.onScroll(mCurrentDownEvent, ev, scrollX, scrollY); - mLastFocusX = focusX; - mLastFocusY = focusY; - mAlwaysInTapRegion = false; - mHandler.removeMessages(TAP); - mHandler.removeMessages(SHOW_PRESS); - mHandler.removeMessages(LONG_PRESS); - mListener.onFinishedLongPress(); - mListener.onFirstScroll(); - } - if (distance > mDoubleTapTouchSlopSquare) { - mAlwaysInBiggerTapRegion = false; - } - } else if ((Math.abs(scrollX) >= 1) || (Math.abs(scrollY) >= 1)) { - handled = mListener.onScroll(mCurrentDownEvent, ev, scrollX, scrollY); - mLastFocusX = focusX; - mLastFocusY = focusY; - } - break; - - case MotionEvent.ACTION_UP: - mStillDown = false; - MotionEvent currentUpEvent = MotionEvent.obtain(ev); - if (mIsDoubleTapping) { - // Finally, give the up event of the double-tap - handled |= mDoubleTapListener.onDoubleTapEvent(ev); - } else if (mInLongPress) { - mHandler.removeMessages(TAP); - mInLongPress = false; - } else if (mAlwaysInTapRegion) { - handled = mListener.onSingleTapUp(ev); - if (mDeferConfirmSingleTap && mDoubleTapListener != null) { - mDoubleTapListener.onSingleTapConfirmed(ev); - } - } else { - - // A fling must travel the minimum tap distance - final VelocityTracker velocityTracker = mVelocityTracker; - final int pointerId = ev.getPointerId(0); - velocityTracker.computeCurrentVelocity(1000, mMaximumFlingVelocity); - final float velocityY = velocityTracker.getYVelocity(pointerId); - final float velocityX = velocityTracker.getXVelocity(pointerId); - - if ((Math.abs(velocityY) > mMinimumFlingVelocity) - || (Math.abs(velocityX) > mMinimumFlingVelocity)){ - handled = mListener.onFling(mCurrentDownEvent, ev, velocityX, velocityY); - } - } - if (mPreviousUpEvent != null) { - mPreviousUpEvent.recycle(); - } - // Hold the event we obtained above - listeners may have changed the original. - mPreviousUpEvent = currentUpEvent; - if (mVelocityTracker != null) { - // This may have been cleared when we called out to the - // application above. - mVelocityTracker.recycle(); - mVelocityTracker = null; - } - mIsDoubleTapping = false; - mDeferConfirmSingleTap = false; - mHandler.removeMessages(SHOW_PRESS); - mHandler.removeMessages(LONG_PRESS); - mListener.onFinishedLongPress(); - break; - - case MotionEvent.ACTION_CANCEL: - mListener.onCancel(); - cancel(); - break; - } - - if (!handled && mInputEventConsistencyVerifier != null) { - mInputEventConsistencyVerifier.onUnhandledEvent(ev, 0); - } - return handled; - } - - private void cancel() { - mHandler.removeMessages(SHOW_PRESS); - mHandler.removeMessages(LONG_PRESS); - mHandler.removeMessages(TAP); - mVelocityTracker.recycle(); - mVelocityTracker = null; - mIsDoubleTapping = false; - mStillDown = false; - mAlwaysInTapRegion = false; - mAlwaysInBiggerTapRegion = false; - mDeferConfirmSingleTap = false; - if (mInLongPress) { - mInLongPress = false; - } - } - - private void cancelTaps() { - mHandler.removeMessages(SHOW_PRESS); - mHandler.removeMessages(LONG_PRESS); - mHandler.removeMessages(TAP); - mIsDoubleTapping = false; - mAlwaysInTapRegion = false; - mAlwaysInBiggerTapRegion = false; - mDeferConfirmSingleTap = false; - if (mInLongPress) { - mInLongPress = false; - } - } - - private boolean isConsideredDoubleTap(MotionEvent firstDown, MotionEvent firstUp, - MotionEvent secondDown) { - if (!mAlwaysInBiggerTapRegion) { - return false; - } - - final long deltaTime = secondDown.getEventTime() - firstUp.getEventTime(); - if (deltaTime > getDoubleTapTimeout() || deltaTime < getDoubleTapMinTime()) { - return false; - } - - int deltaX = (int) firstDown.getX() - (int) secondDown.getX(); - int deltaY = (int) firstDown.getY() - (int) secondDown.getY(); - return (deltaX * deltaX + deltaY * deltaY < mDoubleTapSlopSquare); - } - - private void dispatchLongPress() { - mHandler.removeMessages(TAP); - mDeferConfirmSingleTap = false; - mInLongPress = true; - mListener.onLongPress(mCurrentDownEvent); - } -} - diff --git a/src/com/android/systemui/navigation/fling/FlingGestureHandler.java b/src/com/android/systemui/navigation/fling/FlingGestureHandler.java deleted file mode 100644 index 67c130c..0000000 --- a/src/com/android/systemui/navigation/fling/FlingGestureHandler.java +++ /dev/null @@ -1,462 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Fires actions based on detected motion. calculates long and short swipes - * as well as double taps. User can set "long swipe thresholds" for custom - * long swipe definition. - * - */ - -package com.android.systemui.navigation.fling; - -import java.util.HashSet; -import java.util.Set; - -import com.android.systemui.navigation.fling.FlingGestureDetector.OnGestureListener; -import com.android.systemui.navigation.utils.SmartObserver.SmartObservable; -import com.android.internal.utils.du.DUActionUtils; - -import android.content.ContentResolver; -import android.content.Context; -import android.content.res.Resources; -import android.net.Uri; -import android.os.Handler; -import android.os.UserHandle; -import android.provider.Settings; -import android.util.Log; -import android.view.MotionEvent; -import android.view.ViewConfiguration; -import android.view.View; - -public class FlingGestureHandler implements OnGestureListener, SmartObservable { -/* - * Callback for listeners that are interested in receiving Fling taps and gestures - * - */ - public interface Swipeable { - public boolean onDoubleTapEnabled(); - - public void onSingleLeftPress(); - - public void onSingleRightPress(); - - public void onDoubleLeftTap(); - - public void onDoubleRightTap(); - - public void onLongLeftPress(); - - public void onLongRightPress(); - - public void onShortLeftSwipe(); - - public void onLongLeftSwipe(); - - public void onShortRightSwipe(); - - public void onLongRightSwipe(); - - public void onUpRightSwipe(); - - public void onUpLeftSwipe(); - - public void onDownPreloadRecents(boolean isRight); - - public void onScrollPreloadRecents(); - - public void onCancelPreloadRecents(); - - public void cancelLongPress(); - } - - private static Set<Uri> sUris = new HashSet<Uri>(); - static { - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGSWIPE_THRESHOLD_LEFT_LAND)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGSWIPE_THRESHOLD_RIGHT_LAND)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGSWIPE_THRESHOLD_LEFT_PORT)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGSWIPE_THRESHOLD_RIGHT_PORT)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGSWIPE_THRESHOLD_UP_LAND)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGSWIPE_THRESHOLD_DOWN_LAND)); - } - - private static String TAG = "FlingGestureHandler"; - private static boolean DEBUG = false; - - // AOSP DT timeout feels a bit slow on nx - private static final int DT_TIMEOUT = ViewConfiguration.getDoubleTapTimeout() - 100; - - // in-house double tap logic - private Handler mHandler = new Handler(); - private boolean mIsDoubleTapPending; - private boolean mWasConsumed; - - // long swipe thresholds from user settings or default config - // - // left and right thresholds for tablets when device orientation is landscape - private float mLeftLand; - private float mRightLand; - // left and right thresholds for all devices when device orientation is portrait - private float mLeftPort; - private float mRightPort; - // up and down thresholds for phones when device orientation is landscape and navbar is vertical - private float mUpVert; - private float mDownVert; - - // pass Fling events to listener - private Swipeable mReceiver; - // swipe analysis and state - private final FlingSwipe mFlingSwipe = new FlingSwipe(); - private Context mContext; - - // for width/height logic - private View mHost; - // is navbar in "left in landscape" mode (vertical bar on left instead of right) - private boolean mLeftInLandscape; - private final boolean mIsTablet; - - private Runnable mDoubleTapLeftTimeout = new Runnable() { - @Override - public void run() { - mWasConsumed = false; - mIsDoubleTapPending = false; - mReceiver.onSingleLeftPress(); - } - }; - - private Runnable mDoubleTapRightTimeout = new Runnable() { - @Override - public void run() { - mWasConsumed = false; - mIsDoubleTapPending = false; - mReceiver.onSingleRightPress(); - } - }; - - public FlingGestureHandler(Context context, Swipeable swiper, View host, boolean isTablet) { - mContext = context; - mReceiver = swiper; - mHost = host; - mIsTablet = isTablet; - updateSettings(); - } - - // special case: double tap for screen off we never capture up motion event - // maybe use broadcast receiver instead on depending on host - public void onScreenStateChanged(boolean screeOn) { - mWasConsumed = false; - } - - public void setLeftInLandscape(boolean leftInLandscape) { - mLeftInLandscape = leftInLandscape; - } - - public void setOnSwipeListener(Swipeable swiper) { - if (swiper != null) { - mReceiver = swiper; - } - } - - @Override - public boolean onDown(MotionEvent e) { - boolean isRight = isRightSide(e.getX(), e.getY()); - if (mIsDoubleTapPending) { - mIsDoubleTapPending = false; - mWasConsumed = true; - mHandler.removeCallbacks(mDoubleTapLeftTimeout); - mHandler.removeCallbacks(mDoubleTapRightTimeout); - if (isRight) { - mReceiver.onDoubleRightTap(); - } else { - mReceiver.onDoubleLeftTap(); - } - return true; - } - mReceiver.onDownPreloadRecents(isRight); - return false; - } - - @Override - public void onShowPress(MotionEvent e) { - // TODO Auto-generated method stub - } - - @Override - public boolean onSingleTapUp(MotionEvent e) { - boolean isRight = isRightSide(e.getX(), e.getY()); - if (mReceiver.onDoubleTapEnabled()) { - if (mWasConsumed) { - mWasConsumed = false; - return true; - } - mIsDoubleTapPending = true; - if (isRight) { - mHandler.postDelayed(mDoubleTapRightTimeout, DT_TIMEOUT); - } else { - mHandler.postDelayed(mDoubleTapLeftTimeout, DT_TIMEOUT); - } - } else { - if (isRight) { - mReceiver.onSingleRightPress(); - } else { - mReceiver.onSingleLeftPress(); - } - } - return true; - } - - @Override - public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean onFirstScroll() { - mReceiver.onScrollPreloadRecents(); - return false; - } - - @Override - public boolean onCancel() { - mReceiver.onCancelPreloadRecents(); - mReceiver.cancelLongPress(); - return false; - } - - @Override - public void onLongPress(MotionEvent e) { - boolean isRight = isRightSide(e.getX(), e.getY()); - if (isRight) { - mReceiver.onLongRightPress(); - } else { - mReceiver.onLongLeftPress(); - } - } - - @Override - public void onFinishedLongPress() { - mReceiver.cancelLongPress(); - } - - @Override - public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, - float velocityY) { - if (e1 == null) return true; - - mFlingSwipe.process(e1, e2); - - if (mFlingSwipe.swipeDirection == SwipeDirection.UP) { - if (mFlingSwipe.isSwipeOnRight()) { - mReceiver.onUpRightSwipe(); - } else { - mReceiver.onUpLeftSwipe(); - } - } else if (mFlingSwipe.swipeDirection == SwipeDirection.LEFT) { - if (mFlingSwipe.isThisLongSwipe()) { - mReceiver.onLongLeftSwipe(); - } else { - mReceiver.onShortLeftSwipe(); - } - } else if (mFlingSwipe.swipeDirection == SwipeDirection.RIGHT) { - if (mFlingSwipe.isThisLongSwipe()) { - mReceiver.onLongRightSwipe(); - } else { - mReceiver.onShortRightSwipe(); - } - } - return true; - } - - private boolean isHorizontal() { - return mHost.getWidth() > mHost.getHeight(); - } - - /* - * Used for tap and up/down swipe events - * NOTE: when bar is vertical, "right" side - * refers to top half of bar and "left" refers - * to the bottom half - */ - private boolean isRightSide(float x, float y) { - final boolean isVertical = !isHorizontal(); - float length = isVertical ? mHost.getHeight() : mHost.getWidth(); - float pos = isVertical ? y : x; - length /= 2; - return isVertical ? pos < length : pos > length; - } - - private void updateSettings() { - ContentResolver resolver = mContext.getContentResolver(); - Resources res = mContext.getResources(); - - mLeftLand = (float) (Settings.Secure.getIntForUser( - resolver, Settings.Secure.FLING_LONGSWIPE_THRESHOLD_LEFT_LAND, - 25, UserHandle.USER_CURRENT) * 0.01f); - - mRightLand = (float) (Settings.Secure.getIntForUser( - resolver, Settings.Secure.FLING_LONGSWIPE_THRESHOLD_RIGHT_LAND, - 25, UserHandle.USER_CURRENT) * 0.01f); - - mLeftPort = (float) (Settings.Secure.getIntForUser( - resolver, Settings.Secure.FLING_LONGSWIPE_THRESHOLD_LEFT_PORT, - mIsTablet ? 30 : 40, UserHandle.USER_CURRENT) * 0.01f); - - mRightPort = (float) (Settings.Secure.getIntForUser( - resolver, Settings.Secure.FLING_LONGSWIPE_THRESHOLD_RIGHT_PORT, - mIsTablet ? 30 : 40, UserHandle.USER_CURRENT) * 0.01f); - - mUpVert = (float) (Settings.Secure.getIntForUser( - resolver, Settings.Secure.FLING_LONGSWIPE_THRESHOLD_UP_LAND, - 40, UserHandle.USER_CURRENT) * 0.01f); - - mDownVert = (float) (Settings.Secure.getIntForUser( - resolver, Settings.Secure.FLING_LONGSWIPE_THRESHOLD_DOWN_LAND, - 40, UserHandle.USER_CURRENT) * 0.01f); - } - - @Override - public Set<Uri> onGetUris() { - return sUris; - } - - @Override - public void onChange(Uri uri) { - updateSettings(); - } - - private enum SwipeDirection { - LEFT, - RIGHT, - UP - } - - // This class will help despagettify motion handling, maybe ;p - private class FlingSwipe { - // minimum amount of bar to swipe to validate a vertical swipe - private static final float VERTICAL_SWIPE_THRESHOLD = 0.80f; - // Maximum swipe angle before fall over into non-vertical swipes - private static final double VERTICAL_SWIPE_DEGREES = 30.0d; - - // direction of swipe, either actual or treated as such (vertical bar) - private SwipeDirection swipeDirection; - - // was vertical swipe on right/left side - private boolean mVerticalSwipeOnRight; - - // Between -1.0 to 1.0 - percent of bar swiped - however we expose only absolute value - - // direction should be checked with getSwipeDirection - private float horizontalSwipePercent; - - // Between -1.0 to 1.0 - percent of bar swiped - however we expose only absolute value - - // direction should be checked with getSwipeDirection - private float verticalSwipePercent; - - // the default or user set long swipe threshold for this long swipe event - private float longSwipeThreshold; - - public FlingSwipe(){} - - void process(MotionEvent start, MotionEvent end) { - // bar and device states - final boolean isNavbarHorizontal = isHorizontal(); - final boolean isLandscape = DUActionUtils.isLandscape(mContext); - final float xStart = start.getX(); - final float yStart = start.getY(); - final float xDist = end.getX() - xStart; - final float yDist = end.getY() - yStart; - - // how much bar long side did the swipe cover - horizontalSwipePercent = isNavbarHorizontal ? xDist / mHost.getWidth() : - yDist / mHost.getHeight(); - // how much bar short side was covered - verticalSwipePercent = isNavbarHorizontal ? yDist / mHost.getHeight() : - xDist / mHost.getWidth(); - // which side was the swipe started from - mVerticalSwipeOnRight = isRightSide(xStart, yStart); - - final boolean isVerticalSwipe = validateVerticalSwipe(isNavbarHorizontal, isLandscape, xDist, yDist); - if(!isVerticalSwipe) { - // normal side to side flinging action - // first check landscape conditions - if (isLandscape) { - // is bar horizontal (tablet) - if (isNavbarHorizontal) { - if (horizontalSwipePercent >= 0) { - swipeDirection = SwipeDirection.RIGHT; - longSwipeThreshold = mRightLand; - } else { - swipeDirection = SwipeDirection.LEFT; - longSwipeThreshold = mLeftLand; - } - } else { - // vertical bar on phones - if (horizontalSwipePercent >= 0) { - swipeDirection = SwipeDirection.LEFT; - longSwipeThreshold = mDownVert; - } else { - swipeDirection = SwipeDirection.RIGHT; - longSwipeThreshold = mUpVert; - } - } - } else { - // portrait orientation - if (horizontalSwipePercent >= 0) { - swipeDirection = SwipeDirection.RIGHT; - longSwipeThreshold = mRightPort; - } else { - swipeDirection = SwipeDirection.LEFT; - longSwipeThreshold = mLeftPort; - } - } - } - } - - private boolean validateVerticalSwipe(boolean isHorizontal, boolean isLandscape, float xDistance, float yDistance) { - // if we don't meet minimum threshold and we are too sloppy with our vertical swipe - // return false to continue processing - if (Math.abs(verticalSwipePercent) < VERTICAL_SWIPE_THRESHOLD) { - return false; - } - // calculate the angle of the swipe. If the angle exceeds 30 degrees, it is an invalid - // vertical swipe and the event will be handled as a long or short swipe - double degrees = Math.abs(Math.toDegrees(Math.atan(((isHorizontal ? xDistance : yDistance) / (isHorizontal ? yDistance : xDistance))))); - if(DEBUG) { - Log.e(TAG, "Validating a vertical swipe of " + String.valueOf(degrees) + " degrees"); - } - if (degrees > VERTICAL_SWIPE_DEGREES) { - return false; - } - // conditions which must be met for a valid vertical swipe - if ((isHorizontal && verticalSwipePercent <= 0) // horizontal and direction is up - || (!isHorizontal && mLeftInLandscape && verticalSwipePercent >= 0) // vertical bar on left and direction is right - || (!isHorizontal && !mLeftInLandscape && verticalSwipePercent <= 0)) { // vertical bar on right and direction is left - swipeDirection = SwipeDirection.UP; - return true; - } - return false; - } - - public boolean isThisLongSwipe() { - return Math.abs(horizontalSwipePercent) > longSwipeThreshold; - } - - public boolean isSwipeOnRight() { - return mVerticalSwipeOnRight; - } - } -} diff --git a/src/com/android/systemui/navigation/fling/FlingLogoController.java b/src/com/android/systemui/navigation/fling/FlingLogoController.java deleted file mode 100644 index b8720d0..0000000 --- a/src/com/android/systemui/navigation/fling/FlingLogoController.java +++ /dev/null @@ -1,369 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Manage logo settings and state. Public helper methods to simplify - * animations and visibility. - * - */ - -package com.android.systemui.navigation.fling; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import com.android.systemui.R; -import com.android.systemui.navigation.BaseNavigationBar; -import com.android.systemui.navigation.fling.FlingLogoView; -import com.android.systemui.navigation.fling.FlingView; -import com.android.systemui.navigation.utils.SmartObserver.SmartObservable; -import com.android.systemui.statusbar.policy.KeyButtonDrawable; -import com.android.internal.utils.du.Config.ActionConfig; -import com.android.internal.utils.du.Config.ButtonConfig; -import com.android.internal.utils.du.DUActionUtils; - -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PaintFlagsDrawFilter; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.os.UserHandle; -import android.provider.Settings; -import android.text.TextUtils; -import android.util.TypedValue; -import android.view.ViewGroup; -import android.view.animation.Animation; -import android.view.animation.LinearInterpolator; -import android.view.animation.ScaleAnimation; -import android.view.animation.Animation.AnimationListener; -import android.widget.ImageView; -import android.widget.ImageView.ScaleType; - -public class FlingLogoController implements SmartObservable { - private static final int LOGO_ANIMATE_HIDE = 1; - private static final int LOGO_ANIMATE_SHOW = 2; - - private static final int LOCK_DISABLED = 0; - private static final int LOCK_SHOW = 1; - private static final int LOCK_HIDDEN = 2; - - public static final String FLING_LOGO_URI = "fling_custom_icon_config"; - - private static Set<Uri> sUris = new HashSet<Uri>(); - static { - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LOGO_VISIBLE)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LOGO_ANIMATES)); - //sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LOGO_COLOR)); - sUris.add(Settings.Secure.getUriFor(FLING_LOGO_URI)); - } - - private Context mContext; - private FlingView mHost; - private FlingLogoView mLogoView; - private ButtonConfig mLogoConfig; - - private boolean mLogoEnabled; - private boolean mAnimateTouchEnabled; - private int mLogoColor = -1; - private int mVisibilityLock; - private Animation mShow = getSpinAnimation(LOGO_ANIMATE_SHOW); - private Animation mHide = getSpinAnimation(LOGO_ANIMATE_HIDE); - - public FlingLogoController(FlingView host) { - mHost = host; - mContext = host.getContext(); - initialize(); - } - - public void setLogoView(FlingLogoView view) { - mLogoView = view; - mLogoView.setLogoColor(mLogoColor); - animateToCurrentState(); - } - - private void animateToCurrentState() { - if (mLogoEnabled) { - if (mVisibilityLock == LOCK_HIDDEN) { - hide(null); - } else { - show(null); - } - } else { - hide(null); - } - } - - private void show(AnimationListener listener) { - mLogoView.animate().cancel(); - if (listener != null) { - mShow.setAnimationListener(listener); - } - mLogoView.startAnimation(mShow); - } - - private void hide(AnimationListener listener) { - mLogoView.animate().cancel(); - if (listener != null) { - mHide.setAnimationListener(listener); - } - mLogoView.startAnimation(mHide); - } - - private boolean isLockEnabled() { - return mVisibilityLock != LOCK_DISABLED; - } - - private void setEnabled(boolean enabled) { - mLogoEnabled = enabled; - animateToCurrentState(); - } - - public boolean isEnabled() { - return mLogoEnabled; - } - - public void onTouchHide(AnimationListener listener) { - if (!mLogoEnabled || !mAnimateTouchEnabled || isLockEnabled()) { - return; - } - hide(listener); - } - - public void onTouchShow(AnimationListener listener) { - if (!mLogoEnabled || !mAnimateTouchEnabled || isLockEnabled()) { - return; - } - show(listener); - } - - public void showAndLock(AnimationListener listener) { - mVisibilityLock = LOCK_SHOW; - if (mLogoEnabled) { - show(listener); - } - } - - public void hideAndLock(AnimationListener listener) { - mVisibilityLock = LOCK_HIDDEN; - if (mLogoEnabled) { - hide(listener); - } - } - - public void unlockAndShow(AnimationListener listener) { - mVisibilityLock = LOCK_DISABLED; - if (mLogoEnabled) { - show(listener); - } - } - - public void unlockAndHide(AnimationListener listener) { - mVisibilityLock = LOCK_DISABLED; - if (mLogoEnabled) { - hide(listener); - } - } - - @Override - public Set<Uri> onGetUris() { - return sUris; - } - - @Override - public void onChange(Uri uri) { - updateSettings(); - } - - private void updateSettings() { - boolean enabled = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LOGO_VISIBLE, 1, UserHandle.USER_CURRENT) == 1; - boolean spinOnTouch = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LOGO_ANIMATES, 1, UserHandle.USER_CURRENT) == 1; - /*mLogoColor = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LOGO_COLOR, -1, UserHandle.USER_CURRENT);*/ - mLogoConfig = ButtonConfig.getButton(mContext, FLING_LOGO_URI, true); - setLogoIcon(); - mLogoView.setLogoColor(mLogoColor); - if (mLogoEnabled != enabled) { - setEnabled(enabled); - } - if (mAnimateTouchEnabled != spinOnTouch) { - mAnimateTouchEnabled = spinOnTouch; - } - } - - private void initialize() { - mLogoEnabled = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LOGO_VISIBLE, 1, UserHandle.USER_CURRENT) == 1; - mAnimateTouchEnabled = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LOGO_ANIMATES, 1, UserHandle.USER_CURRENT) == 1; - /*mLogoColor = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LOGO_COLOR, -1, UserHandle.USER_CURRENT);*/ - mLogoConfig = ButtonConfig.getButton(mContext, FLING_LOGO_URI, true); - } - - public void updateLogo(FlingView fv, FlingLogoView lv) { - mHost = fv; - mContext = fv.getContext(); - mLogoConfig = ButtonConfig.getButton(mContext, FLING_LOGO_URI, true); - setLogoView(lv); - setLogoIcon(); - } - - void setLogoIcon() { - final ViewGroup current = (ViewGroup) mHost.getCurrentView(); - final ViewGroup hidden = (ViewGroup) mHost.getHiddenView(); - ImageView currentLogo = (ImageView)current.findViewById(R.id.fling_console); - ImageView hiddenLogo = (ImageView)hidden.findViewById(R.id.fling_console); - currentLogo.setImageDrawable(null); - currentLogo.setImageDrawable(getCurrentDrawable()); - hiddenLogo.setImageDrawable(null); - hiddenLogo.setImageDrawable(getCurrentDrawable()); - updateButtonScalingAndPadding(currentLogo, mLogoConfig, mHost.isLandscape()); - updateButtonScalingAndPadding(hiddenLogo, mLogoConfig, !mHost.isLandscape()); - - ImageView currentRotationLogo = (ImageView)current.findViewById(R.id.rotationLogo); - ImageView hiddenRotationLogo = (ImageView)hidden.findViewById(R.id.rotationLogo); - currentRotationLogo.setImageDrawable(null); - currentRotationLogo.setImageDrawable(getCurrentRotationDrawable()); - hiddenRotationLogo.setImageDrawable(null); - hiddenRotationLogo.setImageDrawable(getCurrentRotationDrawable()); - updateButtonScalingAndPadding(currentRotationLogo, mLogoConfig, mHost.isLandscape()); - updateButtonScalingAndPadding(hiddenRotationLogo, mLogoConfig, !mHost.isLandscape()); - } - - Drawable getCurrentDrawable() { - KeyButtonDrawable d = null; - Drawable light = null; - Drawable dark = null; - if (mLogoConfig.hasCustomIcon() && - getConfigCustomIcon() != null) { - light = getBitmapDrawable(mContext, getConfigCustomIcon()).mutate(); - dark = getBitmapDrawable(mContext, getConfigCustomIcon()).mutate(); - dark.setColorFilter(new PorterDuffColorFilter(0x4D353535, PorterDuff.Mode.SRC_ATOP)); - d = KeyButtonDrawable.create(light, dark); - return d; - } - - light = mHost.mResourceMap.mFlingLogo; - dark = mHost.mResourceMap.mFlingLogoDark; - d = KeyButtonDrawable.create(light, dark); - return d; - } - - Drawable getCurrentRotationDrawable() { - Drawable light = mHost.mResourceMap.mFlingRotationLogo; - Drawable dark = mHost.mResourceMap.mFlingRotationLogoDark; - KeyButtonDrawable d = KeyButtonDrawable.create(light, dark); - return d; - } - - // Helper to flatten AdaptiveIconDrawable layers to a single drawable - private static BitmapDrawable getBitmapDrawable(Context ctx, Drawable d) { - if (d instanceof BitmapDrawable) { - return (BitmapDrawable) d; - } - final Canvas canvas = new Canvas(); - canvas.setDrawFilter(new PaintFlagsDrawFilter(Paint.ANTI_ALIAS_FLAG, - Paint.FILTER_BITMAP_FLAG)); - - Bitmap bmResult = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), - Bitmap.Config.ARGB_8888); - canvas.setBitmap(bmResult); - d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); - d.draw(canvas); - return new BitmapDrawable(ctx.getResources(), bmResult); - } - - private Drawable getConfigCustomIcon() { - return mLogoConfig.getActionConfig(ActionConfig.PRIMARY).getCurrentCustomIcon(mContext); - } - - public static Animation getSpinAnimation(int mode) { - final boolean makeHidden = mode == LOGO_ANIMATE_HIDE; - final float from = makeHidden ? 1.0f : 0.0f; - final float to = makeHidden ? 0.0f : 1.0f; - Animation ani = new ScaleAnimation(from, to, from, to, Animation.RELATIVE_TO_SELF, - 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); - ani.setInterpolator(new LinearInterpolator()); - ani.setDuration(150); - ani.setFillAfter(true); - - return ani; - } - - static int[] getAppIconPadding(Context ctx) { - int[] padding = new int[4]; - // left - padding[0] = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, ctx - .getResources() - .getDisplayMetrics()); - // top - padding[1] = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 4, ctx - .getResources() - .getDisplayMetrics()); - // right - padding[2] = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 2, ctx - .getResources() - .getDisplayMetrics()); - // bottom - padding[3] = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, - ctx.getResources() - .getDisplayMetrics()); - return padding; - } - - public static void applyPaddingToView(ImageView v, int[] padding) { - v.setPaddingRelative(padding[0], padding[1], - padding[2], padding[3]); - } - - static boolean buttonNeedsCustomPadding(ButtonConfig config) { - boolean hasCustomIcon = config.hasCustomIcon(); - boolean hasNonSystemIcon = !config.isSystemAction(); - return hasCustomIcon || hasNonSystemIcon; - } - - public static void updateButtonScalingAndPadding(ImageView v, ButtonConfig config, boolean landscape) { - // all non-system action icons need some extra padding/scaling work - final int[] appIconPadding = getAppIconPadding(v.getContext()); - if (buttonNeedsCustomPadding(config)) { - if (landscape && !BaseNavigationBar.sIsTablet) { - v.setPaddingRelative(appIconPadding[1], appIconPadding[0], - appIconPadding[3], appIconPadding[2]); - } else { - v.setPaddingRelative(appIconPadding[0], appIconPadding[1], - appIconPadding[2], appIconPadding[3]); - } - v.setScaleType(ScaleType.CENTER_INSIDE); - } else { - if (landscape && BaseNavigationBar.sIsTablet) { - v.setPaddingRelative(appIconPadding[0], appIconPadding[1], - appIconPadding[2], appIconPadding[3]); - v.setScaleType(ScaleType.CENTER_INSIDE); - } - v.setScaleType(BaseNavigationBar.sIsTablet ? ScaleType.CENTER_INSIDE : ScaleType.CENTER); - } - } -} diff --git a/src/com/android/systemui/navigation/fling/FlingLogoView.java b/src/com/android/systemui/navigation/fling/FlingLogoView.java deleted file mode 100644 index 4eaebff..0000000 --- a/src/com/android/systemui/navigation/fling/FlingLogoView.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * TeamEos logo doubles as the Fling feature indicator! Most state is managed - * by FlingLogoController - * - */ - -package com.android.systemui.navigation.fling; - -import android.content.Context; -import android.graphics.PorterDuff.Mode; -import android.graphics.drawable.Drawable; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.widget.ImageView; - -public class FlingLogoView extends ImageView { - - public static final String TAG = FlingLogoView.class.getSimpleName(); - - private int mLogoColor = -1; - - public FlingLogoView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public FlingLogoView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - setBackground(null); - } - - @Override - public boolean onTouchEvent(MotionEvent ev) { - // TEMP: pass all events to NX, for now - return false; - } - - public int getLogoColor() { - return mLogoColor; - } - - public void setLogoColor(int color) { - mLogoColor = color; - /*if (color == -1) { - getDrawable().setColorFilter(null); - } else { - Drawable logo = getDrawable(); - logo.setColorFilter(color, Mode.SRC_ATOP); - }*/ - } -} diff --git a/src/com/android/systemui/navigation/fling/FlingRipple.java b/src/com/android/systemui/navigation/fling/FlingRipple.java deleted file mode 100644 index 0bc5f74..0000000 --- a/src/com/android/systemui/navigation/fling/FlingRipple.java +++ /dev/null @@ -1,369 +0,0 @@ -/* - * Copyright (C) 2014 Balys Valentukevicius - * - * 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. - * - * Heavily modified for TeamEos NX implementation by Randall Rushing aka Bigrushdog - * - */ - -package com.android.systemui.navigation.fling; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Point; -import android.graphics.Rect; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; -import android.util.Property; -import android.util.TypedValue; -import android.view.MotionEvent; -import android.view.View; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.DecelerateInterpolator; -import android.view.animation.LinearInterpolator; - -public class FlingRipple implements View.OnTouchListener { - private static final int DEFAULT_DURATION = 350; - private static final int DEFAULT_FADE_DURATION = 75; - private static final float DEFAULT_DIAMETER_DP = 10; - private static final float DEFAULT_ALPHA = 0.4f; - private static final int DEFAULT_COLOR = Color.WHITE; - private static final int DEFAULT_BACKGROUND = 0x22ffffff; - private static final boolean DEFAULT_HOVER = true; - private static final boolean DEFAULT_DELAY_CLICK = true; - private static final boolean DEFAULT_PERSISTENT = false; - private static final int FADE_EXTRA_DELAY = 50; - private static final long HOVER_DURATION = 2500; - - private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); - private final Rect bounds = new Rect(); - - private int rippleColor; - private boolean rippleHover; - private int rippleDiameter; - private int rippleDuration; - private int rippleAlpha; - private boolean rippleDelayClick; - private int rippleFadeDuration; - private boolean ripplePersistent; - private Drawable rippleBackground; - private Point currentCoords = new Point(); - private Point previousCoords = new Point(); - private AnimatorSet rippleAnimator; - private ObjectAnimator hoverAnimator; - private float radius; - - private boolean eventCancelled; - private boolean mDrawBackground = false; - private View mHost; - - public FlingRipple(View v) { - mHost = v; - init(); - } - - private void init() { - final Resources res = mHost.getResources(); - - rippleColor = DEFAULT_COLOR; - rippleBackground = new ColorDrawable(adjustBgAlpha(rippleColor, 0.15f)); - rippleAlpha = (int) (255 * DEFAULT_ALPHA); - - rippleDiameter = (int) dpToPx(res, DEFAULT_DIAMETER_DP); - rippleHover = DEFAULT_HOVER; - rippleDuration = DEFAULT_DURATION; - rippleDelayClick = DEFAULT_DELAY_CLICK; - rippleFadeDuration = DEFAULT_FADE_DURATION; - ripplePersistent = DEFAULT_PERSISTENT; - - paint.setColor(rippleColor); - paint.setAlpha(rippleAlpha); - } - - public void updateResources(Resources res) { - rippleColor = DEFAULT_COLOR; - rippleBackground = new ColorDrawable(adjustBgAlpha(rippleColor, 0.15f)); - rippleBackground.setBounds(bounds); - paint.setColor(rippleColor); - paint.setAlpha(rippleAlpha); - mHost.invalidate(); - } - - public void updateColor(int color) { - rippleColor = color; - rippleBackground = new ColorDrawable(adjustBgAlpha(color, 0.15f)); - rippleBackground.setBounds(bounds); - paint.setColor(color); - paint.setAlpha(rippleAlpha); - mHost.invalidate(); - } - - public int adjustBgAlpha(int color, float factor) { - int alpha = Math.round(Color.alpha(color) * factor); - int red = Color.red(color); - int green = Color.green(color); - int blue = Color.blue(color); - return Color.argb(alpha, red, green, blue); - } - - @Override - public boolean onTouch(View v, MotionEvent event) { - final int action = event.getAction(); - boolean isEventInBounds = bounds.contains((int) event.getX(), (int) event.getY()); - if (isEventInBounds) { - previousCoords.set(currentCoords.x, currentCoords.y); - currentCoords.set((int) event.getX(), (int) event.getY()); - } - switch (action) { - case MotionEvent.ACTION_UP: - if (isEventInBounds) { - startRipple(null); - } else if (!rippleHover) { - setRadius(0); - } - break; - case MotionEvent.ACTION_DOWN: - eventCancelled = false; - mDrawBackground = true; - if (rippleHover) { - startHover(); - } - break; - case MotionEvent.ACTION_CANCEL: - if (rippleHover) { - startRipple(null); - } - break; - case MotionEvent.ACTION_MOVE: - if (rippleHover) { - if (isEventInBounds && !eventCancelled) { - mHost.invalidate(); - } else if (!isEventInBounds) { - startRipple(null); - } - } - if (!isEventInBounds) { - if (hoverAnimator != null) { - hoverAnimator.cancel(); - } - eventCancelled = true; - } - break; - } - return false; - } - - public void onSizeChanged(int w, int h, int oldw, int oldh) { - bounds.set(0, 0, w, h); - rippleBackground.setBounds(bounds); - } - - public void onDraw(Canvas canvas) { - if (mDrawBackground) { - rippleBackground.draw(canvas); - } - canvas.drawCircle(currentCoords.x, currentCoords.y, radius, paint); - } - - static int getSmallerDimen(int width, int height) { - if (width <= 0 || height <= 0) { - return 35; - } else { - return width > height ? height : width; - } - } - - static float dpToPx(Resources resources, float dp) { - return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, - resources.getDisplayMetrics()); - } - - private void startRipple(final Runnable animationEndRunnable) { - if (eventCancelled) - return; - - float endRadius = getEndRadius(); - - cancelAnimations(); - - rippleAnimator = new AnimatorSet(); - rippleAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - if (!ripplePersistent) { - setRadius(0); - setRippleAlpha(rippleAlpha); - } - if (animationEndRunnable != null && rippleDelayClick) { - animationEndRunnable.run(); - } - mDrawBackground = false; - mHost.invalidate(); - } - }); - - ObjectAnimator ripple = ObjectAnimator.ofFloat(this, radiusProperty, radius, endRadius); - ripple.setDuration(rippleDuration); - ripple.setInterpolator(new DecelerateInterpolator()); - ObjectAnimator fade = ObjectAnimator.ofInt(this, circleAlphaProperty, rippleAlpha, 0); - fade.setDuration(rippleFadeDuration); - fade.setInterpolator(new AccelerateInterpolator()); - fade.setStartDelay(rippleDuration - rippleFadeDuration - FADE_EXTRA_DELAY); - - if (ripplePersistent) { - rippleAnimator.play(ripple); - } else if (getRadius() > endRadius) { - fade.setStartDelay(0); - rippleAnimator.play(fade); - } else { - rippleAnimator.playTogether(ripple, fade); - } - rippleAnimator.start(); - } - - private void startHover() { - if (eventCancelled) - return; - - if (hoverAnimator != null) { - hoverAnimator.cancel(); - } - final float radius = (float) (Math.sqrt(Math.pow(mHost.getWidth(), 2) - + Math.pow(mHost.getHeight(), 2)) * 1.2f); - hoverAnimator = ObjectAnimator.ofFloat(this, radiusProperty, rippleDiameter, radius) - .setDuration(HOVER_DURATION); - hoverAnimator.setInterpolator(new LinearInterpolator()); - hoverAnimator.start(); - } - - private void cancelAnimations() { - if (rippleAnimator != null) { - rippleAnimator.cancel(); - rippleAnimator.removeAllListeners(); - } - - if (hoverAnimator != null) { - hoverAnimator.cancel(); - } - } - - private float getEndRadius() { - final int width = mHost.getWidth(); - final int height = mHost.getHeight(); - - final int halfWidth = width / 2; - final int halfHeight = height / 2; - - final float radiusX = halfWidth > currentCoords.x ? width - currentCoords.x - : currentCoords.x; - final float radiusY = halfHeight > currentCoords.y ? height - currentCoords.y - : currentCoords.y; - - return (float) Math.sqrt(Math.pow(radiusX, 2) + Math.pow(radiusY, 2)) * 1.2f; - } - - private Property<FlingRipple, Float> radiusProperty = new Property<FlingRipple, Float>(Float.class, - "radius") { - @Override - public Float get(FlingRipple object) { - return object.getRadius(); - } - - @Override - public void set(FlingRipple object, Float value) { - object.setRadius(value); - } - }; - - private float getRadius() { - return radius; - } - - public void setRadius(float radius) { - this.radius = radius; - mHost.invalidate(); - } - - private Property<FlingRipple, Integer> circleAlphaProperty = new Property<FlingRipple, Integer>( - Integer.class, "rippleAlpha") { - @Override - public Integer get(FlingRipple object) { - return object.getRippleAlpha(); - } - - @Override - public void set(FlingRipple object, Integer value) { - object.setRippleAlpha(value); - } - }; - - public int getRippleAlpha() { - return paint.getAlpha(); - } - - public void setRippleAlpha(Integer rippleAlpha) { - paint.setAlpha(rippleAlpha); - mHost.invalidate(); - } - - public void setRippleColor(int rippleColor) { - this.rippleColor = rippleColor; - paint.setColor(rippleColor); - paint.setAlpha(rippleAlpha); - mHost.invalidate(); - } - - public void setRippleDiameter(int rippleDiameter) { - this.rippleDiameter = rippleDiameter; - } - - public void setRippleDuration(int rippleDuration) { - this.rippleDuration = rippleDuration; - } - - public void setRippleBackground(int color) { - rippleBackground = new ColorDrawable(color); - rippleBackground.setBounds(bounds); - mHost.invalidate(); - } - - public void setRippleHover(boolean rippleHover) { - this.rippleHover = rippleHover; - } - - public void setRippleDelayClick(boolean rippleDelayClick) { - this.rippleDelayClick = rippleDelayClick; - } - - public void setRippleFadeDuration(int rippleFadeDuration) { - this.rippleFadeDuration = rippleFadeDuration; - } - - public void setRipplePersistent(boolean ripplePersistent) { - this.ripplePersistent = ripplePersistent; - } - - public void setDefaultRippleAlpha(int alpha) { - this.rippleAlpha = alpha; - paint.setAlpha(alpha); - mHost.invalidate(); - } - -} diff --git a/src/com/android/systemui/navigation/fling/FlingView.java b/src/com/android/systemui/navigation/fling/FlingView.java deleted file mode 100644 index 115c07c..0000000 --- a/src/com/android/systemui/navigation/fling/FlingView.java +++ /dev/null @@ -1,478 +0,0 @@ -/** - * Copyright (C) 2014 The TeamEos Project - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * Gesture based navigation implementation and action executor - * - */ - -package com.android.systemui.navigation.fling; - -import java.util.HashSet; -import java.util.Set; - -import com.android.systemui.R; -import com.android.systemui.navigation.BaseNavigationBar; -import com.android.systemui.navigation.NavbarOverlayResources; -import com.android.systemui.navigation.fling.FlingActionHandler; -import com.android.systemui.navigation.fling.FlingBarTransitions; -import com.android.systemui.navigation.fling.FlingGestureDetector; -import com.android.systemui.navigation.fling.FlingGestureHandler; -import com.android.systemui.navigation.fling.FlingLogoController; -import com.android.systemui.navigation.fling.FlingLogoView; -import com.android.systemui.navigation.fling.FlingRipple; -import com.android.systemui.navigation.fling.FlingView; -import com.android.systemui.navigation.pulse.PulseController; -import com.android.systemui.navigation.utils.SmartObserver.SmartObservable; -import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.phone.LightBarTransitionsController; -import com.android.systemui.statusbar.phone.StatusBar; -import com.android.internal.utils.du.ActionConstants; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.app.StatusBarManager; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.os.Bundle; -import android.os.PowerManager; -import android.os.UserHandle; -import android.provider.Settings; -import android.util.AttributeSet; -import android.util.Log; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import android.view.animation.Animation; -import android.view.animation.Animation.AnimationListener; -import android.widget.ImageView; - -public class FlingView extends BaseNavigationBar { - final static String TAG = FlingView.class.getSimpleName(); - final static int PULSE_FADE_OUT_DURATION = 250; - final static int PULSE_FADE_IN_DURATION = 200; - final static float PULSE_LOGO_OPACITY = 0.6f; - - private static Set<Uri> sUris = new HashSet<Uri>(); - static { - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LONGPRESS_TIMEOUT)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_RIPPLE_ENABLED)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_RIPPLE_COLOR)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_KEYBOARD_CURSORS)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_LOGO_OPACITY)); - } - - private FlingActionHandler mActionHandler; - private FlingGestureHandler mGestureHandler; - private FlingGestureDetectorPriv mGestureDetector; - private final FlingBarTransitions mBarTransitions; - private FlingLogoController mLogoController; - private boolean mRippleEnabled; - private FlingRipple mRipple; - private boolean mKeyboardCursors; - private float mLogoOpacity; - private boolean mIsNotificationPanelExpanded; - - private int mNavigationIconHints = 0; - - private boolean mRotateButtonVisible; - private int mLastRotation = 0; - - private SmartObservable mObservable = new SmartObservable() { - @Override - public Set<Uri> onGetUris() { - return sUris; - } - - @Override - public void onChange(Uri uri) { - updateFlingSettings(); - } - }; - - public static final class FlingGestureDetectorPriv extends FlingGestureDetector { - static final int LP_TIMEOUT = 250; - // no more than default timeout - static final int LP_TIMEOUT_MAX = LP_TIMEOUT; - // no less than 25ms longer than single tap timeout - static final int LP_TIMEOUT_MIN = 25; - private int mLongPressTimeout = LP_TIMEOUT; - - public FlingGestureDetectorPriv(Context context, OnGestureListener listener) { - super(context, listener, null); - // TODO Auto-generated constructor stub - } - - @Override - protected int getLongPressTimeout() { - return mLongPressTimeout; - } - - void setLongPressTimeout(int timeoutFactor) { - if (timeoutFactor > LP_TIMEOUT_MAX) { - timeoutFactor = LP_TIMEOUT_MAX; - } else if (timeoutFactor < LP_TIMEOUT_MIN) { - timeoutFactor = LP_TIMEOUT_MIN; - } - mLongPressTimeout = timeoutFactor; - } - } - - @Override - public void setNotificationPanelExpanded(boolean expanded) { - mIsNotificationPanelExpanded = expanded; - } - - private final OnTouchListener mFlingTouchListener = new OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - final int action = event.getAction(); - if (action == MotionEvent.ACTION_DOWN) { -// mPm.cpuBoost(1000 * 1000); - mLogoController.onTouchHide(null); - setSlippery(mIsNotificationPanelExpanded ? true : false); - } else if (action == MotionEvent.ACTION_UP - || action == MotionEvent.ACTION_CANCEL) { - mLogoController.onTouchShow(null); - setSlippery(true); - } - if (mRippleEnabled) { - mRipple.onTouch(FlingView.this, event); - } - return mGestureDetector.onTouchEvent(event); - } - }; - - public FlingView(Context context, AttributeSet attrs) { - super(context, attrs); - mBarTransitions = new FlingBarTransitions(this); - mActionHandler = new FlingActionHandler(context, this); - mGestureHandler = new FlingGestureHandler(context, mActionHandler, this, BaseNavigationBar.sIsTablet); - mGestureDetector = new FlingGestureDetectorPriv(context, mGestureHandler); - - // CM bases: turn this on for an extra bump ;D - //mPm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - - mRipple = new FlingRipple(this); - mLogoController = new FlingLogoController(this); - - mSmartObserver.addListener(mActionHandler); - mSmartObserver.addListener(mGestureHandler); - mSmartObserver.addListener(mLogoController); - mSmartObserver.addListener(mObservable); - } - - @Override - public void onAttachedToWindow() { - super.onAttachedToWindow(); - if (getParent() != null) { - final View v = (View)getParent(); - v.setOnTouchListener(mFlingTouchListener); - } - } - - @Override - public void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (getParent() != null) { - final View v = (View)getParent(); - v.setOnTouchListener(null); - } - } - - @Override - public boolean onStartPulse(Animation animatePulseIn) { - if (mLogoController.isEnabled()) { - getLogoView(getHiddenView()).setAlpha(PULSE_LOGO_OPACITY); - getLogoView(getCurrentView()).animate() - .alpha(PULSE_LOGO_OPACITY) - .setDuration(PULSE_FADE_OUT_DURATION) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator _a) { - // shouldn't be null, mPulse just called into us - if (mPulse != null) { - mPulse.turnOnPulse(); - } - } - }) - .start(); - return true; - } - return false; - } - - @Override - public void onStopPulse(Animation animatePulseOut) { - if (mLogoController.isEnabled()) { - getLogoView(getHiddenView()).setAlpha(mLogoOpacity); - getLogoView(getCurrentView()).animate() - .alpha(mLogoOpacity) - .setDuration(PULSE_FADE_IN_DURATION) - .start(); - } - } - - @Override - public BarTransitions getBarTransitions() { - return mBarTransitions; - } - - @Override - public LightBarTransitionsController getLightTransitionsController() { - return mBarTransitions.getLightTransitionsController(); - } - - private FlingLogoView getFlingLogo() { - return (FlingLogoView) mCurrentView.findViewById(R.id.fling_console); - } - - @Override - public void setLeftInLandscape(boolean leftInLandscape) { - super.setLeftInLandscape(leftInLandscape); - mGestureHandler.setLeftInLandscape(leftInLandscape); - } - - @Override - protected void onKeyguardShowing(boolean showing) { - mActionHandler.setKeyguardShowing(showing); - setDisabledFlags(mDisabledFlags, true /* force */); - } - - @Override - public void setResourceMap(NavbarOverlayResources resourceMap) { - super.setResourceMap(resourceMap); - mLogoController.updateLogo(FlingView.this, getFlingLogo()); - updateFlingSettings(); - } - - private void updateRippleColor() { - int color = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_RIPPLE_COLOR, Color.WHITE, UserHandle.USER_CURRENT); - mRipple.updateColor(color); - } - - @Override - public void updateNavbarThemedResources(Resources res) { -// mRipple.updateResources(res); - super.updateNavbarThemedResources(res); - final FlingLogoView logo = getFlingLogo(); - mLogoController.setLogoView(logo); - mLogoController.setLogoIcon(); - setLogoOpacity(); - } - - private void updateFlingSettings() { - updateRippleColor(); - int lpTimeout = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_LONGPRESS_TIMEOUT, FlingGestureDetectorPriv.LP_TIMEOUT_MAX, UserHandle.USER_CURRENT); - mGestureDetector.setLongPressTimeout(lpTimeout); - mRippleEnabled = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_RIPPLE_ENABLED, 1, UserHandle.USER_CURRENT) == 1; - mKeyboardCursors = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_KEYBOARD_CURSORS, 1, UserHandle.USER_CURRENT) == 1; - setLogoOpacity(); - } - - private void setLogoOpacity() { - mLogoOpacity = alphaIntToFloat(Settings.Secure.getIntForUser(getContext().getContentResolver(), - Settings.Secure.FLING_LOGO_OPACITY, 255, UserHandle.USER_CURRENT)); - if (mLogoController.isEnabled()) { - getLogoView(getCurrentView()).setAlpha(isBarPulseFaded() ? PULSE_LOGO_OPACITY : mLogoOpacity); - getLogoView(getHiddenView()).setAlpha(isBarPulseFaded() ? PULSE_LOGO_OPACITY : mLogoOpacity); - } - } - - @Override - public void reorient() { - super.reorient(); - mBarTransitions.init(); - final FlingLogoView logo = getFlingLogo(); - mLogoController.setLogoView(logo); - mLogoController.setLogoIcon(); - setLogoOpacity(); - setDisabledFlags(mDisabledFlags, true /* force */); - setNavigationIconHints(mNavigationIconHints, true); - } - - boolean isBarPulseFaded() { - if (mPulse == null) { - return false; - } else { - return mPulse.shouldDrawPulse(); - } - } - - @Override - public void notifyScreenStateChange(boolean screenOn) { - mGestureHandler.onScreenStateChanged(screenOn); - super.notifyScreenStateChange(screenOn); - - if (mLogoController.isEnabled()) { - ImageView currentLogo = getLogoView(getCurrentView()); - ImageView hiddenLogo = getLogoView(getHiddenView()); - if (screenOn && (currentLogo.getAlpha() != mLogoOpacity || hiddenLogo.getAlpha() != mLogoOpacity)) { - currentLogo.setAlpha(mLogoOpacity); - hiddenLogo.setAlpha(mLogoOpacity); - } - } - } - - private ImageView getLogoView(View v) { - final ViewGroup viewGroup = (ViewGroup) v; - ImageView logoView = (ImageView)viewGroup.findViewById(R.id.fling_console); - return logoView; - } - - public Drawable getLogoDrawable(boolean hiddenView) { - return getLogoView(hiddenView ? getHiddenView() : getCurrentView()).getDrawable(); - } - - private ImageView getRotationLogoView(View v) { - final ViewGroup viewGroup = (ViewGroup) v; - ImageView rotationLogoView = (ImageView)viewGroup.findViewById(R.id.rotationLogo); - return rotationLogoView; - } - - public Drawable getRotationLogoDrawable(boolean hiddenView) { - return getRotationLogoView(hiddenView ? getHiddenView() : getCurrentView()).getDrawable(); - } - - @Override - protected void onInflateFromUser() { - mGestureHandler.onScreenStateChanged(mScreenOn); - } - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - super.onSizeChanged(w, h, oldw, oldh); - mRipple.onSizeChanged(w, h, oldw, oldh); - } - - @Override - public void setNavigationIconHints(int hints, boolean force) { - if (!force && hints == mNavigationIconHints) - return; - - final boolean backAlt = (hints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0; - mNavigationIconHints = hints; - mActionHandler.setImeActions(backAlt && mKeyboardCursors); - - mBarTransitions.reapplyDarkIntensity(); - } - - @Override - public void setNavigationIconHints(int hints) { - setNavigationIconHints(hints, false); - } - - @Override - public void setRotateSuggestionButtonState(boolean visible, boolean skipAnim) { - mRotateButtonVisible = visible; - //skipAnim - onRotationButtonStateChange(visible); - // this will set also the correct darkintensity for the rotation logo - setNavigationIconHints(mNavigationIconHints, true); - } - - @Override - public void setLastRotation(int rotation) { - mLastRotation = rotation; - } - - public void rotate() { - getRotationController().setRotationLockedAtAngle(true, mLastRotation); - } - - public boolean isRotateButtonVisible() { - return mRotateButtonVisible; - } - - public void onRotationButtonStateChange(boolean visible) { - ImageView hidden = getRotationLogoView(getHiddenView()); - ImageView current = getRotationLogoView(getCurrentView()); - if (visible) { - hidden.setVisibility(View.VISIBLE); - current.setVisibility(View.VISIBLE); - current.setAlpha(0.0f); - current.animate() - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator _a) { - } - }) - .alpha(isBarPulseFaded() ? PULSE_LOGO_OPACITY : mLogoOpacity) - .setDuration(100) - .start(); - } else { - current.animate() - .alpha(0.0f) - .setDuration(100) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator _a) { - hidden.setVisibility(View.INVISIBLE); - current.setVisibility(View.INVISIBLE); - } - }) - .start(); - } - } - - @Override - public void onDraw(Canvas canvas) { - super.onDraw(canvas); - if (mRippleEnabled) { - mRipple.onDraw(canvas); - } - } - - @Override - protected void onDispose() { - //unsetListeners(); - removeAllViews(); - } - - /*private void unsetListeners() { - }*/ - - @Override - protected void notifyBootCompleted() { - mLogoController.updateLogo(FlingView.this, getFlingLogo()); - } - - @Override - public void setMediaPlaying(boolean playing) { - PulseController mPulse = getPulseController(); - if (mPulse != null) { - mPulse.setMediaPlaying(playing); - } - } - - @Override - public void setPulseColors(boolean colorizedMedia, int[] colors) { - PulseController mPulse = getPulseController(); - if (mPulse != null) { - mPulse.setPulseColors(colorizedMedia, colors); - } - } -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartBackButtonDrawable.java b/src/com/android/systemui/navigation/smartbar/SmartBackButtonDrawable.java deleted file mode 100644 index f2ef6e0..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartBackButtonDrawable.java +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Copyright (C) 2016 The Android Open Source Project - * Copyright (C) 2017 The DirtyUnicorns 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.navigation.smartbar; - -import android.animation.Animator; -import android.animation.ObjectAnimator; -import android.annotation.Nullable; -import android.app.ActivityManager; -import android.graphics.Canvas; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; -import android.util.FloatProperty; -import android.util.Property; -import android.view.Gravity; - -import com.android.systemui.navigation.DarkIntensity; -import com.android.systemui.navigation.smartbar.SmartBackButtonDrawable; - -public class SmartBackButtonDrawable extends LayerDrawable implements DarkIntensity{ - private float mRotation; - private Animator mCurrentAnimator; - - private final boolean mHasDarkDrawable; - - private static final int ANIMATION_DURATION = 200; - public static final Property<SmartBackButtonDrawable, Float> ROTATION - = new FloatProperty<SmartBackButtonDrawable>("rotation") { - @Override - public void setValue(SmartBackButtonDrawable object, float value) { - object.setRotation(value); - } - - @Override - public Float get(SmartBackButtonDrawable object) { - return object.getRotation(); - } - }; - - public static SmartBackButtonDrawable create(Drawable lightDrawable, - @Nullable Drawable darkDrawable) { - if (darkDrawable != null) { - return new SmartBackButtonDrawable( - new Drawable[] { lightDrawable.mutate(), darkDrawable.mutate() }); - } else { - return new SmartBackButtonDrawable(new Drawable[] { lightDrawable.mutate() }); - } - } - - private SmartBackButtonDrawable(Drawable[] drawables) { - super(drawables); - for (int i = 0; i < drawables.length; i++) { - setLayerGravity(i, Gravity.CENTER); - } - mutate(); - mHasDarkDrawable = drawables.length > 1; - setDarkIntensity(0f); - } - - @Override - public void setDarkIntensity(float intensity) { - if (!mHasDarkDrawable) { - return; - } - getDrawable(0).setAlpha((int) ((1 - intensity) * 255f)); - getDrawable(1).setAlpha((int) (intensity * 255f)); - invalidateSelf(); - } - - @Override - public void draw(Canvas canvas) { - rotateCanvas(canvas); - getDrawable(0).draw(canvas); - if (mHasDarkDrawable) { - getDrawable(1).draw(canvas); - } - } - - private void rotateCanvas(Canvas c) { - final Rect bounds = getDrawable(0).getBounds(); - final int boundsCenterX = bounds.width() / 2; - final int boundsCenterY = bounds.height() / 2; - - c.translate(boundsCenterX, boundsCenterY); - c.rotate(mRotation); - c.translate(- boundsCenterX, - boundsCenterY); - } - - public void setRotation(float rotation) { - mRotation = rotation; - invalidateSelf(); - } - - public float getRotation() { - return mRotation; - } - - public void setImeVisible(boolean ime) { - if (mCurrentAnimator != null) { - mCurrentAnimator.cancel(); - } - - final float nextRotation = ime ? - 90 : 0; - if (mRotation == nextRotation) { - return; - } - - if (isVisible() && ActivityManager.isHighEndGfx()) { - mCurrentAnimator = ObjectAnimator.ofFloat(this, ROTATION, nextRotation) - .setDuration(ANIMATION_DURATION); - mCurrentAnimator.start(); - } else { - setRotation(nextRotation); - } - } -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartBarEditor.java b/src/com/android/systemui/navigation/smartbar/SmartBarEditor.java deleted file mode 100644 index d2e5001..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartBarEditor.java +++ /dev/null @@ -1,893 +0,0 @@ -/** - * Copyright (C) 2016 The DirtyUnicorns Project - * Copyright (C) 2015 The CyanogenMod Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * Contributions from The CyanogenMod 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.navigation.smartbar; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; -import java.util.Random; - -import com.android.internal.utils.du.ActionConstants; -import com.android.internal.utils.du.ActionHandler; -import com.android.internal.utils.du.Config.ActionConfig; -import com.android.internal.utils.du.DUActionUtils; -import com.android.internal.utils.du.Config; -import com.android.internal.utils.du.Config.ButtonConfig; -import com.android.systemui.navigation.BaseEditor; -import com.android.systemui.navigation.BaseNavigationBar; -import com.android.systemui.navigation.OpaLayout; -import com.android.systemui.navigation.Res; -import com.android.systemui.navigation.smartbar.SmartBarEditor; -import com.android.systemui.navigation.smartbar.SmartBarHelper; -import com.android.systemui.navigation.smartbar.SmartBarView; -import com.android.systemui.navigation.smartbar.SmartButtonView; -import com.android.systemui.navigation.editor.ActionItem; -import com.android.systemui.navigation.editor.QuickAction; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.ObjectAnimator; -import android.content.Intent; -import android.content.res.Resources; -import android.graphics.PixelFormat; -import android.graphics.Point; -import android.net.Uri; -import android.os.UserHandle; -import android.text.TextUtils; -import android.view.Gravity; -import android.view.HapticFeedbackConstants; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.WindowManager; -import android.view.ViewGroup.LayoutParams; -import android.view.animation.AccelerateDecelerateInterpolator; -import android.view.animation.OvershootInterpolator; -import android.widget.FrameLayout; -import android.widget.ImageView.ScaleType; -import android.widget.PopupWindow; - -public class SmartBarEditor extends BaseEditor implements View.OnTouchListener { - private static final String TAG = SmartBarEditor.class.getSimpleName(); - // time is takes button pressed to become draggable - private static final int QUICK_LONG_PRESS = 200; - private static final int POPUP_LONG_PRESS = QUICK_LONG_PRESS + 300; - // time popup hide animation takes before we hide the conatiner - private static final int POPUP_ANIM_DELAY = 300; - - public static final int MENU_MAP_ACTIONS = 1; - public static final int MENU_MAP_ICON = 2; - public static final int MENU_MAP_ADD = 3; - public static final int MENU_MAP_REMOVE = 4; - public static final int MENU_MAP_CANCEL = 5; - public static final int MENU_MAP_FINISH = 6; - public static final int MENU_MAP_ACTIONS_SINGLE_TAP = 7; - public static final int MENU_MAP_ACTIONS_DOUBLE_TAP = 8; - public static final int MENU_MAP_ACTIONS_LONG_PRESS = 9; - public static final int MENU_MAP_ICON_ICON_PACK = 10; - public static final int MENU_MAP_ICON_ICON_GALLERY = 11; - public static final int MENU_MAP_ICON_ICON_COLOR = 12; - public static final int MENU_MAP_ICON_ICON_RESET = 13; - - static final int POPUP_TYPE_ROOT = 1; - static final int POPUP_TYPE_TAP = 2; - static final int POPUP_TYPE_ICON = 3; - - public static final String BACK = ActionConstants.Smartbar.BUTTON1_TAG; - public static final String HOME = ActionConstants.Smartbar.BUTTON2_TAG; - - public static final int PHONE_MAX_BUTTONS = 7; - public static final int TABLET_MAX_BUTTONS = 10; - - private boolean mIsButtonMoving; - // true == we're currently checking for long press - private boolean mLongPressed; - // start point of the current drag operation - private float mDragOrigin; - // just to avoid reallocations - private static final int[] sLocation = new int[2]; - - private SmartBarView mHost; - - private FrameLayout mEditContainer; - private View mHidden; - private Point mOriginPoint = new Point(); - - // buttons to animate when changing positions - private ArrayList<OpaLayout> mSquatters = new ArrayList<>(); - - // which action are we editing - private int mTapHasFocusTag; - - // editor popup menu current instance holder - private QuickAction mPopup; - private Map<Integer, ActionItem> mPrimaryMenuItems = new HashMap<Integer, ActionItem>(); - private Map<Integer, ActionItem> mTapMenuItems = new HashMap<Integer, ActionItem>(); - private Map<Integer, ActionItem> mIconMenuItems = new HashMap<Integer, ActionItem>(); - - private QuickAction.OnActionItemClickListener mQuickClickListener = new QuickAction.OnActionItemClickListener() { - @Override - public void onItemClick(QuickAction source, int pos, int actionId) { - if (!mIsButtonMoving) { //don't do anything if the user is dragging the button - Intent intent; - switch (actionId) { - case MENU_MAP_ACTIONS: - postSecondaryPopup(POPUP_TYPE_TAP); - break; - case MENU_MAP_ICON: - postSecondaryPopup(POPUP_TYPE_ICON); - break; - case MENU_MAP_ADD: - addButton(); - break; - case MENU_MAP_REMOVE: - removeButton(); - break; - case MENU_MAP_CANCEL: - break; - case MENU_MAP_FINISH: - changeEditMode(MODE_OFF); - break; - case MENU_MAP_ACTIONS_SINGLE_TAP: - startActionPicker(ActionConfig.PRIMARY); - break; - case MENU_MAP_ACTIONS_LONG_PRESS: - startActionPicker(ActionConfig.SECOND); - break; - case MENU_MAP_ACTIONS_DOUBLE_TAP: - startActionPicker(ActionConfig.THIRD); - break; - case MENU_MAP_ICON_ICON_PACK: - intent = new Intent(); - intent.setAction(Intent.ACTION_MAIN); - intent.setClassName(INTENT_ACTION_EDIT_CLASS, - INTENT_ACTION_ICON_PICKER_COMPONENT); - mContext.startActivityAsUser(intent, UserHandle.CURRENT); - break; - case MENU_MAP_ICON_ICON_GALLERY: - intent = new Intent(); - intent.setAction(Intent.ACTION_MAIN); - intent.setClassName(INTENT_ACTION_EDIT_CLASS, - INTENT_ACTION_GALLERY_PICKER_COMPONENT); - mContext.startActivityAsUser(intent, UserHandle.CURRENT); - break; - case MENU_MAP_ICON_ICON_COLOR: - break; - case MENU_MAP_ICON_ICON_RESET: - resetIcon(); - break; - } - } - } - }; - - private final Runnable mHidePopupContainer = new Runnable() { - @Override - public void run() { - mEditContainer.setVisibility(View.GONE); - } - }; - - private PopupWindow.OnDismissListener mPopupDismissListener = new PopupWindow.OnDismissListener() { - @Override - public void onDismiss() { - mHost.postDelayed(mHidePopupContainer, POPUP_ANIM_DELAY); - } - }; - - private View.OnTouchListener mEditorWindowTouchListener = new View.OnTouchListener() { - public boolean onTouch(View v, MotionEvent event) { - return mPopupTouchWrapper.onTouch(v, event); - } - }; - - private View.OnTouchListener mPopupTouchWrapper = new View.OnTouchListener() { - public boolean onTouch(View v, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { - mPopup.dismiss(); - return true; - } - return false; - } - }; - - private void postSecondaryPopup(final int type) { - mHost.removeCallbacks(mHidePopupContainer); - refreshPopup(type); - } - - private void refreshPopup(int type) { - final int x = mPopup.getXpos(); - int navButtonTopY = mPopup.getNavButtonTopY(); - - mPopup.clearViews(); - boolean hasMaxButtons = getHasMaxButtons(); - String tag = getEditButtonTag(); - ActionItem item; - if (type == POPUP_TYPE_TAP) { - for (int i = 1; i < mTapMenuItems.size() + 1; i++) { - item = mTapMenuItems.get(i); - int id = item.getActionId(); - if (id == MENU_MAP_ACTIONS_SINGLE_TAP && - (tag.equals(BACK) || tag.equals(HOME))) { - continue; - } - item.setSticky(false); - mPopup.addActionItem(item); - } - } else if (type == POPUP_TYPE_ICON) { - for (int i = 1; i < mIconMenuItems.size() + 1; i++) { - item = mIconMenuItems.get(i); - int id = item.getActionId(); - if (id == MENU_MAP_ICON_ICON_COLOR) { - continue; - } - item.setSticky(false); - mPopup.addActionItem(item); - } - } - - View newPopupView = mPopup.mWindow.getContentView(); - newPopupView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED); - final int height = newPopupView.getMeasuredHeight(); - mPopup.mWindow.update(x, (navButtonTopY - height), -1, -1); - } - - public SmartBarEditor(SmartBarView host) { - super(host); - mHost = host; - } - - private String getEditButtonTag() { - return (String) mHidden.getTag(); - } - - private void resetIcon() { - final String buttonFocus = getEditButtonTag(); - SmartButtonView currentButton = mHost.findCurrentButton(buttonFocus); - SmartButtonView otherButton = (SmartButtonView) getHiddenNavButtons().findViewWithTag( - buttonFocus); - ButtonConfig currentConfig = currentButton.getButtonConfig(); - ButtonConfig otherConfig = otherButton.getButtonConfig(); - OpaLayout currentOpa = (OpaLayout) currentButton.getParent(); - OpaLayout otherOpa = (OpaLayout) otherButton.getParent(); - currentConfig.clearCustomIconIconUri(); - otherConfig.clearCustomIconIconUri(); - currentButton.setButtonConfig(currentConfig); - otherButton.setButtonConfig(otherConfig); - - mHost.setButtonDrawable(currentButton); - SmartBarHelper.updateButtonScalingAndPadding(currentOpa, isLandscape()); - - mHost.setButtonDrawable(otherButton); - SmartBarHelper.updateButtonScalingAndPadding(otherOpa, !isLandscape()); - - onCommitChanges(); - } - - @Override - protected void onIconPicked(String type, String packageName, String iconName) { - final String buttonFocus = getEditButtonTag(); - SmartButtonView currentButton = mHost.findCurrentButton(buttonFocus); - SmartButtonView otherButton = (SmartButtonView) getHiddenNavButtons().findViewWithTag( - buttonFocus); - ButtonConfig currentConfig = currentButton.getButtonConfig(); - ButtonConfig otherConfig = otherButton.getButtonConfig(); - OpaLayout currentOpa = (OpaLayout) currentButton.getParent(); - OpaLayout otherOpa = (OpaLayout) otherButton.getParent(); - currentConfig.setCustomIconUri(type, packageName, iconName); - otherConfig.setCustomIconUri(type, packageName, iconName); - currentButton.setButtonConfig(currentConfig); - otherButton.setButtonConfig(otherConfig); - - mHost.setButtonDrawable(currentButton); - SmartBarHelper.updateButtonScalingAndPadding(currentOpa, isLandscape()); - - mHost.setButtonDrawable(otherButton); - SmartBarHelper.updateButtonScalingAndPadding(otherOpa, !isLandscape()); - - onCommitChanges(); - } - - protected void onImagePicked(String uri) { - final String buttonFocus = getEditButtonTag(); - SmartButtonView currentButton = mHost.findCurrentButton(buttonFocus); - SmartButtonView otherButton = (SmartButtonView) getHiddenNavButtons().findViewWithTag( - buttonFocus); - ButtonConfig currentConfig = currentButton.getButtonConfig(); - ButtonConfig otherConfig = otherButton.getButtonConfig(); - OpaLayout currentOpa = (OpaLayout) currentButton.getParent(); - OpaLayout otherOpa = (OpaLayout) otherButton.getParent(); - currentConfig.setCustomImageUri(Uri.parse(uri)); - otherConfig.setCustomImageUri(Uri.parse(uri)); - currentButton.setButtonConfig(currentConfig); - otherButton.setButtonConfig(otherConfig); - - mHost.setButtonDrawable(currentButton); - SmartBarHelper.updateButtonScalingAndPadding(currentOpa, isLandscape()); - - mHost.setButtonDrawable(otherButton); - SmartBarHelper.updateButtonScalingAndPadding(otherOpa, !isLandscape()); - - onCommitChanges(); - } - - @Override - protected void onActionPicked(String action, ActionConfig actionConfig) { - final String buttonFocus = getEditButtonTag(); - final int tapFocus = mTapHasFocusTag; - SmartButtonView currentButton = mHost.findCurrentButton(buttonFocus); - SmartButtonView otherButton = (SmartButtonView) getHiddenNavButtons().findViewWithTag( - buttonFocus); - ActionConfig currentAction = new ActionConfig(mContext, action); - ActionConfig otherAction = new ActionConfig(mContext, action); - ButtonConfig currentConfig = currentButton.getButtonConfig(); - ButtonConfig otherConfig = otherButton.getButtonConfig(); - OpaLayout currentOpa = (OpaLayout) currentButton.getParent(); - OpaLayout otherOpa = (OpaLayout) otherButton.getParent(); - currentConfig.setActionConfig(currentAction, tapFocus); - otherConfig.setActionConfig(otherAction, tapFocus); - currentButton.setButtonConfig(currentConfig); - otherButton.setButtonConfig(otherConfig); - if (tapFocus == ActionConfig.PRIMARY) { // update icon for single tap only - mHost.setButtonDrawable(currentButton); - SmartBarHelper.updateButtonScalingAndPadding(currentOpa, isLandscape()); - mHost.setButtonDrawable(otherButton); - SmartBarHelper.updateButtonScalingAndPadding(otherOpa, !isLandscape()); - } - onCommitChanges(); - } - - private void startActionPicker(int focusActionTap) { - mTapHasFocusTag = focusActionTap; - Intent intent = new Intent(); - intent.setAction(Intent.ACTION_MAIN); - intent.setClassName(INTENT_ACTION_EDIT_CLASS, INTENT_ACTION_EDIT_COMPONENT); - if (mTapHasFocusTag == ActionConfig.PRIMARY) { // exclude single tap back, home, recent - String[] exclude = { - ActionHandler.SYSTEMUI_TASK_BACK, - ActionHandler.SYSTEMUI_TASK_HOME - }; - intent.putExtra("excluded_actions", exclude); - } - mContext.startActivityAsUser(intent, UserHandle.CURRENT); - } - - private int getMaxButtons() { - return BaseNavigationBar.sIsTablet ? TABLET_MAX_BUTTONS : PHONE_MAX_BUTTONS; - } - - private boolean getHasMaxButtons() { - return getMaxButtons() == mHost.getCurrentSequence().size(); - } - - @Override - public void onEditModeChanged(int mode) { - boolean isOn = isInEditMode(); - if (isOn) { - createPopupContainer(); - } else { - removePopupContainer(); - } - setButtonsEditMode(isOn); - - mHost.setEditMode(isOn); - } - - @Override - protected void onResetLayout() { - mHost.recreateLayouts(); - setButtonsEditMode(isInEditMode()); - } - - private void removeButton() { - mLockEditMode = true; - final String buttonFocus = getEditButtonTag(); - ArrayList<ButtonConfig> buttonConfigs = Config.getConfig(mContext, - ActionConstants.getDefaults(ActionConstants.SMARTBAR)); - ButtonConfig toRemove = null; - for (ButtonConfig config : buttonConfigs) { - if (TextUtils.equals(config.getTag(), buttonFocus)) { - toRemove = config; - break; - } - } - if (toRemove != null) { - buttonConfigs.remove(toRemove); - Config.setConfig(mContext, ActionConstants.getDefaults(ActionConstants.SMARTBAR), - buttonConfigs); - mHost.recreateLayouts(); - setButtonsEditMode(true); - } - mLockEditMode = false; - } - - private void addButton() { - mLockEditMode = true; - final String buttonFocus = getEditButtonTag(); - ArrayList<ButtonConfig> buttonConfigs = Config.getConfig(mContext, - ActionConstants.getDefaults(ActionConstants.SMARTBAR)); - int newIndex = mHost.getCurrentSequence().indexOf(buttonFocus) + 1; - String newTag = String.valueOf(System.currentTimeMillis()); - ButtonConfig newConfig = new ButtonConfig(mContext); - newConfig.setTag(newTag); - buttonConfigs.add(newIndex, newConfig); - Config.setConfig(mContext, ActionConstants.getDefaults(ActionConstants.SMARTBAR), - buttonConfigs); - mHost.recreateLayouts(); - setButtonsEditMode(true); - mLockEditMode = false; - } - - @Override - public void onCommitChanges() { - ArrayList<ButtonConfig> buttonConfigs = new ArrayList<ButtonConfig>(); - final int size = mHost.getCurrentSequence().size(); - for (int i = 0; i < size; i++) { - String tag = mHost.getCurrentSequence().get(i); - SmartButtonView v = mHost.findCurrentButton(tag); - if (v == null) - continue; - ButtonConfig config = v.getButtonConfig(); - if (config == null) - continue; - buttonConfigs.add(config); - } - Config.setConfig(mContext, ActionConstants.getDefaults(ActionConstants.SMARTBAR), - buttonConfigs); - } - - @Override - protected void onPrepareToReorient() { - // if we are in edit mode turn them off - // since the new buttons will be visibile very soon - if (isInEditMode()) { - setButtonsEditMode(false); - } - } - - @Override - protected void onReorient() { - // if we are in edit mode turn them on - if (isInEditMode()) { - setButtonsEditMode(true); - } - } - - private void setButtonsEditMode(boolean isInEditMode) { - for (String buttonTag : mHost.getCurrentSequence()) { - SmartButtonView v = mHost.findCurrentButton(buttonTag); - if (v != null) { - v.setEditMode(isInEditMode); - OpaLayout opa = (OpaLayout) v.getParent(); - opa.setOnTouchListener(isInEditMode ? this : null); - } - } - } - - public boolean isInEditMode() { - return getMode() == MODE_ON; - } - - private Runnable mCheckLongPress = new Runnable() { - public void run() { - if (isInEditMode()) { - mLongPressed = true; - mHost.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); - } - } - }; - - private Runnable mCheckShowPopup = new Runnable() { - public void run() { - if (isInEditMode()) { - showPopup(POPUP_TYPE_ROOT); - } - } - }; - - @Override - public boolean onTouch(final View view, MotionEvent event) { - if (!isInEditMode()) { - return false; - } - if (event.getAction() == MotionEvent.ACTION_DOWN) { - mIsButtonMoving = true; - if (mPopup != null) { - QuickAction popup = mPopup; - popup.dismiss(); - } - view.setPressed(true); - view.getLocationOnScreen(sLocation); - mDragOrigin = sLocation[mHost.isVertical() ? 1 : 0]; - mOriginPoint.set(sLocation[0], sLocation[1]); - prepareToShowPopup(view); - mHost.postDelayed(mCheckLongPress, QUICK_LONG_PRESS); - mHost.postDelayed(mCheckShowPopup, POPUP_LONG_PRESS); - } else if (event.getAction() == MotionEvent.ACTION_MOVE) { - // mIsButtonMoving still true; - view.setPressed(false); - if (!mLongPressed) { - return false; - } - ViewGroup viewParent = (ViewGroup) view.getParent(); - float pos = mHost.isVertical() ? event.getRawY() : event.getRawX(); - float buttonSize = mHost.isVertical() ? view.getHeight() : view.getWidth(); - float min = mHost.isVertical() ? viewParent.getTop() - : (viewParent.getLeft() - buttonSize / 2); - float max = mHost.isVertical() ? (viewParent.getTop() + viewParent.getHeight()) - : (viewParent.getLeft() + viewParent.getWidth()); - - // Prevents user from dragging view outside of bounds - if (pos < min || pos > max) { - return false; - } - if (!mHost.isVertical()) { - view.setX(pos - viewParent.getLeft() - buttonSize / 2); - } else { - view.setY(pos - viewParent.getTop() - buttonSize / 2); - } - View affectedView = findInterceptingView(pos, view); - if (affectedView == null) { - return false; - } - mHost.removeCallbacks(mCheckLongPress); - mHost.removeCallbacks(mCheckShowPopup); - if (mPopup != null) { - QuickAction popup = mPopup; - popup.dismiss(); - } - switchId(affectedView, view); - } else if (event.getAction() == MotionEvent.ACTION_UP - || event.getAction() == MotionEvent.ACTION_CANCEL) { - mIsButtonMoving = false; - view.setPressed(false); - mHost.removeCallbacks(mCheckLongPress); - mHost.removeCallbacks(mCheckShowPopup); - if (mPopup == null || !mPopup.mWindow.isShowing()) { - mEditContainer.setVisibility(View.GONE); - } - if (mLongPressed) { - // Reset the dragged view to its original location - ViewGroup parent = (ViewGroup) view.getParent(); - boolean vertical = mHost.isVertical(); - float slideTo = vertical ? mDragOrigin - parent.getTop() : mDragOrigin - - parent.getLeft(); - Animator anim = getButtonSlideAnimator(view, vertical, slideTo); - anim.setInterpolator(new AccelerateDecelerateInterpolator()); - anim.setDuration(100); - anim.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mSquatters.clear(); - onCommitChanges(); - } - }); - anim.start(); - } - mLongPressed = false; - } - return true; - } - - private WindowManager.LayoutParams getEditorParams() { - WindowManager.LayoutParams lp = new WindowManager.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT, - WindowManager.LayoutParams.TYPE_NAVIGATION_BAR_PANEL, - WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN - | WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS - | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR - | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, - PixelFormat.TRANSLUCENT); - lp.flags |= WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED; - lp.gravity = Gravity.BOTTOM; - lp.setTitle("SmartBar Editor"); - lp.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED - | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING; - return lp; - } - - private void showPopup(int type) { - QuickAction popup = new QuickAction(mHost.getContext(), QuickAction.VERTICAL); - boolean hasMaxButtons = getHasMaxButtons(); - String tag = getEditButtonTag(); - ActionItem item; - for (int i = 1; i < mPrimaryMenuItems.size() + 1; i++) { - item = mPrimaryMenuItems.get(i); - int id = item.getActionId(); - if (id == MENU_MAP_ADD && hasMaxButtons) { - continue; - } - if (id == MENU_MAP_REMOVE && - (tag.equals(BACK) || tag.equals(HOME))) { - continue; - } - if (id == MENU_MAP_ACTIONS || id == MENU_MAP_ICON) { - item.setSticky(true); - } else { - item.setSticky(false); - } - popup.addActionItem(item); - } - popup.setOnActionItemClickListener(mQuickClickListener); - popup.mWindow.setOnDismissListener(mPopupDismissListener); - popup.mWindow.setTouchInterceptor(mPopupTouchWrapper); - popup.mWindow.setFocusable(true); - final View anchor = (View) mHidden; - popup.show(anchor); - mPopup = popup; - } - - @Override - protected void updateResources(Resources res) { - // anything themable is created on-the-fly - } - - private void prepareToShowPopup(View editView) { - mHost.removeCallbacks(mHidePopupContainer); - ViewGroup parent = (ViewGroup) editView.getParent(); - mEditContainer.setVisibility(View.VISIBLE); - OpaLayout opa = (OpaLayout) editView; - mHidden.setTag(opa.getButton().getTag()); - mHidden.getLayoutParams().width = editView.getWidth(); - mHidden.getLayoutParams().height = editView.getHeight(); - mHidden.setLayoutParams(mHidden.getLayoutParams()); - mHidden.setX(mOriginPoint.x - parent.getLeft()); - mHidden.setY(mOriginPoint.y - parent.getTop()); - } - - private void createPopupContainer() { - removePopupContainer(); - loadPrimaryMenuMap(); - loadTapMenuMap(); - loadIconMenuMap(); - mEditContainer = new FrameLayout(mHost.getContext()); - mHidden = new SmartButtonView(mHost.getContext()); - mEditContainer.setOnTouchListener(mEditorWindowTouchListener); - mHidden.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, - LayoutParams.WRAP_CONTENT)); - mHidden.setVisibility(View.INVISIBLE); - mEditContainer.addView(mHidden); - mEditContainer.setVisibility(View.GONE); - mWindowManager.addView(mEditContainer, getEditorParams()); - } - - private void removePopupContainer() { - if (mPopup != null) { - mPopup.dismiss(); - mPopup = null; - } - if (mEditContainer != null && mEditContainer.isAttachedToWindow()) { - mEditContainer.removeAllViews(); - mEditContainer.setVisibility(View.GONE); - mWindowManager.removeViewImmediate(mEditContainer); - } - mPrimaryMenuItems.clear(); - mTapMenuItems.clear(); - mIconMenuItems.clear(); - } - - /* - * Leave the reflection alone here. Since we don't inflate SmartBar, these vectors need to be - * inflated by the library - */ - private void loadPrimaryMenuMap() { - mPrimaryMenuItems.clear(); - ActionItem action = new ActionItem(1, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_actions", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_actions", - DUActionUtils.PACKAGE_SYSTEMUI)); - mPrimaryMenuItems.put(1, action); - - action = new ActionItem(2, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_icon", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_icon", - DUActionUtils.PACKAGE_SYSTEMUI)); - mPrimaryMenuItems.put(2, action); - - action = new ActionItem(3, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_add", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_add", - DUActionUtils.PACKAGE_SYSTEMUI)); - mPrimaryMenuItems.put(3, action); - - action = new ActionItem(4, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_remove", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_remove", - DUActionUtils.PACKAGE_SYSTEMUI)); - mPrimaryMenuItems.put(4, action); - - action = new ActionItem(5, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_cancel", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_cancel", - DUActionUtils.PACKAGE_SYSTEMUI)); - mPrimaryMenuItems.put(5, action); - - action = new ActionItem(6, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_finish", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_finish", - DUActionUtils.PACKAGE_SYSTEMUI)); - mPrimaryMenuItems.put(6, action); - } - - private void loadTapMenuMap() { - mTapMenuItems.clear(); - ActionItem action = new ActionItem(7, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_single_tap", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_single_tap", - DUActionUtils.PACKAGE_SYSTEMUI)); - mTapMenuItems.put(1, action); - - action = new ActionItem(8, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_double_tap", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_double_tap", - DUActionUtils.PACKAGE_SYSTEMUI)); - mTapMenuItems.put(2, action); - - action = new ActionItem(9, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_long_press", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_long_press", - DUActionUtils.PACKAGE_SYSTEMUI)); - mTapMenuItems.put(3, action); - } - - private void loadIconMenuMap() { - mIconMenuItems.clear(); - ActionItem action = new ActionItem(10, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_icon_pack", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_icon_pack", - DUActionUtils.PACKAGE_SYSTEMUI)); - mIconMenuItems.put(1, action); - - action = new ActionItem(11, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_icon_gallery", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_icon_gallery", - DUActionUtils.PACKAGE_SYSTEMUI)); - mIconMenuItems.put(2, action); - - action = new ActionItem(12, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_icon_color", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_icon_color", - DUActionUtils.PACKAGE_SYSTEMUI)); - mIconMenuItems.put(3, action); - - action = new ActionItem(13, - DUActionUtils.getString(mHost.getContext(), "label_smartbar_icon_reset", - DUActionUtils.PACKAGE_SYSTEMUI), - DUActionUtils.getDrawable(mHost.getContext(), "ic_smartbar_editor_icon_reset", - DUActionUtils.PACKAGE_SYSTEMUI)); - mIconMenuItems.put(3, action); - } - - /** - * Find intersecting view in mButtonViews - * - * @param pos - pointer location - * @param v - view being dragged - * @return intersecting view or null - */ - private View findInterceptingView(float pos, View v) { - for (String buttonTag : mHost.getCurrentSequence()) { - SmartButtonView otherButton = mHost.findCurrentButton(buttonTag); - OpaLayout otherOpa = (OpaLayout)otherButton.getParent(); - if (otherOpa == v) { - continue; - } - if (mSquatters.contains(otherOpa)) { - continue; - } - - otherOpa.getLocationOnScreen(sLocation); - float otherPos = sLocation[mHost.isVertical() ? 1 : 0]; - float otherDimension = mHost.isVertical() ? v.getHeight() : v.getWidth(); - - if (pos > (otherPos + otherDimension / 4) && pos < (otherPos + otherDimension)) { - mSquatters.add(otherOpa); - return otherOpa; - } - } - return null; - } - - /** - * Switches positions of two views and updates their mButtonViews entry - * - * @param targetView - view to be replaced animate out - * @param view - view being dragged - */ - private void switchId(View replaceView, View dragView) { - final OpaLayout squatter = (OpaLayout) replaceView; - final OpaLayout dragger = (OpaLayout) dragView; - - final boolean vertical = mHost.isVertical(); - - ViewGroup parent = (ViewGroup) replaceView.getParent(); - float slideTo = vertical ? mDragOrigin - parent.getTop() : mDragOrigin - parent.getLeft(); - replaceView.getLocationOnScreen(sLocation); - mDragOrigin = sLocation[vertical ? 1 : 0]; - - final int targetIndex = mHost.getCurrentSequence().indexOf(squatter.getButton().getTag()); - final int draggedIndex = mHost.getCurrentSequence().indexOf(dragger.getButton().getTag()); - Collections.swap(mHost.getCurrentSequence(), draggedIndex, targetIndex); - - SmartButtonView hidden1 = (SmartButtonView) getHiddenNavButtons().findViewWithTag( - squatter.getButton().getTag()); - SmartButtonView hidden2 = (SmartButtonView) getHiddenNavButtons().findViewWithTag( - dragger.getButton().getTag()); - OpaLayout hidden1Opa = (OpaLayout) hidden1.getParent(); - OpaLayout hidden2Opa = (OpaLayout) hidden2.getParent(); - swapConfigs(hidden1Opa, hidden2Opa); - - Animator anim = getButtonSlideAnimator(squatter, vertical, slideTo); - anim.setInterpolator(new OvershootInterpolator()); - anim.setDuration(250); - anim.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mSquatters.remove(squatter); - } - }); - anim.start(); - } - - private Animator getButtonSlideAnimator(View v, boolean vertical, float slideTo) { - return ObjectAnimator.ofFloat(v, vertical ? View.Y : View.X, slideTo); - } - - private void swapConfigs(OpaLayout v1, OpaLayout v2) { - ButtonConfig config1 = v1.getButton().getButtonConfig(); - ButtonConfig config2 = v2.getButton().getButtonConfig(); - int[] padding1 = SmartBarHelper.getViewPadding(v1); - int[] padding2 = SmartBarHelper.getViewPadding(v2); - ScaleType scale1 = v1.getButton().getScaleType(); - ScaleType scale2 = v2.getButton().getScaleType(); - v1.getButton().setButtonConfig(config2); - v2.getButton().setButtonConfig(config1); - mHost.setButtonDrawable(v1.getButton()); - mHost.setButtonDrawable(v2.getButton()); - SmartBarHelper.applyPaddingToView(v1, padding2); - SmartBarHelper.applyPaddingToView(v2, padding1); - v1.getButton().setScaleType(scale2); - v2.getButton().setScaleType(scale1); - } - - private ViewGroup getHiddenNavButtons() { - return (ViewGroup) mHost.getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - } - -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartBarHelper.java b/src/com/android/systemui/navigation/smartbar/SmartBarHelper.java deleted file mode 100644 index f6e8fdd..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartBarHelper.java +++ /dev/null @@ -1,208 +0,0 @@ -/** - * Copyright (C) 2014 SlimRoms - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * Much love and respect to SlimRoms for some of these layout/padding - * related methods and static factory methods - * - * 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.navigation.smartbar; - -import android.content.Context; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.RectF; -import android.util.TypedValue; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.Space; -import android.widget.ImageView.ScaleType; -import android.widget.LinearLayout.LayoutParams; - -import com.android.internal.utils.du.ActionHandler; -import com.android.internal.utils.du.DUActionUtils; -import com.android.internal.utils.du.Config.ButtonConfig; -import com.android.internal.utils.du.ImageHelper; -import com.android.systemui.navigation.OpaLayout; -import com.android.systemui.navigation.BaseNavigationBar; -import com.android.systemui.navigation.smartbar.SmartBarView; -import com.android.systemui.navigation.smartbar.SmartButtonView; -import com.android.systemui.R; - -public class SmartBarHelper { - - public static int[] getViewPadding(View v) { - int[] padding = new int[4]; - padding[0] = v.getPaddingStart(); - padding[1] = v.getPaddingTop(); - padding[2] = v.getPaddingEnd(); - padding[3] = v.getPaddingBottom(); - return padding; - } - - public static void applyPaddingToView(View v, int[] padding) { - v.setPaddingRelative(padding[0], padding[1], - padding[2], padding[3]); - } - - static boolean buttonNeedsCustomPadding(OpaLayout v) { - boolean hasCustomIcon = v.getButton().getButtonConfig().hasCustomIcon(); - boolean hasNonSystemIcon = !v.getButton().getButtonConfig().isSystemAction(); - return hasCustomIcon || hasNonSystemIcon; - } - - public static void updateButtonScalingAndPadding(OpaLayout v, boolean landscape) { - // all non-system action icons need some extra scaling work - v.getButton().setScaleType(ScaleType.CENTER_INSIDE); - } - - public static BitmapDrawable resizeCustomButtonIcon(Drawable d, Context ctx, float iconSizeScale) { - if (d == null) { - d = DUActionUtils.getDrawableForAction(ctx, ActionHandler.SYSTEMUI_TASK_NO_ACTION); - } - // get custom button icon size - final Bitmap bitmap = ImageHelper.drawableToBitmap(d); - int originalHeight = bitmap.getHeight(); - int originalWeight = bitmap.getWidth(); - // apply the needed scaling to the icon size values to match default system buttons icons size - final float scaledWidth = iconSizeScale * originalWeight; - final float scaledHeight = iconSizeScale * originalHeight; - // later we'll put the icon bitmap (resized to a smaller scaled rectf) into the bigger canvas, - // so we need to center the rectf coordinates into the canvas (moving it a bit to right and to bottom) - final float leftPadding = (originalWeight - scaledWidth) / 2; - final float topPadding = (originalHeight - scaledHeight) / 2; - final RectF targetRect = new RectF(leftPadding, topPadding, leftPadding + scaledWidth, topPadding + scaledHeight); - // create a new empty canvas with the size of the original icon, then draw into it the icon bitmap scaled to our - // smaller rectf size - final Bitmap dest = Bitmap.createBitmap(originalWeight, originalHeight, android.graphics.Bitmap.Config.ARGB_8888); - final Canvas canvas = new Canvas(dest); - final Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG); - paint.setAntiAlias(true); - canvas.drawBitmap(bitmap, null, targetRect, paint); - - return new BitmapDrawable(ctx.getResources(), dest); - } - - static OpaLayout generatePrimaryKey(Context ctx, SmartBarView host, boolean landscape, - ButtonConfig config) { - OpaLayout opa = (OpaLayout)View.inflate(ctx, R.layout.opa_smartbutton, null); - SmartButtonView v = opa.getButton(); - v.setHost(host); - v.setButtonConfig(config); - int width = ctx.getResources().getDimensionPixelSize(R.dimen.navigation_key_width); - int height = ctx.getResources().getDimensionPixelSize(R.dimen.navigation_key_height); - v.loadRipple(); - updateButtonScalingAndPadding(opa, landscape); - host.setButtonDrawable(v); - if (BaseNavigationBar.sIsTablet) { - v.setLayoutParams(new FrameLayout.LayoutParams(width, LayoutParams.MATCH_PARENT)); - opa.setLayoutParams(new LinearLayout.LayoutParams(width, LayoutParams.MATCH_PARENT)); - } else { - if (landscape) { - v.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, height)); - opa.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, height)); - } else { - v.setLayoutParams(new FrameLayout.LayoutParams(width, LayoutParams.MATCH_PARENT)); - opa.setLayoutParams(new LinearLayout.LayoutParams(width, LayoutParams.MATCH_PARENT)); - } - } - return opa; - } - - static View makeSeparator(Context ctx) { - View v; - if (BaseNavigationBar.sIsTablet) { - v = new Space(ctx); - } else { - v = new View(ctx); - } - v.setLayoutParams(new LinearLayout.LayoutParams( - LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f)); - v.setVisibility(View.INVISIBLE); - return v; - } - - static void addViewToRoot(ViewGroup root, View toAdd, boolean landscape) { - if (landscape && !BaseNavigationBar.sIsTablet) { - root.addView(toAdd, 0); - } else { - root.addView(toAdd); - } - } - - static int getButtonSize(Context ctx, int numButtons, boolean landscape) { - if (BaseNavigationBar.sIsTablet) { - return getTabletButtonSize(ctx, numButtons, landscape); - } else { - return getPhoneButtonSize(ctx, numButtons, landscape); - } - } - - static int getTabletButtonSize(Context ctx, int numButtons, boolean landscape) { - int origSize = ctx.getResources().getDimensionPixelSize( - landscape ? R.dimen.navigation_key_tablet_width_land - : R.dimen.navigation_key_tablet_width_port); - if (numButtons < 4) { - return origSize; - } else { - // the more buttons we have the less we shave per button - float factor = 1f - ((numButtons - 3) * 0.06f); - int size = Math.round(origSize * factor); - return size; - } - } - - static int getPhoneButtonSize(Context ctx, int numButtons, boolean landscape) { - // in this case, landscape refers to the vertical bar layout - int origSize = ctx.getResources().getDimensionPixelSize( - landscape ? R.dimen.navigation_key_height : R.dimen.navigation_key_width); - if (numButtons < 4) { - return origSize; - } else { - // create an even distribution - int size = Math.round((origSize * 3) / numButtons); - return size; - } - } - - static void updateButtonSize(View v, int size, boolean landscape) { - if (BaseNavigationBar.sIsTablet) { - updateTabletButtonSize(v, size, landscape); - } else { - updatePhoneButtonSize(v, size, landscape); - } - } - - static void updatePhoneButtonSize(View v, int size, boolean landscape) { - if (landscape) { - v.getLayoutParams().height = size; - } else { - v.getLayoutParams().width = size; - } - } - - static void updateTabletButtonSize(View v, int size, boolean landscape) { - v.getLayoutParams().width = size; - } -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartBarTransitions.java b/src/com/android/systemui/navigation/smartbar/SmartBarTransitions.java deleted file mode 100644 index 348fa5a..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartBarTransitions.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2013 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.navigation.smartbar; - -import android.graphics.drawable.Drawable; -import android.view.View; - -import com.android.internal.utils.du.DUActionUtils; -import com.android.systemui.R; -import com.android.systemui.navigation.*; -import com.android.systemui.navigation.smartbar.SmartBarView; -import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.phone.LightBarTransitionsController; - -public final class SmartBarTransitions extends BarTransitions { - private final SmartBarView mView; - - private boolean mLightsOut; - private final LightBarTransitionsController mLightTransitionsController; - - public SmartBarTransitions(SmartBarView view) { - super(view, R.drawable.nav_background); -// R.color.navigation_bar_background_opaque, -// R.color.navigation_bar_background_semi_transparent, -// R.color.navigation_bar_background_transparent, -// com.android.internal.R.color.battery_saver_mode_color); - mView = view; - mLightTransitionsController = new LightBarTransitionsController(view.getContext(), - this::applyDarkIntensity); - } - - public void init() { - applyModeBackground(-1, getMode(), false /*animate*/); - applyMode(getMode(), false /*animate*/, true /*force*/); - } - - public LightBarTransitionsController getLightTransitionsController() { - return mLightTransitionsController; - } - - @Override - protected void onTransition(int oldMode, int newMode, boolean animate) { - super.onTransition(oldMode, newMode, animate); - applyMode(newMode, animate, false /*force*/); - } - - - private void applyMode(int mode, boolean animate, boolean force) { - // apply to lights out - applyLightsOut(isLightsOut(mode), animate, force); - } - - public void reapplyDarkIntensity() { - applyDarkIntensity(mLightTransitionsController.getCurrentDarkIntensity()); - } - - public void applyDarkIntensity(float darkIntensity) { - for (SmartButtonView button : DUActionUtils.getAllChildren(mView, SmartButtonView.class)) { - button.setRippleDarkIntensity(darkIntensity); - Drawable d = button.getDrawable(); - if (d != null && d instanceof DarkIntensity) { - ((DarkIntensity) d).setDarkIntensity(darkIntensity); - } - } - } - - private void applyLightsOut(boolean lightsOut, boolean animate, boolean force) { - if (!force && lightsOut == mLightsOut) - return; - - mLightsOut = lightsOut; - - final View navButtons = mView.getCurrentView().findViewWithTag(Res.Common.NAV_BUTTONS); - final boolean isBarPulseFaded = mView.isBarPulseFaded(); - final float buttonAlpha = mView.getButtonAlpha(); - final float fadeAlpha = isBarPulseFaded ? mView.mPulseNavButtonsOpacity : buttonAlpha; - - // ok, everyone, stop it right there - navButtons.animate().cancel(); - - final float navButtonsAlpha = lightsOut ? 0.5f : fadeAlpha; - - if (!animate) { - navButtons.setAlpha(navButtonsAlpha); - } else { - final int duration = lightsOut ? LIGHTS_OUT_DURATION : LIGHTS_IN_DURATION; - navButtons.animate() - .alpha(navButtonsAlpha) - .setDuration(duration) - .start(); - } - } -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartBarView.java b/src/com/android/systemui/navigation/smartbar/SmartBarView.java deleted file mode 100644 index d1c749d..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartBarView.java +++ /dev/null @@ -1,974 +0,0 @@ -/** - * Copyright (C) 2016-2017 The DirtyUnicorns Project - * Copyright (C) 2014 SlimRoms - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * Much love and respect to SlimRoms for writing and inspiring - * some of the dynamic layout methods - * - * 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. - * - * A new software key based navigation implementation that just vaporizes - * AOSP and quite frankly everything currently on the custom firmware scene - * - */ - -package com.android.systemui.navigation.smartbar; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.app.StatusBarManager; -import android.content.Context; -import android.content.Intent; -import android.content.res.Resources; -import android.graphics.drawable.Drawable; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.media.AudioManager; -import android.net.Uri; -import android.os.Handler; -import android.os.UserHandle; -import android.provider.Settings; -import android.text.TextUtils; -import android.view.GestureDetector; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import android.view.animation.Animation; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.ImageView.ScaleType; -import android.widget.LinearLayout; - -import com.android.internal.utils.du.ActionConstants; -import com.android.internal.utils.du.ActionHandler; -import com.android.internal.utils.du.DUActionUtils; -import com.android.internal.utils.du.Config; -import com.android.internal.utils.du.Config.ActionConfig; -import com.android.internal.utils.du.Config.ButtonConfig; -import com.android.systemui.navigation.BaseEditor; -import com.android.systemui.navigation.BaseNavigationBar; -import com.android.systemui.navigation.Editor; -import com.android.systemui.navigation.OpaLayout; -import com.android.systemui.navigation.Res; -import com.android.systemui.navigation.NavbarOverlayResources; -import com.android.systemui.navigation.smartbar.SmartBackButtonDrawable; -import com.android.systemui.navigation.smartbar.SmartBarEditor; -import com.android.systemui.navigation.smartbar.SmartBarHelper; -import com.android.systemui.navigation.smartbar.SmartBarTransitions; -import com.android.systemui.navigation.smartbar.SmartBarView; -import com.android.systemui.navigation.smartbar.SmartButtonView; -import com.android.systemui.navigation.pulse.PulseController; -import com.android.systemui.navigation.utils.SmartObserver.SmartObservable; -import com.android.systemui.statusbar.phone.BarTransitions; -import com.android.systemui.statusbar.phone.LightBarTransitionsController; -import com.android.systemui.statusbar.policy.KeyButtonDrawable; -import com.android.systemui.R; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Set; - -public class SmartBarView extends BaseNavigationBar { - final static boolean DEBUG = false; - final static String TAG = SmartBarView.class.getSimpleName(); - final static int PULSE_FADE_OUT_DURATION = 250; - final static int PULSE_FADE_IN_DURATION = 200; - - static final int IME_HINT_MODE_HIDDEN = 0; - static final int IME_HINT_MODE_ARROWS = 1; - static final int IME_HINT_MODE_PICKER = 2; - static final int IME_AND_MEDIA_HINT_MODE_ARROWS = 3; - - private static Set<Uri> sUris = new HashSet<Uri>(); - static { - sUris.add(Settings.Secure.getUriFor("smartbar_context_menu_mode")); - sUris.add(Settings.Secure.getUriFor("smartbar_ime_hint_mode")); - sUris.add(Settings.Secure.getUriFor("smartbar_button_animation_style")); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.NAVBAR_BUTTONS_ALPHA)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.PULSE_CUSTOM_BUTTONS_OPACITY)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.SMARTBAR_LONGPRESS_DELAY)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.SMARTBAR_CUSTOM_ICON_SIZE)); - sUris.add(Settings.Secure.getUriFor(Settings.Secure.SMARTBAR_DOUBLETAP_SLEEP)); - } - - private SmartObservable mObservable = new SmartObservable() { - @Override - public Set<Uri> onGetUris() { - return sUris; - } - - @Override - public void onChange(Uri uri) { - if (uri.equals(Settings.Secure.getUriFor("smartbar_context_menu_mode"))) { - updateContextLayoutSettings(); - } else if (uri.equals(Settings.Secure.getUriFor("smartbar_ime_hint_mode"))) { - updateImeHintModeSettings(); - refreshImeHintMode(); - } else if (uri.equals(Settings.Secure.getUriFor("smartbar_button_animation_style"))) { - updateAnimationStyle(); - } else if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.NAVBAR_BUTTONS_ALPHA))) { - updateButtonAlpha(); - } else if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.PULSE_CUSTOM_BUTTONS_OPACITY))) { - updatePulseNavButtonsOpacity(); - } else if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.SMARTBAR_LONGPRESS_DELAY))) { - updateButtonLongpressDelay(); - } else if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.SMARTBAR_CUSTOM_ICON_SIZE))) { - updateCustomIconSize(); - updateCurrentIcons(); - reapplyDarkIntensity(); - } else if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.SMARTBAR_DOUBLETAP_SLEEP))) { - updateNavDoubletapSetting(); - } - } - }; - - boolean mShowMenu; - int mNavigationIconHints = 0; - - private final SmartBarTransitions mBarTransitions; - private SmartBarEditor mEditor; - - // hold a reference to primary buttons in order of appearance on screen - private ArrayList<String> mCurrentSequence = new ArrayList<String>(); - private View mContextRight, mContextLeft, mCurrentContext; - private boolean mHasLeftContext; - private boolean mMusicStreamMuted; - private int mImeHintMode; - private int mButtonAnimationStyle; - private float mCustomAlpha; - private float mCustomIconScale; - public float mPulseNavButtonsOpacity; - private boolean isNavDoubleTapEnabled; - - private boolean mIsMediaPlaying; - - private AudioManager mAudioManager; - - private GestureDetector mNavDoubleTapToSleep; - - private boolean mRotateButtonVisible; - private int mLastRotation = 0; - - @Override - public void onReceive(Intent intent) { - if (AudioManager.STREAM_MUTE_CHANGED_ACTION.equals(intent.getAction()) - || (AudioManager.VOLUME_CHANGED_ACTION.equals(intent.getAction()))) { - int streamType = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1); - if (streamType == AudioManager.STREAM_MUSIC) { - boolean muted = isMusicMuted(streamType); - if (mMusicStreamMuted != muted) { - mMusicStreamMuted = muted; - Handler mHandler = new Handler(); - mHandler.post(new Runnable() { - @Override - public void run() { - setNavigationIconHints(mNavigationIconHints, true); - } - }); - } - } - } - } - - private boolean isMusicMuted(int streamType) { - return streamType == AudioManager.STREAM_MUSIC && - (mAudioManager.isStreamMute(streamType) || - mAudioManager.getStreamVolume(streamType) == 0); - } - - @Override - public void setRotateSuggestionButtonState(boolean visible, boolean skipAnim) { - mRotateButtonVisible = visible; - //skipAnim - setNavigationIconHints(mNavigationIconHints, true); - } - - @Override - public void setLastRotation(int rotation) { - mLastRotation = rotation; - } - - public void rotate() { - getRotationController().setRotationLockedAtAngle(true, mLastRotation); - } - - public SmartBarView(Context context) { - super(context); - mBarTransitions = new SmartBarTransitions(this); - mEditor = new SmartBarEditor(this); - mSmartObserver.addListener(mObservable); - createBaseViews(); - - mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - mMusicStreamMuted = isMusicMuted(AudioManager.STREAM_MUSIC); - - mNavDoubleTapToSleep = new GestureDetector(context, - new GestureDetector.SimpleOnGestureListener() { - @Override - public boolean onDoubleTap(MotionEvent e) { - ActionHandler.performTask(context, ActionHandler.SYSTEMUI_TASK_SCREENOFF); - return true; - } - }); - } - - private final OnTouchListener mSmartBarTouchListener = new OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - return isNavDoubleTapEnabled && !mEditor.isInEditMode() - ? mNavDoubleTapToSleep.onTouchEvent(event) : true; - } - }; - - @Override - public void onAttachedToWindow() { - super.onAttachedToWindow(); - if (getParent() != null) { - final View v = (View)getParent(); - v.setOnTouchListener(mSmartBarTouchListener); - } - } - - @Override - public void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (getParent() != null) { - final View v = (View)getParent(); - v.setOnTouchListener(null); - } - } - - @Override - public void setMediaPlaying(boolean playing) { - mIsMediaPlaying = playing; - setNavigationIconHints(mNavigationIconHints, true); - PulseController mPulse = getPulseController(); - if (mPulse != null) { - mPulse.setMediaPlaying(playing); - } - } - - @Override - public void setPulseColors(boolean colorizedMedia, int[] colors) { - PulseController mPulse = getPulseController(); - if (mPulse != null) { - mPulse.setPulseColors(colorizedMedia, colors); - } - } - - ArrayList<String> getCurrentSequence() { - return mCurrentSequence; - } - - float getButtonAlpha() { - return mCustomAlpha; - } - - @Override - public Editor getEditor() { - return mEditor; - } - - public void setEditMode(boolean on) { - Drawable d = mContext.getResources().getDrawable(R.drawable.smartbar_editmode_color); - setBackgroundColor(on ? d : null); - } - - @Override - public void setResourceMap(NavbarOverlayResources resourceMap) { - super.setResourceMap(resourceMap); - updateCustomIconSize(); - updateCurrentIcons(); - recreateLayouts(); - updateImeHintModeSettings(); - updateContextLayoutSettings(); - updateButtonLongpressDelay(); - updateNavDoubletapSetting(); - } - - @Override - public BarTransitions getBarTransitions() { - return mBarTransitions; - } - - @Override - public LightBarTransitionsController getLightTransitionsController() { - return mBarTransitions.getLightTransitionsController(); - } - - @Override - protected void onInflateFromUser() { - mEditor.notifyScreenOn(mScreenOn); - } - - @Override - public void onRecreateStatusbar() { - mEditor.updateResources(null); - updateCurrentIcons(); - } - - @Override - public void updateNavbarThemedResources(Resources res){ - super.updateNavbarThemedResources(res); - updateCurrentIcons(); - updateButtonAlpha(); - } - - public void updateCurrentIcons() { - for (SmartButtonView button : DUActionUtils.getAllChildren(this, SmartButtonView.class)) { - setButtonDrawable(button); - } - } - - public void setButtonDrawable(SmartButtonView button) { - ButtonConfig config = button.getButtonConfig(); - if (config != null) { - Context ctx = getContext(); - KeyButtonDrawable d = null; - SmartBackButtonDrawable bd = null; - Drawable light = null; - Drawable dark = null; - boolean isBackButton = TextUtils.equals(config.getTag(), Res.Softkey.BUTTON_BACK); - final boolean backAlt = (mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0; - if (!config.hasCustomIcon() - && config.isSystemAction()) { - light = mResourceMap.getActionDrawable(config.getActionConfig(ActionConfig.PRIMARY).getAction()); - dark = mResourceMap.getDarkActionDrawable(config.getActionConfig(ActionConfig.PRIMARY).getAction()); - if (isBackButton) { - bd = SmartBackButtonDrawable.create(light, dark); - bd.setImeVisible(backAlt); - button.setImageDrawable(bd); - } else { - d = KeyButtonDrawable.create(light, dark); - button.setImageDrawable(d); - } - } else { - light = SmartBarHelper.resizeCustomButtonIcon(config.getCurrentIcon(ctx), ctx, mCustomIconScale).mutate(); - dark = SmartBarHelper.resizeCustomButtonIcon(config.getCurrentIcon(ctx), ctx, mCustomIconScale).mutate(); - dark.setColorFilter(new PorterDuffColorFilter(0x4D353535, PorterDuff.Mode.SRC_ATOP)); - if (isBackButton) { - bd = SmartBackButtonDrawable.create(light, dark); - bd.setImeVisible(backAlt); - button.setImageDrawable(bd); - } else { - d = KeyButtonDrawable.create(light, dark); - button.setImageDrawable(d); - } - } - } - } - - @Override - public void setNavigationIconHints(int hints) { - setNavigationIconHints(hints, false); - } - - public SmartButtonView getSmartBackButton() { - return (SmartButtonView) mCurrentView.findViewWithTag(Res.Softkey.BUTTON_BACK); - } - - public SmartButtonView getSmartHomeButton() { - return (SmartButtonView) mCurrentView.findViewWithTag(Res.Softkey.BUTTON_HOME); - } - - public SmartButtonView getSmartMenuButton() { - return (SmartButtonView) mCurrentContext.findViewWithTag(Res.Softkey.MENU_BUTTON); - } - - SmartButtonView getSmartImeSwitchButton() { - return (SmartButtonView) mCurrentContext.findViewWithTag(Res.Softkey.IME_SWITCHER); - } - - SmartButtonView findCurrentButton(String tag) { - return (SmartButtonView) mCurrentView.findViewWithTag(tag); - } - - SmartBackButtonDrawable getSmartBackButtonIcon() { - return (SmartBackButtonDrawable) getSmartBackButton().getDrawable(); - } - - private ViewGroup getHiddenContext() { - return (ViewGroup) (mCurrentContext == mContextRight ? mContextLeft : mContextRight); - } - - private void setImeArrowsVisibility(View currentOrHidden, int visibility) { - ViewGroup contextLeft = (ViewGroup)currentOrHidden.findViewWithTag(Res.Softkey.CONTEXT_VIEW_LEFT); - contextLeft.findViewWithTag(Res.Softkey.IME_ARROW_LEFT).setVisibility(visibility); - ViewGroup contextRight = (ViewGroup)currentOrHidden.findViewWithTag(Res.Softkey.CONTEXT_VIEW_RIGHT); - contextRight.findViewWithTag(Res.Softkey.IME_ARROW_RIGHT).setVisibility(visibility); - } - - private void setMediaArrowsVisibility(boolean backAlt) { - setMediaArrowsVisibility(mCurrentView, (!backAlt && !mRotateButtonVisible && (mIsMediaPlaying /*&& mAudioManager.isMusicActive()*/)) - ? View.VISIBLE : View.INVISIBLE); - } - - private void setMediaArrowsVisibility(View currentOrHidden, int visibility) { - ViewGroup contextLeft = (ViewGroup)currentOrHidden.findViewWithTag(Res.Softkey.CONTEXT_VIEW_LEFT); - contextLeft.findViewWithTag(Res.Softkey.MEDIA_ARROW_LEFT).setVisibility(visibility); - ViewGroup contextRight = (ViewGroup)currentOrHidden.findViewWithTag(Res.Softkey.CONTEXT_VIEW_RIGHT); - contextRight.findViewWithTag(Res.Softkey.MEDIA_ARROW_RIGHT).setVisibility(visibility); - } - - private void setRotationButtonVisibility() { - setRotationButtonVisibility(mCurrentView, mRotateButtonVisible ? View.VISIBLE : View.INVISIBLE); - } - - private void setRotationButtonVisibility(View currentOrHidden, int visibility) { - final ViewGroup contextRight = (ViewGroup)currentOrHidden.findViewWithTag(Res.Softkey.CONTEXT_VIEW_RIGHT); - View current = contextRight.findViewWithTag(Res.Softkey.ROTATION_BUTTON); - if (visibility == View.VISIBLE) { - current.setVisibility(View.VISIBLE); - current.setAlpha(0.0f); - current.animate() - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator _a) { - } - }) - .alpha(1.0f) - .setDuration(100) - .start(); - } else { - current.animate() - .alpha(0.0f) - .setDuration(100) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator _a) { - current.setVisibility(View.INVISIBLE); - } - }) - .start(); - } - } - - @Override - protected boolean areAnyHintsActive() { - return super.areAnyHintsActive() || mShowMenu; - } - - @Override - public void setNavigationIconHints(int hints, boolean force) { - if (!force && hints == mNavigationIconHints) - return; - mEditor.changeEditMode(BaseEditor.MODE_OFF); - final boolean backAlt = (hints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0; - - mNavigationIconHints = hints; - getSmartBackButtonIcon().setImeVisible(backAlt); - - setRotationButtonVisibility(); - if (mRotateButtonVisible) { - getSmartImeSwitchButton().setVisibility(View.INVISIBLE); - setImeArrowsVisibility(mCurrentView, View.INVISIBLE); - setMediaArrowsVisibility(mCurrentView, View.INVISIBLE); - } else { - final boolean showImeButton = /*(*/(hints /*& StatusBarManager.NAVIGATION_HINT_IME_SHOWN)*/ != 0); - switch(mImeHintMode) { - case IME_HINT_MODE_ARROWS: // arrows - getSmartImeSwitchButton().setVisibility(View.INVISIBLE); - setImeArrowsVisibility(mCurrentView, backAlt ? View.VISIBLE : View.INVISIBLE); - setMediaArrowsVisibility(mCurrentView, View.INVISIBLE); - break; - case IME_AND_MEDIA_HINT_MODE_ARROWS: - getSmartImeSwitchButton().setVisibility(View.INVISIBLE); - setImeArrowsVisibility(mCurrentView, backAlt ? View.VISIBLE : View.INVISIBLE); - setMediaArrowsVisibility(backAlt); - break; - case IME_HINT_MODE_PICKER: - getHiddenContext().findViewWithTag(Res.Softkey.IME_SWITCHER).setVisibility(INVISIBLE); - getSmartImeSwitchButton().setVisibility(showImeButton ? View.VISIBLE : View.INVISIBLE); - setImeArrowsVisibility(mCurrentView, View.INVISIBLE); - setMediaArrowsVisibility(mCurrentView, View.INVISIBLE); - break; - default: // hidden - getSmartImeSwitchButton().setVisibility(View.INVISIBLE); - setImeArrowsVisibility(mCurrentView, View.INVISIBLE); - setMediaArrowsVisibility(mCurrentView, View.INVISIBLE); - } - } - - // Update menu button in case the IME state has changed. - setMenuVisibility(mShowMenu, true); - setDisabledFlags(mDisabledFlags, true); - - reapplyDarkIntensity(); - } - - private void reapplyDarkIntensity() { - mBarTransitions.reapplyDarkIntensity(); - } - - @Override - public void setDisabledFlags(int disabledFlags, boolean force) { - super.setDisabledFlags(disabledFlags, force); - mEditor.changeEditMode(BaseEditor.MODE_OFF); - - final boolean disableHome = ((disabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0); - final boolean disableRecent = ((disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0); - final boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0) - && ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) == 0); - - OpaLayout opaBack = (OpaLayout)getSmartBackButton().getParent(); - opaBack.setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE); - OpaLayout opaHome = (OpaLayout)getSmartHomeButton().getParent(); - opaHome.setVisibility(disableHome ? View.INVISIBLE : View.VISIBLE); - - // if any stock buttons are disabled, it's likely proper - // to disable custom buttons as well - for (String buttonTag : mCurrentSequence) { - SmartButtonView v = findCurrentButton(buttonTag); - OpaLayout opa = (OpaLayout) v.getParent(); - if (v != null && v != getSmartBackButton() && v != getSmartHomeButton()) { - if (disableHome || disableBack || disableRecent) { - opa.setVisibility(View.INVISIBLE); - } else { - opa.setVisibility(View.VISIBLE); - } - } - } - - if (disableHome) { - if (mImeHintMode == 3) { - setMediaArrowsVisibility(mCurrentView, View.INVISIBLE); - } - setRotationButtonVisibility(mCurrentView, View.INVISIBLE); - } else { - if (mImeHintMode == 3) { - final boolean backAlt = (mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0; - setMediaArrowsVisibility(backAlt); - } - setRotationButtonVisibility(); - } - } - - @Override - public void notifyScreenStateChange(boolean screenOn) { - super.notifyScreenStateChange(screenOn); - mEditor.notifyScreenOn(screenOn); - ViewGroup hidden = (ViewGroup) getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - for (String buttonTag : mCurrentSequence) { - SmartButtonView v = findCurrentButton(buttonTag); - if (v != null) { - v.onScreenStateChanged(screenOn); - } - v = (SmartButtonView) hidden.findViewWithTag(buttonTag); - if (v != null) { - v.onScreenStateChanged(screenOn); - } - } - // onStopPulse may not have had time to animate alpha to proper value before screen went - // off. Reset alpha when we come back on. we should never have pulse running when this is called - final View currentNavButtons = getCurrentView().findViewWithTag(Res.Common.NAV_BUTTONS); - final View hiddenNavButtons = getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - final float fadeAlpha = mCustomAlpha; - if (screenOn && (currentNavButtons.getAlpha() != fadeAlpha || hiddenNavButtons.getAlpha() != fadeAlpha)) { - hiddenNavButtons.setAlpha(fadeAlpha); - currentNavButtons.setAlpha(fadeAlpha); - } - } - - @Override - protected void onKeyguardShowing(boolean showing) { - mEditor.setKeyguardShowing(showing); - // TODO: temp hax to address package manager not having activity icons ready yet - // this is new to N, likely part of new optimized boot time. In theory, activity - // icons should be ready by the time lockscreen goes away. We will be stuck with this - // unless we can find a way for package manager to have activity icons ready sooner, but - // do so without slowing faster boot time. - if (!showing) { - ViewGroup hidden = (ViewGroup) getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - for (String buttonTag : mCurrentSequence) { - SmartButtonView v = findCurrentButton(buttonTag); - if (v != null) { - ButtonConfig config = v.getButtonConfig(); - if (config != null && v.getDrawable() == null) { - v.setImageDrawable(config.getCurrentIcon(getContext())); - } - } - v = (SmartButtonView) hidden.findViewWithTag(buttonTag); - if (v != null) { - ButtonConfig config = v.getButtonConfig(); - if (config != null && v.getDrawable() == null) { - v.setImageDrawable(config.getCurrentIcon(getContext())); - } - } - } - } - } - - @Override - public void setMenuVisibility(final boolean show) { - setMenuVisibility(show, false); - } - - @Override - public void setMenuVisibility(final boolean show, final boolean force) { - if (!force && mShowMenu == show) - return; - mEditor.changeEditMode(BaseEditor.MODE_OFF); - mShowMenu = show; - - // Only show Menu if IME switcher not shown. - final boolean shouldShow = mShowMenu && - /*(*/(mNavigationIconHints == 0 /*& StatusBarManager.NAVIGATION_HINT_IME_SHOWN) == 0*/); - getSmartMenuButton().setVisibility(shouldShow ? View.VISIBLE : View.INVISIBLE); - } - - void recreateLayouts() { - mCurrentSequence.clear(); - ArrayList<ButtonConfig> buttonConfigs; - buttonConfigs = Config.getConfig(getContext(), - ActionConstants.getDefaults(ActionConstants.SMARTBAR)); - recreateButtonLayout(buttonConfigs, false, true); - recreateButtonLayout(buttonConfigs, true, false); - mContextLeft = mCurrentView.findViewWithTag(Res.Softkey.CONTEXT_VIEW_LEFT); - mContextRight = mCurrentView.findViewWithTag(Res.Softkey.CONTEXT_VIEW_RIGHT); - mCurrentContext = mHasLeftContext ? mContextLeft : mContextRight; - updateCurrentIcons(); - setDisabledFlags(mDisabledFlags, true); - setMenuVisibility(mShowMenu, true); - setNavigationIconHints(mNavigationIconHints, true); - updateAnimationStyle(); - updateButtonAlpha(); - setOpaLandscape(mVertical); - } - - @Override - protected void onDispose() { - removeAllViews(); - } - - @Override - protected void notifyBootCompleted() { - updateCurrentIcons(); - } - - @Override - public void reorient() { - mEditor.prepareToReorient(); - super.reorient(); - mBarTransitions.init(); - mEditor.reorient(mCurrentView == mRot90); - mContextLeft = mCurrentView.findViewWithTag(Res.Softkey.CONTEXT_VIEW_LEFT); - mContextRight = mCurrentView.findViewWithTag(Res.Softkey.CONTEXT_VIEW_RIGHT); - mCurrentContext = mHasLeftContext ? mContextLeft : mContextRight; - setDisabledFlags(mDisabledFlags, true); - setMenuVisibility(mShowMenu, true); - setNavigationIconHints(mNavigationIconHints, true); - setButtonAlpha(); - updatePulseNavButtonsOpacity(); - setOpaLandscape(mVertical); - } - - private void updateContextLayoutSettings() { - boolean onLeft = Settings.Secure.getIntForUser(getContext().getContentResolver(), - "smartbar_context_menu_mode", 0, UserHandle.USER_CURRENT) == 1; - if (mHasLeftContext != onLeft) { - getSmartMenuButton().setVisibility(INVISIBLE); - getSmartImeSwitchButton().setVisibility(INVISIBLE); - getHiddenContext().findViewWithTag(Res.Softkey.MENU_BUTTON).setVisibility(INVISIBLE); - getHiddenContext().findViewWithTag(Res.Softkey.IME_SWITCHER).setVisibility(INVISIBLE); - mHasLeftContext = onLeft; - mCurrentContext = mHasLeftContext ? mContextLeft : mContextRight; - setDisabledFlags(mDisabledFlags, true); - setMenuVisibility(mShowMenu, true); - setNavigationIconHints(mNavigationIconHints, true); - } - } - - private void updateImeHintModeSettings() { - mImeHintMode = Settings.Secure.getIntForUser(getContext().getContentResolver(), - "smartbar_ime_hint_mode", IME_HINT_MODE_HIDDEN, UserHandle.USER_CURRENT); - } - - private void updateAnimationStyle() { - mButtonAnimationStyle = Settings.Secure.getIntForUser(getContext().getContentResolver(), - "smartbar_button_animation_style", SmartButtonView.ANIM_STYLE_RIPPLE, UserHandle.USER_CURRENT); - ViewGroup hidden = (ViewGroup) getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - for (String buttonTag : mCurrentSequence) { - SmartButtonView v = findCurrentButton(buttonTag); - if (v != null) { - v.setAnimationStyle(mButtonAnimationStyle); - } - v = (SmartButtonView) hidden.findViewWithTag(buttonTag); - if (v != null) { - v.setAnimationStyle(mButtonAnimationStyle); - } - } - } - - private void setOpaLandscape(boolean landscape) { - for (String buttonTag : mCurrentSequence) { - SmartButtonView v = findCurrentButton(buttonTag); - OpaLayout opa = (OpaLayout) v.getParent(); - opa.setLandscape(landscape); - } - } - - private void refreshImeHintMode() { - getSmartMenuButton().setVisibility(INVISIBLE); - getSmartImeSwitchButton().setVisibility(INVISIBLE); - getHiddenContext().findViewWithTag(Res.Softkey.MENU_BUTTON).setVisibility(INVISIBLE); - getHiddenContext().findViewWithTag(Res.Softkey.IME_SWITCHER).setVisibility(INVISIBLE); - setNavigationIconHints(mNavigationIconHints, true); - } - - private void updateNavDoubletapSetting() { - isNavDoubleTapEnabled = Settings.Secure.getIntForUser(getContext().getContentResolver(), - Settings.Secure.SMARTBAR_DOUBLETAP_SLEEP, 1, UserHandle.USER_CURRENT) == 1; - } - - void recreateButtonLayout(ArrayList<ButtonConfig> buttonConfigs, boolean landscape, - boolean updateCurrentButtons) { - int extraKeyWidth = getContext().getResources().getDimensionPixelSize(R.dimen.navigation_extra_key_width); - int extraKeyHeight = getContext().getResources().getDimensionPixelSize(R.dimen.navigation_extra_key_height); - - LinearLayout navButtonLayout = (LinearLayout) (landscape ? mRot90 - .findViewWithTag(Res.Common.NAV_BUTTONS) : mRot0 - .findViewWithTag(Res.Common.NAV_BUTTONS)); - - navButtonLayout.removeAllViews(); - - if (buttonConfigs == null) { - buttonConfigs = Config.getConfig(getContext(), - ActionConstants.getDefaults(ActionConstants.SMARTBAR)); - } - - // left context frame layout - FrameLayout leftContext = generateContextKeyLayout(landscape, - Res.Softkey.CONTEXT_VIEW_LEFT, - extraKeyWidth, extraKeyHeight); - SmartBarHelper.addViewToRoot(navButtonLayout, leftContext, landscape); - - // tablets get a spacer here - if (BaseNavigationBar.sIsTablet) { - SmartBarHelper.addViewToRoot(navButtonLayout, SmartBarHelper.makeSeparator(getContext()), - landscape); - } - - // softkey buttons - ButtonConfig buttonConfig; - int dimen = SmartBarHelper.getButtonSize(getContext(), buttonConfigs.size(), landscape); - - for (int j = 0; j < buttonConfigs.size(); j++) { - buttonConfig = buttonConfigs.get(j); - OpaLayout v = SmartBarHelper.generatePrimaryKey(getContext(), this, landscape, buttonConfig); - SmartBarHelper.updateButtonSize(v, dimen, landscape); - SmartButtonView sb = v.getButton(); - SmartBarHelper.updateButtonSize(sb, dimen, landscape); - SmartBarHelper.addViewToRoot(navButtonLayout, v, landscape); - - // only add once for master sequence holder - if (updateCurrentButtons) { - mCurrentSequence.add((String) v.getButton().getTag()); - } - - // phones get a spacer between each button - // tablets get a spacer before first and after last - if (j != buttonConfigs.size() - 1 && !BaseNavigationBar.sIsTablet) { - // adding spacers between buttons on phones - SmartBarHelper.addViewToRoot(navButtonLayout, - SmartBarHelper.makeSeparator(getContext()), landscape); - } - if (j == buttonConfigs.size() - 1 && BaseNavigationBar.sIsTablet) { - // adding spacers after last button on tablets - SmartBarHelper.addViewToRoot(navButtonLayout, - SmartBarHelper.makeSeparator(getContext()), landscape); - } - } - - // right context frame layout - FrameLayout rightContext = generateContextKeyLayout(landscape, - Res.Softkey.CONTEXT_VIEW_RIGHT, - extraKeyWidth, extraKeyHeight); - SmartBarHelper.addViewToRoot(navButtonLayout, rightContext, landscape); - } - - private FrameLayout generateContextKeyLayout(boolean landscape, String leftOrRight, - int extraKeyWidth, int extraKeyHeight) { - FrameLayout contextLayout = new FrameLayout(getContext()); - contextLayout.setLayoutParams(new LinearLayout.LayoutParams( - landscape && !BaseNavigationBar.sIsTablet ? LayoutParams.MATCH_PARENT - : extraKeyWidth, landscape && !BaseNavigationBar.sIsTablet ? extraKeyHeight - : LayoutParams.MATCH_PARENT)); - contextLayout.setTag(leftOrRight); - - SmartButtonView menuKeyView = generateContextKey(landscape, Res.Softkey.MENU_BUTTON); - contextLayout.addView(menuKeyView); - - SmartButtonView imeChanger = generateContextKey(landscape, Res.Softkey.IME_SWITCHER); - contextLayout.addView(imeChanger); - - if (TextUtils.equals(Res.Softkey.CONTEXT_VIEW_LEFT, leftOrRight)) { - SmartButtonView imeArrowLeft = generateContextKey(landscape, Res.Softkey.IME_ARROW_LEFT); - contextLayout.addView(imeArrowLeft); - SmartButtonView mediaArrowLeft = generateContextKey(landscape, Res.Softkey.MEDIA_ARROW_LEFT); - contextLayout.addView(mediaArrowLeft); - } else if (TextUtils.equals(Res.Softkey.CONTEXT_VIEW_RIGHT, leftOrRight)) { - SmartButtonView imeArrowRight = generateContextKey(landscape, Res.Softkey.IME_ARROW_RIGHT); - contextLayout.addView(imeArrowRight); - SmartButtonView mediaArrowRight = generateContextKey(landscape, Res.Softkey.MEDIA_ARROW_RIGHT); - contextLayout.addView(mediaArrowRight); - SmartButtonView rotationButton = generateContextKey(landscape, Res.Softkey.ROTATION_BUTTON); - contextLayout.addView(rotationButton); - } - - return contextLayout; - } - - private SmartButtonView generateContextKey(boolean landscape, String tag) { - SmartButtonView v = new SmartButtonView(getContext()); - ButtonConfig buttonConfig = new ButtonConfig(getContext()); - ActionConfig actionConfig = new ActionConfig(getContext()); - - int extraKeyWidth = getContext().getResources().getDimensionPixelSize(R.dimen.navigation_extra_key_width); - int extraKeyHeight = getContext().getResources().getDimensionPixelSize(R.dimen.navigation_extra_key_height); - - v.setHost(this); - v.setLayoutParams(new FrameLayout.LayoutParams( - landscape && !BaseNavigationBar.sIsTablet ? LayoutParams.MATCH_PARENT : extraKeyWidth, - landscape && !BaseNavigationBar.sIsTablet ? extraKeyHeight : LayoutParams.MATCH_PARENT)); - v.loadRipple(); - v.setScaleType(ScaleType.CENTER_INSIDE); - - if (tag.equals(Res.Softkey.MENU_BUTTON)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_MENU); - } else if (tag.equals(Res.Softkey.IME_SWITCHER)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_IME_SWITCHER); - } else if (tag.equals(Res.Softkey.IME_ARROW_LEFT)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_IME_NAVIGATION_LEFT); - } else if (tag.equals(Res.Softkey.IME_ARROW_RIGHT)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_IME_NAVIGATION_RIGHT); - } else if (tag.equals(Res.Softkey.MEDIA_ARROW_LEFT)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_MEDIA_PREVIOUS); - } else if (tag.equals(Res.Softkey.MEDIA_ARROW_RIGHT)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_MEDIA_NEXT); - } else if (tag.equals(Res.Softkey.ROTATION_BUTTON)) { - actionConfig = new ActionConfig(getContext(), ActionHandler.SYSTEMUI_TASK_ROTATION); - } - - buttonConfig.setActionConfig(actionConfig, ActionConfig.PRIMARY); - buttonConfig.setTag(tag); - v.setButtonConfig(buttonConfig); - v.setVisibility(View.INVISIBLE); - setButtonDrawable(v); - v.setContentDescription(buttonConfig.getActionConfig(ActionConfig.PRIMARY).getLabel()); - v.setAnimationStyle(SmartButtonView.ANIM_STYLE_RIPPLE); - return v; - } - - boolean isBarPulseFaded() { - if (mPulse == null) { - return false; - } else { - return mPulse.shouldDrawPulse(); - } - } - - private void updateButtonAlpha() { - mCustomAlpha = alphaIntToFloat(Settings.Secure.getIntForUser(getContext().getContentResolver(), - Settings.Secure.NAVBAR_BUTTONS_ALPHA, 255, UserHandle.USER_CURRENT)); - setButtonAlpha(); - } - - private void setButtonAlpha() { - // only set this if pulse is not running. If pulse is running - // we will set proper alpha when it ends - if (!isBarPulseFaded()) { - final View currentNavButtons = getCurrentView().findViewWithTag(Res.Common.NAV_BUTTONS); - final View hiddenNavButtons = getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - final float fadeAlpha = mCustomAlpha; - currentNavButtons.setAlpha(fadeAlpha); - hiddenNavButtons.setAlpha(fadeAlpha); - } - } - - private void updatePulseNavButtonsOpacity() { - mPulseNavButtonsOpacity = alphaIntToFloat(Settings.Secure.getIntForUser(getContext().getContentResolver(), - Settings.Secure.PULSE_CUSTOM_BUTTONS_OPACITY, 200, UserHandle.USER_CURRENT)); - if (isBarPulseFaded()) { - final View currentNavButtons = getCurrentView().findViewWithTag(Res.Common.NAV_BUTTONS); - final View hiddenNavButtons = getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - currentNavButtons.setAlpha(mPulseNavButtonsOpacity); - hiddenNavButtons.setAlpha(mPulseNavButtonsOpacity); - } - } - - @Override - public boolean onStartPulse(Animation animatePulseIn) { - if (mEditor.getMode() == BaseEditor.MODE_ON) { - mEditor.changeEditMode(BaseEditor.MODE_OFF); - } - final View currentNavButtons = getCurrentView().findViewWithTag(Res.Common.NAV_BUTTONS); - final View hiddenNavButtons = getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - final float fadeAlpha = mPulseNavButtonsOpacity; - - // no need to animate the GONE view, but keep alpha inline since onStartPulse - // is a oneshot call - hiddenNavButtons.setAlpha(fadeAlpha); - currentNavButtons.animate() - .alpha(fadeAlpha) - .setDuration(PULSE_FADE_OUT_DURATION) - .setListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator _a) { - // shouldn't be null, mPulse just called into us - if (mPulse != null) { - mPulse.turnOnPulse(); - } - } - }) - .start(); - return true; - } - - @Override - public void onStopPulse(Animation animatePulseOut) { - final View currentNavButtons = getCurrentView().findViewWithTag(Res.Common.NAV_BUTTONS); - final View hiddenNavButtons = getHiddenView().findViewWithTag(Res.Common.NAV_BUTTONS); - final float fadeAlpha = mCustomAlpha; - hiddenNavButtons.setAlpha(fadeAlpha); - currentNavButtons.animate() - .alpha(fadeAlpha) - .setDuration(PULSE_FADE_IN_DURATION) - .start(); - } - - private void updateButtonLongpressDelay() { - int systemLpDelay = ViewConfiguration.getLongPressTimeout(); - int userDelay = Settings.Secure.getIntForUser(getContext().getContentResolver(), - Settings.Secure.SMARTBAR_LONGPRESS_DELAY, 0, UserHandle.USER_CURRENT); - switch (userDelay) { - default: - SmartButtonView.setButtonLongpressDelay(systemLpDelay - 100); - break; - case 1: - SmartButtonView.setButtonLongpressDelay(systemLpDelay); - break; - case 2: - SmartButtonView.setButtonLongpressDelay(systemLpDelay + 200); - break; - } - } - - private void updateCustomIconSize() { - int iconSize = Settings.Secure.getIntForUser(getContext().getContentResolver(), - Settings.Secure.SMARTBAR_CUSTOM_ICON_SIZE, 60, UserHandle.USER_CURRENT); - mCustomIconScale = 0.01f * iconSize; - } -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartButtonRipple.java b/src/com/android/systemui/navigation/smartbar/SmartButtonRipple.java deleted file mode 100644 index 7f6622e..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartButtonRipple.java +++ /dev/null @@ -1,399 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.systemui.navigation.smartbar; - -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.ObjectAnimator; -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.CanvasProperty; -import android.graphics.Color; -import android.graphics.ColorFilter; -import android.graphics.Paint; -import android.graphics.PixelFormat; -import android.graphics.drawable.Drawable; -import android.view.DisplayListCanvas; -import android.view.RenderNodeAnimator; -import android.view.View; -import android.view.animation.Interpolator; -import android.view.animation.PathInterpolator; - -import com.android.internal.utils.du.DUActionUtils; -import com.android.systemui.R; -import com.android.systemui.navigation.DarkIntensity; - -import java.util.ArrayList; -import java.util.HashSet; - -public class SmartButtonRipple extends Drawable implements DarkIntensity{ - - private static final float GLOW_MAX_SCALE_FACTOR = 1.35f; - private static final float GLOW_MAX_ALPHA = 0.2f; - private static final float GLOW_MAX_ALPHA_DARK = 0.1f; - private static final int ANIMATION_DURATION_SCALE = 350; - private static final int ANIMATION_DURATION_FADE = 450; - - private Paint mRipplePaint; - private CanvasProperty<Float> mLeftProp; - private CanvasProperty<Float> mTopProp; - private CanvasProperty<Float> mRightProp; - private CanvasProperty<Float> mBottomProp; - private CanvasProperty<Float> mRxProp; - private CanvasProperty<Float> mRyProp; - private CanvasProperty<Paint> mPaintProp; - private float mGlowAlpha = 0f; - private float mGlowScale = 1f; - private boolean mPressed; - private boolean mDrawingHardwareGlow; - private int mMaxWidth; - private boolean mLastDark; - private boolean mDark; - - private final Interpolator mInterpolator = new LogInterpolator(); - private final Interpolator mAlphaExitInterpolator = new PathInterpolator(0.4f, 0f, 1f, 1f); - private boolean mSupportHardware; - private final View mTargetView; - - private final HashSet<Animator> mRunningAnimations = new HashSet<>(); - private final ArrayList<Animator> mTmpArray = new ArrayList<>(); - - private int mRippleColor; - private boolean mEnabled; - - public SmartButtonRipple(Context ctx, View targetView) { - final Context context = ctx; - mMaxWidth = context.getResources().getDimensionPixelSize(R.dimen.key_button_ripple_max_width); - mTargetView = targetView; - mRippleColor = context.getResources().getColor(R.color.navbutton_ripple_color); - } - - public void setDarkIntensity(float darkIntensity) { - mDark = darkIntensity >= 0.5f; - } - - private Paint getRipplePaint() { - if (mRipplePaint == null) { - mRipplePaint = new Paint(); - mRipplePaint.setAntiAlias(true); - mRipplePaint.setColor(mLastDark ? 0xff000000 : mRippleColor); - } - return mRipplePaint; - } - - private void drawSoftware(Canvas canvas) { - if (mGlowAlpha > 0f) { - final Paint p = getRipplePaint(); - p.setAlpha((int)(mGlowAlpha * 255f)); - - final float w = getBounds().width(); - final float h = getBounds().height(); - final boolean horizontal = w > h; - final float diameter = getRippleSize() * mGlowScale; - final float radius = diameter * .5f; - final float cx = w * .5f; - final float cy = h * .5f; - final float rx = horizontal ? radius : cx; - final float ry = horizontal ? cy : radius; - final float corner = horizontal ? cy : cx; - - canvas.drawRoundRect(cx - rx, cy - ry, - cx + rx, cy + ry, - corner, corner, p); - } - } - - public void setEnabled(boolean enabled) { - mEnabled = enabled; - } - - @Override - public void draw(Canvas canvas) { - if (mEnabled) { - mSupportHardware = canvas.isHardwareAccelerated(); - if (mSupportHardware) { - drawHardware((DisplayListCanvas) canvas); - } else { - drawSoftware(canvas); - } - } - } - - @Override - public void setAlpha(int alpha) { - // Not supported. - } - - @Override - public void setColorFilter(ColorFilter colorFilter) { - // Not supported. - } - - @Override - public int getOpacity() { - return PixelFormat.TRANSLUCENT; - } - - private boolean isHorizontal() { - return getBounds().width() > getBounds().height(); - } - - private void drawHardware(DisplayListCanvas c) { - if (mDrawingHardwareGlow) { - c.drawRoundRect(mLeftProp, mTopProp, mRightProp, mBottomProp, mRxProp, mRyProp, - mPaintProp); - } - } - - public float getGlowAlpha() { - return mGlowAlpha; - } - - public void setGlowAlpha(float x) { - mGlowAlpha = x; - invalidateSelf(); - } - - public float getGlowScale() { - return mGlowScale; - } - - public void setGlowScale(float x) { - mGlowScale = x; - invalidateSelf(); - } - - private float getMaxGlowAlpha() { - return mLastDark ? GLOW_MAX_ALPHA_DARK : GLOW_MAX_ALPHA; - } - - @Override - protected boolean onStateChange(int[] state) { - boolean pressed = false; - for (int i = 0; i < state.length; i++) { - if (state[i] == android.R.attr.state_pressed) { - pressed = true; - break; - } - } - if (pressed != mPressed) { - setPressed(pressed); - mPressed = pressed; - return true; - } else { - return false; - } - } - - @Override - public void jumpToCurrentState() { - cancelAnimations(); - } - - @Override - public boolean isStateful() { - return true; - } - - @Override - public boolean hasFocusStateSpecified() { - return true; - } - - public void setPressed(boolean pressed) { - if (mDark != mLastDark && pressed) { - mRipplePaint = null; - mLastDark = mDark; - } - if (mSupportHardware) { - setPressedHardware(pressed); - } else { - setPressedSoftware(pressed); - } - } - - private void cancelAnimations() { - mTmpArray.addAll(mRunningAnimations); - int size = mTmpArray.size(); - for (int i = 0; i < size; i++) { - Animator a = mTmpArray.get(i); - a.cancel(); - } - mTmpArray.clear(); - mRunningAnimations.clear(); - } - - private void setPressedSoftware(boolean pressed) { - if (pressed) { - enterSoftware(); - } else { - exitSoftware(); - } - } - - private void enterSoftware() { - cancelAnimations(); - mGlowAlpha = getMaxGlowAlpha(); - ObjectAnimator scaleAnimator = ObjectAnimator.ofFloat(this, "glowScale", - 0f, GLOW_MAX_SCALE_FACTOR); - scaleAnimator.setInterpolator(mInterpolator); - scaleAnimator.setDuration(ANIMATION_DURATION_SCALE); - scaleAnimator.addListener(mAnimatorListener); - scaleAnimator.start(); - mRunningAnimations.add(scaleAnimator); - } - - private void exitSoftware() { - ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(this, "glowAlpha", mGlowAlpha, 0f); - alphaAnimator.setInterpolator(mAlphaExitInterpolator); - alphaAnimator.setDuration(ANIMATION_DURATION_FADE); - alphaAnimator.addListener(mAnimatorListener); - alphaAnimator.start(); - mRunningAnimations.add(alphaAnimator); - } - - private void setPressedHardware(boolean pressed) { - if (pressed) { - enterHardware(); - } else { - exitHardware(); - } - } - - /** - * Sets the left/top property for the round rect to {@code prop} depending on whether we are - * horizontal or vertical mode. - */ - private void setExtendStart(CanvasProperty<Float> prop) { - if (isHorizontal()) { - mLeftProp = prop; - } else { - mTopProp = prop; - } - } - - private CanvasProperty<Float> getExtendStart() { - return isHorizontal() ? mLeftProp : mTopProp; - } - - /** - * Sets the right/bottom property for the round rect to {@code prop} depending on whether we are - * horizontal or vertical mode. - */ - private void setExtendEnd(CanvasProperty<Float> prop) { - if (isHorizontal()) { - mRightProp = prop; - } else { - mBottomProp = prop; - } - } - - private CanvasProperty<Float> getExtendEnd() { - return isHorizontal() ? mRightProp : mBottomProp; - } - - private int getExtendSize() { - return isHorizontal() ? getBounds().width() : getBounds().height(); - } - - private int getRippleSize() { - int size = isHorizontal() ? getBounds().width() : getBounds().height(); - return Math.min(size, mMaxWidth); - } - - private void enterHardware() { - cancelAnimations(); - mDrawingHardwareGlow = true; - setExtendStart(CanvasProperty.createFloat(getExtendSize() / 2)); - final RenderNodeAnimator startAnim = new RenderNodeAnimator(getExtendStart(), - getExtendSize()/2 - GLOW_MAX_SCALE_FACTOR * getRippleSize()/2); - startAnim.setDuration(ANIMATION_DURATION_SCALE); - startAnim.setInterpolator(mInterpolator); - startAnim.addListener(mAnimatorListener); - startAnim.setTarget(mTargetView); - - setExtendEnd(CanvasProperty.createFloat(getExtendSize() / 2)); - final RenderNodeAnimator endAnim = new RenderNodeAnimator(getExtendEnd(), - getExtendSize()/2 + GLOW_MAX_SCALE_FACTOR * getRippleSize()/2); - endAnim.setDuration(ANIMATION_DURATION_SCALE); - endAnim.setInterpolator(mInterpolator); - endAnim.addListener(mAnimatorListener); - endAnim.setTarget(mTargetView); - - if (isHorizontal()) { - mTopProp = CanvasProperty.createFloat(0f); - mBottomProp = CanvasProperty.createFloat(getBounds().height()); - mRxProp = CanvasProperty.createFloat(getBounds().height()/2); - mRyProp = CanvasProperty.createFloat(getBounds().height()/2); - } else { - mLeftProp = CanvasProperty.createFloat(0f); - mRightProp = CanvasProperty.createFloat(getBounds().width()); - mRxProp = CanvasProperty.createFloat(getBounds().width()/2); - mRyProp = CanvasProperty.createFloat(getBounds().width()/2); - } - - mGlowScale = GLOW_MAX_SCALE_FACTOR; - mGlowAlpha = getMaxGlowAlpha(); - mRipplePaint = getRipplePaint(); - mRipplePaint.setAlpha((int) (mGlowAlpha * 255)); - mPaintProp = CanvasProperty.createPaint(mRipplePaint); - - startAnim.start(); - endAnim.start(); - mRunningAnimations.add(startAnim); - mRunningAnimations.add(endAnim); - - invalidateSelf(); - } - - private void exitHardware() { - mPaintProp = CanvasProperty.createPaint(getRipplePaint()); - final RenderNodeAnimator opacityAnim = new RenderNodeAnimator(mPaintProp, - RenderNodeAnimator.PAINT_ALPHA, 0); - opacityAnim.setDuration(ANIMATION_DURATION_FADE); - opacityAnim.setInterpolator(mAlphaExitInterpolator); - opacityAnim.addListener(mAnimatorListener); - opacityAnim.setTarget(mTargetView); - - opacityAnim.start(); - mRunningAnimations.add(opacityAnim); - - invalidateSelf(); - } - - private final AnimatorListenerAdapter mAnimatorListener = - new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator animation) { - mRunningAnimations.remove(animation); - if (mRunningAnimations.isEmpty() && !mPressed) { - mDrawingHardwareGlow = false; - invalidateSelf(); - } - } - }; - - /** - * Interpolator with a smooth log deceleration - */ - private static final class LogInterpolator implements Interpolator { - @Override - public float getInterpolation(float input) { - return 1 - (float) Math.pow(400, -input * 1.4); - } - } -} diff --git a/src/com/android/systemui/navigation/smartbar/SmartButtonView.java b/src/com/android/systemui/navigation/smartbar/SmartButtonView.java deleted file mode 100644 index d2ec8ac..0000000 --- a/src/com/android/systemui/navigation/smartbar/SmartButtonView.java +++ /dev/null @@ -1,416 +0,0 @@ -/** - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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.navigation.smartbar; - -import com.android.systemui.navigation.smartbar.SmartBarView; -import com.android.systemui.navigation.smartbar.SmartButtonRipple; -import com.android.systemui.navigation.OpaLayout; -import com.android.internal.utils.du.ActionHandler; -import com.android.internal.utils.du.Config.ActionConfig; -import com.android.internal.utils.du.Config.ButtonConfig; -import com.android.systemui.navigation.Res; - -import android.animation.ObjectAnimator; -import android.app.ActivityManager; -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.media.AudioManager; -import android.os.Handler; -import android.os.Looper; -import android.text.TextUtils; -import android.util.AttributeSet; -//import android.content.res.ThemeConfig; -import android.view.HapticFeedbackConstants; -import android.view.MotionEvent; -import android.view.SoundEffectConstants; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.accessibility.AccessibilityEvent; -import android.view.animation.OvershootInterpolator; -import android.widget.ImageView; - -public class SmartButtonView extends ImageView { - private static final String TAG = "StatusBar.KeyButtonView"; - private static final boolean DEBUG = false; - - // AOSP values feel rather slow, shave off some slack - // changing double tap timeout also affects single tap - // so we can't play so much with it - private static final int DT_TIMEOUT = ViewConfiguration.getDoubleTapTimeout(); - private static int sDoubleTapTimeout = DT_TIMEOUT - 100; - - private static int sLongPressTimeout; - - public static final int ANIM_STYLE_RIPPLE = 0; - public static final int ANIM_STYLE_FLIP = 2; - public static final int ANIM_STYLE_PIXEL = 3; - public static final int ANIM_STYLE_PIXEL_HOME = 4; - public static final int ANIM_STYLE_PIXEL_HOME_RIPPLE = 5; - - private boolean isDoubleTapPending; - private boolean wasConsumed; - private boolean mInEditMode; - private int mAnimStyle = 0; - private ObjectAnimator mFlipAnim = null; - private ButtonConfig mConfig; - private SmartBarView mHost; - - private boolean mIsRippleEnabled; - - static AudioManager mAudioManager; - static AudioManager getAudioManager(Context context) { - if (mAudioManager == null) - mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - return mAudioManager; - } - - public SmartButtonView(Context context) { - this(context, null); - } - - public SmartButtonView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SmartButtonView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public SmartButtonView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - setClickable(true); - setLongClickable(false); - mAudioManager = getAudioManager(context); - } - - public void setHost(SmartBarView host) { - mHost = host; - } - - public void setAnimationStyle(int style) { - mAnimStyle = style; - switch (style) { - case ANIM_STYLE_RIPPLE: - setPixelEnabled(false, false, false); - setRippleEnabled(true); - mFlipAnim = null; - break; - case ANIM_STYLE_FLIP: - setPixelEnabled(false, false, false); - setRippleEnabled(false); - break; - case ANIM_STYLE_PIXEL: - setPixelEnabled(true, false, false); - setRippleEnabled(false); - mFlipAnim = null; - break; - case ANIM_STYLE_PIXEL_HOME: - setPixelEnabled(true, true, false); - setRippleEnabled(false); - mFlipAnim = null; - break; - case ANIM_STYLE_PIXEL_HOME_RIPPLE: - setPixelEnabled(true, true, true); - mFlipAnim = null; - break; - } - } - - public void setPixelEnabled(boolean enabled, boolean homeOnly, boolean rippleForOthers) { - if (getParent() != null && getParent() instanceof OpaLayout) { - OpaLayout opa = (OpaLayout)getParent(); - opa.setOpaEnabled(enabled); - if (enabled) { - boolean isHomeButton = TextUtils.equals(mConfig.getTag(), Res.Softkey.BUTTON_HOME); - if (!rippleForOthers) { - opa.setOpaVisibilityHome(homeOnly, isHomeButton); - } else { - if (isHomeButton) { - opa.setOpaVisibilityHome(homeOnly, isHomeButton); - } else { - opa.setOpaEnabled(!enabled); - setRippleEnabled(enabled); - } - } - } - } - } - - private void setRippleEnabled(boolean enabled) { - mIsRippleEnabled = enabled; - if (getBackground() != null && getBackground() instanceof SmartButtonRipple) { - ((SmartButtonRipple) getBackground()).setEnabled(enabled); - } - } - - public void setRippleDarkIntensity(float darkIntensity) { - if (mIsRippleEnabled && getBackground() != null && getBackground() instanceof SmartButtonRipple) { - ((SmartButtonRipple) getBackground()).setDarkIntensity(darkIntensity); - } - } - - private void fireActionIfSecure(String action) { - final boolean keyguardShowing = mHost.isKeyguardShowing(); - if (!keyguardShowing - || (keyguardShowing && ActionHandler.SYSTEMUI_TASK_BACK.equals(action))) { - if (ActionHandler.SYSTEMUI_TASK_ROTATION.equals(action)) { - mHost.rotate(); - } else { - ActionHandler.performTask(mContext, action); - } - } - } - - public void loadRipple() { - setBackground(new SmartButtonRipple(mContext, this)); - } - - public void setEditMode(boolean editMode) { - mInEditMode = editMode; - if (getParent() != null && getParent() instanceof OpaLayout) { - OpaLayout opa = (OpaLayout)getParent(); - opa.setEditMode(editMode); - } - } - - public void setButtonConfig(ButtonConfig config) { - mConfig = config; - setTag(config.getTag()); - setLongClickable(hasLongAction()); - } - - private boolean hasSingleAction() { - return mConfig != null && !mConfig.getActionConfig(ActionConfig.PRIMARY).hasNoAction(); - } - - private boolean hasLongAction() { - return mConfig != null && !mConfig.getActionConfig(ActionConfig.SECOND).hasNoAction(); - } - - private boolean hasDoubleAction() { - return mConfig != null && !mConfig.getActionConfig(ActionConfig.THIRD).hasNoAction(); - } - - private boolean hasRecentAction() { - return hasRecentsSingle() || hasRecentsLong() || hasRecentsDouble(); - } - - private boolean hasRecentsSingle() { - return mConfig != null && mConfig.getActionConfig(ActionConfig.PRIMARY).isActionRecents(); - } - - private boolean hasRecentsLong() { - return mConfig != null && mConfig.getActionConfig(ActionConfig.SECOND).isActionRecents(); - } - - private boolean hasRecentsDouble() { - return mConfig != null && mConfig.getActionConfig(ActionConfig.THIRD).isActionRecents(); - } - - private boolean isImeLeftArrowButton() { - final String action = mConfig.getActionConfig(ActionConfig.PRIMARY).getAction(); - return "task_ime_navigation_left".equals(action); - } - - private boolean isImeRightArrowButton() { - final String action = mConfig.getActionConfig(ActionConfig.PRIMARY).getAction(); - return "task_ime_navigation_right".equals(action); - } - - public ButtonConfig getButtonConfig() { - return mConfig; - } - - private boolean mIsEmptyFakeButton() { - return !hasSingleAction() - && !hasLongAction() - && !hasDoubleAction(); - } - - // special case: double tap for screen off we never capture up motion event - // add/remove listeners if screen on/off - public void onScreenStateChanged(boolean screenOn) { - wasConsumed = false; - setPressed(false); - } - - private void checkAndDoFlipAnim() { - if (mAnimStyle == ANIM_STYLE_FLIP) { - mFlipAnim = ObjectAnimator.ofFloat(this, "rotationY", 0f, 360f); - mFlipAnim.setDuration(1500); - mFlipAnim.setInterpolator(new OvershootInterpolator()); - mFlipAnim.start(); - } - } - - public boolean onTouchEvent(MotionEvent ev) { - if (mIsEmptyFakeButton()) - return false; - - OpaLayout opa = null; - if (getParent() != null && getParent() instanceof OpaLayout) { - opa = (OpaLayout)getParent(); - } - if (mInEditMode) { - return false; - } - - final int action = ev.getAction(); - boolean imeLeft = mConfig != null && isImeLeftArrowButton(); - boolean imeRight = mConfig != null && isImeRightArrowButton(); - switch (action) { - case MotionEvent.ACTION_DOWN: - setPressed(true); - if (opa != null) { - opa.startDownAction(); - } - checkAndDoFlipAnim(); - performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); - playSoundEffect(SoundEffectConstants.CLICK); - if (imeLeft || imeRight) { - moveKbCursor(imeRight, true); - } else if (isDoubleTapPending) { - isDoubleTapPending = false; - wasConsumed = true; - removeCallbacks(mDoubleTapTimeout); - doDoubleTap(); - } else { - wasConsumed = false; - if (hasRecentAction()) { - ActionHandler.preloadRecentApps(); - } - if (hasLongAction()) { - removeCallbacks(mCheckLongPress); - postDelayed(mCheckLongPress, sLongPressTimeout); - } - } - break; - case MotionEvent.ACTION_CANCEL: - if (hasLongAction()) { - removeCallbacks(mCheckLongPress); - } - removeCallbacks(mDoubleTapTimeout); - wasConsumed = true; - isDoubleTapPending = false; - setPressed(false); // this will stop also the ime arrows handler - if (opa != null) { - opa.startCancelAction(); - } - break; - case MotionEvent.ACTION_UP: - setPressed(false); - checkAndDoFlipAnim(); - if (opa != null) { - opa.startCancelAction(); - } - if (hasLongAction()) { - removeCallbacks(mCheckLongPress); - } - if (hasDoubleAction()) { - if (wasConsumed) { - wasConsumed = false; - return true; - } - isDoubleTapPending = true; - postDelayed(mDoubleTapTimeout, sDoubleTapTimeout); - } else { - if (!imeLeft && !imeRight && !wasConsumed && hasSingleAction()) { - doSinglePress(); - } - } - break; - } - return true; - } - - private void moveKbCursor(boolean right, boolean firstTrigger) { - ActionHandler.performTask(mContext, right ? ActionHandler.SYSTEMUI_TASK_IME_NAVIGATION_RIGHT - : ActionHandler.SYSTEMUI_TASK_IME_NAVIGATION_LEFT); - final Handler handler = new Handler(Looper.getMainLooper()); - final Runnable r = new Runnable() { - @Override - public void run() { - if (isPressed()) { - moveKbCursor(right, false); - } - } - }; - if (isPressed()) { - handler.postDelayed(r, firstTrigger ? 500 : 250); - } - } - - private void doSinglePress() { - isDoubleTapPending = false; - if (mConfig != null) { - String action = mConfig.getActionConfig(ActionConfig.PRIMARY).getAction(); - fireActionIfSecure(action); - sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED); - } - } - - private void doLongPress() { - isDoubleTapPending = false; - wasConsumed = true; - if (mConfig != null) { - String action = mConfig.getActionConfig(ActionConfig.SECOND).getAction(); - fireActionIfSecure(action); - performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY); - playSoundEffect(SoundEffectConstants.CLICK); - sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_LONG_CLICKED); - } - } - - private void doDoubleTap() { - isDoubleTapPending = false; - wasConsumed = true; - if (mConfig != null) { - String action = mConfig.getActionConfig(ActionConfig.THIRD).getAction(); - fireActionIfSecure(action); - } - } - - private Runnable mDoubleTapTimeout = new Runnable() { - @Override - public void run() { - wasConsumed = false; - isDoubleTapPending = false; - doSinglePress(); - } - }; - - private Runnable mCheckLongPress = new Runnable() { - public void run() { - if (isPressed()) { - wasConsumed = true; - isDoubleTapPending = false; - removeCallbacks(mDoubleTapTimeout); - doLongPress(); - } - } - }; - - public void playSoundEffect(int soundConstant) { - mAudioManager.playSoundEffect(soundConstant, ActivityManager.getCurrentUser()); - }; - - protected static void setButtonLongpressDelay(int delay) { - sLongPressTimeout = delay; - } -} diff --git a/src/com/android/systemui/navigation/utils/SmartObserver.java b/src/com/android/systemui/navigation/utils/SmartObserver.java deleted file mode 100644 index b0500f6..0000000 --- a/src/com/android/systemui/navigation/utils/SmartObserver.java +++ /dev/null @@ -1,86 +0,0 @@ -/** - * Copyright (C) 2016 The DirtyUnicorns Project - * - * @author: Randall Rushing <randall.rushing@gmail.com> - * - * 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. - * - * A simple, semi-pojo ContentObserver subclass to eliminate too many observers - * in too many places. A class implementing SmartObservable simply provides - * the desired uris as a set to observe and handles onChange(Uri uri) as normal - * - */ - -package com.android.systemui.navigation.utils; - -import java.util.HashSet; -import java.util.Set; - -import android.content.ContentResolver; -import android.database.ContentObserver; -import android.net.Uri; -import android.os.Handler; -import android.os.UserHandle; -import android.text.TextUtils; - -public class SmartObserver extends ContentObserver { - public interface SmartObservable { - public Set<Uri> onGetUris(); - public void onChange(Uri uri); - } - - private ContentResolver mResolver; - private Set<SmartObservable> mListeners = new HashSet<SmartObservable>(); - - public SmartObserver(Handler handler, ContentResolver resolver) { - super(handler); - mResolver = resolver; - } - - public void addListener(SmartObservable listener) { - if (listener != null) { - mListeners.add(listener); - for (Uri uri : listener.onGetUris()) { - mResolver.registerContentObserver(uri, false, this, UserHandle.USER_ALL); - } - } - } - - /** - * Just in case the ContentObserver is unregistered - * but we want to keep callbacks registered - */ - public void registerListeners() { - for (SmartObservable listener : mListeners) { - for (Uri uriz : listener.onGetUris()) { - mResolver.registerContentObserver(uriz, false, this, UserHandle.USER_ALL); - } - } - } - - public void cleanUp() { - mListeners.clear(); - mResolver.unregisterContentObserver(this); - } - - @Override - public void onChange(boolean selfChange, Uri uri) { - for (SmartObservable listener : mListeners) { - for (Uri uriz : listener.onGetUris()) { - if (TextUtils.equals(uriz.toString(), uri.toString())) { - listener.onChange(uri); - } - } - } - } -} diff --git a/src/com/android/systemui/navigation/pulse/FadingBlockRenderer.java b/src/com/android/systemui/pulse/FadingBlockRenderer.java index b37b882..3219cb1 100644 --- a/src/com/android/systemui/navigation/pulse/FadingBlockRenderer.java +++ b/src/com/android/systemui/pulse/FadingBlockRenderer.java @@ -14,7 +14,7 @@ * */ -package com.android.systemui.navigation.pulse; +package com.android.systemui.pulse; import android.content.ContentResolver; import android.content.Context; @@ -36,8 +36,8 @@ import android.util.TypedValue; import com.android.internal.util.NotificationColorUtil; import com.android.systemui.R; -import com.android.systemui.navigation.pulse.PulseController.PulseObserver; -import com.android.systemui.navigation.utils.ColorAnimator; +import com.android.systemui.pulse.PulseController.PulseObserver; +import com.android.systemui.utils.ColorAnimator; public class FadingBlockRenderer extends Renderer implements ColorAnimator.ColorAnimationListener { //private static final int DEF_PAINT_ALPHA = (byte) 188; @@ -201,35 +201,35 @@ public class FadingBlockRenderer extends Renderer implements ColorAnimator.Color void register() { ContentResolver resolver = mContext.getContentResolver(); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_COLOR), false, this, + Settings.System.getUriFor(Settings.System.FLING_PULSE_COLOR), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_LAVALAMP_ENABLED), false, + Settings.System.getUriFor(Settings.System.FLING_PULSE_LAVALAMP_ENABLED), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_LAVALAMP_SPEED), false, + Settings.System.getUriFor(Settings.System.FLING_PULSE_LAVALAMP_SPEED), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_CUSTOM_DIMEN), false, this, + Settings.System.getUriFor(Settings.System.PULSE_CUSTOM_DIMEN), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_CUSTOM_DIV), false, this, + Settings.System.getUriFor(Settings.System.PULSE_CUSTOM_DIV), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_FILLED_BLOCK_SIZE), false, + Settings.System.getUriFor(Settings.System.PULSE_FILLED_BLOCK_SIZE), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_EMPTY_BLOCK_SIZE), false, this, + Settings.System.getUriFor(Settings.System.PULSE_EMPTY_BLOCK_SIZE), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_CUSTOM_FUDGE_FACTOR), false, + Settings.System.getUriFor(Settings.System.PULSE_CUSTOM_FUDGE_FACTOR), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_AUTO_COLOR), false, + Settings.System.getUriFor(Settings.System.PULSE_AUTO_COLOR), false, this, UserHandle.USER_ALL); } @@ -243,23 +243,23 @@ public class FadingBlockRenderer extends Renderer implements ColorAnimator.Color ContentResolver resolver = mContext.getContentResolver(); final Resources res = mContext.getResources(); - mAutoColor = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_AUTO_COLOR, 0, + mAutoColor = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_AUTO_COLOR, 0, UserHandle.USER_CURRENT) == 1; - mLavaLampEnabled = !mAutoColor && Settings.Secure.getIntForUser(resolver, - Settings.Secure.FLING_PULSE_LAVALAMP_ENABLED, 1, UserHandle.USER_CURRENT) == 1; + mLavaLampEnabled = !mAutoColor && Settings.System.getIntForUser(resolver, + Settings.System.FLING_PULSE_LAVALAMP_ENABLED, 1, UserHandle.USER_CURRENT) == 1; - mUserColor = Settings.Secure.getIntForUser(resolver, - Settings.Secure.FLING_PULSE_COLOR, + mUserColor = Settings.System.getIntForUser(resolver, + Settings.System.FLING_PULSE_COLOR, mContext.getResources().getColor(R.color.config_pulseFillColor), UserHandle.USER_CURRENT); if (!mLavaLampEnabled) { int lastColor = mController.getAlbumArtColor(); mPaint.setColor(mAutoColor && lastColor != -1 ? lastColor : mUserColor); } - int time = Settings.Secure.getIntForUser(resolver, - Settings.Secure.FLING_PULSE_LAVALAMP_SPEED, 10000, + int time = Settings.System.getIntForUser(resolver, + Settings.System.FLING_PULSE_LAVALAMP_SPEED, 10000, UserHandle.USER_CURRENT); mLavaLamp.setAnimationTime(time); if (mLavaLampEnabled && mIsValidStream) { @@ -267,20 +267,20 @@ public class FadingBlockRenderer extends Renderer implements ColorAnimator.Color } else { mLavaLamp.stop(); } - int emptyBlock = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_EMPTY_BLOCK_SIZE, 1, + int emptyBlock = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_EMPTY_BLOCK_SIZE, 1, UserHandle.USER_CURRENT); - int customDimen = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_CUSTOM_DIMEN, 14, + int customDimen = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_CUSTOM_DIMEN, 14, UserHandle.USER_CURRENT); - int numDivision = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_CUSTOM_DIV, 16, + int numDivision = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_CUSTOM_DIV, 16, UserHandle.USER_CURRENT); - int fudgeFactor = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_CUSTOM_FUDGE_FACTOR, 4, + int fudgeFactor = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_CUSTOM_FUDGE_FACTOR, 4, UserHandle.USER_CURRENT); - int filledBlock = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_FILLED_BLOCK_SIZE, 4, + int filledBlock = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_FILLED_BLOCK_SIZE, 4, UserHandle.USER_CURRENT); mPathEffect1 = getLimitedDimenValue(filledBlock, 4, 8, res); diff --git a/src/com/android/systemui/navigation/pulse/PulseController.java b/src/com/android/systemui/pulse/PulseController.java index c69cd39..2df65ce 100644 --- a/src/com/android/systemui/navigation/pulse/PulseController.java +++ b/src/com/android/systemui/pulse/PulseController.java @@ -22,9 +22,9 @@ * */ -package com.android.systemui.navigation.pulse; +package com.android.systemui.pulse; -import com.android.systemui.navigation.pulse.PulseController; +import com.android.systemui.pulse.PulseController; import android.content.ContentResolver; import android.content.Context; @@ -149,19 +149,19 @@ public class PulseController { void register() { mContext.getContentResolver().registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_ENABLED), false, this, + Settings.System.getUriFor(Settings.System.FLING_PULSE_ENABLED), false, this, UserHandle.USER_ALL); mContext.getContentResolver().registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_RENDER_STYLE_URI), false, this, + Settings.System.getUriFor(Settings.System.PULSE_RENDER_STYLE_URI), false, this, UserHandle.USER_ALL); } @Override public void onChange(boolean selfChange, Uri uri) { - if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_ENABLED))) { + if (uri.equals(Settings.System.getUriFor(Settings.System.FLING_PULSE_ENABLED))) { updateEnabled(); doLinkage(); - } else if (uri.equals(Settings.Secure.getUriFor(Settings.Secure.PULSE_RENDER_STYLE_URI))) { + } else if (uri.equals(Settings.System.getUriFor(Settings.System.PULSE_RENDER_STYLE_URI))) { updateRenderMode(); if (mPulseObserver != null) { loadRenderer(); @@ -175,13 +175,13 @@ public class PulseController { } void updateEnabled() { - mPulseEnabled = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.FLING_PULSE_ENABLED, 0, UserHandle.USER_CURRENT) == 1; + mPulseEnabled = Settings.System.getIntForUser(mContext.getContentResolver(), + Settings.System.FLING_PULSE_ENABLED, 0, UserHandle.USER_CURRENT) == 1; } void updateRenderMode() { - mPulseStyle = Settings.Secure.getIntForUser(mContext.getContentResolver(), - Settings.Secure.PULSE_RENDER_STYLE_URI, RENDER_STYLE_CM, UserHandle.USER_CURRENT); + mPulseStyle = Settings.System.getIntForUser(mContext.getContentResolver(), + Settings.System.PULSE_RENDER_STYLE_URI, RENDER_STYLE_CM, UserHandle.USER_CURRENT); } }; diff --git a/src/com/android/systemui/navigation/pulse/Renderer.java b/src/com/android/systemui/pulse/Renderer.java index 09bcff8..b64ce60 100644 --- a/src/com/android/systemui/navigation/pulse/Renderer.java +++ b/src/com/android/systemui/pulse/Renderer.java @@ -19,9 +19,9 @@ * */ -package com.android.systemui.navigation.pulse; +package com.android.systemui.pulse; -import com.android.systemui.navigation.pulse.PulseController.PulseObserver; +import com.android.systemui.pulse.PulseController.PulseObserver; import android.content.Context; import android.graphics.Canvas; diff --git a/src/com/android/systemui/navigation/pulse/SolidLineRenderer.java b/src/com/android/systemui/pulse/SolidLineRenderer.java index ec93e1e..9cd30a0 100644 --- a/src/com/android/systemui/navigation/pulse/SolidLineRenderer.java +++ b/src/com/android/systemui/pulse/SolidLineRenderer.java @@ -20,7 +20,7 @@ * */ -package com.android.systemui.navigation.pulse; +package com.android.systemui.pulse; import android.animation.ValueAnimator; import android.content.ContentResolver; @@ -37,8 +37,8 @@ import android.os.UserHandle; import android.provider.Settings; import com.android.internal.util.NotificationColorUtil; -import com.android.systemui.navigation.pulse.PulseController.PulseObserver; -import com.android.systemui.navigation.utils.ColorAnimator; +import com.android.systemui.pulse.PulseController.PulseObserver; +import com.android.systemui.utils.ColorAnimator; public class SolidLineRenderer extends Renderer implements ColorAnimator.ColorAnimationListener { private Paint mPaint; @@ -234,26 +234,26 @@ public class SolidLineRenderer extends Renderer implements ColorAnimator.ColorAn void register() { ContentResolver resolver = mContext.getContentResolver(); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_COLOR), false, this, + Settings.System.getUriFor(Settings.System.FLING_PULSE_COLOR), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.FLING_PULSE_LAVALAMP_ENABLED), false, + Settings.System.getUriFor(Settings.System.FLING_PULSE_LAVALAMP_ENABLED), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_SOLID_FUDGE_FACTOR), false, this, + Settings.System.getUriFor(Settings.System.PULSE_SOLID_FUDGE_FACTOR), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_LAVALAMP_SOLID_SPEED), false, this, + Settings.System.getUriFor(Settings.System.PULSE_LAVALAMP_SOLID_SPEED), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_SOLID_UNITS_COUNT), false, this, + Settings.System.getUriFor(Settings.System.PULSE_SOLID_UNITS_COUNT), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_SOLID_UNITS_OPACITY), false, this, + Settings.System.getUriFor(Settings.System.PULSE_SOLID_UNITS_OPACITY), false, this, UserHandle.USER_ALL); resolver.registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.PULSE_AUTO_COLOR), false, this, + Settings.System.getUriFor(Settings.System.PULSE_AUTO_COLOR), false, this, UserHandle.USER_ALL); } @@ -265,23 +265,23 @@ public class SolidLineRenderer extends Renderer implements ColorAnimator.ColorAn public void updateSettings() { ContentResolver resolver = mContext.getContentResolver(); - mAutoColor = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_AUTO_COLOR, 0, + mAutoColor = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_AUTO_COLOR, 0, UserHandle.USER_CURRENT) == 1; - mLavaLampEnabled = !mAutoColor && Settings.Secure.getIntForUser(resolver, - Settings.Secure.FLING_PULSE_LAVALAMP_ENABLED, 1, UserHandle.USER_CURRENT) == 1; + mLavaLampEnabled = !mAutoColor && Settings.System.getIntForUser(resolver, + Settings.System.FLING_PULSE_LAVALAMP_ENABLED, 1, UserHandle.USER_CURRENT) == 1; - mColor = Settings.Secure.getIntForUser(resolver, - Settings.Secure.FLING_PULSE_COLOR, + mColor = Settings.System.getIntForUser(resolver, + Settings.System.FLING_PULSE_COLOR, Color.WHITE, UserHandle.USER_CURRENT); if (!mLavaLampEnabled) { int lastColor = mController.getAlbumArtColor(); mPaint.setColor(mAutoColor && lastColor != -1 ? lastColor : mColor); } - int lavaLampSpeed = Settings.Secure.getIntForUser(resolver, - Settings.Secure.PULSE_LAVALAMP_SOLID_SPEED, 10 * 1000, + int lavaLampSpeed = Settings.System.getIntForUser(resolver, + Settings.System.PULSE_LAVALAMP_SOLID_SPEED, 10 * 1000, UserHandle.USER_CURRENT); mLavaLamp.setAnimationTime(lavaLampSpeed); if (mLavaLampEnabled && mIsValidStream) { @@ -290,21 +290,21 @@ public class SolidLineRenderer extends Renderer implements ColorAnimator.ColorAn mLavaLamp.stop(); } // putFloat, getFloat is better. catch it next time - mDbFuzzFactor = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_SOLID_FUDGE_FACTOR, 5, + mDbFuzzFactor = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_SOLID_FUDGE_FACTOR, 5, UserHandle.USER_CURRENT); int oldUnits = mUnits; - mUnits = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_SOLID_UNITS_COUNT, 64, + mUnits = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_SOLID_UNITS_COUNT, 64, UserHandle.USER_CURRENT); if (mUnits != oldUnits) { mFFTPoints = new float[mUnits * 4]; onSizeChanged(0, 0, 0, 0); } - int solidUnitsColor = Settings.Secure.getIntForUser( - resolver, Settings.Secure.PULSE_SOLID_UNITS_OPACITY, 200, + int solidUnitsColor = Settings.System.getIntForUser( + resolver, Settings.System.PULSE_SOLID_UNITS_OPACITY, 200, UserHandle.USER_CURRENT); mFadePaint.setColor(Color.argb(mAutoColor ? 255 : solidUnitsColor, 255, 255, 255)); } diff --git a/src/com/android/systemui/navigation/pulse/VisualizerStreamHandler.java b/src/com/android/systemui/pulse/VisualizerStreamHandler.java index 6745530..7122627 100644 --- a/src/com/android/systemui/navigation/pulse/VisualizerStreamHandler.java +++ b/src/com/android/systemui/pulse/VisualizerStreamHandler.java @@ -20,7 +20,7 @@ * */ -package com.android.systemui.navigation.pulse; +package com.android.systemui.pulse; import android.content.Context; import android.media.audiofx.Visualizer; diff --git a/src/com/android/systemui/navigation/utils/ColorAnimator.java b/src/com/android/systemui/utils/ColorAnimator.java index c04390e..32b11f4 100644 --- a/src/com/android/systemui/navigation/utils/ColorAnimator.java +++ b/src/com/android/systemui/utils/ColorAnimator.java @@ -19,7 +19,7 @@ * */ -package com.android.systemui.navigation.utils; +package com.android.systemui.utils; import android.animation.ValueAnimator; import android.graphics.Color; |
