mirror of https://github.com/M66B/FairEmail.git
parent
d72090a8b8
commit
d2890c6808
@ -0,0 +1,41 @@
|
||||
package com.bugsnag.android
|
||||
|
||||
import android.content.ComponentCallbacks2
|
||||
|
||||
internal class MemoryTrimState : BaseObservable() {
|
||||
var isLowMemory: Boolean = false
|
||||
var memoryTrimLevel: Int? = null
|
||||
|
||||
val trimLevelDescription: String get() = descriptionFor(memoryTrimLevel)
|
||||
|
||||
fun updateMemoryTrimLevel(newTrimLevel: Int?): Boolean {
|
||||
if (memoryTrimLevel == newTrimLevel) {
|
||||
return false
|
||||
}
|
||||
|
||||
memoryTrimLevel = newTrimLevel
|
||||
return true
|
||||
}
|
||||
|
||||
fun emitObservableEvent() {
|
||||
updateState {
|
||||
StateEvent.UpdateMemoryTrimEvent(
|
||||
isLowMemory,
|
||||
memoryTrimLevel,
|
||||
trimLevelDescription
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun descriptionFor(memoryTrimLevel: Int?) = when (memoryTrimLevel) {
|
||||
null -> "None"
|
||||
ComponentCallbacks2.TRIM_MEMORY_COMPLETE -> "Complete"
|
||||
ComponentCallbacks2.TRIM_MEMORY_MODERATE -> "Moderate"
|
||||
ComponentCallbacks2.TRIM_MEMORY_BACKGROUND -> "Background"
|
||||
ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN -> "UI hidden"
|
||||
ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL -> "Running critical"
|
||||
ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW -> "Running low"
|
||||
ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE -> "Running moderate"
|
||||
else -> "Unknown ($memoryTrimLevel)"
|
||||
}
|
||||
}
|
Loading…
Reference in new issue