Replace java.util.Random with kotlin Random object (#4364)
This also improves randomness by avoiding to reinitialize the random number generator repeatedly from a seed based on the current time. Typically, if the number generator is reinitialized repeatedly at non-random times (like multiple times in a row), then generated numbers have a higher chance of repeating. The Kotlin Random object is only initialized once, using the best seed available for the current Android version.
This commit is contained in:
parent
2a4d60bed8
commit
ec599c8f8a
|
@ -21,7 +21,7 @@ import com.keylesspalace.tusky.util.getFormattedDescription
|
||||||
import com.keylesspalace.tusky.util.hide
|
import com.keylesspalace.tusky.util.hide
|
||||||
import com.keylesspalace.tusky.util.show
|
import com.keylesspalace.tusky.util.show
|
||||||
import com.keylesspalace.tusky.viewdata.AttachmentViewData
|
import com.keylesspalace.tusky.viewdata.AttachmentViewData
|
||||||
import java.util.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
class AccountMediaGridAdapter(
|
class AccountMediaGridAdapter(
|
||||||
private val useBlurhash: Boolean,
|
private val useBlurhash: Boolean,
|
||||||
|
@ -60,7 +60,6 @@ class AccountMediaGridAdapter(
|
||||||
)
|
)
|
||||||
|
|
||||||
private val itemBgBaseHSV = FloatArray(3)
|
private val itemBgBaseHSV = FloatArray(3)
|
||||||
private val random = Random()
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(
|
override fun onCreateViewHolder(
|
||||||
parent: ViewGroup,
|
parent: ViewGroup,
|
||||||
|
@ -72,7 +71,7 @@ class AccountMediaGridAdapter(
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
Color.colorToHSV(baseItemBackgroundColor, itemBgBaseHSV)
|
Color.colorToHSV(baseItemBackgroundColor, itemBgBaseHSV)
|
||||||
itemBgBaseHSV[2] = itemBgBaseHSV[2] + random.nextFloat() / 3f - 1f / 6f
|
itemBgBaseHSV[2] = itemBgBaseHSV[2] + Random.nextFloat() / 3f - 1f / 6f
|
||||||
binding.root.setBackgroundColor(Color.HSVToColor(itemBgBaseHSV))
|
binding.root.setBackgroundColor(Color.HSVToColor(itemBgBaseHSV))
|
||||||
return BindingHolder(binding)
|
return BindingHolder(binding)
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,14 @@
|
||||||
package com.keylesspalace.tusky.util
|
package com.keylesspalace.tusky.util
|
||||||
|
|
||||||
import android.text.Spanned
|
import android.text.Spanned
|
||||||
import java.util.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
private const val POSSIBLE_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
private const val POSSIBLE_CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
|
||||||
fun randomAlphanumericString(count: Int): String {
|
fun randomAlphanumericString(count: Int): String {
|
||||||
val chars = CharArray(count)
|
val chars = CharArray(count)
|
||||||
val random = Random()
|
|
||||||
for (i in 0 until count) {
|
for (i in 0 until count) {
|
||||||
chars[i] = POSSIBLE_CHARS[random.nextInt(POSSIBLE_CHARS.length)]
|
chars[i] = POSSIBLE_CHARS[Random.nextInt(POSSIBLE_CHARS.length)]
|
||||||
}
|
}
|
||||||
return String(chars)
|
return String(chars)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue