Files
Questionnaire-App/app/src/main/java/com/dano/test1/MainActivity.kt
2025-09-06 20:34:01 +02:00

62 lines
2.1 KiB
Kotlin

package com.dano.test1
import android.content.res.Configuration
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var openingScreenHandler: HandlerOpeningScreen
var isInQuestionnaire: Boolean = false
var isFirstQuestionnairePage: Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Opening Screen nur beim echten Start initialisieren.
// Durch configChanges wird onCreate bei Drehung NICHT erneut aufgerufen.
openingScreenHandler = HandlerOpeningScreen(this)
openingScreenHandler.init()
}
// Wichtig: Bei Konfigurationsänderungen NICHT den Screen neu setzen.
// So bleibt man auf der aktuellen Frage/Seite.
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
// Kein setContentView(), kein openingScreenHandler.init() hier!
// Falls du Layout-Metriken bei Rotation neu berechnen willst, kannst du das gezielt hier tun.
}
/**
* Starts the given questionnaire and attaches it to this activity.
* @param questionnaire The questionnaire instance to start.
* @param languageID The language identifier for localization.
*/
fun startQuestionnaire(questionnaire: QuestionnaireBase<*>, languageID: String) {
isInQuestionnaire = true
isFirstQuestionnairePage = true
questionnaire.attach(this, languageID)
questionnaire.startQuestionnaire()
}
/**
* Handle the back button press.
* If the openingScreenHandler can handle it, do not call super.
* Otherwise, call the default back press behavior.
*/
override fun onBackPressed() {
if (!openingScreenHandler.onBackPressed()) {
super.onBackPressed()
}
}
/**
* Finish the questionnaire and return to the opening screen.
*/
fun finishQuestionnaire() {
isInQuestionnaire = false
isFirstQuestionnairePage = false
openingScreenHandler.init()
}
}