package com.hpw.myapp.widget.media;
import android.animation.Animator;
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.hpw.mvpframe.widget.GlideCircleTransform;
import com.hpw.myapp.R;
/**
* Created by hpw on 16/12/3.
*/
public class VerticalMediaControllView extends FrameLayout {
private Handler mHandler = new Handler();
private ImageView ic_head;
private TextView nickName;
private TextView titleName;
private ImageView ivIsFocus;
private Switch swRemind;
// Content View Elements
public ImageView ivBack;
public LinearLayout ll_four_container;
public ImageView theliveMore;
public CheckBox check_gift_switch;
public CheckBox check_live_pause;
public ImageView ivFullscreen;
public TextView theliveNum;
public LinearLayout ll_jubao_and_share;
public TextView tv_jubao;
public TextView tv_share;
public FrameLayout live_vertical_bottom;
private View rootView;
private OnVerticalControllListener onVerticalControllListener;
private OnFullScreenListener onFullScreenListener;
private View verMediaControll;
private View infoContainer;
public VerticalMediaControllView(Context context) {
this(context, null, 0);
}
public VerticalMediaControllView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public VerticalMediaControllView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initView(context);
initLister();
onCreate();
}
//init
private void initView(Context context) {
rootView = View.inflate(context, R.layout.widget_ver_controller, this);
ivBack = (ImageView) findViewById(R.id.iv_thelive_back);
verMediaControll = findViewById(R.id.verMediaControll);
infoContainer = findViewById(R.id.infoContainer);
ll_four_container = (LinearLayout) findViewById(R.id.ll_four_container);
theliveMore = (ImageView) findViewById(R.id.iv_thelive_more);
check_gift_switch = (CheckBox) findViewById(R.id.check_gift_switch);
check_live_pause = (CheckBox) findViewById(R.id.check_live_pause);
ivFullscreen = (ImageView) findViewById(R.id.iv_thelive_fullscreen);
theliveNum = (TextView) findViewById(R.id.tv_thelive_num);
ll_jubao_and_share = (LinearLayout) findViewById(R.id.ll_jubao_and_share);
tv_jubao = (TextView) findViewById(R.id.tv_jubao);
tv_share = (TextView) findViewById(R.id.tv_share);
live_vertical_bottom = (FrameLayout) findViewById(R.id.live_vertical_bottom);
//info
ic_head = (ImageView) findViewById(R.id.ic_head);
nickName = (TextView) findViewById(R.id.nickName);
titleName = (TextView) findViewById(R.id.title);
ivIsFocus = (ImageView) findViewById(R.id.iv_thelive_focus);
swRemind = (Switch) findViewById(R.id.switchview_remind);
}
private void initLister() {
ivFullscreen.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (onFullScreenListener != null) {
onFullScreenListener.onVerticalClickFullScreen();
}
//横屏显示
onDestroy();
}
});
ivBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (onVerticalControllListener != null) {
onVerticalControllListener.onVerticalClickBack();
}
}
});
theliveMore.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ll_jubao_and_share.setVisibility(VISIBLE);
show();
}
});
}
//data
public void setData(String view, String avatar, String nick, String title, int follow) {
theliveNum.setText("" + view);
Glide.with(getContext()).load("" + avatar).transform(new GlideCircleTransform(getContext()))
.into(ic_head);
nickName.setText("" + nick);
titleName.setText("" + title);
ivIsFocus.setSelected(follow > 0);
swRemind.setChecked(true);
}
//life recycle
public void onCreate() {
show();
//info // TODO: 2016/11/29
infoContainer.setVisibility(VISIBLE);
}
public void onDestroy() {
verMediaControll.setVisibility(INVISIBLE);
theliveNum.setVisibility(VISIBLE);
mHandler.removeCallbacksAndMessages(null);
//// TODO: 2016/11/29
infoContainer.setVisibility(GONE);
}
//action
public boolean onTouchEvent(boolean isVertical, MotionEvent event) {
if (isVertical) {
show();
}
return onTouchEvent(event);
}
private Runnable hiddenControll = new Runnable() {
@Override
public void run() {
verMediaControll.animate().alpha(0).setDuration(1000).setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
hide();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
}).start();
}
};
private void hide() {
verMediaControll.setAlpha(1f);
verMediaControll.setVisibility(INVISIBLE);
theliveNum.setVisibility(VISIBLE);
}
private void show() {
ll_jubao_and_share.setVisibility(GONE);
verMediaControll.setVisibility(VISIBLE);
mHandler.removeCallbacks(hiddenControll);
mHandler.postDelayed(hiddenControll, 3000);
}
//listener
public void setOnVerticalControllListener(OnVerticalControllListener onVerticalControllListener) {
this.onVerticalControllListener = onVerticalControllListener;
}
public interface OnVerticalControllListener {
void onVerticalClickPause();
void onVerticalClickStart();
void onVerticalClickBack();
}
public void setOnFullScreenListener(OnFullScreenListener onFullScreenListener) {
this.onFullScreenListener = onFullScreenListener;
}
public interface OnFullScreenListener {
void onVerticalClickFullScreen();
}
}