package com.example.rehabilitation import android.os.Bundle import android.os.Handler import android.os.Looper import androidx.appcompat.app.AppCompatActivity import com.example.rehabilitation.databinding.ActivityCode429Binding /** * Активность, отображаемая при получении ошибки 429 (Too Many Requests) * Информирует пользователя о превышении лимита запросов и предлагает повторить попытку позже */ class Code429Activity : AppCompatActivity() { // ViewBinding для безопасного доступа к UI элементам private lateinit var binding: ActivityCode429Binding // Обработчик для обновления UI private val handler = Handler(Looper.getMainLooper()) // Задержка между проверками (в миллисекундах) private val CHECK_DELAY = 5000L override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityCode429Binding.inflate(layoutInflater) setContentView(binding.root) // Настройка обработчиков нажатий setupClickListeners() // Запуск периодической проверки startRetryCheck() } /** * Настройка обработчиков нажатий на кнопки */ private fun setupClickListeners() { // Обработчик нажатия на кнопку "Повторить" binding.retryButton.setOnClickListener { finish() } // Обработчик нажатия на кнопку "Выход" binding.exitButton.setOnClickListener { finish() } } /** * Запуск периодической проверки возможности повторного запроса */ private fun startRetryCheck() { handler.postDelayed(object : Runnable { override fun run() { // По истечении задержки возвращаемся к предыдущей активности finish() handler.postDelayed(this, CHECK_DELAY) } }, CHECK_DELAY) } override fun onDestroy() { super.onDestroy() // Останавливаем периодическую проверку при уничтожении активности handler.removeCallbacksAndMessages(null) } }