Enable minimizing the primary dex with DalvikAwareZipSplitter.
diff --git a/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java b/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java
index 1ca824c..fe19011 100644
--- a/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java
+++ b/src/com/facebook/buck/dalvik/DalvikAwareZipSplitter.java
@@ -52,6 +52,7 @@
   private final File reportDir;
   private final long linearAllocLimit;
   private final DalvikStatsCache dalvikStatsCache;
+  private final DexSplitStrategy dexSplitStrategy;
 
   private final MySecondaryDexHelper secondaryDexWriter;
   private DalvikAwareOutputStreamHelper primaryOut;
@@ -66,6 +67,7 @@
       String secondaryPattern,
       long linearAllocLimit,
       Predicate<String> requiredInPrimaryZip,
+      DexSplitStrategy dexSplitStrategy,
       ZipSplitter.CanaryStrategy canaryStrategy,
       File reportDir) {
     if (linearAllocLimit <= 0) {
@@ -76,6 +78,7 @@
     this.secondaryDexWriter = new MySecondaryDexHelper(outSecondaryDir, secondaryPattern, canaryStrategy);
     this.requiredInPrimaryZip = Preconditions.checkNotNull(requiredInPrimaryZip);
     this.reportDir = reportDir;
+    this.dexSplitStrategy = Preconditions.checkNotNull(dexSplitStrategy);
     this.linearAllocLimit = linearAllocLimit;
     this.dalvikStatsCache = new DalvikStatsCache();
   }
@@ -87,6 +90,7 @@
       String secondaryPattern,
       long linearAllocLimit,
       Predicate<String> requiredInPrimaryZip,
+      DexSplitStrategy dexSplitStrategy,
       ZipSplitter.CanaryStrategy canaryStrategy,
       File reportDir) {
     return new DalvikAwareZipSplitter(
@@ -96,6 +100,7 @@
         secondaryPattern,
         linearAllocLimit,
         requiredInPrimaryZip,
+        dexSplitStrategy,
         canaryStrategy,
         reportDir);
   }
@@ -130,7 +135,8 @@
 
         // Even if we have started writing a secondary dex, we still check if there is any leftover
         // room in the primary dex for the current entry in the traversal.
-        if (primaryOut.canPutEntry(entry)) {
+        if (dexSplitStrategy == DexSplitStrategy.MAXIMIZE_PRIMARY_DEX_SIZE &&
+            primaryOut.canPutEntry(entry)) {
           primaryOut.putEntry(entry);
         } else {
           secondaryDexWriter.getOutputToWriteTo(entry).putEntry(entry);
diff --git a/src/com/facebook/buck/dalvik/DalvikAwareZipSplitterFactory.java b/src/com/facebook/buck/dalvik/DalvikAwareZipSplitterFactory.java
index 9abdf70..7c07a47c 100644
--- a/src/com/facebook/buck/dalvik/DalvikAwareZipSplitterFactory.java
+++ b/src/com/facebook/buck/dalvik/DalvikAwareZipSplitterFactory.java
@@ -44,6 +44,7 @@
         secondaryPattern,
         linearAllocLimit,
         requiredInPrimaryZip,
+        dexSplitStrategy,
         canaryStrategy,
         reportDir);
   }