Reuse collator instance

This commit is contained in:
MM20 2024-05-11 13:18:03 +02:00
parent 9b252cb5e8
commit 90de026e49
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
3 changed files with 21 additions and 6 deletions

View File

@ -6,7 +6,7 @@ import android.os.Bundle
import de.mm20.launcher2.icons.LauncherIcon
import de.mm20.launcher2.icons.StaticLauncherIcon
import de.mm20.launcher2.ktx.romanize
import java.text.Collator
import de.mm20.launcher2.text.Collator
interface SavableSearchable : Searchable, Comparable<SavableSearchable> {
val key: String
@ -37,8 +37,7 @@ interface SavableSearchable : Searchable, Comparable<SavableSearchable> {
override fun compareTo(other: SavableSearchable): Int {
val label1 = labelOverride ?: label
val label2 = other.labelOverride ?: other.label
return Collator.getInstance().apply { strength = Collator.SECONDARY }
.compare(label1.romanize(), label2.romanize())
return Collator.compare(label1.romanize(), label2.romanize())
}
val domain: String

View File

@ -0,0 +1,17 @@
package de.mm20.launcher2.text
import android.icu.text.Collator
import kotlin.concurrent.getOrSet
private val threadLocalCollator = ThreadLocal.withInitial {
android.icu.text.Collator.getInstance().apply {
strength = android.icu.text.Collator.SECONDARY
}
}
val Collator = threadLocalCollator.getOrSet {
android.icu.text.Collator.getInstance().apply {
strength = android.icu.text.Collator.SECONDARY
}
}

View File

@ -9,9 +9,9 @@ import android.os.Process
import androidx.core.content.getSystemService
import de.mm20.launcher2.ktx.romanize
import de.mm20.launcher2.search.AppProfile
import de.mm20.launcher2.text.Collator
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
import java.text.Collator
class AppShortcutConfigActivity(
private val launcherActivityInfo: LauncherActivityInfo,
@ -32,7 +32,6 @@ class AppShortcutConfigActivity(
val label1 = label
val label2 = other.label
return Collator.getInstance().apply { strength = Collator.SECONDARY }
.compare(label1.romanize(), label2.romanize())
return Collator.compare(label1.romanize(), label2.romanize())
}
}