package com.dollearn.student.ui.welfare
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.view.animation.AnimationUtils
|
import androidx.core.os.bundleOf
|
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import cn.sinata.xldutils.visible
|
import com.dollearn.student.R
|
import com.dollearn.student.WeparkApplication
|
import com.dollearn.student.dialog.ChooseShopDialog
|
import com.dollearn.student.network.HttpManager
|
import com.dollearn.student.network.entity.Goods
|
import com.dollearn.student.network.request
|
import com.dollearn.student.ui.TransparentStatusBarActivity
|
import com.dollearn.student.ui.home.adapter.FilterAdapter
|
import com.dollearn.student.ui.welfare.adapter.GoodsGridAdapter
|
import com.dollearn.student.utils.event.EmptyEvent
|
import com.dollearn.student.utils.extention.clickDelay
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.activity_score_shop.*
|
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.Subscribe
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
|
class ScoreShopActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_score_shop
|
|
private val isTicket by lazy { intent.getBooleanExtra("isTicket",false) } //true:直接展示门票商品
|
|
private var page = 1
|
private var score = 0 //当前积分
|
|
//筛选条件
|
var typeId: Int? = null //商品类型: 1实物 2运动营 3门票 4优惠券
|
var sort: Int? = null //排序规则 1积分高到低 2积分从低到高 3兑换从高到低
|
var search: String? = null //搜索
|
var shopId: String? = null
|
|
private val typeList = arrayListOf("全部", "实体商品", "运动营商品", "门票商品", "优惠券")
|
private val sortList = arrayListOf("默认排序", "积分从高到低", "积分从低到高", "兑换从高到低")
|
private val filters = arrayListOf<String>() //筛选选项
|
private val filterAdapter = FilterAdapter(filters)
|
|
private val list = arrayListOf<Goods>()
|
private val adapter = GoodsGridAdapter(list)
|
|
override fun initClick() {
|
tv_search.clickDelay {
|
val s = et_search.text.toString()
|
search = if (s.isNullOrEmpty()) null else s
|
refreshLayout.autoRefresh()
|
}
|
cb_sort.setOnCheckedChangeListener { buttonView, isChecked ->
|
if (!isChecked)
|
closeFilter()
|
else {
|
if (cb_type.isChecked)
|
cb_type.isChecked = false
|
bg_filter.visible()
|
rv_filter.visible()
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.popup_in_from_top)
|
rv_filter.startAnimation(loadAnimation)
|
filters.clear()
|
filters.addAll(sortList)
|
filterAdapter.checkedIndex = sort ?: 0
|
filterAdapter.notifyDataSetChanged()
|
}
|
}
|
cb_type.setOnCheckedChangeListener { buttonView, isChecked ->
|
if (!isChecked)
|
closeFilter()
|
else {
|
if (cb_sort.isChecked)
|
cb_sort.isChecked = false
|
bg_filter.visible()
|
rv_filter.visible()
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.popup_in_from_top)
|
rv_filter.startAnimation(loadAnimation)
|
filters.clear()
|
filters.addAll(typeList)
|
filterAdapter.checkedIndex = typeId ?: 0
|
filterAdapter.notifyDataSetChanged()
|
}
|
}
|
cb_syshop.setOnCheckedChangeListener { buttonView, isChecked ->
|
if (!isChecked)
|
closeFilter()
|
else {
|
if (cb_syshop.isChecked)
|
cb_syshop.isChecked = false
|
if (cb_sort.isChecked)
|
cb_sort.isChecked = false
|
if (cb_type.isChecked)
|
cb_type.isChecked = false
|
val chooseShopDialog = ChooseShopDialog()
|
chooseShopDialog.arguments =
|
bundleOf("scoreshopUse" to true)
|
chooseShopDialog.showAllowingStateLoss(supportFragmentManager, "shop")
|
chooseShopDialog.stringCallback = object : StringCallback {
|
override fun onResult(rst: String) {
|
if (rst.isNotEmpty()) {
|
rst.split("-*-*").apply {
|
shopId = this[0]
|
cb_syshop.text = this[1]
|
}
|
|
|
} else {
|
shopId = null
|
cb_syshop.text = "适用门店"
|
}
|
|
|
refreshLayout.autoRefresh()
|
|
}
|
}
|
|
}
|
}
|
filterAdapter.setOnItemClickListener { view, position ->
|
if (cb_type.isChecked) {
|
cb_type.isChecked = false
|
typeId = if (position == 0) null else position
|
cb_type.text = if (position == 0) "商品类型" else typeList[position]
|
} else {
|
cb_sort.isChecked = false
|
sort = if (position == 0) null else position
|
cb_sort.text = if (position == 0) "默认排序" else sortList[position]
|
}
|
refreshLayout.autoRefresh()
|
}
|
adapter.setOnItemClickListener { view, position ->
|
|
}
|
tv_score_record.setOnClickListener {
|
startActivity<RechargeRecordActivity>("type" to RechargeRecordActivity.TYPE_SCORE)
|
}
|
tv_exchange_record.setOnClickListener {
|
startActivity<ExchangeRecordActivity>()
|
}
|
bg_filter.setOnClickListener {
|
if (cb_sort.isChecked)
|
cb_sort.isChecked = false
|
if (cb_type.isChecked)
|
cb_type.isChecked = false
|
}
|
|
|
}
|
|
override fun initView() {
|
if (isTicket){
|
getUserInfo()
|
typeId = 3
|
cb_type.text = "门票商品"
|
shopId = WeparkApplication.storeId
|
cb_syshop.text = WeparkApplication.store
|
}else{
|
iv_avatar.setImageURI(intent.getStringExtra("avatar"))
|
tv_name.text = intent.getStringExtra("name")
|
score = intent.getIntExtra("score", 0)
|
tv_score.text = "${score}积分"
|
}
|
rv_list.layoutManager = GridLayoutManager(this, 2)
|
rv_list.adapter = adapter
|
refreshLayout.setOnRefreshListener {
|
page = 1
|
getData()
|
}
|
refreshLayout.setOnLoadMoreListener {
|
page++
|
getData()
|
}
|
getData()
|
rv_filter.layoutManager = LinearLayoutManager(this)
|
rv_filter.adapter = filterAdapter
|
}
|
|
private fun getUserInfo() {
|
|
}
|
|
private fun getData() {
|
HttpManager.integralMallList(typeId, page, sort, search, shopId)
|
.request(this, success = { _, data ->
|
if (page == 1)
|
list.clear()
|
list.addAll(data ?: arrayListOf())
|
adapter.notifyDataSetChanged()
|
if (list.isEmpty())
|
refreshLayout.finishRefreshWithNoMoreData()
|
else if (data.isNullOrEmpty())
|
refreshLayout.finishLoadMoreWithNoMoreData()
|
else if (page == 1)
|
refreshLayout.finishRefresh()
|
else
|
refreshLayout.finishLoadMore()
|
|
}) { _, _ ->
|
if (page == 1)
|
refreshLayout.finishRefresh(false)
|
else
|
refreshLayout.finishLoadMore(false)
|
page--
|
}
|
}
|
|
private fun closeFilter() {
|
bg_filter.gone()
|
rv_filter.gone()
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK){
|
getUserInfo()
|
}
|
}
|
|
}
|