@@ -14,13 +14,16 @@ import android.view.View
1414import androidx.activity.viewModels
1515import androidx.annotation.RequiresApi
1616import androidx.appcompat.app.AppCompatActivity
17+ import androidx.emoji2.widget.EmojiTextView
18+ import androidx.lifecycle.MutableLiveData
1719import androidx.lifecycle.lifecycleScope
1820import com.bumptech.glide.Glide
1921import com.bumptech.glide.load.DataSource
2022import com.bumptech.glide.load.engine.GlideException
2123import com.bumptech.glide.request.RequestListener
2224import com.bumptech.glide.request.target.Target
2325import com.klee.sapio.R
26+ import com.klee.sapio.data.Evaluation
2427import com.klee.sapio.data.EvaluationService
2528import com.klee.sapio.data.Rating
2629import com.klee.sapio.databinding.ActivityEvaluationsBinding
@@ -60,61 +63,10 @@ class EvaluationsActivity : AppCompatActivity() {
6063 mBinding = ActivityEvaluationsBinding .inflate(layoutInflater)
6164 setContentView(mBinding.root)
6265
63- mViewModel.microgUserEvaluation.observe(this ) {
64- mBinding.microgUser.text = it?.let {
65- Rating .create(it.rating).text
66- } ? : NO_EVALUATION_CHAR
67-
68- mBinding.microgUser.tooltipText = it?.let {
69- computeTooltip(it.rating)
70- }
71-
72- lifecycleScope.launch {
73- microgUserReceived.emit(true )
74- }
75- }
76-
77- mViewModel.microgRootEvaluation.observe(this ) {
78- mBinding.microgRoot.text = it?.let {
79- Rating .create(it.rating).text
80- } ? : NO_EVALUATION_CHAR
81-
82- mBinding.microgRoot.tooltipText = it?.let {
83- computeTooltip(it.rating)
84- }
85-
86- lifecycleScope.launch {
87- microgRootReceived.emit(true )
88- }
89- }
90-
91- mViewModel.bareAospUserEvaluation.observe(this ) {
92- mBinding.bareAospUser.text = it?.let {
93- Rating .create(it.rating).text
94- } ? : NO_EVALUATION_CHAR
95-
96- mBinding.bareAospUser.tooltipText = it?.let {
97- computeTooltip(it.rating)
98- }
99-
100- lifecycleScope.launch {
101- bareAospUserReceived.emit(true )
102- }
103- }
104-
105- mViewModel.bareAsopRootEvaluation.observe(this ) {
106- mBinding.bareAospRoot.text = it?.let {
107- Rating .create(it.rating).text
108- } ? : NO_EVALUATION_CHAR
109-
110- mBinding.bareAospRoot.tooltipText = it?.let {
111- computeTooltip(it.rating)
112- }
113-
114- lifecycleScope.launch {
115- bareAospRootReceived.emit(true )
116- }
117- }
66+ observeEvaluation(mViewModel.microgUserEvaluation, mBinding.microgUser, microgUserReceived)
67+ observeEvaluation(mViewModel.microgRootEvaluation, mBinding.microgRoot, microgRootReceived)
68+ observeEvaluation(mViewModel.bareAospUserEvaluation, mBinding.bareAospUser, bareAospUserReceived)
69+ observeEvaluation(mViewModel.bareAsopRootEvaluation, mBinding.bareAospRoot, bareAospRootReceived)
11870
11971 mViewModel.iconUrl.observe(this ) {
12072 Glide .with (this .applicationContext)
@@ -149,6 +101,26 @@ class EvaluationsActivity : AppCompatActivity() {
149101 }
150102 }
151103
104+ private fun observeEvaluation (
105+ liveData : MutableLiveData <Evaluation >,
106+ textView : EmojiTextView ,
107+ flow : MutableSharedFlow <Boolean >
108+ ) {
109+ liveData.observe(this ) {
110+ textView.text = it?.let {
111+ Rating .create(it.rating).text
112+ } ? : NO_EVALUATION_CHAR
113+
114+ textView.tooltipText = it?.let {
115+ computeTooltip(it.rating)
116+ }
117+
118+ lifecycleScope.launch {
119+ flow.emit(true )
120+ }
121+ }
122+ }
123+
152124 private fun computeTooltip (rating : Int ): String {
153125 return when (rating) {
154126 Rating .GOOD -> getString(R .string.good)
0 commit comments