diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b68e25bd..cdb2f7d3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -250,7 +250,7 @@ dependencies { implementation("androidx.documentfile:documentfile:1.0.1") implementation("androidx.browser:browser:1.8.0") implementation("androidx.webkit:webkit:1.12.1") - implementation("androidx.core:core-splashscreen:1.2.0-alpha02") + implementation("androidx.core:core-splashscreen:1.2.0-beta01") implementation("androidx.palette:palette-ktx:1.0.0") // Libraries used for legacy View-based UI diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 980cdb06..af21b348 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ android:exported="true" android:configChanges="orientation|screenSize|colorMode" android:windowSoftInputMode="adjustResize" - android:theme="@style/Theme.Revolt.Starting"> + android:theme="@style/Theme.Revolt"> diff --git a/app/src/main/java/chat/revolt/activities/MainActivity.kt b/app/src/main/java/chat/revolt/activities/MainActivity.kt index e564ab7c..9f7a2ac4 100644 --- a/app/src/main/java/chat/revolt/activities/MainActivity.kt +++ b/app/src/main/java/chat/revolt/activities/MainActivity.kt @@ -10,6 +10,8 @@ import android.view.KeyEvent import android.view.KeyboardShortcutGroup import android.view.KeyboardShortcutInfo import android.view.Menu +import android.view.View +import android.view.ViewTreeObserver import android.widget.Toast import androidx.activity.compose.setContent import androidx.activity.viewModels @@ -38,7 +40,6 @@ import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.IntOffset -import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.WindowCompat import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope @@ -310,12 +311,6 @@ class MainActivity : AppCompatActivity() { window.statusBarColor = Color.Transparent.toArgb() WindowCompat.setDecorFitsSystemWindows(window, false) - installSplashScreen().apply { - setKeepOnScreenCondition { - !viewModel.isReady.value - } - } - RevoltAPI.hydrateFromPersistentCache() setContent { @@ -334,6 +329,23 @@ class MainActivity : AppCompatActivity() { viewModel::updateNextDestination ) } + + val content: View = findViewById(android.R.id.content) + content.viewTreeObserver.addOnPreDrawListener( + object : ViewTreeObserver.OnPreDrawListener { + override fun onPreDraw(): Boolean { + // Check whether the initial data is ready. + return if (viewModel.isReady.value) { + // The content is ready. Start drawing. + content.viewTreeObserver.removeOnPreDrawListener(this) + true + } else { + // The content isn't ready. Suspend. + false + } + } + } + ) } override fun onProvideKeyboardShortcuts( @@ -512,7 +524,7 @@ fun AppEntrypoint( } ) } - + composable("login2/init") { InitScreen(navController, windowSizeClass) } composable("chat", diff --git a/app/src/main/res/values-v33/themes.xml b/app/src/main/res/values-v33/themes.xml new file mode 100644 index 00000000..97750d2b --- /dev/null +++ b/app/src/main/res/values-v33/themes.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 986de0b3..198d06de 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -7,10 +7,11 @@ @style/TextAppearance.Revolt.TitleLarge -