VmTerminalApp: Limit disk resize up to free disk size
Bug: 382191950
Test: Manually
Change-Id: I57655096232ddad402688d9bcb16ec6e60cab79e
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
index b893d9e..8ea4b25 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt
@@ -21,6 +21,7 @@
import android.icu.util.Measure
import android.icu.util.MeasureUnit
import android.os.Bundle
+import android.os.Environment
import android.text.SpannableString
import android.text.Spanned
import android.text.TextUtils
@@ -35,9 +36,8 @@
import java.util.regex.Pattern
class SettingsDiskResizeActivity : AppCompatActivity() {
- // TODO(b/382191950): Calculate the maxDiskSizeMb based on the device storage usage
- private val maxDiskSizeMb: Long = 16 shl 10
private val numberPattern: Pattern = Pattern.compile("[\\d]*[\\٫.,]?[\\d]+")
+ private val defaultMaxDiskSizeMb: Long = 16 shl 10
private var diskSizeStepMb: Long = 0
private var diskSizeMb: Long = 0
@@ -72,6 +72,10 @@
val image = InstalledImage.getDefault(this)
diskSizeMb = bytesToMb(image.getSize())
val minDiskSizeMb = bytesToMb(image.getSmallestSizePossible()).coerceAtMost(diskSizeMb)
+ val usableSpaceMb =
+ bytesToMb(Environment.getDataDirectory().getUsableSpace()) and
+ (diskSizeStepMb - 1).inv()
+ val maxDiskSizeMb = defaultMaxDiskSizeMb.coerceAtMost(diskSizeMb + usableSpaceMb)
diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_assigned)!!
val diskMaxSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_max)