SDK Manager: fix NPE in AVD > Start when there's no skin name.

Also log missing config.ini path.

SDK BUG 2223760

Change-Id: I4517005e03e90c0b5a52bcb40b0d32eddd03c1f3
This commit is contained in:
Raphael
2009-10-29 13:52:56 -07:00
parent 940073e267
commit be4cbcc226
2 changed files with 30 additions and 22 deletions

View File

@@ -1044,7 +1044,13 @@ public final class AvdManager {
}
if (configIniFile != null) {
properties = SdkManager.parsePropertyFile(configIniFile, log);
if (!configIniFile.isFile()) {
if (log != null) {
log.warning("Missing file '%1$s'.", configIniFile.getPath());
}
} else {
properties = SdkManager.parsePropertyFile(configIniFile, log);
}
}
// get name

View File

@@ -120,7 +120,7 @@ final class AvdStartDialog extends GridDialog {
l.setText("Skin:");
l = new Label(parent, SWT.NONE);
l.setText(mSkinDisplay);
l.setText(mSkinDisplay == null ? "None" : mSkinDisplay);
l.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
l = new Label(parent, SWT.NONE);
@@ -417,27 +417,29 @@ final class AvdStartDialog extends GridDialog {
Map<String, String> prop = mAvd.getProperties();
String skinName = prop.get(AvdManager.AVD_INI_SKIN_NAME);
Matcher m = AvdManager.NUMERIC_SKIN_SIZE.matcher(skinName);
if (m.matches()) {
mSize1 = Integer.parseInt(m.group(1));
mSize2 = Integer.parseInt(m.group(2));
mSkinDisplay = skinName;
mEnableScaling = true;
} else {
// The resolution is inside the layout file of the skin.
mEnableScaling = false; // default to false for now.
if (skinName != null) {
Matcher m = AvdManager.NUMERIC_SKIN_SIZE.matcher(skinName);
if (m != null && m.matches()) {
mSize1 = Integer.parseInt(m.group(1));
mSize2 = Integer.parseInt(m.group(2));
mSkinDisplay = skinName;
mEnableScaling = true;
}
}
// path to the skin layout file.
File skinFolder = new File(mSdkLocation, prop.get(AvdManager.AVD_INI_SKIN_PATH));
if (skinFolder.isDirectory()) {
File layoutFile = new File(skinFolder, "layout");
if (layoutFile.isFile()) {
if (parseLayoutFile(layoutFile)) {
mSkinDisplay = String.format("%1$s (%2$dx%3$d)", skinName, mSize1, mSize2);
mEnableScaling = true;
} else {
mSkinDisplay = skinName;
}
// The resolution is inside the layout file of the skin.
mEnableScaling = false; // default to false for now.
// path to the skin layout file.
File skinFolder = new File(mSdkLocation, prop.get(AvdManager.AVD_INI_SKIN_PATH));
if (skinFolder.isDirectory()) {
File layoutFile = new File(skinFolder, "layout");
if (layoutFile.isFile()) {
if (parseLayoutFile(layoutFile)) {
mSkinDisplay = String.format("%1$s (%2$dx%3$d)", skinName, mSize1, mSize2);
mEnableScaling = true;
} else {
mSkinDisplay = skinName;
}
}
}