Revert D8194925: Fix ART surface sleep issue

Differential Revision:
D8194925

Original commit changeset: 5448d49d9590

fbshipit-source-id: c01e11d44424e1f6fb79866bb845ed60764c5f13
This commit is contained in:
Himabindu Gadupudi 2018-05-31 11:53:20 -07:00 committed by Facebook Github Bot
parent 536c937269
commit fecfa2a553
5 changed files with 25 additions and 21 deletions

View File

@ -7,7 +7,6 @@
package com.facebook.react.flat; package com.facebook.react.flat;
import android.view.SurfaceHolder;
import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManager;
import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.views.art.ARTSurfaceView; import com.facebook.react.views.art.ARTSurfaceView;
@ -15,7 +14,6 @@ import com.facebook.yoga.YogaMeasureFunction;
import com.facebook.yoga.YogaMeasureMode; import com.facebook.yoga.YogaMeasureMode;
import com.facebook.yoga.YogaNode; import com.facebook.yoga.YogaNode;
public class FlatARTSurfaceViewManager extends public class FlatARTSurfaceViewManager extends
BaseViewManager<ARTSurfaceView, FlatARTSurfaceViewShadowNode> { BaseViewManager<ARTSurfaceView, FlatARTSurfaceViewShadowNode> {
@ -57,6 +55,6 @@ public class FlatARTSurfaceViewManager extends
@Override @Override
public void updateExtraData(ARTSurfaceView root, Object extraData) { public void updateExtraData(ARTSurfaceView root, Object extraData) {
root.getHolder().addCallback((FlatARTSurfaceViewShadowNode) extraData); root.setSurfaceTextureListener((FlatARTSurfaceViewShadowNode) extraData);
} }
} }

View File

@ -16,7 +16,7 @@ import android.graphics.PorterDuff;
import android.graphics.SurfaceTexture; import android.graphics.SurfaceTexture;
import android.util.Log; import android.util.Log;
import android.view.Surface; import android.view.Surface;
import android.view.SurfaceHolder; import android.view.TextureView;
import com.facebook.react.common.ReactConstants; import com.facebook.react.common.ReactConstants;
import com.facebook.react.uimanager.ReactShadowNode; import com.facebook.react.uimanager.ReactShadowNode;
@ -25,9 +25,8 @@ import com.facebook.react.views.art.ARTVirtualNode;
import com.facebook.yoga.YogaValue; import com.facebook.yoga.YogaValue;
import com.facebook.yoga.YogaUnit; import com.facebook.yoga.YogaUnit;
/* package */ class FlatARTSurfaceViewShadowNode extends FlatShadowNode /* package */ class FlatARTSurfaceViewShadowNode extends FlatShadowNode
implements AndroidView, SurfaceHolder.Callback { implements AndroidView, TextureView.SurfaceTextureListener {
private boolean mPaddingChanged = false; private boolean mPaddingChanged = false;
private @Nullable Surface mSurface; private @Nullable Surface mSurface;
@ -124,16 +123,21 @@ import com.facebook.yoga.YogaUnit;
} }
@Override @Override
public void surfaceCreated(SurfaceHolder holder) { public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
mSurface = holder.getSurface(); mSurface = new Surface(surface);
drawOutput(); drawOutput();
} }
@Override @Override
public void surfaceDestroyed(SurfaceHolder holder) { public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
surface.release();
mSurface = null; mSurface = null;
return true;
} }
@Override @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {}
} }

View File

@ -8,13 +8,14 @@
package com.facebook.react.views.art; package com.facebook.react.views.art;
import android.content.Context; import android.content.Context;
import android.view.SurfaceView; import android.view.TextureView;
/** /**
* Custom {@link View} implementation that draws an ARTSurface React view and its children. * Custom {@link View} implementation that draws an ARTSurface React view and its children.
*/ */
public class ARTSurfaceView extends SurfaceView { public class ARTSurfaceView extends TextureView {
public ARTSurfaceView(Context context) { public ARTSurfaceView(Context context) {
super(context); super(context);
setOpaque(false);
} }
} }

View File

@ -7,7 +7,6 @@
package com.facebook.react.views.art; package com.facebook.react.views.art;
import android.view.SurfaceHolder;
import com.facebook.yoga.YogaMeasureMode; import com.facebook.yoga.YogaMeasureMode;
import com.facebook.yoga.YogaMeasureFunction; import com.facebook.yoga.YogaMeasureFunction;
import com.facebook.yoga.YogaNode; import com.facebook.yoga.YogaNode;
@ -61,7 +60,7 @@ public class ARTSurfaceViewManager extends
@Override @Override
public void updateExtraData(ARTSurfaceView root, Object extraData) { public void updateExtraData(ARTSurfaceView root, Object extraData) {
root.getHolder().addCallback((ARTSurfaceViewShadowNode) extraData); root.setSurfaceTextureListener((ARTSurfaceViewShadowNode) extraData);
} }
@Override @Override

View File

@ -15,10 +15,8 @@ import android.graphics.Color;
import android.view.Surface; import android.view.Surface;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.graphics.SurfaceTexture; import android.graphics.SurfaceTexture;
import android.view.SurfaceHolder;
import android.view.TextureView; import android.view.TextureView;
import com.facebook.common.logging.FLog; import com.facebook.common.logging.FLog;
import com.facebook.react.common.ReactConstants; import com.facebook.react.common.ReactConstants;
import com.facebook.react.uimanager.LayoutShadowNode; import com.facebook.react.uimanager.LayoutShadowNode;
@ -31,7 +29,7 @@ import com.facebook.react.uimanager.annotations.ReactProp;
* Shadow node for ART virtual tree root - ARTSurfaceView * Shadow node for ART virtual tree root - ARTSurfaceView
*/ */
public class ARTSurfaceViewShadowNode extends LayoutShadowNode public class ARTSurfaceViewShadowNode extends LayoutShadowNode
implements SurfaceHolder.Callback { implements TextureView.SurfaceTextureListener {
private @Nullable Surface mSurface; private @Nullable Surface mSurface;
@ -99,17 +97,21 @@ public class ARTSurfaceViewShadowNode extends LayoutShadowNode
} }
@Override @Override
public void surfaceCreated(SurfaceHolder holder) { public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
mSurface = holder.getSurface(); mSurface = new Surface(surface);
drawOutput(); drawOutput();
} }
@Override @Override
public void surfaceDestroyed(SurfaceHolder holder) { public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
surface.release();
mSurface = null; mSurface = null;
return true;
} }
@Override @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}
@Override
public void onSurfaceTextureUpdated(SurfaceTexture surface) {}
} }