Commit 93b426c7 authored by Baris Sencan's avatar Baris Sencan
Browse files

[Android] Simplify src assignment

parent a52f1d5d
Loading
Loading
Loading
Loading
+21 −11
Changes for android/src/main/java/com/brentvatne/react/ReactVideoView.java: 21 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -49,8 +49,9 @@ public class ReactVideoView extends ScalableVideoView implements MediaPlayer.OnP
    private Handler mProgressUpdateHandler = new Handler();
    private Runnable mProgressUpdateRunnable = null;

    private String mUriString = null;
    private boolean mIsNetwork = false;
    private String mSrcUriString = null;
    private String mSrcType = "mp4";
    private boolean mSrcIsNetwork = false;
    private ScalableType mResizeMode = ScalableType.LEFT_TOP;
    private boolean mRepeat = false;
    private boolean mPaused = false;
@@ -100,9 +101,10 @@ public class ReactVideoView extends ScalableVideoView implements MediaPlayer.OnP
        }
    }

    public void setSrc(final String uriString, final boolean isNetwork) throws IOException {
        mUriString = uriString;
        mIsNetwork = isNetwork;
    public void setSrc(final String uriString, final String type, final boolean isNetwork) {
        mSrcUriString = uriString;
        mSrcType = type;
        mSrcIsNetwork = isNetwork;

        mMediaPlayerValid = false;
        mVideoDuration = 0;
@@ -110,6 +112,7 @@ public class ReactVideoView extends ScalableVideoView implements MediaPlayer.OnP
        initializeMediaPlayerIfNeeded();
        mMediaPlayer.reset();

        try {
            if (isNetwork) {
                setDataSource(uriString);
            } else {
@@ -119,6 +122,18 @@ public class ReactVideoView extends ScalableVideoView implements MediaPlayer.OnP
                        mThemedReactContext.getPackageName()
                ));
            }
        } catch (Exception e) {
            e.printStackTrace();
            return;
        }

        WritableMap src = Arguments.createMap();
        src.putString(ReactVideoViewManager.PROP_SRC_URI, uriString);
        src.putString(ReactVideoViewManager.PROP_SRC_TYPE, type);
        src.putBoolean(ReactVideoViewManager.PROP_SRC_IS_NETWORK, isNetwork);
        WritableMap event = Arguments.createMap();
        event.putMap(ReactVideoViewManager.PROP_SRC, src);
        mEventEmitter.receiveEvent(getId(), Events.EVENT_LOAD_START.toString(), event);

        prepareAsync(this);
    }
@@ -247,11 +262,6 @@ public class ReactVideoView extends ScalableVideoView implements MediaPlayer.OnP
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();

        try {
            setSrc(mUriString, mIsNetwork);
        } catch (Exception e) {
            e.printStackTrace();
        }
        setSrc(mSrcUriString, mSrcType, mSrcIsNetwork);
    }
}
+5 −23
Changes for android/src/main/java/com/brentvatne/react/ReactVideoViewManager.java: 5 added lines, 23 removed lines.
Original line number Diff line number Diff line
@@ -63,29 +63,11 @@ public class ReactVideoViewManager extends SimpleViewManager<ReactVideoView> {

    @ReactProp(name = PROP_SRC)
    public void setSrc(final ReactVideoView videoView, @Nullable ReadableMap src) {
        final ThemedReactContext themedReactContext = (ThemedReactContext) videoView.getContext();
        final RCTEventEmitter eventEmitter = themedReactContext.getJSModule(RCTEventEmitter.class);

        try {
            final String uriString = src.getString(PROP_SRC_URI);
            final String type = src.getString(PROP_SRC_TYPE);
            final boolean isNetwork = src.getBoolean(PROP_SRC_IS_NETWORK);

            // TODO: Carry this inside videoView.setSrc
            WritableMap writableSrc = Arguments.createMap();
            writableSrc.putString(PROP_SRC_URI, uriString);
            writableSrc.putString(PROP_SRC_TYPE, type);
            writableSrc.putBoolean(PROP_SRC_IS_NETWORK, isNetwork);
            WritableMap event = Arguments.createMap();
            event.putMap(PROP_SRC, writableSrc);
            eventEmitter.receiveEvent(videoView.getId(), Events.EVENT_LOAD_START.toString(), event);

            videoView.setSrc(uriString, isNetwork);
        } catch (Exception e) {
            // TODO: Send onError
            // TODO: Carry inside videoView.setSrc
            e.printStackTrace();
        }
        videoView.setSrc(
                src.getString(PROP_SRC_URI),
                src.getString(PROP_SRC_TYPE),
                src.getBoolean(PROP_SRC_IS_NETWORK)
        );
    }

    @ReactProp(name = PROP_RESIZE_MODE)