summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
authorYorke Lee <yorkelee@google.com>2015-04-01 14:08:42 -0700
committerYorke Lee <yorkelee@google.com>2015-04-01 14:08:42 -0700
commit568f5d0395721643cda6c68cb30a05d9002faf23 (patch)
tree4a1bddca8ff8bc95eff4b2916306d12745e46c2c /InCallUI
parent98c3b09822844ce61685f794da36c74490a7046c (diff)
Fix crash when rotating video fragment
Due to a recent framework change, https://googleplex-android-review.git.corp.google.com/#/c/659363/ TextureView will now crash if setSurfaceTexture is called before the TextureView is attached to the window. Use an OnAttachStateListener to call setSurfaceTexture only after the view is attached to the window. Change-Id: Ic61302fb81461a00ae9e61352a1798d6c8b61318
Diffstat (limited to 'InCallUI')
-rw-r--r--InCallUI/src/com/android/incallui/VideoCallFragment.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/InCallUI/src/com/android/incallui/VideoCallFragment.java b/InCallUI/src/com/android/incallui/VideoCallFragment.java
index 2b0ddd534..143ee2451 100644
--- a/InCallUI/src/com/android/incallui/VideoCallFragment.java
+++ b/InCallUI/src/com/android/incallui/VideoCallFragment.java
@@ -101,7 +101,7 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
* changes.
*/
private class VideoCallSurface implements TextureView.SurfaceTextureListener,
- View.OnClickListener {
+ View.OnClickListener, View.OnAttachStateChangeListener {
private int mSurfaceId;
private TextureView mTextureView;
private SurfaceTexture mSavedSurfaceTexture;
@@ -151,10 +151,7 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
mTextureView = view;
mTextureView.setSurfaceTextureListener(this);
mTextureView.setOnClickListener(this);
-
- if (mSavedSurfaceTexture != null) {
- mTextureView.setSurfaceTexture(mSavedSurfaceTexture);
- }
+ mTextureView.addOnAttachStateChangeListener(this);
}
/**
@@ -235,6 +232,19 @@ public class VideoCallFragment extends BaseFragment<VideoCallPresenter,
// Not Handled
}
+ @Override
+ public void onViewAttachedToWindow(View v) {
+ if (DEBUG) {
+ Log.i(TAG, "OnViewAttachedToWindow");
+ }
+ if (mSavedSurfaceTexture != null) {
+ mTextureView.setSurfaceTexture(mSavedSurfaceTexture);
+ }
+ }
+
+ @Override
+ public void onViewDetachedFromWindow(View v) {}
+
/**
* Retrieves the current {@link TextureView}.
*