aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-09-26 20:51:23 +0000
committerGravatar John Cater <jcater@google.com>2016-09-27 00:11:54 +0000
commit638ba3552007059d94b1baf74c8069cf156fd5f2 (patch)
tree77a09c897e6536bac2f75dc582b88d92d940c556 /src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java
parentbebbbe5d30f2a05e93780306208e1933d664d71b (diff)
Update the density filter to account for all passed densities.
-- MOS_MIGRATED_REVID=134321948
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java b/src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java
index e003a7df9d..e1d6962fc6 100644
--- a/src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java
+++ b/src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java
@@ -17,7 +17,10 @@ import com.android.ide.common.res2.MergingException;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Predicate;
import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableMultimap;
@@ -39,6 +42,7 @@ import java.util.Collection;
import java.util.EnumSet;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
/**
* Filters a {@link MergedAndroidData} resource drawables to the specified densities.
@@ -80,6 +84,17 @@ public class DensitySpecificResourceFilter {
public String getResid() {
return this.resid;
}
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("resource", resource)
+ .add("restype", restype)
+ .add("qualifiers", qualifiers)
+ .add("density", density)
+ .add("resid", resid)
+ .toString();
+ }
}
private static class RecursiveFileCopier extends SimpleFileVisitor<Path> {
@@ -171,6 +186,13 @@ public class DensitySpecificResourceFilter {
@VisibleForTesting
List<Path> getResourceToRemove(List<Path> resourcePaths) {
+ Predicate<ResourceInfo> requestedDensityFilter = new Predicate<ResourceInfo>() {
+ @Override
+ public boolean apply(@Nullable ResourceInfo info) {
+ return !densities.contains(info.getDensity());
+ }
+ };
+
List<ResourceInfo> resourceInfos = getResourceInfos(resourcePaths);
List<ResourceInfo> densityResourceInfos = filterDensityResourceInfos(resourceInfos);
List<ResourceInfo> resourceInfoToRemove = new ArrayList<>();
@@ -193,8 +215,9 @@ public class DensitySpecificResourceFilter {
return matchScore(info, densities);
}
}).immutableSortedCopy(qualifierResourceInfos);
-
- resourceInfoToRemove.addAll(sortedResourceInfos.subList(1, sortedResourceInfos.size()));
+ resourceInfoToRemove.addAll(Collections2.filter(
+ sortedResourceInfos.subList(1, sortedResourceInfos.size()),
+ requestedDensityFilter));
}
}
}