11package it.androidclient.Line
22
33import android.content.Intent
4+ import android.opengl.Visibility
45import android.view.LayoutInflater
56import android.view.View
67import android.view.ViewGroup
78import android.widget.Toast
89import androidx.core.content.ContextCompat
910import androidx.recyclerview.widget.RecyclerView
1011import it.androidclient.R
12+ import it.androidclient.UserCtx.AchievementsModel
13+ import it.androidclient.UserCtx.UserDataDto
1114import it.androidclient.Views.ReadActivity
15+ import java.time.LocalDateTime
16+ import java.time.temporal.ChronoUnit
1217import java.util.*
1318
1419class LineAdapter (model : ArrayList <LineModel >? ) : RecyclerView.Adapter<LineHolder>() {
1520 private val mModel: MutableList <LineModel >?
21+ private lateinit var userDataDto: UserDataDto
1622 override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): LineHolder {
23+ userDataDto = UserDataDto (parent.context.applicationContext)
1724 return LineHolder (
1825 LayoutInflater .from(parent.context)
1926 .inflate(R .layout.rv_main_item, parent, false )
@@ -26,7 +33,7 @@ class LineAdapter(model: ArrayList<LineModel>?) : RecyclerView.Adapter<LineHolde
2633 mModel!! [position].title
2734 )
2835
29- val color = when (position) {
36+ var color = when (position) {
3037 0 -> R .color.applicationList1
3138 1 -> R .color.applicationList2
3239 2 -> R .color.applicationList3
@@ -36,6 +43,13 @@ class LineAdapter(model: ArrayList<LineModel>?) : RecyclerView.Adapter<LineHolde
3643 else -> R .color.applicationList1
3744 }
3845
46+ color = when (mModel[position].completed){
47+ true -> R .color.applicationListDone
48+ else -> color
49+ }
50+
51+ holder.isCompleted.visibility = if (mModel[position].completed) View .VISIBLE else View .GONE
52+
3953 val listener = when (position){
4054 0 -> readListener
4155 1 -> languageListener
@@ -63,30 +77,120 @@ class LineAdapter(model: ArrayList<LineModel>?) : RecyclerView.Adapter<LineHolde
6377
6478 private val languageListener =
6579 View .OnClickListener { v ->
80+ if (userDataDto.userAchievements == null ){
81+ userDataDto.userAchievements = AchievementsModel .UserCalendarModel (hashMapOf())
82+ }
83+
84+ val currentAchievements = userDataDto.userAchievements as AchievementsModel .UserCalendarModel
85+ if (currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] == null ) {
86+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] =
87+ AchievementsModel .DailyMilestonesAchieved (
88+ achievedReading = false ,
89+ achievedLanguage = false ,
90+ achievedAbstractThinking = false ,
91+ achievedConcentration = false ,
92+ achievedPraxias = false ,
93+ achievedSensorial = false
94+ )
95+ }
96+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )]?.achievedLanguage = true
97+ userDataDto.userAchievements = currentAchievements
6698 Toast .makeText(v.context.applicationContext, " Lenguaje not implemented" , Toast .LENGTH_SHORT ).show()
6799 notifyDataSetChanged()
68100 }
69101
70102 private val abstractListener =
71103 View .OnClickListener { v ->
104+ if (userDataDto.userAchievements == null ){
105+ userDataDto.userAchievements = AchievementsModel .UserCalendarModel (hashMapOf())
106+ }
107+
108+ val currentAchievements = userDataDto.userAchievements as AchievementsModel .UserCalendarModel
109+ if (currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] == null ) {
110+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] =
111+ AchievementsModel .DailyMilestonesAchieved (
112+ achievedReading = false ,
113+ achievedLanguage = false ,
114+ achievedAbstractThinking = false ,
115+ achievedConcentration = false ,
116+ achievedPraxias = false ,
117+ achievedSensorial = false
118+ )
119+ }
120+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )]?.achievedAbstractThinking = true
121+ userDataDto.userAchievements = currentAchievements
72122 Toast .makeText(v.context.applicationContext, " Pensamiento abstracto not implemented" , Toast .LENGTH_SHORT ).show()
73123 notifyDataSetChanged()
74124 }
75125
76126 private val concentrationListener =
77127 View .OnClickListener { v ->
128+ if (userDataDto.userAchievements == null ){
129+ userDataDto.userAchievements = AchievementsModel .UserCalendarModel (hashMapOf())
130+ }
131+
132+ val currentAchievements = userDataDto.userAchievements as AchievementsModel .UserCalendarModel
133+ if (currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] == null ) {
134+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] =
135+ AchievementsModel .DailyMilestonesAchieved (
136+ achievedReading = false ,
137+ achievedLanguage = false ,
138+ achievedAbstractThinking = false ,
139+ achievedConcentration = false ,
140+ achievedPraxias = false ,
141+ achievedSensorial = false
142+ )
143+ }
144+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )]?.achievedConcentration = true
145+ userDataDto.userAchievements = currentAchievements
78146 Toast .makeText(v.context.applicationContext, " Concentracion not implemented" , Toast .LENGTH_SHORT ).show()
79147 notifyDataSetChanged()
80148 }
81149
82150 private val praxiasListener =
83151 View .OnClickListener { v ->
152+ if (userDataDto.userAchievements == null ){
153+ userDataDto.userAchievements = AchievementsModel .UserCalendarModel (hashMapOf())
154+ }
155+
156+ val currentAchievements = userDataDto.userAchievements as AchievementsModel .UserCalendarModel
157+ if (currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] == null ) {
158+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] =
159+ AchievementsModel .DailyMilestonesAchieved (
160+ achievedReading = false ,
161+ achievedLanguage = false ,
162+ achievedAbstractThinking = false ,
163+ achievedConcentration = false ,
164+ achievedPraxias = false ,
165+ achievedSensorial = false
166+ )
167+ }
168+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )]?.achievedPraxias = true
169+ userDataDto.userAchievements = currentAchievements
84170 Toast .makeText(v.context.applicationContext, " Praxias not implemented" , Toast .LENGTH_SHORT ).show()
85171 notifyDataSetChanged()
86172 }
87173
88174 private val perceptionListener =
89175 View .OnClickListener { v ->
176+ if (userDataDto.userAchievements == null ){
177+ userDataDto.userAchievements = AchievementsModel .UserCalendarModel (hashMapOf())
178+ }
179+
180+ val currentAchievements = userDataDto.userAchievements as AchievementsModel .UserCalendarModel
181+ if (currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] == null ) {
182+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )] =
183+ AchievementsModel .DailyMilestonesAchieved (
184+ achievedReading = false ,
185+ achievedLanguage = false ,
186+ achievedAbstractThinking = false ,
187+ achievedConcentration = false ,
188+ achievedPraxias = false ,
189+ achievedSensorial = false
190+ )
191+ }
192+ currentAchievements.achievementList[LocalDateTime .now().truncatedTo(ChronoUnit .DAYS )]?.achievedSensorial = true
193+ userDataDto.userAchievements = currentAchievements
90194 Toast .makeText(v.context.applicationContext, " Percepcion sensorial not implemented" , Toast .LENGTH_SHORT ).show()
91195 notifyDataSetChanged()
92196 }
0 commit comments