Skip to content

Commit 1dd6c91

Browse files
Akilesh Kailashthestinger
authored andcommitted
Remove the cap of max disk resize.
Instead, get the max resize from the available storage from the host. Give 1GB additional room to the host. Test: Check if resize option is available on guest based on host available storage. Bug: 405398527 Test: Resize storage - Increase by 10G, followed by decrease by 5G Change-Id: I201749302f4f31c4f345c69eb47444d6bdd0b54c Signed-off-by: Akilesh Kailash <[email protected]>
1 parent b490680 commit 1dd6c91

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

android/TerminalApp/java/com/android/virtualization/terminal/SettingsDiskResizeActivity.kt

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@
1515
*/
1616
package com.android.virtualization.terminal
1717

18+
import android.content.Context
1819
import android.content.Intent
1920
import android.icu.text.MeasureFormat
2021
import android.icu.text.NumberFormat
2122
import android.icu.util.Measure
2223
import android.icu.util.MeasureUnit
2324
import android.os.Bundle
24-
import android.os.Environment
25+
import android.os.storage.StorageManager
26+
import android.os.storage.StorageManager.UUID_DEFAULT
2527
import android.text.SpannableString
2628
import android.text.Spanned
2729
import android.text.TextUtils
@@ -39,7 +41,7 @@ import java.util.regex.Pattern
3941

4042
class SettingsDiskResizeActivity : AppCompatActivity() {
4143
private val numberPattern: Pattern = Pattern.compile("[\\d]*[\\٫.,]?[\\d]+")
42-
private val defaultMaxDiskSizeMb: Long = 16 shl 10
44+
private val defaultHostReserveSizeMb: Long = 5 shl 10
4345

4446
private var diskSizeStepMb: Long = 0
4547
private var diskSizeMb: Long = 0
@@ -59,10 +61,10 @@ class SettingsDiskResizeActivity : AppCompatActivity() {
5961
}
6062

6163
private fun getAvailableSizeMb(): Long {
62-
val usableSpaceMb =
63-
bytesToMb(Environment.getDataDirectory().getUsableSpace()) and
64-
(diskSizeStepMb - 1).inv()
65-
return diskSizeMb + usableSpaceMb
64+
var storageManager =
65+
applicationContext.getSystemService(Context.STORAGE_SERVICE) as StorageManager
66+
val hostAllocatableMb = bytesToMb(storageManager.getAllocatableBytes(UUID_DEFAULT))
67+
return diskSizeMb + hostAllocatableMb
6668
}
6769

6870
private fun mbToProgress(bytes: Long): Int {
@@ -82,7 +84,10 @@ class SettingsDiskResizeActivity : AppCompatActivity() {
8284
val image = InstalledImage.getDefault(this)
8385
diskSizeMb = bytesToMb(image.getApparentSize())
8486
val minDiskSizeMb = bytesToMb(image.getSmallestSizePossible()).coerceAtMost(diskSizeMb)
85-
val maxDiskSizeMb = defaultMaxDiskSizeMb.coerceAtMost(getAvailableSizeMb())
87+
var maxDiskSizeMb = getAvailableSizeMb()
88+
if (maxDiskSizeMb > defaultHostReserveSizeMb) {
89+
maxDiskSizeMb -= defaultHostReserveSizeMb
90+
}
8691

8792
diskSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_assigned)!!
8893
diskMaxSizeText = findViewById<TextView>(R.id.settings_disk_resize_resize_gb_max)

0 commit comments

Comments
 (0)