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" /> + +