68 lines
2.5 KiB
Kotlin
68 lines
2.5 KiB
Kotlin
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)
|
||
}
|
||
} |