diff options
author | Joe Baker-Malone <jbakermalone@google.com> | 2022-03-15 17:30:11 -0700 |
---|---|---|
committer | Joe Baker-Malone <jbakermalone@google.com> | 2022-03-17 18:26:02 +0000 |
commit | 5f566e509625045c0052286af69d4e46d300f801 (patch) | |
tree | 75ec3c5df7a8e180d666ae44fc4a67666b9e5f6b /android | |
parent | 179efbb87fd49f9172fc2fdb3becda67796d65f9 (diff) | |
download | idea-5f566e509625045c0052286af69d4e46d300f801.tar.gz |
Fix several problems with first run wizard
- The system image checkbox was uncheckable, since the requested image
was unavailable.
- There was an infinite refresh loop on the jdk setup step.
- The "Available disk space" label wasn't shown.
- The space used label wasn't updated when the selection was modified.
Fixes: 216490728
Test: There aren't any existing tests for this code, so not adding them.
Change-Id: I2cf8826076008204a1fc3d1205c33be29cdf833e
Diffstat (limited to 'android')
3 files changed, 15 insertions, 5 deletions
diff --git a/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.kt b/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.kt index a733cfb24ca..68fbad6a562 100755 --- a/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.kt +++ b/android/src/com/android/tools/idea/welcome/install/AndroidVirtualDevice.kt @@ -63,6 +63,8 @@ class AndroidVirtualDevice constructor(remotePackages: Map<String?, RemotePackag private val IS_ARM64_HOST_OS = CpuArch.isArm64() || osArchitecture == ProductDetails.CpuArchitecture.X86_ON_ARM private lateinit var myProgressStep: ProgressStep private var myLatestVersion: AndroidVersion? = null + // After this we use x86-64 system images + private val MAX_X86_API_LEVEL = 30 @Throws(WizardException::class) private fun getSystemImageDescription(sdkHandler: AndroidSdkHandler): SystemImageDescription { @@ -103,9 +105,14 @@ class AndroidVirtualDevice constructor(remotePackages: Map<String?, RemotePackag } @VisibleForTesting - fun getRequiredSysimgPath(isArm64HostOs: Boolean): String = - DetailsTypes.getSysImgPath(ID_VENDOR_GOOGLE, myLatestVersion, ID_ADDON_GOOGLE_API_IMG, - if (isArm64HostOs) SdkConstants.ABI_ARM64_V8A else SdkConstants.ABI_INTEL_ATOM) + fun getRequiredSysimgPath(isArm64HostOs: Boolean): String { + return DetailsTypes.getSysImgPath(ID_VENDOR_GOOGLE, myLatestVersion, ID_ADDON_GOOGLE_API_IMG, + when { + isArm64HostOs -> SdkConstants.ABI_ARM64_V8A + (myLatestVersion?.compareTo(MAX_X86_API_LEVEL, null) ?: -1) > 0 -> SdkConstants.ABI_INTEL_ATOM64 + else -> SdkConstants.ABI_INTEL_ATOM + } ) + } override val requiredSdkPackages: Collection<String> get() { diff --git a/android/src/com/android/tools/idea/welcome/wizard/deprecated/JdkSetupStep.java b/android/src/com/android/tools/idea/welcome/wizard/deprecated/JdkSetupStep.java index b27b277a18e..7053c03b1c2 100644 --- a/android/src/com/android/tools/idea/welcome/wizard/deprecated/JdkSetupStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/deprecated/JdkSetupStep.java @@ -140,7 +140,9 @@ public class JdkSetupStep extends FirstRunWizardStep { private Path validateJdkPath(@NotNull Path file) { Path possiblePath = IdeSdks.getInstance().validateJdkPath(file); if (possiblePath != null) { - setJdkLocationComboBox(possiblePath); + if (!possiblePath.equals(file)) { + setJdkLocationComboBox(possiblePath); + } return possiblePath; } return null; diff --git a/android/src/com/android/tools/idea/welcome/wizard/deprecated/SdkComponentsStep.java b/android/src/com/android/tools/idea/welcome/wizard/deprecated/SdkComponentsStep.java index b79f23ca086..d0de82d80e0 100755 --- a/android/src/com/android/tools/idea/welcome/wizard/deprecated/SdkComponentsStep.java +++ b/android/src/com/android/tools/idea/welcome/wizard/deprecated/SdkComponentsStep.java @@ -201,7 +201,7 @@ public class SdkComponentsStep extends FirstRunWizardStep implements Disposable public void deriveValues(Set<? extends ScopedStateStore.Key> modified) { super.deriveValues(modified); String path = myState.get(mySdkDownloadPathKey); - myAvailableSpace.setText(getDiskSpace(path)); + myAvailableSpace.setText("Available disk space: " + getDiskSpace(path)); long selected = getComponentsSize(); myNeededSpace.setText(String.format("Total download size: %s", WelcomeUiUtils.getSizeLabel(selected))); } @@ -297,6 +297,7 @@ public class SdkComponentsStep extends FirstRunWizardStep implements Disposable // accessibility, so we need to call "setValueAt" manually. myTableModel.setValueAt(myCheckBox.isSelected(), myCheckBox.getRow(), 0); } + invokeUpdate(null); }); } |