Skip to content

Commit fecfa2a

Browse files
Revert D8194925: Fix ART surface sleep issue
Differential Revision: D8194925 Original commit changeset: 5448d49d9590 fbshipit-source-id: c01e11d44424e1f6fb79866bb845ed60764c5f13
1 parent 536c937 commit fecfa2a

File tree

5 files changed

+25
-21
lines changed

5 files changed

+25
-21
lines changed

ReactAndroid/src/main/java/com/facebook/react/flat/FlatARTSurfaceViewManager.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@
77

88
package com.facebook.react.flat;
99

10-
import android.view.SurfaceHolder;
1110
import com.facebook.react.uimanager.BaseViewManager;
1211
import com.facebook.react.uimanager.ThemedReactContext;
1312
import com.facebook.react.views.art.ARTSurfaceView;
1413
import com.facebook.yoga.YogaMeasureFunction;
1514
import com.facebook.yoga.YogaMeasureMode;
1615
import com.facebook.yoga.YogaNode;
1716

18-
1917
public class FlatARTSurfaceViewManager extends
2018
BaseViewManager<ARTSurfaceView, FlatARTSurfaceViewShadowNode> {
2119

@@ -57,6 +55,6 @@ protected ARTSurfaceView createViewInstance(ThemedReactContext reactContext) {
5755

5856
@Override
5957
public void updateExtraData(ARTSurfaceView root, Object extraData) {
60-
root.getHolder().addCallback((FlatARTSurfaceViewShadowNode) extraData);
58+
root.setSurfaceTextureListener((FlatARTSurfaceViewShadowNode) extraData);
6159
}
6260
}

ReactAndroid/src/main/java/com/facebook/react/flat/FlatARTSurfaceViewShadowNode.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import android.graphics.SurfaceTexture;
1717
import android.util.Log;
1818
import android.view.Surface;
19-
import android.view.SurfaceHolder;
19+
import android.view.TextureView;
2020

2121
import com.facebook.react.common.ReactConstants;
2222
import com.facebook.react.uimanager.ReactShadowNode;
@@ -25,9 +25,8 @@
2525
import com.facebook.yoga.YogaValue;
2626
import com.facebook.yoga.YogaUnit;
2727

28-
2928
/* package */ class FlatARTSurfaceViewShadowNode extends FlatShadowNode
30-
implements AndroidView, SurfaceHolder.Callback {
29+
implements AndroidView, TextureView.SurfaceTextureListener {
3130
private boolean mPaddingChanged = false;
3231
private @Nullable Surface mSurface;
3332

@@ -124,16 +123,21 @@ public void setPaddingPercent(int spacingType, float percent) {
124123
}
125124

126125
@Override
127-
public void surfaceCreated(SurfaceHolder holder) {
128-
mSurface = holder.getSurface();
126+
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
127+
mSurface = new Surface(surface);
129128
drawOutput();
130129
}
131130

132131
@Override
133-
public void surfaceDestroyed(SurfaceHolder holder) {
132+
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
133+
surface.release();
134134
mSurface = null;
135+
return true;
135136
}
136137

137138
@Override
138-
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
139+
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}
140+
141+
@Override
142+
public void onSurfaceTextureUpdated(SurfaceTexture surface) {}
139143
}

ReactAndroid/src/main/java/com/facebook/react/views/art/ARTSurfaceView.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88
package com.facebook.react.views.art;
99

1010
import android.content.Context;
11-
import android.view.SurfaceView;
11+
import android.view.TextureView;
1212

1313
/**
1414
* Custom {@link View} implementation that draws an ARTSurface React view and its children.
1515
*/
16-
public class ARTSurfaceView extends SurfaceView {
16+
public class ARTSurfaceView extends TextureView {
1717
public ARTSurfaceView(Context context) {
1818
super(context);
19+
setOpaque(false);
1920
}
2021
}

ReactAndroid/src/main/java/com/facebook/react/views/art/ARTSurfaceViewManager.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
package com.facebook.react.views.art;
99

10-
import android.view.SurfaceHolder;
1110
import com.facebook.yoga.YogaMeasureMode;
1211
import com.facebook.yoga.YogaMeasureFunction;
1312
import com.facebook.yoga.YogaNode;
@@ -61,7 +60,7 @@ protected ARTSurfaceView createViewInstance(ThemedReactContext reactContext) {
6160

6261
@Override
6362
public void updateExtraData(ARTSurfaceView root, Object extraData) {
64-
root.getHolder().addCallback((ARTSurfaceViewShadowNode) extraData);
63+
root.setSurfaceTextureListener((ARTSurfaceViewShadowNode) extraData);
6564
}
6665

6766
@Override

ReactAndroid/src/main/java/com/facebook/react/views/art/ARTSurfaceViewShadowNode.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@
1515
import android.view.Surface;
1616
import android.graphics.PorterDuff;
1717
import android.graphics.SurfaceTexture;
18-
import android.view.SurfaceHolder;
1918
import android.view.TextureView;
2019

21-
2220
import com.facebook.common.logging.FLog;
2321
import com.facebook.react.common.ReactConstants;
2422
import com.facebook.react.uimanager.LayoutShadowNode;
@@ -31,7 +29,7 @@
3129
* Shadow node for ART virtual tree root - ARTSurfaceView
3230
*/
3331
public class ARTSurfaceViewShadowNode extends LayoutShadowNode
34-
implements SurfaceHolder.Callback {
32+
implements TextureView.SurfaceTextureListener {
3533

3634
private @Nullable Surface mSurface;
3735

@@ -99,17 +97,21 @@ private void markChildrenUpdatesSeen(ReactShadowNode shadowNode) {
9997
}
10098

10199
@Override
102-
public void surfaceCreated(SurfaceHolder holder) {
103-
mSurface = holder.getSurface();
100+
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
101+
mSurface = new Surface(surface);
104102
drawOutput();
105103
}
106104

107105
@Override
108-
public void surfaceDestroyed(SurfaceHolder holder) {
106+
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
107+
surface.release();
109108
mSurface = null;
109+
return true;
110110
}
111111

112112
@Override
113-
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
113+
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}
114114

115+
@Override
116+
public void onSurfaceTextureUpdated(SurfaceTexture surface) {}
115117
}

0 commit comments

Comments
 (0)