package com.king.tv.mvp.presenter;
import com.king.base.util.LogUtils;
import com.king.tv.App;
import com.king.tv.bean.Room;
import com.king.tv.bean.RoomLine;
import com.king.tv.mvp.base.BasePresenter;
import com.king.tv.mvp.view.IRoomView;
import rx.Observer;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
/**
* @author Jenly <a href="mailto:jenly1314@gmail.com">Jenly</a>
* @since 2017/3/7
*/
public class RoomPresenter extends BasePresenter<IRoomView> {
public RoomPresenter(App app) {
super(app);
}
public void enterRoom(String uid){
enterRoom(uid,false);
}
public void enterRoom(String uid,final boolean isShowing){
if(isViewAttached())
getView().showProgress();
getAppComponent().getAPIService()
.enterRoom(uid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Room>() {
@Override
public void onCompleted() {
if(isViewAttached())
getView().onCompleted();
}
@Override
public void onError(Throwable e) {
if(isViewAttached())
getView().onError(e);
}
@Override
public void onNext(Room room) {
LogUtils.d("Response:" + room);
if(isViewAttached())
getView().enterRoom(room);
if(room!= null){
String url =null;
// RoomLine roomLine = room.getRoom_lines().get(0);
RoomLine roomLine = room.getLive().getWs();
RoomLine.FlvBean flv = roomLine.getFlv();
LogUtils.d("flv:" + flv);
if(flv!=null){
url = flv.getValue(isShowing).getSrc();
}else{
url = roomLine.getHls().getValue(isShowing).getSrc();
}
if(isViewAttached())
getView().playUrl(url);
}
}
});
}
}