Preventing NPE crash if view is detached from window.
View#getDisplay can return null if the view is detached from window.
Get the display by Context#getDisplay should ensure there can always
return the local display object.
Bug: 235283631
Test: enable shell transition, repeatly run AppConfigurationTests
testConfigurationUpdatesWhenRotatingWhileFullscreen and verify no crash
in system ui.
Change-Id: I792417a55a588c9552529f2815c1ab5d88f427e7
Merged-In: I792417a55a588c9552529f2815c1ab5d88f427e7
(cherry picked from commit e4f2b2c015)
This commit is contained in:
committed by
Wei Sheng Shih
parent
2b868683ad
commit
72cdc50a41
@@ -87,20 +87,21 @@ open class DisplayCutoutBaseView : View, RegionInterceptableView {
|
|||||||
|
|
||||||
fun onDisplayChanged(displayId: Int) {
|
fun onDisplayChanged(displayId: Int) {
|
||||||
val oldMode: Display.Mode? = displayMode
|
val oldMode: Display.Mode? = displayMode
|
||||||
displayMode = display.mode
|
val display: Display? = context.display
|
||||||
|
displayMode = display?.mode
|
||||||
|
|
||||||
if (displayUniqueId != context.display?.uniqueId) {
|
if (displayUniqueId != display?.uniqueId) {
|
||||||
displayUniqueId = context.display?.uniqueId
|
displayUniqueId = display?.uniqueId
|
||||||
shouldDrawCutout = DisplayCutout.getFillBuiltInDisplayCutout(
|
shouldDrawCutout = DisplayCutout.getFillBuiltInDisplayCutout(
|
||||||
context.resources, displayUniqueId)
|
context.resources, displayUniqueId)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Skip if display mode or cutout hasn't changed.
|
// Skip if display mode or cutout hasn't changed.
|
||||||
if (!displayModeChanged(oldMode, displayMode) &&
|
if (!displayModeChanged(oldMode, displayMode) &&
|
||||||
display.cutout == displayInfo.displayCutout) {
|
display?.cutout == displayInfo.displayCutout) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (displayId == display.displayId) {
|
if (displayId == display?.displayId) {
|
||||||
updateCutout()
|
updateCutout()
|
||||||
updateProtectionBoundingPath()
|
updateProtectionBoundingPath()
|
||||||
onUpdate()
|
onUpdate()
|
||||||
|
|||||||
Reference in New Issue
Block a user