Update scrims when changing quick settings clip, fix clipping bounds in split shade
Fixes two issues with scrims background: 1) Scrims become transparent on pin code bouncer when rotating from split shade to non-split shade mode This happens because we update mClipQsScrim in ScrimState enum, but we don't actually re-apply alpha values and tints to the scrim views/drawables. We applied these values only when current ScrimState has changed (see transitionTo method). When we rotate the device when we are on pin code bouncer the state remains the same (BOUNCER), so we didn't apply these values. Updated the code to set alpha values and tints when setClipsQsScrim is called (it invokes applyAndDispatchState which invokes applyState). 2) Background becomes black when we open pin code bouncer when using non-split shade mode and rotate the device to split shade mode It happened because in NotificationPanelViewController.setQSClippingBounds the clipping bounds are initialized with zeros and we didn't update them in case when we use split notification shade and qsPanelBottomY <= 0 (when quick settings are not visible). Empty bounds caused absence of the notifications scrim which should act as bouncer background. Fixed by using non-split shade logic for calculating bounds in this case, they cover the entire screen. Fixes: 188112748 Test: atest com.android.systemui.statusbar.phone.ScrimControllerTest Test: manual https://drive.google.com/drive/folders/1SRSzT0uQ-mETIVI87Ilr3dxlaUdcG9Go?usp=sharing Change-Id: I783b2d4f4335447f7abfb210005aa09bfd3e15a8
Loading
Please register or sign in to comment