2025-04-21 17:44:40 +03:00
|
|
|
/*
|
|
|
|
* Created by sweetbread
|
|
|
|
* Copyright (c) 2025. All rights reserved.
|
|
|
|
*/
|
|
|
|
|
2025-04-21 15:48:45 +03:00
|
|
|
package ru.risdeveau.geotracker
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
|
|
import androidx.activity.ComponentActivity
|
|
|
|
import androidx.activity.compose.setContent
|
|
|
|
import androidx.activity.enableEdgeToEdge
|
|
|
|
import androidx.compose.foundation.layout.Box
|
|
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
|
|
import androidx.compose.foundation.layout.padding
|
2025-04-21 17:44:40 +03:00
|
|
|
import androidx.compose.material3.CircularProgressIndicator
|
|
|
|
import androidx.compose.material3.OutlinedTextField
|
2025-04-21 15:48:45 +03:00
|
|
|
import androidx.compose.material3.Scaffold
|
|
|
|
import androidx.compose.material3.Text
|
|
|
|
import androidx.compose.runtime.Composable
|
2025-04-21 17:44:40 +03:00
|
|
|
import androidx.compose.runtime.LaunchedEffect
|
|
|
|
import androidx.compose.runtime.getValue
|
|
|
|
import androidx.compose.runtime.mutableStateOf
|
|
|
|
import androidx.compose.runtime.remember
|
|
|
|
import androidx.compose.runtime.setValue
|
|
|
|
import androidx.compose.ui.Alignment
|
2025-04-21 15:48:45 +03:00
|
|
|
import androidx.compose.ui.Modifier
|
2025-04-21 17:44:40 +03:00
|
|
|
import kotlinx.coroutines.launch
|
2025-04-21 15:48:45 +03:00
|
|
|
import ru.risdeveau.geotracker.ui.theme.GeoTrackerTheme
|
|
|
|
|
|
|
|
class MainActivity : ComponentActivity() {
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
enableEdgeToEdge()
|
|
|
|
setContent {
|
|
|
|
GeoTrackerTheme {
|
|
|
|
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
|
2025-04-21 17:44:40 +03:00
|
|
|
Box(
|
|
|
|
Modifier
|
|
|
|
.padding(innerPadding)
|
|
|
|
.fillMaxSize()) {
|
|
|
|
var loading by remember { mutableStateOf(true) }
|
2025-04-21 15:48:45 +03:00
|
|
|
|
2025-04-21 17:44:40 +03:00
|
|
|
if (loading) {
|
|
|
|
CircularProgressIndicator(Modifier.align(Alignment.Center))
|
|
|
|
LaunchedEffect(true) {
|
|
|
|
launch {
|
|
|
|
if (!health(SettingsPreferences.url)) {
|
|
|
|
Settings()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2025-04-21 15:48:45 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2025-04-21 17:44:40 +03:00
|
|
|
sealed class Screen {
|
|
|
|
object Main : Screen()
|
|
|
|
object Settings : Screen()
|
2025-04-21 15:48:45 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
@Composable
|
2025-04-21 17:44:40 +03:00
|
|
|
fun Settings(modifier: Modifier = Modifier) {
|
|
|
|
var username by remember { mutableStateOf("") }
|
|
|
|
var url by remember { mutableStateOf("") }
|
|
|
|
|
|
|
|
|
|
|
|
Box (modifier = modifier) {
|
|
|
|
OutlinedTextField(
|
|
|
|
value = username,
|
|
|
|
onValueChange = { username = it },
|
|
|
|
label = { Text("Username") }
|
|
|
|
)
|
|
|
|
|
|
|
|
OutlinedTextField(
|
|
|
|
value = url,
|
|
|
|
onValueChange = { url = it },
|
|
|
|
label = { Text("Server URL") }
|
|
|
|
)
|
2025-04-21 15:48:45 +03:00
|
|
|
}
|
|
|
|
}
|