Fix Jack command-line

Provides min api level to Jack.

Change-Id: Ia74e54670496697462bc54ce4b05c16d6c6cf8c0
diff --git a/src/vogar/Language.java b/src/vogar/Language.java
index 9d441e5..6e8e9c1 100644
--- a/src/vogar/Language.java
+++ b/src/vogar/Language.java
@@ -20,22 +20,28 @@
  * An enum for the different language variants supported by vogar.
  */
 public enum Language {
-  J17("1.7", "1.7"),
-  JN("1.8", "1.8");
+  J17("1.7", "1.7", 23),
+  JN("1.8", "1.8", 24);
 
   private final String javacSourceAndTarget;
-  private final String jackArg;
+  private final String jackSourceVersion;
+  private final int jackMinApilevel;
 
-  Language(String javacSourceAndTarget, String jackArg) {
+  Language(String javacSourceAndTarget, String jackSourceVersion, int jackMinApiLevel) {
     this.javacSourceAndTarget = javacSourceAndTarget;
-    this.jackArg = jackArg;
+    this.jackSourceVersion = jackSourceVersion;
+    this.jackMinApilevel = jackMinApiLevel;
   }
 
   public String getJavacSourceAndTarget() {
     return javacSourceAndTarget;
   }
 
-  public String getJackArg() {
-    return jackArg;
+  public String getJackSourceVersion() {
+    return jackSourceVersion;
+  }
+
+  public int getJackMinApilevel() {
+    return jackMinApilevel;
   }
 }
diff --git a/src/vogar/android/JackDexTask.java b/src/vogar/android/JackDexTask.java
index ea244b5..e427807 100644
--- a/src/vogar/android/JackDexTask.java
+++ b/src/vogar/android/JackDexTask.java
@@ -91,7 +91,8 @@
         run.log.verbose("JackDexTask: Could not obtain " + localDex + " from jackCache");
 
         Jack jack = Jack.getJackCommand(run.log).outputDexZip(localDex.getPath());
-        jack.sourceVersion(run.language.getJackArg());
+        jack.sourceVersion(run.language.getJackSourceVersion());
+        jack.minApiLevel(String.valueOf(run.language.getJackMinApilevel()));
         if (run.debugging) {
             jack.setDebug();
         }
diff --git a/src/vogar/commands/Jack.java b/src/vogar/commands/Jack.java
index ddde99d..b80b6a1 100644
--- a/src/vogar/commands/Jack.java
+++ b/src/vogar/commands/Jack.java
@@ -118,6 +118,11 @@
         return this;
     }
 
+    public Jack minApiLevel(String minApiLevel) {
+        setProperty("jack.android.min-api-level=" + minApiLevel);
+        return this;
+    }
+
     public Jack outputDex(String dir) {
         builder.args("--output-dex", dir);
         return this;
diff --git a/src/vogar/tasks/BuildActionTask.java b/src/vogar/tasks/BuildActionTask.java
index 1f0b3ae..e50378b 100644
--- a/src/vogar/tasks/BuildActionTask.java
+++ b/src/vogar/tasks/BuildActionTask.java
@@ -136,7 +136,8 @@
         if (run.debugging) {
             compiler.setDebug();
         }
-        compiler.sourceVersion(run.language.getJackArg());
+        compiler.sourceVersion(run.language.getJackSourceVersion());
+        compiler.minApiLevel(String.valueOf(run.language.getJackMinApilevel()));
         Set<File> sourceFiles = Sets.newHashSet();
 
         // Add the source files to be compiled.