OSDN Git Service

Fix the reload of pages after installation of packages.
authorXavier Ducrohet <xav@android.com>
Sat, 13 Jun 2009 01:12:20 +0000 (18:12 -0700)
committerXavier Ducrohet <xav@android.com>
Sat, 13 Jun 2009 01:13:27 +0000 (18:13 -0700)
sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java
sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java

index ad38a82..f08d59d 100755 (executable)
@@ -59,6 +59,8 @@ class UpdaterData {
 \r
     private final ArrayList<ISdkListener> mListeners = new ArrayList<ISdkListener>();\r
 \r
+    private Display mDisplay;\r
+\r
     public interface ISdkListener {\r
         void onSdkChange();\r
     }\r
@@ -81,6 +83,10 @@ class UpdaterData {
         return mOsSdkRoot;\r
     }\r
 \r
+    public void setDisplay(Display display) {\r
+        mDisplay = display;\r
+    }\r
+\r
     public void setTaskFactory(ITaskFactory taskFactory) {\r
         mTaskFactory = taskFactory;\r
     }\r
@@ -166,6 +172,7 @@ class UpdaterData {
         }\r
 \r
         // notify adapters?\r
+        mLocalSdkParser.clearPackages();\r
         // TODO\r
 \r
         // notify listeners\r
@@ -192,9 +199,8 @@ class UpdaterData {
      * <p/>This can be called from any thread.\r
      */\r
     public void notifyListeners() {\r
-        Display display = Display.getCurrent();\r
-        if (display != null && mListeners.size() > 0) {\r
-            display.syncExec(new Runnable() {\r
+        if (mDisplay != null && mListeners.size() > 0) {\r
+            mDisplay.syncExec(new Runnable() {\r
                 public void run() {\r
                     for (ISdkListener listener : mListeners) {\r
                         try {\r
@@ -265,6 +271,9 @@ class UpdaterData {
                     monitor.setDescription("Done. %1$d %2$s installed.",\r
                             numInstalled,\r
                             numInstalled == 1 ? "package" : "packages");\r
+\r
+                    //notify listeners something was installed, so that they can refresh\r
+                    reloadSdk();\r
                 }\r
             }\r
         });\r
index 0d1ead0..d9eac5c 100755 (executable)
@@ -105,6 +105,7 @@ public class UpdaterWindowImpl {
                 onAndroidSdkUpdaterDispose();    //$hide$ (hide from SWT designer)\r
             }\r
         });\r
+        mUpdaterData.setDisplay(mAndroidSdkUpdater.getDisplay());\r
 \r
         FillLayout fl;\r
         mAndroidSdkUpdater.setLayout(fl = new FillLayout(SWT.HORIZONTAL));\r