From bfd1ad288092a4b4a010ea230466f5e86a4e3de4 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期二, 24 十二月 2024 10:09:43 +0800
Subject: [PATCH] fix bug

---
 app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt    |   27 ++--
 app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt |    4 
 app/src/main/res/layout/item_home_list.xml                         |    2 
 app/src/main/res/layout/activity_qa.xml                            |    7 +
 app/src/main/res/layout/activity_wallet.xml                        |   14 +
 app/src/main/res/layout/dialog_tip_tree.xml                        |    4 
 app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeAdapter.kt |    2 
 app/src/main/res/layout/activity_guide2.xml                        |    5 
 app/src/main/java/com/sinata/xqmuse/ui/tree/TreeFragment.kt        |    2 
 app/src/main/res/layout/activity_guide.xml                         |    5 
 app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java          |  123 +++++++++-----------
 app/src/main/java/com/sinata/xqmuse/network/entity/VoiceDetail.kt  |    1 
 app/src/main/res/layout/fragment_tree.xml                          |   18 +-
 app/src/main/res/layout/item_voice_grid.xml                        |    2 
 app/src/main/res/layout/item_course_grid.xml                       |    6 
 app/src/main/java/com/sinata/xqmuse/dialog/BuyRuleDialog.kt        |   11 +
 app/src/main/res/drawable/bg_black_alpha50_bottom_10.xml           |    5 
 app/src/main/res/layout/item_banner_card.xml                       |    8 
 app/src/main/res/layout/activity_voice_detail.xml                  |    7 
 app/src/main/java/com/sinata/xqmuse/ui/home/HomeFragment.kt        |   16 ++
 app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt      |   26 ----
 app/src/main/res/layout/activity_tag.xml                           |    4 
 app/src/main/java/com/sinata/xqmuse/MainActivity.kt                |   46 ++-----
 app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt |    7 +
 24 files changed, 179 insertions(+), 173 deletions(-)

diff --git a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
index f9365a9..2792e10 100644
--- a/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/MainActivity.kt
@@ -49,7 +49,7 @@
     var teacherVideoView:VideoView? = null
     private var bgPlayer:AudioUtils? = null//背景音乐播放器
     private var thinkBgPlayer:AudioUtils? = null//冥想背景音播放器
-    private var thinkPlayer:AudioUtils? = null//冥想背景音播放器
+//    private var thinkPlayer:AudioUtils? = null//冥想背景音播放器
 
     private var guideAudio:String? = null
     private var guidePlayer:AudioUtils? = null//引导音频播放器
@@ -91,13 +91,13 @@
             if (playing){
                 player_play.setImageResource(R.mipmap.player_pause)
                 thinkBgPlayer?.resume()
-                thinkPlayer?.resume()
+//                thinkPlayer?.resume()
                 thinkHandler?.sendEmptyMessage(MSG_PROGRESS)
                 startTime = System.currentTimeMillis()
             }else{
                 player_play.setImageResource(R.mipmap.player_start)
                 thinkBgPlayer?.pause()
-                thinkPlayer?.pause()
+//                thinkPlayer?.pause()
                 thinkHandler?.removeMessages(MSG_PROGRESS)
                 saveThinkRecord()
             }
@@ -184,30 +184,11 @@
         if (voice?.meditationMusicList?.isNullOrEmpty() == false){
             if (thinkBgPlayer == null){
                 thinkBgPlayer = AudioUtils()
-                thinkPlayer = AudioUtils()
                 thinkBgPlayer!!.setOnAudioStatusUpdateListener(this)
-                thinkPlayer!!.setOnAudioStatusUpdateListener(object :AudioUtils.OnAudioStatusUpdateListener{
-                    override fun onUpdate(db: Double, time: Long) {
-                    }
-
-                    override fun onStop(filePath: String?) {
-                    }
-
-                    override fun onStartPlay() {
-                    }
-
-                    override fun onFinishPlay() {
-                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK))
-                    }
-
-                    override fun onGetDuration(duration: Int) {
-                    }
-                })
             }
             val volume = SPUtils.instance().getInt(Const.User.VOLUME_THINK,50)
-            thinkPlayer?.setVolume(volume.toFloat()/100)
+            thinkBgPlayer?.setVolume(volume.toFloat()/100)
             thinkBgPlayer?.startPlayMusic(this, voice?.meditationMusicList?.get(index))
-            thinkPlayer?.startPlayMusic(this, voice?.tutorAudioUrl)
             currentDuration = voice?.meditationSecondList?.get(index)?:0
             EventBus.getDefault().post(EmptyEvent(Const.EventCode.GOT_THINK_DURATION))
             playing = true
@@ -230,7 +211,6 @@
         index = 0
         finishTime = 0L
         thinkBgPlayer?.stopPlayMusic(true)
-        thinkPlayer?.stopPlayMusic(true)
         playing = false
         thinkHandler?.removeMessages(0)
         cl_player.gone()
@@ -379,19 +359,17 @@
             player_play.callOnClick()
         }else if(e.code == Const.EventCode.CHANGE_THINK_VOLUME){
             val v = SPUtils.instance().getInt(Const.User.VOLUME_THINK,50)
-            thinkPlayer?.setVolume(v.toFloat()/100)
+            thinkBgPlayer?.setVolume(v.toFloat()/100)
         }else if(e.code == Const.EventCode.START_GUIDE_AUDIO){
             inGuide = true
             startGuide()
             bgPlayer?.pause()
             thinkBgPlayer?.pause()
-            thinkPlayer?.pause()
         }else if(e.code == Const.EventCode.FINISH_GUIDE_AUDIO){
             inGuide = false
             guidePlayer?.stopPlayMusic(false)
             if (voice!=null&& playing){
                 thinkBgPlayer?.resume()
-                thinkPlayer?.resume()
             }
             if (voice == null)
                 bgPlayer?.resume()
@@ -480,11 +458,13 @@
         }else{//顺序
             index++
             if (index>=voice?.meditationMusicList?.size?:0)//列表已播完
-                index = 0
-            currentDuration = voice?.meditationSecondList?.get(index)?:0
-            EventBus.getDefault().post(EmptyEvent(Const.EventCode.GOT_THINK_DURATION))
-            if (playing)
-                thinkBgPlayer?.startPlayMusic(this, voice?.meditationMusicList?.get(index))
+                EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK))
+            else{
+                currentDuration = voice?.meditationSecondList?.get(index)?:0
+                EventBus.getDefault().post(EmptyEvent(Const.EventCode.GOT_THINK_DURATION))
+                if (playing)
+                    thinkBgPlayer?.startPlayMusic(this, voice?.meditationMusicList?.get(index))
+            }
         }
     }
 
@@ -503,7 +483,7 @@
         var voice: VoiceDetail? = null //冥想详情
         var index = 0 //当前播放序号
         var currentDuration = 0 //当前音频长度(秒)
-        var currentPosition = 0 //当前音频进度(秒)
+        var currentPosition = 0L //当前音频进度(毫秒)
         var finishTime = 0L //自动结束的时间戳
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/sinata/xqmuse/dialog/BuyRuleDialog.kt b/app/src/main/java/com/sinata/xqmuse/dialog/BuyRuleDialog.kt
index 7ffcddc..c91b1ae 100644
--- a/app/src/main/java/com/sinata/xqmuse/dialog/BuyRuleDialog.kt
+++ b/app/src/main/java/com/sinata/xqmuse/dialog/BuyRuleDialog.kt
@@ -29,6 +29,9 @@
         arguments?.getString("title")?:""
     }
     var callback:StringCallback? = null
+    private val sHead by lazy {
+        "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
+    }
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         super.onActivityCreated(savedInstanceState)
@@ -50,7 +53,13 @@
         settings.defaultTextEncodingName = "utf-8"
         settings.domStorageEnabled = true
         sc_content.webChromeClient = object : WebChromeClient() {}
-        sc_content.loadData(rule,"text/html; charset=utf-8", "utf-8")
+        sc_content.loadDataWithBaseURL(
+            null,
+            sHead + rule,
+            "text/html",
+            "utf-8",
+            null
+        )
         tv_cancel.setOnClickListener {
             callback?.onResult("refuse")
             dismiss()
diff --git a/app/src/main/java/com/sinata/xqmuse/network/entity/VoiceDetail.kt b/app/src/main/java/com/sinata/xqmuse/network/entity/VoiceDetail.kt
index 3560b5b..c5a0f14 100644
--- a/app/src/main/java/com/sinata/xqmuse/network/entity/VoiceDetail.kt
+++ b/app/src/main/java/com/sinata/xqmuse/network/entity/VoiceDetail.kt
@@ -29,7 +29,6 @@
     val sanskrit: Int,
     val isVip: Int,
     val sortNum: Int,
-    val tutorAudioUrl: String,
     val virtualLearnedNum: Int
 ):Parcelable{
     fun goDetail(context: Context){
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
index 71300ed..95358d0 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/course/BuyCourseActivity.kt
@@ -169,6 +169,13 @@
             val s = "余额抵扣 当前可用 ¥$balance"
             rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyCourseActivity,4,s.length,R.color.textColor99).build()
             rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0)
+
+            if ((data?.generalPrice?:"0.0").toDouble() == 0.0){
+                rb_ali.isEnabled = false
+                rb_wx.isEnabled = false
+                rb_ali.alpha = 0.6f
+                rb_wx.alpha = 0.6f
+            }
         }
     }
 
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt
index 199d538..e77e097 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/BuyVoiceActivity.kt
@@ -44,18 +44,15 @@
 
         tv_action.setOnClickListener {
             if (cb_rule.isChecked){
-                if (cb_rule.isChecked){
-                    if (rb_balance.isChecked&&((data?.balance?:"0.0").toDouble()>=(data?.generalPrice?:"0.0").toDouble())){//余额勾选,并且可用余额大于课程价格,直接扣余额
-                        payBalance()
-                    }else if (rb_ali.isChecked){
-                        pay(2)
-                    }else if (rb_wx.isChecked){
-                        pay(1)
-                    }else{
-                        toast("请选择支付方式")
-                    }
-                }else
-                    toast("请阅读并同意《购买协议》")
+                if ((data?.generalPrice?:"0.0").toDouble() == 0.0||rb_balance.isChecked&&((data?.balance?:"0.0").toDouble()>=(data?.generalPrice?:"0.0").toDouble())){//余额勾选,并且可用余额大于课程价格,直接扣余额
+                    payBalance()
+                }else if (rb_ali.isChecked){
+                    pay(2)
+                }else if (rb_wx.isChecked){
+                    pay(1)
+                }else{
+                    toast("请选择支付方式")
+                }
             }else
                 toast("请阅读并同意《购买协议》")
         }
@@ -118,6 +115,12 @@
                 val s = "余额抵扣 当前可用 ¥$balance"
                 rb_balance.text = SpanBuilder(s).size(4,s.length,11).color(this@BuyVoiceActivity,4,s.length,R.color.textColor99).build()
                 rb_balance.isChecked = !(balance.isNullOrEmpty()||balance.toDouble() == 0.0)
+                if ((data?.generalPrice?:"0.0").toDouble() == 0.0){
+                    rb_ali.isEnabled = false
+                    rb_wx.isEnabled = false
+                    rb_ali.alpha = 0.6f
+                    rb_wx.alpha = 0.6f
+                }
             }
         }
     }
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 2b09161..10cdb14 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
@@ -19,11 +19,13 @@
 import com.sinata.xqmuse.ui.home.adapter.HomeBannerAdapter
 import com.sinata.xqmuse.ui.home.adapter.TopMenuAdapter
 import com.sinata.xqmuse.ui.login.LoginActivity
+import com.sinata.xqmuse.ui.mine.VipActivity
 import com.sinata.xqmuse.utils.Const
 import com.sinata.xqmuse.utils.event.EmptyEvent
 import com.sinata.xqmuse.utils.interfaces.StringCallback
 import kotlinx.android.synthetic.main.fragment_home.*
 import org.greenrobot.eventbus.EventBus
+import org.jetbrains.anko.startActivity
 import org.jetbrains.anko.support.v4.startActivity
 import org.jetbrains.anko.support.v4.toast
 
@@ -106,10 +108,16 @@
                     showDialog()
                     HttpManager.getMeditationDetails(today!!.meditationId).requestByF(this,success = {_,data->
                         dismissDialog()
-                        if (MainActivity.playing)
-                            EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK))
-                        MainActivity.voice = data
-                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.START_THINK))
+                        if (data?.chargeType == 2&&data.isVip != 1){ //会员免费
+                            startActivity<VipActivity>()
+                        }else if (data?.chargeType == 3&&data.isBuy != 1){ //单独收费且未购买
+                            startActivity<BuyVoiceActivity>("id" to data.id)
+                        }else{
+                            if (MainActivity.playing)
+                                EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_THINK))
+                            MainActivity.voice = data
+                            EventBus.getDefault().post(EmptyEvent(Const.EventCode.START_THINK))
+                        }
                     }){_,_->
                         dismissDialog()
                     }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt
index 3b556e5..1b55c56 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/VoiceDetailActivity.kt
@@ -146,7 +146,7 @@
                     iv_play.setImageResource(R.mipmap.player_pause)
                 //恢复进度
                 tv_progress.text = "%02d:%02d".format(MainActivity.currentPosition/1000/60,MainActivity.currentPosition/1000%60)
-                sb_voice.progress = MainActivity.currentPosition/1000
+                sb_voice.progress = (MainActivity.currentPosition/1000).toInt()
             }
         }
         EventBus.getDefault().register(this)
@@ -189,7 +189,7 @@
             sb_voice.max = MainActivity.currentDuration
         }else if (e.code == Const.EventCode.GOT_THINK_POSITION&&MainActivity.voice?.id == voiceDetail?.id){
             tv_progress.text = "%02d:%02d".format(MainActivity.currentPosition/1000/60,MainActivity.currentPosition/1000%60)
-            sb_voice.progress = MainActivity.currentPosition/1000
+            sb_voice.progress = (MainActivity.currentPosition/1000).toInt()
         }
     }
 
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeAdapter.kt b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeAdapter.kt
index 5fb9fef..b28b96b 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeAdapter.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/home/adapter/HomeAdapter.kt
@@ -64,7 +64,7 @@
                 banner_card.visible()
                 val cardBannerAdapter = CardBannerAdapter(data.clientMeditationVOList,context)
                 banner_card.adapter = cardBannerAdapter
-                banner_card.setBannerGalleryEffect(100,15,0.9f)
+                banner_card.setBannerGalleryEffect(110,12,0.92f)
                 banner_card.setOnBannerListener { _, position ->
                     callback?.onResult(data.clientMeditationVOList[position].id)
                 }
diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
index 7b9e93a..7ced5fe 100644
--- a/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
+++ b/app/src/main/java/com/sinata/xqmuse/ui/mine/WalletActivity.kt
@@ -42,8 +42,6 @@
         }
 
         tv_withdraw.clickDelay {
-            toast("暂未开放")
-            return@clickDelay
             startActivity<WithdrawActivity>("balance" to balance)
         }
 
@@ -58,30 +56,6 @@
         }
     }
 
-    private fun withdraw(){
-        WithdrawDialog.show(supportFragmentManager,balance,object :StringCallback{
-            override fun onResult(rst: String) {
-                HttpManager.withdrawal(rst.toDouble()).request(this@WalletActivity,false, {_,_->
-                    startActivity<WithdrawRecordActivity>()
-                    myToast("提交成功")
-                    getData()
-                }){_,msg->
-                    if (msg.contains("绑定")){
-                        TipDialog.show(supportFragmentManager,"提现失败,请先绑定银行卡。",object : TipDialog.OnClickCallback{
-                            override fun onOk() {
-                                startActivity<BindCardActivity>()
-                            }
-
-                            override fun onCancel() {
-
-                            }
-                        },"去绑定")
-                    }else
-                        myToast(msg)
-                }
-            }
-        })
-    }
 
     private fun initView() {
         EventBus.getDefault().register(this)
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 1e234ac..ddc5d59 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
@@ -78,7 +78,7 @@
             EventBus.getDefault().post(EmptyEvent(Const.EventCode.SWITCH_HOME))
         }
         iv_water.clickDelay {
-//            showWater()
+            showWater()
 //            tree?.energyValue = 0
 //            tree!!.treeLevelType++
 //            showTreeAnim(tree!!.getTreeApng(),true)
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 8dd777c..042d34c 100644
--- a/app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java
+++ b/app/src/main/java/com/sinata/xqmuse/utils/AudioUtils.java
@@ -11,7 +11,12 @@
 
 import com.google.android.exoplayer2.ExoPlayer;
 import com.google.android.exoplayer2.MediaItem;
+import com.google.android.exoplayer2.PlaybackException;
+import com.google.android.exoplayer2.Player;
+import com.google.android.exoplayer2.SimpleExoPlayer;
+import com.google.android.exoplayer2.source.MediaSource;
 import com.sinata.xqmuse.utils.exo.ExoMediaPlayer;
+import com.sinata.xqmuse.utils.exo.ExoMediaPlayerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -32,7 +37,7 @@
     public static final int MAX_LENGTH = 1000 * 600;// 最大录音时长十分钟,实际行程设置为5分钟上传一次
 
     private OnAudioStatusUpdateListener audioStatusUpdateListener;
-    private MediaPlayer mMediaPlayer;
+    private SimpleExoPlayer mMediaPlayer;
 
     private float volume = 0.5f; //播放音量
 
@@ -231,34 +236,34 @@
         if (mMediaPlayer != null) {
             stopPlayMusic(false);
         }
-        mMediaPlayer = new MediaPlayer();
-        mMediaPlayer.setVolume(volume,volume);
+        mMediaPlayer = new SimpleExoPlayer.Builder(context).build();
+        mMediaPlayer.setVolume(volume);
         isPause = false;
         try {
             Log.e("mmp", "开始播放 path:" + filePath);
-
-            mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
-            mMediaPlayer.setDataSource(context, Uri.parse(filePath));
-            mMediaPlayer.prepareAsync();
-            mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+            MediaItem mediaItem = MediaItem.fromUri(Uri.parse(filePath));
+            mMediaPlayer.setMediaItem(mediaItem);
+            mMediaPlayer.prepare();
+            mMediaPlayer.play();
+            mMediaPlayer.addListener(new Player.Listener(){
                 @Override
-                public void onPrepared(MediaPlayer mp) {
-                    // 装载完毕回调
-                    mMediaPlayer.start();
-                    if (audioStatusUpdateListener != null){
-                        audioStatusUpdateListener.onGetDuration(mMediaPlayer.getDuration());
-                        audioStatusUpdateListener.onStartPlay();
-                    }
+                public void onPlayerError(PlaybackException error) {
+                    Log.e("mmp","播放错误:"+error.getMessage());
                 }
 
-
-            });
-            mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                 @Override
-                public void onCompletion(MediaPlayer mp) {
-                    stopPlayMusic(true);
-//                    baseEvent.setMsg(filePath);
-//                    EventBus.getDefault().post(baseEvent);
+                public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
+                    if (playbackState == Player.STATE_BUFFERING)
+                        Log.e("mmp","缓冲中...STATE_BUFFERING");
+                    else if (playbackState == Player.STATE_READY){
+                        Log.e("mmp","缓冲完成,音频准备就绪:STATE_READY");
+
+                    } else if (playbackState == Player.STATE_ENDED){
+                        Log.e("mmp","播放完成:STATE_ENDED");
+                        stopPlayMusic(true);
+                    } else if (playbackState == Player.STATE_IDLE){
+                        Log.e("mmp","播放器空闲:STATE_IDLE");
+                    }
                 }
             });
         } catch (Exception e) {
@@ -276,34 +281,16 @@
         if (mMediaPlayer != null) {
             stopPlayMusic(false);
         }
-        mMediaPlayer = new MediaPlayer();
-        mMediaPlayer.setVolume(volume,volume);
+        mMediaPlayer = new SimpleExoPlayer.Builder(context).build();
+        mMediaPlayer.setVolume(volume);
         isPause = false;
         try {
             Log.e("mmp", "循环播放 path:" + filePath);
-            mMediaPlayer.setDataSource(context, Uri.parse(filePath));
-            mMediaPlayer.prepareAsync();
-            mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
-                @Override
-                public void onPrepared(MediaPlayer mp) {
-                    // 装载完毕回调
-                    mMediaPlayer.start();
-                    if (audioStatusUpdateListener != null)
-                        audioStatusUpdateListener.onStartPlay();
-                }
-            });
-            mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
-                @Override
-                public void onCompletion(MediaPlayer mp) {
-//                    Log.e("mmp", "播放完成 从新循环 path:" + filePath);
-                    mMediaPlayer.start();
-                    if (isPause){
-//                        Log.e("mmp", "循环播放异步暂停");
-                        mMediaPlayer.pause();
-                    }
-                }
-            });
-
+            MediaItem mediaItem = MediaItem.fromUri(Uri.parse(filePath));
+            mMediaPlayer.setMediaItem(mediaItem);
+            mMediaPlayer.prepare();
+            mMediaPlayer.setRepeatMode(Player.REPEAT_MODE_ONE);
+            mMediaPlayer.play();
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -318,7 +305,7 @@
 
     public void resume(){
         if (mMediaPlayer != null) {
-            mMediaPlayer.start();
+            mMediaPlayer.play();
             isPause = false;
         }
     }
@@ -332,11 +319,11 @@
     public void setVolume(float volume){
         this.volume = volume;
         if (mMediaPlayer!=null){
-            mMediaPlayer.setVolume(volume,volume);
+            mMediaPlayer.setVolume(volume);
         }
     }
 
-    public int getCurrentPosition(){
+    public long getCurrentPosition(){
         if (mMediaPlayer!=null){
             return mMediaPlayer.getCurrentPosition();
         }
@@ -369,23 +356,23 @@
      * @param filePath
      * @return
      */
-    public int getMusicTime(Context context, String filePath) {
-        if (mMediaPlayer != null) {
-            stopPlayMusic(false);
-        }
-        mMediaPlayer = new MediaPlayer();
-        try {
-            mMediaPlayer.setDataSource(context, Uri.parse(filePath));
-            mMediaPlayer.prepare();
-            int duration = mMediaPlayer.getDuration();
-            if (0 != duration) {
-                mMediaPlayer.release();
-                return duration / 1000;
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return 0;
-    }
+//    public int getMusicTime(Context context, String filePath) {
+//        if (mMediaPlayer != null) {
+//            stopPlayMusic(false);
+//        }
+//        mMediaPlayer = new MediaPlayer();
+//        try {
+//            mMediaPlayer.setDataSource(context, Uri.parse(filePath));
+//            mMediaPlayer.prepare();
+//            int duration = mMediaPlayer.getDuration();
+//            if (0 != duration) {
+//                mMediaPlayer.release();
+//                return duration / 1000;
+//            }
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        }
+//        return 0;
+//    }
 
 }
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_black_alpha50_bottom_10.xml b/app/src/main/res/drawable/bg_black_alpha50_bottom_10.xml
new file mode 100644
index 0000000..b000d49
--- /dev/null
+++ b/app/src/main/res/drawable/bg_black_alpha50_bottom_10.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp"/>
+    <solid android:color="#80000000"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_guide.xml b/app/src/main/res/layout/activity_guide.xml
index b2547bd..8bcf343 100644
--- a/app/src/main/res/layout/activity_guide.xml
+++ b/app/src/main/res/layout/activity_guide.xml
@@ -23,6 +23,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         android:paddingStart="10dp"
+        android:fontFamily="@font/fly_flower_song"
         android:paddingTop="5dp"
         android:paddingBottom="5dp"
         android:paddingEnd="10dp"/>
@@ -38,6 +39,7 @@
         android:paddingVertical="14dp"
         android:textSize="24sp"
         android:paddingHorizontal="45dp"
+        android:fontFamily="@font/fly_flower_song"
         android:textStyle="bold"
         android:background="@drawable/bg_white_line_alpha"
         android:text="个性化定制"/>
@@ -48,6 +50,7 @@
         app:layout_constraintEnd_toEndOf="parent"
         android:textSize="19sp"
         android:textColor="@color/white"
+        android:fontFamily="@font/fly_flower_song"
         app:layout_constraintBottom_toTopOf="@id/tv_action"
         android:layout_marginBottom="20dp"
         android:text="愿它成为您心灵栖息的幸福家园"/>
@@ -60,6 +63,7 @@
         android:layout_marginTop="47dp"
         android:textSize="41sp"
         android:text="泉疗愈空间"
+        android:fontFamily="@font/fly_flower_song"
         android:textColor="@color/white"
         android:id="@+id/tv_1"/>
     <TextView
@@ -68,6 +72,7 @@
         app:layout_constraintTop_toBottomOf="@id/tv_1"
         android:gravity="center"
         android:lineSpacingExtra="10dp"
+        android:fontFamily="@font/fly_flower_song"
         android:text="亲爱的家人,温暖喜悦问候您\n我是心泉老师\n欢迎来到泉疗愈空间\n愿这一方空间为您带来\n放松 平和 宁静 与喜悦"
         android:textColor="@color/white"
         android:layout_marginTop="36dp"
diff --git a/app/src/main/res/layout/activity_guide2.xml b/app/src/main/res/layout/activity_guide2.xml
index a44cddd..6a13bcd 100644
--- a/app/src/main/res/layout/activity_guide2.xml
+++ b/app/src/main/res/layout/activity_guide2.xml
@@ -14,6 +14,7 @@
         android:text="亲爱的家人"
         android:textSize="38sp"
         android:id="@+id/tv_1"
+        android:fontFamily="@font/fly_flower_song"
         android:textColor="@color/deepGreen"/>
     <TextView
         android:layout_width="wrap_content"
@@ -24,6 +25,7 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         android:layout_marginTop="40dp"
+        android:fontFamily="@font/fly_flower_song"
         android:textSize="22sp"
         android:textColor="#404040"
         android:lineSpacingExtra="10dp"
@@ -40,6 +42,7 @@
         android:textStyle="bold"
         android:textSize="20sp"
         android:textColor="#404040"
+        android:fontFamily="@font/fly_flower_song"
         android:lineSpacingExtra="10dp"
         android:text="@string/tx_guide"/>
     <TextView
@@ -52,6 +55,7 @@
         android:padding="10dp"
         android:text="跳过"
         android:textStyle="bold"
+        android:fontFamily="@font/fly_flower_song"
         android:id="@+id/tv_skip"
         android:textColor="@color/textColor"
         android:textSize="18sp"/>
@@ -64,6 +68,7 @@
         android:textSize="22sp"
         android:textColor="@color/white"
         android:textStyle="bold"
+        android:fontFamily="@font/fly_flower_song"
         android:paddingVertical="14dp"
         android:paddingHorizontal="90dp"
         android:background="@drawable/bg_mid_green_30"
diff --git a/app/src/main/res/layout/activity_qa.xml b/app/src/main/res/layout/activity_qa.xml
index 2277d2d..eb83996 100644
--- a/app/src/main/res/layout/activity_qa.xml
+++ b/app/src/main/res/layout/activity_qa.xml
@@ -15,6 +15,7 @@
         android:textSize="19sp"
         android:text="跳过"
         android:id="@+id/tv_skip"
+        android:fontFamily="@font/fly_flower_song"
         android:layout_marginBottom="50dp"/>
     <RadioGroup
         android:id="@+id/rg_qa"
@@ -28,6 +29,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="星/星/知/我/心"
+            android:fontFamily="@font/fly_flower_song"
             android:textColor="@color/textColor99"
             android:textSize="16sp"
             android:layout_marginTop="50dp"
@@ -39,6 +41,7 @@
             android:layout_marginTop="12dp"
             android:textSize="24sp"
             android:textColor="@color/deepGreen"
+            android:fontFamily="@font/fly_flower_song"
             android:gravity="center"
             android:text="您是否内心纠结敏感多疑"/>
         <RadioButton
@@ -50,6 +53,7 @@
             android:textSize="18sp"
             android:gravity="center"
             android:paddingVertical="14dp"
+            android:fontFamily="@font/fly_flower_song"
             android:textColor="@color/selector_green_white"
             android:layout_marginHorizontal="35dp"
             android:layout_marginTop="38dp"
@@ -60,6 +64,7 @@
             android:id="@+id/rb_no"
             android:text="否"
             android:button="@null"
+            android:fontFamily="@font/fly_flower_song"
             android:textSize="18sp"
             android:gravity="center"
             android:paddingVertical="14dp"
@@ -72,6 +77,7 @@
             android:layout_height="wrap_content"
             android:id="@+id/rb_maybe"
             android:text="偶尔有"
+            android:fontFamily="@font/fly_flower_song"
             android:button="@null"
             android:textSize="18sp"
             android:gravity="center"
@@ -86,6 +92,7 @@
         android:id="@+id/mask"
         android:layout_width="0dp"
         android:layout_height="0dp"
+        android:fontFamily="@font/fly_flower_song"
         app:layout_constraintTop_toTopOf="@id/rg_qa"
         app:layout_constraintBottom_toBottomOf="@id/rg_qa"
         app:layout_constraintStart_toStartOf="@id/rg_qa"
diff --git a/app/src/main/res/layout/activity_tag.xml b/app/src/main/res/layout/activity_tag.xml
index f470774..f6ab7a6 100644
--- a/app/src/main/res/layout/activity_tag.xml
+++ b/app/src/main/res/layout/activity_tag.xml
@@ -22,6 +22,7 @@
             android:text="跳过"
             android:textSize="18sp"
             android:textColor="@color/textColor"
+            android:fontFamily="@font/fly_flower_song"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             android:layout_marginBottom="30dp"
@@ -41,6 +42,7 @@
             android:layout_marginEnd="20dp"
             app:layout_constraintWidth_percent="0.32"
             android:gravity="center"
+            android:fontFamily="@font/fly_flower_song"
             android:background="@drawable/bg_deep_green_line_30"
             android:text="上一步"/>
         <TextView
@@ -56,6 +58,7 @@
             android:background="@drawable/bg_mid_green_30"
             android:textColor="@color/white"
             android:paddingVertical="12dp"
+            android:fontFamily="@font/fly_flower_song"
             android:textSize="16sp"
             android:layout_marginBottom="20dp"/>
         <LinearLayout
@@ -74,6 +77,7 @@
             android:text="您在这方空间最想\n解决和收获的是哪方面问题"
             android:gravity="center"
             app:layout_constraintStart_toStartOf="parent"
+            android:fontFamily="@font/fly_flower_song"
             app:layout_constraintEnd_toEndOf="parent"
             android:textColor="@color/darkGreen"
             app:layout_constraintTop_toTopOf="parent"
diff --git a/app/src/main/res/layout/activity_voice_detail.xml b/app/src/main/res/layout/activity_voice_detail.xml
index cbc1348..c1f06db 100644
--- a/app/src/main/res/layout/activity_voice_detail.xml
+++ b/app/src/main/res/layout/activity_voice_detail.xml
@@ -135,8 +135,9 @@
         android:textColor="@color/white"
         android:textStyle="bold"
         android:textSize="14sp"
-        android:lineSpacingExtra="8dp"
-        android:lines="2"
+        android:lineSpacingExtra="3dp"
+        android:maxLines="3"
+        android:ellipsize="end"
         android:text="聆听大自然,感受大自然的美,感受海浪带给我们的宁静。"/>
     <TextView
         android:layout_width="match_parent"
@@ -150,7 +151,7 @@
         android:textColor="@color/white"
         android:textSize="26sp"
         android:textStyle="bold"
-        android:layout_marginBottom="20dp"/>
+        android:layout_marginBottom="16dp"/>
     <ImageView
         android:id="@+id/iv_play"
         android:layout_width="60dp"
diff --git a/app/src/main/res/layout/activity_wallet.xml b/app/src/main/res/layout/activity_wallet.xml
index cf82dec..94e44a5 100644
--- a/app/src/main/res/layout/activity_wallet.xml
+++ b/app/src/main/res/layout/activity_wallet.xml
@@ -47,6 +47,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             android:layout_marginTop="26dp"
             android:textColor="@color/textColor"
@@ -58,6 +59,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             app:layout_constraintStart_toStartOf="@id/tv_2"
+            app:layout_constraintEnd_toEndOf="@id/tv_2"
             android:textColor="@color/textColor"
             app:layout_constraintTop_toBottomOf="@id/tv_2"
             android:textSize="35sp"
@@ -67,6 +69,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:id="@+id/tv_3"
+            android:visibility="gone"
             app:layout_constraintTop_toBottomOf="@id/tv_balance"
             app:layout_constraintStart_toStartOf="@id/tv_balance"
             android:textSize="12sp"
@@ -77,6 +80,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:id="@+id/tv_4"
+            android:visibility="gone"
             app:layout_constraintTop_toBottomOf="@id/tv_balance"
             app:layout_constraintStart_toEndOf="@id/tv_3"
             app:layout_constraintEnd_toEndOf="parent"
@@ -89,6 +93,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:id="@+id/tv_recharge_money"
+            android:visibility="gone"
             app:layout_constraintTop_toBottomOf="@id/tv_3"
             app:layout_constraintStart_toStartOf="@id/tv_balance"
             android:textSize="20sp"
@@ -100,6 +105,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:id="@+id/tv_income"
+            android:visibility="gone"
             app:layout_constraintTop_toBottomOf="@id/tv_3"
             app:layout_constraintStart_toStartOf="@id/tv_4"
             android:textSize="20sp"
@@ -115,7 +121,6 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintBottom_toBottomOf="parent"/>
 
-
         <TextView
             android:id="@+id/tv_action"
             android:layout_width="0dp"
@@ -123,7 +128,9 @@
             app:layout_constraintStart_toEndOf="@id/center"
             android:layout_height="49dp"
             android:layout_marginStart="6dp"
+            android:visibility="invisible"
             android:layout_marginTop="20dp"
+            app:layout_goneMarginTop="30dp"
             android:layout_marginEnd="13dp"
             app:layout_constraintBottom_toBottomOf="parent"
             android:text="充值"
@@ -134,11 +141,12 @@
             app:layout_constraintTop_toBottomOf="@id/tv_recharge_money"/>
         <TextView
             android:id="@+id/tv_withdraw"
-            android:layout_width="0dp"
+            android:layout_width="wrap_content"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toStartOf="@id/center"
+            app:layout_constraintEnd_toEndOf="parent"
             android:layout_height="49dp"
             android:layout_marginEnd="6dp"
+            android:paddingHorizontal="90dp"
             android:textColor="@color/textColor"
             android:gravity="center"
             android:background="@drawable/bg_white_25dp"
diff --git a/app/src/main/res/layout/dialog_tip_tree.xml b/app/src/main/res/layout/dialog_tip_tree.xml
index ee2c49f..0bbadc3 100644
--- a/app/src/main/res/layout/dialog_tip_tree.xml
+++ b/app/src/main/res/layout/dialog_tip_tree.xml
@@ -17,7 +17,7 @@
             android:layout_marginTop="24dp"
             android:layout_marginEnd="14dp"
             android:gravity="center"
-            android:text="心泉之树"
+            android:text="生命之树"
             android:textColor="@color/colorPrimary"
             android:textSize="18sp"
             android:textStyle="bold"
@@ -31,7 +31,7 @@
             android:lineSpacingExtra="10dp"
             android:minHeight="100dp"
             android:gravity="center_vertical"
-            android:text="亲爱的家人,感谢您用心的交流。\n现在,您心灵之树的种子已经植入这片沃土,请以农夫的心态用心浇灌,不久的将来,将会长成苍天大树,结出丰硕的果实。加油哦!"
+            android:text="亲爱的家人,生命之树的种子已植入这片沃土,请以农夫的心态用心浇灌,为你加油哦。"
             android:textColor="@color/textColor"
             android:textSize="14sp"
             app:layout_constraintTop_toBottomOf="@id/tv_title" />
diff --git a/app/src/main/res/layout/fragment_tree.xml b/app/src/main/res/layout/fragment_tree.xml
index a2e254d..c5a6805 100644
--- a/app/src/main/res/layout/fragment_tree.xml
+++ b/app/src/main/res/layout/fragment_tree.xml
@@ -50,14 +50,6 @@
                 android:id="@+id/iv_sunshine"
                 app:layout_constraintStart_toStartOf="parent"
                 app:layout_constraintTop_toTopOf="parent"/>
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:id="@+id/iv_water_anim"
-                android:layout_marginTop="110dp"
-                android:layout_marginEnd="50dp"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintTop_toTopOf="parent"/>
 
             <TextView
                 android:layout_width="wrap_content"
@@ -164,6 +156,16 @@
                 android:paddingBottom="150dp"
                 app:layout_constraintBottom_toBottomOf="@id/player"/>
 
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:id="@+id/iv_water_anim"
+                android:layout_marginEnd="30dp"
+                app:layout_constraintEnd_toEndOf="parent"
+                android:layout_marginBottom="200dp"
+                app:layout_constraintBottom_toBottomOf="@id/iv_tree"/>
+
             <TextView
                 android:layout_width="164dp"
                 android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/item_banner_card.xml b/app/src/main/res/layout/item_banner_card.xml
index f1a7de5..2a6fd75 100644
--- a/app/src/main/res/layout/item_banner_card.xml
+++ b/app/src/main/res/layout/item_banner_card.xml
@@ -4,17 +4,19 @@
     android:layout_height="match_parent"
     xmlns:app="http://schemas.android.com/apk/res-auto">
     <com.facebook.drawee.view.SimpleDraweeView
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
         android:id="@+id/iv_bg"
         app:roundedCornerRadius="25dp"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintDimensionRatio="148:213"
         app:placeholderImage="@color/page_bg"
         app:actualImageScaleType="centerCrop"/>
     <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
+        android:layout_width="0dp"
         app:layout_constraintStart_toStartOf="@id/iv_bg"
         app:layout_constraintEnd_toEndOf="@id/iv_bg"
         android:layout_height="wrap_content"
diff --git a/app/src/main/res/layout/item_course_grid.xml b/app/src/main/res/layout/item_course_grid.xml
index 04ca741..478498a 100644
--- a/app/src/main/res/layout/item_course_grid.xml
+++ b/app/src/main/res/layout/item_course_grid.xml
@@ -23,12 +23,12 @@
         app:layout_constraintEnd_toEndOf="@id/iv_bg"
         android:layout_height="wrap_content"
         app:layout_constraintBottom_toBottomOf="@id/iv_bg"
-        android:background="@drawable/bg_white_alpha50_bottom_10">
+        android:background="@drawable/bg_black_alpha50_bottom_10">
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toTopOf="parent"
-            android:layout_marginTop="17dp"
+            android:layout_marginTop="15dp"
             android:layout_marginHorizontal="16dp"
             android:text="缓解压力"
             android:textSize="18sp"
@@ -47,7 +47,7 @@
             android:singleLine="true"
             android:ellipsize="end"
             app:layout_constraintBottom_toBottomOf="parent"
-            android:layout_marginBottom="17dp"
+            android:layout_marginBottom="15dp"
             android:text="缓解压力"
             android:textSize="11sp"
             android:textColor="@color/white"
diff --git a/app/src/main/res/layout/item_home_list.xml b/app/src/main/res/layout/item_home_list.xml
index 821a1a2..c1175cf 100644
--- a/app/src/main/res/layout/item_home_list.xml
+++ b/app/src/main/res/layout/item_home_list.xml
@@ -89,7 +89,7 @@
             android:id="@+id/banner_landscape"/>
         <com.youth.banner.Banner
             android:layout_width="match_parent"
-            android:layout_height="214dp"
+            android:layout_height="224dp"
             android:visibility="gone"
             app:banner_auto_loop="false"
             app:banner_infinite_loop="false"
diff --git a/app/src/main/res/layout/item_voice_grid.xml b/app/src/main/res/layout/item_voice_grid.xml
index 47df79e..b9c8d50 100644
--- a/app/src/main/res/layout/item_voice_grid.xml
+++ b/app/src/main/res/layout/item_voice_grid.xml
@@ -22,7 +22,7 @@
         app:layout_constraintEnd_toEndOf="@id/iv_bg"
         android:layout_height="wrap_content"
         app:layout_constraintBottom_toBottomOf="@id/iv_bg"
-        android:background="@drawable/bg_white_alpha50_bottom_25">
+        android:background="@drawable/bg_black_alpha50_bottom_25">
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"

--
Gitblit v1.7.1