From 63c20f1cd77bdee4d54d7b9736eff6fc1b6fb854 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Fri, 12 Jun 2009 18:12:20 -0700 Subject: [PATCH] Fix the reload of pages after installation of packages. --- .../sdkuilib/internal/repository/UpdaterData.java | 15 ++++++++++++--- .../internal/repository/UpdaterWindowImpl.java | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java index ad38a82c1..f08d59d7c 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java @@ -59,6 +59,8 @@ class UpdaterData { private final ArrayList mListeners = new ArrayList(); + private Display mDisplay; + public interface ISdkListener { void onSdkChange(); } @@ -81,6 +83,10 @@ class UpdaterData { return mOsSdkRoot; } + public void setDisplay(Display display) { + mDisplay = display; + } + public void setTaskFactory(ITaskFactory taskFactory) { mTaskFactory = taskFactory; } @@ -166,6 +172,7 @@ class UpdaterData { } // notify adapters? + mLocalSdkParser.clearPackages(); // TODO // notify listeners @@ -192,9 +199,8 @@ class UpdaterData { *

This can be called from any thread. */ public void notifyListeners() { - Display display = Display.getCurrent(); - if (display != null && mListeners.size() > 0) { - display.syncExec(new Runnable() { + if (mDisplay != null && mListeners.size() > 0) { + mDisplay.syncExec(new Runnable() { public void run() { for (ISdkListener listener : mListeners) { try { @@ -265,6 +271,9 @@ class UpdaterData { monitor.setDescription("Done. %1$d %2$s installed.", numInstalled, numInstalled == 1 ? "package" : "packages"); + + //notify listeners something was installed, so that they can refresh + reloadSdk(); } } }); diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java index 0d1ead005..d9eac5cea 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterWindowImpl.java @@ -105,6 +105,7 @@ public class UpdaterWindowImpl { onAndroidSdkUpdaterDispose(); //$hide$ (hide from SWT designer) } }); + mUpdaterData.setDisplay(mAndroidSdkUpdater.getDisplay()); FillLayout fl; mAndroidSdkUpdater.setLayout(fl = new FillLayout(SWT.HORIZONTAL));