As long as the light sensor is providing values, each value change will
enqueue a transition message, which may queue up. Stop doing that and
ensure only one transition message is queued at any given time.
Change-Id: I6e9c5b265066089ff9e0cea7237c2023ed1af30c
* Essentially everything in CMSDK should remain silent when we
are being prompted to enter a passcode for decrypting the
device. Unfortunately, simply shutting off CMSDK entirely
will cause crashes everywhere. We need to be somewhat
selective about it.
* Motivation for this was LiveDisplay kicking into night mode before
decrypted due to location services failing.
Change-Id: I4d745debb2894776258343e8696ce5144f094404
* We currently use the DisplayColorCalibration API for setting display
temperature which makes a lot of guesses about what temperature
the display really is. Some devices will support the new ColorBalance
API (via QDCM or other mechanism), which offers a calibrated
alternative. Add support for this, which will supercede DCC if
available.
* Additionally, define the available color temperature range as a
set of overlayable values so this can be specified per-device.
This range will be mapped to balance values using the power curve
calculations in the new MathUtils class.
Change-Id: I99608c09807b747d962680293c7b0cee8d669003
* If the screen is off during the entire transition period,
when we turn the display back on it is not updated with
the correct color temperature.
* The code here is trying to be Mr. Smarty Pants and avoid
extra updates, but it's totally pointless and also broken.
There's no ill effects from writing to the hardware when
the screen comes on, and updateColorTemperature already
has all the other conditionals we need.
* Just call updateColorTemperature every time, regardless.
The LiveDisplayService ensures the callbacks run on the
handler thread and all this crap can be removed.
Change-Id: Ib9560e13870a5c6bbe9c5a26fad40f5ec1cefa83
* Fix issue with color adjustments not being applied at bootup.
* Fix issue where hardware was always updated twice.
* Check the display state inside the color animator- this was
occasionally racing and triggering kernel bugs on some devices.
Change-Id: Ieb9845e6b0f1c7ca979cbfa35c0b9b688ef1a8cf
* If the device is started in the middle of a transition period,
the transition would not occur. Always check for this condition
instead of only firing it when TwilightService updates.
Change-Id: Ibe6cfa69506ffc6a9bf6390ee7e13863f275ec2a
* Simplify the code and callback mechanisms
* Fix bug where settings weren't applied at startup
* Make stuff immutable where possible
* Corrected the sunrise calculation to start on time
* Fix issue where tile state could become out of sync
* Don't spam the hardware on screen on/off
* Stop trying to cache values in so many places, they get out of sync
too easily.
* Move the animator to the general display adjustments
* Clean up outdoor mode state on screen toggle
Change-Id: Ic14425e5294d78698b9280dfb1237b222bb706cc
mode.
There was a logic mistake that caused _all_ modes to be skipped if
outdoor mode isn't supported. In order to avoid such mistakes in the
future, also simplify the logic and make it more easily understandable.
Change-Id: I5fe8edbb3c4d2dd05fc4b4a7f94ca05d4ecd408b
* Don't create the mode observer or try to publish tiles if none
of the adaptive modes are supported.
Change-Id: Iee6fe8131b0614e10f35b5a03d65fb44c71c0da9
* Moving LiveDisplay to CMSDK!
* Completely redesigned the feature for future expansion.
* No new features in this patch, but a proper API is being
designed.
Change-Id: Ic8f55678f9141bf3386b2a1cf2fd1e8b3916c278