Fix crash when removing draw listener

The same behavior can be achieved by using a predraw listener, which
can be removed while the callback is called, so it doesn't crash.

Change-Id: I3a7138ba49936159dc95b7758c9603366dcf808c
This commit is contained in:
Jorim Jaggi
2015-04-08 10:47:22 -07:00
parent f63afe7b33
commit 74a94059c6

View File

@@ -381,12 +381,13 @@ public class ActionMenuPresenter extends BaseMenuPresenter
computeMenuItemAnimationInfo(true);
final ViewTreeObserver observer = menuViewParent.getViewTreeObserver();
if (observer != null) {
observer.addOnDrawListener(new ViewTreeObserver.OnDrawListener() {
observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public void onDraw() {
public boolean onPreDraw() {
computeMenuItemAnimationInfo(false);
observer.removeOnDrawListener(this);
observer.removeOnPreDrawListener(this);
runItemAnimations();
return true;
}
});
}