diff options
| author | 2014-05-29 16:15:41 -0700 | |
|---|---|---|
| committer | 2014-05-29 17:40:09 -0700 | |
| commit | 2dedafb48f85e34a2f48262f12908866fc9de132 (patch) | |
| tree | 2bfbba60236b884b2d9fb271b2cda528c9694e62 | |
| parent | aee470c0232afdac4256d13020fa0cf04f30395c (diff) | |
Fix NPE in onVisibilityChanged
Bug: 15089790
onVisibilityChanged may happen before the View is attached.
Only attempt to re-set the update listener if mLayer is not null,
as it means the View is attached and has already drawn once. If
mLayer is null then the update listener will be set when the view
next draws
Change-Id: I406e359a0a0720988f026f9cbde26afdb564ca92
| -rw-r--r-- | core/java/android/view/TextureView.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java index 1765c4341b58..2a9f7d5a91b3 100644 --- a/core/java/android/view/TextureView.java +++ b/core/java/android/view/TextureView.java @@ -405,7 +405,9 @@ public class TextureView extends View { // To cancel updates, the easiest thing to do is simply to remove the // updates listener if (visibility == VISIBLE) { - mSurface.setOnFrameAvailableListener(mUpdateListener, mAttachInfo.mHandler); + if (mLayer != null) { + mSurface.setOnFrameAvailableListener(mUpdateListener, mAttachInfo.mHandler); + } updateLayerAndInvalidate(); } else { mSurface.setOnFrameAvailableListener(null); |