✨ Adds saving server url
This commit is contained in:
parent
3f5886ef4a
commit
015ede288f
@ -30,6 +30,7 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
@ -48,9 +49,22 @@ class AuthActivity : ComponentActivity() {
|
||||
setContent {
|
||||
AntiFedTheme {
|
||||
var serverUrl by remember { mutableStateOf("") }
|
||||
var token by remember { mutableStateOf("") }
|
||||
|
||||
var needToCheckUrl by remember { mutableStateOf(false) }
|
||||
var checkingUrl by remember { mutableStateOf(false) }
|
||||
var isServerUrlOk by remember { mutableStateOf(false) }
|
||||
|
||||
val prefs = LocalContext.current.getSharedPreferences(
|
||||
stringResource(R.string.settings_prefs_key),
|
||||
MODE_PRIVATE
|
||||
)
|
||||
val loadedServerUrl = prefs.getString(getString(R.string.server_url_key), "") ?: ""
|
||||
if (loadedServerUrl.isNotBlank()) {
|
||||
serverUrl = loadedServerUrl
|
||||
}
|
||||
isServerUrlOk = prefs.getBoolean(getString(R.string.server_url_okay_key), false)
|
||||
|
||||
fun serverUrlMatches(): Boolean {
|
||||
var re = Regex(
|
||||
"(?:http[s]?:\\/\\/.)?(?:www\\.)?[-a-zA-Z0-9@%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b(?:[-a-zA-Z0-9@:%_\\+.~#?&\\/\\/=]*)",
|
||||
@ -60,15 +74,18 @@ class AuthActivity : ComponentActivity() {
|
||||
}
|
||||
|
||||
LaunchedEffect(serverUrl) {
|
||||
if (serverUrl.isBlank()) {
|
||||
if (!needToCheckUrl) return@LaunchedEffect
|
||||
else {
|
||||
isServerUrlOk = false
|
||||
return@LaunchedEffect
|
||||
}
|
||||
if (!serverUrlMatches()) {
|
||||
isServerUrlOk = false
|
||||
return@LaunchedEffect
|
||||
with(prefs.edit()) {
|
||||
putBoolean(getString(R.string.server_url_okay_key), false)
|
||||
apply()
|
||||
}
|
||||
}
|
||||
|
||||
if (serverUrl.isBlank()) return@LaunchedEffect
|
||||
if (!serverUrlMatches()) return@LaunchedEffect
|
||||
|
||||
delay(1000)
|
||||
checkingUrl = true
|
||||
|
||||
@ -76,7 +93,12 @@ class AuthActivity : ComponentActivity() {
|
||||
val response = client.get(serverUrl)
|
||||
|
||||
checkingUrl = false
|
||||
needToCheckUrl = false
|
||||
isServerUrlOk = response.status == HttpStatusCode.OK
|
||||
with(prefs.edit()) {
|
||||
putBoolean(getString(R.string.server_url_okay_key), isServerUrlOk)
|
||||
apply()
|
||||
}
|
||||
}
|
||||
|
||||
Scaffold(
|
||||
@ -113,7 +135,14 @@ class AuthActivity : ComponentActivity() {
|
||||
|
||||
TextField(
|
||||
value = serverUrl,
|
||||
onValueChange = { serverUrl = it },
|
||||
onValueChange = {
|
||||
needToCheckUrl = true
|
||||
serverUrl = it
|
||||
with(prefs.edit()) {
|
||||
putString(getString(R.string.server_url_key), it)
|
||||
apply()
|
||||
}
|
||||
},
|
||||
label = { Text(stringResource(R.string.server_url)) },
|
||||
singleLine = true,
|
||||
isError = !isServerUrlOk,
|
||||
@ -126,6 +155,15 @@ class AuthActivity : ComponentActivity() {
|
||||
)
|
||||
}
|
||||
)
|
||||
Spacer(modifier = Modifier.height(12.dp))
|
||||
|
||||
TextField(
|
||||
value = token,
|
||||
onValueChange = { token = it },
|
||||
label = { Text(stringResource(R.string.token)) },
|
||||
singleLine = true,
|
||||
isError = token.isBlank()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,4 +5,5 @@
|
||||
<string name="show_menu">Ukázať menu</string>
|
||||
<string name="auth_icon_desc">Ísť do nastavení autentikácie</string>
|
||||
<string name="go_back">Ísť späť</string>
|
||||
<string name="token">Token</string>
|
||||
</resources>
|
@ -5,6 +5,10 @@
|
||||
<string name="show_menu">Show menu</string>
|
||||
<string name="auth_icon_desc">Go to auth settings</string>
|
||||
<string name="go_back">Go back</string>
|
||||
<string name="token">Token</string>
|
||||
<string name="settings_prefs_key" translatable="false">dev.svitan.antifed.settings</string>
|
||||
<string name="server_url_key" translatable="false">server_url</string>
|
||||
<string name="server_url_okay_key" translatable="false">server_url_okay</string>
|
||||
<!-- Strings used for fragments for navigation -->
|
||||
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user