//package com.wasu.cs.widget;
//
//import java.util.ArrayList;
//import java.util.List;
//
//import android.content.Context;
//import android.graphics.Color;
//import android.media.MediaPlayer;
//import android.text.TextUtils;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.widget.ImageView;
//import android.widget.RelativeLayout;
//import cn.com.wasu.main.R;
//
//import com.wasu.comp.videoview.IMediaListener;
//import com.wasu.comp.videoview.UrlProperty;
//import com.wasu.cs.model.DemandProgram;
//import com.wasu.cs.model.HomeColumnModel;
//import com.wasu.cs.model.SpecialColumnModel.AssetModel;
//import com.wasu.cs.model.SpecialColumnModel.TagModel;
//import com.wasu.cs.model.SpecialColumnModel.VideoModel;
//import com.wasu.cs.widget.mediacontrol.MediaController;
//import com.wasu.cs.widget.videoview.WasuPlayerView;
//import com.wasu.module.image.ImageFetcherModule;
//import com.wasu.module.msgqueue.MsgHandler;
//import com.wasu.module.msgqueue.MsgIdConstant;
//import com.wasu.module.msgqueue.MsgQueueModule;
//import com.wasu.util.StringUtils;
//
////import android.widget.VideoView;
//
///**
// * 
// * @ClassName: MainHPageItem22
// * @Description: 内容区视频播放小窗口的Item
// * @author 海迪
// * @date 2015年7月8日 下午6:26:55
// * 
// */
//public class MainHPageItemVideo extends MainHPageItemBase implements Runnable, IMediaListener, MsgHandler {
//
//	private static final int ACTION_IDLE = 1 << 0;
//	private static final int ACTION_PLAY = 1 << 1;
//	private static final int ACTION_PREPARE = 1 << 2;
//	private static final int ACTION_PAUSE = 1 << 3;
//	private static final int ACTION_RESUME = 1 << 4;
//	private static final int ACTION_STOP = 1 << 5;
//
//	private String layout;
//	private String jsonUrl;
//
//	private String firstImgUrl;
//	private int mCurrentIndex = 0;
//	private double mCurrentPostion = -1;
//
//	private RelativeLayout mContainer,videoContainer = null;
//	private ImageView mIconPlay = null;
//	private ImageView contFirstImgView;
//	private WasuPlayerView mVideoView;
//
//	private ArrayList<AssetModel> mAssetList = null;
//	private int mCurrentStatus = ACTION_IDLE;
//	private int mTargetStatus = ACTION_IDLE;
//	private Context context;
//	private DemandProgram mDemandInfo;
//	private String mDomain;
//
//	public MainHPageItemVideo(Context context) {
//		super(context);
//		this.context = context;
//		init(context);
//	}
//
//	private void initVideo() {
//		mVideoView = new WasuPlayerView(context, "");
//		mVideoView.setExcludeOption(MediaController.DISPLAY_PROMPT_EXIT_AD);
//		mVideoView.addObserver(this);
//		mVideoView.setAnchorView(videoContainer);
//
//	}
//
//
//
//	private void init(Context context) {
//		LayoutInflater.from(context).inflate(R.layout.main_hpage_item_video, this);
//		setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//
//		mContainer = (RelativeLayout) findViewById(R.id.item_box);
//		mContainer.setBackgroundColor(Color.TRANSPARENT);
//		contFirstImgView = (ImageView) findViewById(R.id.cont_first_img);
//		mIconPlay = (ImageView) findViewById(R.id.cont_status_icon);
//		videoContainer= (RelativeLayout) findViewById(R.id.video_container);
//		// mVideoView = new WasuCompFactory().createVideoView(context);
//
//		/** revise by duhuanbiao, 某些盒子底层videoView会把覆盖在上层的圆角切掉，所以预留4个像素显示圆角 **/
////		RelativeLayout.LayoutParams layoutParam = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
////		int magin = getResources().getDimensionPixelSize(R.dimen.d_4dp);
////		layoutParam.setMargins(magin, magin, magin, magin);
//		// mVideoView.addObserver(this);
//		
////		mContainer.addView(mVideoView, 0, layoutParam);
//		initVideo();
//
//		MsgQueueModule.getInstance().addMsgHandler(MsgIdConstant.MSGID_APP_MIN + 1, this);
//	}
//
//	@Override
//	public boolean handleMsg(int arg0, int arg1, String arg2, Object arg3) {
//		if (arg3 != null && arg3 instanceof AssetModel) {
//			AssetModel assetModel = (AssetModel) arg3;
//			if (mAssetList != null && !mAssetList.isEmpty()) {
//				int count = mAssetList.size();
//				for (int i = 0; i < count; i++) {
//					if (assetModel.getId() == mAssetList.get(i).getId()) {
//						mCurrentIndex = i;
//						mCurrentPostion = assetModel.getCurrentPosition();
//					}
//				}
//			}
//		}
//		return true;
//	}
//
//	@Override
//	public void onClick(View v) {
//		mVideoView.toggleFullScreen();
//		// if (mVideoView.isPlaying() && mAssetList.size() > 0) {
//		// double position = mVideoView.getCurrentPosition();
//		// mAssetList.get(mCurrentIndex).setCurrentPosition(position);
//		//
//		// Intent intent = new Intent();
//		// intent.putParcelableArrayListExtra(IntentConstant.PLAY_INFO.value(),
//		// mAssetList);
//		// intent.putExtra(IntentConstant.PLAY_INDEX.value(), mCurrentIndex);
//		// IntentMap.startIntent(getContext(), intent, getLayout(),
//		// getJsonUrl(), null);
//		// }
//	}
//
//	@Override
//	protected void onWindowVisibilityChanged(int visibility) {
//		super.onWindowVisibilityChanged(visibility);
//
//		if (ACTION_IDLE == mCurrentStatus || ACTION_PAUSE == mCurrentStatus) {
//			return;
//		}
//		if (View.VISIBLE == visibility) {
//			if (ACTION_STOP == mCurrentStatus) {
//				mTargetStatus = ACTION_PLAY;
//				post(this);
//			}
//		} else {
//			mTargetStatus = ACTION_STOP;
//			post(this);
//		}
//	}
//
//	/**
//	 * 改变播放状态
//	 * 
//	 * @param isChange
//	 */
//	public void changeStatus(boolean isChange) {
//		if (ACTION_IDLE == mCurrentStatus) {
//			return;
//		}
//
//		if (isChange) {
//			mTargetStatus = ACTION_RESUME;
//			postDelayed(this, 1000);
//		} else {
//			mTargetStatus = ACTION_PAUSE;
//			post(this);
//		}
//	}
//
//	/**
//	 * 检测视频窗口被覆盖并处理
//	 */
//	public void detect() {
//		changeStatus(!isCover());
//	}
//
//	@Override
//	public void focusChange(View v, boolean hasFocus) {
//		if (hasFocus) {
//			mContainer.setBackgroundResource(R.drawable.tv_select_focus);
//			if (ACTION_IDLE == mCurrentStatus) {
//				mTargetStatus = ACTION_PLAY;
//				mContainer.postDelayed(this, 3000);
//			}
//		} else {
//			mContainer.setBackgroundResource(0);
//			if (ACTION_IDLE == mCurrentStatus) {
//				mTargetStatus = ACTION_IDLE;
//			} else if (ACTION_PREPARE == mCurrentStatus) {
//				mTargetStatus = ACTION_PAUSE;
//			}
//		}
//	}
//
//	@Override
//	public String getLayout() {
//		return layout;
//	}
//
//	@Override
//	public String getJsonUrl() {
//		return jsonUrl;
//	}
//
//	@Override
//	public int getRowspan() { // 行
//		return 2;
//	}
//
//	@Override
//	public int getColspan() { // 列
//		return 2;
//	}
//
//	@Override
//	public boolean isFrontItem() {
//		return false;
//	}
//
//	@Override
//	public boolean isVideoItem() {
//		return true;
//	}
//
//	private HomeColumnModel cm;
//
//	@Override
//	public HomeColumnModel getData() {
//		return cm;
//	}
//
//	@Override
//	public void initData(HomeColumnModel cm) {
//		this.cm = cm;
//
//		if (cm == null)
//			return;
//
//		layout = cm.getLayout();
//		jsonUrl = cm.getJsonUrl();
//		if (cm.getPicUrlList().size() > 0) {
//			firstImgUrl = cm.getPicUrlList().get(0).getBottomPic();
//		}
//
//		if (contFirstImgView != null && !StringUtils.isBlank(firstImgUrl)) {
//			contFirstImgView.setVisibility(View.VISIBLE);
//			ImageFetcherModule.getInstance().attachImage(firstImgUrl, contFirstImgView, getResources().getDimensionPixelSize(R.dimen.d_8dp));
//		}
//
//		mAssetList = cm.getAssetList();
//	}
//
//	private String getPlayUrl(int rate) {
//		if (mAssetList == null || mAssetList.isEmpty()) {
//			return null;
//		}
//
//		if (mCurrentIndex < 0 || mCurrentIndex >= mAssetList.size()) {
//			mCurrentIndex = 0;
//		}
//		AssetModel assetModel = mAssetList.get(mCurrentIndex);
//		List<TagModel> tagModels = assetModel.getTagList();
//		if (tagModels.size() < 1) {
//			mCurrentIndex += 1;
//			return getPlayUrl(rate);
//		}
//
//		List<VideoModel> videoModels = null;
//		for (TagModel tagModel : tagModels) {
//			// if (tagModel.getRate() != rate) {
//			// continue;
//			// }
//
//			videoModels = tagModel.getVideoList();
//			if (videoModels != null && videoModels.size() > 0 && videoModels.get(0).getPlayUrls().size() > 0) {
//				return videoModels.get(0).getPlayUrls().get(0);
//			}
//		}
//		return null;
//	}
//
//	@Override
//	public void run() {
//		if (mVideoView == null) {
//			return;
//		}
//
//		if (ACTION_PLAY == mTargetStatus) {
//			mTargetStatus = ACTION_IDLE;
//			String playUrl = getPlayUrl(640000);
//			if (TextUtils.isEmpty(playUrl)) {
//				return;
//			}
//
//			mVideoView.setVideoPath(playUrl, new UrlProperty());
//			mVideoView.seekTo((int) mCurrentPostion);
//			mCurrentStatus = ACTION_PREPARE;
//			mVideoView.start();
//		} else if (ACTION_PAUSE == mTargetStatus) {
//			if (mVideoView.isPlaying()) {
//				mTargetStatus = ACTION_IDLE;
//				mCurrentStatus = ACTION_PAUSE;
//				mCurrentPostion = mVideoView.getCurrentPosition();
//				contFirstImgView.setVisibility(View.VISIBLE);
//				mVideoView.pause();
//			}
//		} else if (ACTION_RESUME == mTargetStatus) {
//			mTargetStatus = ACTION_IDLE;
//			if (!isCover()) {
//				mVideoView.start();
//				mCurrentStatus = ACTION_PLAY;
//			}
//		} else if (ACTION_STOP == mTargetStatus) {
//			mCurrentStatus = ACTION_STOP;
//			mTargetStatus = ACTION_IDLE;
//			contFirstImgView.setVisibility(View.VISIBLE);
//			mVideoView.stopPlayback();
//		}
//	}
//
//	@Override
//	public void onWasuPlayLimit(int arg0, String arg1) {
//	}
//
//	@Override
//	public void onWasuError(int arg0, String arg1) {
//	}
//
//	@Override
//	public void onStop(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onStatusChanged(MediaPlayer arg0, int arg1) {
//		if (IMediaListener.STATE_PLAYING == arg1) {
//			contFirstImgView.setVisibility(View.GONE);
//			mIconPlay.setVisibility(View.GONE);
//		}
//	}
//
//	@Override
//	public void onStart(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onSeeking(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onSeekComplete(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onResume(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onProgress(int arg0, int arg1, int arg2) {
//		mCurrentPostion = arg0;
//	}
//
//	@Override
//	public void onPreparing(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onPrepareComplete(MediaPlayer arg0) {
//		if (ACTION_PAUSE == mTargetStatus) {
//			post(this);
//			return;
//		}
//
//		if (ACTION_PREPARE == mCurrentStatus) {
//			mCurrentStatus = ACTION_PLAY;
//			if (mCurrentPostion > 0) {
//				contFirstImgView.setVisibility(View.VISIBLE);
//				mVideoView.seekTo((int) mCurrentPostion);
//				mCurrentPostion = 0;
//				return;
//			}
//		}
//	}
//
//	@Override
//	public void onPause(MediaPlayer arg0) {
//	}
//
//	@Override
//	public void onInfo(MediaPlayer arg0, int arg1, int arg2) {
//	}
//
//	@Override
//	public void onError(MediaPlayer arg0, int arg1, int arg2) {
//	}
//
//	@Override
//	public void onCompletion(MediaPlayer arg0) {
//		mCurrentIndex += 1;
//		mCurrentPostion = 0;
//		mTargetStatus = ACTION_PLAY;
//		mContainer.post(MainHPageItemVideo.this);
//	}
//
//	@Override
//	public void onAdStatusChanged(int arg0, int arg1) {
//	}
//
//	@Override
//	public boolean isAliRecItem() {
//		// TODO Auto-generated method stub
//		return false;
//	}
//
//}
