diff options
author | Googler <noreply@google.com> | 2016-09-26 20:51:23 +0000 |
---|---|---|
committer | John Cater <jcater@google.com> | 2016-09-27 00:11:54 +0000 |
commit | 638ba3552007059d94b1baf74c8069cf156fd5f2 (patch) | |
tree | 77a09c897e6536bac2f75dc582b88d92d940c556 /src/tools/android/java/com/google/devtools/build/android/DensitySpecificResourceFilter.java | |
parent | bebbbe5d30f2a05e93780306208e1933d664d71b (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.java | 27 |
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)); } } } |