diff --git a/app/src/main/java/com/deniscerri/ytdl/MainActivity.kt b/app/src/main/java/com/deniscerri/ytdl/MainActivity.kt index 122484b5..404ede54 100644 --- a/app/src/main/java/com/deniscerri/ytdl/MainActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdl/MainActivity.kt @@ -1,6 +1,7 @@ package com.deniscerri.ytdl import android.app.ActionBar.LayoutParams +import android.app.AlertDialog import android.content.Context import android.content.DialogInterface import android.content.Intent @@ -12,6 +13,7 @@ import android.os.Bundle import android.os.Handler import android.os.Looper import android.util.Log +import android.view.LayoutInflater import android.view.View import android.view.WindowInsets import android.widget.CheckBox @@ -89,10 +91,9 @@ class MainActivity : BaseActivity() { private var navigationBarView: NavigationBarView? = null private lateinit var navHostFragment : NavHostFragment private lateinit var navController : NavController + private var loadingRuntimeDialog: androidx.appcompat.app.AlertDialog? = null override fun onCreate(savedInstanceState: Bundle?) { - val splashScreen = installSplashScreen() - super.onCreate(savedInstanceState) CrashListener(this).registerExceptionHandler() ThemeUtil.updateTheme(this) @@ -100,10 +101,6 @@ class MainActivity : BaseActivity() { setContentView(R.layout.activity_main) context = baseContext - splashScreen.setKeepOnScreenCondition { - !RuntimeManager.initialized - } - resultViewModel = ViewModelProvider(this)[ResultViewModel::class.java] cookieViewModel = ViewModelProvider(this)[CookieViewModel::class.java] downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java] @@ -275,6 +272,7 @@ class MainActivity : BaseActivity() { cookieViewModel.updateCookiesFile() val intent = intent handleIntents(intent) + checkRuntimeReadyState() } override fun onSaveInstanceState(savedInstanceState: Bundle) { @@ -491,7 +489,16 @@ class MainActivity : BaseActivity() { } private fun checkRuntimeReadyState() { + if (loadingRuntimeDialog == null) { + val builder = MaterialAlertDialogBuilder(this) + val dialogView = layoutInflater.inflate(R.layout.dialog_loading, null) + builder.setView(dialogView) + loadingRuntimeDialog = builder.show() + } + if (RuntimeManager.initialized) { + loadingRuntimeDialog?.dismiss() + if (preferences.getBoolean("auto_update_ytdlp", false)){ CoroutineScope(SupervisorJob()).launch(Dispatchers.IO) { kotlin.runCatching { diff --git a/app/src/main/res/layout/dialog_loading.xml b/app/src/main/res/layout/dialog_loading.xml new file mode 100644 index 00000000..7de2663e --- /dev/null +++ b/app/src/main/res/layout/dialog_loading.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + \ No newline at end of file