diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java
index 8c27a9edfa..ef608d4bcd 100644
--- a/app/src/main/java/com/gh/common/util/DialogUtils.java
+++ b/app/src/main/java/com/gh/common/util/DialogUtils.java
@@ -30,10 +30,12 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
+import com.gh.common.dialog.TrackableDialog;
import com.gh.common.view.DrawableView;
import com.gh.gamecenter.AboutActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.WebActivity;
+import com.gh.gamecenter.entity.TrackableEntity;
import com.halo.assistant.HaloApp;
import com.halo.assistant.fragment.SettingsFragment;
import com.lightgame.utils.AppManager;
@@ -966,6 +968,59 @@ public class DialogUtils {
return dialog;
}
+ public static Dialog showTrackableDialog(Context context,
+ String title,
+ CharSequence message,
+ String positive,
+ String negative,
+ final ConfirmListener cmListener,
+ final CancelListener clListener,
+ TrackableEntity trackableEntity) {
+ context = checkDialogContext(context);
+
+ final TrackableDialog dialog = new TrackableDialog(context,
+ R.style.GhAlertDialog,
+ trackableEntity.getEvent(),
+ trackableEntity.getKey(),
+ trackableEntity.getCancelValue(),
+ trackableEntity.getKeyBackValue(),
+ trackableEntity.getLogShowEvent());
+
+ View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null);
+ TextView contentTv = contentView.findViewById(R.id.dialog_content);
+ TextView titleTv = contentView.findViewById(R.id.dialog_title);
+ TextView negativeTv = contentView.findViewById(R.id.dialog_negative);
+ TextView positiveTv = contentView.findViewById(R.id.dialog_positive);
+ if (message.toString().contains("红包奖励")) {//将红包奖励四个字标红
+ String str = message.toString().substring(0, message.toString().indexOf("红包奖励")) + "红包奖励";
+ contentTv.setText(Html.fromHtml(str));
+ } else {
+ contentTv.setText(message);
+ }
+ titleTv.setText(title);
+ negativeTv.setText(negative);
+ positiveTv.setText(positive);
+
+ negativeTv.setOnClickListener(view -> {
+ if (clListener != null) {
+ clListener.onCancel();
+ }
+ dialog.dismiss();
+ });
+
+ positiveTv.setOnClickListener(view -> {
+ if (cmListener != null) {
+ cmListener.onConfirm();
+ }
+ dialog.dismiss();
+ });
+
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.setContentView(contentView);
+ dialog.show();
+ return dialog;
+ }
+
public static Dialog fixWebViewKeyboardNotWorking(Activity activity) {
final Dialog dialog = new Dialog(activity, R.style.TransparentDialog);
View view = new View(activity);
diff --git a/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt
new file mode 100644
index 0000000000..ab5f3db610
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/entity/TrackableEntity.kt
@@ -0,0 +1,7 @@
+package com.gh.gamecenter.entity
+
+data class TrackableEntity(val event: String = "",
+ val key: String = "",
+ val cancelValue: String? = "",
+ val keyBackValue: String? = "",
+ val logShowEvent: Boolean = false)
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt
index 77e3b0b3a7..618257f2f4 100644
--- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt
+++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt
@@ -226,22 +226,27 @@ class RatingEditActivity : ToolBarActivity() {
when {
errorEntity?.code == 403079 -> {
- DialogUtils.showAlertDialog(this@RatingEditActivity, "提示",
+ MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame.name ?: "")
+ DialogUtils.showTrackableDialog(this@RatingEditActivity, "提示",
"检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方联系客服按钮,将问题反馈给客服,以便更优解决!",
"联系客服", "继续提交",
{
ImManager.startChatActivity(this@RatingEditActivity
, "《" + errorEntity.data?.gameName + "》- " + errorEntity.data?.content)
+ MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击联系客服")
},
{
postGameComment(again = true)
- })
+ MtaHelper.onEvent("游戏评论跳转", "联系客服弹窗", "点击继续提交")
+ }, TrackableEntity(event = "游戏评论跳转", key = "联系客服弹窗"))
}
errorEntity?.code == 403080 -> {
- DialogUtils.showAlertDialog(this@RatingEditActivity, "提示",
+ MtaHelper.onEvent("游戏评论跳转", "出现弹窗", mGame.name ?: "")
+ DialogUtils.showTrackableDialog(this@RatingEditActivity, "提示",
"检测到您评论的内容中含有反映游戏问题相关内容,可选择点击下方问题反馈按钮,将问题反馈给后台客服,以便更优解决!",
"问题反馈", "继续提交",
{
+ MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "点击问题反馈")
mBinding.mWebView.callHandler("getComment", OnReturnValue { content ->
val intent = SuggestionActivity.getIntentFromRating(
this@RatingEditActivity,
@@ -252,8 +257,9 @@ class RatingEditActivity : ToolBarActivity() {
})
},
{
+ MtaHelper.onEvent("游戏评论跳转", "意见反馈弹窗", "点击继续提交")
postGameComment(again = true)
- })
+ }, TrackableEntity(event = "游戏评论跳转", key = "意见反馈弹窗"))
}
else -> ErrorHelper.handleError(this@RatingEditActivity, errorString)
}