aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Banes <chrisbanes@google.com>2014-10-15 14:41:44 +0100
committerChris Banes <chrisbanes@google.com>2014-10-15 15:31:26 +0100
commit04ef6f99e253b2281caa2add40c7de76ae0e1bee (patch)
tree4305503f295a252f700b716c0c673d3a7f049d5f
parent4d2793783bdaa1d74b1998f088d1b68d24560599 (diff)
downloadandroid-04ef6f99e253b2281caa2add40c7de76ae0e1bee.tar.gz
Update FloatingActionButtonBasic for L
Change-Id: I9361c1ad6aeee07bcf33d5a0d41c0593022d4ed5
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/README-fragmentview.txt37
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/java/com/example/android/floatingactionbuttonbasic/FloatingActionButton.java171
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/drawable/fab_icons.xml3
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/values/dimens.xml3
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.jarbin0 -> 51348 bytes
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.properties6
-rwxr-xr-xui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew164
-rw-r--r--ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew.bat90
8 files changed, 352 insertions, 122 deletions
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/README-fragmentview.txt b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/README-fragmentview.txt
new file mode 100644
index 00000000..38d903f0
--- /dev/null
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/README-fragmentview.txt
@@ -0,0 +1,37 @@
+<!--
+ Copyright 2013 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+Steps to implement FragmentView template:
+-in template-params.xml.ftl:
+ -add the following line to common imports
+ <common src="activities"/>
+
+-Add a Fragment to show behavior. In your MainActivity.java class, it will reference a Fragment
+ called (yourProjectName)Fragment.java. Create that file in your project, using the "main" source
+ folder instead of "common" or "templates".
+ For instance, if your package name is com.example.foo, create the file
+ src/main/java/com/example/foo/FooFragment.java
+
+
+-Within this fragment, make sure that the onCreate method has the line
+ "setHasOptionsMenu(true);", to enable the fragment to handle menu events.
+
+-In order to override menu events, override onOptionsItemSelected.
+
+-refer to sampleSamples/fragmentViewSample for a reference implementation of a
+project built on this template.
+
+
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/java/com/example/android/floatingactionbuttonbasic/FloatingActionButton.java b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/java/com/example/android/floatingactionbuttonbasic/FloatingActionButton.java
index 1a27cfca..12fdd1c4 100644
--- a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/java/com/example/android/floatingactionbuttonbasic/FloatingActionButton.java
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/java/com/example/android/floatingactionbuttonbasic/FloatingActionButton.java
@@ -16,20 +16,11 @@
package com.example.android.floatingactionbuttonbasic;
-import com.example.android.common.logger.Log;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Outline;
-import android.graphics.Point;
import android.util.AttributeSet;
-import android.view.GestureDetector;
-import android.view.MotionEvent;
import android.view.View;
-import android.view.ViewAnimationUtils;
-import android.view.ViewGroup;
+import android.view.ViewOutlineProvider;
import android.widget.Checkable;
import android.widget.FrameLayout;
@@ -40,37 +31,33 @@ import android.widget.FrameLayout;
public class FloatingActionButton extends FrameLayout implements Checkable {
/**
- * An array of states.
+ * Interface definition for a callback to be invoked when the checked state
+ * of a compound button changes.
*/
- private static final int[] CHECKED_STATE_SET = {
- android.R.attr.state_checked
- };
+ public static interface OnCheckedChangeListener {
- private static String TAG = "FloatingActionButton";
+ /**
+ * Called when the checked state of a FAB has changed.
+ *
+ * @param fabView The FAB view whose state has changed.
+ * @param isChecked The new checked state of buttonView.
+ */
+ void onCheckedChanged(FloatingActionButton fabView, boolean isChecked);
+ }
/**
- * A boolean that tells if the FAB is checked or not.
- */
- protected boolean mChecked;
-
- /*/
- * The {@link View} that is revealed.
+ * An array of states.
*/
- protected View mRevealView;
+ private static final int[] CHECKED_STATE_SET = {
+ android.R.attr.state_checked
+ };
- /**
- * The coordinates of a touch action.
- */
- protected Point mTouchPoint;
+ private static final String TAG = "FloatingActionButton";
- /**
- * A {@link android.view.GestureDetector} to detect touch actions.
- */
- private GestureDetector mGestureDetector;
+ // A boolean that tells if the FAB is checked or not.
+ private boolean mChecked;
- /**
- * A listener to communicate that the FAB has changed its state.
- */
+ // A listener to communicate that the FAB has changed it's state
private OnCheckedChangeListener mOnCheckedChangeListener;
public FloatingActionButton(Context context) {
@@ -89,26 +76,20 @@ public class FloatingActionButton extends FrameLayout implements Checkable {
int defStyleRes) {
super(context, attrs, defStyleAttr);
- // When a view is clickable it will change its state to "pressed" on every click.
setClickable(true);
- // Create a {@link GestureDetector} to detect single taps.
- mGestureDetector = new GestureDetector(context,
- new GestureDetector.SimpleOnGestureListener() {
- @Override
- public boolean onSingleTapConfirmed(MotionEvent e) {
- mTouchPoint = new Point((int) e.getX(), (int) e.getY());
- Log.d(TAG, "Single tap captured.");
- toggle();
- return true;
- }
- }
- );
-
- // A new {@link View} is created
- mRevealView = new View(context);
- addView(mRevealView, ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT);
+ // Set the outline provider for this view. The provider is given the outline which it can
+ // then modify as needed. In this case we set the outline to be an oval fitting the height
+ // and width.
+ setOutlineProvider(new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ outline.setOval(0, 0, getWidth(), getHeight());
+ }
+ });
+
+ // Finally, enable clipping to the outline, using the provider we set above
+ setClipToOutline(true);
}
/**
@@ -122,78 +103,22 @@ public class FloatingActionButton extends FrameLayout implements Checkable {
}
mChecked = checked;
- // Create and start the {@link ValueAnimator} that shows the new state.
- ValueAnimator anim = createAnimator();
- anim.setDuration(getResources().getInteger(android.R.integer.config_shortAnimTime));
- anim.start();
-
- // Set the new background color of the {@link View} to be revealed.
- mRevealView.setBackgroundColor(
- mChecked ? getResources().getColor(R.color.fab_color_2)
- : getResources().getColor(R.color.fab_color_1)
- );
-
- // Show the {@link View} to be revealed. Note that the animation has started already.
- mRevealView.setVisibility(View.VISIBLE);
+ // Now refresh the drawable state (so the icon changes)
+ refreshDrawableState();
if (mOnCheckedChangeListener != null) {
mOnCheckedChangeListener.onCheckedChanged(this, checked);
}
}
- public void setOnCheckedChangeListener(OnCheckedChangeListener listener) {
- mOnCheckedChangeListener = listener;
- setClickable(listener != null);
- }
-
/**
- * Interface definition for a callback to be invoked when the checked state
- * of a compound button changes.
+ * Register a callback to be invoked when the checked state of this button
+ * changes.
+ *
+ * @param listener the callback to call on checked state change
*/
- public static interface OnCheckedChangeListener {
-
- /**
- * Called when the checked state of a FAB has changed.
- *
- * @param fabView The FAB view whose state has changed.
- * @param isChecked The new checked state of buttonView.
- */
- void onCheckedChanged(FloatingActionButton fabView, boolean isChecked);
- }
-
- protected ValueAnimator createAnimator() {
-
- // Calculate the longest distance from the hot spot to the edge of the circle.
- int endRadius = getWidth() / 2 +
- (int) Math.hypot(getWidth() / 2 - mTouchPoint.y, getWidth() / 2 - mTouchPoint.x);
-
- // Make sure the touch point is defined or set it to the middle of the view.
- if (mTouchPoint == null) {
- mTouchPoint = new Point(getWidth() / 2, getHeight() / 2);
- }
- ValueAnimator anim = ViewAnimationUtils.createCircularReveal(
- mRevealView, mTouchPoint.x, mTouchPoint.y, 0, endRadius);
- anim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- // Now we can refresh the drawable state
- refreshDrawableState();
-
- mRevealView.setVisibility(View.GONE);
- // Reset the touch point as the next call to {@link setChecked} might not come
- // from a tap.
- mTouchPoint = null;
- }
- });
- return anim;
- }
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (mGestureDetector.onTouchEvent(event)) {
- return true;
- }
- return super.onTouchEvent(event);
+ public void setOnCheckedChangeListener(OnCheckedChangeListener listener) {
+ mOnCheckedChangeListener = listener;
}
@Override
@@ -206,14 +131,22 @@ public class FloatingActionButton extends FrameLayout implements Checkable {
setChecked(!mChecked);
}
+ /**
+ * Override performClick() so that we can toggle the checked state when the view is clicked
+ */
+ @Override
+ public boolean performClick() {
+ toggle();
+ return super.performClick();
+ }
+
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
- Outline outline = new Outline();
- outline.setOval(0, 0, w, h);
- setOutline(outline);
- setClipToOutline(true);
+ // As we have changed size, we should invalidate the outline so that is the the
+ // correct size
+ invalidateOutline();
}
@Override
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/drawable/fab_icons.xml b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/drawable/fab_icons.xml
index 0e643857..daf1d247 100644
--- a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/drawable/fab_icons.xml
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/drawable/fab_icons.xml
@@ -15,7 +15,8 @@
limitations under the License.
-->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:enterFadeDuration="@android:integer/config_shortAnimTime">
<item android:state_checked="true">
<bitmap android:src="@drawable/ic_tick" android:tint="@android:color/white" />
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/values/dimens.xml b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/values/dimens.xml
index f063937a..de9d03ed 100644
--- a/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/values/dimens.xml
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/Application/src/main/res/values/dimens.xml
@@ -15,8 +15,7 @@
limitations under the License.
-->
<resources>
- <dimen name="fab_elevation">2dp</dimen>
- <dimen name="fab_press_translation_z">2dp</dimen>
+ <dimen name="fab_elevation">8dp</dimen>
<dimen name="fab_size">56dp</dimen>
<dimen name="fab_size_small">40dp</dimen>
<dimen name="fab_icon_size">24dp</dimen>
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.jar b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..0087cd3b
--- /dev/null
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.properties b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..893a63eb
--- /dev/null
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Oct 15 14:12:11 BST 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew
new file mode 100755
index 00000000..91a7e269
--- /dev/null
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew.bat b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew.bat
new file mode 100644
index 00000000..8a0b282a
--- /dev/null
+++ b/ui/views/FloatingActionButton/FloatingActionButtonBasic/gradle/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega