Files
frameworks_base/services/java/com/android/server/power/ScreenOnBlocker.java
Jeff Brown 8b9cf1c800 Reduce screen on latency, eliminate flashes.
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
2012-10-07 14:54:17 -07:00

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();
}