From 962b6728dd4c67f9254e8259663c47dc54141fc2 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Wed, 20 May 2020 20:36:52 +0300 Subject: [PATCH] Sticker: sort by title --- .../tusky/components/compose/ComposeViewModel.kt | 10 +++++++--- .../java/com/keylesspalace/tusky/entity/Sticker.kt | 7 +++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt index 29547f31..1c90fe30 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeViewModel.kt @@ -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>>() + 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() } }, { diff --git a/app/src/main/java/com/keylesspalace/tusky/entity/Sticker.kt b/app/src/main/java/com/keylesspalace/tusky/entity/Sticker.kt index 54805fd5..0f7746e9 100644 --- a/app/src/main/java/com/keylesspalace/tusky/entity/Sticker.kt +++ b/app/src/main/java/com/keylesspalace/tusky/entity/Sticker.kt @@ -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, var internal_url: String = "" -) : Parcelable +) : Comparable { + override fun compareTo(pack: StickerPack) : Int { + return title.compareTo(pack.title) + } +}