package com.jaydenxiao.androidfire.ui.zone.widget; import android.app.Dialog; import android.content.Context; import android.text.ClipboardManager; import android.view.Display; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.TextView; import com.jaydenxiao.androidfire.R; import com.jaydenxiao.androidfire.ui.zone.bean.CommentItem; import com.jaydenxiao.androidfire.ui.zone.presenter.CircleZonePresenter; import com.jaydenxiao.common.baseapp.AppCache; import com.jaydenxiao.common.commonutils.FormatUtil; /** * des:评论长按对话框,保护复制和删除 * Created by xsf * on 2016.07.11:11 */ public class CommentDialog extends Dialog implements View.OnClickListener { private Context mContext; private CircleZonePresenter mPresenter; private CommentItem mCommentItem; private int mCirclePosition,commentPosition; public CommentDialog(Context context,CircleZonePresenter presenter, CommentItem commentItem, int circlePosition,int commentPosition) { super(context, R.style.CustomProgressDialog); mContext = context; this.mPresenter = presenter; this.mCommentItem = commentItem; this.mCirclePosition = circlePosition; this.commentPosition=commentPosition; setCancelable(true); View view = LayoutInflater.from(context).inflate(R.layout.dialog_comment, null); setContentView(view); initWindowParams(); initView(); } private void initWindowParams() { Window dialogWindow = getWindow(); // 获取屏幕宽、高用 WindowManager wm = (WindowManager) mContext .getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); WindowManager.LayoutParams lp = dialogWindow.getAttributes(); lp.width = (int) (display.getWidth() * 0.65); // 宽度设置为屏幕的0.65 dialogWindow.setGravity(Gravity.CENTER); dialogWindow.setAttributes(lp); } private void initView() { TextView copyTv = (TextView) findViewById(R.id.copyTv); copyTv.setOnClickListener(this); TextView deleteTv = (TextView) findViewById(R.id.deleteTv); if (mCommentItem != null && AppCache.getInstance().getUserId().equals( mCommentItem.getUserId())) { deleteTv.setVisibility(View.VISIBLE); } else { deleteTv.setVisibility(View.GONE); } deleteTv.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.copyTv: if (mCommentItem != null) { ClipboardManager clipboard = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE); clipboard.setText(mCommentItem.getContent()); } dismiss(); break; case R.id.deleteTv: if (mPresenter != null && mCommentItem != null) { mPresenter.deleteComment(mCirclePosition, FormatUtil.checkValue(mCommentItem.getId()),commentPosition); } dismiss(); break; default: break; } } }