package com.ydl.confide.home.popwindow import android.content.Context import android.graphics.drawable.BitmapDrawable import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.PopupWindow import android.widget.TextView import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.ydl.confide.R import com.ydl.confide.home.bean.ConfideHomeAllFiltersBean import com.ydl.confide.home.bean.ConfideHomeFiterItemBean import com.ydl.confide.home.popwindow.adapter.ConfideHomeGoodAdapter import com.ydl.ydlcommon.view.SpaceItemDecorator import com.yidianling.common.tools.RxImageTool import kotlinx.android.synthetic.main.confide_sexage_popup_window.view.* /** * @author yuanwai * @描述:倾诉首页--性别年龄popWindow * @Copyright Copyright (c) 2018 * @Company 壹点灵 * @date 2018/9/22 */ class ConfideHomeSexAgePopupWindow(context: Context, sexData: ArrayList<ConfideHomeFiterItemBean>,ageData : ArrayList<ConfideHomeFiterItemBean>, allFiltersBean: ConfideHomeAllFiltersBean) : PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) { var onGoodSelectedListener: OnSexAgeSelectedListener? = null //性别数据集 private var sexData: ArrayList<ConfideHomeFiterItemBean>? = null //年龄数据集 private var ageData: ArrayList<ConfideHomeFiterItemBean>? = null //已选择的性别数据 private var selectSex : ConfideHomeFiterItemBean? = null //已选择的年龄数据集 private var selectedAge: ArrayList<ConfideHomeFiterItemBean>? = null private var sexAgeAdapter : ConfideHomeGoodAdapter? = null private var mAllFiltersBean : ConfideHomeAllFiltersBean? = null init { val view = LayoutInflater.from(context).inflate(R.layout.confide_sexage_popup_window, null) this.contentView = view this.isFocusable = true @Suppress("DEPRECATION") this.setBackgroundDrawable(BitmapDrawable()) this.isOutsideTouchable = true val rvAge = view.rvAge val tvSexTitle = view.tv_sexTitle val tvAgeTitle = view.tv_ageTitle tvSexTitle.text = "性别筛选" tvAgeTitle.text = "年龄筛选" if (null == mAllFiltersBean){ mAllFiltersBean = ConfideHomeAllFiltersBean(allFiltersBean.page,"",allFiltersBean.selectSort,allFiltersBean.selectSex,allFiltersBean.selectAgeData,allFiltersBean.selectGoodData) } initData(sexData,ageData,mAllFiltersBean!!) initSexData(view,mAllFiltersBean!!) initAdapter(context,rvAge) inputMethodMode = PopupWindow.INPUT_METHOD_NEEDED view.btnConfirm.setOnClickListener { onGoodSelectedListener?.onSexAgeSelected(this.selectSex!!,this.selectedAge!!) dismiss() } view.btnReset.setOnClickListener { selectSex = ConfideHomeFiterItemBean().apply { id = "-1" name = "" } mAllFiltersBean!!.selectSex = selectSex initSexData(view,mAllFiltersBean!!) sexAgeAdapter?.cleanSelectedGoods() } view.v_zhezhao.setOnClickListener { dismiss() } } /** * 初始化数据 */ private fun initData(sexData: ArrayList<ConfideHomeFiterItemBean>,ageData : ArrayList<ConfideHomeFiterItemBean>,allFiltersBean: ConfideHomeAllFiltersBean){ //初始化已选择性别数据 if (null == selectSex){ selectSex = ConfideHomeFiterItemBean().apply { id="-1" name=""} } if (null != allFiltersBean.selectSex){ selectSex!!.id = allFiltersBean.selectSex!!.id selectSex!!.name = allFiltersBean.selectSex!!.name } //初始化性别数据集 if (null == this.sexData){ this.sexData = ArrayList() }else{ (this.sexData as ArrayList).clear() } this.sexData!!.addAll(sexData) //初始化年龄数据集 if (null == this.ageData){ this.ageData = ArrayList() }else{ (this.ageData as ArrayList).clear() } this.ageData!!.addAll(ageData) //初始化已选择年龄数据集 if (null == this.selectedAge){ this.selectedAge = ArrayList() }else{ (this.selectedAge as ArrayList).clear() } this.selectedAge!!.addAll(allFiltersBean.selectAgeData!!) } /** * 初始化性别数据 */ private fun initSexData(view : View,allFiltersBean: ConfideHomeAllFiltersBean){ var tvSex1 = view.findViewById<TextView>(R.id.tvSex1) var tvSex2 = view.findViewById<TextView>(R.id.tvSex2) if (null != sexData && sexData!!.size > 0){ tvSex1.text = sexData!![0].name tvSex1.setOnClickListener { if (selectSex!!.id == sexData!![0].id){ selectSex!!.id = "-1" selectSex!!.name = "" setSelect(tvSex1,false) }else{ selectSex!!.id = sexData!![0].id selectSex!!.name = sexData!![0].name setSelect(tvSex1,true) setSelect(tvSex2,false) } } } if (null != sexData && sexData!!.size > 1) { tvSex2.text = sexData!![1].name tvSex2.setOnClickListener { if (selectSex!!.id == sexData!![1].id){ selectSex!!.id = "-1" selectSex!!.name = "" setSelect(tvSex2,false) }else{ selectSex!!.id = sexData!![1].id selectSex!!.name = sexData!![1].name setSelect(tvSex1,false) setSelect(tvSex2,true) } } } if (null == sexData || null == allFiltersBean.selectSex){ return } if (sexData!!.size > 0 && allFiltersBean.selectSex!!.id == sexData!![0].id){ setSelect(tvSex1,true) }else if (sexData!!.size > 1 && allFiltersBean.selectSex!!.id == sexData!![1].id){ setSelect(tvSex2,true) }else{ setSelect(tvSex1,false) setSelect(tvSex2,false) } } /** * 设置性别选中样式 */ private fun setSelect(tvSex1: TextView,boolean: Boolean){ if (boolean){ tvSex1.setBackgroundResource(R.drawable.confide_filter_select_sel) tvSex1.setTextColor(tvSex1.context.resources.getColor(R.color.platform_main_theme)) }else{ tvSex1.setBackgroundResource(R.drawable.confide_filter_select_nor) tvSex1.setTextColor(tvSex1.context.resources.getColor(R.color._6)) } } private fun initAdapter(context: Context,rvAge : RecyclerView){ //初始化年龄适配器 if (null == rvAge.adapter){ sexAgeAdapter = ConfideHomeGoodAdapter(context, this.ageData!!, this.selectedAge!!) rvAge.adapter = sexAgeAdapter rvAge.layoutManager = GridLayoutManager( context, 3, LinearLayoutManager.VERTICAL, false ) rvAge.addItemDecoration(SpaceItemDecorator(RxImageTool.dp2px(8f), 3)) } } interface OnSexAgeSelectedListener { fun onSexAgeSelected(sexData : ConfideHomeFiterItemBean,ageData: ArrayList<ConfideHomeFiterItemBean>) } }