package com.yidianling.course.courseNew import android.annotation.SuppressLint import android.content.Context import android.content.Intent import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import androidx.recyclerview.widget.LinearLayoutManager import android.text.TextUtils import android.view.LayoutInflater import android.view.View import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import com.alibaba.android.arouter.facade.annotation.Route import com.ydl.ydl_image.module.GlideApp import com.ydl.ydlcommon.actions.share.ShareUtils import com.ydl.ydlcommon.base.BaseActivity import com.ydl.ydlcommon.bean.StatusBarOptions import com.ydl.ydlcommon.data.http.RxUtils import com.yidianling.common.tools.LogUtil import com.yidianling.common.tools.RxNetTool import com.yidianling.course.R import com.yidianling.course.bean.Course import com.yidianling.course.model.TopicCourseBean import com.yidianling.course.net.CourseRetrofitUtils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers import kotlinx.android.synthetic.main.activity_course_topic.* import kotlinx.android.synthetic.main.course_layout_title_bar.* /** * 课程专题页面 */ @Route(path = "/course/special") class CourseTopicActivity : BaseActivity(), View.OnClickListener, SwipeRefreshLayout.OnRefreshListener { private var opicCourseBean: TopicCourseBean? = null private var adapter: CourseTopicAdapter? = null private var datas: List<Course>? = null private var specialId: Int? = 0 private var headView: ImageView? = null private var footerView: View? = null override fun getStatusViewOptions(): StatusBarOptions { return StatusBarOptions(isAddStatusView = true, statusBarDarkMode = true) } companion object { fun start(context: Context, id: String) { val i = Intent(context, CourseTopicActivity::class.java) i.putExtra("special_id", id) context.startActivity(i) } } override fun layoutResId(): Int { return R.layout.activity_course_topic } override fun initDataAndEvent() { tv_title.text = "课程专题" iv_back.setOnClickListener(this) course_topic_rcv.layoutManager = LinearLayoutManager(this) datas = ArrayList() adapter = CourseTopicAdapter(this, datas!!) course_topic_rcv.adapter = adapter if (!TextUtils.isEmpty(intent.getStringExtra("special_id"))) { specialId = intent.getStringExtra("special_id").toInt() } LogUtil.i("special id: $specialId") swl.setColorSchemeResources(R.color.platform_main_theme) swl.setOnRefreshListener(this) tv_left_menu.setOnClickListener { //分享 share() } initHeadView() initFooterView() loadData() } override fun onRefresh() { swl.isRefreshing = true loadData() } override fun onClick(v: View?) { when (v?.id) { R.id.iv_back -> finish() } } fun initHeadView() { headView = LayoutInflater.from(this).inflate(R.layout.item_course_topic_image, course_topic_rcv, false) as ImageView adapter?.addHeaderView(headView) } fun initFooterView() { footerView = LayoutInflater.from(this).inflate(R.layout.item_course_topic_text, course_topic_rcv, false) adapter?.addFooterView(footerView) } private fun share() { if (null != opicCourseBean && null != opicCourseBean!!.share) { ShareUtils.share(CourseTopicActivity@ this, opicCourseBean!!.share!!.title, opicCourseBean!!.share!!.share_url, opicCourseBean!!.share!!.desc, opicCourseBean!!.share!!.cover) } } @SuppressLint("CheckResult") private fun loadData() { if (!RxNetTool.isConnected(CourseTopicActivity@ this)) { swl.isRefreshing = false course_topic_rcv.visibility = View.GONE v_no_network.visibility = View.VISIBLE return } course_topic_rcv.visibility = View.VISIBLE v_no_network.visibility = View.GONE CourseRetrofitUtils.getCourseTopic(specialId.toString()) .subscribeOn(Schedulers.io()) .compose(RxUtils.resultJavaData()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ resp -> LogUtil.i("resp: $resp") opicCourseBean = resp course_topic_rcv.visibility = View.VISIBLE adapter?.setDatas(resp.courses) headView?.let { GlideApp.with(CourseTopicActivity@ this).load(resp.pic).into(it) } if (resp.explain.isNullOrEmpty()) { footerView?.findViewById<LinearLayout>(R.id.ll_title)!!.visibility = View.GONE } else { footerView?.findViewById<LinearLayout>(R.id.ll_title)!!.visibility = View.VISIBLE footerView?.findViewById<TextView>(R.id.tv_content)!!.text = resp.explain!! } adapter?.notifyDataSetChanged() swl.isRefreshing = false }, { throwable -> LogUtil.e(throwable.toString()) course_topic_rcv.visibility = View.GONE swl.isRefreshing = false }) } }