package com.yaoyumeng.v2ex.ui.social;
import android.app.Activity;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.bean.SocializeEntity;
import com.umeng.socialize.controller.UMServiceFactory;
import com.umeng.socialize.controller.UMSocialService;
import com.umeng.socialize.controller.listener.SocializeListeners;
import com.umeng.socialize.media.SinaShareContent;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.sso.UMQQSsoHandler;
import com.umeng.socialize.weixin.controller.UMWXHandler;
import com.umeng.socialize.weixin.media.CircleShareContent;
import com.umeng.socialize.weixin.media.WeiXinShareContent;
import com.yaoyumeng.v2ex.R;
/**
* Created by yw on 2015/5/17.
*/
public class ShareHelper {
public static final String WEICHAT_APPID = "wxf612bad3fa62a531";
public static final String WEICHAT_SECRET = "8c5657cd9b0062c1197c17c3106030c2";
public static final String QQ_APPID = "100424468";
public static final String QQ_APPKEY = "c7394704798a158208a74ab60104f0ba";
private Activity mActivity;
private String mTitle;
private String mContent;
private String mUrl;
final UMSocialService mController = UMServiceFactory
.getUMSocialService("com.umeng.share");
SocializeListeners.SnsPostListener mSnsPostListener;
public ShareHelper(Activity activity) {
mActivity = activity;
mSnsPostListener = new SocializeListeners.SnsPostListener() {
public void onComplete(SHARE_MEDIA platform, int stCode,
SocializeEntity entity) {
if (stCode == 200)
Toast.makeText(mActivity, "分享成功", Toast.LENGTH_SHORT).show();
else {
String eMsg = "";
if (stCode == -101) {
eMsg = "没有授权";
}
Toast.makeText(mActivity, "分享失败[" + stCode + "] " +
eMsg, Toast.LENGTH_SHORT).show();
}
}
public void onStart() {
}
};
}
public void setContent(String title, String content, String url) {
mTitle = title;
mContent = content;
mUrl = url;
}
protected UMImage getShareImg() {
UMImage img = new UMImage(mActivity, R.drawable.ic_launcher);
return img;
}
/**
* 分享
*/
public void handleShare() {
final ShareDialog dialog = new ShareDialog(mActivity);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.setTitle(R.string.share_to);
dialog.setOnPlatformClickListener(new ShareDialog.OnSharePlatformClick() {
@Override
public void onPlatformClick(int id) {
switch (id) {
case R.id.ly_share_weichat_circle:
shareToWeiChatCircle();
break;
case R.id.ly_share_weichat:
shareToWeiChat();
break;
case R.id.ly_share_sina_weibo:
shareToSinaWeibo();
break;
case R.id.ly_share_qq:
shareToQQ(SHARE_MEDIA.QQ);
break;
case R.id.ly_share_copy_link:
copyTextToBoard(mUrl);
break;
case R.id.ly_share_more_option:
shareContentWithSystem();
break;
default:
break;
}
dialog.dismiss();
}
});
dialog.show();
}
private void shareContentWithSystem() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "分享:" + mContent);
intent.putExtra(Intent.EXTRA_TEXT, mContent + " " + mUrl);
mActivity.startActivity(Intent.createChooser(intent, "选择分享"));
}
private void copyTextToBoard(String string) {
ClipboardManager clip = (ClipboardManager) mActivity
.getSystemService(Context.CLIPBOARD_SERVICE);
clip.setText(string);
Toast.makeText(mActivity, "成功复制到剪贴板", Toast.LENGTH_SHORT).show();
}
private void shareToWeiChatCircle() {
// 支持微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(mActivity, WEICHAT_APPID, WEICHAT_SECRET);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();
// 设置微信朋友圈分享内容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareContent(mContent);
// 设置朋友圈title
circleMedia.setTitle(mContent);
circleMedia.setShareImage(getShareImg());
circleMedia.setTargetUrl(mUrl);
mController.setShareMedia(circleMedia);
mController.postShare(mActivity, SHARE_MEDIA.WEIXIN_CIRCLE, mSnsPostListener);
}
private void shareToWeiChat() {
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(mActivity, WEICHAT_APPID, WEICHAT_SECRET);
wxHandler.addToSocialSDK();
// 设置微信好友分享内容
WeiXinShareContent weixinContent = new WeiXinShareContent();
// 设置分享文字
weixinContent.setShareContent(mContent);
// 设置title
weixinContent.setTitle(mTitle);
// 设置分享内容跳转URL
weixinContent.setTargetUrl(mUrl);
// 设置分享图片
weixinContent.setShareImage(getShareImg());
mController.setShareMedia(weixinContent);
mController.postShare(mActivity, SHARE_MEDIA.WEIXIN, mSnsPostListener);
}
private void shareToSinaWeibo() {
SinaShareContent weiboContent = new SinaShareContent();
weiboContent.setTitle(mTitle);
weiboContent.setShareContent(mContent + " " + mUrl + "(分享自@V2EX客户端)");
weiboContent.setShareImage(getShareImg());
mController.setShareMedia(weiboContent);
mController.postShare(mActivity, SHARE_MEDIA.SINA, mSnsPostListener);
}
protected void shareToQQ(SHARE_MEDIA media) {
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(mActivity,
QQ_APPID, QQ_APPKEY);
qqSsoHandler.setTargetUrl(mUrl);
qqSsoHandler.setTitle(mTitle);
qqSsoHandler.addToSocialSDK();
mController.setShareContent(mContent);
mController.setShareImage(getShareImg());
mController.postShare(mActivity, media, null);
}
}