upgrade android libraries

This commit is contained in:
Eugene Kudelevsky
2012-07-05 12:17:44 +04:00
parent f3f2b0c022
commit 49ee384fcc
9 changed files with 40 additions and 10 deletions
@@ -3,6 +3,7 @@ package org.jetbrains.android.util;
import com.android.io.IAbstractFile;
import com.android.io.IAbstractFolder;
import com.android.io.StreamException;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -26,7 +27,7 @@ public class BufferingFileWrapper implements IAbstractFile {
return new ByteArrayInputStream(content);
}
catch (IOException e) {
throw new StreamException(e);
throw new StreamException(e, this);
}
}
@@ -89,4 +90,19 @@ public class BufferingFileWrapper implements IAbstractFile {
public boolean delete() {
throw new UnsupportedOperationException();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
BufferingFileWrapper wrapper = (BufferingFileWrapper)o;
return FileUtil.filesEqual(myFile, wrapper.myFile);
}
@Override
public int hashCode() {
return FileUtil.fileHashCode(myFile);
}
}
@@ -4,6 +4,7 @@ import com.android.io.FolderWrapper;
import com.android.io.IAbstractFile;
import com.android.io.IAbstractFolder;
import com.android.io.IAbstractResource;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -86,4 +87,19 @@ public class BufferingFolderWrapper implements IAbstractFolder {
public boolean delete() {
throw new UnsupportedOperationException();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
BufferingFolderWrapper wrapper = (BufferingFolderWrapper)o;
return FileUtil.filesEqual(myFile, wrapper.myFile);
}
@Override
public int hashCode() {
return FileUtil.fileHashCode(myFile);
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -6,6 +6,7 @@ import com.android.ide.common.resources.ResourceItem;
import com.android.ide.common.resources.ResourceRepository;
import com.android.resources.ResourceType;
import com.android.util.Pair;
import com.intellij.util.containers.HashMap;
import gnu.trove.TIntObjectHashMap;
import gnu.trove.TObjectIntHashMap;
import org.jetbrains.annotations.Nullable;
@@ -120,42 +121,39 @@ public class ProjectResources extends ResourceRepository {
return;
}
List<ResourceItem> resources = mResourceMap.get(ResourceType.ID);
Map<String, ResourceItem> resources = mResourceMap.get(ResourceType.ID);
final TObjectIntHashMap<String> name2id = myResourceValueMap.get(ResourceType.ID);
if (name2id != null) {
final TObjectIntHashMap<String> copy;
if (resources == null) {
resources = new ArrayList<ResourceItem>(name2id.size());
resources = new HashMap<String, ResourceItem>(name2id.size());
mResourceMap.put(ResourceType.ID, resources);
copy = name2id;
}
else {
copy = new TObjectIntHashMap<String>(name2id);
int i = 0;
while (i < resources.size()) {
ResourceItem item = resources.get(i);
final List<ResourceItem> resList = new ArrayList<ResourceItem>(resources.values());
for (ResourceItem item : resList) {
String name = item.getName();
if (item.isDeclaredInline()) {
if (copy.contains(name)) {
copy.remove(name);
i++;
}
else {
resources.remove(i);
resources.remove(item.getName());
}
}
else {
copy.remove(name);
i++;
}
}
}
for (Object name : copy.keys()) {
resources.add(new InlineResourceItem((String)name));
resources.put((String)name, new InlineResourceItem((String)name));
}
}
}