20 lines
633 B
Kotlin
20 lines
633 B
Kotlin
package org.session.libsignal.utilities
|
|
|
|
data class ForkInfo(val hf: Int, val sf: Int) {
|
|
companion object {
|
|
const val DEFAULT_HF = 18
|
|
const val DEFAULT_SF = 1
|
|
val DEFAULT = ForkInfo(DEFAULT_HF, DEFAULT_SF)
|
|
val baseTable = arrayOf(10,100,1000,10000,100000)
|
|
}
|
|
|
|
operator fun compareTo(other: ForkInfo): Int {
|
|
val base = baseTable.first { it > sf && it > other.sf }
|
|
return (hf*base - other.hf*base) + (sf - other.sf)
|
|
}
|
|
|
|
}
|
|
|
|
// add info here for when various features are active
|
|
fun ForkInfo.hasNamespaces() = hf >= 19
|
|
fun ForkInfo.defaultRequiresAuth() = hf >= 19 && sf >= 1 |