3 changed files with 75 additions and 1 deletions
-
17src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
-
58src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
-
1src/android/app/src/main/res/values/strings.xml
@ -0,0 +1,58 @@ |
|||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project |
|||
// SPDX-License-Identifier: GPL-2.0-or-later |
|||
|
|||
package org.yuzu.yuzu_emu.utils |
|||
|
|||
import android.app.ActivityManager |
|||
import android.content.Context |
|||
import java.util.Locale |
|||
|
|||
class MemoryUtil(context: Context) { |
|||
|
|||
private val Long.floatForm: String |
|||
get() = String.format(Locale.ROOT, "%.2f", this.toDouble()) |
|||
|
|||
private fun bytesToSizeUnit(size: Long): String { |
|||
return when { |
|||
size < Kb -> size.floatForm + " byte" |
|||
size < Mb -> (size / Kb).floatForm + " KB" |
|||
size < Gb -> (size / Mb).floatForm + " MB" |
|||
size < Tb -> (size / Gb).floatForm + " GB" |
|||
size < Pb -> (size / Tb).floatForm + " TB" |
|||
size < Eb -> (size / Pb).floatForm + " Pb" |
|||
else -> (size / Eb).floatForm + " Eb" |
|||
} |
|||
} |
|||
|
|||
private val totalMemory = |
|||
with(context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager) { |
|||
val memInfo = ActivityManager.MemoryInfo() |
|||
getMemoryInfo(memInfo) |
|||
memInfo.totalMem |
|||
} |
|||
|
|||
fun isLessThan(minimum: Int, size: Long): Boolean { |
|||
return when (size) { |
|||
Kb -> totalMemory < Mb && totalMemory < minimum |
|||
Mb -> totalMemory < Gb && (totalMemory / Mb) < minimum |
|||
Gb -> totalMemory < Tb && (totalMemory / Gb) < minimum |
|||
Tb -> totalMemory < Pb && (totalMemory / Tb) < minimum |
|||
Pb -> totalMemory < Eb && (totalMemory / Pb) < minimum |
|||
Eb -> totalMemory / Eb < minimum |
|||
else -> totalMemory < Kb && totalMemory < minimum |
|||
} |
|||
} |
|||
|
|||
fun getDeviceRAM(): String { |
|||
return bytesToSizeUnit(totalMemory) |
|||
} |
|||
|
|||
companion object { |
|||
const val Kb: Long = 1024 |
|||
const val Mb = Kb * 1024 |
|||
const val Gb = Mb * 1024 |
|||
const val Tb = Gb * 1024 |
|||
const val Pb = Tb * 1024 |
|||
const val Eb = Pb * 1024 |
|||
} |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue