Use current size as default value in shared perference for disk
To ensure if its size is multiple of 4096. (the resize for that happens
only once)
Bug: 371491254
Test: clean boot / resize
Change-Id: Ib8073f5d3001e77cd67e88e7e2aac0490ca11524
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
index 623fbe4..f616b87 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
@@ -98,7 +98,7 @@
}
public long getSize() throws IOException {
- return roundUp(Files.size(mRootPartition));
+ return Files.size(mRootPartition);
}
public long getSmallestSizePossible() throws IOException {
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
index deef825..22f7c4e 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/MainActivity.java
@@ -505,21 +505,15 @@
String prefKey = getString(R.string.preference_file_key);
String key = getString(R.string.preference_disk_size_key);
SharedPreferences sharedPref = this.getSharedPreferences(prefKey, Context.MODE_PRIVATE);
- long newSize = sharedPref.getLong(key, -1);
-
- // No preferred size. Don't resize.
- if (newSize == -1) {
- return;
- }
-
try {
+ // Use current size as default value to ensure if its size is multiple of 4096
+ long newSize = sharedPref.getLong(key, image.getSize());
Log.d(TAG, "Resizing disk to " + newSize + " bytes");
newSize = image.resize(newSize);
+ sharedPref.edit().putLong(key, newSize).apply();
} catch (IOException e) {
Log.e(TAG, "Failed to resize disk", e);
return;
}
-
- sharedPref.edit().putLong(key, newSize).apply();
}
}