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