You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.7 KiB
144 lines
4.7 KiB
package com.novel.read.fragment
|
|
|
|
import android.os.Bundle
|
|
import androidx.recyclerview.widget.GridLayoutManager
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import com.mango.mangolib.event.EventManager
|
|
import com.novel.read.R
|
|
import com.novel.read.adapter.EditRecommendAdapter
|
|
import com.novel.read.adapter.HumanAdapter
|
|
import com.novel.read.adapter.RankAdapter
|
|
import com.novel.read.base.NovelBaseFragment
|
|
import com.novel.read.constants.Constant
|
|
import com.novel.read.dp2px
|
|
import com.novel.read.http.AccountManager
|
|
import com.novel.read.model.protocol.RecommendListResp
|
|
import com.novel.read.utlis.EvenItemDecoration
|
|
import kotlinx.android.synthetic.main.fragment_man.*
|
|
import retrofit2.Call
|
|
import retrofit2.Callback
|
|
import retrofit2.Response
|
|
import java.util.*
|
|
|
|
|
|
class ManFragment : NovelBaseFragment() {
|
|
|
|
private lateinit var mHumanAdapter: HumanAdapter
|
|
private val mHumanList = ArrayList<RecommendListResp.ListBean>()
|
|
private lateinit var mEditAdapter: EditRecommendAdapter
|
|
private val mEditList = ArrayList<RecommendListResp.ListBean>()
|
|
private lateinit var mRankAdapter: RankAdapter
|
|
private val mRankList = ArrayList<RecommendListResp.ListBean>()
|
|
|
|
override fun getLayoutId(): Int {
|
|
return R.layout.fragment_man
|
|
}
|
|
|
|
override fun initView() {
|
|
EventManager.instance.registerSubscriber(this)
|
|
|
|
mHumanAdapter = HumanAdapter(mHumanList)
|
|
rlv_pop.apply {
|
|
layoutManager = GridLayoutManager(activity, 3)
|
|
adapter = mHumanAdapter
|
|
addItemDecoration(EvenItemDecoration(activity!!.dp2px(10), 3))
|
|
}
|
|
|
|
val linearLayoutManager = LinearLayoutManager(activity)
|
|
linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
|
|
rlv_recommend.layoutManager = linearLayoutManager
|
|
mEditAdapter = EditRecommendAdapter(mEditList)
|
|
rlv_recommend.adapter = mEditAdapter
|
|
|
|
mRankAdapter = RankAdapter(mRankList)
|
|
rlv_update.apply {
|
|
layoutManager = GridLayoutManager(activity, 3)
|
|
adapter = mRankAdapter
|
|
addItemDecoration(EvenItemDecoration(activity!!.dp2px(10), 3))
|
|
}
|
|
}
|
|
|
|
override fun initData() {
|
|
swipe.showLoading()
|
|
getData()
|
|
swipe.setOnReloadingListener { getData() }
|
|
}
|
|
|
|
private fun getData() {
|
|
AccountManager.getInstance().getRecommendList(Constant.ListType.Human, HumanCallBack())
|
|
AccountManager.getInstance()
|
|
.getRecommendList(Constant.ListType.EditRecommend, EditCallBack())
|
|
AccountManager.getInstance()
|
|
.getRecommendList(Constant.ListType.HotSearch, HotSearchCallBack())
|
|
}
|
|
|
|
private inner class HumanCallBack : Callback<RecommendListResp> {
|
|
|
|
override fun onResponse(call: Call<RecommendListResp>, response: Response<RecommendListResp>) {
|
|
if (response.isSuccessful && response.body() != null) {
|
|
mHumanList.clear()
|
|
mHumanList.addAll(response.body()!!.list)
|
|
mHumanAdapter.notifyDataSetChanged()
|
|
} else {
|
|
swipe.showError()
|
|
}
|
|
}
|
|
|
|
override fun onFailure(call: Call<RecommendListResp>, t: Throwable) {
|
|
swipe.showError()
|
|
}
|
|
}
|
|
|
|
private inner class EditCallBack : Callback<RecommendListResp> {
|
|
|
|
override fun onResponse(call: Call<RecommendListResp>, response: Response<RecommendListResp>) {
|
|
if (response.isSuccessful && response.body() != null) {
|
|
mEditList.clear()
|
|
mEditList.addAll(response.body()!!.list)
|
|
mEditAdapter.notifyDataSetChanged()
|
|
|
|
} else {
|
|
swipe.showError()
|
|
}
|
|
}
|
|
|
|
override fun onFailure(call: Call<RecommendListResp>, t: Throwable) {
|
|
|
|
}
|
|
}
|
|
|
|
private inner class HotSearchCallBack : Callback<RecommendListResp> {
|
|
|
|
override fun onResponse(call: Call<RecommendListResp>, response: Response<RecommendListResp>) {
|
|
swipe.showFinish()
|
|
if (response.isSuccessful && response.body() != null) {
|
|
mRankList.clear()
|
|
mRankList.addAll(response.body()!!.list)
|
|
mRankAdapter.notifyDataSetChanged()
|
|
} else {
|
|
swipe.showError()
|
|
}
|
|
}
|
|
|
|
override fun onFailure(call: Call<RecommendListResp>, t: Throwable) {
|
|
|
|
}
|
|
}
|
|
|
|
|
|
override fun onDestroy() {
|
|
super.onDestroy()
|
|
EventManager.instance.unregisterSubscriber(this)
|
|
}
|
|
|
|
companion object {
|
|
|
|
fun newInstance(sex: String): ManFragment {
|
|
val args = Bundle()
|
|
args.putString(Constant.Sex, sex)
|
|
val fragment = ManFragment()
|
|
fragment.arguments = args
|
|
return fragment
|
|
}
|
|
}
|
|
}
|
|
|