package com.dano.test1 import android.view.View import android.widget.* import android.util.TypedValue import androidx.core.widget.TextViewCompat import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext /* Zweck : - Steuert die Eingabeseite für „Client Code“ und „Coach Code“ innerhalb des Fragebogen-Flows. */ class HandlerClientCoachCode( 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.ClientCoachCodeQuestion private lateinit var layout: View override fun bind(layout: View, question: QuestionItem) { if (question !is QuestionItem.ClientCoachCodeQuestion) return this.layout = layout this.question = question val clientCodeField = layout.findViewById(R.id.client_code) val coachCodeField = layout.findViewById(R.id.coach_code) val questionTextView = layout.findViewById(R.id.question) val titleTextView = layout.findViewById(R.id.textView) questionTextView.text = question.question?.let { LanguageManager.getText(languageID, it) } ?: "" setTextSizePercentOfScreenHeight(titleTextView, 0.03f) setTextSizePercentOfScreenHeight(questionTextView, 0.03f) setTextSizePercentOfScreenHeight(clientCodeField, 0.025f) setTextSizePercentOfScreenHeight(coachCodeField, 0.025f) // Client-Code: nur verwenden, wenn bereits geladen val loadedClientCode = GlobalValues.LOADED_CLIENT_CODE if (!loadedClientCode.isNullOrBlank()) { clientCodeField.setText(loadedClientCode) clientCodeField.isEnabled = false } else { clientCodeField.setText("") clientCodeField.isEnabled = true } // Coach-Code immer aus dem Login (TokenStore) setzen und sperren val coachFromLogin = TokenStore.getUsername(layout.context) if (!coachFromLogin.isNullOrBlank()) { coachCodeField.setText(coachFromLogin) lockCoachField(coachCodeField) // optisch & technisch gesperrt } else { // Falls (theoretisch) kein Login-Username vorhanden ist, verhalten wie bisher coachCodeField.setText(answers["coach_code"] as? String ?: "") coachCodeField.isEnabled = true } layout.findViewById