diff --git a/app/src/main/assets/notification_style.json b/app/src/main/assets/notification_style.json
new file mode 100644
index 0000000000..02c6164df4
--- /dev/null
+++ b/app/src/main/assets/notification_style.json
@@ -0,0 +1,132 @@
+[
+ {
+ "login": {
+ "title": "开启消息通知",
+ "content": "新游上线、互动回复,重要推送不错过",
+ "image": "bg_notification_login_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景1"
+ },
+ "question": {
+ "title": "开启消息通知",
+ "content": "及时查看大神回答",
+ "image": "bg_notification_question_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景2"
+ },
+ "answer": {
+ "title": "开启消息通知",
+ "content": "及时查看点赞与评论",
+ "image": "bg_notification_answer_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景3"
+ },
+ "article": {
+ "title": "开启消息通知",
+ "content": "及时查看点赞与评论",
+ "image": "bg_notification_article_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景4"
+ },
+ "video": {
+ "title": "开启消息通知",
+ "content": "实时获取审核与推荐进度",
+ "image": "bg_notification_video_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景5"
+ },
+ "rating": {
+ "title": "开启消息通知",
+ "content": "成功上墙立即知道",
+ "image": "bg_notification_rating_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景6"
+ },
+ "gift": {
+ "title": "开启消息通知",
+ "content": "新上礼包不再错过",
+ "image": "bg_notification_gift_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景7"
+ },
+ "reserveGame": {
+ "title": "开启消息通知",
+ "content": "新游上线即时体验",
+ "image": "bg_notification_reserve_game_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景8"
+ },
+ "feedback": {
+ "title": "开启消息通知",
+ "content": "及时查看客服回复",
+ "image": "bg_notification_feedback_style_1",
+ "styleNo": "样式A",
+ "scenes": "场景9"
+ }
+ },
+ {
+ "login": {
+ "title": "咦!是新的小伙伴耶!",
+ "content": "打开通知开关,游戏、礼包、抽奖活动不错过",
+ "image": "bg_notification_login_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景1"
+ },
+ "question": {
+ "title": "发布成功!答案马上来!",
+ "content": "为了第一时间通知您,需要打开通知开关",
+ "image": "bg_notification_question_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景2"
+ },
+ "answer": {
+ "title": "精彩的回答!大佬牛啤!",
+ "content": "打开通知开关,可以第一时间收获赞美和感谢哟!",
+ "image": "bg_notification_answer_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景3"
+ },
+ "article": {
+ "title": "发布成功!不愧是你!",
+ "content": "打开通知开关,可以第一时间收获赞美和互动哟!",
+ "image": "bg_notification_article_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景4"
+ },
+ "video": {
+ "title": "“百万”播放预定!",
+ "content": "打开通知!第一时间知道审核结果和互动信息哟!",
+ "image": "bg_notification_video_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景5"
+ },
+ "rating": {
+ "title": "这游戏超好玩,我说的!",
+ "content": "想知道有多少人吃下安利?打开通知,马上知道!",
+ "image": "bg_notification_rating_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景6"
+ },
+ "gift": {
+ "title": "获得道具:神奇的游戏礼包!",
+ "content": "打开通知!礼包上线,马上知道!",
+ "image": "bg_notification_gift_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景7"
+ },
+ "reserveGame": {
+ "title": "玩最新的游戏,做游戏圈最靓的仔",
+ "content": "打开通知!游戏上线,更快知道!",
+ "image": "bg_notification_reserve_game_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景8"
+ },
+ "feedback": {
+ "title": "真是重要的反馈!",
+ "content": "感恩有你,光环更精彩!打开通知,客服回复,马上知道!",
+ "image": "bg_notification_feedback_style_2",
+ "styleNo": "样式B",
+ "scenes": "场景9"
+ }
+ }
+]
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt
index 1ecd175412..ef64fd44a4 100644
--- a/app/src/main/java/com/gh/common/DefaultJsApi.kt
+++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt
@@ -13,6 +13,7 @@ import com.gh.gamecenter.ImageViewerActivity
import com.gh.gamecenter.LoginActivity
import com.gh.gamecenter.entity.Badge
import com.gh.gamecenter.entity.MtaEvent
+import com.gh.gamecenter.entity.NotificationUgc
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.retrofit.RetrofitManager
@@ -167,7 +168,7 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun openNotificationSetting(msg: Any){
- NotificationHelper.show(context as AppCompatActivity)
+ NotificationHelper.show(context as AppCompatActivity, NotificationUgc.LOGIN)
}
@Keep
diff --git a/app/src/main/java/com/gh/common/constant/Constants.java b/app/src/main/java/com/gh/common/constant/Constants.java
index 946ebac056..7cb7bec47a 100644
--- a/app/src/main/java/com/gh/common/constant/Constants.java
+++ b/app/src/main/java/com/gh/common/constant/Constants.java
@@ -58,6 +58,9 @@ public class Constants {
public static final String SP_SHOWED_NOTIFICATION_ARTICLE = "show_notification_article_hint";
public static final String SP_SHOWED_NOTIFICATION_VIDEO = "show_notification_video_hint";
public static final String SP_SHOWED_NOTIFICATION_RATING = "show_notification_rating_hint";
+ public static final String SP_SHOWED_NOTIFICATION_GIFT = "show_notification_gift_hint";
+ public static final String SP_SHOWED_NOTIFICATION_RESERVE_GAME = "show_notification_reserve_game_hint";
+ public static final String SP_SHOWED_NOTIFICATION_FEEDBACK = "show_notification_feedback_hint";
// 新版本 也要触发一次“通知管理” 引导弹窗
public static final String SP_SHOWED_NOTIFICATION_NEW_VERSION = "show_notification_new_version";
// 今天是否已经触发了 “通知管理” 引导弹窗
diff --git a/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt
index e577b0d0c4..28b9f96514 100644
--- a/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt
+++ b/app/src/main/java/com/gh/common/dialog/NotificationHintDialogFragment.kt
@@ -2,28 +2,34 @@ package com.gh.common.dialog
import android.annotation.SuppressLint
import android.content.Intent
-import android.graphics.Color
+import android.content.res.AssetManager
import android.os.Build
import android.os.Bundle
import android.provider.Settings
-import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
-import android.widget.LinearLayout
-import android.widget.TextView
-import com.gh.common.util.DisplayUtils
+import androidx.core.content.ContextCompat
+import com.gh.common.util.GsonUtils
import com.gh.common.util.MtaHelper
import com.gh.common.util.PermissionHelper
+import com.gh.common.util.fromHtml
import com.gh.gamecenter.BuildConfig
import com.gh.gamecenter.R
-import com.gh.gamecenter.entity.NotificationHint
+import com.gh.gamecenter.entity.NotificationStyleEntity
+import com.gh.gamecenter.entity.NotificationUgc
+import com.lightgame.utils.Utils
import kotlinx.android.synthetic.main.dialog_notification_hint.*
+import org.json.JSONArray
+import java.io.BufferedReader
+import java.io.IOException
+import java.io.InputStreamReader
+import kotlin.random.Random
// 通知权限弹窗
class NotificationHintDialogFragment : BaseTrackableDialogFragment() {
- private var mNotificationHint: NotificationHint? = null
+ private var mNotificationUgc: NotificationUgc? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.dialog_notification_hint, null)
@@ -34,23 +40,32 @@ class NotificationHintDialogFragment : BaseTrackableDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- titleTv.text = mNotificationHint?.title
-
- contentContainer.removeAllViews()
- for (item in mNotificationHint?.content ?: arrayListOf()) {
- val tv = TextView(context)
-
- tv.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT).apply {
- topMargin = if (contentContainer.childCount == 0) 0 else DisplayUtils.dip2px(12f)
- }
- tv.text = item
- tv.setTextColor(Color.parseColor("#1383EB"))
- tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
- contentContainer.addView(tv)
+ val jsonString = getJsonFromAssets()
+ if (jsonString.isNullOrEmpty()) {
+ Utils.log("Failed to obtain configuration file")
+ return
+ }
+ val index = Random.nextInt(2)
+ val jsonArray = JSONArray(jsonString)
+ val jsonObj = jsonArray.getJSONObject(index)
+ if (!jsonObj.has(mNotificationUgc!!.value)) {
+ Utils.log("ugc type error")
+ return
+ }
+ val styleEntityJson = jsonObj.getJSONObject(mNotificationUgc!!.value)
+ val styleEntity = GsonUtils.fromJson(styleEntityJson.toString(), NotificationStyleEntity::class.java)
+ val drawableId = resources.getIdentifier(styleEntity.image, "drawable", requireContext().packageName)
+ notificationIv.setImageDrawable(ContextCompat.getDrawable(requireContext(), drawableId))
+ notificationTitle.text = styleEntity.title
+ notificationContent.text = styleEntity.content.fromHtml()
+ if (index == 1) {
+ activateTv.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_notification_open_btn_style_1)
+ activateTv.text = "优雅的开启"
}
activateTv.setOnClickListener {
MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击立即开启")
+ MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "${styleEntity.scenes}_${styleEntity.styleNo}_点击立即开启")
dismiss()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//这种方案适用于 API 26, 即8.0(含8.0)以上可以用
@@ -63,9 +78,10 @@ class NotificationHintDialogFragment : BaseTrackableDialogFragment() {
}
}
- laterTv.setOnClickListener {
+ closeIv.setOnClickListener {
dismiss()
- MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击以后再说")
+ MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击关闭")
+ MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "${styleEntity.scenes}_${styleEntity.styleNo}_点击关闭")
}
dialog?.setCanceledOnTouchOutside(true)
@@ -81,10 +97,30 @@ class NotificationHintDialogFragment : BaseTrackableDialogFragment() {
override fun trackWithBasicDeviceInfo() = true
+ private fun getJsonFromAssets(): String? {
+ val stringBuilder = StringBuilder()
+ var bufferedReader: BufferedReader? = null
+ var inputStreamReader: InputStreamReader? = null
+ try {
+ inputStreamReader = InputStreamReader(requireContext().assets.open("notification_style.json"))
+ bufferedReader = BufferedReader(inputStreamReader)
+ var line: String?
+ while (bufferedReader.readLine().also { line = it } != null) {
+ stringBuilder.append(line)
+ }
+ } catch (e: IOException) {
+ e.printStackTrace()
+ } finally {
+ inputStreamReader?.close()
+ bufferedReader?.close()
+ }
+ return stringBuilder.toString()
+ }
+
companion object {
@JvmStatic
- fun getInstance(hint: NotificationHint) = NotificationHintDialogFragment().apply {
- mNotificationHint = hint
+ fun getInstance(ugc: NotificationUgc) = NotificationHintDialogFragment().apply {
+ mNotificationUgc = ugc
}
}
}
diff --git a/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt b/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt
index f952104235..9f54998292 100644
--- a/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt
+++ b/app/src/main/java/com/gh/common/dialog/ReserveDialogFragment.kt
@@ -15,12 +15,14 @@ import butterknife.BindView
import butterknife.ButterKnife
import butterknife.OnClick
import com.gh.base.fragment.BaseDialogFragment
+import com.gh.common.AppExecutor
import com.gh.common.constant.Config
import com.gh.common.history.HistoryHelper
import com.gh.common.repository.ReservationRepository
import com.gh.common.util.*
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.GameEntity
+import com.gh.gamecenter.entity.NotificationUgc
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.retrofit.RetrofitManager
@@ -231,6 +233,9 @@ class ReserveDialogFragment
R.id.close_btn -> {
// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击关闭")
dismissAllowingStateLoss()
+ AppExecutor.uiExecutor.executeWithDelay(Runnable {
+ NotificationHelper.showNotificationHintDialog(NotificationUgc.RESERVE_GAME)
+ }, 1000)
}
R.id.content_container -> {
mobileIndexContainer.visibility = View.GONE
diff --git a/app/src/main/java/com/gh/common/util/LibaoUtils.java b/app/src/main/java/com/gh/common/util/LibaoUtils.java
index a5578e9c15..5dbc111550 100644
--- a/app/src/main/java/com/gh/common/util/LibaoUtils.java
+++ b/app/src/main/java/com/gh/common/util/LibaoUtils.java
@@ -18,6 +18,7 @@ import com.gh.gamecenter.entity.ApkEntity;
import com.gh.gamecenter.entity.LibaoEntity;
import com.gh.gamecenter.entity.LibaoStatusEntity;
import com.gh.gamecenter.entity.MeEntity;
+import com.gh.gamecenter.entity.NotificationUgc;
import com.gh.gamecenter.entity.UserDataLibaoEntity;
import com.gh.gamecenter.eventbus.EBReuse;
import com.gh.gamecenter.eventbus.EBUISwitch;
@@ -455,7 +456,7 @@ public class LibaoUtils {
adapter.initLibaoCode(new UserDataLibaoEntity(libaoCode, "ling", Utils.getTime(context)));
adapter.notifyDataSetChanged();
-
+ NotificationHelper.showNotificationHintDialog(NotificationUgc.GIFT);
final String finalLibaoCode = libaoCode;
DialogUtils.showWarningDialog(context, "领取成功", Html.fromHtml(context.getString(R.string.linged_dialog, libaoCode))
, "关闭", " 复制礼包码"
diff --git a/app/src/main/java/com/gh/common/util/NotificationHelper.kt b/app/src/main/java/com/gh/common/util/NotificationHelper.kt
index 3e3d26e0b6..dfd3c9be03 100644
--- a/app/src/main/java/com/gh/common/util/NotificationHelper.kt
+++ b/app/src/main/java/com/gh/common/util/NotificationHelper.kt
@@ -29,6 +29,9 @@ object NotificationHelper {
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_ARTICLE, false)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_VIDEO, false)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_RATING, false)
+ SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_GIFT, false)
+ SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_RESERVE_GAME, false)
+ SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_FEEDBACK, false)
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, "")
SPUtils.setInt(Constants.SP_SHOWED_NOTIFICATION_NEW_VERSION, currentVersion)
@@ -45,13 +48,16 @@ object NotificationHelper {
val isShowedArticle = SPUtils.getBoolean(Constants.SP_SHOWED_NOTIFICATION_ARTICLE, false)
val isShowedVideo = SPUtils.getBoolean(Constants.SP_SHOWED_NOTIFICATION_VIDEO, false)
val isShowedRating = SPUtils.getBoolean(Constants.SP_SHOWED_NOTIFICATION_RATING, false)
+ val isShowedGift = SPUtils.getBoolean(Constants.SP_SHOWED_NOTIFICATION_GIFT, false)
+ val isShowedReserveGame = SPUtils.getBoolean(Constants.SP_SHOWED_NOTIFICATION_RESERVE_GAME, false)
+ val isShowedFeedback = SPUtils.getBoolean(Constants.SP_SHOWED_NOTIFICATION_FEEDBACK, false)
- if (isShowedLogin && isShowedQuestion && isShowedAnswer && isShowedArticle && isShowedVideo && isShowedRating) return
+ if (isShowedLogin && isShowedQuestion && isShowedAnswer && isShowedArticle && isShowedVideo && isShowedRating && isShowedGift && isShowedReserveGame && isShowedFeedback) return
when (ugc) {
NotificationUgc.LOGIN -> {
if (!isShowedLogin) {
- show(AppManager.getInstance().currentActivity() as AppCompatActivity)
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_LOGIN, true)
// 设置今天的时间,表示今天已经触发过了
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
@@ -59,64 +65,75 @@ object NotificationHelper {
}
NotificationUgc.QUESTION -> {
if (!isShowedQuestion) {
- show(AppManager.getInstance().currentActivity() as AppCompatActivity)
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_QUESTION, true)
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
}
}
NotificationUgc.ANSWER -> {
if (!isShowedAnswer) {
- show(AppManager.getInstance().currentActivity() as AppCompatActivity)
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_ANSWER, true)
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
}
}
NotificationUgc.ARTICLE -> {
if (!isShowedArticle) {
- show(AppManager.getInstance().currentActivity() as AppCompatActivity)
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_ARTICLE, true)
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
}
}
NotificationUgc.VIDEO -> {
if (!isShowedVideo) {
- show(AppManager.getInstance().currentActivity() as AppCompatActivity)
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_VIDEO, true)
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
}
}
NotificationUgc.RATING -> {
if (!isShowedRating) {
- show(AppManager.getInstance().currentActivity() as AppCompatActivity)
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_RATING, true)
SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
}
}
+ NotificationUgc.GIFT -> {
+ if (!isShowedGift) {
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
+ SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_GIFT, true)
+ SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
+ }
+ }
+ NotificationUgc.RESERVE_GAME -> {
+ if (!isShowedReserveGame) {
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
+ SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_RESERVE_GAME, true)
+ SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
+ }
+ }
+ NotificationUgc.FEEDBACK -> {
+ if (!isShowedFeedback) {
+ show(AppManager.getInstance().currentActivity() as AppCompatActivity, ugc)
+ SPUtils.setBoolean(Constants.SP_SHOWED_NOTIFICATION_FEEDBACK, true)
+ SPUtils.setString(Constants.SP_IS_SHOWED_NOTIFICATION_TODAY, TimeUtils.getToday())
+ }
+ }
}
}
@SuppressLint("CheckResult")
- fun show(activity: AppCompatActivity?) {
+ fun show(activity: AppCompatActivity?, ugc: NotificationUgc) {
if (activity == null) return
- RetrofitManager.getInstance(activity).api.bootPopup
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(object : BiResponse() {
- override fun onSuccess(data: NotificationHint) {
- try {
- showEnableNotificationDialogIfItsDisabled(activity, data)
- } catch (ignore: Exception) {
- }
- }
- })
+ showEnableNotificationDialogIfItsDisabled(activity, ugc)
}
@JvmStatic
- fun showEnableNotificationDialogIfItsDisabled(activity: AppCompatActivity, notificationHint: NotificationHint) {
+ fun showEnableNotificationDialogIfItsDisabled(activity: AppCompatActivity, ugc: NotificationUgc) {
if (notificationIsEnable()) {
Utils.log("notification is enable")
} else {
- NotificationHintDialogFragment.getInstance(notificationHint).show(activity.supportFragmentManager, "notification")
+ NotificationHintDialogFragment.getInstance(ugc).show(activity.supportFragmentManager, "notification")
}
}
diff --git a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
index c784cb296b..01bbcf91f1 100644
--- a/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
@@ -30,6 +30,7 @@ import com.gh.base.OnListClickListener;
import com.gh.base.OnRequestCallBackListener;
import com.gh.base.ToolBarActivity;
import com.gh.base.fragment.WaitingDialogFragment;
+import com.gh.common.AppExecutor;
import com.gh.common.dialog.TrackableDialog;
import com.gh.common.filter.RegionSettingHelper;
import com.gh.common.im.ImManager;
@@ -44,6 +45,7 @@ import com.gh.common.util.GsonUtils;
import com.gh.common.util.ImageUtils;
import com.gh.common.util.MtaHelper;
import com.gh.common.util.NetworkUtils;
+import com.gh.common.util.NotificationHelper;
import com.gh.common.util.PackageUtils;
import com.gh.common.util.ShareUtils;
import com.gh.common.util.TextHelper;
@@ -54,6 +56,7 @@ import com.gh.common.view.FixLinearLayoutManager;
import com.gh.gamecenter.entity.ErrorEntity;
import com.gh.gamecenter.entity.GameEntity;
import com.gh.gamecenter.entity.InstallGameEntity;
+import com.gh.gamecenter.entity.NotificationUgc;
import com.gh.gamecenter.entity.SettingsEntity;
import com.gh.gamecenter.entity.SimpleGameEntity;
import com.gh.gamecenter.entity.UserInfoEntity;
@@ -1129,6 +1132,7 @@ public class SuggestionActivity extends ToolBarActivity implements OnRequestCall
}*/
toast("感谢您的反馈!");
finish();
+ AppExecutor.getUiExecutor().executeWithDelay(() -> NotificationHelper.showNotificationHintDialog(NotificationUgc.FEEDBACK), 1000);
}
@Override
diff --git a/app/src/main/java/com/gh/gamecenter/entity/NotificationStyleEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/NotificationStyleEntity.kt
new file mode 100644
index 0000000000..2a73bad4eb
--- /dev/null
+++ b/app/src/main/java/com/gh/gamecenter/entity/NotificationStyleEntity.kt
@@ -0,0 +1,9 @@
+package com.gh.gamecenter.entity
+
+data class NotificationStyleEntity(
+ var title: String = "",
+ var content: String = "",
+ var image: String = "",
+ var styleNo: String = "",
+ var scenes: String = ""
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/entity/NotificationUgc.kt b/app/src/main/java/com/gh/gamecenter/entity/NotificationUgc.kt
index e353b5ffcc..ad67ff6f04 100644
--- a/app/src/main/java/com/gh/gamecenter/entity/NotificationUgc.kt
+++ b/app/src/main/java/com/gh/gamecenter/entity/NotificationUgc.kt
@@ -3,11 +3,14 @@ package com.gh.gamecenter.entity
/**
* 引导设置 “通知管理” UGC行为
*/
-enum class NotificationUgc {
- LOGIN,
- QUESTION,
- ANSWER,
- ARTICLE,
- VIDEO,
- RATING,
+enum class NotificationUgc(val value: String) {
+ LOGIN("login"),
+ QUESTION("question"),
+ ANSWER("answer"),
+ ARTICLE("article"),
+ VIDEO("video"),
+ RATING("rating"),
+ GIFT("gift"),
+ RESERVE_GAME("reserveGame"),
+ FEEDBACK("feedback")
}
\ 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 454c2375a5..f88585dd7e 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
@@ -267,7 +267,9 @@ class RatingEditActivity : ToolBarActivity(), KeyboardHeightObserver {
finish()
}
AppExecutor.uiExecutor.executeWithDelay(Runnable {
- NotificationHelper.showNotificationHintDialog(NotificationUgc.RATING)
+ if (mFromAmway) {
+ NotificationHelper.showNotificationHintDialog(NotificationUgc.RATING)
+ }
}, 1000)
} else if (it.status == Status.ERROR) {
var errorString: String? = null
diff --git a/app/src/main/res/drawable-xxhdpi/ic_notification_close.png b/app/src/main/res/drawable-xxhdpi/ic_notification_close.png
new file mode 100644
index 0000000000..6e643b8e7b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_notification_close.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_answer_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_answer_style_1.webp
new file mode 100644
index 0000000000..dea09d8e58
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_answer_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_answer_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_answer_style_2.webp
new file mode 100644
index 0000000000..961462d849
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_answer_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_article_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_article_style_1.webp
new file mode 100644
index 0000000000..ad8294601e
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_article_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_article_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_article_style_2.webp
new file mode 100644
index 0000000000..7e9f64385b
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_article_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_feedback_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_feedback_style_1.webp
new file mode 100644
index 0000000000..fb85c68204
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_feedback_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_feedback_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_feedback_style_2.webp
new file mode 100644
index 0000000000..971069f8e4
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_feedback_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_gift_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_gift_style_1.webp
new file mode 100644
index 0000000000..b84648302d
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_gift_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_gift_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_gift_style_2.webp
new file mode 100644
index 0000000000..de58942fb4
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_gift_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_hint.png b/app/src/main/res/drawable-xxxhdpi/bg_notification_hint.png
deleted file mode 100644
index e6f2e1ba12..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/bg_notification_hint.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_login_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_login_style_1.webp
new file mode 100644
index 0000000000..048ec1847b
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_login_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_login_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_login_style_2.webp
new file mode 100644
index 0000000000..ce78de265f
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_login_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_question_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_question_style_1.webp
new file mode 100644
index 0000000000..ac42c421c7
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_question_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_question_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_question_style_2.webp
new file mode 100644
index 0000000000..8dbf4105be
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_question_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_rating_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_rating_style_1.webp
new file mode 100644
index 0000000000..479b5a1a35
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_rating_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_rating_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_rating_style_2.webp
new file mode 100644
index 0000000000..050b0cb4fa
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_rating_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_reserve_game_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_reserve_game_style_1.webp
new file mode 100644
index 0000000000..b48f87e9b8
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_reserve_game_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_reserve_game_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_reserve_game_style_2.webp
new file mode 100644
index 0000000000..dca722d6c7
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_reserve_game_style_2.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_video_style_1.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_video_style_1.webp
new file mode 100644
index 0000000000..cfca0a84fe
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_video_style_1.webp differ
diff --git a/app/src/main/res/drawable-xxxhdpi/bg_notification_video_style_2.webp b/app/src/main/res/drawable-xxxhdpi/bg_notification_video_style_2.webp
new file mode 100644
index 0000000000..754331d093
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_notification_video_style_2.webp differ
diff --git a/app/src/main/res/drawable/background_shape_white_radius_8.xml b/app/src/main/res/drawable/background_shape_white_radius_8.xml
new file mode 100644
index 0000000000..5dd381c08d
--- /dev/null
+++ b/app/src/main/res/drawable/background_shape_white_radius_8.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_notification_open_btn_style_1.xml b/app/src/main/res/drawable/bg_notification_open_btn_style_1.xml
new file mode 100644
index 0000000000..ce98ce2deb
--- /dev/null
+++ b/app/src/main/res/drawable/bg_notification_open_btn_style_1.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_notification_open_btn_style_2.xml b/app/src/main/res/drawable/bg_notification_open_btn_style_2.xml
new file mode 100644
index 0000000000..943acb73da
--- /dev/null
+++ b/app/src/main/res/drawable/bg_notification_open_btn_style_2.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_notification_hint.xml b/app/src/main/res/layout/dialog_notification_hint.xml
index a86fd717ad..397d24198d 100644
--- a/app/src/main/res/layout/dialog_notification_hint.xml
+++ b/app/src/main/res/layout/dialog_notification_hint.xml
@@ -8,60 +8,73 @@
+
+
-
-
-
-
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/notificationIv" />
+ android:layout_marginLeft="12dp"
+ android:layout_marginRight="12dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/notificationTitle" />
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/notificationContent" />
+
+