فهرست منبع

1.添加消息通知点击查看消息内容弹框

王鹏鹏 2 سال پیش
والد
کامیت
181ab59f50

+ 5 - 2
.idea/misc.xml

@@ -486,7 +486,9 @@
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_evaluate.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_game_loading.xml" value="0.264" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_loading.xml" value="0.23697916666666666" />
-        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/fragment_task.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_message.xml" value="0.536" />
+        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/dialog_tips.xml" value="0.536" />
+        <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/fragment_task.xml" value="0.6" />
         <entry key="..\:/workspace/hcp-pads/baselib/src/main/res/layout/rv_empty.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_full_game_text.xml" value="0.151" />
         <entry key="..\:/workspace/hcp-pads/game/src/main/res/drawable/bg_game_back.xml" value="0.151" />
@@ -623,7 +625,7 @@
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/activity_free_train.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/activity_leisure_brain.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/activity_service_package.xml" value="0.3953084274543875" />
-        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/activity_train_content_details.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/activity_train_content_details.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/activity_train_data.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/dialog_purchase_services.xml" value="0.6" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/fragment_brain_ability.xml" value="0.176" />
@@ -639,6 +641,7 @@
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_task.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_train_report.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_training_content.xml" value="0.23697916666666666" />
+        <entry key="..\:/workspace/hcp-pads/workbenches/src/main/res/layout/item_training_content_details.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_main.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/yingyangfly/app/src/main/res/layout/activity_push.xml" value="0.22239583333333332" />
         <entry key="..\:/workspace/yingyangfly/baselib/src/main/res/drawable/bg_center_toast.xml" value="0.2265" />

+ 91 - 0
baselib/src/main/java/com/yingyangfly/baselib/dialog/MessageDialog.kt

@@ -0,0 +1,91 @@
+package com.yingyangfly.baselib.dialog
+
+import android.os.Bundle
+import android.text.TextUtils
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.widget.AppCompatButton
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.fragment.app.DialogFragment
+import com.gyf.immersionbar.BarHide
+import com.gyf.immersionbar.ktx.immersionBar
+import com.yingyangfly.baselib.R
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.utils.ViewTool
+
+/**
+ * 通知内容弹窗
+ */
+class MessageDialog : DialogFragment() {
+
+    private var tvTitle: AppCompatTextView? = null
+    private var tvContent: AppCompatTextView? = null
+    private var btnConform: AppCompatButton? = null
+    private var id = ""
+    private var content: String = ""
+    private var title: String = ""
+
+    var onDialogClickListener: ((id: String) -> Unit)? = null
+
+    fun setContent(id: String, content: String, title: String) {
+        this.id = id
+        this.content = content
+        this.title = title
+    }
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        isCancelable = false
+        dialog?.setCanceledOnTouchOutside(true)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        dialog?.window?.setLayout(
+            ViewGroup.LayoutParams.MATCH_PARENT,
+            ViewGroup.LayoutParams.MATCH_PARENT
+        )
+        dialog?.window?.setBackgroundDrawableResource(R.color.transparent)
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        immersionBar {
+            hideBar(BarHide.FLAG_HIDE_BAR)
+            navigationBarColor(R.color.transparent)
+        }
+        val rootView = ViewTool.inflateFragmentPixels(
+            activity, R.layout.dialog_message, container, 1194, 834
+        )
+        findId(rootView)
+        init()
+        return rootView
+    }
+
+    private fun findId(rootView: View) {
+        tvTitle = rootView.findViewById(R.id.tvTitle)
+        tvContent = rootView.findViewById(R.id.tvContent)
+        tvTitle?.text = if (TextUtils.isEmpty(title).not()) {
+            title
+        } else {
+            ""
+        }
+        tvContent?.text = if (TextUtils.isEmpty(content).not()) {
+            content
+        } else {
+            ""
+        }
+        btnConform = rootView.findViewById(R.id.btnConform)
+    }
+
+    private fun init() {
+        btnConform?.setOnSingleClickListener {
+            onDialogClickListener?.invoke(id)
+            dismiss()
+        }
+    }
+}

+ 59 - 0
baselib/src/main/res/layout/dialog_message.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <com.google.android.material.card.MaterialCardView
+        android:layout_width="@dimen/divider_667px"
+        android:layout_height="@dimen/divider_427px"
+        android:theme="@style/Theme.MaterialComponents.NoActionBar"
+        app:cardBackgroundColor="@android:color/white"
+        app:cardCornerRadius="@dimen/divider_42px"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:gravity="center_horizontal"
+            android:orientation="vertical">
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_48px"
+                android:gravity="center"
+                android:textColor="@color/color_FFF6A532"
+                android:textSize="@dimen/divider_42px"
+                android:textStyle="bold" />
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvContent"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_marginStart="@dimen/divider_65px"
+                android:layout_marginEnd="@dimen/divider_32px"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_28px" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnConform"
+                android:layout_width="@dimen/divider_180px"
+                android:layout_height="@dimen/divider_59px"
+                android:layout_marginBottom="@dimen/divider_52px"
+                android:background="@drawable/bg_confirm_evaluation"
+                android:gravity="center"
+                android:text="@string/dialog_determine"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_24px" />
+
+        </LinearLayout>
+    </com.google.android.material.card.MaterialCardView>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 0
baselib/src/main/res/values/strings.xml

@@ -6,4 +6,5 @@
     <string name="mark" tools:ignore="ResourceName">评分</string>
     <string name="cancel" tools:ignore="ResourceName">取消</string>
     <string name="complete" tools:ignore="ResourceName">完成</string>
+    <string name="dialog_determine">确定</string>
 </resources>

+ 1 - 1
config.gradle

@@ -14,7 +14,7 @@ ext {
             minSdkVersion    : 19,
             targetSdkVersion : 30,
             versionCode      : 4,
-            versionName      : "1.0.4",
+            versionName      : "1.0.4.1",
     ]
     //androidx配置
     androidx = [

+ 1 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/paid/PaidActivity.kt

@@ -297,7 +297,7 @@ class PaidActivity : BaseMVVMActivity<ActivityPaidBinding, PaidViewModel>(),
     private fun showTipsDialog(id: String) {
         TipsDialog.TipDialogBuilder()
             .title("提示")
-            .content("是否取消该笔订单")
+            .content("您确定取消咨询?医生很快就会在线回复,如果您继续取消,咨询费用1到3天原路退回您的支付账户。")
             .leftBtnText("取消")
             .rightBtnText("确定")
             .leftClick({

+ 1 - 1
healthconsultation/src/main/java/com/yingyang/healthconsultation/record/ConsultationRecordActivity.kt

@@ -135,7 +135,7 @@ class ConsultationRecordActivity :
     private fun showTipsDialog(id: String, position: Int) {
         TipsDialog.TipDialogBuilder()
             .title("提示")
-            .content("是否取消该笔订单")
+            .content("您确定取消咨询?医生很快就会在线回复,如果您继续取消,咨询费用1到3天原路退回您的支付账户。")
             .leftBtnText("取消")
             .rightBtnText("确定")
             .leftClick({

+ 23 - 11
push/src/main/java/com/yingyang/push/activity/MessgeListActivity.kt

@@ -11,6 +11,7 @@ import com.yingyang.push.adapter.PushTypeAdapter
 import com.yingyang.push.databinding.ActivityMessgeListBinding
 import com.yingyang.push.entity.PushMessageBean
 import com.yingyang.push.entity.PushMessageTypeBean
+import com.yingyangfly.baselib.dialog.MessageDialog
 import com.yingyangfly.baselib.ext.getEndAnimation
 import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
@@ -58,16 +59,22 @@ class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewM
             }
             //消息列表
             rvPush.adapter = pushListAdapter
-            pushListAdapter.onPushClickListener = { bean ->
-                if (TextUtils.equals("0", bean.status).not()) {
-                    updateReadMsg(bean.id)
+            pushListAdapter.onPushClickListener = { bean, position ->
+                when (bean.msgType) {
+                    "B" -> {
+
+                    }
+                    "D" -> {
+
+                    }
+                    else -> {
+                        val messageDialog = MessageDialog()
+                        messageDialog.setContent(bean.id, bean.msgDesn, bean.msgTitle)
+                        messageDialog.show(supportFragmentManager, "messageDialog")
+                    }
                 }
-                if (bean.msgUrl.isNullOrEmpty().not()) {
-                    JumpUtil.jumpActivityWithUrl(
-                        RouterUrlCommon.WEB_VIEW_INTERACTION_JS,
-                        bean.msgUrl,
-                        mContext
-                    )
+                if (TextUtils.equals("0", bean.status).not()) {
+                    updateReadMsg(bean.id, position)
                 }
             }
         }
@@ -130,11 +137,16 @@ class MessgeListActivity : BaseMVVMActivity<ActivityMessgeListBinding, PushViewM
     /**
      * 更改消息状态
      */
-    private fun updateReadMsg(msgId: String) {
+    private fun updateReadMsg(msgId: String, position: Int) {
         viewModel.updateReadMsg(msgId, fail = {
             it.toast()
         }, success = {
-            getMeaageList()
+            if (pushListAdapter.data.isNullOrEmpty().not()) {
+                if (pushListAdapter.data.get(position) != null) {
+                    pushListAdapter.data[position].status = "1"
+                    pushListAdapter.notifyItemChanged(position)
+                }
+            }
         })
     }
 

+ 2 - 2
push/src/main/java/com/yingyang/push/adapter/PushListAdapter.kt

@@ -15,7 +15,7 @@ import com.yingyangfly.baselib.ext.setTextColorResource
 class PushListAdapter(override val layoutId: Int = R.layout.item_push_list) :
     BaseDataBindingAdapter<PushMessageBean, ItemPushListBinding>() {
 
-    var onPushClickListener: ((bean: PushMessageBean) -> Unit)? = null
+    var onPushClickListener: ((bean: PushMessageBean, position: Int) -> Unit)? = null
 
     @SuppressLint("NotifyDataSetChanged")
     override fun onBindViewHolder(
@@ -41,7 +41,7 @@ class PushListAdapter(override val layoutId: Int = R.layout.item_push_list) :
         }
         binding.messageLayout.setOnSingleClickListener {
             notifyDataSetChanged()
-            onPushClickListener?.invoke(item)
+            onPushClickListener?.invoke(item, position)
         }
     }
 }

+ 10 - 9
push/src/main/java/com/yingyang/push/entity/PushMessageBean.kt

@@ -4,13 +4,14 @@ package com.yingyang.push.entity
  * 消息通知列表bean
  */
 data class PushMessageBean(
-    val createTime: String,
-    val id: String,
-    val msgTitle: String,
-    val msgType: String,//提醒类型
-    val msgUrl: String,
-    val orgCode: String,
-    val orgName: String,
-    val status: String,
-    val updateTime: String
+    var createTime: String,
+    var id: String,
+    var msgTitle: String,
+    var msgType: String,//提醒类型
+    var msgUrl: String,
+    var orgCode: String,
+    var orgName: String,
+    var status: String,
+    var updateTime: String,
+    var msgDesn: String
 )

+ 1 - 1
workbenches/src/main/res/layout/activity_train_content_details.xml

@@ -126,7 +126,7 @@
                             android:layout_height="match_parent"
                             android:layout_weight="1"
                             android:gravity="center"
-                            android:text="@string/game_duration"
+                            android:text="@string/game_duration_info"
                             android:textColor="@android:color/white"
                             android:textSize="@dimen/divider_24px" />
 

+ 1 - 0
workbenches/src/main/res/values/strings.xml

@@ -53,6 +53,7 @@
     <string name="game_category" tools:ignore="ResourceName">游戏分类</string>
     <string name="game_score" tools:ignore="ResourceName">游戏得分</string>
     <string name="game_duration" tools:ignore="ResourceName">游戏时长</string>
+    <string name="game_duration_info" tools:ignore="ResourceName">游戏时长(秒)</string>
     <string name="game_level" tools:ignore="ResourceName">游戏级别</string>
     <string name="status" tools:ignore="ResourceName">状态</string>
     <string name="exclusive_training" tools:ignore="ResourceName">专属训练</string>