aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-02-22 16:52:07 -0800
committerXavier Ducrohet <xav@android.com>2012-02-22 16:52:07 -0800
commit768f626ae1b4053bdfb4eeaca90cb813764b5729 (patch)
treea0b4bb120e2e922cd593934c8de1e4ca8f2206f3
parent469d3f0c294da5380c4765ae2f48aaf9fe345e7f (diff)
downloadsdk-768f626ae1b4053bdfb4eeaca90cb813764b5729.zip
sdk-768f626ae1b4053bdfb4eeaca90cb813764b5729.tar.gz
sdk-768f626ae1b4053bdfb4eeaca90cb813764b5729.tar.bz2
Make sure to remove obsolete id from the res repo after a delete.
Change-Id: I5a42a436dd9d21a632af175a860a85aa1d3b5a1d
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ResourceManager.java13
-rw-r--r--ide_common/src/com/android/ide/common/resources/ResourceRepository.java4
2 files changed, 15 insertions, 2 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ResourceManager.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ResourceManager.java
index eb4c1e9..ecc588f 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ResourceManager.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/ResourceManager.java
@@ -167,6 +167,19 @@ public final class ResourceManager {
* as a place to stash errors encountered
*/
public void processDelta(IResourceDelta delta, IdeScanningContext context) {
+ doProcessDelta(delta, context);
+
+ context.getRepository().postUpdateCleanUp();
+ }
+
+ /**
+ * Update the resource repository with a delta
+ *
+ * @param delta the resource changed delta to process.
+ * @param context a context object with state for the current update, such
+ * as a place to stash errors encountered
+ */
+ private void doProcessDelta(IResourceDelta delta, IdeScanningContext context) {
// Skip over deltas that don't fit our mask
int mask = IResourceDelta.ADDED | IResourceDelta.REMOVED | IResourceDelta.CHANGED;
int kind = delta.getKind();
diff --git a/ide_common/src/com/android/ide/common/resources/ResourceRepository.java b/ide_common/src/com/android/ide/common/resources/ResourceRepository.java
index d78f1d1..87d729d 100644
--- a/ide_common/src/com/android/ide/common/resources/ResourceRepository.java
+++ b/ide_common/src/com/android/ide/common/resources/ResourceRepository.java
@@ -598,9 +598,9 @@ public abstract class ResourceRepository {
/**
- * Called after a resource change event, when the resource delta has been processed.
+ * Cleans up the repository of resource items that have no source file anymore.
*/
- protected void postUpdate() {
+ public void postUpdateCleanUp() {
// Since removed files/folders remove source files from existing ResourceItem, loop through
// all resource items and remove the ones that have no source files.