OSDN Git Service

SDK Manager: correctly handle lack of AvdManager
[android-x86/sdk.git] / sdkmanager / libs / sdkuilib / src / com / android / sdkuilib / internal / repository / UpdaterWindowImpl.java
index 4a41e4d..eda46e5 100755 (executable)
@@ -106,12 +106,12 @@ public class UpdaterWindowImpl {
         mAndroidSdkUpdater.open();\r
         mAndroidSdkUpdater.layout();\r
 \r
-        postCreate();    //$hide$ (hide from SWT designer)\r
-\r
-        Display display = Display.getDefault();\r
-        while (!mAndroidSdkUpdater.isDisposed()) {\r
-            if (!display.readAndDispatch()) {\r
-                display.sleep();\r
+        if (postCreate()) {    //$hide$ (hide from SWT designer)\r
+            Display display = Display.getDefault();\r
+            while (!mAndroidSdkUpdater.isDisposed()) {\r
+                if (!display.readAndDispatch()) {\r
+                    display.sleep();\r
+                }\r
             }\r
         }\r
 \r
@@ -257,8 +257,10 @@ public class UpdaterWindowImpl {
     /**\r
      * Once the UI has been created, initializes the content.\r
      * This creates the pages, selects the first one, setup sources and scan for local folders.\r
+     *\r
+     * Returns true if we should show the window.\r
      */\r
-    private void postCreate() {\r
+    private boolean postCreate() {\r
         mUpdaterData.setWindowShell(getShell());\r
         mTaskFactory = new ProgressTaskFactory(getShell());\r
         mUpdaterData.setTaskFactory(mTaskFactory);\r
@@ -285,11 +287,18 @@ public class UpdaterWindowImpl {
 \r
         setupSources();\r
         initializeSettings();\r
+\r
+        if (mUpdaterData.checkIfInitFailed()) {\r
+            return false;\r
+        }\r
+\r
         mUpdaterData.notifyListeners(true /*init*/);\r
 \r
         if (mRequestAutoUpdate) {\r
             mUpdaterData.updateOrInstallAll(null /*selectedArchives*/);\r
         }\r
+\r
+        return true;\r
     }\r
 \r
     /**\r