package com.znv.linkup.util;
import java.util.HashMap;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Toast;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import com.znv.linkup.BaseActivity;
import com.znv.linkup.R;
import com.znv.linkup.ViewSettings;
import com.znv.linkup.rest.UserScore;
/**
* 分享的帮助类
*
* @author yzb
*
*/
public class ShareUtil {
private Context context = null;
public ShareUtil(Context context) {
this.context = context;
ShareSDK.initSDK(context);
}
/**
* 分享文字
*
* @param msg
* 文字信息
*/
public void shareMessage(String msg) {
ShareSDK.initSDK(context);
OnekeyShare oks = new OnekeyShare();
// text是分享文本,所有平台都需要这个字段
oks.setText(msg);
showShare(oks);
}
/**
* 分享截图
*
* @param view
* 截图的view
*/
public void shareView(View view) {
ShareSDK.initSDK(context);
OnekeyShare oks = new OnekeyShare();
oks.setViewToShare(view);
showShare(oks);
}
/**
* 分享文字和图片
*
* @param msg
* 文字信息
* @param view
* 截图的view
*/
public void shareMsgView(String msg, View view) {
ShareSDK.initSDK(context);
OnekeyShare oks = new OnekeyShare();
oks.setText(msg);
oks.setViewToShare(view);
showShare(oks);
}
@SuppressLint("HandlerLeak")
private Handler netMsgHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case ViewSettings.MSG_UPDATE_GOLD: {
Toast.makeText(context, context.getString(R.string.share_success, String.valueOf(ViewSettings.ShareReward)), Toast.LENGTH_SHORT).show();
}
break;
case ViewSettings.MSG_LOGIN_PROMPT: {
Toast.makeText(context, context.getString(R.string.share_nologin_success, String.valueOf(ViewSettings.ShareReward)), Toast.LENGTH_SHORT).show();
}
break;
case ViewSettings.MSG_NETWORK_EXCEPTION: {
Toast.makeText(context, R.string.network_exception, Toast.LENGTH_SHORT).show();
}
break;
}
}
};
private void showShare(OnekeyShare oks) {
// 关闭sso授权
// oks.disableSSOWhenAuthorize();
// 分享时Notification的图标和文字
oks.setNotification(R.drawable.ic_launcher, context.getString(R.string.app_name));
// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
oks.setTitle(context.getString(R.string.share_top_info));
// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
oks.setTitleUrl(ViewSettings.WebRoot);
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl(ViewSettings.WebRoot);
// 评论
oks.setComment(context.getString(R.string.share_comment));
// site是分享此内容的网站名称,仅在QQ空间使用
oks.setSite(context.getString(R.string.app_name));
// siteUrl是分享此内容的网站地址,仅在QQ空间使用
oks.setSiteUrl(ViewSettings.WebRoot);
oks.setSilent(true);
// 设置分享
oks.setCallback(new OneKeyShareCallback());
// 启动分享GUI
oks.show(context);
}
private class OneKeyShareCallback implements PlatformActionListener {
@Override
public void onCancel(Platform arg0, int arg1) {
}
@Override
public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
// 操作成功的处理代码
if (BaseActivity.userInfo != null) {
// 消耗钻石
BaseActivity.userInfo.addDiamond(context, ViewSettings.ShareReward);
// 更新网络钻石数
UserScore.updateAward(BaseActivity.userInfo.getUserId(), ViewSettings.ShareReward, 0, netMsgHandler);
} else {
// 未登录分享提示
netMsgHandler.sendEmptyMessage(ViewSettings.MSG_LOGIN_PROMPT);
}
}
@Override
public void onError(Platform arg0, int arg1, Throwable arg2) {
}
}
}