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