From 6847ac3525e37a5b5af8b743279e89966c7b6d17 Mon Sep 17 00:00:00 2001 From: Colin Edwards Date: Mon, 9 Sep 2013 23:40:25 -0500 Subject: [PATCH 1/6] Add gradle config --- library/build.gradle | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 library/build.gradle diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..16532a8 --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,39 @@ +buildscript { + repositories { + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:0.5.6' + } +} + +apply plugin: 'android-library' + +repositories { + mavenCentral() +} + +dependencies { + compile 'com.android.support:support-v4:13.0.0' +} + +android { + compileSdkVersion 17 + buildToolsVersion "17.0.0" + defaultConfig { + minSdkVersion 8 + targetSdkVersion 17 + } + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + } + } +} From 883a045bed7a698e38bc047a28880a8f93f4f34f Mon Sep 17 00:00:00 2001 From: Colin Edwards Date: Tue, 25 Feb 2014 19:07:54 -0600 Subject: [PATCH 2/6] Update to latest libs --- library/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/build.gradle b/library/build.gradle index 16532a8..c3b0d36 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -4,7 +4,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.5.6' + classpath 'com.android.tools.build:gradle:0.8.+' } } @@ -15,12 +15,12 @@ repositories { } dependencies { - compile 'com.android.support:support-v4:13.0.0' + compile 'com.android.support:support-v4:19.0.+' } android { compileSdkVersion 17 - buildToolsVersion "17.0.0" + buildToolsVersion "19.0.2" defaultConfig { minSdkVersion 8 targetSdkVersion 17 From 021485398fb2cdf9deda5553492359ca81373fd7 Mon Sep 17 00:00:00 2001 From: Colin Edwards Date: Mon, 27 Oct 2014 23:41:24 -0500 Subject: [PATCH 3/6] Bump some versions --- library/build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/build.gradle b/library/build.gradle index c3b0d36..78bbdba 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -4,11 +4,11 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:0.8.+' + classpath 'com.android.tools.build:gradle:0.12.2' } } -apply plugin: 'android-library' +apply plugin: 'com.android.library' repositories { mavenCentral() @@ -19,11 +19,11 @@ dependencies { } android { - compileSdkVersion 17 - buildToolsVersion "19.0.2" + compileSdkVersion 19 + buildToolsVersion "21.0.2" defaultConfig { minSdkVersion 8 - targetSdkVersion 17 + targetSdkVersion 19 } sourceSets { main { From d9939a4e6d7d686d2e96d109cd9a9ffc84337829 Mon Sep 17 00:00:00 2001 From: Nathan Schwermann Date: Mon, 22 Dec 2014 14:19:30 -0600 Subject: [PATCH 4/6] update gradle files to allow for import of the entire project as modules giving a library and samples module. Also use latest build tools. --- .gitignore | 7 ++ build.gradle | 19 +++++ gradlew | 164 +++++++++++++++++++++++++++++++++++++++++++ library/build.gradle | 32 ++++----- library/gradlew | 164 +++++++++++++++++++++++++++++++++++++++++++ settings.gradle | 1 + 6 files changed, 367 insertions(+), 20 deletions(-) create mode 100644 build.gradle create mode 100755 gradlew create mode 100755 library/gradlew create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 59499f7..f025a8b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,9 @@ !README.md !LICENSE !pom.xml +!build.gradle +!settings.gradle +!gradlew !library/ library/* @@ -14,6 +17,8 @@ library/* !library/build.xml !library/project.properties !library/pom.xml +!library/build.gradle +!library/gradlew !samples/ samples/* @@ -23,3 +28,5 @@ samples/* !samples/build.xml !samples/project.properties !samples/pom.xml +!samples.build.gradle +!samples/gradlew diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..6356aab --- /dev/null +++ b/build.gradle @@ -0,0 +1,19 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:1.0.0' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/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/library/build.gradle b/library/build.gradle index 78bbdba..491d6be 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,30 +1,18 @@ -buildscript { - repositories { - mavenCentral() - } - - dependencies { - classpath 'com.android.tools.build:gradle:0.12.2' - } -} - apply plugin: 'com.android.library' -repositories { - mavenCentral() -} - -dependencies { - compile 'com.android.support:support-v4:19.0.+' -} - android { - compileSdkVersion 19 - buildToolsVersion "21.0.2" + compileSdkVersion 21 + buildToolsVersion "21.1.1" defaultConfig { minSdkVersion 8 targetSdkVersion 19 } + + + lintOptions { + abortOnError false + } + sourceSets { main { manifest.srcFile 'AndroidManifest.xml' @@ -37,3 +25,7 @@ android { } } } + +dependencies { + compile 'com.android.support:support-v4:19.0.+' +} diff --git a/library/gradlew b/library/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/library/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/settings.gradle b/settings.gradle new file mode 100644 index 0000000..69de25d --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +include ':library', ':samples' From 0ff7a6069411adab4bd63ef80c87f4e73b57e5eb Mon Sep 17 00:00:00 2001 From: Nathan Schwermann Date: Mon, 22 Dec 2014 15:10:21 -0600 Subject: [PATCH 5/6] add support for AppCompat theme using color accent to tint the divider --- library/build.gradle | 1 + .../drawable/material_selection_divider.xml | 9 +++++++ library/res/values/themes.xml | 14 +++++++++++ samples/AndroidManifest.xml | 4 +++ samples/res/layout/activity_samples.xml | 6 +++++ samples/res/values/themes.xml | 5 ++++ .../samples/AppCompatThemeActivity.java | 25 +++++++++++++++++++ .../numberpicker/samples/SampleActivity.java | 6 +++++ 8 files changed, 70 insertions(+) create mode 100644 library/res/drawable/material_selection_divider.xml create mode 100644 samples/src/net/simonvt/numberpicker/samples/AppCompatThemeActivity.java diff --git a/library/build.gradle b/library/build.gradle index 491d6be..db20c9a 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -28,4 +28,5 @@ android { dependencies { compile 'com.android.support:support-v4:19.0.+' + compile 'com.android.support:appcompat-v7:21.0.3' } diff --git a/library/res/drawable/material_selection_divider.xml b/library/res/drawable/material_selection_divider.xml new file mode 100644 index 0000000..2d5db70 --- /dev/null +++ b/library/res/drawable/material_selection_divider.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/library/res/values/themes.xml b/library/res/values/themes.xml index ec5815f..4acd15b 100644 --- a/library/res/values/themes.xml +++ b/library/res/values/themes.xml @@ -55,4 +55,18 @@ @drawable/item_background_holo_light + + + + diff --git a/samples/AndroidManifest.xml b/samples/AndroidManifest.xml index 2ec3171..5f711e3 100644 --- a/samples/AndroidManifest.xml +++ b/samples/AndroidManifest.xml @@ -24,5 +24,9 @@ + + + diff --git a/samples/res/layout/activity_samples.xml b/samples/res/layout/activity_samples.xml index 462ede3..d62fa98 100644 --- a/samples/res/layout/activity_samples.xml +++ b/samples/res/layout/activity_samples.xml @@ -16,5 +16,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Light themed" /> + +