Import translations. DO NOT MERGE am: 386239e -s ours am: bf5690c -s ours
am: 163240e -s ours
* commit '163240e94bb6d725867b5ee8b1259b9aed2c41a5':
Import translations. DO NOT MERGE
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9c3e00b..0a12bd0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -24,8 +24,6 @@
<uses-permission
android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission
- android:name="android.permission.INTERNET" />
- <uses-permission
android:name="android.permission.BLUETOOTH"></uses-permission>
<application
android:icon="@drawable/icon"
diff --git a/res/drawable-hdpi/progress_vertical_bg_holo_dark.9.png b/res/drawable-hdpi/progress_vertical_bg_holo_dark.9.png
deleted file mode 100644
index 92e34bf..0000000
--- a/res/drawable-hdpi/progress_vertical_bg_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/progress_vertical_primary_holo_dark.9.png b/res/drawable-hdpi/progress_vertical_primary_holo_dark.9.png
deleted file mode 100644
index cbd537b..0000000
--- a/res/drawable-hdpi/progress_vertical_primary_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/progress_vertical_secondary_holo_dark.9.png b/res/drawable-hdpi/progress_vertical_secondary_holo_dark.9.png
deleted file mode 100644
index 73a0e40..0000000
--- a/res/drawable-hdpi/progress_vertical_secondary_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/scrubber_vertical_primary_holo.9.png b/res/drawable-hdpi/scrubber_vertical_primary_holo.9.png
deleted file mode 100644
index 03930e2..0000000
--- a/res/drawable-hdpi/scrubber_vertical_primary_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/scrubber_vertical_secondary_holo.9.png b/res/drawable-hdpi/scrubber_vertical_secondary_holo.9.png
deleted file mode 100644
index a19365c..0000000
--- a/res/drawable-hdpi/scrubber_vertical_secondary_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/scrubber_vertical_track_holo_dark.9.png b/res/drawable-hdpi/scrubber_vertical_track_holo_dark.9.png
deleted file mode 100644
index 9f12c60..0000000
--- a/res/drawable-hdpi/scrubber_vertical_track_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/scrubber_vertical_track_holo_light.9.png b/res/drawable-hdpi/scrubber_vertical_track_holo_light.9.png
deleted file mode 100644
index 325b86a..0000000
--- a/res/drawable-hdpi/scrubber_vertical_track_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/progress_vertical_bg_holo_dark.9.png b/res/drawable-mdpi/progress_vertical_bg_holo_dark.9.png
deleted file mode 100644
index 662e59b..0000000
--- a/res/drawable-mdpi/progress_vertical_bg_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/progress_vertical_primary_holo_dark.9.png b/res/drawable-mdpi/progress_vertical_primary_holo_dark.9.png
deleted file mode 100644
index e7e32cb..0000000
--- a/res/drawable-mdpi/progress_vertical_primary_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/progress_vertical_secondary_holo_dark.9.png b/res/drawable-mdpi/progress_vertical_secondary_holo_dark.9.png
deleted file mode 100644
index 2fee3a8..0000000
--- a/res/drawable-mdpi/progress_vertical_secondary_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/scrubber_vertical_primary_holo.9.png b/res/drawable-mdpi/scrubber_vertical_primary_holo.9.png
deleted file mode 100644
index ecea48d..0000000
--- a/res/drawable-mdpi/scrubber_vertical_primary_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/scrubber_vertical_secondary_holo.9.png b/res/drawable-mdpi/scrubber_vertical_secondary_holo.9.png
deleted file mode 100644
index 35bf199..0000000
--- a/res/drawable-mdpi/scrubber_vertical_secondary_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/scrubber_vertical_track_holo_dark.9.png b/res/drawable-mdpi/scrubber_vertical_track_holo_dark.9.png
deleted file mode 100644
index 8a7fbde..0000000
--- a/res/drawable-mdpi/scrubber_vertical_track_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/scrubber_vertical_track_holo_light.9.png b/res/drawable-mdpi/scrubber_vertical_track_holo_light.9.png
deleted file mode 100644
index 097d05e..0000000
--- a/res/drawable-mdpi/scrubber_vertical_track_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/progress_vertical_primary_holo_dark.9.png b/res/drawable-xhdpi/progress_vertical_primary_holo_dark.9.png
deleted file mode 100644
index 27c8647..0000000
--- a/res/drawable-xhdpi/progress_vertical_primary_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/progress_vertical_secondary_holo_dark.9.png b/res/drawable-xhdpi/progress_vertical_secondary_holo_dark.9.png
deleted file mode 100644
index 5c622d8..0000000
--- a/res/drawable-xhdpi/progress_vertical_secondary_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/scrubber_vertical_primary_holo.9.png b/res/drawable-xhdpi/scrubber_vertical_primary_holo.9.png
deleted file mode 100644
index 2e4a44b..0000000
--- a/res/drawable-xhdpi/scrubber_vertical_primary_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/scrubber_vertical_secondary_holo.9.png b/res/drawable-xhdpi/scrubber_vertical_secondary_holo.9.png
deleted file mode 100644
index a5b1461..0000000
--- a/res/drawable-xhdpi/scrubber_vertical_secondary_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/scrubber_vertical_track_holo_dark.9.png b/res/drawable-xhdpi/scrubber_vertical_track_holo_dark.9.png
deleted file mode 100644
index 5f0fc26..0000000
--- a/res/drawable-xhdpi/scrubber_vertical_track_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/scrubber_vertical_track_holo_light.9.png b/res/drawable-xhdpi/scrubber_vertical_track_holo_light.9.png
deleted file mode 100644
index fc89474..0000000
--- a/res/drawable-xhdpi/scrubber_vertical_track_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/progress_vertical.xml b/res/drawable/progress_vertical.xml
deleted file mode 100644
index 1ee031d..0000000
--- a/res/drawable/progress_vertical.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 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.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:id="@android:id/background">
- <shape>
- <corners android:radius="5dip" />
- <gradient
- android:startColor="#ff9d9e9d"
- android:centerColor="#ff5a5d5a"
- android:centerY="0.75"
- android:endColor="#ff747674"
- android:angle="180"
- />
- </shape>
- </item>
-
- <item android:id="@android:id/secondaryProgress">
- <clip>
- <shape>
- <corners android:radius="5dip" />
- <gradient
- android:startColor="#80ffd300"
- android:centerColor="#80ffb600"
- android:centerY="0.75"
- android:endColor="#a0ffcb00"
- android:angle="180"
- />
- </shape>
- </clip>
- </item>
-
- <item android:id="@android:id/progress">
- <clip
- android:clipOrientation="vertical"
- android:gravity="bottom">
- <shape>
- <corners android:radius="5dip" />
- <gradient
- android:startColor="#ffffd300"
- android:centerColor="#ffffb600"
- android:centerY="0.75"
- android:endColor="#ffffcb00"
- android:angle="180"
- />
- </shape>
- </clip>
- </item>
-
-</layer-list>
-
diff --git a/res/drawable/progress_vertical_holo_dark.xml b/res/drawable/progress_vertical_holo_dark.xml
deleted file mode 100644
index 9eb54b7..0000000
--- a/res/drawable/progress_vertical_holo_dark.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:id="@android:id/background"
- android:drawable="@drawable/progress_vertical_bg_holo_dark" />
-
- <item android:id="@android:id/secondaryProgress">
- <scale android:scaleHeight="100%" android:scaleGravity="bottom"
- android:drawable="@drawable/progress_vertical_secondary_holo_dark" />
- </item>
-
- <item android:id="@android:id/progress">
- <scale android:scaleHeight="100%" android:scaleGravity="bottom"
- android:drawable="@drawable/progress_vertical_primary_holo_dark" />
- </item>
-
-</layer-list>
diff --git a/res/drawable/scrubber_progress_vertical_holo_dark.xml b/res/drawable/scrubber_progress_vertical_holo_dark.xml
deleted file mode 100644
index 0cc56bf..0000000
--- a/res/drawable/scrubber_progress_vertical_holo_dark.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@android:id/background"
- android:drawable="@drawable/scrubber_vertical_track_holo_dark" />
- <item android:id="@android:id/secondaryProgress">
- <scale android:scaleHeight="100%" android:scaleGravity="bottom"
- android:drawable="@drawable/scrubber_vertical_secondary_holo" />
- </item>
- <item android:id="@android:id/progress">
- <scale android:scaleHeight="100%" android:scaleGravity="bottom"
- android:drawable="@drawable/scrubber_vertical_primary_holo" />
- </item>
-</layer-list>
diff --git a/res/drawable/scrubber_progress_vertical_holo_light.xml b/res/drawable/scrubber_progress_vertical_holo_light.xml
deleted file mode 100644
index 8a54edf..0000000
--- a/res/drawable/scrubber_progress_vertical_holo_light.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@android:id/background"
- android:drawable="@drawable/scrubber_vertical_track_holo_light" />
- <item android:id="@android:id/secondaryProgress">
- <scale android:scaleHeight="100%" android:scaleGravity="bottom"
- android:drawable="@drawable/scrubber_vertical_secondary_holo" />
- </item>
- <item android:id="@android:id/progress">
- <scale android:scaleHeight="100%" android:scaleGravity="bottom"
- android:drawable="@drawable/scrubber_vertical_primary_holo" />
- </item>
-</layer-list>
diff --git a/res/layout-land/music_main.xml b/res/layout-land/music_main.xml
index 905a602..5153d87 100644
--- a/res/layout-land/music_main.xml
+++ b/res/layout-land/music_main.xml
@@ -86,7 +86,7 @@
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:text="@string/bass_boost_strength" />
- <com.android.musicfx.seekbar.SeekBar
+ <SeekBar
android:id="@+id/bBStrengthSeekBar"
android:layout_width="170dip"
android:layout_height="wrap_content"
@@ -117,7 +117,7 @@
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:text="@string/virtualizer_strength" />
- <com.android.musicfx.seekbar.SeekBar
+ <SeekBar
android:id="@+id/vIStrengthSeekBar"
android:layout_width="170dip"
android:layout_height="wrap_content"
diff --git a/res/layout/music_eq.xml b/res/layout/music_eq.xml
index 1af4c9d..309a34d 100644
--- a/res/layout/music_eq.xml
+++ b/res/layout/music_eq.xml
@@ -55,12 +55,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand0SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand0SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand0TextView"
android:layout_width="50dip"
@@ -71,12 +74,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand1SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand1SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand1TextView"
android:layout_width="50dip"
@@ -87,12 +93,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand2SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand2SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand2TextView"
android:layout_width="50dip"
@@ -103,12 +112,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand3SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand3SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand3TextView"
android:layout_width="50dip"
@@ -119,12 +131,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand4SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand4SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand4TextView"
android:layout_width="50dip"
@@ -135,12 +150,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand5SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand5SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand5TextView"
android:layout_width="50dip"
@@ -151,12 +169,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand6SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand6SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand6TextView"
android:layout_width="50dip"
@@ -167,12 +188,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand7SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand7SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand7TextView"
android:layout_width="50dip"
@@ -183,12 +207,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand8SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand8SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand8TextView"
android:layout_width="50dip"
@@ -199,12 +226,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand9SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand9SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand9TextView"
android:layout_width="50dip"
@@ -215,12 +245,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand10SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand10SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand10TextView"
android:layout_width="50dip"
@@ -231,12 +264,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand11SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand11SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand11TextView"
android:layout_width="50dip"
@@ -247,12 +283,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand12SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand12SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand12TextView"
android:layout_width="50dip"
@@ -263,12 +302,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand13SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand13SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand13TextView"
android:layout_width="50dip"
@@ -279,12 +321,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand14SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand14SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand14TextView"
android:layout_width="50dip"
@@ -295,12 +340,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand15SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand15SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand15TextView"
android:layout_width="50dip"
@@ -311,12 +359,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand16SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand16SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand16TextView"
android:layout_width="50dip"
@@ -327,12 +378,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand17SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand17SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand17TextView"
android:layout_width="50dip"
@@ -343,12 +397,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand18SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand18SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand18TextView"
android:layout_width="50dip"
@@ -359,12 +416,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand19SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand19SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand19TextView"
android:layout_width="50dip"
@@ -375,12 +435,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand20SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand20SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand20TextView"
android:layout_width="50dip"
@@ -391,12 +454,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand21SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand21SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand21TextView"
android:layout_width="50dip"
@@ -407,12 +473,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand22SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand22SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand22TextView"
android:layout_width="50dip"
@@ -423,12 +492,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand23SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand23SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand23TextView"
android:layout_width="50dip"
@@ -439,12 +511,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand24SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand24SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand24TextView"
android:layout_width="50dip"
@@ -455,12 +530,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand25SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand25SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand25TextView"
android:layout_width="50dip"
@@ -471,12 +549,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand26SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand26SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand26TextView"
android:layout_width="50dip"
@@ -487,12 +568,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand27SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand27SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand27TextView"
android:layout_width="50dip"
@@ -503,12 +587,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand28SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand28SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand28TextView"
android:layout_width="50dip"
@@ -519,12 +606,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand29SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand29SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand29TextView"
android:layout_width="50dip"
@@ -535,12 +625,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand30SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand30SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand30TextView"
android:layout_width="50dip"
@@ -551,12 +644,15 @@
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent">
- <com.android.musicfx.seekbar.SeekBar
- android:id="@+id/EQBand31SeekBar"
- style="@style/Widget.Holo.SeekBar.Vertical"
- android:layout_margin="@dimen/eq_slider_margin"
+ <com.android.musicfx.SeekBarRotator
android:layout_width="wrap_content"
- android:layout_height="@dimen/eq_slider_height" />
+ android:layout_height="@dimen/eq_slider_height">
+ <SeekBar
+ android:id="@+id/EQBand31SeekBar"
+ android:layout_margin="@dimen/eq_slider_margin"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+ </com.android.musicfx.SeekBarRotator>
<TextView
android:id="@+id/EQBand31TextView"
android:layout_width="50dip"
diff --git a/res/layout/music_main.xml b/res/layout/music_main.xml
index eabe8d9..701b675 100644
--- a/res/layout/music_main.xml
+++ b/res/layout/music_main.xml
@@ -76,7 +76,7 @@
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:text="@string/bass_boost_strength" />
- <com.android.musicfx.seekbar.SeekBar
+ <SeekBar
android:id="@+id/bBStrengthSeekBar"
android:layout_width="170dip"
android:layout_height="wrap_content"
@@ -107,7 +107,7 @@
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:text="@string/virtualizer_strength" />
- <com.android.musicfx.seekbar.SeekBar
+ <SeekBar
android:id="@+id/vIStrengthSeekBar"
android:layout_width="170dip"
android:layout_height="wrap_content"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 9d1fd7d..f65a01a 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effekte nie beskikbaar nie."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Oudio-effekte"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Effenaar"</string>
<string name="headset_plug" msgid="4505819850289423141">"Prop oorfone in vir hierdie effekte."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Basversterker"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Omringklank"</string>
- <string name="pr_title" msgid="873875523196045130">"Eggo:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Bykomende kamer-eggo-effekte"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Verstek-eggo"</string>
<string name="setup" msgid="1103677904576339192">"Stel op"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX-versterker"</string>
<string name="user" msgid="3949460956502898057">"Gebruiker"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 34f777e..d6eca43 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"ኢፌክት አልተገኘም"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"የድም ፅ ተፅዕኖች"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"ማመጣጠኛ"</string>
<string name="headset_plug" msgid="4505819850289423141">"እባክህ ለእነዚህ ኢፌክቶች የጆሮ ማዳመጫዎች ሰካ፡፡"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"ወፍራም ደምጽ መጨመር"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"የዙሪያ ድምጽ"</string>
- <string name="pr_title" msgid="873875523196045130">"አስተጋባ"</string>
- <string name="pr_summary" msgid="7457279522425453515">"ተጨማሪ የማስተጋቢያ ተፅዕኖዎች"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"የአስተጋባ ቅድመ ቅምጥ"</string>
<string name="setup" msgid="1103677904576339192">"አዋቅር"</string>
<string name="ci_extreme" msgid="1736938429763948084">"የኢፌክት መጨመሪያ"</string>
<string name="user" msgid="3949460956502898057">"ተጠቃሚ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 9e2aa66..cbb43da 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"التأثيرات غير متاحة."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"تأثيرات الصوت"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"المعادل"</string>
<string name="headset_plug" msgid="4505819850289423141">"يمكنك توصيل سماعات الرأس للاستماع إلى هذه التأثيرات"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"تحسين الجهير"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"الصوت المحيطي"</string>
- <string name="pr_title" msgid="873875523196045130">"الصدى:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"التأثيرات الإضافية لصدى الغرفة"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"الإعداد المسبق للصدى"</string>
<string name="setup" msgid="1103677904576339192">"الإعداد"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"المستخدم"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index bb58711..16aafc1 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Ефектите не са налични."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Аудиоефекти"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Еквалайзър"</string>
<string name="headset_plug" msgid="4505819850289423141">"Включете слушалки за тези ефекти."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Усилване на ниските честоти"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Съраунд звук"</string>
- <string name="pr_title" msgid="873875523196045130">"Реверберация:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Допълнителни ефекти за реверберацията в стая"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Предварително задаване на реверберация"</string>
<string name="setup" msgid="1103677904576339192">"Настройка"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"Потребител"</string>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index a87a624..c5e919a 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -18,15 +18,11 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effekter er ikke tilgjengelige."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Lydeffekter"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Sett inn hodetelefoner for å oppleve disse effektene."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bassforsterking"</string>
<!-- no translation found for virtualizer_strength (106561253469770096) -->
<skip />
- <string name="pr_title" msgid="873875523196045130">"Romklang:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Ytterligere effekter for romklang"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Forhåndsinnstilling for romklang"</string>
<string name="setup" msgid="1103677904576339192">"Konfigurering"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Bruker"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 043dd5b..be4ea87 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efectes no disponibles."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efectes d\'àudio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalitzador"</string>
<string name="headset_plug" msgid="4505819850289423141">"Connecta els auriculars per a aquests efectes."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Accentuació de baixos"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"So envoltant"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverberació:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Efectes addicionals de reverberació ambiental"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Reverberació predefinida"</string>
<string name="setup" msgid="1103677904576339192">"Configura"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Usuari"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 7e275a0..16b55df 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -18,16 +18,12 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efekty nejsou k dispozici."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Zvukové efekty"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekvalizér"</string>
<string name="headset_plug" msgid="4505819850289423141">"Tyto efekty lze aktivovat pouze se zapojenými sluchátky."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Zvýraznění basů"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Prostorový zvuk"</string>
- <string name="pr_title" msgid="873875523196045130">"Dozvuk:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Efekty dozvuku v místnosti"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Dozvuk (předvolba)"</string>
<string name="setup" msgid="1103677904576339192">"Konfigurace"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
- <string name="user" msgid="3949460956502898057">"Uživatel"</string>
+ <string name="user" msgid="3949460956502898057">"Vlastní"</string>
<string name="picker_title" msgid="8464126693702817261">"Ovládací panel hudebních efektů"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index ed144d9..85a0094 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -18,16 +18,12 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effekterne er ikke tilgængelige."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Lydeffekter"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Tilslut hovedtelefoner for at få disse effekter."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bass boost"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surroundsound"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverb"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Ekstra rumklangseffekter"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Forudindstilling af rumklang"</string>
<string name="setup" msgid="1103677904576339192">"Opsætning"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
- <string name="user" msgid="3949460956502898057">"Bruger"</string>
+ <string name="user" msgid="3949460956502898057">"Tilpasset"</string>
<string name="picker_title" msgid="8464126693702817261">"Kontrolpanel for musikeffekter"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index b453881..23fb295 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effekte nicht verfügbar"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Audio-Effekte"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Für diese Effekte benötigen Sie Kopfhörer."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bassverstärkung"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround-Sound"</string>
- <string name="pr_title" msgid="873875523196045130">"Hall:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Zusätzliche Nachhalleffekte"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Voreinstellung für Hall"</string>
<string name="setup" msgid="1103677904576339192">"Einrichtung"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX-Verstärker"</string>
<string name="user" msgid="3949460956502898057">"Nutzer"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 96c284b..5775f22 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Τα εφέ δεν είναι διαθέσιμα."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Εφέ ήχου"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ισοσταθμιστής"</string>
<string name="headset_plug" msgid="4505819850289423141">"Συνδέστε τα ακουστικά για αυτά τα εφέ."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Ενίσχυση μπάσων"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Περιφερειακός ήχος"</string>
- <string name="pr_title" msgid="873875523196045130">"Αντήχηση:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Πρόσθετα εφέ αντήχησης δωματίου"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Προεπιλογή αντήχησης"</string>
<string name="setup" msgid="1103677904576339192">"Ρύθμιση"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"Xρήστης"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..842d7e0
--- /dev/null
+++ b/res/values-en-rAU/strings.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2010-2011 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.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
+ <string name="no_effects" msgid="5067916002004255814">"Effects not available."</string>
+ <string name="eq_dialog_title" msgid="2020244436368289652">"Equaliser"</string>
+ <string name="headset_plug" msgid="4505819850289423141">"Plug in headphones for these effects."</string>
+ <string name="bass_boost_strength" msgid="882301530007752270">"Bass boost"</string>
+ <string name="virtualizer_strength" msgid="106561253469770096">"Surround sound"</string>
+ <string name="setup" msgid="1103677904576339192">"Setup"</string>
+ <string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
+ <string name="user" msgid="3949460956502898057">"User"</string>
+ <string name="picker_title" msgid="8464126693702817261">"Music effects control panel"</string>
+</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 2cec2c9..842d7e0 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effects not available."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Audio effects"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equaliser"</string>
<string name="headset_plug" msgid="4505819850289423141">"Plug in headphones for these effects."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bass boost"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround sound"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverb:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Additional room reverberation effects"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Reverb preset"</string>
<string name="setup" msgid="1103677904576339192">"Setup"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"User"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 2cec2c9..842d7e0 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effects not available."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Audio effects"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equaliser"</string>
<string name="headset_plug" msgid="4505819850289423141">"Plug in headphones for these effects."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bass boost"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround sound"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverb:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Additional room reverberation effects"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Reverb preset"</string>
<string name="setup" msgid="1103677904576339192">"Setup"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"User"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 2cb9482..757293d 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efectos no disponibles"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efectos de audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ecualizador"</string>
<string name="headset_plug" msgid="4505819850289423141">"Conecta los auriculares para usar estos efectos."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Refuerzo de graves"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Sonido envolvente"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverberación:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Otros efectos de reverberación de sala"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Ajustes predeterminados de reverberación"</string>
<string name="setup" msgid="1103677904576339192">"Configuración"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Usuario"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ceb7e33..05bfea3 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efectos no disponibles"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efectos de audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ecualizador"</string>
<string name="headset_plug" msgid="4505819850289423141">"Para disfrutar de los efectos, debes conectar los auriculares."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Refuerzo de graves"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Sonido envolvente"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverberación:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Otros efectos de reverberación de sala"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Ajustes predeterminados de reverberación"</string>
<string name="setup" msgid="1103677904576339192">"Configuración"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Usuario"</string>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 60c7fb7..779e0e1 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efektid pole saadaval"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Heliefektid"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekvalaiser"</string>
<string name="headset_plug" msgid="4505819850289423141">"Nende efektide jaoks ühendage kõrvaklapid"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bassivõimendi"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Ruumiline heli"</string>
- <string name="pr_title" msgid="873875523196045130">"Järelkõla:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Täiendavad ruumi järelkõla efektid"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Järelkõla eelseade"</string>
<string name="setup" msgid="1103677904576339192">"Seadista"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX-võimendi"</string>
<string name="user" msgid="3949460956502898057">"Kasutaja"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index f0a41fc..c5a4e19 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"جلوهها در دسترس نیستند."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"جلوههای صوتی"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"اکولایزر"</string>
<string name="headset_plug" msgid="4505819850289423141">"برای این جلوهها هدفون را وصل کنید."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"تقویت باس"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"صدای فراگیر"</string>
- <string name="pr_title" msgid="873875523196045130">"طنین:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"جلوههای طنین اضافی اتاق"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"پیشتنظیم طنین"</string>
<string name="setup" msgid="1103677904576339192">"تنظیم"</string>
<string name="ci_extreme" msgid="1736938429763948084">"تقویتکننده FX"</string>
<string name="user" msgid="3949460956502898057">"کاربر"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 193357e..4678d71 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Tehosteet eivät ole käytettävissä."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Äänitehosteet"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Taajuuskorjain"</string>
<string name="headset_plug" msgid="4505819850289423141">"Liitä kuulokkeet kuullaksesi tehosteet."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Basson tehostus"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround-ääni"</string>
- <string name="pr_title" msgid="873875523196045130">"Kaiku:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Muut kaikutehosteet"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Kaiku"</string>
<string name="setup" msgid="1103677904576339192">"Alkutoimet"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Käyttäjä"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 9e28a50..22ddc94 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effets indisponibles."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Effets audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Égaliseur"</string>
<string name="headset_plug" msgid="4505819850289423141">"Veuillez brancher un casque pour ces effets."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Amplification des basses"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Son ambiophonique"</string>
- <string name="pr_title" msgid="873875523196045130">"Réverbération :"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Autres effets de réverbération de la pièce"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Préréglage de la réverbération"</string>
<string name="setup" msgid="1103677904576339192">"Configuration"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Utilisateur"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index d88c993..720fd65 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effets indisponibles."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Effets audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Égaliseur"</string>
<string name="headset_plug" msgid="4505819850289423141">"Veuillez brancher un casque pour ces effets."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Amplification des basses"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Son surround"</string>
- <string name="pr_title" msgid="873875523196045130">"Réverbération :"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Autres effets de réverbération de la pièce"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Préréglage de la réverbération"</string>
<string name="setup" msgid="1103677904576339192">"Configuration"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Utilisateur"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index b730358..4e0d247 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"प्रभाव उपलब्ध नहीं."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"ऑडियो प्रभाव"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"इक्वलाइज़र"</string>
<string name="headset_plug" msgid="4505819850289423141">"इन प्रभावों के लिए हेडफ़ोन प्लग इन करें."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"बेस बढ़ाएं"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"सराउंड साउंड"</string>
- <string name="pr_title" msgid="873875523196045130">"गूंज:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"अतिरिक्त कक्ष अनुगूंज प्रभाव"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"गूंज प्रीसेट"</string>
<string name="setup" msgid="1103677904576339192">"सेटअप"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX बूस्टर"</string>
<string name="user" msgid="3949460956502898057">"उपयोगकर्ता"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index cd86a6d..711893b 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efekti nisu dostupni."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Zvučni efekti"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekvalizator"</string>
<string name="headset_plug" msgid="4505819850289423141">"Priključite slušalice za ove efekte."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Pojačanje basova"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Okružujući zvuk"</string>
- <string name="pr_title" msgid="873875523196045130">"Odjek:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Dodatni efekti odjeka u prostoriji"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Unaprijed definirani odjek"</string>
<string name="setup" msgid="1103677904576339192">"Postavljanje"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Korisnik"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 9d3cc38..26ed027 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Nem állnak rendelkezésre effektek."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Hangeffektusok"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Hangszín"</string>
<string name="headset_plug" msgid="4505819850289423141">"Dugd be a fejhallgatót ezekhez az effektekhez."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Mélyhangkiemelő"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Térhatású hangzás"</string>
- <string name="pr_title" msgid="873875523196045130">"Visszhang:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"További visszhang hatások"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Előre beállított visszhang"</string>
<string name="setup" msgid="1103677904576339192">"Beállítás"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Felhasználó"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index af87ab1..2d91dbf 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efek tidak tersedia."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efek audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekualizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Pasang headphone untuk efek ini."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Peningkatan bass"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Suara surround"</string>
- <string name="pr_title" msgid="873875523196045130">"Gema:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Efek gema ruangan tambahan"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Prasetel gema"</string>
<string name="setup" msgid="1103677904576339192">"Penyiapan"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Penguat FX"</string>
<string name="user" msgid="3949460956502898057">"Pengguna"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 07aa5b0..e66bb44 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effetti non disponibili."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Effetti audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizzatore"</string>
<string name="headset_plug" msgid="4505819850289423141">"Collega le cuffie per questi effetti."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bassi più intensi"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Audio surround"</string>
- <string name="pr_title" msgid="873875523196045130">"Riverbero:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Altri effetti riverbero stanza"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Preimpostazione riverbero"</string>
<string name="setup" msgid="1103677904576339192">"Configurazione"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Utente"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 29f6ed2..df98b75 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"האפקטים אינם זמינים."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"אפקטי אודיו"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"חבר אוזניות כדי לשמוע אפקטים אלה."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"הגברת הבס"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"סראונד"</string>
- <string name="pr_title" msgid="873875523196045130">"הדהוד:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"אפקטים נוספים של הדהוד בחדר"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"הגדרת הדהוד קבועה מראש"</string>
<string name="setup" msgid="1103677904576339192">"התקן"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"משתמש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 4976070..cbb2411 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"効果は利用できません。"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"オーディオ効果"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"イコライザー"</string>
<string name="headset_plug" msgid="4505819850289423141">"これらの効果はヘッドホンで聴いてください。"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"バスブースト"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"サラウンドサウンド"</string>
- <string name="pr_title" msgid="873875523196045130">"リバーブ:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"その他のルームリバーブ効果"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"リバーブプリセット"</string>
<string name="setup" msgid="1103677904576339192">"セットアップ"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FXブースター"</string>
<string name="user" msgid="3949460956502898057">"ユーザー"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 15a9150..ac5b4b5 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"효과를 사용할 수 없습니다."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"오디오 효과"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"이퀄라이저"</string>
<string name="headset_plug" msgid="4505819850289423141">"이 효과를 사용하려면 헤드폰을 연결하시기 바랍니다."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"중저음 강화"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"서라운드 사운드"</string>
- <string name="pr_title" msgid="873875523196045130">"반향:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"추가 실내 반향 효과"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"잔향 사전 설정"</string>
<string name="setup" msgid="1103677904576339192">"설정"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX 부스터"</string>
<string name="user" msgid="3949460956502898057">"사용자"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 2e87862..8d745ee 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efektai nepasiekiami."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Garso efektai"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Vienodintuvas"</string>
<string name="headset_plug" msgid="4505819850289423141">"Įkiškite ausines, kad būtų pateikti šie efektai."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Žemų tonų išryškinimas"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Erdvinis garsas"</string>
- <string name="pr_title" msgid="873875523196045130">"Dirbtinis garso fonas:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Papildomi aplinkos dirbtinio garso fono efektai"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Išankstinis dirbtinio garso fono nustatymas"</string>
<string name="setup" msgid="1103677904576339192">"Sąranka"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Naudotojas"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 733d438..7b63d3c 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efekti nav pieejami."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Audio efekti"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekvalaizers"</string>
<string name="headset_plug" msgid="4505819850289423141">"Pievienojiet austiņas, lai dzirdētu šos efektus."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Basu pastiprināšana"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Ieskaujošā skaņa"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverberācija:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Telpas reverberācijas papildu efekti"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Reverberācijas iepriekšēja iestatīšana"</string>
<string name="setup" msgid="1103677904576339192">"Iestatīšana"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"Lietotājs"</string>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 66bd3c1..7a94e00 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Kesan tidak tersedia."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Kesan audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Penyama"</string>
<string name="headset_plug" msgid="4505819850289423141">"Pasangkan fon kepala untuk kesan ini."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Galak bes"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Bunyi keliling"</string>
- <string name="pr_title" msgid="873875523196045130">"Gema:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Kesan gema bilik tambahan"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Pratetap gema"</string>
<string name="setup" msgid="1103677904576339192">"Persediaan"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Penggalak FX"</string>
<string name="user" msgid="3949460956502898057">"Pengguna"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 923af46..e9af104 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effekter er ikke tilgjengelige."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Lydeffekter"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Sett inn hodetelefoner for å oppleve disse effektene."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bassforsterking"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround-lyd"</string>
- <string name="pr_title" msgid="873875523196045130">"Romklang:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Ytterligere effekter for romklang"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Forhåndsinnstilling for romklang"</string>
<string name="setup" msgid="1103677904576339192">"Konfigurering"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Effekt"</string>
<string name="user" msgid="3949460956502898057">"Bruker"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 9de8cd5..3426acf 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effecten niet beschikbaar."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Audio-effecten"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Gebruik een hoofdtelefoon om deze effecten te beluisteren."</string>
- <string name="bass_boost_strength" msgid="882301530007752270">"Lage-tonenversterking"</string>
+ <string name="bass_boost_strength" msgid="882301530007752270">"Basversterking"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround sound"</string>
- <string name="pr_title" msgid="873875523196045130">"Galm:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Extra ruimtelijke galmeffecten"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Galm vooraf ingesteld"</string>
<string name="setup" msgid="1103677904576339192">"Instellen"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"Gebruiker"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 506a781..751bf1e 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efekty niedostępne"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efekty dźwiękowe"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Podłącz słuchawki, aby usłyszeć te efekty."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Basy"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Dźwięk przestrzenny"</string>
- <string name="pr_title" msgid="873875523196045130">"Pogłos:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Dodatkowe efekty pogłosu w pomieszczeniu"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Gotowe ustawienie pogłosu"</string>
<string name="setup" msgid="1103677904576339192">"Konfiguracja"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Wzmocnienie"</string>
<string name="user" msgid="3949460956502898057">"Własne"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 3f3a507..f604080 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efeitos não disponíveis."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efeitos de áudio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizador"</string>
<string name="headset_plug" msgid="4505819850289423141">"Ligue os auscultadores para estes efeitos."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Aumento de graves"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Som surround"</string>
- <string name="pr_title" msgid="873875523196045130">"Repercussão:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Efeitos de repercussão da sala adicionais"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Predefinição de reverberação"</string>
<string name="setup" msgid="1103677904576339192">"Configuração"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Amplificador FX"</string>
<string name="user" msgid="3949460956502898057">"Utilizador"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 4cda20f..e2b6661 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efeitos não disponíveis."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efeitos de áudio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizador"</string>
<string name="headset_plug" msgid="4505819850289423141">"Conecte fones de ouvido para ativar estes efeitos."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Realçar graves"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Sistema surround"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverberação:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Efeitos adicionais de reverberação do ambiente"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Predefinição de reverberação"</string>
<string name="setup" msgid="1103677904576339192">"Configuração"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Amplificador FX"</string>
<string name="user" msgid="3949460956502898057">"Usuário"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 0e1c591..f04e779 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efectele nu sunt disponibile."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Efecte audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Egalizator"</string>
<string name="headset_plug" msgid="4505819850289423141">"Pentru aceste efecte trebuie să conectaţi căştile."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Amplificare bas"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Sunet surround"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverberaţii:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Efecte suplimentare de reverberaţie în încăpere"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Presetare pentru reverberaţii"</string>
<string name="setup" msgid="1103677904576339192">"Configuraţi"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Amplificator FX"</string>
<string name="user" msgid="3949460956502898057">"Utilizator"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 2b7f2da..d40be0c 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Эффекты недоступны."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Аудиоэффекты"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Эквалайзер"</string>
<string name="headset_plug" msgid="4505819850289423141">"Чтобы услышать эти эффекты, подключите наушники."</string>
- <string name="bass_boost_strength" msgid="882301530007752270">"Усиление нижних частот"</string>
+ <string name="bass_boost_strength" msgid="882301530007752270">"Усиление басов"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Объемный звук"</string>
- <string name="pr_title" msgid="873875523196045130">"Реверберация:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Дополнительные эффекты реверберации в помещении"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Шаблон ревербератора"</string>
<string name="setup" msgid="1103677904576339192">"Настройка"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Усилитель FX"</string>
<string name="user" msgid="3949460956502898057">"Своя настройка"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 62c2f31..2f72191 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -18,16 +18,12 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efekty nie sú k dispozícii."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Zvukové efekty"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekvalizér"</string>
<string name="headset_plug" msgid="4505819850289423141">"Ak chcete počuť tieto efekty, pripojte slúchadlá"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Zosilnenie basov"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Priestorový zvuk"</string>
- <string name="pr_title" msgid="873875523196045130">"Ozvena:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Ďalšie efekty ozveny v miestnosti"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Preddefinované nastavenie ozveny"</string>
<string name="setup" msgid="1103677904576339192">"Nastavenie"</string>
- <string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
- <string name="user" msgid="3949460956502898057">"Používateľ"</string>
+ <string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
+ <string name="user" msgid="3949460956502898057">"Vlastné"</string>
<string name="picker_title" msgid="8464126693702817261">"Ovládací panel hudobných efektov"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index c836f47..49dfd1c 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Učinki niso na voljo."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Zvočni učinki"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Izenačevalnik"</string>
<string name="headset_plug" msgid="4505819850289423141">"Za te učinke priključite slušalke."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Povečanje nizkih tonov"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Prostorski zvok"</string>
- <string name="pr_title" msgid="873875523196045130">"Odmev:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Dodatni učinki za odmev v prostoru"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Prednastavljen odmev"</string>
<string name="setup" msgid="1103677904576339192">"Namestitev"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Izboljšanje učinkov"</string>
<string name="user" msgid="3949460956502898057">"Uporabnik"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 42ce27d..ac27ddb 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Ефекти нису доступни."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Аудио ефекти"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Еквилајзер"</string>
<string name="headset_plug" msgid="4505819850289423141">"Прикључите слушалице за ове ефекте."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Појачавање басова"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Звучни систем"</string>
- <string name="pr_title" msgid="873875523196045130">"Одјек:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Додатни ефекти одјека у простору"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Претподешавање реверба"</string>
<string name="setup" msgid="1103677904576339192">"Подешавање"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Корисник"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index e7b371f..031642c 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Effekter är inte tillgängliga."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Ljudeffekter"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Du måste ansluta hörlurar för att kunna höra effekterna."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Basförstärkning"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surroundljud"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverb:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Ytterligare effekter med rumsreverb"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Förinställning för reverb"</string>
<string name="setup" msgid="1103677904576339192">"Konfiguration"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"Användare"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 77b2f48..dc070de 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MuzikiFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Athari hazipatikani"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Athari za sauti"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Kisawazishi"</string>
<string name="headset_plug" msgid="4505819850289423141">"Kwa athari hizi weka vipokea sauti."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Kuongeza besi"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Sauti ya mzunguko"</string>
- <string name="pr_title" msgid="873875523196045130">"Rivabu:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Athari za chumba cha ziada cha revabaresheni"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Seti upya Rivabu"</string>
<string name="setup" msgid="1103677904576339192">"Weka"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Nyongeza ya FX"</string>
<string name="user" msgid="3949460956502898057">"Mtumiaji"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b8cec19..725ae1b 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"ไม่มีเอฟเฟ็กต์"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"เอฟเฟ็กต์เสียง"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"อีควอไลเซอร์"</string>
<string name="headset_plug" msgid="4505819850289423141">"ใช้หูฟังสำหรับเอฟเฟ็กต์เหล่านี้"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"เพิ่มเสียงเบส"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"เสียงเซอร์ราวด์"</string>
- <string name="pr_title" msgid="873875523196045130">"เสียงก้อง:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"เอฟเฟ็กต์เสียงก้องในห้องเพิ่มเติม"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"เสียงก้องที่ตั้งล่วงหน้า"</string>
<string name="setup" msgid="1103677904576339192">"ตั้งค่าระบบ"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX Booster"</string>
<string name="user" msgid="3949460956502898057">"ผู้ใช้"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index b533ae5..befe07b 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Hindi available ang mga effect."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Mga effect ng audio"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Equalizer"</string>
<string name="headset_plug" msgid="4505819850289423141">"I-plug in ang mga headphone para sa mga effect na ito."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bass Boost"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround sound"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverb:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Karagdagang mga effect sa reverberation ng kuwarto"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Reverb na preset"</string>
<string name="setup" msgid="1103677904576339192">"Setup"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"User"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 1a54635..31e9f3a 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Efektler kullanılamıyor."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Ses efektleri"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Ekolayzer"</string>
<string name="headset_plug" msgid="4505819850289423141">"Bu efektler için kulaklığı takın."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Güçlü bas"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Surround ses"</string>
- <string name="pr_title" msgid="873875523196045130">"Yankı:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Diğer oda yankısı efektleri"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Yankı ön ayarı"</string>
<string name="setup" msgid="1103677904576339192">"Kurulum"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Kullanıcı"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index bfdee89..c9e05b8 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Ефекти не доступні"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Аудіоефекти"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Еквалайзер"</string>
<string name="headset_plug" msgid="4505819850289423141">"Для цих ефектів підключіть гарнітуру."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Підсилення басів"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Об’ємний звук"</string>
- <string name="pr_title" msgid="873875523196045130">"Акустика:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Додаткові акустичні ефекти в приміщенні"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Попередні налаштування акустики"</string>
<string name="setup" msgid="1103677904576339192">"Налаштування"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX booster"</string>
<string name="user" msgid="3949460956502898057">"Користувач"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 3f38126..d376596 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Không có hiệu ứng."</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Hiệu ứng âm thanh"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Bộ hiệu chỉnh"</string>
<string name="headset_plug" msgid="4505819850289423141">"Cắm tai nghe đối với những hiệu ứng này."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Tăng âm trầm"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Âm thanh vòm"</string>
- <string name="pr_title" msgid="873875523196045130">"Âm vang:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Hiệu ứng âm vang trong phòng bổ sung"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Giá trị âm vang đặt trước"</string>
<string name="setup" msgid="1103677904576339192">"Thiết lập"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Bộ tăng FX"</string>
<string name="user" msgid="3949460956502898057">"Người dùng"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index d27d00f..042476c 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"没有音效。"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"音效"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"均衡器"</string>
<string name="headset_plug" msgid="4505819850289423141">"插上耳机感受各种音效。"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"低音增强"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"环绕声"</string>
- <string name="pr_title" msgid="873875523196045130">"混响效果:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"其他室内混响效果"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"混响效果预设"</string>
<string name="setup" msgid="1103677904576339192">"设置"</string>
<string name="ci_extreme" msgid="1736938429763948084">"音效增强器"</string>
<string name="user" msgid="3949460956502898057">"用户"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index e1adf42..973c185 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"無效果。"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"音效"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"等化器"</string>
<string name="headset_plug" msgid="4505819850289423141">"如要體驗這些效果,請插入耳機。"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"重低音"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"環迴音響"</string>
- <string name="pr_title" msgid="873875523196045130">"回音:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"額外空間回音效果"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"回響預設"</string>
<string name="setup" msgid="1103677904576339192">"設定"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX 輔助器"</string>
<string name="user" msgid="3949460956502898057">"用戶"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 5df963e..db709e3 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"無法使用效果。"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"音效"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"等化器"</string>
<string name="headset_plug" msgid="4505819850289423141">"接上耳機即可體驗這些效果。"</string>
<string name="bass_boost_strength" msgid="882301530007752270">"低音加強"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"環繞音效"</string>
- <string name="pr_title" msgid="873875523196045130">"回響:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"額外空間回響效果"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"回響預設"</string>
<string name="setup" msgid="1103677904576339192">"設定"</string>
<string name="ci_extreme" msgid="1736938429763948084">"FX 輔助器"</string>
<string name="user" msgid="3949460956502898057">"使用者"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9bf5df5..8d02bba 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -18,14 +18,10 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_name" msgid="5717136097222561957">"MusicFX"</string>
<string name="no_effects" msgid="5067916002004255814">"Imiphumela ayitholakali"</string>
- <string name="main_toggle_effects_title" msgid="612896145300512593">"Imphumelo Yomsindo"</string>
<string name="eq_dialog_title" msgid="2020244436368289652">"Isilinganisi somsindo"</string>
<string name="headset_plug" msgid="4505819850289423141">"Xhuma okwasekhanda kule miphumela."</string>
<string name="bass_boost_strength" msgid="882301530007752270">"Bass boost"</string>
<string name="virtualizer_strength" msgid="106561253469770096">"Umsindo ozungelezile"</string>
- <string name="pr_title" msgid="873875523196045130">"Reverb:"</string>
- <string name="pr_summary" msgid="7457279522425453515">"Ikamelo elengeziwe lemphumela elethwayo"</string>
- <string name="pr_dialog_title" msgid="8080282254796293452">"Thumela i-Preset"</string>
<string name="setup" msgid="1103677904576339192">"Isethaphu"</string>
<string name="ci_extreme" msgid="1736938429763948084">"Ukulekelela kwe-FX"</string>
<string name="user" msgid="3949460956502898057">"Umsebenzisi"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 20a871b..143efa5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -19,14 +19,10 @@
<!-- ControlPanelMusic strings -->
<string name="no_effects">Effects not available.</string>
- <string name="main_toggle_effects_title">Audio effects</string>
<string name="eq_dialog_title">Equalizer</string>
<string name="headset_plug">Plug in headphones for these effects.</string>
<string name="bass_boost_strength">Bass boost</string>
<string name="virtualizer_strength">Surround sound</string>
- <string name="pr_title">Reverb:</string>
- <string name="pr_summary">Additional room reverberation effects</string>
- <string name="pr_dialog_title">Reverb preset</string>
<string name="setup">Setup</string>
<string name="ci_extreme">FX booster</string>
<string name="user">User</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
deleted file mode 100644
index f92c230..0000000
--- a/res/values/styles.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<resources>
- <style name="Widget.Holo.SeekBar.Vertical" parent="@android:Widget.Holo.SeekBar">
- <item name="android:indeterminateOnly">false</item>
- <item name="android:progressDrawable">@drawable/scrubber_progress_vertical_holo_dark</item>
-<!-- not public <item name="android:indeterminateDrawable">@android:drawable/scrubber_progress_horizontal_holo_dark</item> -->
- <item name="android:minWidth">33dip</item>
- <item name="android:maxWidth">33dip</item>
-<!-- not public <item name="android:thumb">@android:drawable/scrubber_control_selector_holo</item> -->
- <item name="android:thumbOffset">16dip</item>
- <item name="android:focusable">true</item>
- <item name="android:paddingLeft">0dip</item>
- <item name="android:paddingRight">0dip</item>
- <item name="android:paddingTop">16dip</item>
- <item name="android:paddingBottom">16dip</item>
- </style>
-</resources>
diff --git a/src/com/android/musicfx/ActivityMusic.java b/src/com/android/musicfx/ActivityMusic.java
index 6f9718a..328a923 100644
--- a/src/com/android/musicfx/ActivityMusic.java
+++ b/src/com/android/musicfx/ActivityMusic.java
@@ -17,8 +17,6 @@
package com.android.musicfx;
import com.android.audiofx.OpenSLESConstants;
-import com.android.musicfx.seekbar.SeekBar;
-import com.android.musicfx.seekbar.SeekBar.OnSeekBarChangeListener;
import android.app.ActionBar;
import android.app.Activity;
@@ -52,6 +50,8 @@
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
+import android.widget.SeekBar;
+import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;
@@ -73,6 +73,16 @@
private final static int EQUALIZER_MAX_BANDS = 32;
/**
+ * Max levels per EQ band in millibels (1 dB = 100 mB)
+ */
+ private final static int EQUALIZER_MAX_LEVEL = 1000;
+
+ /**
+ * Min levels per EQ band in millibels (1 dB = 100 mB)
+ */
+ private final static int EQUALIZER_MIN_LEVEL = -1000;
+
+ /**
* Indicates if Virtualizer effect is supported.
*/
private boolean mVirtualizerSupported;
@@ -550,7 +560,7 @@
final int count = viewGroup.getChildCount();
for (int i = 0; i < count; i++) {
final View view = viewGroup.getChildAt(i);
- if ((view instanceof LinearLayout) || (view instanceof RelativeLayout)) {
+ if ((view instanceof ViewGroup)) {
final ViewGroup vg = (ViewGroup) view;
setEnabledAllChildren(vg, enabled);
}
@@ -633,8 +643,8 @@
mCallingPackageName, mAudioSession, ControlPanelEffect.Key.eq_center_freq);
final int[] bandLevelRange = ControlPanelEffect.getParameterIntArray(mContext,
mCallingPackageName, mAudioSession, ControlPanelEffect.Key.eq_level_range);
- mEqualizerMinBandLevel = bandLevelRange[0];
- final int mEqualizerMaxBandLevel = bandLevelRange[1];
+ mEqualizerMinBandLevel = (int) Math.max(EQUALIZER_MIN_LEVEL, bandLevelRange[0]);
+ final int mEqualizerMaxBandLevel = (int) Math.min(EQUALIZER_MAX_LEVEL, bandLevelRange[1]);
for (int band = 0; band < mNumberEqualizerBands; band++) {
// Unit conversion from mHz to Hz and use k prefix if necessary to display
@@ -661,13 +671,12 @@
eqcontainer.findViewById(EQViewElementIds[band][1]).setVisibility(View.GONE);
}
- // TODO: get the actual values from somewhere
TextView tv = (TextView) findViewById(R.id.maxLevelText);
- tv.setText("+15 dB");
+ tv.setText(String.format("+%d dB", (int) Math.ceil(mEqualizerMaxBandLevel / 100)));
tv = (TextView) findViewById(R.id.centerLevelText);
tv.setText("0 dB");
tv = (TextView) findViewById(R.id.minLevelText);
- tv.setText("-15 dB");
+ tv.setText(String.format("%d dB", (int) Math.floor(mEqualizerMinBandLevel / 100)));
equalizerUpdateDisplay();
}
diff --git a/src/com/android/musicfx/ControlPanelEffect.java b/src/com/android/musicfx/ControlPanelEffect.java
index 7d9e5a1..25845b8 100644
--- a/src/com/android/musicfx/ControlPanelEffect.java
+++ b/src/com/android/musicfx/ControlPanelEffect.java
@@ -127,14 +127,14 @@
14000000 };
private final static short[] EQUALIZER_PRESET_CIEXTREME_BAND_LEVEL = { 0, 800, 400, 100, 1000 };
private final static short[] EQUALIZER_PRESET_USER_BAND_LEVEL_DEFAULT = { 0, 0, 0, 0, 0 };
- private final static short[][] EQUALIZER_PRESET_OPENSL_ES_BAND_LEVEL_DEFAULT = new short[EQUALIZER_NUMBER_PRESETS_DEFAULT][EQUALIZER_NUMBER_BANDS_DEFAULT];
// EQ effect properties which are invariable over all EQ effects sessions
private static short[] mEQBandLevelRange = EQUALIZER_BAND_LEVEL_RANGE_DEFAULT;
private static short mEQNumBands = EQUALIZER_NUMBER_BANDS_DEFAULT;
private static int[] mEQCenterFreq = EQUALIZER_CENTER_FREQ_DEFAULT;
private static short mEQNumPresets = EQUALIZER_NUMBER_PRESETS_DEFAULT;
- private static short[][] mEQPresetOpenSLESBandLevel = EQUALIZER_PRESET_OPENSL_ES_BAND_LEVEL_DEFAULT;
+ private static short[][] mEQPresetOpenSLESBandLevel =
+ new short[EQUALIZER_NUMBER_PRESETS_DEFAULT][EQUALIZER_NUMBER_BANDS_DEFAULT];
private static String[] mEQPresetNames;
private static boolean mIsEQInitialized = false;
private final static Object mEQInitLock = new Object();
@@ -251,17 +251,16 @@
// When there was a failure set some good defaults
if (!mIsEQInitialized) {
+ Log.e(TAG, "Error retrieving default EQ values, setting all presets"
+ + " to flat response");
mEQPresetOpenSLESBandLevel = new short[mEQNumPresets][mEQNumBands];
for (short preset = 0; preset < mEQNumPresets; preset++) {
// Init preset names to a dummy name
mEQPresetNames[preset] = prefs.getString(
Key.eq_preset_name.toString() + preset,
EQUALIZER_PRESET_NAME_DEFAULT + preset);
- if (preset < EQUALIZER_PRESET_OPENSL_ES_BAND_LEVEL_DEFAULT.length) {
- mEQPresetOpenSLESBandLevel[preset] = Arrays.copyOf(
- EQUALIZER_PRESET_OPENSL_ES_BAND_LEVEL_DEFAULT[preset],
- mEQNumBands);
- }
+ mEQPresetOpenSLESBandLevel[preset] = Arrays.copyOf(
+ EQUALIZER_PRESET_USER_BAND_LEVEL_DEFAULT, mEQNumBands);
}
}
}
@@ -705,7 +704,7 @@
EQUALIZER_NUMBER_PRESETS_DEFAULT);
final short[][] eQPresetOpenSLESBandLevelDefault = Arrays.copyOf(
- EQUALIZER_PRESET_OPENSL_ES_BAND_LEVEL_DEFAULT, numBands);
+ mEQPresetOpenSLESBandLevel, numPresets);
final short[] eQPresetCIExtremeBandLevelDefault = Arrays.copyOf(
EQUALIZER_PRESET_CIEXTREME_BAND_LEVEL, numBands);
final short[] eQPresetUserBandLevelDefault = Arrays.copyOf(
diff --git a/src/com/android/musicfx/SeekBarRotator.java b/src/com/android/musicfx/SeekBarRotator.java
new file mode 100644
index 0000000..d4ef0ca
--- /dev/null
+++ b/src/com/android/musicfx/SeekBarRotator.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2015 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.musicfx;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+
+
+/*
+ * This ViewGroup contains a single view, which will be rotated by 90 degrees counterclockwise.
+ */
+
+public class SeekBarRotator extends ViewGroup {
+
+
+ public SeekBarRotator(Context context) {
+ super(context);
+ }
+
+ public SeekBarRotator(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public SeekBarRotator(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public SeekBarRotator(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ final View child = getChildAt(0);
+
+ if (child.getVisibility() != GONE) {
+ // swap width and height for child
+ measureChild(child, heightMeasureSpec, widthMeasureSpec);
+ setMeasuredDimension(
+ child.getMeasuredHeightAndState(),
+ child.getMeasuredWidthAndState());
+ } else {
+ setMeasuredDimension(
+ resolveSizeAndState(0, widthMeasureSpec, 0),
+ resolveSizeAndState(0, heightMeasureSpec, 0));
+ }
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
+ final View child = getChildAt(0);
+
+ if (child.getVisibility() != GONE) {
+ // rotate the child 90 degrees counterclockwise around its upper-left
+ child.setPivotX(0);
+ child.setPivotY(0);
+ child.setRotation(-90);
+
+ // place the child below this view, so it rotates into view
+ int mywidth = r - l;
+ int myheight = b - t;
+ int childwidth = myheight;
+ int childheight = mywidth;
+
+ child.layout(0, myheight, childwidth, myheight + childheight);
+ }
+ }
+
+}
diff --git a/src/com/android/musicfx/seekbar/AbsSeekBar.java b/src/com/android/musicfx/seekbar/AbsSeekBar.java
deleted file mode 100644
index 00ad580..0000000
--- a/src/com/android/musicfx/seekbar/AbsSeekBar.java
+++ /dev/null
@@ -1,561 +0,0 @@
-/*
- * Copyright (C) 2007 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.musicfx.seekbar;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
-import android.view.ViewConfiguration;
-
-public abstract class AbsSeekBar extends ProgressBar {
- private Drawable mThumb;
- private int mThumbOffset;
-
- /**
- * On touch, this offset plus the scaled value from the position of the
- * touch will form the progress value. Usually 0.
- */
- float mTouchProgressOffset;
-
- /**
- * Whether this is user seekable.
- */
- boolean mIsUserSeekable = true;
-
- boolean mIsVertical = false;
- /**
- * On key presses (right or left), the amount to increment/decrement the
- * progress.
- */
- private int mKeyProgressIncrement = 1;
-
- private static final int NO_ALPHA = 0xFF;
- private float mDisabledAlpha;
-
- private int mScaledTouchSlop;
- private float mTouchDownX;
- private float mTouchDownY;
- private boolean mIsDragging;
-
- public AbsSeekBar(Context context) {
- super(context);
- }
-
- public AbsSeekBar(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
-
- public AbsSeekBar(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
-
- TypedArray a = context.obtainStyledAttributes(attrs,
- com.android.internal.R.styleable.SeekBar, defStyle, 0);
- Drawable thumb = a.getDrawable(com.android.internal.R.styleable.SeekBar_thumb);
- setThumb(thumb); // will guess mThumbOffset if thumb != null...
- // ...but allow layout to override this
- int thumbOffset = a.getDimensionPixelOffset(
- com.android.internal.R.styleable.SeekBar_thumbOffset, getThumbOffset());
- setThumbOffset(thumbOffset);
- a.recycle();
-
- a = context.obtainStyledAttributes(attrs,
- com.android.internal.R.styleable.Theme, 0, 0);
- mDisabledAlpha = a.getFloat(com.android.internal.R.styleable.Theme_disabledAlpha, 0.5f);
- a.recycle();
-
- mScaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
- }
-
- /**
- * Sets the thumb that will be drawn at the end of the progress meter within the SeekBar.
- * <p>
- * If the thumb is a valid drawable (i.e. not null), half its width will be
- * used as the new thumb offset (@see #setThumbOffset(int)).
- *
- * @param thumb Drawable representing the thumb
- */
- public void setThumb(Drawable thumb) {
- boolean needUpdate;
- // This way, calling setThumb again with the same bitmap will result in
- // it recalcuating mThumbOffset (if for example it the bounds of the
- // drawable changed)
- if (mThumb != null && thumb != mThumb) {
- mThumb.setCallback(null);
- needUpdate = true;
- } else {
- needUpdate = false;
- }
- if (thumb != null) {
- thumb.setCallback(this);
-
- // Assuming the thumb drawable is symmetric, set the thumb offset
- // such that the thumb will hang halfway off either edge of the
- // progress bar.
- if (mIsVertical) {
- mThumbOffset = thumb.getIntrinsicHeight() / 2;
- } else {
- mThumbOffset = thumb.getIntrinsicWidth() / 2;
- }
-
- // If we're updating get the new states
- if (needUpdate &&
- (thumb.getIntrinsicWidth() != mThumb.getIntrinsicWidth()
- || thumb.getIntrinsicHeight() != mThumb.getIntrinsicHeight())) {
- requestLayout();
- }
- }
- mThumb = thumb;
- invalidate();
- if (needUpdate) {
- updateThumbPos(getWidth(), getHeight());
- if (thumb.isStateful()) {
- // Note that if the states are different this won't work.
- // For now, let's consider that an app bug.
- int[] state = getDrawableState();
- thumb.setState(state);
- }
- }
- }
-
- /**
- * @see #setThumbOffset(int)
- */
- public int getThumbOffset() {
- return mThumbOffset;
- }
-
- /**
- * Sets the thumb offset that allows the thumb to extend out of the range of
- * the track.
- *
- * @param thumbOffset The offset amount in pixels.
- */
- public void setThumbOffset(int thumbOffset) {
- mThumbOffset = thumbOffset;
- invalidate();
- }
-
- /**
- * Sets the amount of progress changed via the arrow keys.
- *
- * @param increment The amount to increment or decrement when the user
- * presses the arrow keys.
- */
- public void setKeyProgressIncrement(int increment) {
- mKeyProgressIncrement = increment < 0 ? -increment : increment;
- }
-
- /**
- * Returns the amount of progress changed via the arrow keys.
- * <p>
- * By default, this will be a value that is derived from the max progress.
- *
- * @return The amount to increment or decrement when the user presses the
- * arrow keys. This will be positive.
- */
- public int getKeyProgressIncrement() {
- return mKeyProgressIncrement;
- }
-
- @Override
- public synchronized void setMax(int max) {
- super.setMax(max);
-
- if ((mKeyProgressIncrement == 0) || (getMax() / mKeyProgressIncrement > 20)) {
- // It will take the user too long to change this via keys, change it
- // to something more reasonable
- setKeyProgressIncrement(Math.max(1, Math.round((float) getMax() / 20)));
- }
- }
-
- @Override
- protected boolean verifyDrawable(Drawable who) {
- return who == mThumb || super.verifyDrawable(who);
- }
-
- @Override
- public void jumpDrawablesToCurrentState() {
- super.jumpDrawablesToCurrentState();
- if (mThumb != null) mThumb.jumpToCurrentState();
- }
-
- @Override
- protected void drawableStateChanged() {
- super.drawableStateChanged();
-
- Drawable progressDrawable = getProgressDrawable();
- if (progressDrawable != null) {
- progressDrawable.setAlpha(isEnabled() ? NO_ALPHA : (int) (NO_ALPHA * mDisabledAlpha));
- }
-
- if (mThumb != null && mThumb.isStateful()) {
- int[] state = getDrawableState();
- mThumb.setState(state);
- }
- }
-
- @Override
- void onProgressRefresh(float scale, boolean fromUser) {
- super.onProgressRefresh(scale, fromUser);
- Drawable thumb = mThumb;
- if (thumb != null) {
- setThumbPos(getWidth(), getHeight(), thumb, scale, Integer.MIN_VALUE);
- /*
- * Since we draw translated, the drawable's bounds that it signals
- * for invalidation won't be the actual bounds we want invalidated,
- * so just invalidate this whole view.
- */
- invalidate();
- }
- }
-
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- updateThumbPos(w, h);
- }
-
- private void updateThumbPos(int w, int h) {
- Drawable d = getCurrentDrawable();
- Drawable thumb = mThumb;
- if (mIsVertical) {
- int thumbWidth = thumb == null ? 0 : thumb.getIntrinsicWidth();
- // The max width does not incorporate padding, whereas the width
- // parameter does
- int trackWidth = Math.min(mMaxWidth, w - mPaddingLeft - mPaddingRight);
-
- int max = getMax();
- float scale = max > 0 ? (float) getProgress() / (float) max : 0;
-
- if (thumbWidth > trackWidth) {
- if (thumb != null) {
- setThumbPos(w, h, thumb, scale, 0);
- }
- int gapForCenteringTrack = (thumbWidth - trackWidth) / 2;
- if (d != null) {
- // Canvas will be translated by the padding, so 0,0 is where we start drawing
- d.setBounds(gapForCenteringTrack, 0,
- w - mPaddingRight - gapForCenteringTrack - mPaddingLeft,
- h - mPaddingBottom - mPaddingTop);
- }
- } else {
- if (d != null) {
- // Canvas will be translated by the padding, so 0,0 is where we start drawing
- d.setBounds(0, 0, w - mPaddingRight - mPaddingLeft, h - mPaddingBottom
- - mPaddingTop);
- }
- int gap = (trackWidth - thumbWidth) / 2;
- if (thumb != null) {
- setThumbPos(w, h, thumb, scale, gap);
- }
- }
- } else {
- int thumbHeight = thumb == null ? 0 : thumb.getIntrinsicHeight();
- // The max height does not incorporate padding, whereas the height
- // parameter does
- int trackHeight = Math.min(mMaxHeight, h - mPaddingTop - mPaddingBottom);
-
- int max = getMax();
- float scale = max > 0 ? (float) getProgress() / (float) max : 0;
-
- if (thumbHeight > trackHeight) {
- if (thumb != null) {
- setThumbPos(w, h, thumb, scale, 0);
- }
- int gapForCenteringTrack = (thumbHeight - trackHeight) / 2;
- if (d != null) {
- // Canvas will be translated by the padding, so 0,0 is where we start drawing
- d.setBounds(0, gapForCenteringTrack,
- w - mPaddingRight - mPaddingLeft, h - mPaddingBottom - gapForCenteringTrack
- - mPaddingTop);
- }
- } else {
- if (d != null) {
- // Canvas will be translated by the padding, so 0,0 is where we start drawing
- d.setBounds(0, 0, w - mPaddingRight - mPaddingLeft, h - mPaddingBottom
- - mPaddingTop);
- }
- int gap = (trackHeight - thumbHeight) / 2;
- if (thumb != null) {
- setThumbPos(w, h, thumb, scale, gap);
- }
- }
- }
- }
-
- /**
- * @param gap If set to {@link Integer#MIN_VALUE}, this will be ignored and
- */
- private void setThumbPos(int w, int h, Drawable thumb, float scale, int gap) {
- int available;
- int thumbWidth = thumb.getIntrinsicWidth();
- int thumbHeight = thumb.getIntrinsicHeight();
- if (mIsVertical) {
- available = h - mPaddingTop - mPaddingBottom - thumbHeight;
- } else {
- available = w - mPaddingLeft - mPaddingRight - thumbWidth;
- }
-
- // The extra space for the thumb to move on the track
- available += mThumbOffset * 2;
-
-
- if (mIsVertical) {
- int thumbPos = (int) ((1.0f - scale) * available);
- int leftBound, rightBound;
- if (gap == Integer.MIN_VALUE) {
- Rect oldBounds = thumb.getBounds();
- leftBound = oldBounds.left;
- rightBound = oldBounds.right;
- } else {
- leftBound = gap;
- rightBound = gap + thumbWidth;
- }
-
- // Canvas will be translated, so 0,0 is where we start drawing
- thumb.setBounds(leftBound, thumbPos, rightBound, thumbPos + thumbHeight);
- } else {
- int thumbPos = (int) (scale * available);
- int topBound, bottomBound;
- if (gap == Integer.MIN_VALUE) {
- Rect oldBounds = thumb.getBounds();
- topBound = oldBounds.top;
- bottomBound = oldBounds.bottom;
- } else {
- topBound = gap;
- bottomBound = gap + thumbHeight;
- }
-
- // Canvas will be translated, so 0,0 is where we start drawing
- thumb.setBounds(thumbPos, topBound, thumbPos + thumbWidth, bottomBound);
- }
- }
-
- @Override
- protected synchronized void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- if (mThumb != null) {
- canvas.save();
- // Translate the padding. For the x/y, we need to allow the thumb to
- // draw in its extra space
- if (mIsVertical) {
- canvas.translate(mPaddingLeft, mPaddingTop - mThumbOffset);
- mThumb.draw(canvas);
- canvas.restore();
- } else {
- canvas.translate(mPaddingLeft - mThumbOffset, mPaddingTop);
- mThumb.draw(canvas);
- canvas.restore();
- }
- }
- }
-
- @Override
- protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- Drawable d = getCurrentDrawable();
-
- int thumbHeight = mThumb == null ? 0 : mThumb.getIntrinsicHeight();
- int dw = 0;
- int dh = 0;
- if (d != null) {
- dw = Math.max(mMinWidth, Math.min(mMaxWidth, d.getIntrinsicWidth()));
- dh = Math.max(mMinHeight, Math.min(mMaxHeight, d.getIntrinsicHeight()));
- dh = Math.max(thumbHeight, dh);
- }
- dw += mPaddingLeft + mPaddingRight;
- dh += mPaddingTop + mPaddingBottom;
-
- setMeasuredDimension(resolveSizeAndState(dw, widthMeasureSpec, 0),
- resolveSizeAndState(dh, heightMeasureSpec, 0));
-
- // TODO should probably make this an explicit attribute instead of implicitly
- // setting it based on the size
- if (getMeasuredHeight() > getMeasuredWidth()) {
- mIsVertical = true;
- }
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (!mIsUserSeekable || !isEnabled()) {
- return false;
- }
-
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN:
- if (isInScrollingContainer()) {
- mTouchDownX = event.getX();
- mTouchDownY = event.getY();
- } else {
- setPressed(true);
- if (mThumb != null) {
- invalidate(mThumb.getBounds()); // This may be within the padding region
- }
- onStartTrackingTouch();
- trackTouchEvent(event);
- attemptClaimDrag();
- }
- break;
-
- case MotionEvent.ACTION_MOVE:
- if (mIsDragging) {
- trackTouchEvent(event);
- } else {
- final float x = event.getX();
- final float y = event.getX();
- if (Math.abs(mIsVertical ?
- (y - mTouchDownY) : (x - mTouchDownX)) > mScaledTouchSlop) {
- setPressed(true);
- if (mThumb != null) {
- invalidate(mThumb.getBounds()); // This may be within the padding region
- }
- onStartTrackingTouch();
- trackTouchEvent(event);
- attemptClaimDrag();
- }
- }
- break;
-
- case MotionEvent.ACTION_UP:
- if (mIsDragging) {
- trackTouchEvent(event);
- onStopTrackingTouch();
- setPressed(false);
- } else {
- // Touch up when we never crossed the touch slop threshold should
- // be interpreted as a tap-seek to that location.
- onStartTrackingTouch();
- trackTouchEvent(event);
- onStopTrackingTouch();
- }
- // ProgressBar doesn't know to repaint the thumb drawable
- // in its inactive state when the touch stops (because the
- // value has not apparently changed)
- invalidate();
- break;
-
- case MotionEvent.ACTION_CANCEL:
- if (mIsDragging) {
- onStopTrackingTouch();
- setPressed(false);
- }
- invalidate(); // see above explanation
- break;
- }
- return true;
- }
-
- private void trackTouchEvent(MotionEvent event) {
- float progress = 0;
- if (mIsVertical) {
- final int height = getHeight();
- final int available = height - mPaddingTop - mPaddingBottom;
- int y = (int)event.getY();
- float scale;
- if (y < mPaddingTop) {
- scale = 1.0f;
- } else if (y > height - mPaddingBottom) {
- scale = 0.0f;
- } else {
- scale = 1.0f - (float)(y - mPaddingTop) / (float)available;
- progress = mTouchProgressOffset;
- }
-
- final int max = getMax();
- progress += scale * max;
- } else {
- final int width = getWidth();
- final int available = width - mPaddingLeft - mPaddingRight;
- int x = (int)event.getX();
- float scale;
- if (x < mPaddingLeft) {
- scale = 0.0f;
- } else if (x > width - mPaddingRight) {
- scale = 1.0f;
- } else {
- scale = (float)(x - mPaddingLeft) / (float)available;
- progress = mTouchProgressOffset;
- }
-
- final int max = getMax();
- progress += scale * max;
- }
-
- setProgress((int) progress, true);
- }
-
- /**
- * Tries to claim the user's drag motion, and requests disallowing any
- * ancestors from stealing events in the drag.
- */
- private void attemptClaimDrag() {
- if (mParent != null) {
- mParent.requestDisallowInterceptTouchEvent(true);
- }
- }
-
- /**
- * This is called when the user has started touching this widget.
- */
- void onStartTrackingTouch() {
- mIsDragging = true;
- }
-
- /**
- * This is called when the user either releases his touch or the touch is
- * canceled.
- */
- void onStopTrackingTouch() {
- mIsDragging = false;
- }
-
- /**
- * Called when the user changes the seekbar's progress by using a key event.
- */
- void onKeyChange() {
- }
-
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (isEnabled()) {
- int progress = getProgress();
- if ((keyCode == KeyEvent.KEYCODE_DPAD_LEFT && !mIsVertical)
- || (keyCode == KeyEvent.KEYCODE_DPAD_DOWN && mIsVertical)) {
- if (progress > 0) {
- setProgress(progress - mKeyProgressIncrement, true);
- onKeyChange();
- return true;
- }
- } else if ((keyCode == KeyEvent.KEYCODE_DPAD_RIGHT && !mIsVertical)
- || (keyCode == KeyEvent.KEYCODE_DPAD_UP && mIsVertical)) {
- if (progress < getMax()) {
- setProgress(progress + mKeyProgressIncrement, true);
- onKeyChange();
- return true;
- }
- }
- }
-
- return super.onKeyDown(keyCode, event);
- }
-
-}
diff --git a/src/com/android/musicfx/seekbar/ProgressBar.java b/src/com/android/musicfx/seekbar/ProgressBar.java
deleted file mode 100644
index 9c4264d..0000000
--- a/src/com/android/musicfx/seekbar/ProgressBar.java
+++ /dev/null
@@ -1,1146 +0,0 @@
-/*
- * Copyright (C) 2006 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.musicfx.seekbar;
-
-import com.android.internal.R;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.BitmapShader;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.graphics.Shader;
-import android.graphics.drawable.Animatable;
-import android.graphics.drawable.AnimationDrawable;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.ClipDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.StateListDrawable;
-import android.graphics.drawable.shapes.RoundRectShape;
-import android.graphics.drawable.shapes.Shape;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.os.SystemClock;
-import android.util.AttributeSet;
-import android.view.Gravity;
-import android.view.RemotableViewMethod;
-import android.view.View;
-import android.view.ViewDebug;
-import android.view.accessibility.AccessibilityEvent;
-import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AlphaAnimation;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.view.animation.LinearInterpolator;
-import android.view.animation.Transformation;
-import android.widget.RemoteViews.RemoteView;
-
-
-/**
- * <p>
- * Visual indicator of progress in some operation. Displays a bar to the user
- * representing how far the operation has progressed; the application can
- * change the amount of progress (modifying the length of the bar) as it moves
- * forward. There is also a secondary progress displayable on a progress bar
- * which is useful for displaying intermediate progress, such as the buffer
- * level during a streaming playback progress bar.
- * </p>
- *
- * <p>
- * A progress bar can also be made indeterminate. In indeterminate mode, the
- * progress bar shows a cyclic animation without an indication of progress. This mode is used by
- * applications when the length of the task is unknown. The indeterminate progress bar can be either
- * a spinning wheel or a horizontal bar.
- * </p>
- *
- * <p>The following code example shows how a progress bar can be used from
- * a worker thread to update the user interface to notify the user of progress:
- * </p>
- *
- * <pre>
- * public class MyActivity extends Activity {
- * private static final int PROGRESS = 0x1;
- *
- * private ProgressBar mProgress;
- * private int mProgressStatus = 0;
- *
- * private Handler mHandler = new Handler();
- *
- * protected void onCreate(Bundle icicle) {
- * super.onCreate(icicle);
- *
- * setContentView(R.layout.progressbar_activity);
- *
- * mProgress = (ProgressBar) findViewById(R.id.progress_bar);
- *
- * // Start lengthy operation in a background thread
- * new Thread(new Runnable() {
- * public void run() {
- * while (mProgressStatus < 100) {
- * mProgressStatus = doWork();
- *
- * // Update the progress bar
- * mHandler.post(new Runnable() {
- * public void run() {
- * mProgress.setProgress(mProgressStatus);
- * }
- * });
- * }
- * }
- * }).start();
- * }
- * }</pre>
- *
- * <p>To add a progress bar to a layout file, you can use the {@code <ProgressBar>} element.
- * By default, the progress bar is a spinning wheel (an indeterminate indicator). To change to a
- * horizontal progress bar, apply the {@link android.R.style#Widget_ProgressBar_Horizontal
- * Widget.ProgressBar.Horizontal} style, like so:</p>
- *
- * <pre>
- * <ProgressBar
- * style="@android:style/Widget.ProgressBar.Horizontal"
- * ... /></pre>
- *
- * <p>If you will use the progress bar to show real progress, you must use the horizontal bar. You
- * can then increment the progress with {@link #incrementProgressBy incrementProgressBy()} or
- * {@link #setProgress setProgress()}. By default, the progress bar is full when it reaches 100. If
- * necessary, you can adjust the maximum value (the value for a full bar) using the {@link
- * android.R.styleable#ProgressBar_max android:max} attribute. Other attributes available are listed
- * below.</p>
- *
- * <p>Another common style to apply to the progress bar is {@link
- * android.R.style#Widget_ProgressBar_Small Widget.ProgressBar.Small}, which shows a smaller
- * version of the spinning wheel—useful when waiting for content to load.
- * For example, you can insert this kind of progress bar into your default layout for
- * a view that will be populated by some content fetched from the Internet—the spinning wheel
- * appears immediately and when your application receives the content, it replaces the progress bar
- * with the loaded content. For example:</p>
- *
- * <pre>
- * <LinearLayout
- * android:orientation="horizontal"
- * ... >
- * <ProgressBar
- * android:layout_width="wrap_content"
- * android:layout_height="wrap_content"
- * style="@android:style/Widget.ProgressBar.Small"
- * android:layout_marginRight="5dp" />
- * <TextView
- * android:layout_width="wrap_content"
- * android:layout_height="wrap_content"
- * android:text="@string/loading" />
- * </LinearLayout></pre>
- *
- * <p>Other progress bar styles provided by the system include:</p>
- * <ul>
- * <li>{@link android.R.style#Widget_ProgressBar_Horizontal Widget.ProgressBar.Horizontal}</li>
- * <li>{@link android.R.style#Widget_ProgressBar_Small Widget.ProgressBar.Small}</li>
- * <li>{@link android.R.style#Widget_ProgressBar_Large Widget.ProgressBar.Large}</li>
- * <li>{@link android.R.style#Widget_ProgressBar_Inverse Widget.ProgressBar.Inverse}</li>
- * <li>{@link android.R.style#Widget_ProgressBar_Small_Inverse
- * Widget.ProgressBar.Small.Inverse}</li>
- * <li>{@link android.R.style#Widget_ProgressBar_Large_Inverse
- * Widget.ProgressBar.Large.Inverse}</li>
- * </ul>
- * <p>The "inverse" styles provide an inverse color scheme for the spinner, which may be necessary
- * if your application uses a light colored theme (a white background).</p>
- *
- * <p><strong>XML attributes</b></strong>
- * <p>
- * See {@link android.R.styleable#ProgressBar ProgressBar Attributes},
- * {@link android.R.styleable#View View Attributes}
- * </p>
- *
- * @attr ref android.R.styleable#ProgressBar_animationResolution
- * @attr ref android.R.styleable#ProgressBar_indeterminate
- * @attr ref android.R.styleable#ProgressBar_indeterminateBehavior
- * @attr ref android.R.styleable#ProgressBar_indeterminateDrawable
- * @attr ref android.R.styleable#ProgressBar_indeterminateDuration
- * @attr ref android.R.styleable#ProgressBar_indeterminateOnly
- * @attr ref android.R.styleable#ProgressBar_interpolator
- * @attr ref android.R.styleable#ProgressBar_max
- * @attr ref android.R.styleable#ProgressBar_maxHeight
- * @attr ref android.R.styleable#ProgressBar_maxWidth
- * @attr ref android.R.styleable#ProgressBar_minHeight
- * @attr ref android.R.styleable#ProgressBar_minWidth
- * @attr ref android.R.styleable#ProgressBar_progress
- * @attr ref android.R.styleable#ProgressBar_progressDrawable
- * @attr ref android.R.styleable#ProgressBar_secondaryProgress
- */
-@RemoteView
-public class ProgressBar extends View {
- private static final int MAX_LEVEL = 10000;
- private static final int ANIMATION_RESOLUTION = 200;
- private static final int TIMEOUT_SEND_ACCESSIBILITY_EVENT = 200;
-
- int mMinWidth;
- int mMaxWidth;
- int mMinHeight;
- int mMaxHeight;
-
- private int mProgress;
- private int mSecondaryProgress;
- private int mMax;
-
- private int mBehavior;
- private int mDuration;
- private boolean mIndeterminate;
- private boolean mOnlyIndeterminate;
- private Transformation mTransformation;
- private AlphaAnimation mAnimation;
- private Drawable mIndeterminateDrawable;
- private Drawable mProgressDrawable;
- private Drawable mCurrentDrawable;
- Bitmap mSampleTile;
- private boolean mNoInvalidate;
- private Interpolator mInterpolator;
- private RefreshProgressRunnable mRefreshProgressRunnable;
- private long mUiThreadId;
- private boolean mShouldStartAnimationDrawable;
- private long mLastDrawTime;
-
- private boolean mInDrawing;
-
- private int mAnimationResolution;
-
- private AccessibilityEventSender mAccessibilityEventSender;
-
- /**
- * Create a new progress bar with range 0...100 and initial progress of 0.
- * @param context the application environment
- */
- public ProgressBar(Context context) {
- this(context, null);
- }
-
- public ProgressBar(Context context, AttributeSet attrs) {
- this(context, attrs, com.android.internal.R.attr.progressBarStyle);
- }
-
- public ProgressBar(Context context, AttributeSet attrs, int defStyle) {
- this(context, attrs, defStyle, 0);
- }
-
- /**
- * @hide
- */
- public ProgressBar(Context context, AttributeSet attrs, int defStyle, int styleRes) {
- super(context, attrs, defStyle);
- mUiThreadId = Thread.currentThread().getId();
- initProgressBar();
-
- TypedArray a =
- context.obtainStyledAttributes(attrs, R.styleable.ProgressBar, defStyle, styleRes);
-
- mNoInvalidate = true;
-
- Drawable drawable = a.getDrawable(R.styleable.ProgressBar_progressDrawable);
- if (drawable != null) {
- drawable = tileify(drawable, false);
- // Calling this method can set mMaxHeight, make sure the corresponding
- // XML attribute for mMaxHeight is read after calling this method
- setProgressDrawable(drawable);
- }
-
-
- mDuration = a.getInt(R.styleable.ProgressBar_indeterminateDuration, mDuration);
-
- mMinWidth = a.getDimensionPixelSize(R.styleable.ProgressBar_minWidth, mMinWidth);
- mMaxWidth = a.getDimensionPixelSize(R.styleable.ProgressBar_maxWidth, mMaxWidth);
- mMinHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_minHeight, mMinHeight);
- mMaxHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_maxHeight, mMaxHeight);
-
- mBehavior = a.getInt(R.styleable.ProgressBar_indeterminateBehavior, mBehavior);
-
- final int resID = a.getResourceId(
- com.android.internal.R.styleable.ProgressBar_interpolator,
- android.R.anim.linear_interpolator); // default to linear interpolator
- if (resID > 0) {
- setInterpolator(context, resID);
- }
-
- setMax(a.getInt(R.styleable.ProgressBar_max, mMax));
-
- setProgress(a.getInt(R.styleable.ProgressBar_progress, mProgress));
-
- setSecondaryProgress(
- a.getInt(R.styleable.ProgressBar_secondaryProgress, mSecondaryProgress));
-
- drawable = a.getDrawable(R.styleable.ProgressBar_indeterminateDrawable);
- if (drawable != null) {
- drawable = tileifyIndeterminate(drawable);
- setIndeterminateDrawable(drawable);
- }
-
- mOnlyIndeterminate = a.getBoolean(
- R.styleable.ProgressBar_indeterminateOnly, mOnlyIndeterminate);
-
- mNoInvalidate = false;
-
- setIndeterminate(mOnlyIndeterminate || a.getBoolean(
- R.styleable.ProgressBar_indeterminate, mIndeterminate));
-
- mAnimationResolution = a.getInteger(R.styleable.ProgressBar_animationResolution,
- ANIMATION_RESOLUTION);
-
- a.recycle();
- }
-
- /**
- * Converts a drawable to a tiled version of itself. It will recursively
- * traverse layer and state list drawables.
- */
- private Drawable tileify(Drawable drawable, boolean clip) {
-
- if (drawable instanceof LayerDrawable) {
- LayerDrawable background = (LayerDrawable) drawable;
- final int N = background.getNumberOfLayers();
- Drawable[] outDrawables = new Drawable[N];
-
- for (int i = 0; i < N; i++) {
- int id = background.getId(i);
- outDrawables[i] = tileify(background.getDrawable(i),
- (id == R.id.progress || id == R.id.secondaryProgress));
- }
-
- LayerDrawable newBg = new LayerDrawable(outDrawables);
-
- for (int i = 0; i < N; i++) {
- newBg.setId(i, background.getId(i));
- }
-
- return newBg;
-
- } else if (drawable instanceof StateListDrawable) {
- StateListDrawable in = (StateListDrawable) drawable;
- StateListDrawable out = new StateListDrawable();
- int numStates = in.getStateCount();
- for (int i = 0; i < numStates; i++) {
- out.addState(in.getStateSet(i), tileify(in.getStateDrawable(i), clip));
- }
- return out;
-
- } else if (drawable instanceof BitmapDrawable) {
- final Bitmap tileBitmap = ((BitmapDrawable) drawable).getBitmap();
- if (mSampleTile == null) {
- mSampleTile = tileBitmap;
- }
-
- final ShapeDrawable shapeDrawable = new ShapeDrawable(getDrawableShape());
-
- final BitmapShader bitmapShader = new BitmapShader(tileBitmap,
- Shader.TileMode.REPEAT, Shader.TileMode.CLAMP);
- shapeDrawable.getPaint().setShader(bitmapShader);
-
- return (clip) ? new ClipDrawable(shapeDrawable, Gravity.LEFT,
- ClipDrawable.HORIZONTAL) : shapeDrawable;
- }
-
- return drawable;
- }
-
- Shape getDrawableShape() {
- final float[] roundedCorners = new float[] { 5, 5, 5, 5, 5, 5, 5, 5 };
- return new RoundRectShape(roundedCorners, null, null);
- }
-
- /**
- * Convert a AnimationDrawable for use as a barberpole animation.
- * Each frame of the animation is wrapped in a ClipDrawable and
- * given a tiling BitmapShader.
- */
- private Drawable tileifyIndeterminate(Drawable drawable) {
- if (drawable instanceof AnimationDrawable) {
- AnimationDrawable background = (AnimationDrawable) drawable;
- final int N = background.getNumberOfFrames();
- AnimationDrawable newBg = new AnimationDrawable();
- newBg.setOneShot(background.isOneShot());
-
- for (int i = 0; i < N; i++) {
- Drawable frame = tileify(background.getFrame(i), true);
- frame.setLevel(10000);
- newBg.addFrame(frame, background.getDuration(i));
- }
- newBg.setLevel(10000);
- drawable = newBg;
- }
- return drawable;
- }
-
- /**
- * <p>
- * Initialize the progress bar's default values:
- * </p>
- * <ul>
- * <li>progress = 0</li>
- * <li>max = 100</li>
- * <li>animation duration = 4000 ms</li>
- * <li>indeterminate = false</li>
- * <li>behavior = repeat</li>
- * </ul>
- */
- private void initProgressBar() {
- mMax = 100;
- mProgress = 0;
- mSecondaryProgress = 0;
- mIndeterminate = false;
- mOnlyIndeterminate = false;
- mDuration = 4000;
- mBehavior = AlphaAnimation.RESTART;
- mMinWidth = 24;
- mMaxWidth = 48;
- mMinHeight = 24;
- mMaxHeight = 48;
- }
-
- /**
- * <p>Indicate whether this progress bar is in indeterminate mode.</p>
- *
- * @return true if the progress bar is in indeterminate mode
- */
- @ViewDebug.ExportedProperty(category = "progress")
- public synchronized boolean isIndeterminate() {
- return mIndeterminate;
- }
-
- /**
- * <p>Change the indeterminate mode for this progress bar. In indeterminate
- * mode, the progress is ignored and the progress bar shows an infinite
- * animation instead.</p>
- *
- * If this progress bar's style only supports indeterminate mode (such as the circular
- * progress bars), then this will be ignored.
- *
- * @param indeterminate true to enable the indeterminate mode
- */
- @android.view.RemotableViewMethod
- public synchronized void setIndeterminate(boolean indeterminate) {
- if ((!mOnlyIndeterminate || !mIndeterminate) && indeterminate != mIndeterminate) {
- mIndeterminate = indeterminate;
-
- if (indeterminate) {
- // swap between indeterminate and regular backgrounds
- mCurrentDrawable = mIndeterminateDrawable;
- startAnimation();
- } else {
- mCurrentDrawable = mProgressDrawable;
- stopAnimation();
- }
- }
- }
-
- /**
- * <p>Get the drawable used to draw the progress bar in
- * indeterminate mode.</p>
- *
- * @return a {@link android.graphics.drawable.Drawable} instance
- *
- * @see #setIndeterminateDrawable(android.graphics.drawable.Drawable)
- * @see #setIndeterminate(boolean)
- */
- public Drawable getIndeterminateDrawable() {
- return mIndeterminateDrawable;
- }
-
- /**
- * <p>Define the drawable used to draw the progress bar in
- * indeterminate mode.</p>
- *
- * @param d the new drawable
- *
- * @see #getIndeterminateDrawable()
- * @see #setIndeterminate(boolean)
- */
- public void setIndeterminateDrawable(Drawable d) {
- if (d != null) {
- d.setCallback(this);
- }
- mIndeterminateDrawable = d;
- if (mIndeterminate) {
- mCurrentDrawable = d;
- postInvalidate();
- }
- }
-
- /**
- * <p>Get the drawable used to draw the progress bar in
- * progress mode.</p>
- *
- * @return a {@link android.graphics.drawable.Drawable} instance
- *
- * @see #setProgressDrawable(android.graphics.drawable.Drawable)
- * @see #setIndeterminate(boolean)
- */
- public Drawable getProgressDrawable() {
- return mProgressDrawable;
- }
-
- /**
- * <p>Define the drawable used to draw the progress bar in
- * progress mode.</p>
- *
- * @param d the new drawable
- *
- * @see #getProgressDrawable()
- * @see #setIndeterminate(boolean)
- */
- public void setProgressDrawable(Drawable d) {
- boolean needUpdate;
- if (mProgressDrawable != null && d != mProgressDrawable) {
- mProgressDrawable.setCallback(null);
- needUpdate = true;
- } else {
- needUpdate = false;
- }
-
- if (d != null) {
- d.setCallback(this);
-
- // Make sure the ProgressBar is always tall enough
- int drawableHeight = d.getMinimumHeight();
- if (mMaxHeight < drawableHeight) {
- mMaxHeight = drawableHeight;
- requestLayout();
- }
- }
- mProgressDrawable = d;
- if (!mIndeterminate) {
- mCurrentDrawable = d;
- postInvalidate();
- }
-
- if (needUpdate) {
- updateDrawableBounds(getWidth(), getHeight());
- updateDrawableState();
- doRefreshProgress(R.id.progress, mProgress, false, false);
- doRefreshProgress(R.id.secondaryProgress, mSecondaryProgress, false, false);
- }
- }
-
- /**
- * @return The drawable currently used to draw the progress bar
- */
- Drawable getCurrentDrawable() {
- return mCurrentDrawable;
- }
-
- @Override
- protected boolean verifyDrawable(Drawable who) {
- return who == mProgressDrawable || who == mIndeterminateDrawable
- || super.verifyDrawable(who);
- }
-
- @Override
- public void jumpDrawablesToCurrentState() {
- super.jumpDrawablesToCurrentState();
- if (mProgressDrawable != null) mProgressDrawable.jumpToCurrentState();
- if (mIndeterminateDrawable != null) mIndeterminateDrawable.jumpToCurrentState();
- }
-
- @Override
- public void postInvalidate() {
- if (!mNoInvalidate) {
- super.postInvalidate();
- }
- }
-
- private class RefreshProgressRunnable implements Runnable {
-
- private int mId;
- private int mProgress;
- private boolean mFromUser;
-
- RefreshProgressRunnable(int id, int progress, boolean fromUser) {
- mId = id;
- mProgress = progress;
- mFromUser = fromUser;
- }
-
- public void run() {
- doRefreshProgress(mId, mProgress, mFromUser, true);
- // Put ourselves back in the cache when we are done
- mRefreshProgressRunnable = this;
- }
-
- public void setup(int id, int progress, boolean fromUser) {
- mId = id;
- mProgress = progress;
- mFromUser = fromUser;
- }
-
- }
-
- private synchronized void doRefreshProgress(int id, int progress, boolean fromUser,
- boolean callBackToApp) {
- float scale = mMax > 0 ? (float) progress / (float) mMax : 0;
- final Drawable d = mCurrentDrawable;
- if (d != null) {
- Drawable progressDrawable = null;
-
- if (d instanceof LayerDrawable) {
- progressDrawable = ((LayerDrawable) d).findDrawableByLayerId(id);
- }
-
- final int level = (int) (scale * MAX_LEVEL);
- (progressDrawable != null ? progressDrawable : d).setLevel(level);
- } else {
- invalidate();
- }
-
- if (callBackToApp && id == R.id.progress) {
- onProgressRefresh(scale, fromUser);
- }
- }
-
- void onProgressRefresh(float scale, boolean fromUser) {
- if (AccessibilityManager.getInstance(mContext).isEnabled()) {
- scheduleAccessibilityEventSender();
- }
- }
-
- private synchronized void refreshProgress(int id, int progress, boolean fromUser) {
- if (mUiThreadId == Thread.currentThread().getId()) {
- doRefreshProgress(id, progress, fromUser, true);
- } else {
- RefreshProgressRunnable r;
- if (mRefreshProgressRunnable != null) {
- // Use cached RefreshProgressRunnable if available
- r = mRefreshProgressRunnable;
- // Uncache it
- mRefreshProgressRunnable = null;
- r.setup(id, progress, fromUser);
- } else {
- // Make a new one
- r = new RefreshProgressRunnable(id, progress, fromUser);
- }
- post(r);
- }
- }
-
- /**
- * <p>Set the current progress to the specified value. Does not do anything
- * if the progress bar is in indeterminate mode.</p>
- *
- * @param progress the new progress, between 0 and {@link #getMax()}
- *
- * @see #setIndeterminate(boolean)
- * @see #isIndeterminate()
- * @see #getProgress()
- * @see #incrementProgressBy(int)
- */
- @android.view.RemotableViewMethod
- public synchronized void setProgress(int progress) {
- setProgress(progress, false);
- }
-
- @android.view.RemotableViewMethod
- synchronized void setProgress(int progress, boolean fromUser) {
- if (mIndeterminate) {
- return;
- }
-
- if (progress < 0) {
- progress = 0;
- }
-
- if (progress > mMax) {
- progress = mMax;
- }
-
- if (progress != mProgress) {
- mProgress = progress;
- refreshProgress(R.id.progress, mProgress, fromUser);
- }
- }
-
- /**
- * <p>
- * Set the current secondary progress to the specified value. Does not do
- * anything if the progress bar is in indeterminate mode.
- * </p>
- *
- * @param secondaryProgress the new secondary progress, between 0 and {@link #getMax()}
- * @see #setIndeterminate(boolean)
- * @see #isIndeterminate()
- * @see #getSecondaryProgress()
- * @see #incrementSecondaryProgressBy(int)
- */
- @android.view.RemotableViewMethod
- public synchronized void setSecondaryProgress(int secondaryProgress) {
- if (mIndeterminate) {
- return;
- }
-
- if (secondaryProgress < 0) {
- secondaryProgress = 0;
- }
-
- if (secondaryProgress > mMax) {
- secondaryProgress = mMax;
- }
-
- if (secondaryProgress != mSecondaryProgress) {
- mSecondaryProgress = secondaryProgress;
- refreshProgress(R.id.secondaryProgress, mSecondaryProgress, false);
- }
- }
-
- /**
- * <p>Get the progress bar's current level of progress. Return 0 when the
- * progress bar is in indeterminate mode.</p>
- *
- * @return the current progress, between 0 and {@link #getMax()}
- *
- * @see #setIndeterminate(boolean)
- * @see #isIndeterminate()
- * @see #setProgress(int)
- * @see #setMax(int)
- * @see #getMax()
- */
- @ViewDebug.ExportedProperty(category = "progress")
- public synchronized int getProgress() {
- return mIndeterminate ? 0 : mProgress;
- }
-
- /**
- * <p>Get the progress bar's current level of secondary progress. Return 0 when the
- * progress bar is in indeterminate mode.</p>
- *
- * @return the current secondary progress, between 0 and {@link #getMax()}
- *
- * @see #setIndeterminate(boolean)
- * @see #isIndeterminate()
- * @see #setSecondaryProgress(int)
- * @see #setMax(int)
- * @see #getMax()
- */
- @ViewDebug.ExportedProperty(category = "progress")
- public synchronized int getSecondaryProgress() {
- return mIndeterminate ? 0 : mSecondaryProgress;
- }
-
- /**
- * <p>Return the upper limit of this progress bar's range.</p>
- *
- * @return a positive integer
- *
- * @see #setMax(int)
- * @see #getProgress()
- * @see #getSecondaryProgress()
- */
- @ViewDebug.ExportedProperty(category = "progress")
- public synchronized int getMax() {
- return mMax;
- }
-
- /**
- * <p>Set the range of the progress bar to 0...<tt>max</tt>.</p>
- *
- * @param max the upper range of this progress bar
- *
- * @see #getMax()
- * @see #setProgress(int)
- * @see #setSecondaryProgress(int)
- */
- @android.view.RemotableViewMethod
- public synchronized void setMax(int max) {
- if (max < 0) {
- max = 0;
- }
- if (max != mMax) {
- mMax = max;
- postInvalidate();
-
- if (mProgress > max) {
- mProgress = max;
- }
- refreshProgress(R.id.progress, mProgress, false);
- }
- }
-
- /**
- * <p>Increase the progress bar's progress by the specified amount.</p>
- *
- * @param diff the amount by which the progress must be increased
- *
- * @see #setProgress(int)
- */
- public synchronized final void incrementProgressBy(int diff) {
- setProgress(mProgress + diff);
- }
-
- /**
- * <p>Increase the progress bar's secondary progress by the specified amount.</p>
- *
- * @param diff the amount by which the secondary progress must be increased
- *
- * @see #setSecondaryProgress(int)
- */
- public synchronized final void incrementSecondaryProgressBy(int diff) {
- setSecondaryProgress(mSecondaryProgress + diff);
- }
-
- /**
- * <p>Start the indeterminate progress animation.</p>
- */
- void startAnimation() {
- if (getVisibility() != VISIBLE) {
- return;
- }
-
- if (mIndeterminateDrawable instanceof Animatable) {
- mShouldStartAnimationDrawable = true;
- mAnimation = null;
- } else {
- if (mInterpolator == null) {
- mInterpolator = new LinearInterpolator();
- }
-
- mTransformation = new Transformation();
- mAnimation = new AlphaAnimation(0.0f, 1.0f);
- mAnimation.setRepeatMode(mBehavior);
- mAnimation.setRepeatCount(Animation.INFINITE);
- mAnimation.setDuration(mDuration);
- mAnimation.setInterpolator(mInterpolator);
- mAnimation.setStartTime(Animation.START_ON_FIRST_FRAME);
- }
- postInvalidate();
- }
-
- /**
- * <p>Stop the indeterminate progress animation.</p>
- */
- void stopAnimation() {
- mAnimation = null;
- mTransformation = null;
- if (mIndeterminateDrawable instanceof Animatable) {
- ((Animatable) mIndeterminateDrawable).stop();
- mShouldStartAnimationDrawable = false;
- }
- postInvalidate();
- }
-
- /**
- * Sets the acceleration curve for the indeterminate animation.
- * The interpolator is loaded as a resource from the specified context.
- *
- * @param context The application environment
- * @param resID The resource identifier of the interpolator to load
- */
- public void setInterpolator(Context context, int resID) {
- setInterpolator(AnimationUtils.loadInterpolator(context, resID));
- }
-
- /**
- * Sets the acceleration curve for the indeterminate animation.
- * Defaults to a linear interpolation.
- *
- * @param interpolator The interpolator which defines the acceleration curve
- */
- public void setInterpolator(Interpolator interpolator) {
- mInterpolator = interpolator;
- }
-
- /**
- * Gets the acceleration curve type for the indeterminate animation.
- *
- * @return the {@link Interpolator} associated to this animation
- */
- public Interpolator getInterpolator() {
- return mInterpolator;
- }
-
- @Override
- @RemotableViewMethod
- public void setVisibility(int v) {
- if (getVisibility() != v) {
- super.setVisibility(v);
-
- if (mIndeterminate) {
- // let's be nice with the UI thread
- if (v == GONE || v == INVISIBLE) {
- stopAnimation();
- } else {
- startAnimation();
- }
- }
- }
- }
-
- @Override
- protected void onVisibilityChanged(View changedView, int visibility) {
- super.onVisibilityChanged(changedView, visibility);
-
- if (mIndeterminate) {
- // let's be nice with the UI thread
- if (visibility == GONE || visibility == INVISIBLE) {
- stopAnimation();
- } else {
- startAnimation();
- }
- }
- }
-
- @Override
- public void invalidateDrawable(Drawable dr) {
- if (!mInDrawing) {
- if (verifyDrawable(dr)) {
- final Rect dirty = dr.getBounds();
- final int scrollX = mScrollX + mPaddingLeft;
- final int scrollY = mScrollY + mPaddingTop;
-
- invalidate(dirty.left + scrollX, dirty.top + scrollY,
- dirty.right + scrollX, dirty.bottom + scrollY);
- } else {
- super.invalidateDrawable(dr);
- }
- }
- }
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- updateDrawableBounds(w, h);
- }
-
- private void updateDrawableBounds(int w, int h) {
- // onDraw will translate the canvas so we draw starting at 0,0
- int right = w - mPaddingRight - mPaddingLeft;
- int bottom = h - mPaddingBottom - mPaddingTop;
- int top = 0;
- int left = 0;
-
- if (mIndeterminateDrawable != null) {
- // Aspect ratio logic does not apply to AnimationDrawables
- if (mOnlyIndeterminate && !(mIndeterminateDrawable instanceof AnimationDrawable)) {
- // Maintain aspect ratio. Certain kinds of animated drawables
- // get very confused otherwise.
- final int intrinsicWidth = mIndeterminateDrawable.getIntrinsicWidth();
- final int intrinsicHeight = mIndeterminateDrawable.getIntrinsicHeight();
- final float intrinsicAspect = (float) intrinsicWidth / intrinsicHeight;
- final float boundAspect = (float) w / h;
- if (intrinsicAspect != boundAspect) {
- if (boundAspect > intrinsicAspect) {
- // New width is larger. Make it smaller to match height.
- final int width = (int) (h * intrinsicAspect);
- left = (w - width) / 2;
- right = left + width;
- } else {
- // New height is larger. Make it smaller to match width.
- final int height = (int) (w * (1 / intrinsicAspect));
- top = (h - height) / 2;
- bottom = top + height;
- }
- }
- }
- mIndeterminateDrawable.setBounds(left, top, right, bottom);
- }
-
- if (mProgressDrawable != null) {
- mProgressDrawable.setBounds(0, 0, right, bottom);
- }
- }
-
- @Override
- protected synchronized void onDraw(Canvas canvas) {
- super.onDraw(canvas);
-
- Drawable d = mCurrentDrawable;
- if (d != null) {
- // Translate canvas so a indeterminate circular progress bar with padding
- // rotates properly in its animation
- canvas.save();
- canvas.translate(mPaddingLeft, mPaddingTop);
- long time = getDrawingTime();
- if (mAnimation != null) {
- mAnimation.getTransformation(time, mTransformation);
- float scale = mTransformation.getAlpha();
- try {
- mInDrawing = true;
- d.setLevel((int) (scale * MAX_LEVEL));
- } finally {
- mInDrawing = false;
- }
- if (SystemClock.uptimeMillis() - mLastDrawTime >= mAnimationResolution) {
- mLastDrawTime = SystemClock.uptimeMillis();
- postInvalidateDelayed(mAnimationResolution);
- }
- }
- d.draw(canvas);
- canvas.restore();
- if (mShouldStartAnimationDrawable && d instanceof Animatable) {
- ((Animatable) d).start();
- mShouldStartAnimationDrawable = false;
- }
- }
- }
-
- @Override
- protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- Drawable d = mCurrentDrawable;
-
- int dw = 0;
- int dh = 0;
- if (d != null) {
- dw = Math.max(mMinWidth, Math.min(mMaxWidth, d.getIntrinsicWidth()));
- dh = Math.max(mMinHeight, Math.min(mMaxHeight, d.getIntrinsicHeight()));
- }
- updateDrawableState();
- dw += mPaddingLeft + mPaddingRight;
- dh += mPaddingTop + mPaddingBottom;
-
- setMeasuredDimension(resolveSizeAndState(dw, widthMeasureSpec, 0),
- resolveSizeAndState(dh, heightMeasureSpec, 0));
- }
-
- @Override
- protected void drawableStateChanged() {
- super.drawableStateChanged();
- updateDrawableState();
- }
-
- private void updateDrawableState() {
- int[] state = getDrawableState();
-
- if (mProgressDrawable != null && mProgressDrawable.isStateful()) {
- mProgressDrawable.setState(state);
- }
-
- if (mIndeterminateDrawable != null && mIndeterminateDrawable.isStateful()) {
- mIndeterminateDrawable.setState(state);
- }
- }
-
- static class SavedState extends BaseSavedState {
- int progress;
- int secondaryProgress;
-
- /**
- * Constructor called from {@link ProgressBar#onSaveInstanceState()}
- */
- SavedState(Parcelable superState) {
- super(superState);
- }
-
- /**
- * Constructor called from {@link #CREATOR}
- */
- private SavedState(Parcel in) {
- super(in);
- progress = in.readInt();
- secondaryProgress = in.readInt();
- }
-
- @Override
- public void writeToParcel(Parcel out, int flags) {
- super.writeToParcel(out, flags);
- out.writeInt(progress);
- out.writeInt(secondaryProgress);
- }
-
- public static final Parcelable.Creator<SavedState> CREATOR
- = new Parcelable.Creator<SavedState>() {
- public SavedState createFromParcel(Parcel in) {
- return new SavedState(in);
- }
-
- public SavedState[] newArray(int size) {
- return new SavedState[size];
- }
- };
- }
-
- @Override
- public Parcelable onSaveInstanceState() {
- // Force our ancestor class to save its state
- Parcelable superState = super.onSaveInstanceState();
- SavedState ss = new SavedState(superState);
-
- ss.progress = mProgress;
- ss.secondaryProgress = mSecondaryProgress;
-
- return ss;
- }
-
- @Override
- public void onRestoreInstanceState(Parcelable state) {
- SavedState ss = (SavedState) state;
- super.onRestoreInstanceState(ss.getSuperState());
-
- setProgress(ss.progress);
- setSecondaryProgress(ss.secondaryProgress);
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- if (mIndeterminate) {
- startAnimation();
- }
- }
-
- @Override
- protected void onDetachedFromWindow() {
- if (mIndeterminate) {
- stopAnimation();
- }
- if(mRefreshProgressRunnable != null) {
- removeCallbacks(mRefreshProgressRunnable);
- }
- if (mAccessibilityEventSender != null) {
- removeCallbacks(mAccessibilityEventSender);
- }
- // This should come after stopAnimation(), otherwise an invalidate message remains in the
- // queue, which can prevent the entire view hierarchy from being GC'ed during a rotation
- super.onDetachedFromWindow();
- }
-
- @Override
- public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
- super.onInitializeAccessibilityEvent(event);
- event.setItemCount(mMax);
- event.setCurrentItemIndex(mProgress);
- }
-
- /**
- * Schedule a command for sending an accessibility event.
- * </br>
- * Note: A command is used to ensure that accessibility events
- * are sent at most one in a given time frame to save
- * system resources while the progress changes quickly.
- */
- private void scheduleAccessibilityEventSender() {
- if (mAccessibilityEventSender == null) {
- mAccessibilityEventSender = new AccessibilityEventSender();
- } else {
- removeCallbacks(mAccessibilityEventSender);
- }
- postDelayed(mAccessibilityEventSender, TIMEOUT_SEND_ACCESSIBILITY_EVENT);
- }
-
- /**
- * Command for sending an accessibility event.
- */
- private class AccessibilityEventSender implements Runnable {
- public void run() {
- sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
- }
- }
-}
diff --git a/src/com/android/musicfx/seekbar/SeekBar.java b/src/com/android/musicfx/seekbar/SeekBar.java
deleted file mode 100644
index 2be99ce..0000000
--- a/src/com/android/musicfx/seekbar/SeekBar.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2006 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.musicfx.seekbar;
-
-import android.content.Context;
-import android.util.AttributeSet;
-
-
-
-/**
- * A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch
- * the thumb and drag left or right to set the current progress level or use the arrow keys.
- * Placing focusable widgets to the left or right of a SeekBar is discouraged.
- * <p>
- * Clients of the SeekBar can attach a {@link SeekBar.OnSeekBarChangeListener} to
- * be notified of the user's actions.
- *
- * @attr ref android.R.styleable#SeekBar_thumb
- */
-public class SeekBar extends AbsSeekBar {
-
- /**
- * A callback that notifies clients when the progress level has been
- * changed. This includes changes that were initiated by the user through a
- * touch gesture or arrow key/trackball as well as changes that were initiated
- * programmatically.
- */
- public interface OnSeekBarChangeListener {
-
- /**
- * Notification that the progress level has changed. Clients can use the fromUser parameter
- * to distinguish user-initiated changes from those that occurred programmatically.
- *
- * @param seekBar The SeekBar whose progress has changed
- * @param progress The current progress level. This will be in the range 0..max where max
- * was set by {@link ProgressBar#setMax(int)}. (The default value for max is 100.)
- * @param fromUser True if the progress change was initiated by the user.
- */
- void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser);
-
- /**
- * Notification that the user has started a touch gesture. Clients may want to use this
- * to disable advancing the seekbar.
- * @param seekBar The SeekBar in which the touch gesture began
- */
- void onStartTrackingTouch(SeekBar seekBar);
-
- /**
- * Notification that the user has finished a touch gesture. Clients may want to use this
- * to re-enable advancing the seekbar.
- * @param seekBar The SeekBar in which the touch gesture began
- */
- void onStopTrackingTouch(SeekBar seekBar);
- }
-
- private OnSeekBarChangeListener mOnSeekBarChangeListener;
-
- public SeekBar(Context context) {
- this(context, null);
- }
-
- public SeekBar(Context context, AttributeSet attrs) {
- this(context, attrs, com.android.internal.R.attr.seekBarStyle);
- }
-
- public SeekBar(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
- @Override
- void onProgressRefresh(float scale, boolean fromUser) {
- super.onProgressRefresh(scale, fromUser);
-
- if (mOnSeekBarChangeListener != null) {
- mOnSeekBarChangeListener.onProgressChanged(this, getProgress(), fromUser);
- }
- }
-
- /**
- * Sets a listener to receive notifications of changes to the SeekBar's progress level. Also
- * provides notifications of when the user starts and stops a touch gesture within the SeekBar.
- *
- * @param l The seek bar notification listener
- *
- * @see SeekBar.OnSeekBarChangeListener
- */
- public void setOnSeekBarChangeListener(OnSeekBarChangeListener l) {
- mOnSeekBarChangeListener = l;
- }
-
- @Override
- void onStartTrackingTouch() {
- super.onStartTrackingTouch();
- if (mOnSeekBarChangeListener != null) {
- mOnSeekBarChangeListener.onStartTrackingTouch(this);
- }
- }
-
- @Override
- void onStopTrackingTouch() {
- super.onStopTrackingTouch();
- if (mOnSeekBarChangeListener != null) {
- mOnSeekBarChangeListener.onStopTrackingTouch(this);
- }
- }
-
-}