|
|
@@ -2,11 +2,11 @@ package com.yingyang.livebroadcast.activity.list
|
|
|
|
|
|
import androidx.recyclerview.widget.GridLayoutManager
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route
|
|
|
+import com.alibaba.android.arouter.launcher.ARouter
|
|
|
import com.yingyang.livebroadcast.R
|
|
|
import com.yingyang.livebroadcast.adapter.LiveBroadcastAdapter
|
|
|
import com.yingyang.livebroadcast.databinding.ActivityLiveBroadcastListBinding
|
|
|
import com.yingyang.livebroadcast.entity.Record
|
|
|
-import com.yingyang.livebroadcast.entity.StreamInfo
|
|
|
import com.yingyangfly.baselib.dialog.TipDialogFragment
|
|
|
import com.yingyangfly.baselib.ext.setOnSingleClickListener
|
|
|
import com.yingyangfly.baselib.ext.toast
|
|
|
@@ -31,6 +31,14 @@ class LiveBroadcastListActivity :
|
|
|
Permission.READ_EXTERNAL_STORAGE
|
|
|
)
|
|
|
|
|
|
+ /**
|
|
|
+ * 类型 1预约大厅 2直播 3直播回放
|
|
|
+ */
|
|
|
+ private var method = "1"
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 页码 默认1
|
|
|
+ */
|
|
|
private var page = 1
|
|
|
private var liveBroadcastList = mutableListOf<Record>()
|
|
|
|
|
|
@@ -41,28 +49,63 @@ class LiveBroadcastListActivity :
|
|
|
|
|
|
override fun initViews() {
|
|
|
binding {
|
|
|
- rvLiveBroadcast.layoutManager = GridLayoutManager(this@LiveBroadcastListActivity, 2)
|
|
|
+ rvLiveBroadcast.layoutManager = GridLayoutManager(mContext, 2)
|
|
|
rvLiveBroadcast.adapter = liveBroadcastAdapter
|
|
|
liveBroadcastAdapter.setData(liveBroadcastList)
|
|
|
- liveBroadcastAdapter.onLiveBroadcastImageClickListener = { bean ->
|
|
|
- initPermission(bean)
|
|
|
+ liveBroadcastAdapter.onLiveBroadcastImageClickListener = { url, method, title, id ->
|
|
|
+ when (method) {
|
|
|
+ "预约直播" -> {
|
|
|
+ appointmentLive(id)
|
|
|
+ }
|
|
|
+ "直播中" -> {
|
|
|
+ initPermission(url)
|
|
|
+ }
|
|
|
+ "直播回放" -> {
|
|
|
+ ARouter.getInstance().build(RouterUrlCommon.videoPlayer)
|
|
|
+ .withString("url", url)
|
|
|
+ .withString("title", title)
|
|
|
+ .withTransition(
|
|
|
+ com.yingyangfly.baselib.R.anim.leftin,
|
|
|
+ com.yingyangfly.baselib.R.anim.leftout
|
|
|
+ )
|
|
|
+ .navigation(mContext)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
radioLive.setOnCheckedChangeListener { group, checkedId ->
|
|
|
when (checkedId) {
|
|
|
R.id.rdb_appointment -> {
|
|
|
+ method = "1"
|
|
|
liveBroadcastAdapter.setType("预约直播")
|
|
|
+ loadData(true)
|
|
|
}
|
|
|
R.id.rdb_live -> {
|
|
|
+ method = "2"
|
|
|
liveBroadcastAdapter.setType("直播中")
|
|
|
+ loadData(true)
|
|
|
}
|
|
|
else -> {
|
|
|
+ method = "3"
|
|
|
liveBroadcastAdapter.setType("直播回放")
|
|
|
+ loadData(true)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 预约直播
|
|
|
+ */
|
|
|
+ private fun appointmentLive(id: String) {
|
|
|
+ viewModel.reservationLive(id, fail = {
|
|
|
+ it.toast()
|
|
|
+ }, success = {
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
override fun initListener() {
|
|
|
binding {
|
|
|
layoutHome.setOnSingleClickListener {
|
|
|
@@ -96,7 +139,7 @@ class LiveBroadcastListActivity :
|
|
|
} else {
|
|
|
page++
|
|
|
}
|
|
|
- viewModel.getLiveList(page, fail = {
|
|
|
+ viewModel.getLiveList(method, page, fail = {
|
|
|
endRefresh()
|
|
|
it.toast()
|
|
|
}, success = {
|
|
|
@@ -124,10 +167,10 @@ class LiveBroadcastListActivity :
|
|
|
/**
|
|
|
* 获取应用权限
|
|
|
*/
|
|
|
- private fun initPermission(bean: StreamInfo) {
|
|
|
+ private fun initPermission(url: String) {
|
|
|
val isHasPermission = EsayPermissions.isHasPermissions(this, permissions)
|
|
|
if (isHasPermission) {
|
|
|
- JumpUtil.jumpActivityWithUrl(RouterUrlCommon.liveBroadcast, bean.webrtcPull, this)
|
|
|
+ JumpUtil.jumpActivityWithUrl(RouterUrlCommon.liveBroadcast, url, this)
|
|
|
} else {
|
|
|
EsayPermissions.with(this).permission(permissions).request(object : OnPermission {
|
|
|
override fun noPermission(denied: MutableList<String>?, quick: Boolean) {
|
|
|
@@ -138,8 +181,8 @@ class LiveBroadcastListActivity :
|
|
|
if (isAll) {
|
|
|
JumpUtil.jumpActivityWithUrl(
|
|
|
RouterUrlCommon.liveBroadcast,
|
|
|
- bean.webrtcPull,
|
|
|
- this@LiveBroadcastListActivity
|
|
|
+ url,
|
|
|
+ mContext
|
|
|
)
|
|
|
} else {
|
|
|
showTipDialog()
|