From ec282d9bf134fbda578ff901e4a620222a851d3f Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期三, 20 十一月 2024 10:14:46 +0800
Subject: [PATCH] fix bug

---
 app/src/main/res/mipmap-xxhdpi/uncollect_b.png                                |    0 
 app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeBannerAdapter.kt      |    3 
 app/src/main/java/com/sinata/xqmuse/utils/HtmlUtils.java                      |    2 
 app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqAnswer.kt           |    1 
 app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseGridAdapter.kt    |    3 
 app/src/main/res/mipmap-xxhdpi/ic_contact.png                                 |    0 
 app/src/main/res/layout/activity_course_deatil.xml                            |    2 
 app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt               |    3 
 app/src/main/res/layout/fragment_tree.xml                                     |    2 
 app/src/main/java/com/sinata/xqmuse/ui/course/HelpFragment.kt                 |    6 
 app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt                   |    6 
 app/src/main/java/com/sinata/xqmuse/ui/guide/TagActivity.kt                   |    4 
 app/src/main/java/com/sinata/xqmuse/network/entity/WaterResult.kt             |    2 
 app/src/main/res/layout/fragment_teacher.xml                                  |    1 
 app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt         |   11 +
 app/src/main/res/layout/activity_bgm.xml                                      |    2 
 app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/MsgAdapter.kt        |    6 
 app/src/main/java/com/sinata/xqmuse/utils/Const.kt                            |    6 
 app/src/main/res/layout/activity_vip.xml                                      |    2 
 app/src/main/java/com/sinata/xqmuse/ui/home/adapter/VoiceGridAdapter.kt       |    2 
 app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt                  |    4 
 app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java                     |    4 
 app/src/main/java/com/sinata/xqmuse/network/Apis.kt                           |    4 
 app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt                    |    9 +
 app/src/main/res/layout/activity_qa_detail.xml                                |  175 +++++++++++----------
 app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt        |   11 +
 app/src/main/java/com/sinata/xqmuse/dialog/CommentDialog.kt                   |    2 
 app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt                |    2 
 app/src/main/res/layout/fragment_mine.xml                                     |    2 
 app/src/main/java/com/sinata/xqmuse/ui/guide/QAActivity.kt                    |    2 
 app/src/main/res/layout/activity_voice_detail.xml                             |    2 
 app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt                   |    3 
 app/src/main/java/com/sinata/xqmuse/ui/mine/LevelActivity.kt                  |    3 
 app/src/main/java/com/sinata/xqmuse/MainActivity.kt                           |   11 +
 app/src/main/res/layout/dialog_comment.xml                                    |   10 
 app/src/main/java/com/sinata/xqmuse/ui/course/StudyActivity.kt                |   18 +-
 app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseBannerAdapter.kt  |    6 
 app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt                    |    8 
 app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt                  |    2 
 app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt                   |   16 +
 app/src/main/res/layout/activity_guide.xml                                    |    6 
 app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt             |    6 
 app/src/main/res/layout/fragment_push.xml                                     |    1 
 app/src/main/res/layout/activity_my_course.xml                                |   14 +
 app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt              |    3 
 app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt                      |   14 
 app/src/main/res/layout/activity_level.xml                                    |    1 
 app/src/main/res/mipmap-xxhdpi/ic_share_black.png                             |    0 
 app/src/main/java/com/sinata/xqmuse/network/entity/Msg.kt                     |    2 
 app/src/main/res/raw/bg_movie.mp4                                             |    0 
 app/src/main/res/layout/item_banner_course.xml                                |    4 
 app/src/main/AndroidManifest.xml                                              |    6 
 app/src/main/java/com/sinata/xqmuse/ui/home/adapter/LandscapeBannerAdapter.kt |    2 
 app/src/main/res/layout/activity_guide2.xml                                   |    2 
 /dev/null                                                                     |    0 
 app/src/main/res/layout/activity_offline_course.xml                           |    5 
 app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqWxLogin.kt          |    1 
 app/src/main/java/com/sinata/xqmuse/ui/home/adapter/CardBannerAdapter.kt      |    2 
 app/src/main/java/com/sinata/xqmuse/ui/login/LoginActivity.kt                 |    8 
 59 files changed, 264 insertions(+), 171 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 4641611..580fa5d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -57,8 +57,8 @@
                 <category android:name="android.intent.category.DEFAULT" />
                 <category android:name="android.intent.category.BROWSABLE" />
                 <data
-                    android:scheme="jkfitness"
-                    android:host="jkcyl.cn" />
+                    android:scheme="xqmuse"
+                    android:host="xqmuse.cn" />
             </intent-filter>
         </activity>
         <activity
@@ -142,7 +142,7 @@
         <activity android:name=".ui.tree.ExchangeRecordActivity" android:label="兑换记录"/>
         <activity android:name=".ui.course.PaySuccessActivity" android:label="支付结果"/>
         <activity android:name=".ui.course.HelpCenterActivity" />
-        <activity android:name=".ui.course.CourseSearchResultActivity" android:label="心泉·疗愈"/>
+        <activity android:name=".ui.course.CourseSearchResultActivity" android:label="泉疗愈"/>
         <activity android:name=".ui.course.StudyActivity" android:configChanges="orientation|screenSize|keyboardHidden"/>
         <activity android:name=".ui.home.BuyVoiceActivity" android:label="确认订单"/>
 
diff --git a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
index 1bd9cc8..7cf6d92 100644
--- a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
@@ -1,9 +1,11 @@
 package com.sinata.xqmuse
 
+import android.annotation.SuppressLint
 import android.content.Intent
 import android.os.Handler
 import android.os.Looper
 import android.os.Message
+import android.provider.Settings
 import android.util.Log
 import android.view.View
 import androidx.fragment.app.Fragment
@@ -245,7 +247,7 @@
      * 保存冥想记录
      */
     private fun saveThinkRecord() {
-        if (voice == null||startTime == 0L)
+        if (voice == null||startTime == 0L||SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty())
             return
         val time = ((System.currentTimeMillis() - startTime) / 1000).toInt()
         startTime = 0L
@@ -395,7 +397,7 @@
         }else if(e.code == Const.EventCode.REFRESH_PRIVATE){ //重新答题后,刷新私人定制
             (fragments[0] as HomeFragment).getPrivacy()
         }else if(e.code == Const.EventCode.THINK_TIMER){ //开启倒计时
-            thinkHandler?.sendEmptyMessage(1)
+            thinkHandler?.sendEmptyMessage(MSG_COUNTDOWN)
         }
     }
 
@@ -407,10 +409,13 @@
         }
     }
 
+    @SuppressLint("HardwareIds")
     private fun checkAnswer() {
         val answer = SPUtils.instance().getString(Const.User.ANSWER)
         if (!answer.isNullOrEmpty()){ //已登录并且有答案
-            HttpManager.saveUserAnswers(Gson().fromJson(answer, ReqAnswer::class.java)).request(this,false,success = { _, _->
+            val reqAnswer = Gson().fromJson(answer, ReqAnswer::class.java)
+            reqAnswer?.device = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
+            HttpManager.saveUserAnswers(reqAnswer).request(this,false,success = { _, _->
                 SPUtils.instance().put(Const.User.ANSWER,"").apply()
                 Log.e(Const.Tag,"私人定制已保存")
                 (fragments[0] as HomeFragment).getPrivacy()
diff --git a/app/src/main/java/com/sinata/xqmuse/dialog/CommentDialog.kt b/app/src/main/java/com/sinata/xqmuse/dialog/CommentDialog.kt
index 1c97e4c..8d00fdc 100644
--- a/app/src/main/java/com/sinata/xqmuse/dialog/CommentDialog.kt
+++ b/app/src/main/java/com/sinata/xqmuse/dialog/CommentDialog.kt
@@ -81,7 +81,7 @@
 
     private fun getData(){
         HttpManager.getMeditationQuestionPage(voiceId,page).request(requireActivity() as BaseActivity,success = { _, data->
-            tv_title.text = "${data?.total}条提问"
+            tv_count.text = "${data?.total}条提问"
             if (page == 1)
                 list.clear()
             list.addAll(data?.list?: arrayListOf())
diff --git a/app/src/main/java/com/sinata/xqmuse/network/Apis.kt b/app/src/main/java/com/sinata/xqmuse/network/Apis.kt
index ed4998a..0175c49 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/Apis.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/Apis.kt
@@ -3,8 +3,8 @@
 object Apis {
     private var isTest = true
 
-    private const val TEST_URL = "http://192.168.110.64:9000/" //内网
-//    private const val TEST_URL = "https://xq.xqzhihui.com/api/" //外网
+//    private const val TEST_URL = "http://192.168.110.64:9000/" //内网
+    private const val TEST_URL = "https://xq.xqzhihui.com/api/" //外网
     private const val LINE_URL = "https://jkcyl.cn/app/" //正式服
     val BASE_URL = if (isTest) TEST_URL else LINE_URL
 
diff --git a/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt b/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
index 39464de..c2a442c 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/HttpManager.kt
@@ -320,15 +320,15 @@
     /**
      * 验证码登录
      */
-    fun captchaLogin(code: String, phone: String): Flowable<ResultData<LoginBean>> {
-        return request().captchaLogin("{\"cellPhone\":\"${phone}\",\"captcha\":\"${code}\"}")
+    fun captchaLogin(device: String, code: String, phone: String): Flowable<ResultData<LoginBean>> {
+        return request().captchaLogin("{\"device\":\"${device}\",\"cellPhone\":\"${phone}\",\"captcha\":\"${code}\"}")
     }
 
     /**
      * wx登录
      */
-    fun wxLogin(openid: String?, name: String?,sex: Int?,avatar: String?): Flowable<ResultData<WxLoginBean>> {
-        return request().wxLogin(Gson().toJson(ReqWxLogin(avatar,name,sex,openid)))
+    fun wxLogin(device: String, openid: String?, name: String?,sex: Int?,avatar: String?): Flowable<ResultData<WxLoginBean>> {
+        return request().wxLogin(Gson().toJson(ReqWxLogin(device,avatar,name,sex,openid)))
     }
 
     /**
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/Msg.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/Msg.kt
index ddefb49..d6f14b5 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/Msg.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/Msg.kt
@@ -16,7 +16,7 @@
     val meditationQuestionId: String,
     val noticeType: Int,
     var readStatus: Int,
-    val time: String,
+    val createTime: String,
     val title: String
 )
 
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
index 0467244..c2b95a3 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/TreeInfo.kt
@@ -11,7 +11,7 @@
     val isSign: Int,
     val nextLevel: Int,
     val sowAgain: Int,
-    val status: Int,
+    var status: Int,
     val taskOne: Int,
     val taskTwo: Int,
     var treeLevelType: Int
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/WaterResult.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/WaterResult.kt
index 89d37ba..1c548f8 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/WaterResult.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/WaterResult.kt
@@ -2,7 +2,9 @@
 
 data class WaterResult(
     val growthValue: Int,
+    val treeLevelType: Int,
     val isNext: Boolean,
     val nextLevel: Int,
+    val energyValue: Int,
     val status: Int
 )
\ No newline at end of file
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqAnswer.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqAnswer.kt
index 946e6de..53e3932 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqAnswer.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqAnswer.kt
@@ -5,6 +5,7 @@
 
 @Parcelize
 data class ReqAnswer(
+    var device: String,
     var tagIds: String,
     val userAnswerOneDTOList: ArrayList<UserAnswerOneDTO>
 ):Parcelable
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqWxLogin.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqWxLogin.kt
index 2f7a45e..db021d0 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqWxLogin.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/req/ReqWxLogin.kt
@@ -1,6 +1,7 @@
 package com.sinata.xqmuse.network.entity.req
 
 data class ReqWxLogin(
+    val device: String?,
     val headImgUrl: String?,
     val nickname: String?,
     val sex: Int?,
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt
index f5c2487..cb5e2c0 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/BGMSettingActivity.kt
@@ -83,6 +83,8 @@
             val indexOf = list.map { it.audioFile }.indexOf(bgm)
             if (indexOf>=0){
                 banner_landscape.currentItem = indexOf
+            }else if (list.size>2){
+                banner_landscape.currentItem = 1
             }
             cardBannerAdapter.notifyDataSetChanged()
         }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
index 6d74b0c..f4bf769 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/SplashActivity.kt
@@ -48,15 +48,15 @@
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_splash)
         getImg()
-//        val data = intent.data
-//        if (data!=null){
-//            val url = data.toString()
-//            Log.e("mmp","路径:${url}")
-//            if (url.startsWith("jkfitness://jkcyl.cn?code=")){
+        val data = intent.data
+        if (data!=null){
+            val url = data.toString()
+            Log.e("mmp","路径:${url}")
+//            if (url.startsWith("xqmuse://xqmuse.cn?mid=")){ //何健豪:不做跳转详情
 //                code = url.substring(url.indexOf("=")+1)
-//                Log.e("mmp","解析参数:code=${code}")
+//                Log.e("mmp","解析参数:音频id=${code}")
 //            }
-//        }
+        }
         AMapLocationClient.updatePrivacyShow(this,true,true)
         AMapLocationClient.updatePrivacyAgree(this,true)
         AMapUtilCoreApi.setCollectInfoEnable(false)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt
index 9190763..59c2391 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/CourseDetailActivity.kt
@@ -28,6 +28,7 @@
 import com.sinata.xqmuse.ui.course.adapter.ChapterAdapter
 import com.sinata.xqmuse.ui.course.adapter.CourseGridAdapter
 import com.sinata.xqmuse.utils.AppBarStateChangeListener
+import com.sinata.xqmuse.utils.Const
 import com.sinata.xqmuse.utils.interfaces.StringCallback
 import com.umeng.socialize.bean.SHARE_MEDIA
 import kotlinx.android.synthetic.main.activity_course_deatil.*
@@ -79,11 +80,11 @@
                 override fun onResult(rst: String) {
                     if (rst == "wx"){
                         ShareUtils.share(this@CourseDetailActivity,
-                            SHARE_MEDIA.WEIXIN,data?.courseTitle,"分享你一个课程",
+                            SHARE_MEDIA.WEIXIN,data?.courseTitle, Const.SHARE.SHARE_COURSE_TITLE,
                             Apis.SHARE_COURSE.format(data?.id),null,"")
                     }else{
                         ShareUtils.share(this@CourseDetailActivity,
-                            SHARE_MEDIA.WEIXIN_CIRCLE,data?.courseTitle,"分享你一个课程",
+                            SHARE_MEDIA.WEIXIN_CIRCLE,data?.courseTitle,Const.SHARE.SHARE_COURSE_TITLE,
                             Apis.SHARE_COURSE.format(data?.id),null,"")
                     }
                 }
@@ -154,11 +155,17 @@
                     State.EXPANDED -> {
                         //展开状态
                         iv_back.imageResource = R.mipmap.icon_back_white
+                        iv_share.imageResource = R.mipmap.ic_share
+                        if (data?.isCollect!=1)
+                            iv_collect.imageResource = R.mipmap.uncollect
                         tvTitle.textColorResource = R.color.white
                     }
                     State.COLLAPSED -> {
                         //折叠状态
                         iv_back.imageResource = R.mipmap.back
+                        iv_share.imageResource = R.mipmap.ic_share_black
+                        if (data?.isCollect!=1)
+                            iv_collect.imageResource = R.mipmap.uncollect_b
                         tvTitle.textColorResource = R.color.textColor
                     }
                 }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/HelpFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/HelpFragment.kt
index da019e3..c598a18 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/HelpFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/HelpFragment.kt
@@ -16,15 +16,15 @@
     override fun onFirstVisibleToUser() {
         when(type){
             TYPE_ACCOUNT->{
-                tv_msg.text = "如你当前登录心泉·疗愈的手机号码不是购买课程时填写的手机号码,请点击下方按钮,使用购买课程的手机号码登录即可。"
+                tv_msg.text = "如你当前登录泉疗愈的手机号码不是购买课程时填写的手机号码,请点击下方按钮,使用购买课程的手机号码登录即可。"
                 tv_action.text = "换个手机号登录"
             }
             TYPE_PHONE->{
-                tv_msg.text = "如你希望变更心泉·疗愈的手机号码,请点击下方按钮,根据页面提示录入新的手机号码"
+                tv_msg.text = "如你希望变更泉疗愈的手机号码,请点击下方按钮,根据页面提示录入新的手机号码"
                 tv_action.text = "前往改绑手机号"
             }
             TYPE_WX->{
-                tv_msg.text = "如你希望变更心泉·疗愈的微信号,请点击下方按钮,根据页面提示授权登录其他微信号"
+                tv_msg.text = "如你希望变更泉疗愈的微信号,请点击下方按钮,根据页面提示授权登录其他微信号"
                 tv_action.text = "前往改绑微信号"
             }
         }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt
index db747a1..e056b12 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/MyCourseActivity.kt
@@ -56,6 +56,7 @@
         rv_free.adapter = freeAdapter
         rv_my.layoutManager = GridLayoutManager(this,2)
         rv_my.adapter = myAdapter
+        myAdapter.isOrder = true
 
         refreshLayout.setOnRefreshListener {
             getData()
@@ -81,6 +82,11 @@
                 tv_empty.gone()
                 tv_action.gone()
             }
+            if (freeList.isNullOrEmpty()){
+                tv_empty2.visible()
+            }else{
+                tv_empty2.gone()
+            }
         }){_,_->
             refreshLayout.finishRefresh(false)
         }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
index 53603f1..0181b87 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/OfflineCourseActivity.kt
@@ -16,10 +16,13 @@
 import com.sinata.xqmuse.network.entity.CourseDetail
 import com.sinata.xqmuse.network.request
 import com.sinata.xqmuse.ui.TransparentStatusBarActivity
+import com.sinata.xqmuse.utils.Const
 import com.sinata.xqmuse.utils.glide.GlideUtil
 import com.sinata.xqmuse.utils.interfaces.StringCallback
 import com.umeng.socialize.bean.SHARE_MEDIA
 import kotlinx.android.synthetic.main.activity_offline_course.*
+import org.jetbrains.anko.backgroundColor
+import org.jetbrains.anko.backgroundResource
 import xyz.doikki.videocontroller.StandardVideoController
 import xyz.doikki.videoplayer.player.BaseVideoView.*
 
@@ -37,11 +40,11 @@
                 override fun onResult(rst: String) {
                     if (rst == "wx"){
                         ShareUtils.share(this@OfflineCourseActivity,
-                            SHARE_MEDIA.WEIXIN,data?.courseTitle,"分享你一个课程",
+                            SHARE_MEDIA.WEIXIN,data?.courseTitle, Const.SHARE.SHARE_COURSE_TITLE,
                             Apis.SHARE_OFFLINE.format(data?.id),null,"")
                     }else{
                         ShareUtils.share(this@OfflineCourseActivity,
-                            SHARE_MEDIA.WEIXIN_CIRCLE,data?.courseTitle,"分享你一个课程",
+                            SHARE_MEDIA.WEIXIN_CIRCLE,data?.courseTitle,Const.SHARE.SHARE_COURSE_TITLE,
                             Apis.SHARE_OFFLINE.format(data?.id),null,"")
                     }
                 }
@@ -77,6 +80,8 @@
         settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
         webView.webChromeClient = object : WebChromeClient() {}
         webView.webViewClient = object : WebViewClient() {}
+        webView.backgroundColor = 0
+        webView.background.alpha = 0
         data?.apply {
             iv_collect.setImageResource(if (data?.isCollect == 1) R.mipmap.collected else R.mipmap.uncollect)
             if ((detailUrl?:"").isVideo()){
@@ -85,7 +90,7 @@
                 controller.addDefaultControlComponent(courseTitle, false)
                 mVideoView.setVideoController(controller) //设置控制器
                 mVideoView.setUrl(detailUrl) //设置视频地址
-                GlideUtil.load(this@OfflineCourseActivity, detailUrl, iv_cover, 0)
+                GlideUtil.load(this@OfflineCourseActivity, coverUrl, iv_cover, 0)
             }else{
                 cl_title.gone()
                 iv_cover.gone()
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/StudyActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/StudyActivity.kt
index 58a5479..84828d2 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/StudyActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/StudyActivity.kt
@@ -94,14 +94,16 @@
             BaseVideoView.STATE_PLAYBACK_COMPLETED ->{
                 chapters[adapter.current].isOver = 1
                 saveProgress(1,0)
-                if (adapter.current == chapters.lastIndex){
-                    iv_cover.visible()
-                    ivPlay.visible()
-                }else{
-                    adapter.current++
-                    adapter.notifyDataSetChanged()
-                    startPlay()
-                }
+                iv_cover.visible()
+                ivPlay.visible()
+//                if (adapter.current == chapters.lastIndex){ //测试外包:不自动播放下一章节
+//                    iv_cover.visible()
+//                    ivPlay.visible()
+//                }else{
+//                    adapter.current++
+//                    startPlay()
+//                }
+                adapter.notifyDataSetChanged()
             }
 
         }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt
index a909bac..04c3498 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/TeacherFragment.kt
@@ -18,6 +18,7 @@
 import kotlinx.android.synthetic.main.fragment_teacher.*
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
+import org.jetbrains.anko.backgroundColor
 import xyz.doikki.videocontroller.StandardVideoController
 
 class TeacherFragment : BaseFragment() {
@@ -43,6 +44,8 @@
         settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
         webView.webChromeClient = object : WebChromeClient() {}
         webView.webViewClient = object : WebViewClient() {}
+        webView.backgroundColor = 0
+        webView.background.alpha = 0
         rv_course.layoutManager = GridLayoutManager(requireContext(),2)
         rv_course.adapter = adapter
         getData()
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseBannerAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseBannerAdapter.kt
index 5cd29f8..6c1733e 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseBannerAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseBannerAdapter.kt
@@ -6,6 +6,7 @@
 import android.view.ViewGroup
 import android.widget.ImageView
 import androidx.recyclerview.widget.RecyclerView
+import com.facebook.drawee.view.SimpleDraweeView
 import com.sinata.xqmuse.R
 import com.sinata.xqmuse.network.entity.Banner
 import com.sinata.xqmuse.utils.glide.GlideUtil
@@ -25,12 +26,13 @@
         size: Int
     ) {
         val bannerViewHolder = holder as BannerViewHolder
-        GlideUtil.load(context,data?.url,bannerViewHolder.img,0)
+        bannerViewHolder.img.setImageURI(data?.url)
+//        GlideUtil.load(context,data?.url,bannerViewHolder.img,0)
         bannerViewHolder.bg.visibility = View.GONE
     }
 
     inner class BannerViewHolder(v:View) :RecyclerView.ViewHolder(v){
-        var img:ImageView = v.findViewById(R.id.iv_img) as ImageView
+        var img:SimpleDraweeView = v.findViewById(R.id.iv_img) as SimpleDraweeView
         var bg:View = v.findViewById(R.id.bg) as View
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseGridAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseGridAdapter.kt
index 50a4e82..47620c5 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseGridAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/adapter/CourseGridAdapter.kt
@@ -10,6 +10,7 @@
 import com.facebook.drawee.view.SimpleDraweeView
 import com.sinata.xqmuse.R
 import com.sinata.xqmuse.network.entity.CourseBean
+import com.sinata.xqmuse.utils.HtmlUtils
 import java.util.ArrayList
 
 class CourseGridAdapter(list: ArrayList<CourseBean>,val isVoice:Boolean = false):HFRecyclerAdapter<CourseBean>(list, R.layout.item_course_grid) {
@@ -17,7 +18,7 @@
     override fun onBind(holder: ViewHolder, position: Int, data: CourseBean) {
         holder.bind<SimpleDraweeView>(R.id.iv_bg).setImageURI(if (data.coverUrl.contains(",")) data.coverUrl.split(",").getOrNull(1) else data.coverUrl)
         holder.setText(R.id.tv_title,if (isVoice) data.meditationTitle else data.courseTitle)
-        holder.setText(R.id.tv_subtitle,if (isVoice) data.coverDescription else data.description)
+        holder.setText(R.id.tv_subtitle,if (isVoice) data.coverDescription else if (!data.description.isNullOrEmpty()) data.description else HtmlUtils.getTextFromHtml(data.briefIntroduction))
         holder.setText(R.id.tv_count,(if (isVoice) data.realLearnedNum else data.count).toString())
 
         val iv_vip = holder.bind<View>(R.id.iv_vip)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/MsgAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/MsgAdapter.kt
index 08d2264..f60f7fd 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/MsgAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/discovery/adapter/MsgAdapter.kt
@@ -5,6 +5,7 @@
 import android.widget.TextView
 import cn.sinata.xldutils.adapter.HFRecyclerAdapter
 import cn.sinata.xldutils.adapter.util.ViewHolder
+import cn.sinata.xldutils.utils.ellipsize
 import com.facebook.drawee.view.SimpleDraweeView
 import com.sinata.xqmuse.R
 import com.sinata.xqmuse.network.entity.Msg
@@ -15,10 +16,9 @@
         val iv = holder.bind<ImageView>(R.id.iv)
         iv.setImageResource(if (data.noticeType == 2) R.mipmap.ic_msg1 else R.mipmap.ic_notice)
 //        holder.setText(R.id.tv_type,if (data.noticeType == 2) "回复消息" else "系统消息")
-        holder.setText(R.id.tv_type,data.title)
+        holder.setText(R.id.tv_type,data.title.ellipsize(8))
         holder.bind<View>(R.id.iv_unread).visibility = if (data.readStatus == 1) View.VISIBLE else View.GONE
-        holder.setText(R.id.tv_time,data.time)
+        holder.setText(R.id.tv_time,data.createTime)
         holder.setText(R.id.tv_content,data.content)
     }
-
 }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/guide/QAActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/guide/QAActivity.kt
index 9dc5f91..5f4fd24 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/guide/QAActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/guide/QAActivity.kt
@@ -20,7 +20,7 @@
     override fun setContentView() = R.layout.activity_qa
 
     private val questions = arrayListOf("您是否内心纠结敏感多疑?","您是否辗转反侧彻夜难眠?","您是否情绪失控暴躁易怒?","您是否沉迷情感倍受伤害?","您是否人生迷茫踌躇彷徨?")
-    private var answer: ReqAnswer = ReqAnswer("", arrayListOf())
+    private var answer: ReqAnswer = ReqAnswer("","", arrayListOf())
     private var index = 0
 
     override fun initClick() {
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/guide/TagActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/guide/TagActivity.kt
index 6f393d5..9bb0146 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/guide/TagActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/guide/TagActivity.kt
@@ -1,5 +1,7 @@
 package com.sinata.xqmuse.ui.guide
 
+import android.annotation.SuppressLint
+import android.provider.Settings
 import android.util.Log
 import android.widget.LinearLayout
 import androidx.core.view.children
@@ -27,6 +29,7 @@
     private val answer by lazy { intent.getParcelableExtra<ReqAnswer>("answer") }
     private val tags by lazy { intent.getParcelableArrayListExtra<TagBean>("tags") }
 
+    @SuppressLint("HardwareIds")
     override fun initClick() {
         tv_skip.setOnClickListener {
             onBackPressed()
@@ -48,6 +51,7 @@
                     startActivity<MainActivity>()
                 }else{
                     tv_action.isEnabled = false
+                    answer?.device = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
                     HttpManager.saveUserAnswers(answer!!).request(this,success = {_,_->
                         toast("保存成功")
                         startActivity<MainActivity>()
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt
index 13e0831..2b09161 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt
@@ -162,7 +162,7 @@
                 iv_daily_empty.gone()
                 iv_today.setImageURI(today?.imageUrl)
                 tv_length_today.text = "${today?.clientMeditationVO?.meditationTitle?.ellipsize(12)} | ${"%02d:%02d".format((data?.time?:0)/60,(data?.time?:0)%60)}"
-                tv_today_count.text = "${today?.clientMeditationVO?.realLearnedNum}人已参加学习"
+                tv_today_count.text = "${(today?.clientMeditationVO?.realLearnedNum?:0)+(today?.clientMeditationVO?.virtualLearnedNum?:0)}人已参加学习"
             }
         }
     }
@@ -172,7 +172,6 @@
             iv_play_today.setImageResource(R.mipmap.player_pause)
         else
             iv_play_today.setImageResource(R.mipmap.play)
-
     }
 
     fun getPrivacy() {
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/CardBannerAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/CardBannerAdapter.kt
index 32d4c20..ae4cb28 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/CardBannerAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/CardBannerAdapter.kt
@@ -35,7 +35,7 @@
         bannerViewHolder.iv_bg.setImageURI(data?.coverUrl?.split(",")?.get(1))
         bannerViewHolder.tv_title.text = data?.meditationTitle
         bannerViewHolder.tv_subtitle.text = data?.coverDescription?.ellipsize(6)
-        bannerViewHolder.tv_count.text = (data?.realLearnedNum?:0).toString()
+        bannerViewHolder.tv_count.text = ((data?.realLearnedNum?:0)+(data?.virtualLearnedNum?:0)).toString()
         when(data?.chargeType){ //1=免费 2=会员免费 3=单独收费
             2->{
                 bannerViewHolder.iv_vip.visible()
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeBannerAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeBannerAdapter.kt
index d4c7813..0be42b8 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeBannerAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeBannerAdapter.kt
@@ -34,9 +34,6 @@
             bannerViewHolder.iv_bg.setImageURI(coverUrl)
         bannerViewHolder.tv_name.text = data?.meditationTitle
         bannerViewHolder.tv_subtitle.text = data?.coverDescription
-        bannerViewHolder.iv_play.setOnClickListener {
-            context.toast("播放")
-        }
     }
 
     inner class BannerViewHolder(v:View) :RecyclerView.ViewHolder(v){
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/LandscapeBannerAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/LandscapeBannerAdapter.kt
index 3892d78..f5a6f52 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/LandscapeBannerAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/LandscapeBannerAdapter.kt
@@ -34,7 +34,7 @@
         bannerViewHolder.iv_bg.setImageURI(data?.coverUrl?.split(",")?.get(0))
         bannerViewHolder.tv_title.text = data?.meditationTitle
         bannerViewHolder.tv_subtitle.text = data?.coverDescription?.ellipsize(18)
-        bannerViewHolder.tv_count.text = (data?.realLearnedNum?:0).toString()
+        bannerViewHolder.tv_count.text = ((data?.realLearnedNum?:0)+(data?.virtualLearnedNum?:0)).toString()
         when(data?.chargeType){ //1=免费 2=会员免费 3=单独收费
             2->{
                 bannerViewHolder.iv_vip.visible()
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/VoiceGridAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/VoiceGridAdapter.kt
index c32f8a5..f2f9d87 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/VoiceGridAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/VoiceGridAdapter.kt
@@ -17,7 +17,7 @@
         holder.bind<SimpleDraweeView>(R.id.iv_bg).setImageURI(data.coverUrl?.split(",")?.elementAtOrNull(1))
         holder.setText(R.id.tv_title,data?.meditationTitle)
         holder.setText(R.id.tv_subtitle,data?.coverDescription)
-        holder.setText(R.id.tv_count,(data?.realLearnedNum?:0).toString())
+        holder.setText(R.id.tv_count,(data.realLearnedNum+data.virtualLearnedNum).toString())
 
         val iv_vip = holder.bind<View>(R.id.iv_vip)
         val tv_price = holder.bind<TextView>(R.id.tv_price)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/login/LoginActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/login/LoginActivity.kt
index d3bc1a0..1531acc 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/login/LoginActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/login/LoginActivity.kt
@@ -52,6 +52,10 @@
     private var user = ""
     private var privacy = ""
 
+    private val device by lazy {
+        Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
+    }
+
     @SuppressLint("CheckResult")
     override fun initClick() {
         cb_pwd.setOnClickListener {
@@ -219,7 +223,7 @@
         }
 
         tv_action.isEnabled = false
-        HttpManager.captchaLogin(code, et_phone.text.toString())
+        HttpManager.captchaLogin(device,code, et_phone.text.toString())
             .request(this, success = { _, data ->
                 data?.let {
                     loginSuccess(it.accessToken)
@@ -259,7 +263,7 @@
         val avatar = p2?.get("profile_image_url")
         val gender = p2?.get("gender")
         val nickname = p2?.get("name")
-        HttpManager.wxLogin(openid, nickname,if (gender == "0") 1 else 2,avatar).request(this,false,{ _, data ->
+        HttpManager.wxLogin(device,openid, nickname,if (gender == "0") 1 else 2,avatar).request(this,false,{ _, data ->
             data?.let {
                 if (it.bindStatus ==1){
                     startActivityForResult<BindPhoneActivity>(200,"token" to it.accessToken,"openid" to openid)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/LevelActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/LevelActivity.kt
index f64282b..fbcfea9 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/LevelActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/LevelActivity.kt
@@ -57,7 +57,8 @@
                 "utf-8",
                 null
             )
-            mProgressBar.progress = (data?.growthValue?:0)*100/(data?.nextLevel?:100)
+            mProgressBar.max = data?.nextLevel?:100
+            mProgressBar.progress = data?.growthValue?:0
         }
     }
 }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt
index d0789d5..4fe242a 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/MineFragment.kt
@@ -49,7 +49,7 @@
             startActivity<WatchHisActivity>("type" to WatchHisActivity.HAS_BUY)
         }
         bg_vip.setOnClickListener {
-            startActivityForResult<VipActivity>(1)
+            startActivity<VipActivity>()
         }
         tv_service.setOnClickListener {
             startActivity<ServiceActivity>()
@@ -93,6 +93,8 @@
     fun refreshInfo(e: EmptyEvent){
         if (e.code == Const.EventCode.CHANGE_USER){
             showUserInfo()
+        } else if (e.code == Const.EventCode.USER_INFO_CHANGED){
+            showUserInfo()
         }
     }
 
@@ -110,7 +112,7 @@
                         "你还未开通会员服务"
                     } else{
                         bg_vip.backgroundResource = R.mipmap.bg_vip
-                        tv_describe.text = "您将享受所有会员专享音频,尽情畅游心泉·疗愈世界"
+                        tv_describe.text = "您将享受所有会员专享音频,尽情畅游泉疗愈世界"
                         "${vipExpireTime?.substring(0,10)}到期"
                     }
                     iv_vip.setImageURI(data.levelIcon)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
index f4e5c7d..a608652 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/RechargeActivity.kt
@@ -85,8 +85,9 @@
                 }else{
                     PayUtil.aliPay(this,data?.orderInfo?:"")
                 }
+                onPaySuccess() //todo test
+
             }
-        onPaySuccess()
     }
 
     override fun onPaySuccess() {
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt
index fa3eddf..e7fbf25 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt
@@ -66,9 +66,9 @@
             shareDialog.callback = object :StringCallback{
                 override fun onResult(rst: String) {
                     if (rst == "wx"){
-                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"")
+                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN,Const.SHARE.SHARE_CONTENT,Const.SHARE.SHARE_TITLE,Apis.SHARE_APP.format(userId),null,"")
                     }else if (rst == "circle"){
-                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"")
+                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,Const.SHARE.SHARE_CONTENT,Const.SHARE.SHARE_TITLE,Apis.SHARE_APP.format(userId),null,"")
                     }else{
                         RxPermissions(this@ShareActivity).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe {
                             if (it)
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
index 5eb141e..3b6f8a9 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/VipActivity.kt
@@ -15,10 +15,12 @@
 import com.sinata.xqmuse.ui.TransparentStatusBarActivity
 import com.sinata.xqmuse.ui.mine.adapter.VipPriceAdapter
 import com.sinata.xqmuse.utils.Const
+import com.sinata.xqmuse.utils.event.EmptyEvent
 import com.sinata.xqmuse.utils.interfaces.StringCallback
 import com.sinata.xqmuse.utils.pay.PayListener
 import com.sinata.xqmuse.utils.pay.PayUtil
 import kotlinx.android.synthetic.main.activity_vip.*
+import org.greenrobot.eventbus.EventBus
 import org.jetbrains.anko.backgroundResource
 import org.jetbrains.anko.toast
 
@@ -58,6 +60,10 @@
                                     PayUtil.weChatPay(data!!)
                                 }else{
                                     PayUtil.aliPay(this@VipActivity,data?.orderInfo?:"")
+                                    tv_action.postDelayed({ //TEST CALLBACK
+                                        onPaySuccess()
+                                    },3000)
+
                                 }
                             }
                     }
@@ -98,7 +104,7 @@
                     "你还未开通会员服务"
                 } else{
                     bg_vip.backgroundResource = R.mipmap.bg_vip
-                    tv_describe.text = "您将享受所有会员专享音频,尽情畅游心泉·疗愈世界"
+                    tv_describe.text = "您将享受所有会员专享音频,尽情畅游泉疗愈世界"
                     "${vipExpireTime?.substring(0,10)}到期"
                 }
             }
@@ -139,6 +145,7 @@
 
     override fun onPaySuccess() {
         showVipInfo()
+        EventBus.getDefault().post(EmptyEvent(Const.EventCode.USER_INFO_CHANGED))
     }
 
     override fun onPayCancel() {
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt b/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
index d72c556..6175656 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt
@@ -49,9 +49,9 @@
         Log.e("虚拟导航栏高度", "$virtualBarHeigh")
         val navigationBarHeight = getNavigationBarHeight()
         Log.e("导航栏高度", "$navigationBarHeight")
-        if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度
-            behavior.setPeekHeight(dip(63) - getNavigationBarHeight(), true)
-        else
+//        if (virtualBarHeigh >= getNavigationBarHeight()) //如果虚拟导航栏高度大于或等于导航栏高度,说明虚拟导航栏在显示,需要减去导航栏的高度
+//            behavior.setPeekHeight(dip(63) + getNavigationBarHeight(), true)
+//        else
             behavior.setPeekHeight(dip(63), true)
         tv_rule.setOnClickListener {
             HttpManager.getH5(6).requestByF(this){ _, data->
@@ -94,19 +94,23 @@
             else
                 HttpManager.watering().requestByF(this){_,data->
                     data?.apply {
+                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.USER_INFO_CHANGED)) //刷新成长值
                         tv_max.text = "/$nextLevel"
                         tv_growth.text = growthValue.toString()
                         val targetHeight = growthValue.toDouble()/nextLevel*dip(155)
                         val layoutParams = progress.layoutParams
                         showGrowthAnim(layoutParams.height, max(1,targetHeight.toInt()))
                         showWater()
-                        tree?.energyValue = 0
+                        tree?.energyValue = energyValue
                         tv_power.text = "当前能量值:${(tree?.energyValue?:0)}"
-                        if (isNext){
-                            tree!!.treeLevelType++
+                        if (tree!!.treeLevelType != data.treeLevelType){
+                            tree!!.treeLevelType = data.treeLevelType
                             showTreeAnim(tree!!.getTreeApng(),true)
                             audioPlayer.startPlayMusic(requireContext(),tree!!.getLevelUpAudio())
                             TreeTipDialog.show(childFragmentManager,"升级","恭喜!你的树苗已升级为${tree!!.getLevelName()}阶段!")
+                        }else if (tree!!.status != 2){
+                            tree!!.status = 2
+                            showTreeAnim(tree!!.getTreeApng(),tree!!.treeLevelType != 1)
                         }
                     }
                 }
diff --git a/app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java b/app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java
index f248846..bfaf969 100644
--- a/app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java
+++ b/app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java
@@ -285,10 +285,10 @@
             mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                 @Override
                 public void onCompletion(MediaPlayer mp) {
-                    Log.e("mmp", "播放完成 从新循环 path:" + filePath);
+//                    Log.e("mmp", "播放完成 从新循环 path:" + filePath);
                     mMediaPlayer.start();
                     if (isPause){
-                        Log.e("mmp", "循环播放异步暂停");
+//                        Log.e("mmp", "循环播放异步暂停");
                         mMediaPlayer.pause();
                     }
                 }
diff --git a/app/src/main/java/com/sinata/xqmuse/utils/Const.kt b/app/src/main/java/com/sinata/xqmuse/utils/Const.kt
index 5bf7518..126f371 100644
--- a/app/src/main/java/com/sinata/xqmuse/utils/Const.kt
+++ b/app/src/main/java/com/sinata/xqmuse/utils/Const.kt
@@ -20,6 +20,12 @@
 
     val OSS_DOMAIN = "https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/"
 
+    object SHARE{
+        const val SHARE_TITLE = "分享疗愈时光,让宁静触手可及"
+        const val SHARE_CONTENT = "这份疗愈之旅,带来了意想不到的平静和安宁。愿与你一同分享,让我们在繁忙的生活中找到片刻的温柔,静享属于我们的宁静时光。"
+        const val SHARE_COURSE_TITLE = "传递心灵温暖,一起感受疗愈力量"
+    }
+
     object TREE {
         val first = OSS_DOMAIN+"xinquan/1d3254a9966b476789491032d8bb908a.wav"
         val LEVEL_2 = OSS_DOMAIN+"xinquan/d8daa4d5490f40f9a68a8469ad697660.wav"
diff --git a/app/src/main/java/com/sinata/xqmuse/utils/HtmlUtils.java b/app/src/main/java/com/sinata/xqmuse/utils/HtmlUtils.java
index 6feddda..af0cf7e 100644
--- a/app/src/main/java/com/sinata/xqmuse/utils/HtmlUtils.java
+++ b/app/src/main/java/com/sinata/xqmuse/utils/HtmlUtils.java
@@ -58,6 +58,8 @@
     }
 
     public static String getTextFromHtml(String htmlStr) {
+        if (htmlStr == null||htmlStr.isEmpty())
+            return "";
         htmlStr = delHTMLTag(htmlStr);
         htmlStr = htmlStr.replaceAll(" ", "");
 //        if (htmlStr.length() > 50) {
diff --git a/app/src/main/res/layout/activity_bgm.xml b/app/src/main/res/layout/activity_bgm.xml
index 95511c8..9473df6 100644
--- a/app/src/main/res/layout/activity_bgm.xml
+++ b/app/src/main/res/layout/activity_bgm.xml
@@ -16,7 +16,7 @@
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        android:text="心泉·疗愈"
+        android:text="泉疗愈"
         android:textSize="18sp"
         android:textStyle="bold"
         android:textColor="@color/textColor"
diff --git a/app/src/main/res/layout/activity_course_deatil.xml b/app/src/main/res/layout/activity_course_deatil.xml
index 39d056a..17e2b84 100644
--- a/app/src/main/res/layout/activity_course_deatil.xml
+++ b/app/src/main/res/layout/activity_course_deatil.xml
@@ -90,6 +90,8 @@
                     android:layout_marginTop="25dp"
                     android:textColor="@color/textColor"
                     tools:text="心里咨询课程"
+                    android:singleLine="true"
+                    android:ellipsize="end"
                     android:textStyle="bold"
                     android:layout_marginStart="20sp"
                     android:layout_marginEnd="10dp"
diff --git a/app/src/main/res/layout/activity_guide.xml b/app/src/main/res/layout/activity_guide.xml
index 0f0a3e6..b2547bd 100644
--- a/app/src/main/res/layout/activity_guide.xml
+++ b/app/src/main/res/layout/activity_guide.xml
@@ -8,7 +8,7 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         app:screenScaleType="type_center_crop"
-        app:playerBackgroundColor="@color/black"
+        app:playerBackgroundColor="@color/colorPrimary"
         android:id="@+id/player"/>
 
     <TextView
@@ -59,7 +59,7 @@
         app:layout_constraintEnd_toEndOf="parent"
         android:layout_marginTop="47dp"
         android:textSize="41sp"
-        android:text="心泉·疗愈空间"
+        android:text="泉疗愈空间"
         android:textColor="@color/white"
         android:id="@+id/tv_1"/>
     <TextView
@@ -68,7 +68,7 @@
         app:layout_constraintTop_toBottomOf="@id/tv_1"
         android:gravity="center"
         android:lineSpacingExtra="10dp"
-        android:text="亲爱的家人,温暖喜悦问候您\n我是心泉老师\n欢迎来到心泉·疗愈空间\n愿这一方空间为您带来\n平和 喜悦 放松 宁静"
+        android:text="亲爱的家人,温暖喜悦问候您\n我是心泉老师\n欢迎来到泉疗愈空间\n愿这一方空间为您带来\n放松 平和 宁静 与喜悦"
         android:textColor="@color/white"
         android:layout_marginTop="36dp"
         android:textSize="18sp"/>
diff --git a/app/src/main/res/layout/activity_guide2.xml b/app/src/main/res/layout/activity_guide2.xml
index 8d35292..a44cddd 100644
--- a/app/src/main/res/layout/activity_guide2.xml
+++ b/app/src/main/res/layout/activity_guide2.xml
@@ -27,7 +27,7 @@
         android:textSize="22sp"
         android:textColor="#404040"
         android:lineSpacingExtra="10dp"
-        android:text="请您遵从本心\n回答以下问题\n挑选您喜欢的空间环境\n为您定制专属您的\n心泉·疗愈空间"/>
+        android:text="请您遵从本心\n回答以下问题\n挑选您喜欢的空间环境\n为您定制专属您的\n泉疗愈空间"/>
     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/activity_level.xml b/app/src/main/res/layout/activity_level.xml
index 5ad67a2..c0ff0f9 100644
--- a/app/src/main/res/layout/activity_level.xml
+++ b/app/src/main/res/layout/activity_level.xml
@@ -56,7 +56,6 @@
             app:layout_constraintTop_toBottomOf="@id/iv_level"
             android:layout_marginTop="20dp"
             android:layout_marginHorizontal="14dp"
-            android:max="100"
             android:id="@+id/mProgressBar"/>
         <TextView
             android:layout_width="wrap_content"
diff --git a/app/src/main/res/layout/activity_my_course.xml b/app/src/main/res/layout/activity_my_course.xml
index 16f2603..b581082 100644
--- a/app/src/main/res/layout/activity_my_course.xml
+++ b/app/src/main/res/layout/activity_my_course.xml
@@ -116,6 +116,20 @@
                 android:layout_marginHorizontal="14dp"
                 android:layout_marginTop="9dp"
                 app:layout_constraintTop_toBottomOf="@id/tv_2" />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                app:layout_constraintTop_toBottomOf="@id/tv_2"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                android:id="@+id/tv_empty2"
+                android:text="暂无推荐"
+                android:textSize="12sp"
+                android:layout_marginTop="30dp"
+                android:textColor="@color/textColor66"
+                android:drawableTop="@mipmap/wu"
+                android:drawablePadding="20dp"
+                android:gravity="center"/>
         </androidx.constraintlayout.widget.ConstraintLayout>
     </androidx.core.widget.NestedScrollView>
 
diff --git a/app/src/main/res/layout/activity_offline_course.xml b/app/src/main/res/layout/activity_offline_course.xml
index d888110..5127906 100644
--- a/app/src/main/res/layout/activity_offline_course.xml
+++ b/app/src/main/res/layout/activity_offline_course.xml
@@ -66,6 +66,8 @@
                     app:layout_constraintTop_toTopOf="parent"
                     android:layout_marginTop="25dp"
                     android:textColor="@color/textColor"
+                    android:singleLine="true"
+                    android:ellipsize="end"
                     tools:text="心里咨询课程"
                     android:textStyle="bold"
                     android:layout_marginStart="20sp"
@@ -99,6 +101,8 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:id="@+id/webView"
+                android:layout_marginStart="21dp"
+                android:background="@color/page_bg"
                 android:layout_marginTop="19dp"/>
             <LinearLayout
                 android:layout_width="wrap_content"
@@ -184,6 +188,7 @@
         android:id="@+id/iv_contact"
         android:src="@mipmap/ic_contact"
         app:layout_constraintEnd_toEndOf="parent"
+        android:layout_marginEnd="4dp"
         app:layout_constraintBottom_toBottomOf="parent"
         android:layout_marginBottom="180dp"/>
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_qa_detail.xml b/app/src/main/res/layout/activity_qa_detail.xml
index 3fb1a8b..a010267 100644
--- a/app/src/main/res/layout/activity_qa_detail.xml
+++ b/app/src/main/res/layout/activity_qa_detail.xml
@@ -1,93 +1,102 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:background="@color/white"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools">
-
-    <ImageView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:src="@mipmap/wenti"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        android:layout_marginStart="16dp"
-        android:layout_marginTop="20dp"
-        android:id="@+id/iv"/>
-    <TextView
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:id="@+id/tv_question"
-        app:layout_constraintTop_toTopOf="parent"
-        android:layout_marginTop="18dp"
-        app:layout_constraintStart_toEndOf="@id/iv"
-        android:layout_marginStart="7dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        android:layout_marginEnd="12dp"
-        android:textColor="@color/black"
-        android:textSize="15sp"
-        tools:text="关于账户问题"/>
-    <TextView
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:id="@+id/tv_answer"
-        app:layout_constraintTop_toBottomOf="@id/tv_question"
-        android:layout_marginTop="10dp"
-        app:layout_constraintStart_toEndOf="@id/iv"
-        android:layout_marginStart="7dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        android:layout_marginEnd="12dp"
-        android:textColor="@color/textColor66"
-        android:textSize="12sp"
-        tools:text="关于账户问题"/>
-    <View
+    <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
-        android:layout_height="1px"
-        android:background="@color/dividing_line_color"
-        android:layout_marginHorizontal="16dp"
-        app:layout_constraintTop_toBottomOf="@id/tv_answer"
-        android:layout_marginTop="11dp"/>
-    <TextView
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:id="@+id/tv_1"
-        android:textSize="12sp"
-        android:textColor="@color/textColor66"
-        android:text="咨询客服"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        android:layout_marginBottom="30dp"/>
-
-    <com.facebook.drawee.view.SimpleDraweeView
-        android:id="@+id/iv_code"
-        android:layout_width="96dp"
-        android:layout_height="96dp"
-        android:layout_gravity="center"
-        app:layout_constraintBottom_toTopOf="@id/tv_1"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:actualImageScaleType="fitXY"
-        app:placeholderImage="@color/page_bg"
-        android:layout_marginBottom="4dp"/>
-
-    <RelativeLayout
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        app:layout_constraintTop_toBottomOf="@id/tv_answer"
-        android:layout_marginTop="30dp"
-        android:background="@drawable/bg_grey_10dp_web"
-        app:layout_constraintBottom_toTopOf="@id/iv_code"
-        android:layout_marginBottom="45dp"
-        android:padding="10dp"
-        android:layout_marginHorizontal="16dp">
-        <WebView
+        android:layout_height="wrap_content">
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@mipmap/wenti"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            android:layout_marginStart="16dp"
+            android:layout_marginTop="20dp"
+            android:id="@+id/iv"/>
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_question"
+            app:layout_constraintTop_toTopOf="parent"
+            android:layout_marginTop="18dp"
+            app:layout_constraintStart_toEndOf="@id/iv"
+            android:layout_marginStart="7dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="12dp"
+            android:textColor="@color/black"
+            android:textSize="15sp"
+            tools:text="关于账户问题"/>
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_answer"
+            app:layout_constraintTop_toBottomOf="@id/tv_question"
+            android:layout_marginTop="10dp"
+            app:layout_constraintStart_toEndOf="@id/iv"
+            android:layout_marginStart="7dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginEnd="12dp"
+            android:textColor="@color/textColor66"
+            android:textSize="12sp"
+            tools:text="关于账户问题"/>
+        <View
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:background="@color/transparent"
-            android:id="@+id/webView"/>
-    </RelativeLayout>
+            android:layout_height="1px"
+            android:background="@color/dividing_line_color"
+            android:layout_marginHorizontal="16dp"
+            app:layout_constraintTop_toBottomOf="@id/tv_answer"
+            android:layout_marginTop="11dp"/>
+
+        <RelativeLayout
+            android:id="@+id/rl_web"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:layout_constraintTop_toBottomOf="@id/tv_answer"
+            android:layout_marginTop="30dp"
+            android:background="@drawable/bg_grey_10dp_web"
+            android:padding="10dp"
+            android:layout_marginHorizontal="16dp">
+            <WebView
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:minHeight="300dp"
+                android:background="@color/transparent"
+                android:id="@+id/webView"/>
+        </RelativeLayout>
 
 
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/tv_1"
+            android:textSize="12sp"
+            android:textColor="@color/textColor66"
+            android:text="咨询客服"
+            app:layout_constraintTop_toBottomOf="@id/iv_code"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="4dp"
+            android:layout_marginBottom="30dp"/>
+
+        <com.facebook.drawee.view.SimpleDraweeView
+            android:id="@+id/iv_code"
+            android:layout_width="96dp"
+            android:layout_height="96dp"
+            android:layout_gravity="center"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            android:layout_marginTop="40dp"
+            app:actualImageScaleType="fitXY"
+            app:layout_constraintTop_toBottomOf="@+id/rl_web"
+            app:placeholderImage="@color/page_bg"
+            android:layout_marginBottom="4dp"/>
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+</androidx.core.widget.NestedScrollView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_vip.xml b/app/src/main/res/layout/activity_vip.xml
index be00517..40fab50 100644
--- a/app/src/main/res/layout/activity_vip.xml
+++ b/app/src/main/res/layout/activity_vip.xml
@@ -93,7 +93,7 @@
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="心泉·疗愈会员"
+                android:text="泉疗愈会员"
                 app:layout_constraintTop_toTopOf="@id/bg_vip"
                 app:layout_constraintStart_toStartOf="@id/bg_vip"
                 android:layout_marginStart="19dp"
diff --git a/app/src/main/res/layout/activity_voice_detail.xml b/app/src/main/res/layout/activity_voice_detail.xml
index 2cec135..cbc1348 100644
--- a/app/src/main/res/layout/activity_voice_detail.xml
+++ b/app/src/main/res/layout/activity_voice_detail.xml
@@ -17,7 +17,7 @@
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
-        android:text="心泉·疗愈"
+        android:text="泉疗愈"
         android:textSize="18sp"
         android:textStyle="bold"
         android:textColor="@color/white"
diff --git a/app/src/main/res/layout/dialog_comment.xml b/app/src/main/res/layout/dialog_comment.xml
index 9147189..e6cb22e 100644
--- a/app/src/main/res/layout/dialog_comment.xml
+++ b/app/src/main/res/layout/dialog_comment.xml
@@ -10,7 +10,7 @@
         android:paddingBottom="30dp"
         android:layout_height="wrap_content">
         <TextView
-            android:id="@+id/tv_title"
+            android:id="@+id/tv_count"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="0条提问"
@@ -25,8 +25,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:id="@+id/iv_close"
-            app:layout_constraintTop_toTopOf="@id/tv_title"
-            app:layout_constraintBottom_toBottomOf="@id/tv_title"
+            app:layout_constraintTop_toTopOf="@id/tv_count"
+            app:layout_constraintBottom_toBottomOf="@id/tv_count"
             app:layout_constraintEnd_toEndOf="parent"
             android:padding="10dp"
             android:layout_marginEnd="5dp"
@@ -35,12 +35,12 @@
             android:layout_width="match_parent"
             android:layout_height="1px"
             android:background="@color/textColor66"
-            app:layout_constraintTop_toBottomOf="@id/tv_title"
+            app:layout_constraintTop_toBottomOf="@id/tv_count"
             android:layout_margin="21dp"/>
         <com.scwang.smart.refresh.layout.SmartRefreshLayout
             android:layout_width="match_parent"
             android:layout_height="420dp"
-            app:layout_constraintTop_toBottomOf="@id/tv_title"
+            app:layout_constraintTop_toBottomOf="@id/tv_count"
             android:layout_marginTop="22dp"
             android:id="@+id/refreshLayout">
             <com.scwang.smart.refresh.header.ClassicsHeader
diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml
index 8fd79e9..026393b 100644
--- a/app/src/main/res/layout/fragment_mine.xml
+++ b/app/src/main/res/layout/fragment_mine.xml
@@ -100,7 +100,7 @@
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:text="心泉·疗愈会员"
+                android:text="泉疗愈会员"
                 app:layout_constraintTop_toTopOf="@id/bg_vip"
                 app:layout_constraintStart_toStartOf="@id/bg_vip"
                 android:layout_marginStart="19dp"
diff --git a/app/src/main/res/layout/fragment_push.xml b/app/src/main/res/layout/fragment_push.xml
index e8469e8..b01de50 100644
--- a/app/src/main/res/layout/fragment_push.xml
+++ b/app/src/main/res/layout/fragment_push.xml
@@ -20,7 +20,6 @@
                 android:id="@+id/banner"
                 android:layout_width="match_parent"
                 android:layout_height="0dp"
-                android:layout_marginTop="16dp"
                 android:src="@mipmap/bg_guide"
                 app:layout_constraintDimensionRatio="390:205"
                 app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout/fragment_teacher.xml b/app/src/main/res/layout/fragment_teacher.xml
index 35d97e0..0ffba13 100644
--- a/app/src/main/res/layout/fragment_teacher.xml
+++ b/app/src/main/res/layout/fragment_teacher.xml
@@ -51,6 +51,7 @@
             android:layout_height="wrap_content"
             app:layout_constraintTop_toBottomOf="@id/tv_1"
             android:layout_marginTop="18dp"
+            android:background="@color/white"
             android:id="@+id/webView"/>
 
         <TextView
diff --git a/app/src/main/res/layout/fragment_tree.xml b/app/src/main/res/layout/fragment_tree.xml
index 7c535ce..d9be5f0 100644
--- a/app/src/main/res/layout/fragment_tree.xml
+++ b/app/src/main/res/layout/fragment_tree.xml
@@ -186,7 +186,7 @@
             app:layout_behavior="@string/bottom_sheet_behavior"
             android:id="@+id/bottom"
             android:background="@drawable/bg_white_top_20dp"
-            android:layout_height="311dp">
+            android:layout_height="290dp">
             <TextView
                 android:layout_width="match_parent"
                 android:layout_height="53dp"
diff --git a/app/src/main/res/layout/item_banner_course.xml b/app/src/main/res/layout/item_banner_course.xml
index ef9a74f..e12090b 100644
--- a/app/src/main/res/layout/item_banner_course.xml
+++ b/app/src/main/res/layout/item_banner_course.xml
@@ -3,10 +3,10 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     xmlns:app="http://schemas.android.com/apk/res-auto">
-    <ImageView
+    <com.facebook.drawee.view.SimpleDraweeView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:scaleType="centerCrop"
+        app:actualImageScaleType="fitXY"
         android:id="@+id/iv_img"/>
     <View
         android:layout_width="match_parent"
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_contact.png b/app/src/main/res/mipmap-xxhdpi/ic_contact.png
index 426937a..edee16c 100644
--- a/app/src/main/res/mipmap-xxhdpi/ic_contact.png
+++ b/app/src/main/res/mipmap-xxhdpi/ic_contact.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_share_black.png b/app/src/main/res/mipmap-xxhdpi/ic_share_black.png
new file mode 100644
index 0000000..993ad36
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_share_black.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/uncollect_b.png b/app/src/main/res/mipmap-xxhdpi/uncollect_b.png
new file mode 100644
index 0000000..01a0dbb
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/uncollect_b.png
Binary files differ
diff --git a/app/src/main/res/raw/bg_movie.mov b/app/src/main/res/raw/bg_movie.mov
deleted file mode 100644
index 6fc47cb..0000000
--- a/app/src/main/res/raw/bg_movie.mov
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/raw/bg_movie.mp4 b/app/src/main/res/raw/bg_movie.mp4
new file mode 100644
index 0000000..178b17a
--- /dev/null
+++ b/app/src/main/res/raw/bg_movie.mp4
Binary files differ

--
Gitblit v1.7.1