Keep only Pulse code for now and build with stock navbar
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
deleted file mode 100644
index 1c57f8f..0000000
--- a/res/drawable-hdpi/arrow_down.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/arrow_up.png b/res/drawable-hdpi/arrow_up.png
deleted file mode 100644
index 523a6ad..0000000
--- a/res/drawable-hdpi/arrow_up.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_sysbar_home_carmode_pixel.png b/res/drawable-xxxhdpi/ic_sysbar_home_carmode_pixel.png
deleted file mode 100644
index 60da8e4..0000000
--- a/res/drawable-xxxhdpi/ic_sysbar_home_carmode_pixel.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_sysbar_home_pixel.png b/res/drawable-xxxhdpi/ic_sysbar_home_pixel.png
deleted file mode 100644
index 45ac145..0000000
--- a/res/drawable-xxxhdpi/ic_sysbar_home_pixel.png
+++ /dev/null
Binary files differ
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
similarity index 85%
rename from src/com/android/systemui/navigation/pulse/FadingBlockRenderer.java
rename to 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 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 @@
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 @@
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 @@
} 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
similarity index 94%
rename from src/com/android/systemui/navigation/pulse/PulseController.java
rename to 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 @@
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 @@
}
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
similarity index 94%
rename from src/com/android/systemui/navigation/pulse/Renderer.java
rename to 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
similarity index 87%
rename from src/com/android/systemui/navigation/pulse/SolidLineRenderer.java
rename to 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.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 @@
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 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 @@
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
similarity index 98%
rename from src/com/android/systemui/navigation/pulse/VisualizerStreamHandler.java
rename to 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
similarity index 98%
rename from src/com/android/systemui/navigation/utils/ColorAnimator.java
rename to 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;