\r
private final ArrayList<ISdkListener> mListeners = new ArrayList<ISdkListener>();\r
\r
+ private Display mDisplay;\r
+\r
public interface ISdkListener {\r
void onSdkChange();\r
}\r
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
}\r
\r
// notify adapters?\r
+ mLocalSdkParser.clearPackages();\r
// TODO\r
\r
// notify listeners\r
* <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
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