diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-30 09:57:18 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-07-30 09:57:18 -0700 |
| commit | 9781a221e483aaf125f026e382a7443f54407aa3 (patch) | |
| tree | 0ef14871abf984c9e5dc930c41e77d2bf2a12f25 /tools | |
| parent | 99ef15f2b7793584c0071b9d15176ca3031acdd2 (diff) | |
| parent | f8a2fbab9094d5525179770e00042ac2f85be991 (diff) | |
| download | android_development-9781a221e483aaf125f026e382a7443f54407aa3.tar.gz android_development-9781a221e483aaf125f026e382a7443f54407aa3.tar.bz2 android_development-9781a221e483aaf125f026e382a7443f54407aa3.zip | |
am f8a2fbab: Merge change 9062 into donut
Merge commit 'f8a2fbab9094d5525179770e00042ac2f85be991'
* commit 'f8a2fbab9094d5525179770e00042ac2f85be991':
Adds call back to the SDK updater for SDK content notifications.
Diffstat (limited to 'tools')
8 files changed, 61 insertions, 17 deletions
diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java index b4289a6f1..d213f7a14 100644 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/AdtPlugin.java @@ -313,16 +313,7 @@ public class AdtPlugin extends AbstractUIPlugin { if (checkSdkLocationAndId()) { // if sdk if valid, reparse it - // add all the opened Android projects to the list of projects to be updated - // after the SDK is reloaded - synchronized (getSdkLockObject()) { - // get the project to refresh. - IJavaProject[] androidProjects = BaseProjectHelper.getAndroidProjects(); - mPostLoadProjectsToResolve.addAll(Arrays.asList(androidProjects)); - } - - // parse the SDK resources at the new location - parseSdkContent(); + reparseSdk(); } } else if (PREFS_BUILD_VERBOSITY.equals(property)) { mBuildVerbosity = BuildPreferencePage.getBuildLevel( @@ -1389,6 +1380,22 @@ public class AdtPlugin extends AbstractUIPlugin { } /** + * Reparses the content of the SDK and updates opened projects. + */ + public void reparseSdk() { + // add all the opened Android projects to the list of projects to be updated + // after the SDK is reloaded + synchronized (getSdkLockObject()) { + // get the project to refresh. + IJavaProject[] androidProjects = BaseProjectHelper.getAndroidProjects(); + mPostLoadProjectsToResolve.addAll(Arrays.asList(androidProjects)); + } + + // parse the SDK resources at the new location + parseSdkContent(); + } + + /** * Prints messages, associated with a project to the specified stream * @param stream The stream to write to * @param tag The tag associated to the message. Can be null diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java index 4a7d918dd..edc97faaf 100755 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/actions/AvdManagerAction.java @@ -49,6 +49,11 @@ public class AvdManagerAction implements IWorkbenchWindowActionDelegate, IObject null /*sdk log*/,
sdk.getSdkLocation(),
false /*userCanChangeSdkRoot*/);
+ window.addListeners(new UpdaterWindow.ISdkListener() {
+ public void onSdkChange() {
+ AdtPlugin.getDefault().reparseSdk();
+ }
+ });
window.open();
}
}
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AvdManagerPage.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AvdManagerPage.java index ccfd27607..5716edf3e 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AvdManagerPage.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/AvdManagerPage.java @@ -16,9 +16,9 @@ package com.android.sdkuilib.internal.repository;
-import com.android.sdkuilib.internal.repository.UpdaterData.ISdkListener;
import com.android.sdkuilib.internal.widgets.AvdSelector;
import com.android.sdkuilib.internal.widgets.AvdSelector.DisplayMode;
+import com.android.sdkuilib.repository.UpdaterWindow.ISdkListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java index 115bf32c6..d4ab86f61 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java @@ -19,7 +19,7 @@ package com.android.sdkuilib.internal.repository; import com.android.sdklib.internal.repository.Archive;
import com.android.sdklib.internal.repository.IDescription;
import com.android.sdklib.internal.repository.Package;
-import com.android.sdkuilib.internal.repository.UpdaterData.ISdkListener;
+import com.android.sdkuilib.repository.UpdaterWindow.ISdkListener;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java index 7d991c50f..a7c1a83a1 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java @@ -21,7 +21,7 @@ import com.android.sdklib.internal.repository.Archive; import com.android.sdklib.internal.repository.IDescription;
import com.android.sdklib.internal.repository.Package;
import com.android.sdklib.internal.repository.RepoSource;
-import com.android.sdkuilib.internal.repository.UpdaterData.ISdkListener;
+import com.android.sdkuilib.repository.UpdaterWindow.ISdkListener;
import org.eclipse.jface.dialogs.IInputValidator;
import org.eclipse.jface.dialogs.InputDialog;
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 ebe36797f..321f5ca97 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 @@ -32,6 +32,7 @@ import com.android.sdklib.internal.repository.RepoSources; import com.android.sdklib.internal.repository.ToolPackage;
import com.android.sdklib.internal.repository.Package.UpdateInfo;
import com.android.sdkuilib.internal.repository.icons.ImageFactory;
+import com.android.sdkuilib.repository.UpdaterWindow.ISdkListener;
import org.eclipse.swt.widgets.Shell;
@@ -67,10 +68,6 @@ class UpdaterData { private Shell mWindowShell;
- public interface ISdkListener {
- void onSdkChange();
- }
-
public UpdaterData(String osSdkRoot, ISdkLog sdkLog) {
mOsSdkRoot = osSdkRoot;
mSdkLog = sdkLog;
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 e36bd6c8e..0fbcc41cd 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 @@ -24,6 +24,7 @@ import com.android.sdklib.internal.repository.RepoSources; import com.android.sdklib.repository.SdkRepository;
import com.android.sdkuilib.internal.repository.icons.ImageFactory;
import com.android.sdkuilib.internal.tasks.ProgressTaskFactory;
+import com.android.sdkuilib.repository.UpdaterWindow.ISdkListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
@@ -168,6 +169,14 @@ public class UpdaterWindowImpl { mExtraPages.add(new Object[]{ title, pageClass });
}
+ public void addListeners(ISdkListener listener) {
+ mUpdaterData.addListeners(listener);
+ }
+
+ public void removeListener(ISdkListener listener) {
+ mUpdaterData.removeListener(listener);
+ }
+
/**
* Helper to return the SWT shell.
*/
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java index 9c4701309..94881dc6f 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/repository/UpdaterWindow.java @@ -32,6 +32,17 @@ public class UpdaterWindow { private UpdaterWindowImpl mWindow;
/**
+ * Interface for listeners on SDK modifications (ie new installed compoments, or deleted
+ * components)
+ */
+ public interface ISdkListener {
+ /**
+ * Sent when the content of the SDK changed
+ */
+ void onSdkChange();
+ }
+
+ /**
* Creates a new window. Caller must call open(), which will block.
* @param sdkLog
* @param osSdkRoot The OS path to the SDK root.
@@ -59,6 +70,21 @@ public class UpdaterWindow { }
/**
+ * Adds a new listener to be notified when a change is made to the content of the SDK.
+ */
+ public void addListeners(ISdkListener listener) {
+ mWindow.addListeners(listener);
+ }
+
+ /**
+ * Removes a new listener to be notified anymore when a change is made to the content of
+ * the SDK.
+ */
+ public void removeListener(ISdkListener listener) {
+ mWindow.removeListener(listener);
+ }
+
+ /**
* Opens the window.
*/
public void open() {
|
