summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-07-28 14:49:13 +0200
committerJorim Jaggi <jjaggi@google.com>2014-07-28 15:05:15 +0200
commit0d266899da8f612194a8393ec69c4fd870f2f45c (patch)
tree3c4f0f7d20754d446e7cd9295b54a3dcbf4bbc5b
parente9a455441818358804017ba29a4dac89b5ae4644 (diff)
downloadframeworks_base-0d266899da8f612194a8393ec69c4fd870f2f45c.zip
frameworks_base-0d266899da8f612194a8393ec69c4fd870f2f45c.tar.gz
frameworks_base-0d266899da8f612194a8393ec69c4fd870f2f45c.tar.bz2
Fix status icon reappearing for legacy activities
When closing the shade, and underneath was an activity without colored status bars, the animation for letting the status icons reappear was strange and the icons faded from 0% alpha. The cause was possibly that we set hasOverlappingRendering on the whole group but but inner views used layers for setting the alpha value which violated the contract in the documentation of hasOverlappingRendering: "The current implementation of the saveLayer and saveLayerAlpha methods in Canvas necessitates that a View return true if it uses the methods internally without passing the CLIP_TO_LAYER_SAVE_FLAG." Change-Id: I4b0accc8ec3fb8cb553c6860eb7dba8a12d04364
-rw-r--r--packages/SystemUI/res/layout/status_bar.xml3
-rwxr-xr-xpackages/SystemUI/src/com/android/systemui/BatteryMeterView.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java5
3 files changed, 12 insertions, 1 deletions
diff --git a/packages/SystemUI/res/layout/status_bar.xml b/packages/SystemUI/res/layout/status_bar.xml
index 595d731..19dc36d 100644
--- a/packages/SystemUI/res/layout/status_bar.xml
+++ b/packages/SystemUI/res/layout/status_bar.xml
@@ -87,7 +87,8 @@
android:layout_height="match_parent"
android:gravity="center_vertical"
>
- <LinearLayout android:id="@+id/statusIcons"
+ <com.android.systemui.statusbar.AlphaOptimizedLinearLayout
+ android:id="@+id/statusIcons"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
diff --git a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
index 5e48258..b9ffdbb 100755
--- a/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
+++ b/packages/SystemUI/src/com/android/systemui/BatteryMeterView.java
@@ -402,6 +402,11 @@ public class BatteryMeterView extends View implements DemoMode {
}
}
+ @Override
+ public boolean hasOverlappingRendering() {
+ return false;
+ }
+
private boolean mDemoMode;
private BatteryTracker mDemoTracker = new BatteryTracker();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index f5d4889..8bae19a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -167,6 +167,11 @@ public class SignalClusterView
apply();
}
+ @Override
+ public boolean hasOverlappingRendering() {
+ return false;
+ }
+
private void applyInetProblem(ImageView iv) {
iv.setColorFilter(Build.IS_DEBUGGABLE && mInetProblem ? PROBLEM_FILTER : null);
}