Introduce transparent bars to the keyguard.
Driven by a new framework config bool. Tested on all layouts,
but disabled by default. Can be enabled with a config overlay.
(Sliding/MultiPane)ChallengeLayout have custom measure/layout
logic that peeks at the root view's padding (!). So we must keep
the root view's padding = system window insets. However, we need
the scrims + the fullscreen camera widget preview to use the entire
display size if the bars are transparent.
So the approach is to maintain the root view's
(KeyguardViewManager$ViewManagerHost) padding as before via
setFitsSystemWindows(true) but allow non KeyguardHostViews to
extend into the padding if bars are transparent via a custom
measure/draw on the root view.
KeyguardHostView background + challege scrims moved up to the
root view.
Also:
- Remove logspam line for fixed bug.
- Fix status bar staying opaque on interaction on secure keyguard.
Known issues:
- Nav bar blip dismissing global actions, keyguard app widget picker
bars are opaque. Both will use the new inherit flag once it exists.
- Emergency dialer layout dance, will be fixed in the phone project.
Bug:10606085
Change-Id: I2648b4ee9a54a67324ce9dcbab976ad4da4bbcfa
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index a600aae..e77b420 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar.phone;
+import android.app.StatusBarManager;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
@@ -111,6 +112,10 @@
if (!handled) {
handled = super.onTouchEvent(ev);
}
+ final int action = ev.getAction();
+ if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
+ mService.setInteracting(StatusBarManager.WINDOW_STATUS_BAR, false);
+ }
return handled;
}