Sticker: sort by title

This commit is contained in:
Alibek Omarov 2020-05-20 20:36:52 +03:00
parent 548d0954fb
commit 3a1e874ba5
2 changed files with 12 additions and 5 deletions

View File

@ -426,7 +426,7 @@ class ComposeViewModel
super.onCleared()
}
fun getStickers() {
private fun getStickers() {
if(!tryFetchStickers)
return
@ -435,6 +435,7 @@ class ComposeViewModel
haveStickers.postValue(true)
val singles = mutableListOf<Single<Response<StickerPack>>>()
for(entry in stickers) {
val url = entry.value.removePrefix("/").removeSuffix("/") + "/pack.json";
singles += api.getStickerPack(url)
@ -450,8 +451,11 @@ class ComposeViewModel
Log.d(TAG, "Failed to get sticker pack.json", it)
emptyList()
}.subscribe() { pack ->
if(pack.isNotEmpty())
this.stickers.postValue(pack.toTypedArray())
if(pack.isNotEmpty()) {
val array = pack.toTypedArray()
array.sort()
this.stickers.postValue(array)
}
}.autoDispose()
}
}, {

View File

@ -18,10 +18,13 @@ package com.keylesspalace.tusky.entity
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
@Parcelize
data class StickerPack(
val title: String,
val tabIcon: String,
val stickers: List<String>,
var internal_url: String = ""
) : Parcelable
) : Comparable<StickerPack> {
override fun compareTo(pack: StickerPack) : Int {
return title.compareTo(pack.title)
}
}