diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index cbeceb167e..f322f72611 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -31,6 +31,7 @@ import com.gh.gamecenter.manager.SystemBarTintManager; import com.gh.gamecenter.manager.SystemBarTintManager.SystemBarConfig; import java.lang.reflect.Field; +import java.util.ArrayList; import cn.sharesdk.framework.ShareSDK; import de.greenrobot.event.EventBus; @@ -146,53 +147,30 @@ public class BaseActivity extends Activity { window.setAttributes(winParams); } - public void showShare(String url, String title, String icon, String entrance, String type) { + //如果是游戏分享,newsTitle默认为空 + public void showShare(String url, String gameName, String icon, String newsTitle, ArrayList tag, String entrance, String type) { -// if (isShowShare){ -// return; -// } ShareSDK.initSDK(this); - ShareUtils.getInstance(this).showShareWindows(new View(this), url, title, icon); -// OnekeyShare oks = new OnekeyShare(); -// // 关闭sso授权 -// oks.disableSSOWhenAuthorize(); -// -// // 分享时Notification的图标和文字 2.5.9以后的版本不调用此方法 -// // oks.setNotification(R.drawable.ic_launcher, -// // getString(R.string.app_name)); -// // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用 -// oks.setTitle(title); -// // titleUrl是标题的网络链接,仅在人人网和QQ空间使用 -// oks.setTitleUrl(url); -// // text是分享文本,所有平台都需要这个字段 -// oks.setText(title + " " + url); -// // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 -// // oks.setImagePath(icon);//确保SDcard下面存在此张图片 -// oks.setImageUrl(icon); -// // url仅在微信(包括好友和朋友圈)中使用 -// oks.setUrl(url); -// // comment是我对这条分享的评论,仅在人人网和QQ空间使用 -// oks.setComment("精彩尽在" + url); -// // site是分享此内容的网站名称,仅在QQ空间使用 -// oks.setSite(this.getString(R.string.app_name)); -// // siteUrl是分享此内容的网站地址,仅在QQ空间使用 -// oks.setSiteUrl(url); -// -// oks.setOnFinishListener(new PlatformPage.OnFinishListener() { -// @Override -// public void onFinish() { -// Utils.log("onFinish"); -// isShowShare = false; -// } -// }); -// -// // 启动分享GUI -// oks.show(this); - DataUtils.onEvent(this, "内容分享", title); -// isShowShare = true; + + //判断是否是官方版 + boolean isPlugin = false; + if (tag != null){ + for (String s : tag) { + if (!"官方版".equals(s)){ + isPlugin = true; + } + } + } + + ShareUtils.getInstance(this).showShareWindows(new View(this), url, gameName, icon, newsTitle, isPlugin); + + if (newsTitle == null){ + DataUtils.onEvent(this, "内容分享", gameName); + }else { + DataUtils.onEvent(this, "内容分享", newsTitle); + } } -// private boolean isShowShare = false; public void onEventMainThread(final EBShowDialog showDialog) { if (!isPause && this.getClass().getName().equals(RunningUtils.getTopActivity(this))) { diff --git a/app/src/main/java/com/gh/base/BaseFragmentActivity.java b/app/src/main/java/com/gh/base/BaseFragmentActivity.java index 10e4059a35..0247ca6798 100644 --- a/app/src/main/java/com/gh/base/BaseFragmentActivity.java +++ b/app/src/main/java/com/gh/base/BaseFragmentActivity.java @@ -31,6 +31,7 @@ import com.gh.gamecenter.manager.SystemBarTintManager; import com.gh.gamecenter.manager.SystemBarTintManager.SystemBarConfig; import java.lang.reflect.Field; +import java.util.ArrayList; import cn.sharesdk.framework.ShareSDK; import de.greenrobot.event.EventBus; @@ -139,55 +140,30 @@ public class BaseFragmentActivity extends FragmentActivity { window.setAttributes(winParams); } - public void showShare(String url, String title, String icon, String entrance, String type) { - -// if (isShowShare){ -// return; -// } + //如果是游戏分享,newsTitle默认为空 + public void showShare(String url, String gameName, String icon, String newsTitle, ArrayList tag, String entrance, String type) { ShareSDK.initSDK(this); - ShareUtils.getInstance(this).showShareWindows(new View(this), url, title, icon); -// OnekeyShare oks = new OnekeyShare(); -// // 关闭sso授权 -// oks.disableSSOWhenAuthorize(); -// -// // 分享时Notification的图标和文字 2.5.9以后的版本不调用此方法 -// // oks.setNotification(R.drawable.ic_launcher, -// // getString(R.string.app_name)); -// // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用 -// oks.setTitle(title); -// // titleUrl是标题的网络链接,仅在人人网和QQ空间使用 -// oks.setTitleUrl(url); -// // text是分享文本,所有平台都需要这个字段 -// oks.setText(title + " " + url); -// // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数 -// // oks.setImagePath(icon);//确保SDcard下面存在此张图片 -// oks.setImageUrl(icon); -// // url仅在微信(包括好友和朋友圈)中使用 -// oks.setUrl(url); -// // comment是我对这条分享的评论,仅在人人网和QQ空间使用 -// oks.setComment("精彩尽在" + url); -// // site是分享此内容的网站名称,仅在QQ空间使用 -// oks.setSite(this.getString(R.string.app_name)); -// // siteUrl是分享此内容的网站地址,仅在QQ空间使用 -// oks.setSiteUrl(url); -// -// oks.setOnFinishListener(new PlatformPage.OnFinishListener() { -// @Override -// public void onFinish() { -// Utils.log("onFinish"); -// isShowShare = false; -// } -// }); - // 启动分享GUI -// oks.show(this); - DataUtils.onEvent(this, "内容分享", title); -// isShowShare = true; + //判断是否是官方版 + boolean isPlugin = false; + if (tag != null){ + for (String s : tag) { + if (!"官方版".equals(s)){ + isPlugin = true; + } + } + } + + ShareUtils.getInstance(this).showShareWindows(new View(this), url, gameName, icon, newsTitle, isPlugin); + + if (newsTitle == null){ + DataUtils.onEvent(this, "内容分享", gameName); + }else { + DataUtils.onEvent(this, "内容分享", newsTitle); + } } -// private boolean isShowShare = false; - public void onEventMainThread(final EBShowDialog showDialog) { if (!isPause && this.getClass().getName().equals(RunningUtils.getTopActivity(this))) { if ("hijack".equals(showDialog.getType())) { diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index b47bb0b9e8..1f533d6878 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -36,8 +36,11 @@ public class ShareUtils { private static ShareUtils instance; private String shareUrl; - private String shareTitle; + private String shareGameName; private String shareIcon; + private String shareNewsTitle; // shareNewsTitle不为空就是新闻分享,否则是游戏分享 + + private boolean isPlugin = false; private int maxHeight; private int[] arrLogo = {R.drawable.share_wechat_logo, R.drawable.share_wechatmoments_logo, R.drawable.share_qq_logo @@ -57,10 +60,12 @@ public class ShareUtils { return instance; } - public void showShareWindows(View view, String url, String title, String icon){ + public void showShareWindows(View view, String url, String gameName, String icon ,String newsTitle, boolean isPlugin){ this.shareIcon = icon; - this.shareTitle = title; + this.shareGameName = gameName; this.shareUrl = url; + this.shareNewsTitle = newsTitle; + this.isPlugin = isPlugin; maxHeight = context.getResources().getDisplayMetrics().heightPixels; @@ -151,25 +156,25 @@ public class ShareUtils { public void onClick(View v) { switch (position){ case 0: - wechatSahre(shareUrl, shareTitle, shareIcon); + wechatSahre(); break; case 1: - wechatMomentsSahre(shareUrl, shareTitle, shareIcon); + wechatMomentsSahre(); break; case 2: - qqSahre(shareUrl, shareTitle, shareIcon); + qqSahre(); break; case 3: - qZoneSahre(shareUrl, shareTitle, shareIcon); + qZoneSahre(); break; case 4: - sinaWeiboSahre(shareUrl, shareTitle, shareIcon); + sinaWeiboSahre(); break; case 5: - shortMessageSahre(shareUrl, shareTitle, shareIcon); + shortMessageSahre(); break; case 6: - copyFont(shareUrl); + copyLink(shareUrl); break; case 7: popupWindow.dismiss(); @@ -199,70 +204,127 @@ public class ShareUtils { } //QQ分享 - private void qqSahre(String url, String title, String icon){ + private void qqSahre(){ QQ.ShareParams qqParams = new QQ.ShareParams(); - qqParams.setTitle(title); - qqParams.setText(title + " " + url); - qqParams.setImageUrl(icon); - qqParams.setTitleUrl(url); + + if (shareNewsTitle != null){ + qqParams.setTitle(shareGameName); + qqParams.setText(shareNewsTitle); + }else { + qqParams.setTitle("向你推荐:"); + if (isPlugin){ + qqParams.setText(shareGameName + "(光环加速版)"); + }else { + qqParams.setText(shareGameName); + } + } + qqParams.setImageUrl(shareIcon); + qqParams.setTitleUrl(shareUrl); qqParams.setSite("光环助手"); + sharePlatform(qqParams,QQ.NAME); } //微信好友分享 - private void wechatSahre(String url, String title, String icon){ + private void wechatSahre(){ Wechat.ShareParams wechatParams = new Wechat.ShareParams(); - wechatParams.setText(title + " " + url); - wechatParams.setImageUrl(icon); - wechatParams.setTitle(title); - wechatParams.setUrl(url); + + if (shareNewsTitle != null){ + wechatParams.setText(shareNewsTitle); + }else { + if (isPlugin){ + wechatParams.setText("向你推荐:" + shareGameName + "(光环加速版)"); + }else { + wechatParams.setText("向你推荐:" + shareGameName); + } + } + wechatParams.setImageUrl(shareIcon); + wechatParams.setUrl(shareUrl); + sharePlatform(wechatParams,Wechat.NAME); } //QQ空间分享 - private void qZoneSahre(String url, String title, String icon){ + private void qZoneSahre(){ QZone.ShareParams qZoneParams = new QZone.ShareParams(); - qZoneParams.setTitle(title); - qZoneParams.setText(title + " " + url); - qZoneParams.setImageUrl(icon); - qZoneParams.setTitleUrl(url); - qZoneParams.setComment("精彩尽在" + url); - qZoneParams.setSite(context.getString(R.string.app_name)); - qZoneParams.setSiteUrl(url); + + if (shareNewsTitle != null){ + qZoneParams.setTitle(shareGameName); + qZoneParams.setText(shareNewsTitle); + }else { + qZoneParams.setTitle("向你推荐:"); + if (isPlugin){ + qZoneParams.setText("向你推荐:" + shareGameName + "(光环加速版)"); + }else { + qZoneParams.setText("向你推荐:" + shareGameName); + } + } + qZoneParams.setImageUrl(shareIcon); + qZoneParams.setTitleUrl(shareUrl); + qZoneParams.setSite("光环助手"); + sharePlatform(qZoneParams,QZone.NAME); } //微信朋友圈分享 - private void wechatMomentsSahre(String url, String title, String icon){ + private void wechatMomentsSahre(){ WechatMoments.ShareParams wechatMomentsParams = new WechatMoments.ShareParams(); - wechatMomentsParams.setText(title + " " + url); - wechatMomentsParams.setTitle(title); - wechatMomentsParams.setImageUrl(icon); - wechatMomentsParams.setUrl(url); + + if (shareNewsTitle != null){ + wechatMomentsParams.setText(shareNewsTitle); + }else { + if (isPlugin){ + wechatMomentsParams.setText("向你推荐:" + shareGameName + "(光环加速版)"); + }else { + wechatMomentsParams.setText("向你推荐:" + shareGameName); + } + } + wechatMomentsParams.setImageUrl(shareIcon); + wechatMomentsParams.setUrl(shareUrl); + sharePlatform(wechatMomentsParams, WechatMoments.NAME); } //新浪微博分享 - private void sinaWeiboSahre(String url, String title, String icon){ + private void sinaWeiboSahre(){ SinaWeibo.ShareParams sinaWeiboParams = new SinaWeibo.ShareParams(); - sinaWeiboParams.setTitle(title); - sinaWeiboParams.setImageUrl(icon); - sinaWeiboParams.setUrl(url); - sinaWeiboParams.setText(title + " " + url); + + if (shareNewsTitle != null){ + sinaWeiboParams.setText(shareNewsTitle); + }else { + if (isPlugin){ + sinaWeiboParams.setText("向你推荐:" + shareGameName + "(光环加速版)"); + }else { + sinaWeiboParams.setText("向你推荐:" + shareGameName); + } + } + sharePlatform(sinaWeiboParams, SinaWeibo.NAME); } //短信分享 - private void shortMessageSahre(String url, String title, String icon){ + private void shortMessageSahre(){ ShortMessage.ShareParams shortMessageParams = new ShortMessage.ShareParams(); - shortMessageParams.setText(title + " " + url); - shortMessageParams.setUrl(url); - shortMessageParams.setImageUrl(icon); + + if (shareNewsTitle != null){ + shortMessageParams.setText(shareNewsTitle); + }else { + if (isPlugin){ + shortMessageParams.setText("向你推荐:" + shareGameName + "(光环加速版)"); + }else { + shortMessageParams.setText("向你推荐:" + shareGameName); + } + } + shortMessageParams.setUrl(shareUrl); + shortMessageParams.setTitleUrl(shareUrl); + sharePlatform(shortMessageParams, ShortMessage.NAME); } //分享平台回调 private void sharePlatform(Platform.ShareParams params, String name) { + Utils.toast(context,"分享跳转中..."); + Platform platform = ShareSDK.getPlatform(name); platform.setPlatformActionListener(new PlatformActionListener() { @Override @@ -281,11 +343,15 @@ public class ShareUtils { } }); platform.share(params); + popupWindow.dismiss(); } //复制文字链接 - private void copyFont(String copyContent) { + private void copyLink(String copyContent) { ClipboardManager cmb = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); cmb.setText(copyContent); + popupWindow.dismiss(); + + Utils.toast(context,"复制成功"); } } diff --git a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java index 04b632830b..a36b220cf4 100644 --- a/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/GameDetailsActivity.java @@ -265,7 +265,7 @@ public class GameDetailsActivity extends BaseActivity implements View.OnClickLis String url = "http://112.124.59.31/game_center/static/game_" + gameEntity.getId() + ".html"; - showShare(url, gameEntity.getName(), gameEntity.getIcon(), entrance, "游戏"); + showShare(url, gameEntity.getName(), gameEntity.getIcon(), null, gameEntity.getTag(), entrance, "游戏"); } } private void invalidate() { diff --git a/app/src/main/java/com/gh/gamecenter/NewGameDetailsActivity.java b/app/src/main/java/com/gh/gamecenter/NewGameDetailsActivity.java index 86185bfdb2..3d4c90b61a 100644 --- a/app/src/main/java/com/gh/gamecenter/NewGameDetailsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewGameDetailsActivity.java @@ -265,7 +265,7 @@ public class NewGameDetailsActivity extends BaseActivity implements View.OnClick String url = "http://112.124.59.31/game_center/static/game_" + gameEntity.getId() + ".html"; - showShare(url, gameEntity.getName(), gameEntity.getIcon(), entrance, "游戏"); + showShare(url, gameEntity.getName(), gameEntity.getIcon(), null, gameEntity.getTag(), entrance, "游戏"); } } private void invalidate() { diff --git a/app/src/main/java/com/gh/gamecenter/NewsActivity.java b/app/src/main/java/com/gh/gamecenter/NewsActivity.java index aa406bdf9e..969f311401 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsActivity.java @@ -431,11 +431,11 @@ public class NewsActivity extends BaseActivity implements OnClickListener { String url = "http://news.ghzhushou.com/" + entity.getId() + ".html"; if (gameEntity == null){ - showShare(url, entity.getTitle(), "http://image.ghzhushou.com/pic/56976f928ab49edc6e8b45f1.png", entrance, - "新闻"); + showShare(url, gameEntity.getName(), "http://image.ghzhushou.com/pic/56976f928ab49edc6e8b45f1.png",entity.getTitle() + , gameEntity.getTag(), entrance, "新闻"); }else { - showShare(url, entity.getTitle(), gameEntity.getIcon(), entrance, - "新闻"); + showShare(url, gameEntity.getName(), gameEntity.getIcon(), entity.getTitle(), gameEntity.getTag(), entrance + , "新闻"); } } else if (v == essaydetails_progressbar || v == essaydetails_tv_per) { String str = essaydetails_tv_per.getText().toString();