package com.wenming.weiswift.ui.common;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.wenming.weiswift.R;
import com.wenming.weiswift.entity.Status;
import com.wenming.weiswift.mvp.presenter.WeiBoArrowPresent;
import com.wenming.weiswift.mvp.presenter.imp.WeiBoArrowPresenterImp;
import com.wenming.weiswift.ui.login.fragment.home.weiboitem.WeiboAdapter;
import com.wenming.weiswift.utils.DensityUtil;
import com.wenming.weiswift.utils.ScreenUtil;
/**
* 主要负责popwindow的一系列初始化,包括背景,阴影动画,还有其中的textview 的初始化
* Created by wenmingvs on 16/6/11.
*/
public abstract class ArrowPopWindow extends BasePopupWindow {
public View mView;
public Context mContext;
public TextView mDeleteTextView;
public TextView mFavoriteTextView;
public TextView mFriendShipTextView;
public LinearLayout mDeleteLayout;
public LinearLayout mFollerLayout;
public WeiBoArrowPresent mWeiBoArrowPresent;
public Status mStatus;
public WeiboAdapter mWeiboAdapter;
public int mItemPosition;
public String mGroupName;
public ArrowPopWindow(Context context, Status status, WeiboAdapter weiboAdapter, int position, String groupName) {
super(context, (Activity) context, 300);
mContext = context;
mStatus = status;
mWeiboAdapter = weiboAdapter;
mItemPosition = position;
mGroupName = groupName;
mWeiBoArrowPresent = new WeiBoArrowPresenterImp(this);
initPopWindow(context);
mView = LayoutInflater.from(context).inflate(R.layout.home_weiboitem_arrow_popwindow, null);
this.setContentView(mView);
setUpListener();
}
public ArrowPopWindow(Context context, Status status) {
super(context, (Activity) context, 300);
mContext = context;
mStatus = status;
mWeiBoArrowPresent = new WeiBoArrowPresenterImp(this);
initPopWindow(context);
mView = LayoutInflater.from(context).inflate(R.layout.home_weiboitem_arrow_popwindow, null);
this.setContentView(mView);
setUpListener();
}
private void initPopWindow(Context context) {
int width = ScreenUtil.getScreenWidth(context) - DensityUtil.dp2px(mContext, 80);
this.setWindowLayoutMode(width, ViewGroup.LayoutParams.WRAP_CONTENT);
this.setWidth(width);
this.setHeight(1);
// 设置弹出窗口可点击
this.setFocusable(true);
// 设置窗口外部可点击
this.setOutsideTouchable(true);
this.setAnimationStyle(R.style.weiboitem_arrow_popwup_style);
// 设置drawable,必须得设置
this.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.home_weiboitem_arrow_pop_corner_bg));
// 设置点击外部隐藏window
this.setTouchInterceptor(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_OUTSIDE) {
dismiss();
return true;
}
return false;
}
});
}
private void setUpListener() {
mDeleteTextView = (TextView) mView.findViewById(R.id.pop_deleteweibo);
mFavoriteTextView = (TextView) mView.findViewById(R.id.pop_collectweibo);
mFriendShipTextView = (TextView) mView.findViewById(R.id.pop_disfollow);
mDeleteLayout = (LinearLayout) mView.findViewById(R.id.deleteLayout);
mFollerLayout = (LinearLayout) mView.findViewById(R.id.followLayout);
setFavoriteTextContext(mStatus, mFavoriteTextView);
setFriendShipContext(mStatus, mFriendShipTextView);
setDeleteViewContent(mStatus, mDeleteTextView);
}
public abstract void setDeleteViewContent(Status mStatus, TextView mDeleteTextView);
public abstract void setFriendShipContext(Status mStatus, TextView mFriendShipTextView);
public abstract void setFavoriteTextContext(Status mStatus, TextView mFavoriteTextView);
}