Updates all templates to use the latest version of gradle and adds
support for multiDexEnabled, specifying compile version, and updates
repositories code.

Test: Manually tested across wear samples.

Change-Id: Icccbbba2c1832b46974b85b2bd1f568860497143
diff --git a/templates/Wear/Wearable/build.gradle.ftl b/templates/Wear/Wearable/build.gradle.ftl
index 89a15b0..6f8161a 100644
--- a/templates/Wear/Wearable/build.gradle.ftl
+++ b/templates/Wear/Wearable/build.gradle.ftl
@@ -19,18 +19,25 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }
 
 apply plugin: 'com.android.application'
 
-<#if sample.repository?has_content>
 repositories {
-<#list sample.repository as rep>
+    jcenter()
+    maven {
+        url 'https://maven.google.com'
+    }
+<#if sample.repository?has_content>
+  <#list sample.repository as rep>
     ${rep}
-</#list>
-}</#if>
+  </#list>
+</#if>
+}
+
+
 
 dependencies {
 
@@ -70,7 +77,12 @@
     'template'] // boilerplate code that is generated by the sample template process
 
 android {
-    compileSdkVersion ${compile_sdk}
+
+      <#if sample.compileSdkVersionWear?? && sample.compileSdkVersionWear?has_content>
+        compileSdkVersion ${sample.compileSdkVersionWear}
+      <#else>
+        compileSdkVersion ${compile_sdk}
+      </#if>
 
     buildToolsVersion ${build_tools_version}
 
@@ -89,6 +101,11 @@
       <#else>
         targetSdkVersion ${compile_sdk}
       </#if>
+
+      <#if sample.multiDexEnabled?? && sample.multiDexEnabled?has_content>
+        multiDexEnabled ${sample.multiDexEnabled}
+      </#if>
+
     }
 
     compileOptions {
diff --git a/templates/WearPlusShared/Shared/build.gradle.ftl b/templates/WearPlusShared/Shared/build.gradle.ftl
index 2ac5288..4fd221b 100644
--- a/templates/WearPlusShared/Shared/build.gradle.ftl
+++ b/templates/WearPlusShared/Shared/build.gradle.ftl
@@ -19,7 +19,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }
 
@@ -27,6 +27,14 @@
 
 repositories {
     jcenter()
+    maven {
+        url 'https://maven.google.com'
+    }
+<#if sample.repository?has_content>
+    <#list sample.repository as rep>
+    ${rep}
+    </#list>
+</#if>
 }
 
 <#if sample.dependency_shared?has_content>
@@ -47,7 +55,11 @@
     'template'] // boilerplate code that is generated by the sample template process
 
 android {
-    compileSdkVersion ${compile_sdk}
+     <#if sample.compileSdkVersion?? && sample.compileSdkVersion?has_content>
+        compileSdkVersion ${sample.compileSdkVersion}
+      <#else>
+        compileSdkVersion ${compile_sdk}
+      </#if>
 
     buildToolsVersion ${build_tools_version}
 
diff --git a/templates/WearPlusShared/Wearable/build.gradle.ftl b/templates/WearPlusShared/Wearable/build.gradle.ftl
index 0034180..2155685 100644
--- a/templates/WearPlusShared/Wearable/build.gradle.ftl
+++ b/templates/WearPlusShared/Wearable/build.gradle.ftl
@@ -19,21 +19,22 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }
 
 apply plugin: 'com.android.application'
 
-<#if sample.repository?has_content>
-repositories {
-<#list sample.repository as rep>
-    ${rep}
-</#list>
-}</#if>
-
 repositories {
     jcenter()
+    maven {
+        url 'https://maven.google.com'
+    }
+<#if sample.repository?has_content>
+    <#list sample.repository as rep>
+    ${rep}
+    </#list>
+</#if>
 }
 
 dependencies {
@@ -69,7 +70,12 @@
     'template'] // boilerplate code that is generated by the sample template process
 
 android {
-    compileSdkVersion ${compile_sdk}
+
+      <#if sample.compileSdkVersionWear?? && sample.compileSdkVersionWear?has_content>
+        compileSdkVersion ${sample.compileSdkVersionWear}
+      <#else>
+        compileSdkVersion ${compile_sdk}
+      </#if>
 
     buildToolsVersion ${build_tools_version}
 
@@ -77,12 +83,22 @@
         versionCode 1
         versionName "1.0"
 
+      <#if sample.minSdkVersionWear?? && sample.minSdkVersionWear?has_content>
+        minSdkVersion ${sample.minSdkVersionWear}
+      <#else>
+        minSdkVersion ${min_sdk}
+      </#if>
+
       <#if sample.targetSdkVersionWear?? && sample.targetSdkVersionWear?has_content>
         targetSdkVersion ${sample.targetSdkVersionWear}
       <#else>
         targetSdkVersion ${compile_sdk}
       </#if>
 
+       <#if sample.multiDexEnabled?? && sample.multiDexEnabled?has_content>
+         multiDexEnabled ${sample.multiDexEnabled}
+       </#if>
+
     }
 
     compileOptions {
diff --git a/templates/WearPlusShared/_MODULE_/build.gradle.ftl b/templates/WearPlusShared/_MODULE_/build.gradle.ftl
index c977411..73ba9f2 100644
--- a/templates/WearPlusShared/_MODULE_/build.gradle.ftl
+++ b/templates/WearPlusShared/_MODULE_/build.gradle.ftl
@@ -19,22 +19,22 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }
 
 apply plugin: 'com.android.application'
 
-<#if sample.repository?has_content>
-repositories {
-<#list sample.repository as rep>
-    ${rep}
-</#list>
-}
-</#if>
-
 repositories {
     jcenter()
+    maven {
+        url 'https://maven.google.com'
+    }
+<#if sample.repository?has_content>
+    <#list sample.repository as rep>
+    ${rep}
+    </#list>
+</#if>
 }
 
 dependencies {
@@ -61,7 +61,11 @@
     'template'] // boilerplate code that is generated by the sample template process
 
 android {
-    compileSdkVersion ${compile_sdk}
+     <#if sample.compileSdkVersion?? && sample.compileSdkVersion?has_content>
+        compileSdkVersion ${sample.compileSdkVersion}
+      <#else>
+        compileSdkVersion ${compile_sdk}
+      </#if>
 
     buildToolsVersion ${build_tools_version}
 
diff --git a/templates/base-application/_MODULE_/build.gradle.ftl b/templates/base-application/_MODULE_/build.gradle.ftl
index 820492e..d3b21ae 100644
--- a/templates/base-application/_MODULE_/build.gradle.ftl
+++ b/templates/base-application/_MODULE_/build.gradle.ftl
@@ -19,19 +19,23 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }
 
 apply plugin: 'com.android.application'
 
-<#if sample.repository?has_content>
 repositories {
-<#list sample.repository as rep>
+    jcenter()
+    maven {
+        url 'https://maven.google.com'
+    }
+<#if sample.repository?has_content>
+    <#list sample.repository as rep>
     ${rep}
-</#list>
-}
+    </#list>
 </#if>
+}
 
 dependencies {
 
@@ -70,7 +74,12 @@
 android {
      <#-- Note that target SDK is hardcoded in this template. We expect all samples
           to always use the most current SDK as their target. -->
-    compileSdkVersion ${compile_sdk}
+     <#if sample.compileSdkVersion?? && sample.compileSdkVersion?has_content>
+        compileSdkVersion ${sample.compileSdkVersion}
+      <#else>
+        compileSdkVersion ${compile_sdk}
+      </#if>
+
     buildToolsVersion ${build_tools_version}
 
     defaultConfig {
diff --git a/templates/base/_MODULE_/build.gradle.ftl b/templates/base/_MODULE_/build.gradle.ftl
index 78b6a36..24b9cdb 100644
--- a/templates/base/_MODULE_/build.gradle.ftl
+++ b/templates/base/_MODULE_/build.gradle.ftl
@@ -19,7 +19,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }
 
@@ -27,6 +27,9 @@
 
 repositories {
     jcenter()
+    maven {
+        url 'https://maven.google.com'
+    }
 <#if sample.repository?has_content>
 <#list sample.repository as rep>
     ${rep}
@@ -77,7 +80,13 @@
 android {
      <#-- Note that target SDK is hardcoded in this template. We expect all samples
           to always use the most current SDK as their target. -->
-    compileSdkVersion ${compile_sdk}
+    
+     <#if sample.compileSdkVersion?? && sample.compileSdkVersion?has_content>
+        compileSdkVersion ${sample.compileSdkVersion}
+      <#else>
+        compileSdkVersion ${compile_sdk}
+      </#if>
+
     buildToolsVersion ${build_tools_version}
 
     defaultConfig {
diff --git a/templates/create/_MODULE_/build.gradle.ftl b/templates/create/_MODULE_/build.gradle.ftl
index 5fa31f7..25f1e1c 100644
--- a/templates/create/_MODULE_/build.gradle.ftl
+++ b/templates/create/_MODULE_/build.gradle.ftl
@@ -25,7 +25,7 @@
     }
 
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.3.2'
+        classpath 'com.android.tools.build:gradle:2.3.3'
     }
 }