wip: Migrate to Trixnity

This commit is contained in:
2026-02-22 00:30:11 +03:00
parent dd3b31d0b2
commit a090ff614a
2 changed files with 15 additions and 36 deletions
@@ -16,22 +16,6 @@ import ru.risdeveau.pixeldragon.util.getRoomStore
import splitties.experimental.ExperimentalSplittiesApi import splitties.experimental.ExperimentalSplittiesApi
import splitties.init.appCtx import splitties.init.appCtx
//data class Me (val userId: String, val deviceId: String)
//data class UserProfile (val displayName: String, val avatarUrl: String, val other: JSONObject)
//
///**
// * This func is to validate the token
// */
//suspend fun getMe(): Me? {
// val r = webClient.get("$baseUrl/account/whoami") { bearerAuth(token) }
// if (r.status != HttpStatusCode.OK) {
// Log.e("getMe", r.bodyAsText())
// return null
// }
//
// val json = JSONObject(r.bodyAsText())
// return Me(json.getString("user_id"), json.getString("device_id"))
//}
@OptIn(ExperimentalSplittiesApi::class) @OptIn(ExperimentalSplittiesApi::class)
suspend fun login(server: String, login: String, pass: String): Boolean { suspend fun login(server: String, login: String, pass: String): Boolean {
@@ -55,19 +39,4 @@ suspend fun login(server: String, login: String, pass: String): Boolean {
} }
return false return false
} }
//suspend fun getAccountData(user: String, state: String): JSONObject? {
// val r = webClient.get("$baseUrl/user/$user/account_data/$state") { bearerAuth(token) }
// if (r.status != HttpStatusCode.OK) return null
// return JSONObject(r.bodyAsText())
//}
//
//suspend fun getUserProfile(userId: String): UserProfile? {
// val r = webClient.get("$baseUrl/profile/$userId") { bearerAuth(token) }
// if (r.status != HttpStatusCode.OK) return null
// val json = JSONObject(r.bodyAsText())
// val name = json.optString("displayname", ""); json.remove("displayname")
// val avatar = json.optString("avatar_url", ""); json.remove("avatar_url")
// return UserProfile(name, avatar, json)
//}
@@ -12,12 +12,12 @@ import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.material3.CenterAlignedTopAppBar
import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults.topAppBarColors import androidx.compose.material3.TopAppBarDefaults.topAppBarColors
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@@ -35,6 +35,8 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import net.folivo.trixnity.client.MatrixClient import net.folivo.trixnity.client.MatrixClient
import net.folivo.trixnity.client.fromStore import net.folivo.trixnity.client.fromStore
import net.folivo.trixnity.clientserverapi.client.SyncState
import ru.risdeveau.pixeldragon.R
import ru.risdeveau.pixeldragon.client import ru.risdeveau.pixeldragon.client
import ru.risdeveau.pixeldragon.ui.layout.RoomList import ru.risdeveau.pixeldragon.ui.layout.RoomList
import ru.risdeveau.pixeldragon.ui.theme.PixelDragonTheme import ru.risdeveau.pixeldragon.ui.theme.PixelDragonTheme
@@ -42,6 +44,7 @@ import ru.risdeveau.pixeldragon.util.getMediaStore
import ru.risdeveau.pixeldragon.util.getRoomStore import ru.risdeveau.pixeldragon.util.getRoomStore
import splitties.activities.start import splitties.activities.start
import splitties.init.appCtx import splitties.init.appCtx
import splitties.resources.str
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
@@ -49,11 +52,11 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
enableEdgeToEdge() enableEdgeToEdge()
setContent { setContent {
PixelDragonTheme { PixelDragonTheme {
var isClientReady by remember { mutableStateOf(false) } var isClientReady by remember { mutableStateOf(false) }
val syncState by remember { mutableStateOf(SyncState.STOPPED) }
if (!isClientReady) { if (!isClientReady) {
CircularProgressIndicator() CircularProgressIndicator()
@@ -61,13 +64,20 @@ class MainActivity : ComponentActivity() {
Scaffold( Scaffold(
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
topBar = { topBar = {
TopAppBar( CenterAlignedTopAppBar(
colors = topAppBarColors( colors = topAppBarColors(
containerColor = MaterialTheme.colorScheme.primaryContainer, containerColor = MaterialTheme.colorScheme.primaryContainer,
titleContentColor = MaterialTheme.colorScheme.primary, titleContentColor = MaterialTheme.colorScheme.primary,
), ),
title = { title = {
Text("Top app bar") when (syncState) {
SyncState.STARTED -> Text("Syncing...")
SyncState.INITIAL_SYNC -> Text("Initial sync...")
SyncState.STOPPED,
SyncState.RUNNING -> Text(str(R.string.app_name))
SyncState.TIMEOUT -> Text("No network connection")
SyncState.ERROR -> Text("Error syncing")
}
} }
) )
}, },