[Android] Simplify src assignment

This commit is contained in:
Baris Sencan 2015-11-13 16:56:40 -08:00
parent a52f1d5dcf
commit 93b426c753
2 changed files with 34 additions and 42 deletions

View File

@ -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);
}
}

View File

@ -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)