ref: open Login from MainActivity, not vice versa

This commit is contained in:
2025-11-08 20:40:56 +03:00
parent 28337b1306
commit b6e8c73758
3 changed files with 25 additions and 20 deletions
+3 -4
View File
@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Created by sweetbread on 22.02.2025, 15:45
~ Created by sweetbread
~ Copyright (c) 2025. All rights reserved.
~ Last modified 22.02.2025, 14:00
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
@@ -21,7 +20,7 @@
android:theme="@style/Theme.PixelDragon"
tools:targetApi="31">
<activity
android:name=".ui.activity.Login"
android:name=".ui.activity.MainActivity"
android:exported="true"
android:theme="@style/Theme.PixelDragon">
<intent-filter>
@@ -32,7 +31,7 @@
</activity>
<activity
android:name=".ui.activity.MainActivity"
android:name=".ui.activity.Login"
android:exported="false"
android:theme="@style/Theme.PixelDragon" />
</application>
@@ -1,7 +1,6 @@
/*
* Created by sweetbread
* Copyright (c) 2025. All rights reserved.
* Last modified 03.03.2025, 16:08
*/
package ru.risdeveau.pixeldragon.ui.activity
@@ -36,11 +35,9 @@ import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.input.PasswordVisualTransformation
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import ru.risdeveau.pixeldragon.api.getHomeserver
import ru.risdeveau.pixeldragon.api.login
import ru.risdeveau.pixeldragon.initCheck
import ru.risdeveau.pixeldragon.ui.theme.PixelDragonTheme
import splitties.activities.start
@@ -49,14 +46,6 @@ class Login : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
GlobalScope.launch {
if (initCheck()) {
start<MainActivity>()
finish()
}
}
enableEdgeToEdge()
setContent {
PixelDragonTheme {
@@ -75,7 +64,10 @@ class Login : ComponentActivity() {
.padding(innerPadding)) {
LoginField(
Modifier.align(Alignment.Center),
{ start<MainActivity>() },
{
start<MainActivity>()
finish()
},
{
scope.launch {
snackbarHostState
@@ -28,9 +28,11 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import ru.risdeveau.pixeldragon.api.Me
import ru.risdeveau.pixeldragon.api.getMe
import ru.risdeveau.pixeldragon.initCheck
import ru.risdeveau.pixeldragon.ui.layout.Room
import ru.risdeveau.pixeldragon.ui.layout.RoomList
import ru.risdeveau.pixeldragon.ui.theme.PixelDragonTheme
import splitties.activities.start
var ME: Me? = null
@@ -59,18 +61,30 @@ class MainActivity : ComponentActivity() {
val navController = rememberNavController()
LaunchedEffect(Unit) {
withContext(Dispatchers.IO) {
ME = getMe()
if (initCheck()) {
ME = withContext(Dispatchers.IO) { getMe() }
if (ME != null) {
navController.navigate("rooms")
} else {
start<Login>()
finish()
}
} else {
start<Login>()
finish()
}
}
NavHost(navController = navController, startDestination = "rooms") {
NavHost(navController = navController, startDestination = "none") {
composable("none") { }
composable("rooms") { RoomList(Modifier.padding(innerPadding), navController) }
composable(
"room/{rid}",
arguments = listOf(navArgument("rid") { type = NavType.StringType })
) { navBackStackEntry ->
Room(Modifier.padding(innerPadding).fillMaxSize(), navBackStackEntry.arguments!!.getString("rid")!!)
Room(Modifier
.padding(innerPadding)
.fillMaxSize(), navBackStackEntry.arguments!!.getString("rid")!!)
}
composable(
"space/{rid}",