mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 12:25:53 +00:00
Bug 765156: NPE in Property Animator's invalidate(). [r=mfinkle]
--HG-- extra : rebase_source : 7e9625e2a93d25646ab086f89feba9493445d523
This commit is contained in:
parent
49aed34fbf
commit
d196d45b91
@ -141,29 +141,35 @@ public class PropertyAnimator extends TimerTask {
|
||||
}
|
||||
|
||||
private void invalidate(final ElementHolder element, final int delta) {
|
||||
if (element == null || element.view == null)
|
||||
View v = (element == null ? null : element.view);
|
||||
if (v == null)
|
||||
return;
|
||||
|
||||
// Post the layout changes on the view's UI thread.
|
||||
element.view.getHandler().post(new Runnable() {
|
||||
v.getHandler().post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
// Check if the element and view still exist
|
||||
View view = (element == null ? null : element.view);
|
||||
if (view == null)
|
||||
return;
|
||||
|
||||
if (element.property == Property.SLIDE_TOP) {
|
||||
element.view.scrollTo(element.view.getScrollX(), delta);
|
||||
view.scrollTo(view.getScrollX(), delta);
|
||||
return;
|
||||
} else if (element.property == Property.SLIDE_LEFT) {
|
||||
element.view.scrollTo(delta, element.view.getScrollY());
|
||||
view.scrollTo(delta, view.getScrollY());
|
||||
return;
|
||||
}
|
||||
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) element.view.getLayoutParams();
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
|
||||
|
||||
if (element.property == Property.SHRINK_TOP)
|
||||
params.setMargins(params.leftMargin, delta, params.rightMargin, params.bottomMargin);
|
||||
else if (element.property == Property.SHRINK_LEFT)
|
||||
params.setMargins(delta, params.topMargin, params.rightMargin, params.bottomMargin);
|
||||
|
||||
element.view.requestLayout();
|
||||
view.requestLayout();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user