From 768f626ae1b4053bdfb4eeaca90cb813764b5729 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Wed, 22 Feb 2012 16:52:07 -0800 Subject: Make sure to remove obsolete id from the res repo after a delete. Change-Id: I5a42a436dd9d21a632af175a860a85aa1d3b5a1d --- .../adt/internal/resources/manager/ResourceManager.java | 13 +++++++++++++ .../android/ide/common/resources/ResourceRepository.java | 4 ++-- 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. -- cgit v1.1