Merge "USB System UI: Fix string localization problems" into honeycomb-mr1
diff --git a/core/res/res/drawable-hdpi/stat_sys_adb.png b/core/res/res/drawable-hdpi/stat_sys_adb.png
index 877e731..9c56e24 100755
--- a/core/res/res/drawable-hdpi/stat_sys_adb.png
+++ b/core/res/res/drawable-hdpi/stat_sys_adb.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/stat_sys_adb.png b/core/res/res/drawable-mdpi/stat_sys_adb.png
index e259ca5..1400bb3 100644
--- a/core/res/res/drawable-mdpi/stat_sys_adb.png
+++ b/core/res/res/drawable-mdpi/stat_sys_adb.png
Binary files differ
diff --git a/core/res/res/drawable/expander_group_holo_dark.xml b/core/res/res/drawable/expander_group_holo_dark.xml
index 51a7290..2481dcb 100644
--- a/core/res/res/drawable/expander_group_holo_dark.xml
+++ b/core/res/res/drawable/expander_group_holo_dark.xml
@@ -17,7 +17,7 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_expanded="true"
- android:drawable="@drawable/expander_open_holo_dark" />
- <item
android:drawable="@drawable/expander_close_holo_dark" />
+ <item
+ android:drawable="@drawable/expander_open_holo_dark" />
</selector>
diff --git a/core/res/res/drawable/expander_group_holo_light.xml b/core/res/res/drawable/expander_group_holo_light.xml
index 0ce71a5..8006574 100644
--- a/core/res/res/drawable/expander_group_holo_light.xml
+++ b/core/res/res/drawable/expander_group_holo_light.xml
@@ -17,7 +17,7 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_expanded="true"
- android:drawable="@drawable/expander_open_holo_light" />
- <item
android:drawable="@drawable/expander_close_holo_light" />
+ <item
+ android:drawable="@drawable/expander_open_holo_light" />
</selector>
diff --git a/graphics/java/android/renderscript/Matrix2f.java b/graphics/java/android/renderscript/Matrix2f.java
index 78ff97b..acc5bd8 100644
--- a/graphics/java/android/renderscript/Matrix2f.java
+++ b/graphics/java/android/renderscript/Matrix2f.java
@@ -42,7 +42,7 @@
* floats long
*/
public Matrix2f(float[] dataArray) {
- mMat = new float[2];
+ mMat = new float[4];
System.arraycopy(dataArray, 0, mMat, 0, mMat.length);
}
diff --git a/libs/hwui/LayerRenderer.cpp b/libs/hwui/LayerRenderer.cpp
index b1eb164..f92e20b 100644
--- a/libs/hwui/LayerRenderer.cpp
+++ b/libs/hwui/LayerRenderer.cpp
@@ -92,7 +92,11 @@
void LayerRenderer::generateMesh() {
#if RENDER_LAYERS_AS_REGIONS
+#if RENDER_LAYERS_RECT_AS_RECT
if (mLayer->region.isRect() || mLayer->region.isEmpty()) {
+#else
+ if (mLayer->region.isEmpty()) {
+#endif
if (mLayer->mesh) {
delete mLayer->mesh;
delete mLayer->meshIndices;
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index b8bd7d6..e01e072 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -636,11 +636,13 @@
void OpenGLRenderer::composeLayerRegion(Layer* layer, const Rect& rect) {
#if RENDER_LAYERS_AS_REGIONS
+#if RENDER_LAYERS_RECT_AS_RECT
if (layer->region.isRect()) {
composeLayerRect(layer, rect);
layer->region.clear();
return;
}
+#endif
if (!layer->region.isEmpty()) {
size_t count;
@@ -1646,10 +1648,14 @@
#if RENDER_LAYERS_AS_REGIONS
if (!layer->region.isEmpty()) {
+#if RENDER_LAYERS_RECT_AS_RECT
if (layer->region.isRect()) {
const Rect r(x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight());
composeLayerRect(layer, r);
} else if (layer->mesh) {
+#else
+ if (layer->mesh) {
+#endif
const float a = alpha / 255.0f;
const Rect& rect = layer->layer;
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 2d8b6f3..1aef99b 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -27,6 +27,8 @@
// If turned on, layers drawn inside FBOs are optimized with regions
#define RENDER_LAYERS_AS_REGIONS 1
+// If turned on, layers that map to a single rect are drawn as a rect
+#define RENDER_LAYERS_RECT_AS_RECT 0
/**
* Debug level for app developers.
diff --git a/services/audioflinger/AudioPolicyManagerBase.cpp b/services/audioflinger/AudioPolicyManagerBase.cpp
index 74be4e0..f653dc5 100644
--- a/services/audioflinger/AudioPolicyManagerBase.cpp
+++ b/services/audioflinger/AudioPolicyManagerBase.cpp
@@ -339,6 +339,7 @@
LOGW("setForceUse() invalid config %d for FOR_COMMUNICATION", config);
return;
}
+ forceVolumeReeval = true;
mForceUse[usage] = config;
break;
case AudioSystem::FOR_MEDIA:
@@ -384,7 +385,7 @@
updateDeviceForStrategy();
setOutputDevice(mHardwareOutput, newDevice);
if (forceVolumeReeval) {
- applyStreamVolumes(mHardwareOutput, newDevice);
+ applyStreamVolumes(mHardwareOutput, newDevice, 0, true);
}
audio_io_handle_t activeInput = getActiveInput();
@@ -1973,7 +1974,13 @@
// offset value to reflect actual hardware volume that never reaches 0
// 1% corresponds roughly to first step in VOICE_CALL stream volume setting (see AudioService.java)
volume = 0.01 + 0.99 * volume;
+ // Force VOICE_CALL to track BLUETOOTH_SCO stream volume when bluetooth audio is
+ // enabled
+ if (stream == AudioSystem::BLUETOOTH_SCO) {
+ mpClientInterface->setStreamVolume(AudioSystem::VOICE_CALL, volume, output, delayMs);
+ }
}
+
mpClientInterface->setStreamVolume((AudioSystem::stream_type)stream, volume, output, delayMs);
}
@@ -1986,6 +1993,7 @@
} else {
voiceVolume = 1.0;
}
+
if (voiceVolume != mLastVoiceVolume && output == mHardwareOutput) {
mpClientInterface->setVoiceVolume(voiceVolume, delayMs);
mLastVoiceVolume = voiceVolume;
@@ -1995,12 +2003,12 @@
return NO_ERROR;
}
-void AudioPolicyManagerBase::applyStreamVolumes(audio_io_handle_t output, uint32_t device, int delayMs)
+void AudioPolicyManagerBase::applyStreamVolumes(audio_io_handle_t output, uint32_t device, int delayMs, bool force)
{
LOGV("applyStreamVolumes() for output %d and device %x", output, device);
for (int stream = 0; stream < AudioSystem::NUM_STREAM_TYPES; stream++) {
- checkAndSetVolume(stream, mStreams[stream].mIndexCur, output, device, delayMs);
+ checkAndSetVolume(stream, mStreams[stream].mIndexCur, output, device, delayMs, force);
}
}