MediaHiearchyManager: prevent NPE in updateTargetState()
For some reason, even after adding the checks for -1 in `isCurrentlyInGuidedTransformation()`, there are still times when `startHost` and/or `endHost` can be null, causing a NPE. Fixes: 221754301 Test: N/A Change-Id: I05d02ac7dcd6b0d8a850f9a8bbef8ce6205a8231
This commit is contained in:
@@ -741,10 +741,11 @@ class MediaHierarchyManager @Inject constructor(
|
||||
* Updates the bounds that the view wants to be in at the end of the animation.
|
||||
*/
|
||||
private fun updateTargetState() {
|
||||
if (isCurrentlyInGuidedTransformation() && !isCurrentlyFading()) {
|
||||
var starthost = getHost(previousLocation)
|
||||
var endHost = getHost(desiredLocation)
|
||||
if (isCurrentlyInGuidedTransformation() && !isCurrentlyFading() && starthost != null &&
|
||||
endHost != null) {
|
||||
val progress = getTransformationProgress()
|
||||
var endHost = getHost(desiredLocation)!!
|
||||
var starthost = getHost(previousLocation)!!
|
||||
// If either of the hosts are invisible, let's keep them at the other host location to
|
||||
// have a nicer disappear animation. Otherwise the currentBounds of the state might
|
||||
// be undefined
|
||||
@@ -756,8 +757,8 @@ class MediaHierarchyManager @Inject constructor(
|
||||
val newBounds = endHost.currentBounds
|
||||
val previousBounds = starthost.currentBounds
|
||||
targetBounds = interpolateBounds(previousBounds, newBounds, progress)
|
||||
} else {
|
||||
val bounds = getHost(desiredLocation)?.currentBounds ?: return
|
||||
} else if (endHost != null) {
|
||||
val bounds = endHost.currentBounds
|
||||
targetBounds.set(bounds)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user