9ede1d260284bbf0b47ca6f0315e943058624520 |
|
23-Sep-2016 |
Adrian Roos <roosa@google.com> |
Fix wake lock logic during Dream startup Fixes a crash that would happen in all dreams that did not have permission to acquire wake locks. Instead moves the wake lock logic into the system process. Also fixes a bug in DozeService where the wake lock was not held until dozing was actually properly initialized. Fixes: 31612287 Bug: 31044352 Related-CL: I85955a2b7d6bad5171accbc336117a9660b1b198 Test: adb shell settings put secure screensaver_components com.android.dreams.basic/.Colors; adb shell service call dreams 1 Change-Id: Idb3f921ee71b6da6c2ab0c44c332ef91f93ddbc0
/frameworks/base/core/java/android/service/dreams/IDreamService.aidl
|
f6d466895b74d620d646abbec1c8911f3a0ce0bb |
|
18-Jul-2014 |
Jeff Brown <jeffbrown@google.com> |
Allow dreams to wake up gently. This change adds a new DreamService.wakeUp() method to allow a dream to wake itself up gently and perform a transition before finally finishing. The power manager will ask a dream to wake up gently in most cases but may force it to happen immediately when necessary. If the dream takes too long to finish itself then the dream controller will douse it with water summarily after 5 seconds. Change-Id: Ib0564c5650cd5a454e1acc5aa91fe46995eecfa7
/frameworks/base/core/java/android/service/dreams/IDreamService.aidl
|
2687550272ba061448f5d5b914700dc335299ee7 |
|
31-Jan-2014 |
Jeff Brown <jeffbrown@google.com> |
Add a new "doze mode" based on Dream components. When a doze component has been specified in a config.xml resource overlay, the power manager will try to start a preconfigured dream whenever it would have otherwise gone to sleep and turned the screen off. The dream should render whatever it intends to show then call startDozing() to tell the power manager to put the display into a low power "doze" state and allow the application processor to be suspended. The dream may wake up periodically using the alarm manager or other features to update the contents of the display. Added several new config.xml resources related to dreams and dozing. In particular for dozing there are two new resources that pertain to decoupling auto-suspend mode and interactive mode from the display state. This is a requirement to enable the application processor and other components to be suspended while dozing. Most devices do not support these features today. Consolidated the power manager's NAPPING and DREAMING states into one to simplify the logic. The NAPPING state was mostly superfluous and simply indicated that the power manager should attempt to start a new dream. This state is now tracked in the mSandmanSummoned field. Added a new DOZING state which is analoguous to DREAMING. The normal state transition is now: AWAKE -> DREAMING -> DOZING -> ASLEEP. The PowerManager.goToSleep() method now enters the DOZING state instead of immediately going to sleep. While in the doze state, the screen remains on. However, we actually tell the rest of the system that the screen is off. This is somewhat unfortunate but much of the system makes inappropriate assumptions about what it means for the screen to be on or off. In particular, screen on is usually taken to indicate an interactive state where the user is present but that's not at all true for dozing (and is only sometimes true while dreaming). We will probably need to add some more precise externally visible states at some point. The DozeHardware interface encapsulates a generic microcontroller interface to allow a doze dream for off-loading rendering or other functions while dozing. If the device possesses an MCU HAL for dozing then it is exposed to the DreamService here. Removed a number of catch blocks in DreamService that caught Throwable and attempted to cause the dream to finish itself. We actually just want to let the process crash. Cleanup will happen automatically if needed. Catching these exceptions results in mysterious undefined behavior and broken dreams. Bug: 12494706 Change-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b
/frameworks/base/core/java/android/service/dreams/IDreamService.aidl
|
2d78490292090eeab84694330978c9ad7fad2d37 |
|
04-Oct-2012 |
Daniel Sandler <dsandler@android.com> |
DreamService API revisions. Reduce reliance on Service interface overrides, instead steering clients to the DreamService-specific lifecycle hooks: onAttachedToWindow .. onDreamingStarted .. onDreamingStopped .. onDetachedFromWindow The old Dream.java is finally gone now too. Bug: 7281802 Change-Id: Ib7802c3397fde60ad1132fa49831da182eef4d7a
/frameworks/base/core/java/android/service/dreams/IDreamService.aidl
|
7d276c377ce0c56630c06a6da431a6cb9bd76d1e |
|
30-Jan-2012 |
Daniel Sandler <dsandler@android.com> |
New Android Dreams architecture, disabled for now. Rather than normal Activities (which have a host of problems when used for this purpose), screen savers are now a special kind of Service that can add views to its own special window (TYPE_DREAM, in the SCREENSAVER layer). Dreams are now launched by the power manager; whenever it is about to turn the screen off, it asks the window manager if it wants to run a screen saver instead. (http://b/5677408) Also, the new config_enableDreams bool allows the entire feature to be switched on or off in one place. It is currently switched off (and the APIs are all @hidden). Change-Id: Idfe9d430568471d15f4b463cb70586a899a331f7
/frameworks/base/core/java/android/service/dreams/IDreamService.aidl
|