diff --git a/app/src/main/java/com/gh/base/BaseActivity.java b/app/src/main/java/com/gh/base/BaseActivity.java index 5fca77f8de..f363fd9c25 100644 --- a/app/src/main/java/com/gh/base/BaseActivity.java +++ b/app/src/main/java/com/gh/base/BaseActivity.java @@ -18,11 +18,6 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.Lifecycle; - import com.gh.base.fragment.BaseFragment; import com.gh.common.constant.Constants; import com.gh.common.util.DialogUtils; @@ -49,6 +44,10 @@ import org.json.JSONObject; import java.lang.ref.WeakReference; import java.util.List; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Lifecycle; import butterknife.ButterKnife; import pub.devrel.easypermissions.EasyPermissions; @@ -147,14 +146,14 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy String icon, String shareTitle, String shareSummary, - ShareUtils.ShareType shareType) { + ShareUtils.ShareType shareType, String id) { ShareUtils.getInstance(this).showShareWindows(this, getWindow().getDecorView(), url, icon, shareTitle, shareSummary, - shareType); + shareType, id); if (shareType == ShareUtils.ShareType.game || shareType == ShareUtils.ShareType.plugin) { MtaHelper.onEvent("内容分享", "内容分享", shareTitle + shareSummary); } else { diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java index 286c4172e0..107836972d 100644 --- a/app/src/main/java/com/gh/common/util/LogUtils.java +++ b/app/src/main/java/com/gh/common/util/LogUtils.java @@ -283,7 +283,7 @@ public class LogUtils { uploadToReservation(object); } - + private static void uploadToCommunity(JSONObject object) { uploadToCommunity(object, false); } @@ -419,4 +419,87 @@ public class LogUtils { } uploadVideoStreaming(object); } + + private static void uploadShare(JSONObject object) { + Meta meta = MetaUtil.INSTANCE.getMeta(); + JSONObject metaObject = new JSONObject(); + try { + metaObject.put("android_id", meta.getAndroid_id()); + metaObject.put("android_sdk", meta.getAndroid_sdk()); + metaObject.put("android_version", meta.getAndroid_version()); + metaObject.put("appVersion", meta.getAppVersion()); + metaObject.put("channel", meta.getChannel()); + metaObject.put("gid", meta.getGid()); + metaObject.put("imei", meta.getImei()); + metaObject.put("mac", meta.getMac()); + metaObject.put("manufacturer", meta.getManufacturer()); + metaObject.put("model", meta.getModel()); + metaObject.put("network", meta.getNetwork()); + metaObject.put("os", meta.getOs()); + metaObject.put("userId", meta.getUserId()); + + object.put("event", "SHARE"); + object.put("meta", metaObject); + object.put("timestamp", System.currentTimeMillis() / 1000); + } catch (JSONException e) { + e.printStackTrace(); + } + if (BuildConfig.DEBUG) { + Utils.log("LogUtils->" + object.toString()); + } + + LoghubUtils.log(object, "", false); + } + + public static void uploadShareEnter(String entrance, String url, String title, String summary, String resourceId) { + JSONObject object = new JSONObject(); + JSONObject payloadObject = new JSONObject(); + try { + object.put("action", "entrance_source"); + payloadObject.put("entrance", entrance); + payloadObject.put("url", url); + payloadObject.put("title", title); + payloadObject.put("summary", summary); + payloadObject.put("resource_id", resourceId); + object.put("payload", payloadObject); + } catch (JSONException e) { + e.printStackTrace(); + } + uploadShare(object); + } + + public static void uploadShareType(String shareType, String url, String title, String summary, String resourceId) { + JSONObject object = new JSONObject(); + JSONObject payloadObject = new JSONObject(); + try { + object.put("action", "share_type"); + payloadObject.put("share_type", shareType); + payloadObject.put("url", url); + payloadObject.put("title", title); + payloadObject.put("summary", summary); + payloadObject.put("resource_id", resourceId); + object.put("payload", payloadObject); + } catch (JSONException e) { + e.printStackTrace(); + } + uploadShare(object); + } + + public static void uploadShareResult(String shareType,String shareResult, String url, String title, String summary, String resourceId) { + JSONObject object = new JSONObject(); + JSONObject payloadObject = new JSONObject(); + try { + object.put("action", "share_result"); + payloadObject.put("share_type", shareType); + payloadObject.put("share_result", shareResult); + payloadObject.put("url", url); + payloadObject.put("title", title); + payloadObject.put("summary", summary); + payloadObject.put("resource_id", resourceId); + object.put("payload", payloadObject); + } catch (JSONException e) { + e.printStackTrace(); + } + uploadShare(object); + } } 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 0ed5804265..173ced6be5 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -31,6 +31,7 @@ import com.facebook.imagepipeline.image.CloseableImage; import com.gh.common.constant.Config; import com.gh.gamecenter.R; import com.gh.gamecenter.WeiBoShareActivity; +import com.gh.gamecenter.entity.ShareEntity; import com.gh.gamecenter.eventbus.EBShare; import com.lightgame.utils.Utils; import com.sina.weibo.sdk.WbSdk; @@ -84,15 +85,27 @@ public class ShareUtils { }; public enum ShareType { - news, - game, // 普通游戏 - plugin, // 插件游戏 - tools, - askInvite, - askNormal, // 问答问题/答案 - shareGh, - communityArticle, - video + news("资讯文章"), + game("游戏详情"), // 普通游戏 + plugin("游戏详情"), // 插件游戏 + tools("工具箱"), + askInvite("邀请回答"), + askNormal("问题详情"), //问答问题 + answerNormal("回答详情"), //问答答案 + shareGh("APP分享"), + communityArticle("文章详情"), + video("视频"), + web("web链接"); + + private String name; + + ShareType(String name) { + this.name = name; + } + + public String getName() { + return name; + } } private String[] arrLabel = {"微信好友", "朋友圈", "QQ好友", "QQ空间", "新浪微博", "短信", "复制链接", "取消"}; @@ -101,6 +114,8 @@ public class ShareUtils { private ShareType mShareType; public static ShareType shareType;//全局保存shareType,分享成功后判断分享的类型 + public static String resourceId = "";//分析内容的id(事件上报用) + public static ShareEntity shareEntity;//分享信息(事件上报用) private WeakReference mActivity; @@ -111,16 +126,22 @@ public class ShareUtils { public void onComplete(Object o) { Utils.toast(mContext, R.string.share_success_hint); EventBus.getDefault().post(new EBShare(ShareUtils.shareType)); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "success", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); } @Override public void onError(UiError uiError) { Utils.toast(mContext, R.string.share_fail_hint); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "fail", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); } @Override public void onCancel() { Utils.toast(mContext, R.string.share_cancel_hint); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "cancel", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); } }; @@ -153,7 +174,7 @@ public class ShareUtils { return false; } - public void showShareWindowsCallback(Activity activity, View view, String url, String icon, String shareTitle, String shareSummary, ShareType shareType, ShareCallBack callBack) { + public void showShareWindowsCallback(Activity activity, View view, String url, String icon, String shareTitle, String shareSummary, ShareType shareType, String id, ShareCallBack callBack) { if (activity.isFinishing()) return; this.mActivity = new WeakReference<>(activity); this.shareIcon = icon; @@ -162,6 +183,9 @@ public class ShareUtils { this.mTitle = shareTitle; this.mShareType = shareType; ShareUtils.shareType = mShareType; + ShareUtils.resourceId = id; + ShareUtils.shareEntity = new ShareEntity(shareUrl, mTitle, mSummary); + LogUtils.uploadShareEnter(mShareType.getName(), shareUrl, mTitle, mSummary, id); View contentView = View.inflate(mActivity.get(), R.layout.share_popup_layout, null); contentView.setFocusable(true); @@ -239,8 +263,8 @@ public class ShareUtils { } - public void showShareWindows(Activity activity, View view, String url, String icon, String shareTitle, String shareSummary, ShareType shareType) { - showShareWindowsCallback(activity, view, url, icon, shareTitle, shareSummary, shareType, null); + public void showShareWindows(Activity activity, View view, String url, String icon, String shareTitle, String shareSummary, ShareType shareType, String id) { + showShareWindowsCallback(activity, view, url, icon, shareTitle, shareSummary, shareType, id, null); } //QQ分享 @@ -253,6 +277,7 @@ public class ShareUtils { mSummary += "(光环加速版)"; break; case askNormal: + case answerNormal: case video: case communityArticle: mTitle += " - 光环助手"; @@ -294,6 +319,7 @@ public class ShareUtils { mSummary += "(光环加速版)"; break; case askNormal: + case answerNormal: case video: case communityArticle: mTitle += " - 光环助手"; @@ -402,6 +428,7 @@ public class ShareUtils { mSummary += "(光环加速版)"; break; case askNormal: + case answerNormal: case video: case communityArticle: mTitle += " - 光环助手"; @@ -452,6 +479,7 @@ public class ShareUtils { msg.title = mSummary; break; case askNormal: + case answerNormal: case video: case communityArticle: msg.title = mTitle + " - 光环助手"; @@ -501,6 +529,7 @@ public class ShareUtils { switch (mShareType) { case news: case tools: + case web: smsBody = mTitle + shareUrl; break; case plugin: @@ -514,6 +543,7 @@ public class ShareUtils { break; case askInvite: case askNormal: + case answerNormal: case video: case communityArticle: smsBody = mTitle + " - 光环助手" + shareUrl; @@ -538,6 +568,7 @@ public class ShareUtils { //复制文字链接 private void copyLink(String copyContent) { + LogUtils.uploadShareType("copy_link", shareUrl, mTitle, mSummary, resourceId); ClipboardManager cmb = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE); cmb.setText(copyContent); if (mShareType != ShareType.shareGh) { @@ -576,22 +607,27 @@ public class ShareUtils { switch (holder.getPosition()) { case 0: MtaHelper.onEvent("内容分享", "微信好友", mTitle); + LogUtils.uploadShareType("wechat_friend", shareUrl, mTitle, mSummary, resourceId); wechatShare(); break; case 1: MtaHelper.onEvent("内容分享", "微信朋友圈", mTitle); + LogUtils.uploadShareType("wechat_moment", shareUrl, mTitle, mSummary, resourceId); wechatMomentsShare(); break; case 2: MtaHelper.onEvent("内容分享", "QQ好友", mTitle); + LogUtils.uploadShareType("qq_friend", shareUrl, mTitle, mSummary, resourceId); qqShare(); break; case 3: MtaHelper.onEvent("内容分享", "QQ空间", mTitle); + LogUtils.uploadShareType("qq_zone", shareUrl, mTitle, mSummary, resourceId); qZoneShare(); break; case 4: MtaHelper.onEvent("内容分享", "新浪微博", mTitle); + LogUtils.uploadShareType("sina_weibo", shareUrl, mTitle, mSummary, resourceId); sinaWeiboShare(); break; case 5: @@ -602,7 +638,7 @@ public class ShareUtils { MtaHelper.onEvent("内容分享", "复制链接", mTitle); if (mShareType == ShareType.askInvite) { copyLink(mTitle + " - 光环助手" + shareUrl); - } else if (mShareType == ShareType.askNormal) { + } else if (mShareType == ShareType.askNormal || mShareType == ShareType.answerNormal) { copyLink(shareUrl); } else if (mShareType != ShareType.shareGh) { copyLink(shareUrl); @@ -620,7 +656,7 @@ public class ShareUtils { if (mShareType != ShareType.shareGh) { popupWindow.get().dismiss(); } else { - copyLink("推荐光环助手,绿色安全的手游加速助手:" + shareUrl); + LogUtils.uploadShareType("copy_link", shareUrl, mTitle, mSummary, resourceId); } break; } @@ -655,12 +691,12 @@ public class ShareUtils { void onCancel(); } - + private static class SharePopupWindow extends PopupWindow { SharePopupWindow(View contentView, int width, int height, boolean focusable) { super(contentView, width, height, focusable); } - + @Override public void dismiss() { View backgroundView = getContentView().findViewById(R.id.share_container); @@ -670,5 +706,5 @@ public class ShareUtils { getContentView().postDelayed(super::dismiss, 0); } } - + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index 2f933b8508..8131e2c725 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -323,7 +323,7 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen shareIcon = gameEntity.getIcon(); } showShare(url, shareIcon, adapter.getNewsDetailEntity().getTitle(), - "来自光环助手(最强卡牌神器)", ShareUtils.ShareType.news); + "来自光环助手(最强卡牌神器)", ShareUtils.ShareType.news, adapter.getNewsDetailEntity().getId()); } break; case R.id.menu_collect: @@ -616,7 +616,7 @@ public class NewsDetailActivity extends ToolBarActivity implements OnClickListen if (RegionSettingHelper.shouldThisGameBeFiltered(gameId)) { return; } - + if (TextUtils.isEmpty(gameId)) { mDetailBottomLl.setVisibility(View.GONE); return; diff --git a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java index 2434edaf35..6caeeff913 100644 --- a/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ShareGhActivity.java @@ -67,7 +67,7 @@ public class ShareGhActivity extends ToolBarActivity { QRCodeUtils.setQRCode(this, getString(R.string.gh_website_url_100), mGhQrcode); ShareUtils.getInstance(this).showShareWindows(this, mShareRl, getString(R.string.gh_website_url_300) , getString(R.string.gh_icon_url), "玩手游不用肝的感觉真好" - , "绿色安全的手游加速助手", ShareUtils.ShareType.shareGh); + , "绿色安全的手游加速助手", ShareUtils.ShareType.shareGh, ""); } @OnClick(R.id.gh_address_tv) diff --git a/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java b/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java index a940c02fc9..dfc9656593 100644 --- a/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java +++ b/app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java @@ -12,6 +12,7 @@ import com.facebook.datasource.DataSource; import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber; import com.facebook.imagepipeline.image.CloseableImage; import com.gh.common.util.ImageUtils; +import com.gh.common.util.LogUtils; import com.gh.common.util.ShareUtils; import com.gh.gamecenter.eventbus.EBShare; import com.lightgame.utils.Utils; @@ -23,10 +24,10 @@ import com.sina.weibo.sdk.share.WbShareCallback; import com.sina.weibo.sdk.share.WbShareHandler; import com.sina.weibo.sdk.utils.Utility; -import androidx.annotation.NonNull; - import org.greenrobot.eventbus.EventBus; +import androidx.annotation.NonNull; + /** * Created by khy on 2016/11/23. *

@@ -93,19 +94,19 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { @Override protected void onNewResultImpl(Bitmap bitmap) { Utils.log("分享获取bitmap成功,准备分享"); - + if (ShareUtils.ShareType.video.name().equals(mShareType)) { // 分享类型为视频时裁为正方形 int dimension = Math.min(bitmap.getWidth(), bitmap.getHeight()); bitmap = ThumbnailUtils.extractThumbnail(bitmap, dimension, dimension); } - + Bitmap compressBp = ShareUtils.compressBitmap(bitmap); Bitmap bgBitmap; if (ShareUtils.ShareType.askInvite.name().equals(mShareType) || ShareUtils.ShareType.askNormal.name().equals(mShareType)) { bgBitmap = compressBp; - } else { + } else { bgBitmap = ShareUtils.getInstance(getApplicationContext()).addBackGround(compressBp); } @@ -152,6 +153,8 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { @Override public void onWbShareSuccess() { Utils.toast(this, R.string.share_success_hint); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "success", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); EventBus.getDefault().post(new EBShare(ShareUtils.shareType)); finish(); } @@ -159,12 +162,16 @@ public class WeiBoShareActivity extends Activity implements WbShareCallback { @Override public void onWbShareCancel() { Utils.toast(this, R.string.share_cancel_hint); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "cancel", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); finish(); } @Override public void onWbShareFail() { Utils.toast(this, R.string.share_fail_hint); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "fail", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); finish(); } } diff --git a/app/src/main/java/com/gh/gamecenter/entity/ShareEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/ShareEntity.kt new file mode 100644 index 0000000000..60f2aafef5 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/entity/ShareEntity.kt @@ -0,0 +1,3 @@ +package com.gh.gamecenter.entity + +data class ShareEntity(var shareUrl: String = "", var shareTitle: String = "", var summary: String = "") \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt index 3ccabe7436..09fb95d6c3 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt @@ -807,7 +807,7 @@ class GameDetailFragment : NormalFragment() { } (activity as BaseActivity).showShare(url, mGameEntity!!.icon, "向你推荐:", - mGameEntity!!.name, shareType) + mGameEntity!!.name, shareType, mGameEntity?.id ?: "") } MtaHelper.onEvent("游戏详情_新", "分享按钮", mGameEntity!!.name) diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt index 2adcf52bae..447aae92e5 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/detail/AnswerDetailFragment.kt @@ -925,7 +925,7 @@ class AnswerDetailFragment : NormalFragment() { shareIcon, getString(R.string.ask_share_answers_title, answer.user.name, answer.question.title, answer.vote), shareSummary, - ShareUtils.ShareType.askNormal) + ShareUtils.ShareType.answerNormal, mAnswerId) } } diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt index f372ef53d1..75309ea66b 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt @@ -359,7 +359,8 @@ class ArticleDetailActivity : ToolBarActivity() { ShareUtils.getInstance(this).showShareWindows(this, mContentView, getString(R.string.share_community_article_url, mViewModel.detailEntity?.community?.id, mViewModel.detailEntity?.id), shareIcon, getString(R.string.share_community_article_title, mViewModel.detailEntity?.user?.name, - mViewModel.detailEntity?.title, mViewModel.detailEntity?.count?.vote), shareSummary, ShareUtils.ShareType.communityArticle) + mViewModel.detailEntity?.title, mViewModel.detailEntity?.count?.vote), shareSummary, ShareUtils.ShareType.communityArticle, + mViewModel.detailEntity?.id ?: "") } } R.id.container_like -> { diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.kt index e7abe804e6..bc97748a73 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/detail/QuestionsDetailFragment.kt @@ -450,7 +450,8 @@ class QuestionsDetailFragment : shareIcon, getString(R.string.ask_share_questions_title, questionEntity.title, questionEntity.answersCount), description, - ShareUtils.ShareType.askNormal) + ShareUtils.ShareType.askNormal, + questionEntity.id) } managerItem.setOnClickListener { diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteWrapperFragment.java index b780e87f1e..62c12f43fd 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteWrapperFragment.java @@ -3,10 +3,6 @@ package com.gh.gamecenter.qa.questions.invite; import android.app.Activity; import android.content.Context; import android.os.Bundle; -import androidx.annotation.Nullable; -import com.google.android.material.appbar.AppBarLayout; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentTransaction; import android.text.TextUtils; import android.view.MenuItem; import android.view.View; @@ -22,9 +18,13 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.normal.NormalFragment; import com.gh.gamecenter.qa.entity.QuestionsDetailEntity; +import com.google.android.material.appbar.AppBarLayout; import com.lightgame.utils.Util_System_Keyboard; import com.lightgame.utils.Utils; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentTransaction; import butterknife.BindView; import butterknife.OnClick; @@ -87,7 +87,7 @@ public class QuestionsInviteWrapperFragment extends NormalFragment { ShareUtils.getInstance(getContext()).showShareWindows(getActivity(), new View(getContext()) , getString(R.string.share_invite_url, mQuestionsDetailEntity.getId(), UserManager.getInstance().getUserId()) , shareIcon, getString(R.string.ask_share_invite_title, userName, mQuestionsDetailEntity.getTitle()) - , description, ShareUtils.ShareType.askInvite); + , description, ShareUtils.ShareType.askInvite, mQuestionsDetailEntity.getId()); } } diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index afda918a13..2dc8ada21f 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -278,7 +278,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib shareIcon, it.title, shareSummary, - ShareUtils.ShareType.video, object : ShareUtils.ShareCallBack { + ShareUtils.ShareType.video, it.id, object : ShareUtils.ShareCallBack { override fun onSuccess(label: String) { removeWechatAnimation() if ("短信" == label || "复制链接" == label) mViewModel?.shareVideoStatistics(mVideoEntity) diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index 60602ee067..7035aa25f3 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -595,7 +595,7 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener { shareIcon, it.title, shareSummary, - ShareUtils.ShareType.video, object : ShareUtils.ShareCallBack { + ShareUtils.ShareType.video, it.id, object : ShareUtils.ShareCallBack { override fun onSuccess(label: String) { findVisibleVideoViewByPosition()?.removeWechatAnimation() if ("短信" == label || "复制链接" == label) mViewModel.shareVideoStatistics(mViewModel.currentDisplayingVideo) diff --git a/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java b/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java index c2d363ab5d..2018001efd 100644 --- a/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java +++ b/app/src/main/java/com/gh/gamecenter/wxapi/WXEntryActivity.java @@ -7,6 +7,7 @@ import android.text.TextUtils; import android.widget.TextView; import com.gh.common.constant.Config; +import com.gh.common.util.LogUtils; import com.gh.common.util.LoginHelper; import com.gh.common.util.ShareUtils; import com.gh.gamecenter.R; @@ -27,12 +28,12 @@ import org.json.JSONObject; * 注意:WXEntryActivity类只能在wxapi包下 */ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeChatUserInfoThread.OnUserInfoCallBackListener { - + private static final int RETURN_MSG_TYPE_LOGIN = 1; private static final int RETURN_MSG_TYPE_SHARE = 2; - + private IWXAPI mWxApi; - + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -41,19 +42,19 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC TextView textView = new TextView(this); textView.setSingleLine(true); } - + @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); mWxApi.handleIntent(intent, this); } - + @Override public void onReq(BaseReq baseReq) { Utils.toast(this, "微信主动请求我们"); } - + @Override public void onResp(BaseResp baseResp) { String resultString = ""; @@ -63,12 +64,14 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC resultString = "分享成功"; Utils.toast(this, resultString); EventBus.getDefault().post(new EBShare(ShareUtils.shareType)); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "success", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); } else { if (baseResp instanceof SendAuth.Resp) { SendAuth.Resp resp = (SendAuth.Resp) baseResp; Utils.log("WXEntryActivity=TOKEN::" + resp.code); new WeChatUserInfoThread(WXEntryActivity.this, resp.code, WXEntryActivity.this) - .start(); + .start(); } else { resultString = "登录失败"; LoginHelper.onWechatLoginFailure(resultString); @@ -78,6 +81,8 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC case BaseResp.ErrCode.ERR_USER_CANCEL: if (RETURN_MSG_TYPE_SHARE == baseResp.getType()) { resultString = getString(R.string.share_cancel_hint); + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "cancel", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); } else { resultString = "登录已取消"; } @@ -94,6 +99,8 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC default: if (RETURN_MSG_TYPE_SHARE == baseResp.getType()) { resultString = "分享错误"; + LogUtils.uploadShareResult(ShareUtils.shareType.getName(), "fail", + ShareUtils.shareEntity.getShareUrl(), ShareUtils.shareEntity.getShareTitle(), ShareUtils.shareEntity.getSummary(), ShareUtils.resourceId); } else { resultString = "登录错误"; } @@ -104,7 +111,7 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC finishActivity(); } } - + @Override public void onComplete(final JSONObject content) { runOnUiThread(() -> { @@ -112,13 +119,13 @@ public class WXEntryActivity extends Activity implements IWXAPIEventHandler, WeC finishActivity(); }); } - + @Override public void onError() { LoginHelper.onWechatLoginFailure("登录失败"); finishActivity(); } - + private void finishActivity() { this.finish(); overridePendingTransition(0, 0);//禁止退出Activity 动画 diff --git a/app/src/main/java/com/halo/assistant/fragment/WebFragment.java b/app/src/main/java/com/halo/assistant/fragment/WebFragment.java index 805e087a64..7a48d2e3ac 100644 --- a/app/src/main/java/com/halo/assistant/fragment/WebFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/WebFragment.java @@ -16,8 +16,6 @@ import android.widget.ProgressBar; import android.widget.RelativeLayout; import android.widget.TextView; -import androidx.annotation.Nullable; - import com.gh.base.BaseActivity; import com.gh.common.AppExecutor; import com.gh.common.DefaultJsApi; @@ -53,6 +51,7 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.HashMap; import java.util.List; +import androidx.annotation.Nullable; import butterknife.BindView; import butterknife.OnClick; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -167,13 +166,13 @@ public class WebFragment extends NormalFragment { mToolBoxEntity.getIcon(), mToolBoxEntity.getName(), mToolBoxEntity.getDes(), - ShareUtils.ShareType.tools); + ShareUtils.ShareType.tools, mToolBoxEntity.getId()); } else { curActivity.showShare(TextUtils.isEmpty(mShareEntity.getUrl()) ? getArguments().getString(EntranceUtils.KEY_URL) : mShareEntity.getUrl(), mShareEntity.getIcon(), mShareEntity.getTitle(), mShareEntity.getDescription(), - ShareUtils.ShareType.news); + ShareUtils.ShareType.web, ""); } }