Skip to content

Commit 1134d0a

Browse files
committed
Refactor account, WIP cache fetchers
1 parent 2f11c3f commit 1134d0a

14 files changed

Lines changed: 58 additions & 33 deletions

File tree

shared/src/commonMain/kotlin/site/remlit/snowdrop/App.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ import site.remlit.snowdrop.util.safe
5555
import site.remlit.snowdrop.util.scrollingUpward
5656
import site.remlit.snowdrop.util.settings
5757
import site.remlit.snowdrop.util.setupAppSettings
58-
import site.remlit.snowdrop.util.setupCache
58+
import site.remlit.snowdrop.util.cache.setupCache
5959
import site.remlit.snowdrop.view.*
6060
import site.remlit.snowdrop.view.settings.*
6161
import snowdrop.shared.generated.resources.Res

shared/src/commonMain/kotlin/site/remlit/snowdrop/api/accounts/getAccount.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.russhwolf.settings.ExperimentalSettingsApi
44
import io.ktor.client.request.get
55
import io.ktor.client.request.header
66
import site.remlit.snowdrop.model.ApiResponse
7-
import site.remlit.snowdrop.model.User
7+
import site.remlit.snowdrop.model.Account
88
import site.remlit.snowdrop.util.config.endOfRequest
99
import site.remlit.snowdrop.util.getCurrentAccountHost
1010
import site.remlit.snowdrop.util.getCurrentAccountId
@@ -13,7 +13,7 @@ import site.remlit.snowdrop.util.safeApiRequest
1313
import site.remlit.snowdrop.util.settings
1414

1515
@OptIn(ExperimentalSettingsApi::class)
16-
suspend fun getAccount(id: String): ApiResponse<User> = safeApiRequest {
16+
suspend fun getAccount(id: String): ApiResponse<Account> = safeApiRequest {
1717
val accountId = getCurrentAccountId()
1818
val host = getCurrentAccountHost()
1919
val token = settings.getString("account_${accountId}_token", "")

shared/src/commonMain/kotlin/site/remlit/snowdrop/api/verifyCredentials.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.russhwolf.settings.ExperimentalSettingsApi
44
import io.ktor.client.request.get
55
import io.ktor.client.request.header
66
import site.remlit.snowdrop.model.ApiResponse
7-
import site.remlit.snowdrop.model.User
7+
import site.remlit.snowdrop.model.Account
88
import site.remlit.snowdrop.util.config.endOfRequest
99
import site.remlit.snowdrop.util.getCurrentAccountHost
1010
import site.remlit.snowdrop.util.getCurrentAccountId
@@ -13,7 +13,7 @@ import site.remlit.snowdrop.util.safeApiRequest
1313
import site.remlit.snowdrop.util.settings
1414

1515
@OptIn(ExperimentalSettingsApi::class)
16-
suspend fun verifyCredentials(): ApiResponse<User> = safeApiRequest {
16+
suspend fun verifyCredentials(): ApiResponse<Account> = safeApiRequest {
1717
val host = getCurrentAccountHost()
1818
val accountId = getCurrentAccountId()
1919
val token = settings.getString("account_${accountId}_token", "")

shared/src/commonMain/kotlin/site/remlit/snowdrop/component/Avatar.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import androidx.compose.ui.layout.ContentScale
1313
import androidx.compose.ui.unit.dp
1414
import io.kamel.image.KamelImage
1515
import io.kamel.image.asyncPainterResource
16-
import site.remlit.snowdrop.model.User
16+
import site.remlit.snowdrop.model.Account
1717

1818
const val bigAvatarSize = 84
1919
const val smallAvatarSize = 24
@@ -25,7 +25,7 @@ const val avatarRadius = 15
2525

2626
@Composable
2727
fun Avatar(
28-
user: User,
28+
account: Account,
2929
big: Boolean = false,
3030
small: Boolean = false
3131
) {
@@ -42,15 +42,15 @@ fun Avatar(
4242
)
4343
}
4444

45-
if (user.avatar != null) {
45+
if (account.avatar != null) {
4646
KamelImage(
47-
{ asyncPainterResource(user.avatarStatic!!) },
48-
user.avatarDescription,
47+
{ asyncPainterResource(account.avatarStatic!!) },
48+
account.avatarDescription,
4949
onLoading = { fallback() },
5050
modifier = Modifier.clip(RoundedCornerShape(radius))
5151
.height(size)
5252
.width(size),
5353
contentScale = ContentScale.Crop
5454
)
5555
} else fallback()
56-
}
56+
}

shared/src/commonMain/kotlin/site/remlit/snowdrop/component/Status.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import site.remlit.snowdrop.ProfileRoute
4040
import site.remlit.snowdrop.ThreadRoute
4141
import site.remlit.snowdrop.component.dropdown.DangerDropdownItem
4242
import site.remlit.snowdrop.model.Status
43-
import site.remlit.snowdrop.model.User
43+
import site.remlit.snowdrop.model.Account
4444
import site.remlit.snowdrop.util.LocalNavController
4545
import site.remlit.snowdrop.util.WarningColor25
4646
import site.remlit.snowdrop.util.atRoute
@@ -86,7 +86,7 @@ fun Status(status: Status) {
8686

8787
var realStatus by remember { mutableStateOf(status) }
8888
var isReblog by remember { mutableStateOf(false) }
89-
var rebloggingAccount by remember { mutableStateOf<User?>(null) }
89+
var rebloggingAccount by remember { mutableStateOf<Account?>(null) }
9090
var isMine by remember { mutableStateOf(realStatus.account?.id == currentAccount?.id) }
9191
//todo: or is admin? figure out how to do that
9292

shared/src/commonMain/kotlin/site/remlit/snowdrop/model/User.kt renamed to shared/src/commonMain/kotlin/site/remlit/snowdrop/model/Account.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import kotlinx.serialization.SerialName
44
import kotlinx.serialization.Serializable
55

66
@Serializable
7-
data class User(
7+
data class Account(
88
val id: String,
99
val username: String,
1010
val acct: String,
@@ -37,7 +37,7 @@ data class User(
3737
val headerDescription: String? = null,
3838

3939
// todo: why is this a string? what is this?
40-
val moved: User? = null,
40+
val moved: Account? = null,
4141

4242
val locked: Boolean,
4343
val bot: Boolean,

shared/src/commonMain/kotlin/site/remlit/snowdrop/model/Notification.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ data class Notification(
1010
val id: String,
1111
val type: String,
1212

13-
val account: User,
13+
val account: Account,
1414
val status: Status? = null,
1515

1616
val emoji: String? = null,

shared/src/commonMain/kotlin/site/remlit/snowdrop/model/Status.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import kotlin.time.Instant
88
@Serializable
99
data class Status(
1010
val id: String? = null,
11-
val account: User? = null,
11+
val account: Account? = null,
1212

1313
@SerialName("spoiler_text")
1414
val spoilerText: String? = null,
@@ -191,7 +191,7 @@ data class Status(
191191
val url: String? = null,
192192
@SerialName("static_url")
193193
val staticUrl: String? = null,
194-
val accounts: List<User>? = emptyList(),
194+
val accounts: List<Account>? = emptyList(),
195195
@SerialName("account_ids")
196196
val accountIds: List<String> = emptyList()
197197
)

shared/src/commonMain/kotlin/site/remlit/snowdrop/model/response/SearchResponse.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package site.remlit.snowdrop.model.response
22

33
import kotlinx.serialization.Serializable
4-
import site.remlit.snowdrop.model.User
4+
import site.remlit.snowdrop.model.Account
55

66
@Serializable
77
data class SearchResponse(
8-
val accounts: List<User> = emptyList(),
8+
val accounts: List<Account> = emptyList(),
99
val statuses: List<String> = emptyList(),
1010
val hashtags: List<Hashtag> = emptyList()
1111
) {

shared/src/commonMain/kotlin/site/remlit/snowdrop/util/Settings.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ import com.russhwolf.settings.coroutines.toBlockingSettings
99
import kotlinx.coroutines.flow.Flow
1010
import kotlinx.coroutines.flow.FlowCollector
1111
import site.remlit.snowdrop.api.verifyCredentials
12-
import site.remlit.snowdrop.model.User
13-
import site.remlit.snowdrop.util.config.json
12+
import site.remlit.snowdrop.model.Account
13+
import site.remlit.snowdrop.util.cache.getCacheEntry
14+
import site.remlit.snowdrop.util.cache.putCacheEntry
1415

1516
@OptIn(ExperimentalSettingsApi::class)
1617
expect val settings: FlowSettings
@@ -50,8 +51,8 @@ fun setupAppSettings() {
5051
* @return User
5152
* */
5253
@OptIn(ExperimentalSettingsApi::class)
53-
fun getCurrentAccountObjectFlow(): Flow<User> = object : Flow<User> {
54-
override suspend fun collect(collector: FlowCollector<User>) = safe {
54+
fun getCurrentAccountObjectFlow(): Flow<Account> = object : Flow<Account> {
55+
override suspend fun collect(collector: FlowCollector<Account>) = safe {
5556
if (getCurrentAccountId() == "")
5657
return@safe
5758

@@ -60,15 +61,15 @@ fun getCurrentAccountObjectFlow(): Flow<User> = object : Flow<User> {
6061

6162
collector.emit(
6263
getCacheEntry("account_${getCurrentAccountId()}")!!
63-
.getContent<User>()
64+
.getContent<Account>()
6465
)
6566
}
6667
}
6768

6869
suspend fun updateCurrentAccountObject() {
6970
val verifyRes = verifyCredentials()
7071
if (verifyRes.error) return
71-
if (verifyRes.response !is User) return
72+
if (verifyRes.response !is Account) return
7273

7374
putCacheEntry(
7475
"account_${getCurrentAccountId()}",

0 commit comments

Comments
 (0)