package com.anthony.app.module.webview;
import android.app.Dialog;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.anthony.app.R;
import com.anthony.app.dagger.DaggerApplication;
import com.anthony.library.data.bean.NewsItem;
import com.anthony.library.data.dao.NewsItemDao;
import java.util.HashMap;
import java.util.List;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.onekeyshare.OnekeyShare;
import cn.sharesdk.tencent.qzone.QZone;
import cn.sharesdk.wechat.favorite.WechatFavorite;
public class CommentView extends RelativeLayout {
private Context mContext;
private RelativeLayout mLayoutEditComment;
private ImageView mImgStar;
private boolean isStar = false;
private RelativeLayout mLayoutIcShare;
private RelativeLayout mLayoutIcStar;
private String mTitle = "";
private String mUrl = "";
private String mImageUrl = "";
private String mDescription = "";
private NewsItemDao dao;
private NewsItem mItem;
public CommentView(Context context) {
super(context);
mContext = context;
initView();
}
public CommentView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public CommentView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mContext = context;
initView();
}
private void initView() {
dao = new NewsItemDao(DaggerApplication.get(mContext).getDataRepository().getDatabaseHelper());
LayoutInflater.from(mContext).inflate(R.layout.prj_layout_comment, this);
mLayoutEditComment = (RelativeLayout) findViewById(R.id.layout_edit_comment);
mLayoutEditComment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showCommentEditBox();
}
});
mImgStar = (ImageView) findViewById(R.id.ic_star);
mLayoutIcStar = (RelativeLayout) findViewById(R.id.layout_ic_star);
mLayoutIcStar.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (isStar) {
mImgStar.setImageResource(R.mipmap.prj_ic_star);
mItem.setStar(false);
} else {
mImgStar.setImageResource(R.mipmap.prj_ic_star_solid);
mItem.setStar(true);
}
dao.update(mItem);
isStar = !isStar;
}
});
mLayoutIcShare = (RelativeLayout) findViewById(R.id.layout_ic_share);
mLayoutIcShare.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showShare();
}
});
}
public void setTitle(String mTitle) {
this.mTitle = mTitle;
}
public void setUrl(String mUrl) {
this.mUrl = mUrl;
List<NewsItem> list = dao.queryByColumn("url", mUrl);
if (list != null && list.size() > 0) {
mItem = list.get(0);
if (mItem.isStar()) {
mImgStar.setImageResource(R.mipmap.prj_ic_star_solid);
} else {
mImgStar.setImageResource(R.mipmap.prj_ic_star);
}
}
}
public void setImageUrl(String mImageUrl) {
this.mImageUrl = mImageUrl;
}
public void setDescription(String mDescription) {
this.mDescription = mDescription;
}
private void showCommentEditBox() {
final Dialog dialog = new Dialog(mContext, R.style.dialog_comment);
View contentView = LayoutInflater.from(mContext).inflate(R.layout.prj_dialog_comment, null);
dialog.setContentView(contentView);
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.width = WindowManager.LayoutParams.FILL_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialogWindow.setGravity(Gravity.BOTTOM);
dialogWindow.setAttributes(lp);
final EditText mEditTextComment = (EditText) contentView.findViewById(R.id.edit_comment);
TextView submit = (TextView) contentView.findViewById(R.id.btn_commit);
submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
String content = mEditTextComment.getText().toString();
if (TextUtils.isEmpty(content)) {
// ToastUtil.getInstance().showToast("评论内容不能为空");
Toast.makeText(mContext, "评论内容不能为空", Toast.LENGTH_SHORT).show();
return;
}
//TODO: 这里提交HTTP请求上传评论
}
});
contentView.findViewById(R.id.btn_close).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditTextComment.getWindowToken(), 0);
}
});
dialog.show();
}
private void showShare() {
OnekeyShare oks = new OnekeyShare();
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(mTitle);
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl(mUrl);
// text是分享文本,所有平台都需要这个字段
oks.setText(mDescription);
// imageUrl是图片的网络路径,新浪微博、人人网、QQ空间、微信的两个平台、Linked-In支持此字段
oks.setImageUrl(mImageUrl);
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl(mUrl);
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
oks.setComment("我正在使用" + getResources().getString(R.string.app_name) + ",快来试试吧");
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(getResources().getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl(mUrl);
// latitude是维度数据,仅在新浪微博、腾讯微博和Foursquare使用
// oks.setLatitude(23.122619f);
// longitude是经度数据,仅在新浪微博、腾讯微博和Foursquare使用
// oks.setLongitude(113.372338f);
// 是否直接分享(true则直接分享)
oks.setSilent(false);
// 指定分享平台,和silent一起使用可以直接分享到指定的平台
// oks.setPlatform(platform);
// 去除注释可通过OneKeyShareCallback来捕获快捷分享的处理结果
oks.setCallback(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
// ToastUtil.getInstance().showToast("分享成功");
Toast.makeText(mContext, "分享成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
// ToastUtil.getInstance().showToast("分享失败");
Toast.makeText(mContext, "分享失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancel(Platform platform, int i) {
// ToastUtil.getInstance().showToast("取消分享");
Toast.makeText(mContext, "取消分享", Toast.LENGTH_SHORT).show();
}
});
//通过OneKeyShareCallback来修改不同平台分享的内容
// oks.setShareContentCustomizeCallback(new ShareContentCustomizeDemo());
oks.addHiddenPlatform(QZone.NAME);
oks.addHiddenPlatform(WechatFavorite.NAME);
oks.show(mContext);
}
// private void shareTest() {
// OnekeyShare oks = new OnekeyShare();
// // 分享时Notification的图标和文字
//// oks.setNotification(R.drawable.ic_launcher, getContext().getString(R.string.app_name));
// // address是接收人地址,仅在信息和邮件使用
//// oks.setAddress(“12345678901″);
// // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
// oks.setTitle("TRS移动模板");
// // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
// oks.setTitleUrl("http://www.trs.com.cn");
// // text是分享文本,所有平台都需要这个字段
// oks.setText("我正在使用TRS移动模板,快来试试吧");
// // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
//// oks.setImagePath("http://www.trs.com.cn/images/trslogo.png");
// // imageUrl是图片的网络路径,新浪微博、人人网、QQ空间、
// // 微信的两个平台、Linked-In支持此字段
// oks.setImageUrl("http://www.trs.com.cn/images/trslogo.png");
// // url仅在微信(包括好友和朋友圈)中使用
// oks.setUrl("http://www.trs.com.cn");
// // appPath是待分享应用程序的本地路劲,仅在微信中使用
//// oks.setAppPath(MainActivity.TEST_IMAGE);
// // comment是我对这条分享的评论,仅在人人网和QQ空间使用
// oks.setComment("我正在使用TRS移动模板,快来试试吧");
// // site是分享此内容的网站名称,仅在QQ空间使用
// oks.setSite("TRS");
// // siteUrl是分享此内容的网站地址,仅在QQ空间使用
// oks.setSiteUrl("http://www.trs.com.cn");
// // venueName是分享社区名称,仅在Foursquare使用
//// oks.setVenueName(“Southeast in China”);
// // venueDescription是分享社区描述,仅在Foursquare使用
//// oks.setVenueDescription(“This is a beautiful place !”);
// // latitude是维度数据,仅在新浪微博、腾讯微博和Foursquare使用
//// oks.setLatitude(23.122619f);
// // longitude是经度数据,仅在新浪微博、腾讯微博和Foursquare使用
//// oks.setLongitude(113.372338f);
// // 是否直接分享(true则直接分享)
// oks.setSilent(false);
// // 指定分享平台,和slient一起使用可以直接分享到指定的平台
//// oks.setPlatform(platform);
// // 去除注释可通过OneKeyShareCallback来捕获快捷分享的处理结果
// oks.setCallback(new PlatformActionListener() {
// @Override
// public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
// Log.v("X", "hhh");
// }
//
// @Override
// public void onError(Platform platform, int i, Throwable throwable) {
// Log.v("X", "hhh");
// }
//
// @Override
// public void onCancel(Platform platform, int i) {
// Log.v("X", "hhh");
// }
// });
// //通过OneKeyShareCallback来修改不同平台分享的内容
//// oks.setShareContentCustomizeCallback(new ShareContentCustomizeDemo());
// oks.addHiddenPlatform(QZone.NAME);
// oks.addHiddenPlatform(WechatFavorite.NAME);
// oks.show(this);
// }
}