Avoid dividing 0 by 0 in StackScrollAlgorithm.

This is very likely the cause of b/233692725 (which is essentially an
error saying that translationZ is set to Float.NaN). Looked through all
the codepaths modifying translationZ, and this was the only one I could
find that could generate NaN.

Test: Not quite sure how to test it though, since I can't reproduce.
Will add some logging in a follow-up commit.
Bug: 233692725

Change-Id: Ie5db92ee714b2265ceacc366144bdadad00aaf51
This commit is contained in:
Ioana Alexandru
2022-09-30 13:38:11 +00:00
parent 580e951458
commit 3d676a2684

View File

@@ -884,6 +884,9 @@ public class StackScrollAlgorithm {
childViewState.zTranslation = baseZ;
} else {
float factor = (notificationEnd - shelfStart) / shelfHeight;
if (Float.isNaN(factor)) { // Avoid problems when the above is 0/0.
factor = 1.0f;
}
factor = Math.min(factor, 1.0f);
childViewState.zTranslation = baseZ + factor * zDistanceBetweenElements;
}