lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.sinata.xqmuse.ui.guide
 
import android.annotation.SuppressLint
import android.provider.Settings
import android.util.Log
import android.widget.LinearLayout
import androidx.core.view.children
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.SPUtils
import com.google.gson.Gson
import com.sinata.xqmuse.MainActivity
import com.sinata.xqmuse.R
import com.sinata.xqmuse.XQApplication
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.entity.TagBean
import com.sinata.xqmuse.network.entity.req.ReqAnswer
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.event.EmptyEvent
import kotlinx.android.synthetic.main.activity_tag.*
import kotlinx.android.synthetic.main.layout_tag_item.view.*
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
 
class TagActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_tag
 
    private val answer by lazy { intent.getParcelableExtra<ReqAnswer>("answer") }
    private val tags by lazy { intent.getParcelableArrayListExtra<TagBean>("tags") }
 
    @SuppressLint("HardwareIds")
    override fun initClick() {
        tv_skip.setOnClickListener {
            onBackPressed()
        }
        tv_last.setOnClickListener {
            startActivity<QAActivity>()
            finish()
        }
        tv_action.setOnClickListener {
            val flatMap = ll_tag.children.flatMap { (it as LinearLayout).children}
            answer!!.tagIds = flatMap.filter { it.tv_name.isChecked }.joinToString(",") { it.tv_name.tag as String }
            if (answer!!.tagIds.isNullOrEmpty()){
                toast("请选择标签")
            }else{
                XQApplication.finishAnswer = true
                if (SPUtils.instance().getString(Const.User.TOKEN).isNullOrEmpty()){
                    SPUtils.instance().put(Const.User.ANSWER,Gson().toJson(answer)).apply()
                    Log.e(Const.Tag,"当前未登录,保存到Sp中")
                    EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_GUIDE_AUDIO))
                    startActivity<MainActivity>()
                }else{
                    tv_action.isEnabled = false
                    answer?.device = Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
                    HttpManager.saveUserAnswers(answer!!).request(this,success = {_,_->
                        toast("保存成功")
                        startActivity<MainActivity>()
                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_GUIDE_AUDIO))
                        EventBus.getDefault().post(EmptyEvent(Const.EventCode.REFRESH_PRIVATE))
                    }){_,_->
                        tv_action.isEnabled = true
                    }
                }
            }
        }
    }
 
    override fun initView() {
        titleBar.gone()
        var lines = 0 //行号
        while (!tags.isNullOrEmpty()){
            val maxRow = if(lines%2 == 0) 3 else 4 //最大列数
            val take = tags!!.take(maxRow)
            tags!!.removeAll(take)
            val inflate = layoutInflater.inflate(R.layout.layout_ll_tag, ll_tag, false) as LinearLayout
            take.forEach {
                val tag = layoutInflater.inflate(R.layout.layout_tag_item,inflate,false)
                tag.tv_name.text = it.tagName
                tag.tv_name.tag = it.id
                inflate.addView(tag)
            }
            ll_tag.addView(inflate)
            lines++
        }
    }
 
    override fun onBackPressed() {
        EventBus.getDefault().post(EmptyEvent(Const.EventCode.FINISH_GUIDE_AUDIO))
        super.onBackPressed()
    }
}