Making Gradle's System.getProperty("user.home") return $GRADLE_USER_HOME

So that any Gradle plugins that store state into System.getProperty("user.home") will be storing them into a known location where it's easier to inspect their state

Bug: 139870917

Test: OUT_DIR=../../out DIST_DIR=../../out/dist ./gradlew --no-daemon projects
Test: OUT_DIR=../../out DIST_DIR=../../out/dist ./gradlew --offline --no-daemon projects # And notice that this fails to resolve :kotlin-native-linux:1.3.1

Change-Id: I4640e707796ff81bdd0add5e503529dec132f78a
diff --git a/gradlew b/gradlew
index 769177b..b2ac426 100755
--- a/gradlew
+++ b/gradlew
@@ -197,7 +197,13 @@
 eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
 JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
 
-if "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"; then
+#TODO: Remove HOME_SYSTEM_PROPERTY_ARGUMENT if https://github.com/gradle/gradle/issues/11433 gets fixed
+HOME_SYSTEM_PROPERTY_ARGUMENT=""
+if [ "$GRADLE_USER_HOME" != "" ]; then
+    HOME_SYSTEM_PROPERTY_ARGUMENT="-Duser.home=$GRADLE_USER_HOME"
+fi
+
+if "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain $HOME_SYSTEM_PROPERTY_ARGUMENT "$@"; then
   exit 0
 else
   # Print AndroidX-specific help message if build fails