package com.weikou.beibeivideo.ui.mine;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.drawable.ColorDrawable;
|
import android.os.Handler;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.View.OnFocusChangeListener;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.view.inputmethod.InputMethodManager;
|
import android.widget.BaseAdapter;
|
import android.widget.Button;
|
import android.widget.EditText;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout.LayoutParams;
|
import android.widget.PopupWindow;
|
import android.widget.TextView;
|
|
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.RequestManager;
|
import com.lcjian.library.util.common.DateUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.lcjian.library.util.glide.GlideCircleTransform;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.CommentReply;
|
import com.weikou.beibeivideo.ui.media.VideoDetailActivity2;
|
|
import org.json.JSONObject;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import de.greenrobot.event.EventBus;
|
|
public class CommentMessageAdapter extends BaseAdapter {
|
|
private Context context;
|
private List<CommentReply> list;
|
private LayoutInflater inflater;
|
private RequestManager glideRequest;
|
|
public CommentMessageAdapter(Context context, List<CommentReply> list) {
|
this.list = list;
|
this.context = context;
|
glideRequest = Glide.with(context);
|
}
|
|
@Override
|
public int getCount() {
|
return list == null ? 0 : list.size();
|
}
|
|
@Override
|
public Object getItem(int position) {
|
return list.get(position);
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return position;
|
}
|
|
@Override
|
public View getView(int position, View view, ViewGroup parent) {
|
// 初始化控件
|
inflater = LayoutInflater.from(parent.getContext());
|
ViewHolder holder = null;
|
if (view == null) {
|
holder = new ViewHolder();
|
view = inflater.inflate(R.layout.comment_message_item, null);
|
holder.iv_portrait = (ImageView) view
|
.findViewById(R.id.iv_comment_msg_portrait);
|
holder.tv_nickName = (TextView) view
|
.findViewById(R.id.tv_msg_nickname);
|
holder.tv_my_comment = (TextView) view
|
.findViewById(R.id.tv_my_comment);
|
holder.tv_from_nickName = (TextView) view
|
.findViewById(R.id.tv_comment_from_who);
|
holder.tv_to_my_comment = (TextView) view
|
.findViewById(R.id.tv_comment_from_context);
|
holder.tv_TV_and_drama = (TextView) view
|
.findViewById(R.id.tv_comment_link);
|
holder.tv_reply_time = (TextView) view
|
.findViewById(R.id.tv_comment_time);
|
holder.tv_reply = (TextView) view
|
.findViewById(R.id.tv_comment_reply);
|
view.setTag(holder);
|
} else {
|
holder = (ViewHolder) view.getTag();
|
}
|
// 为控件赋值
|
CommentReply info = (CommentReply) getItem(position);
|
// 添加头像
|
try {
|
glideRequest.load(info.getUser().getPortrait())
|
.placeholder(R.drawable.ic_default)
|
.error(R.drawable.ic_default)
|
.transform(new GlideCircleTransform(context))
|
.into(holder.iv_portrait);// 回复者头像
|
} catch (IllegalArgumentException e) {
|
e.printStackTrace();
|
}
|
holder.tv_nickName.setText(StringUtils.isEmpty(info.getUser()
|
.getNickname()) ? "" : info.getUser().getNickname());// 回复者昵称
|
holder.tv_my_comment
|
.setText(StringUtils.isEmpty(info.getContent()) ? "" : info
|
.getContent());// 回复类容
|
|
holder.tv_from_nickName
|
.setText(info.getParent() == null ? StringUtils.isEmpty(info
|
.getComment().getUser().getNickname()) ? "" : "回复@"
|
+ info.getComment().getUser().getNickname()
|
: StringUtils.isEmpty(info.getParent().getComment()
|
.getUser().getNickname()) ? "" : "回复@"
|
+ info.getParent().getComment().getUser()
|
.getNickname());// 我的昵称
|
holder.tv_to_my_comment.setText(info.getParent() == null ? StringUtils
|
.isEmpty(info.getComment().getContent()) ? "" : info
|
.getComment().getContent() : StringUtils.isEmpty(info
|
.getParent().getComment().getContent()) ? "" : info.getParent()
|
.getComment().getContent());// 对我哪条类容的回复
|
|
holder.tv_TV_and_drama.setText(StringUtils.isEmpty(info.getComment()
|
.getVideo().getName()) ? "" : "来源:"
|
+ info.getComment().getVideo().getName());
|
|
holder.tv_reply.setText("回复");
|
holder.tv_reply_time
|
.setText(StringUtils.isEmpty(info.getCreatetime()) ? ""
|
: DateUtils.getRelativeTimeStr(new Date(Long
|
.parseLong(info.getCreatetime()))));
|
final CommentReply mInfo = info;
|
holder.tv_TV_and_drama.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
Intent intent = new Intent(arg0.getContext(), VideoDetailActivity2.class);
|
intent.putExtra("video_info", mInfo.getComment().getVideo());
|
intent.putExtra("from", "commentMsg");
|
arg0.getContext().startActivity(intent);
|
}
|
});
|
final View tv_mReply = holder.tv_reply;
|
holder.tv_reply.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
VideoReviewPopupWindow popupwindow = new VideoReviewPopupWindow(
|
arg0.getContext(), mInfo);
|
popupwindow.showPopupWindow(tv_mReply);
|
}
|
});
|
return view;
|
}
|
|
private static class ViewHolder {
|
ImageView iv_portrait;// 我的头像
|
TextView tv_nickName;// 我的昵称
|
TextView tv_my_comment;// 我发表的评论
|
TextView tv_from_nickName;// 谁对我的回复
|
TextView tv_to_my_comment;// 对我回复的类容
|
TextView tv_TV_and_drama;// 来自哪一部电视剧或者电影
|
TextView tv_reply_time;// 回复我的时间
|
TextView tv_reply;// 回复按钮
|
}
|
|
/**
|
* 自定义popupWindow
|
*
|
* @author weikou2015
|
*/
|
public class VideoReviewPopupWindow extends PopupWindow {
|
private LayoutInflater mInflater;
|
private View conentView;
|
private EditText tv_review_edit;
|
private Button tv_review_deliver;
|
private Context mContext;
|
private CommentReply info;
|
|
public VideoReviewPopupWindow(Context context, CommentReply info) {
|
this.mContext = context;
|
this.info = info;
|
mInflater = (LayoutInflater) context
|
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
SharedPreferences preferences = context.getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
isLogin = StringUtils
|
.isEmpty(preferences.getString("LoginUid", "")) ? false
|
: true;
|
conentView = mInflater.inflate(R.layout.video_review_popupwindow,
|
null);
|
this.setContentView(conentView);
|
|
this.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
|
// 软键盘不会挡着popupwindow
|
this.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
this.setWidth(LayoutParams.MATCH_PARENT);
|
this.setHeight(LayoutParams.WRAP_CONTENT);
|
|
this.setFocusable(true);
|
this.setOutsideTouchable(false);
|
ColorDrawable dw = new ColorDrawable(0000000000);
|
this.setBackgroundDrawable(dw);
|
this.update();
|
|
tv_review_edit = (EditText) conentView
|
.findViewById(R.id.tv_review_edit);
|
tv_review_deliver = (Button) conentView
|
.findViewById(R.id.tv_review_deliver);
|
|
tv_review_deliver.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
dismiss();
|
if (isLogin) {
|
setDeliver();
|
}
|
}
|
});
|
|
tv_review_edit
|
.setOnFocusChangeListener(new OnFocusChangeListener() {
|
|
@Override
|
public void onFocusChange(View v, boolean hasFocus) {
|
if (hasFocus) {
|
setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
|
}
|
}
|
});
|
|
}
|
|
/**
|
* 显示popupWindow
|
*
|
* @param parent
|
*/
|
public void showPopupWindow(View parent) {
|
if (!this.isShowing()) {
|
// this.showAsDropDown(parent, 0, 0, Gravity.BOTTOM);
|
this.showAtLocation(parent, Gravity.BOTTOM, 0, 0);
|
openKeyboard(new Handler(), 200);
|
} else {
|
this.dismiss();
|
}
|
}
|
|
/**
|
* 打开软键盘
|
*/
|
private void openKeyboard(Handler mHandler, int s) {
|
mHandler.postDelayed(new Runnable() {
|
@Override
|
public void run() {
|
InputMethodManager imm = (InputMethodManager) mContext
|
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
|
}
|
}, s);
|
}
|
|
/**
|
* 是否已经登录
|
*/
|
private boolean isLogin = true;// true为已经登录
|
|
/**
|
* 发布回复内容
|
*/
|
private void setDeliver() {
|
SharedPreferences preferences = mContext.getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
BeibeiVideoAPI.replayComment(mContext, preferences.getString(
|
"LoginUid", ""), info.getId(), info.getComment().getId(),
|
tv_review_edit.getEditableText().toString(),
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
org.apache.http.Header[] headers,
|
JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
EventBus.getDefault().post(1);
|
}
|
}
|
});
|
}
|
}
|
}
|