Always use the ElectronBeam now, even when we are only animating the backlight so that we will have a black surface remaining on the screen after the screen turns off. When turning on the screen, keep the black surface showing until we unblock screen on then dismiss it as usual. This change eliminates the flashing of old display content when the screen is turned on. It also helps to conceal some of the latency of turning the screen on. We always turn the screen on immediately (even when screen on has nominally been blocked) and rely on the black surface to hide the screen contents until the last moment. Dismissing the black surface is practically instantaneous compared to turning the screen on. Bug: 7299370 Bug: 7139924 Change-Id: I57d13287acd05bd0a48811095bb02dc7bc7cbeb6
42 lines
1.3 KiB
Java
42 lines
1.3 KiB
Java
/*
|
|
* Copyright (C) 2012 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.server.power;
|
|
|
|
/**
|
|
* Low-level screen on blocker mechanism which is used to keep the screen off
|
|
* or the contents of the screen hidden until the window manager is ready to show new content.
|
|
*/
|
|
interface ScreenOnBlocker {
|
|
/**
|
|
* Acquires the screen on blocker.
|
|
* Prevents the screen from turning on.
|
|
*
|
|
* Calls to acquire() nest and must be matched by the same number
|
|
* of calls to release().
|
|
*/
|
|
void acquire();
|
|
|
|
/**
|
|
* Releases the screen on blocker.
|
|
* Allows the screen to turn on.
|
|
*
|
|
* It is an error to call release() if the screen on blocker has not been acquired.
|
|
* The system may crash.
|
|
*/
|
|
void release();
|
|
}
|