diff options
3 files changed, 10 insertions, 2 deletions
diff --git a/core/res/res/layout/keyguard_transport_control_view.xml b/core/res/res/layout/keyguard_transport_control_view.xml index 8e76164..c40aa66 100644 --- a/core/res/res/layout/keyguard_transport_control_view.xml +++ b/core/res/res/layout/keyguard_transport_control_view.xml @@ -20,7 +20,6 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" - android:layerType="hardware" android:id="@+id/keyguard_transport_control"> <!-- FrameLayout used as scrim to show between album art and buttons --> diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java index b7d94a9..1cd796c 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSubdivisionLayout.java @@ -97,12 +97,14 @@ public class KeyguardSubdivisionLayout extends ViewGroup { leafs.clear(); getLeafs(leafs, 1); - // We find the first leaf who's depth is not + // If the tree is complete, then we start a new level at the rightmost side. double r = log2(leafs.size()); if (Math.ceil(r) == Math.floor(r)) { return leafs.get(leafs.size() - 1); } + // Tree is not complete, find the first leaf who's depth is less than the depth of + // the tree. int treeDepth = depth(); for (int i = leafs.size() - 1; i >= 0; i--) { BiTree n = leafs.get(i); diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java index f957753..70a6ffa 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetFrame.java @@ -91,7 +91,14 @@ public class KeyguardWidgetFrame extends FrameLayout { mForegroundAlpha = (int) Math.round((r * 255)); mForegroundDrawable.setAlpha(mForegroundAlpha); + if (getLayerType() != LAYER_TYPE_HARDWARE) { + setLayerType(LAYER_TYPE_HARDWARE, null); + } invalidate(); + } else { + if (getLayerType() != LAYER_TYPE_NONE) { + setLayerType(LAYER_TYPE_NONE, null); + } } } } |
