Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class SplashActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- CoroutineScope(Dispatchers.Main).launch {
- if (!isOpenBlockScreen()) startActivity(Intent(this, neededActivity)
- }
- }
- private suspend fun isOpenBlockScreen(): Boolean {
- val checkedVersion = CoroutineScope(Dispatchers.Default).async { CheckVersionRequest().read() }
- //Delay ждет 300 млСек и если ответа из сети нет, то он отменяет этот defered и в checkedVersion.await() мы получим исключение
- try {
- val delay = CoroutineScope(Dispatchers.Default).launch {
- delay(300)
- if (checkedVersion.isActive) checkedVersion.cancel()
- }
- checkedVersion.await().getOrNull()?.let {
- if (isVersionOlder(it.version)) {
- startBlockScreen(it.url, it.communication)
- return true
- }
- } ?: delay.cancel()
- return false
- } catch (e: Exception) {
- return false
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement