forked from LineageOS/android_frameworks_base
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SystemUI: Implement burn-in protection for status/navbar
Devices with OLED display suffer from status-bar's notification items and nagivation bar's software keys causing permanent burn-ins when used long-term. Moving all items in the area both horizontally and vertically workarounds this problem. This new feature can be enabled by setting config_statusBarBurnInProtection to true. The shifting interval can be configured with config_shift_interval. The default shifting interval is 60 seconds. Forward-ported to oreo-mr1. Change-Id: I8df1ebc8bc0f359fe5a6a1fe11aa6201237a7359 SystemUI: rework statusbar burn-in protection controller * Turns out that this controller was instantiated twice resulting in two timers running simultaneously which resulted in views to shift abruptly. Since the shift amount was too low it was not noticeable at all. So now we instantiate it once with all final dependencies and inject PhoneStatusBarView in fragment transaction. * Finalized many instance variables and a reference to the main handler is kept instead of creating new ones in each cycle * simplified / generalised the shift algorithm a bit so that it's easily configurable * added a callback to reload shift vars on screen density changes * additional changes: * use the same controller for navigation handle, saves some cpu time Signed-off-by: jhonboy121 <[email protected]> SystemUI: inject BurnInProtectionController Signed-off-by: jhonboy121 <[email protected]> [jhonboy121]: use the scoped SysUISingleton annotation SystemUI: BurnInProtectionController: rewrite in kotlin and improvements * ditched TimerTask in favor of coroutines Signed-off-by: jhonboy121 <[email protected]> [jhonboy121]: * adapted to A13 * use BurnInHelper util functions for calculating offset [ghostrider-reborn]: * use NavigationBarView directly instead of CentralSurfaces * rework timer and offset calculation logic SystemUI: Enable statusbar burn-in protection by default * AOSP already provides a config for burn-in protection so enable statusbar burn-in protection based on that * To forcefully disable it, set config_statusBarBurnInProtection to false Change-Id: I1a0b5c06ed6092153a35cb1cdc12b3b5e865ce8f SystemUI: BurnInProtectionController: offset less aggressively Change-Id: Ib37b0fde6edfc34cad8876d2e01ba4f37f323036 Signed-off-by: jhonboy121 <[email protected]> SystemUI: Make setNavigationBarView and setPhoneStatusBarView nullable * this fixes a potential npe on devices without navbar or statusbar Change-Id: Ia8e0ff844e24f67685ba20ac61a88d3256c9c648 Co-authored-by: jhonboy121 <[email protected]> Co-authored-by: Adithya R <[email protected]> Co-authored-by: Fabian Leutenegger <[email protected]> Change-Id: I067022d43d20f43760a192b43569c31316a5337a Signed-off-by: Adithya R <[email protected]>
- Loading branch information
Showing
7 changed files
with
291 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.