package com.pan.simplepicture.presenter; import android.content.Context; import android.text.TextUtils; import com.avos.avoscloud.AVException; import com.avos.avoscloud.SaveCallback; import com.pan.simplepicture.bean.Episode; import com.pan.simplepicture.bean.Episodes; import com.pan.simplepicture.bean.PlayAddress; import com.pan.simplepicture.bean.PlayUrl; import com.pan.simplepicture.bean.VideoSources; import com.pan.simplepicture.bean.Videos; import com.pan.simplepicture.bean.YouKu; import com.pan.simplepicture.model.PlayModel; import com.pan.simplepicture.model.impl.IPlayModel; import com.pan.simplepicture.utils.StringUtils; import com.pan.simplepicture.view.impl.IPlayView; import java.util.ArrayList; import java.util.List; import java.util.Map; import retrofit.Callback; import retrofit.Response; import retrofit.Retrofit; /** * Created by sysadminl on 2015/12/9. */ public class PlayPresenter extends BasePresenter<IPlayView> { private IPlayModel mIPlayModel; public PlayPresenter() { mIPlayModel = new PlayModel(); } public void getVideoUrl(final Context mContext, final Map<String, String> params) { mIPlayModel.loadVideoUrl(params, new Callback<PlayUrl>() { @Override public void onResponse(Response<PlayUrl> response, Retrofit retrofit) { if (mView == null) return; if (response == null || response.body() == null || response.body().player == null) return; mView.setVideoSource(response.body().player); play(mContext); } @Override public void onFailure(Throwable t) { } }); } public void play(Context mContext) { if (mView != null) { mView.sendPlayMessage(mView.getFlag() == true ? true : mIPlayModel.isAutoPlay(mContext)); } } public void getBaozouVideoInfo(final Context mContext, final Map<String, String> params) { mIPlayModel.loadBaozouUrl(params, new Callback<Episodes>() { @Override public void onResponse(Response<Episodes> response, Retrofit retrofit) { if (mView == null) return; if (response == null || response.body() == null || response.body().episodes == null || response.body().episodes.size() == 0) return; try { // mView.setVideoSource(response.body().episodes.get(0).videos.get(0).video_sources.get(0).source_url); // play(mContext); List<VideoSources> list = new ArrayList<VideoSources>(); for (Episode episode : response.body().episodes) { for (Videos videos : episode.videos) { for (VideoSources video_sources : videos.video_sources) { video_sources.type = Integer.parseInt(params.get("type")); video_sources.name = videos.title; video_sources.plays_count = videos.plays_count; video_sources.des = videos.description; video_sources.smallPic = videos.thumbnail.thumbnail.medium.url; video_sources.bigPic = videos.thumbnail.thumbnail.big.url; list.add(video_sources); } } } mView.setupViewPager(list); } catch (Exception e) { e.printStackTrace(); } } @Override public void onFailure(Throwable t) { } }); } public void getYoukuVideoInfo(Map<String, String> params) { mIPlayModel.parseYoukuHtml(params, new com.pan.simplepicture.inter.Callback<YouKu>() { @Override public void onSccuss(YouKu data) { if (mView == null) return; mView.setInfo(data); } @Override public void onFaild() { } }); } public void getBaozouRealUrl(final Context mContext, final Map<String, String> params) { mIPlayModel.loadBaozouAddress(params, new Callback<PlayAddress>() { @Override public void onResponse(Response<PlayAddress> response, Retrofit retrofit) { if (mView == null) return; try { mView.setVideoSource(response.body().V.get(0).U); } catch (Exception e) { mView.setVideoSource(params.get("url")); } play(mContext); } @Override public void onFailure(Throwable t) { } }); } public void sendComment(final Map<String, String> params) { mIPlayModel.saveComment(params, new SaveCallback() { @Override public void done(AVException e) { if (e == null && mView != null) { mView.showCommentSuccess(); } } }); } public void getRealAddress(final Context mContext, final Map<String, String> params) { mIPlayModel.loadRealAddress(params, new Callback<String>() { @Override public void onResponse(Response<String> response, Retrofit retrofit) { if (mView == null) return; if (response == null || TextUtils.isEmpty(response.body())) return; mView.setVideoSource(StringUtils.getRealUrl(response.body())); play(mContext); } @Override public void onFailure(Throwable t) { } }); } }