| | |
| | | package com.sinata.xqmuse.ui.course |
| | | |
| | | import android.content.Intent |
| | | import android.os.CountDownTimer |
| | | import android.util.TypedValue |
| | | import android.webkit.WebChromeClient |
| | |
| | | import cn.sinata.xldutils.utils.showAllowingStateLoss |
| | | import cn.sinata.xldutils.visible |
| | | import com.google.android.material.appbar.AppBarLayout |
| | | import com.share.utils.ShareUtils |
| | | import com.sinata.xqmuse.R |
| | | import com.sinata.xqmuse.dialog.SendConfirmDialog |
| | | import com.sinata.xqmuse.dialog.ShareDialog |
| | | import com.sinata.xqmuse.network.Apis |
| | | import com.sinata.xqmuse.network.HttpManager |
| | | import com.sinata.xqmuse.network.entity.Chapter |
| | | import com.sinata.xqmuse.network.entity.CourseBean |
| | |
| | | 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 kotlinx.android.synthetic.main.activity_buy_course.* |
| | | import com.umeng.socialize.bean.SHARE_MEDIA |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.* |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.iv_cover |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.tv_1 |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.tv_action |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.tv_count |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.tv_name |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.tv_teacher |
| | | import org.jetbrains.anko.imageResource |
| | | import org.jetbrains.anko.startActivity |
| | | import org.jetbrains.anko.textColorResource |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.iv_back |
| | | import kotlinx.android.synthetic.main.activity_course_deatil.webView |
| | | import kotlinx.android.synthetic.main.activity_level.* |
| | | import org.jetbrains.anko.* |
| | | |
| | | class CourseDetailActivity : TransparentStatusBarActivity() { |
| | | override fun setContentView() = R.layout.activity_course_deatil |
| | |
| | | } |
| | | |
| | | tv_action.setOnClickListener { |
| | | getData(false) |
| | | if (tv_action.text == "立即学习"){ |
| | | if (data?.list?.isNullOrEmpty() == true) |
| | | toast("该课程暂未添加章节") |
| | | else |
| | | startActivity<StudyActivity>("id" to data?.list?.firstOrNull()?.id) |
| | | } else |
| | | getData(false) |
| | | } |
| | | iv_collect.setOnClickListener { |
| | | HttpManager.collectCourse(data?.id?:"").request(this){_,_-> |
| | | data?.recommend = if (data?.recommend == 1) 2 else 1 |
| | | iv_collect.setImageResource(if (data?.recommend == 1) R.mipmap.collected else R.mipmap.uncollect) |
| | | data?.isCollect = if (data?.isCollect == 1) 2 else 1 |
| | | iv_collect.setImageResource(if (data?.isCollect == 1) R.mipmap.collected else R.mipmap.uncollect) |
| | | toast(if (data?.isCollect == 1) "收藏成功" else "已取消收藏") |
| | | } |
| | | } |
| | | iv_share.setOnClickListener { |
| | | val shareDialog = ShareDialog() |
| | | shareDialog.callback = object :StringCallback{ |
| | | override fun onResult(rst: String) { |
| | | |
| | | if (rst == "wx"){ |
| | | ShareUtils.share(this@CourseDetailActivity, |
| | | 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,Const.SHARE.SHARE_COURSE_TITLE, |
| | | Apis.SHARE_COURSE.format(data?.id),null,"") |
| | | } |
| | | } |
| | | } |
| | | shareDialog.showAllowingStateLoss(supportFragmentManager,"share") |
| | |
| | | scroll2Position(2) |
| | | checkTab(2) |
| | | } |
| | | scrollView.setOnScrollChangeListener { v: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int -> |
| | | scrollView.setOnScrollChangeListener { _: NestedScrollView?, _: Int, scrollY: Int, _: Int, _: Int -> |
| | | if (!scrollByTab) |
| | | when { |
| | | scrollY>=tv_2.top -> checkTab(2) |
| | |
| | | else -> checkTab(0) |
| | | } |
| | | } |
| | | chapterAdapter.setOnItemClickListener { view, position -> |
| | | getData(false) |
| | | chapterAdapter.setOnItemClickListener { _, position -> |
| | | if (tv_action.text == "立即学习") |
| | | startActivity<StudyActivity>("id" to data?.list?.get(position)?.id,"index" to position) |
| | | else |
| | | getData(false) |
| | | } |
| | | courseAdapter.setOnItemClickListener { _, position -> |
| | | showDialog() |
| | | HttpManager.getPayCourseInfoById(courseList[position].id?:"").request(this,success = { _, data-> |
| | | dismissDialog() |
| | | data?.goDetail(this) |
| | | }){_,_-> |
| | | dismissDialog() |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | rv_chapter.adapter = chapterAdapter |
| | | rv_push.layoutManager = GridLayoutManager(this,2) |
| | | rv_push.adapter = courseAdapter |
| | | |
| | | webView.backgroundColor = 0 |
| | | webView.background.alpha = 0 |
| | | appbar.addOnOffsetChangedListener(object : AppBarStateChangeListener() { |
| | | override fun onStateChanged(appBarLayout: AppBarLayout?, state: State?, ratio:Double) { |
| | | bg.alpha = if(ratio<0.2) 0f else ((ratio-0.2)/0.8).toFloat() |
| | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | }) |
| | | |
| | | data?.apply { |
| | | iv_collect.setImageResource(if (data?.recommend == 1) R.mipmap.collected else R.mipmap.uncollect) |
| | | iv_collect.setImageResource(if (data?.isCollect == 1) R.mipmap.collected else R.mipmap.uncollect) |
| | | iv_cover.setImageURI(detailUrl) |
| | | tv_name.text = courseTitle |
| | | tv_teacher.text = "导师 ${tutor}" |
| | |
| | | chapterAdapter.notifyDataSetChanged() |
| | | courseList.addAll(list2) |
| | | courseAdapter.notifyDataSetChanged() |
| | | |
| | | if (chargeType == 1||(courseType == 2&&isVip == 1)){ |
| | | if (chargeType == 3) |
| | | tv_send.visible() |
| | | if (chargeType == 1||isBuy == 1||(chargeType == 2&&isVip == 1)){ |
| | | tv_action.text = "立即学习" |
| | | }else{ |
| | | val s = "¥ %s 立即购买".format(generalPrice) |
| | | val s = "¥ %s 立即购买".format(generalPrice!!) |
| | | tv_action.text = SpanBuilder(s).size(0,1,12).size(2,generalPrice.length+2,21).build() |
| | | } |
| | | } |
| | |
| | | } |
| | | }) |
| | | }else |
| | | startActivity<BuyCourseActivity>("isSend" to isSend,"data" to data) |
| | | startActivityForResult<BuyCourseActivity>(1,"isSend" to isSend,"data" to data) |
| | | } |
| | | } |
| | | |
| | | override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { |
| | | super.onActivityResult(requestCode, resultCode, data) |
| | | if (resultCode == RESULT_OK){ |
| | | this.data?.isBuy = 1 |
| | | tv_action.text = "立即学习" |
| | | } |
| | | } |
| | | } |