diff options
author | Jorim Jaggi <jjaggi@google.com> | 2014-04-11 23:25:40 +0200 |
---|---|---|
committer | Jorim Jaggi <jjaggi@google.com> | 2014-04-11 23:26:00 +0200 |
commit | f3e3140696ca775fe2f62868addb1eec2b1c18fa (patch) | |
tree | 0f90097b958db3d87356749abddf677de989d788 /core/java | |
parent | fd7d31087bcd40b825b0eee3058e2298d8648e9f (diff) | |
parent | b755253f284e237f6bafc534e85fad74f66df8bd (diff) | |
download | frameworks_base-f3e3140696ca775fe2f62868addb1eec2b1c18fa.zip frameworks_base-f3e3140696ca775fe2f62868addb1eec2b1c18fa.tar.gz frameworks_base-f3e3140696ca775fe2f62868addb1eec2b1c18fa.tar.bz2 |
Merge remote-tracking branch 'goog/master-lockscreen-dev'
Bug: 13635952
Change-Id: Iae69d798155e3aa7e8d94de45977115e16ec66de
Diffstat (limited to 'core/java')
6 files changed, 79 insertions, 10 deletions
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl index 80d5bf2..7d13399 100644 --- a/core/java/android/view/IWindowManager.aidl +++ b/core/java/android/view/IWindowManager.aidl @@ -236,6 +236,11 @@ interface IWindowManager boolean isSafeModeEnabled(); /** + * Enables the screen if all conditions are met. + */ + void enableScreenIfNeeded(); + + /** * Clears the frame statistics for a given window. * * @param token The window token. diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index d5a7d33..032a82f 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -49,7 +49,7 @@ import android.util.Log; public interface WindowManager extends ViewManager { /** * Exception that is thrown when trying to add view whose - * {@link WindowManager.LayoutParams} {@link WindowManager.LayoutParams#token} + * {@link LayoutParams} {@link LayoutParams#token} * is invalid. */ public static class BadTokenException extends RuntimeException { @@ -173,7 +173,6 @@ public interface WindowManager extends ViewManager { * @see #TYPE_SEARCH_BAR * @see #TYPE_PHONE * @see #TYPE_SYSTEM_ALERT - * @see #TYPE_KEYGUARD * @see #TYPE_TOAST * @see #TYPE_SYSTEM_OVERLAY * @see #TYPE_PRIORITY_PHONE @@ -197,7 +196,6 @@ public interface WindowManager extends ViewManager { @ViewDebug.IntToString(from = TYPE_SEARCH_BAR, to = "TYPE_SEARCH_BAR"), @ViewDebug.IntToString(from = TYPE_PHONE, to = "TYPE_PHONE"), @ViewDebug.IntToString(from = TYPE_SYSTEM_ALERT, to = "TYPE_SYSTEM_ALERT"), - @ViewDebug.IntToString(from = TYPE_KEYGUARD, to = "TYPE_KEYGUARD"), @ViewDebug.IntToString(from = TYPE_TOAST, to = "TYPE_TOAST"), @ViewDebug.IntToString(from = TYPE_SYSTEM_OVERLAY, to = "TYPE_SYSTEM_OVERLAY"), @ViewDebug.IntToString(from = TYPE_PRIORITY_PHONE, to = "TYPE_PRIORITY_PHONE"), @@ -341,13 +339,13 @@ public interface WindowManager extends ViewManager { * In multiuser systems shows only on the owning user's window. */ public static final int TYPE_SYSTEM_ALERT = FIRST_SYSTEM_WINDOW+3; - + /** * Window type: keyguard window. * In multiuser systems shows on all users' windows. */ public static final int TYPE_KEYGUARD = FIRST_SYSTEM_WINDOW+4; - + /** * Window type: transient notifications. * In multiuser systems shows only on the owning user's window. @@ -916,7 +914,6 @@ public interface WindowManager extends ViewManager { */ public static final int FLAG_NEEDS_MENU_KEY = 0x40000000; - /** * Various behavioral options/flags. Default is none. * @@ -1090,6 +1087,14 @@ public interface WindowManager extends ViewManager { public static final int PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR = 0x00000200; /** + * Flag whether the current window is a keyguard window, meaning that it will hide all other + * windows behind it except for windows with flag {@link #FLAG_SHOW_WHEN_LOCKED} set. + * Further, this can only be set by {@link LayoutParams#TYPE_STATUS_BAR}. + * {@hide} + */ + public static final int PRIVATE_FLAG_KEYGUARD = 0x00000400; + + /** * Control flags that are private to the platform. * @hide */ diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index e68d4c0..c9be54d 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -1005,6 +1005,14 @@ public interface WindowManagerPolicy { public void dismissKeyguardLw(); /** + * Ask the policy whether the Keyguard has drawn. If the Keyguard is disabled, this method + * returns true as soon as we know that Keyguard is disabled. + * + * @return true if the keyguard has drawn. + */ + public boolean isKeyguardDrawnLw(); + + /** * Given an orientation constant, returns the appropriate surface rotation, * taking into account sensors, docking mode, rotation lock, and other factors. * diff --git a/core/java/com/android/internal/policy/IKeyguardService.aidl b/core/java/com/android/internal/policy/IKeyguardService.aidl index 63ff5a0..b78c70f 100644 --- a/core/java/com/android/internal/policy/IKeyguardService.aidl +++ b/core/java/com/android/internal/policy/IKeyguardService.aidl @@ -25,12 +25,24 @@ import android.os.Bundle; interface IKeyguardService { boolean isShowing(); boolean isSecure(); - boolean isShowingAndNotHidden(); + boolean isShowingAndNotOccluded(); boolean isInputRestricted(); boolean isDismissable(); oneway void verifyUnlock(IKeyguardExitCallback callback); oneway void keyguardDone(boolean authenticated, boolean wakeup); - oneway void setHidden(boolean isHidden); + + /** + * Sets the Keyguard as occluded when a window dismisses the Keyguard with flag + * FLAG_SHOW_ON_LOCK_SCREEN. + * + * @param isOccluded Whether the Keyguard is occluded by another window. + * @return See IKeyguardServiceConstants.KEYGUARD_SERVICE_SET_OCCLUDED_*. This is needed because + * PhoneWindowManager needs to set these flags immediately and can't wait for the + * Keyguard thread to pick it up. In the hidden case, PhoneWindowManager is solely + * responsible to make sure that the flags are unset. + */ + int setOccluded(boolean isOccluded); + oneway void dismiss(); oneway void onDreamingStarted(); oneway void onDreamingStopped(); diff --git a/core/java/com/android/internal/policy/IKeyguardServiceConstants.java b/core/java/com/android/internal/policy/IKeyguardServiceConstants.java new file mode 100644 index 0000000..b88174a --- /dev/null +++ b/core/java/com/android/internal/policy/IKeyguardServiceConstants.java @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2014 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.internal.policy; + +/** + * @hide + */ +public class IKeyguardServiceConstants { + + /** + * Constant for {@link com.android.internal.policy.IKeyguardService#setHidden(boolean)}: + * Don't change the keyguard window flags. + */ + public static final int KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_NONE = 0; + + /** + * Constant for {@link com.android.internal.policy.IKeyguardService#setHidden(boolean)}: + * Set the keyguard window flags to FLAG_SHOW_WALLPAPER and PRIVATE_FLAG_KEYGUARD. + */ + public static final int KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_SET_FLAGS = 1; + + /** + * Constant for {@link com.android.internal.policy.IKeyguardService#setHidden(boolean)}: + * Unset the keyguard window flags to FLAG_SHOW_WALLPAPER and PRIVATE_FLAG_KEYGUARD. + */ + public static final int KEYGUARD_SERVICE_SET_OCCLUDED_RESULT_UNSET_FLAGS = 2; +} diff --git a/core/java/com/android/internal/widget/SizeAdaptiveLayout.java b/core/java/com/android/internal/widget/SizeAdaptiveLayout.java index 961e471..5f3c5f9 100644 --- a/core/java/com/android/internal/widget/SizeAdaptiveLayout.java +++ b/core/java/com/android/internal/widget/SizeAdaptiveLayout.java @@ -107,8 +107,6 @@ public class SizeAdaptiveLayout extends ViewGroup { } if (background instanceof ColorDrawable) { mModestyPanel.setBackgroundDrawable(background); - } else { - mModestyPanel.setBackgroundColor(Color.BLACK); } SizeAdaptiveLayout.LayoutParams layout = new SizeAdaptiveLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, |