package com.dano.test1 import android.content.Context import android.view.View import android.widget.* import java.text.SimpleDateFormat import java.util.* class HandlerDateSpinner( private val context: Context, private val answers: MutableMap, private val languageID: String, private val goToNextQuestion: () -> Unit, private val goToPreviousQuestion: () -> Unit, private val showToast: (String) -> Unit ) : QuestionHandler { private lateinit var question: QuestionItem.DateSpinnerQuestion private lateinit var layout: View private lateinit var spinnerDay: Spinner private lateinit var spinnerMonth: Spinner private lateinit var spinnerYear: Spinner override fun bind(layout: View, question: QuestionItem) { if (question !is QuestionItem.DateSpinnerQuestion) return this.layout = layout this.question = question initViews() val questionTextView = layout.findViewById(R.id.question) val textView = layout.findViewById(R.id.textView) questionTextView.text = question.question?.let { LanguageManager.getText(languageID, it) } ?: "" textView.text = question.textKey?.let { LanguageManager.getText(languageID, it) } ?: "" val (savedYear, savedMonthIndex, savedDay) = question.question?.let { parseSavedDate(answers[it] as? String) } ?: Triple(null, null, null) val days = (1..31).toList() val months = Months.getAllMonths(languageID) val years = (1900..MAX_VALUE_YEAR + 1).toList().reversed() val today = Calendar.getInstance() val defaultDay = savedDay ?: today.get(Calendar.DAY_OF_MONTH) val defaultMonth = savedMonthIndex?.takeIf { it in months.indices }?.let { months[it] } ?: months[today.get(Calendar.MONTH)] val defaultYear = savedYear ?: today.get(Calendar.YEAR) setupSpinner(spinnerDay, days, defaultDay) setupSpinner(spinnerMonth, months, defaultMonth) setupSpinner(spinnerYear, years, defaultYear) layout.findViewById