소스 검색

1.修改IM聊天页面UI

王鹏鹏 2 년 전
부모
커밋
35f4244e63

+ 5 - 0
.idea/misc.xml

@@ -6,8 +6,10 @@
         <entry key="..\:/workspace/hcp-pad/app/src/main/res/layout/activity_main.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/app/src/main/res/layout/activity_push.xml" value="0.21014492753623187" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/anim_loading.xml" value="0.219" />
+        <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_cancel_evaluation.xml" value="0.139" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_center_toast.xml" value="0.2185" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_common_head_layout.xml" value="0.219" />
+        <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_confirm_evaluation.xml" value="0.139" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_dialog_base.xml" value="0.2265" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_dialog_ring.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_dialog_task.xml" value="0.219" />
@@ -17,9 +19,11 @@
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/bg_loading_selector.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/home_webview_progressbar_selector.xml" value="0.219" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/ic_launcher_background.xml" value="0.219" />
+        <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/drawable/layer_rating_bar.xml" value="0.139" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/activity_base.xml" value="0.22826086956521738" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/activity_base_web_view.xml" value="0.1" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/activity_image_pager.xml" value="0.22239583333333332" />
+        <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/dialog_evaluate.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/dialog_loading.xml" value="0.136" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/dialog_tip.xml" value="0.264" />
         <entry key="..\:/workspace/hcp-pad/baselib/src/main/res/layout/dialog_tips.xml" value="0.6" />
@@ -314,6 +318,7 @@
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/chat_start_consultation.xml" value="0.8800000000000001" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/custom_evaluation_message_layout.xml" value="0.264" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/custom_order_message_layout.xml" value="0.4" />
+        <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/dialog_evaluate.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/message_adapter_content_text.xml" value="0.23697916666666666" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/notice_layout.xml" value="0.536" />
         <entry key="..\:/workspace/hcp-pad/tuichat/src/main/res/layout/reply_preview_layout.xml" value="0.4" />

+ 9 - 0
baselib/src/main/java/com/yingyangfly/baselib/bean/EvaluateBean.kt

@@ -0,0 +1,9 @@
+package com.yingyangfly.baselib.bean
+
+/**
+ * 新增评价
+ */
+class EvaluateBean {
+    var mid: String = ""
+    var value: String = ""
+}

+ 104 - 0
baselib/src/main/java/com/yingyangfly/baselib/dialog/EvaluateDialog.kt

@@ -0,0 +1,104 @@
+package com.yingyangfly.baselib.dialog
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.widget.AppCompatButton
+import androidx.appcompat.widget.AppCompatRatingBar
+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.bean.EvaluateBean
+import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.toast
+import com.yingyangfly.baselib.net.BaseObserver
+import com.yingyangfly.baselib.net.BaselibServiceFactory
+import com.yingyangfly.baselib.net.MyRxScheduler
+import com.yingyangfly.baselib.net.XUtils
+import com.yingyangfly.baselib.utils.GsonUtil
+import com.yingyangfly.baselib.utils.ViewTool
+import io.reactivex.schedulers.Schedulers
+
+/**
+ * 评价弹窗
+ */
+class EvaluateDialog : DialogFragment() {
+
+    private var btnCancle: AppCompatButton? = null
+    private var btnConform: AppCompatButton? = null
+    private var ratingBar: AppCompatRatingBar? = null
+    private var id: String = ""
+
+    fun setId(mid: String) {
+        id = mid
+    }
+
+    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_evaluate, container, 1194, 834
+        )
+        findId(rootView)
+        init()
+        return rootView
+    }
+
+    private fun findId(rootView: View) {
+        ratingBar = rootView.findViewById(R.id.ratingBar)
+        btnCancle = rootView.findViewById(R.id.btnCancle)
+        btnConform = rootView.findViewById(R.id.btnConform)
+    }
+
+    private fun init() {
+        btnCancle?.setOnSingleClickListener {
+            dismiss()
+        }
+
+        btnConform?.setOnSingleClickListener {
+            val score = ratingBar?.numStars
+            val requestBean = EvaluateBean().apply {
+                value = score.toString()
+                mid = id
+            }
+            val body = XUtils.createJson(GsonUtil.GsonString(requestBean))
+            BaselibServiceFactory.getService()
+                .addPatientReview(body)
+                .subscribeOn(Schedulers.io())
+                .compose(MyRxScheduler.ioMain(activity, true))
+                .subscribe(object : BaseObserver<String>() {
+                    override fun onSuccess(t: String?) {
+                        "打分成功".toast()
+                        dismiss()
+                    }
+
+                    override fun onFail(msg: String) {
+                        msg.toast()
+                    }
+                })
+        }
+    }
+}

+ 11 - 0
baselib/src/main/java/com/yingyangfly/baselib/net/BaselibApiService.kt

@@ -1,6 +1,8 @@
 package com.yingyangfly.baselib.net
 
 import io.reactivex.Observable
+import okhttp3.RequestBody
+import retrofit2.http.Body
 import retrofit2.http.POST
 import retrofit2.http.Query
 
@@ -18,4 +20,13 @@ interface BaselibApiService {
     fun getVoiceUrl(
         @Query("voiceMsg") voiceMsg: String
     ): Observable<XBaseEntity<String>>
+
+    /**
+     * 新增评价
+     */
+    @POST("patient_review/save")
+    fun addPatientReview(
+        @Body requestBody: RequestBody
+    ): Observable<XBaseEntity<String>>
+
 }

+ 8 - 0
baselib/src/main/res/drawable/bg_cancel_evaluation.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <corners android:radius="@dimen/divider_13px" />
+    <stroke android:color="@color/color_FF054DFF" android:width="@dimen/divider_1px"/>
+    <solid android:color="@android:color/white" />
+</shape>

+ 18 - 0
baselib/src/main/res/drawable/bg_confirm_evaluation.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+
+    <item>
+        <shape android:shape="rectangle">
+            <corners android:radius="@dimen/divider_13px" />
+            <gradient
+                android:angle="180"
+                android:endColor="@color/color_FF4174FF"
+                android:startColor="@color/color_FF6D9AFF"
+                android:type="linear"
+                android:useLevel="true" />
+        </shape>
+    </item>
+
+</layer-list>

+ 15 - 0
baselib/src/main/res/drawable/layer_rating_bar.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    tools:ignore="ResourceName">
+    <item
+        android:id="@android:id/background"
+        android:drawable="@mipmap/icon_star_unselected" />
+    <item
+        android:id="@android:id/secondaryProgress"
+        android:drawable="@mipmap/icon_star_unselected" />
+    <item
+        android:id="@android:id/progress"
+        android:drawable="@mipmap/icon_star_selected" />
+
+</layer-list>

+ 98 - 0
baselib/src/main/res/layout/dialog_evaluate.xml

@@ -0,0 +1,98 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:ignore="MissingDefaultResource,ResourceName">
+
+    <com.google.android.material.card.MaterialCardView
+        android:layout_width="@dimen/divider_502px"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/divider_329px"
+        android:theme="@style/Theme.MaterialComponents.NoActionBar"
+        app:cardBackgroundColor="@android:color/white"
+        app:cardCornerRadius="@dimen/divider_20px"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent">
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:paddingBottom="@dimen/divider_38px">
+
+            <androidx.appcompat.widget.AppCompatTextView
+                android:id="@+id/tvTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/divider_45px"
+                android:gravity="center"
+                android:text="@string/please_rate_this_interview"
+                android:textColor="@color/color_FF333333"
+                android:textSize="@dimen/divider_28px"
+                android:textStyle="bold"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent" />
+
+            <TextView
+                android:id="@+id/tvMark"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/divider_112px"
+                android:layout_marginTop="@dimen/divider_45px"
+                android:text="@string/mark"
+                android:textColor="@color/color_FF222222"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+            <androidx.appcompat.widget.AppCompatRatingBar
+                android:id="@+id/ratingBar"
+                style="@style/MyRadingStyle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_vertical"
+                android:layout_marginStart="@dimen/divider_32px"
+                android:layout_marginTop="@dimen/divider_43px"
+                android:numStars="5"
+                android:stepSize="1.0"
+                app:layout_constraintStart_toEndOf="@+id/tvMark"
+                app:layout_constraintTop_toBottomOf="@+id/tvTitle" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnCancle"
+                android:layout_width="@dimen/divider_180px"
+                android:layout_height="@dimen/divider_59px"
+                android:layout_marginStart="@dimen/divider_50px"
+                android:layout_marginTop="@dimen/divider_63px"
+                android:background="@drawable/bg_cancel_evaluation"
+                android:gravity="center"
+                android:text="@string/cancel"
+                android:textColor="@color/color_FF4D7EFF"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toBottomOf="@+id/tvMark" />
+
+            <androidx.appcompat.widget.AppCompatButton
+                android:id="@+id/btnConform"
+                android:layout_width="@dimen/divider_180px"
+                android:layout_height="@dimen/divider_59px"
+                android:layout_marginStart="@dimen/divider_42px"
+                android:layout_marginTop="@dimen/divider_63px"
+                android:background="@drawable/bg_confirm_evaluation"
+                android:gravity="center"
+                android:text="@string/complete"
+                android:textColor="@android:color/white"
+                android:textSize="@dimen/divider_24px"
+                app:layout_constraintStart_toEndOf="@+id/btnCancle"
+                app:layout_constraintTop_toBottomOf="@+id/tvMark" />
+
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+    </com.google.android.material.card.MaterialCardView>
+
+</androidx.constraintlayout.widget.ConstraintLayout>

BIN
baselib/src/main/res/mipmap-xxhdpi/icon_star_selected.png


BIN
baselib/src/main/res/mipmap-xxhdpi/icon_star_unselected.png


+ 3 - 0
baselib/src/main/res/values/colors.xml

@@ -22,4 +22,7 @@
     <color name="bgDefault">#ffFaFaFa</color>
     <color name="colorTxtDefault">#D8000000</color>
     <color name="color_000000">#000000</color>
+    <color name="color_FF222222">#F222222</color>
+    <color name="color_FF4174FF">#FF4174FF</color>
+    <color name="color_FF6D9AFF">#FF6D9AFF</color>
 </resources>

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

@@ -9,6 +9,7 @@
     <dimen name="divider_600px" tools:ignore="ResourceName">600px</dimen>
     <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
     <dimen name="divider_520px" tools:ignore="ResourceName">520px</dimen>
+    <dimen name="divider_502px" tools:ignore="MissingDefaultResource,ResourceName">502px</dimen>
     <dimen name="divider_483px" tools:ignore="ResourceName">483px</dimen>
     <dimen name="divider_440px" tools:ignore="ResourceName">440px</dimen>
     <dimen name="divider_432px" tools:ignore="ResourceName">432px</dimen>

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

@@ -2,4 +2,8 @@
     <string name="app_name">base</string>
     <string name="good" tools:ignore="ResourceName">好的</string>
     <string name="there_is_currently_no_data_available">暂时没有数据</string>
+    <string name="please_rate_this_interview" tools:ignore="ResourceName">请为本次问诊打分</string>
+    <string name="mark" tools:ignore="ResourceName">评分</string>
+    <string name="cancel" tools:ignore="ResourceName">取消</string>
+    <string name="complete" tools:ignore="ResourceName">完成</string>
 </resources>

+ 10 - 1
baselib/src/main/res/values/themes.xml

@@ -1,4 +1,4 @@
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
     <!-- Base application theme. -->
 
     <style name="loading_dialog" parent="android:style/Theme.Dialog">
@@ -8,4 +8,13 @@
         <item name="android:windowIsFloating">true</item>
         <item name="android:windowContentOverlay">@null</item>
     </style>
+
+    <style name="MyRadingStyle" parent="@android:style/Widget.RatingBar" tools:ignore="ResourceName">
+        <!-- 定义星星图片 -->
+        <item name="android:progressDrawable">@drawable/layer_rating_bar</item>
+        <!-- 根据自定义星星图片的大小,设置相应的值,否则可能显示不全 -->
+        <item name="android:numColumns">5</item>
+        <item name="android:minHeight">@dimen/divider_41px</item>
+        <item name="android:maxHeight">@dimen/divider_41px</item>
+    </style>
 </resources>

+ 13 - 0
tuichat/src/main/java/com/tencent/qcloud/tuikit/tuichat/classicui/widget/message/viewholder/EndConsultationMessageHolder.java

@@ -1,15 +1,22 @@
 package com.tencent.qcloud.tuikit.tuichat.classicui.widget.message.viewholder;
 
 import android.view.View;
+import android.widget.TextView;
 
 import com.tencent.qcloud.tuikit.timcommon.bean.TUIMessageBean;
 import com.tencent.qcloud.tuikit.timcommon.classicui.widget.message.MessageContentHolder;
 import com.tencent.qcloud.tuikit.tuichat.R;
 
+/**
+ * @author 王鹏鹏
+ */
 public class EndConsultationMessageHolder extends MessageContentHolder {
 
+    private TextView tvEvaluate;
+
     public EndConsultationMessageHolder(View itemView) {
         super(itemView);
+        tvEvaluate = itemView.findViewById(R.id.tvEvaluate);
     }
 
     @Override
@@ -19,6 +26,12 @@ public class EndConsultationMessageHolder extends MessageContentHolder {
 
     @Override
     public void layoutVariableViews(TUIMessageBean msg, int position) {
+        tvEvaluate.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+
 
+            }
+        });
     }
 }

+ 7 - 5
tuichat/src/main/res/layout/chat_end_consultation.xml

@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal"
     android:orientation="vertical">
 
-
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -13,11 +12,14 @@
         android:textColor="@color/color_FF333333"
         android:textSize="@dimen/divider_24px" />
 
-
     <TextView
+        android:id="@+id/tvEvaluate"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="请您对我的服务做出评价" />
+        android:layout_marginTop="@dimen/divider_24px"
+        android:text="请您对我的服务做出评价"
+        android:textColor="@color/color_FF4A76FF"
+        android:textSize="@dimen/divider_24px" />
 
 
-</RelativeLayout>
+</LinearLayout>

+ 1 - 0
tuichat/src/main/res/values/dimens.xml

@@ -3,6 +3,7 @@
 
     <dimen name="divider_689px" tools:ignore="ResourceName">689px</dimen>
     <dimen name="divider_533px" tools:ignore="ResourceName">533px</dimen>
+    <dimen name="divider_502px" tools:ignore="ResourceName">502px</dimen>
     <dimen name="divider_440px" tools:ignore="ResourceName">440px</dimen>
     <dimen name="divider_430px" tools:ignore="ResourceName">430px</dimen>
     <dimen name="divider_418px" tools:ignore="ResourceName">418px</dimen>