Update script for adding android.jar to support updating API database

Change-Id: Ifa3fbcc9ef296d836a8f88bc40f7794be9ebd9b9
diff --git a/scripts/add-android-jar.sh b/scripts/add-android-jar.sh
index 3eb0d21..4a0f57c 100755
--- a/scripts/add-android-jar.sh
+++ b/scripts/add-android-jar.sh
@@ -8,6 +8,8 @@
 set -x
 
 echo "Update this script manually before using"
+echo "If updating API database also update API_LEVEL in " \
+    "AndroidApiHashingDatabaseBuilderGeneratorTest"
 exit -1
 
 # Download Platform SDK in @SDK_HOME
@@ -21,21 +23,46 @@
 THIRD_PARTY_ANDROID_JAR=third_party/android_jar
 THIRD_PARTY_ANDROID_JAR_LIB=$THIRD_PARTY_ANDROID_JAR/lib-v$SDK_VERSION
 
-rm -rf $THIRD_PARTY_ANDROID_JAR_LIB
-rm -f ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.gz
-rm -f ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.sha1
+UPDATE_ANDROID_JAR="no"
+if [[ "$UPDATE_ANDROID_JAR" == "yes" ]]; then
+  rm -rf $THIRD_PARTY_ANDROID_JAR_LIB
+  rm -f ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.gz
+  rm -f ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.sha1
 
-mkdir -p $THIRD_PARTY_ANDROID_JAR_LIB/optional
-cp $SDK_DIR/android.jar $THIRD_PARTY_ANDROID_JAR_LIB/android.jar
-cp $SDK_DIR/optional/*.jar $THIRD_PARTY_ANDROID_JAR_LIB/optional
-cp $SDK_DIR/optional/optional.json $THIRD_PARTY_ANDROID_JAR_LIB/optional
-cp $THIRD_PARTY_ANDROID_JAR/lib-v31/README.google $THIRD_PARTY_ANDROID_JAR_LIB
-vi $THIRD_PARTY_ANDROID_JAR_LIB/README.google
+  mkdir -p $THIRD_PARTY_ANDROID_JAR_LIB/optional
+  cp $SDK_DIR/android.jar $THIRD_PARTY_ANDROID_JAR_LIB/android.jar
+  cp $SDK_DIR/optional/*.jar $THIRD_PARTY_ANDROID_JAR_LIB/optional
+  cp $SDK_DIR/optional/optional.json $THIRD_PARTY_ANDROID_JAR_LIB/optional
+  cp $THIRD_PARTY_ANDROID_JAR/lib-v31/README.google $THIRD_PARTY_ANDROID_JAR_LIB
+  vi $THIRD_PARTY_ANDROID_JAR_LIB/README.google
 
-(cd $THIRD_PARTY_ANDROID_JAR \
-	&& upload_to_google_storage.py -a --bucket r8-deps lib-v$SDK_VERSION)
-rm -rf $THIRD_PARTY_ANDROID_JAR_LIB
-rm ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.gz
-git add ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.gz.sha1
+  (cd $THIRD_PARTY_ANDROID_JAR \
+      && upload_to_google_storage.py -a --bucket r8-deps lib-v$SDK_VERSION)
+  rm -rf $THIRD_PARTY_ANDROID_JAR_LIB
+  rm ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.gz
+  git add ${THIRD_PARTY_ANDROID_JAR_LIB}.tar.gz.sha1
+fi
 
-echo "Update build.gradle with this new cloud dependency, and verify with tools/gradle.py downloadDeps"
\ No newline at end of file
+UPDATE_API_DATABASE="no"
+if [[ "$UPDATE_API_DATABASE" == "yes" ]]; then
+  rm -rf $THIRD_PARTY_ANDROID_JAR/api-versions
+  rm -f $THIRD_PARTY_ANDROID_JAR/api-versions.tar.gz
+  rm -f $THIRD_PARTY_ANDROID_JAR/api-versions.tar.gz.sha1
+  mkdir -p $THIRD_PARTY_ANDROID_JAR/api-versions
+  cp $SDK_DIR/data/api-versions.xml $THIRD_PARTY_ANDROID_JAR/api-versions
+  (cd $THIRD_PARTY_ANDROID_JAR \
+      && upload_to_google_storage.py -a --bucket r8-deps api-versions)
+  tools/gradle.py r8NoManifestWithoutDeps testJar repackageTestDeps
+  java -cp build/libs/r8_no_manifest_without_deps.jar:build/libs/deps_all.jar:build/libs/r8tests.jar:build/libs/test_deps_all.jar \
+      com.android.tools.r8.apimodel.AndroidApiHashingDatabaseBuilderGeneratorTest
+
+  rm -rf $THIRD_PARTY_ANDROID_JAR/api-versions
+  rm -f $THIRD_PARTY_ANDROID_JAR/api-versions.tar.gz
+  git add $THIRD_PARTY_ANDROID_JAR/api-versions.tar.gz.sha1
+  git add src/main/resources/api_database/api_database_ambiguous.txt
+  git add src/main/resources/api_database/api_database_api_level.ser
+  git add src/main/resources/api_database/api_database_hash_lookup.ser
+fi
+
+echo "Update build.gradle with this new cloud dependency, " \
+    "and verify with tools/gradle.py downloadDeps"