From cf661eb8bac621ed452d6863ee6dbf04991acf38 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Tue, 26 Sep 2017 16:58:01 +0800 Subject: [PATCH 01/15] Set executable bit of gradlew --- .travis.yml | 3 --- gradlew | 0 2 files changed, 3 deletions(-) mode change 100644 => 100755 gradlew diff --git a/.travis.yml b/.travis.yml index ad8956d..9d773e0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,3 @@ before_script: - emulator -avd test -no-skin -no-audio -no-window & - android-wait-for-emulator - adb shell input keyevent 82 & - -before_install: - - chmod +x gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From afa20704080549ae16e2a0619cd5bf59b7066f7c Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Tue, 26 Sep 2017 16:58:12 +0800 Subject: [PATCH 02/15] Update Gradle wrapper to 4.2.1 --- gradle.properties | 17 +++ gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 54712 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 78 +++++----- gradlew.bat | 174 +++++++++++------------ 5 files changed, 145 insertions(+), 127 deletions(-) create mode 100644 gradle.properties diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..aac7c9b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,17 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..ed88a042a287c140a32e1639edfc91b2a233da8c 100644 GIT binary patch delta 48653 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%0Alk0k!JB4fW=&r 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 S;6}etWU|->aui)l+@d^*iTu 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 aA}~dPb^B!s1H%ISv4EZ^v8ufN>;C}Z7qY1U diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 22d46c5..c583957 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sat Apr 09 10:44:18 AEST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip diff --git a/gradlew b/gradlew index 91a7e26..cccdd3d 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,20 +6,38 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# 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\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,31 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=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. @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` @@ -154,11 +154,19 @@ if $cygwin ; then 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=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 8a0b282..e95643d 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,84 @@ -@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 +@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 + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@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= + +@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 Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_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=%* + +: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 From 9c2c651248dffc6957f2ef780150aae5c83c9a5c Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Tue, 26 Sep 2017 17:02:54 +0800 Subject: [PATCH 03/15] Add .gitignore --- .gitignore | 18 ++++++++++++++++++ decoviewlib/.gitignore | 1 - sampleapp/.gitignore | 1 - 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 .gitignore delete mode 100644 decoviewlib/.gitignore delete mode 100644 sampleapp/.gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8e4df1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Android Studio generated folders +.navigation/ +captures/ +.externalNativeBuild + +# IntelliJ project files +*.iml +.idea/ + +# Misc +.DS_Store diff --git a/decoviewlib/.gitignore b/decoviewlib/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/decoviewlib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/sampleapp/.gitignore b/sampleapp/.gitignore deleted file mode 100644 index 796b96d..0000000 --- a/sampleapp/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build From 026ba78e8cffec5534f840fb4a17da2e2025c0c8 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Fri, 6 Oct 2017 10:26:14 +0800 Subject: [PATCH 04/15] Remove IntelliJ files --- decoviewlib/decoviewlib.iml | 115 ------------------------------------ sampleapp/sampleapp.iml | 112 ----------------------------------- 2 files changed, 227 deletions(-) delete mode 100644 decoviewlib/decoviewlib.iml delete mode 100644 sampleapp/sampleapp.iml diff --git a/decoviewlib/decoviewlib.iml b/decoviewlib/decoviewlib.iml deleted file mode 100644 index db85c2b..0000000 --- a/decoviewlib/decoviewlib.iml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sampleapp/sampleapp.iml b/sampleapp/sampleapp.iml deleted file mode 100644 index 44eac82..0000000 --- a/sampleapp/sampleapp.iml +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From bec3dadafbad0e56bd95b92ea119db2e5957b636 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Fri, 6 Oct 2017 10:23:18 +0800 Subject: [PATCH 05/15] Add missing TargetApi annotation This fixes a Lint error. --- .../src/main/java/com/hookedonplay/decoviewlib/DecoView.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/decoviewlib/src/main/java/com/hookedonplay/decoviewlib/DecoView.java b/decoviewlib/src/main/java/com/hookedonplay/decoviewlib/DecoView.java index 31a4a15..b6c07ea 100644 --- a/decoviewlib/src/main/java/com/hookedonplay/decoviewlib/DecoView.java +++ b/decoviewlib/src/main/java/com/hookedonplay/decoviewlib/DecoView.java @@ -15,6 +15,7 @@ */ package com.hookedonplay.decoviewlib; +import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; @@ -648,6 +649,7 @@ public void setHorizGravity(HorizGravity horizGravity) { * {@link Canvas#clipPath(Path)} * This is used to clip the drawing rectangle to help render the Edge details decorations */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB) public void enableCompatibilityMode() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { From db477f762dca3858d2f4e2e95b0fd8a946ec4e09 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Sat, 7 Oct 2017 00:41:49 +0800 Subject: [PATCH 06/15] Delete empty test stubs --- .../hookedonplay/decoviewlib/ApplicationTest.java | 13 ------------- .../decoviewsample/ApplicationTest.java | 13 ------------- 2 files changed, 26 deletions(-) delete mode 100644 decoviewlib/src/androidTest/java/com/hookedonplay/decoviewlib/ApplicationTest.java delete mode 100644 sampleapp/src/androidTest/java/com/hookedonplay/decoviewsample/ApplicationTest.java diff --git a/decoviewlib/src/androidTest/java/com/hookedonplay/decoviewlib/ApplicationTest.java b/decoviewlib/src/androidTest/java/com/hookedonplay/decoviewlib/ApplicationTest.java deleted file mode 100644 index fda95a6..0000000 --- a/decoviewlib/src/androidTest/java/com/hookedonplay/decoviewlib/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hookedonplay.decoviewlib; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file diff --git a/sampleapp/src/androidTest/java/com/hookedonplay/decoviewsample/ApplicationTest.java b/sampleapp/src/androidTest/java/com/hookedonplay/decoviewsample/ApplicationTest.java deleted file mode 100644 index cf1ff7f..0000000 --- a/sampleapp/src/androidTest/java/com/hookedonplay/decoviewsample/ApplicationTest.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hookedonplay.decoviewsample; - -import android.app.Application; -import android.test.ApplicationTestCase; - -/** - * Testing Fundamentals - */ -public class ApplicationTest extends ApplicationTestCase { - public ApplicationTest() { - super(Application.class); - } -} \ No newline at end of file From da786345844b8093f9a13d5b4d2acebb749f9eaf Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Tue, 26 Sep 2017 17:04:31 +0800 Subject: [PATCH 07/15] Update build tools to 25.0.3 --- .travis.yml | 2 +- decoviewlib/build.gradle | 3 +-- sampleapp/build.gradle | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9d773e0..cd83126 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ env: - ADB_INSTALL_TIMEOUT=24 - EMULATOR_API_LEVEL=21 - ANDROID_API_LEVEL=23 - - ANDROID_BUILD_TOOLS_VERSION=23.0.3 + - ANDROID_BUILD_TOOLS_VERSION=25.0.3 - ANDROID_ABI=armeabi-v7a android: diff --git a/decoviewlib/build.gradle b/decoviewlib/build.gradle index 1751f8e..2940bf5 100644 --- a/decoviewlib/build.gradle +++ b/decoviewlib/build.gradle @@ -2,8 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 23 - buildToolsVersion "23.0.3" - + buildToolsVersion '25.0.3' defaultConfig { minSdkVersion 8 targetSdkVersion 23 diff --git a/sampleapp/build.gradle b/sampleapp/build.gradle index aae3ae9..c78a340 100644 --- a/sampleapp/build.gradle +++ b/sampleapp/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 23 - buildToolsVersion "23.0.3" + buildToolsVersion '25.0.3' defaultConfig { applicationId 'com.hookedonplay.decoviewsample' minSdkVersion 8 From 026a53cd99b214d985910c355f895161fe0e6dea Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Fri, 6 Oct 2017 10:24:22 +0800 Subject: [PATCH 08/15] Set minSdkVersion to 9 --- README.md | 2 +- decoviewlib/build.gradle | 2 +- sampleapp/build.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 740731d..6901b88 100644 --- a/README.md +++ b/README.md @@ -444,7 +444,7 @@ The steps required to build this sample are detailed in the following article: Requirements === -Android 2.2+ +Android 2.3+ Credits === diff --git a/decoviewlib/build.gradle b/decoviewlib/build.gradle index 2940bf5..421cde4 100644 --- a/decoviewlib/build.gradle +++ b/decoviewlib/build.gradle @@ -4,7 +4,7 @@ android { compileSdkVersion 23 buildToolsVersion '25.0.3' defaultConfig { - minSdkVersion 8 + minSdkVersion 9 targetSdkVersion 23 versionCode 10 versionName "1.2" diff --git a/sampleapp/build.gradle b/sampleapp/build.gradle index c78a340..045c5ca 100644 --- a/sampleapp/build.gradle +++ b/sampleapp/build.gradle @@ -5,7 +5,7 @@ android { buildToolsVersion '25.0.3' defaultConfig { applicationId 'com.hookedonplay.decoviewsample' - minSdkVersion 8 + minSdkVersion 9 targetSdkVersion 23 versionCode 10 versionName "1.2" From 27300f30370bac33237ad613f5b851b2d9268751 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Wed, 27 Sep 2017 18:17:38 +0800 Subject: [PATCH 09/15] Update compile and targetSdkVersion to 25 --- .travis.yml | 2 +- decoviewlib/build.gradle | 6 +++--- sampleapp/build.gradle | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index cd83126..57ef57b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ env: # install timeout in minutes (2 minutes by default) - ADB_INSTALL_TIMEOUT=24 - EMULATOR_API_LEVEL=21 - - ANDROID_API_LEVEL=23 + - ANDROID_API_LEVEL=25 - ANDROID_BUILD_TOOLS_VERSION=25.0.3 - ANDROID_ABI=armeabi-v7a diff --git a/decoviewlib/build.gradle b/decoviewlib/build.gradle index 421cde4..4e2afd3 100644 --- a/decoviewlib/build.gradle +++ b/decoviewlib/build.gradle @@ -1,11 +1,11 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 23 + compileSdkVersion 25 buildToolsVersion '25.0.3' defaultConfig { minSdkVersion 9 - targetSdkVersion 23 + targetSdkVersion 25 versionCode 10 versionName "1.2" } @@ -24,6 +24,6 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:23.3.0' + compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.nineoldandroids:library:2.4.0' } diff --git a/sampleapp/build.gradle b/sampleapp/build.gradle index 045c5ca..f47292c 100644 --- a/sampleapp/build.gradle +++ b/sampleapp/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 + compileSdkVersion 25 buildToolsVersion '25.0.3' defaultConfig { applicationId 'com.hookedonplay.decoviewsample' minSdkVersion 9 - targetSdkVersion 23 + targetSdkVersion 25 versionCode 10 versionName "1.2" } @@ -26,6 +26,6 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:23.3.0' + compile 'com.android.support:appcompat-v7:25.3.1' compile project(':decoviewlib') } From cb6486a3d928b3ec13c6b66841561074e680da46 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Fri, 6 Oct 2017 10:24:38 +0800 Subject: [PATCH 10/15] Update Android Gradle plugin to 2.3.3 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index e220f0b..5966013 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.2' + classpath 'com.android.tools.build:gradle:2.3.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From 8627fed576dae8f17256a50414b30dbb20f73b86 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Thu, 5 Oct 2017 13:14:51 +0800 Subject: [PATCH 11/15] Update .travis.yml This also removes some no-longer needed customization from build.gradle --- .travis.yml | 43 ++++++++++++++-------------------------- decoviewlib/build.gradle | 5 ----- sampleapp/build.gradle | 6 ------ 3 files changed, 15 insertions(+), 39 deletions(-) diff --git a/.travis.yml b/.travis.yml index 57ef57b..860d214 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,37 +1,24 @@ language: android -env: - global: - # install timeout in minutes (2 minutes by default) - - ADB_INSTALL_TIMEOUT=24 - - EMULATOR_API_LEVEL=21 - - ANDROID_API_LEVEL=25 - - ANDROID_BUILD_TOOLS_VERSION=25.0.3 - - ANDROID_ABI=armeabi-v7a +jdk: + - oraclejdk8 + +before_cache: + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + +cache: + directories: + - $HOME/.gradle/caches/ + - $HOME/.gradle/wrapper/ android: components: - - platform-tools - tools - - build-tools-$ANDROID_BUILD_TOOLS_VERSION - - android-$ANDROID_API_LEVEL - - android-$EMULATOR_API_LEVEL + - platform-tools + - build-tools-25.0.3 + - android-25 - extra-android-m2repository - extra-android-support - - sys-img-armeabi-v7a-android-$ANDROID_API_LEVEL - - sys-img-armeabi-v7a-android-$EMULATOR_API_LEVEL - -jdk: oraclejdk7 - -# Turn off caching to avoid any caching problems -cache: false - -# Use the Travis Container-Based Infrastructure -sudo: false -# Emulator Management: Create, Start and Wait -before_script: - - echo no | android create avd --force -n test -t android-$EMULATOR_API_LEVEL --abi $ANDROID_ABI - - emulator -avd test -no-skin -no-audio -no-window & - - android-wait-for-emulator - - adb shell input keyevent 82 & +script: + ./gradlew build diff --git a/decoviewlib/build.gradle b/decoviewlib/build.gradle index 4e2afd3..38ada4c 100644 --- a/decoviewlib/build.gradle +++ b/decoviewlib/build.gradle @@ -15,11 +15,6 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - // This enables long timeouts required on slow environments, e.g. Travis - adbOptions { - timeOutInMs 10 * 60 * 1000 // 10 minutes - installOptions "-d","-t" - } } dependencies { diff --git a/sampleapp/build.gradle b/sampleapp/build.gradle index f47292c..4e16b6d 100644 --- a/sampleapp/build.gradle +++ b/sampleapp/build.gradle @@ -16,12 +16,6 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - - // This enables long timeouts required on slow environments, e.g. Travis - adbOptions { - timeOutInMs 10 * 60 * 1000 // 10 minutes - installOptions "-d","-t" - } } dependencies { From d6a21e1d17c43c1a624be27fb652a6660e5b30fc Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Thu, 5 Oct 2017 13:23:02 +0800 Subject: [PATCH 12/15] Update README.md --- README.md | 81 +++++++++++++++++++++---------------------------------- 1 file changed, 31 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 6901b88..a29d7ad 100644 --- a/README.md +++ b/README.md @@ -16,25 +16,26 @@ Sample app available from the play store. [![Google Play Store](https://github.com/bmarrdev/android-DecoView-charting/blob/master/art/en_app_rgb_wo_60.png)](https://play.google.com/store/apps/details?id=com.hookedonplay.decoviewsample) -Including DecoView in your project -=== +## Including DecoView in your project Step 1. Add the repositories into your build.gradle - repositories { - // ... - maven { url "https://jitpack.io" } - } +```groovy +repositories { + // ... + maven { url "https://jitpack.io" } +} +``` Step 2. Add the dependency in the form - dependencies { - compile 'com.github.bmarrdev:android-DecoView-charting:v1.2' - } - +```groovy +dependencies { + compile 'com.github.bmarrdev:android-DecoView-charting:v1.2' +} +``` -Usage -=== +## Usage DecoView is subclassed from the Android View class. Just like other View subclasses, such as TextView and ImageView, it can be added and configured from your layout XML then controlled in your Activity code. @@ -45,7 +46,6 @@ The main concepts you need to understand are: - Use [SeriesItem.Builder](https://github.com/bmarrdev/android-DecoView-charting/blob/master/decoviewlib/src/main/java/com/hookedonplay/decoviewlib/charts/SeriesItem.java) to build one or more data series or your DecoView will not be visible - Use [DecoEvent.Builder](https://github.com/bmarrdev/android-DecoView-charting/blob/master/decoviewlib/src/main/java/com/hookedonplay/decoviewlib/events/DecoEvent.java) to schedule animating events for each data series - **Add DecoView to your xml layout** ```xml @@ -74,7 +74,6 @@ SeriesItem seriesItem1 = new SeriesItem.Builder(Color.argb(255, 64, 196, 0)) .build(); int series1Index = arcView.addSeries(seriesItem1); - ``` **Add events to animate the data series** @@ -91,8 +90,7 @@ arcView.addEvent(new DecoEvent.Builder(10).setIndex(series1Index).setDelay(12000 ``` -Chart Shape and orientation -=== +### Chart Shape and orientation The chart can be a full circle (360 degrees) or part of a circle. The number of degrees and the orientation can be set in the DecoView. @@ -108,8 +106,7 @@ By default when using a full circle the data series will originate at the top of When the view is not a complete circle the default initial point is the bottom of the view. Passing 90 will set the initial point to the leftmost point and 180 the topmost. -Chart Gravity -=== +### Chart Gravity By default the chart will maintain a square shape regardless of the dimensions of the DecoView in the layout. @@ -135,8 +132,7 @@ decoView.setHorizGravity(DecoView.HorizGravity.GRAVITY_HORIZONTAL_FILL); decoView.setVertGravity(DecoView.VertGravity.GRAVITY_VERTICAL_BOTTOM); ``` -Constructing a data series -=== +### Constructing a data series One or more data series can be added to the DecoView. These are created using the SeriesItem.Builder(...) class. @@ -166,8 +162,7 @@ SeriesItem seriesItem1 = new SeriesItem.Builder(Color.argb(255, 64, 196, 0)) .build(); ``` -Adding a listener to a data series -=== +### Adding a listener to a data series Once you have a SeriesItem created you can optionally add a SeriesItem.SeriesItemListener() that will allow you to use a callback to monitor the progress of an animation for the data series. @@ -196,8 +191,7 @@ seriesItem.addArcSeriesItemListener(new SeriesItem.SeriesItemListener() { Note that the progress callback includes a percentComplete parameter. This is the percent complete of the current animation being executed, you can calculate the percent filled using the current position. -Animating the data series -=== +### Animating the data series Each data series in the DecoView can be animated in a number of ways. @@ -230,8 +224,7 @@ In the above example some important points to note are: - The index that is passed was returned from the DecoView.addSeries(...) function call - All durations are specified in milliseconds -Adding a listener to an DecoEvent -=== +### Adding a listener to an DecoEvent Adding a listener to a DecoEvent is useful for getting a callback when an event starts and also when an event finishes. @@ -254,8 +247,7 @@ decoView.addEvent(new DecoEvent.Builder(EventType.EVENT_HIDE, false) .build()); ``` -Configuring animation -=== +### Configuring animation Animating the movement when moving the current position of a data series is done using the built-in [Android Interpolator classes](http://developer.android.com/reference/android/view/animation/Interpolator.html). @@ -282,8 +274,7 @@ decoView.addEvent(new DecoEvent.Builder(10) .build()); ``` -Configuring the animation duration -=== +### Configuring the animation duration Much like configuring the Interpolator, the total duration taken to complete an animation can be set when creating the data series, or overridden for each event. @@ -308,8 +299,7 @@ decoView.addEvent(new DecoEvent.Builder(10) .build()); ``` -Adding labels to a data series -=== +### Adding labels to a data series Labels can be added to one or more data series. The labels will only be shown when the data series is visible. @@ -332,8 +322,7 @@ It is possible to use a custom font for the text used on the data labels. Load t Note: Labels are currently not supported on DecoViews which have a data series that move in an anti-clockwise direction. -Insetting arc radius -=== +### Insetting arc radius By default each arc in a series will be located at the center of the widest series of data. The result of this is that two arcs with the same line width will be drawn at the same radius from the center of the view. @@ -352,8 +341,7 @@ SeriesItem seriesItem = new SeriesItem.Builder(Color.parseColor("#FF00FF00") It is also possible to move a data series in an outward direction by using a negative inset. To do this you need to ensure that you don't move the data series outside the viewable area of the View. -Animating color change -=== +### Animating color change Solid color change can be animated from one color to another. This can be done as a stand alone event or during a move event. @@ -381,8 +369,7 @@ decoView.addEvent(new DecoEvent.Builder(EventType.EVENT_COLOR_CHANGE, Color.pars Note: It is not possible to animate color change on series with a color gradient. -Adding an EdgeDetail to a data series -=== +### Adding an EdgeDetail to a data series The EdgeDetail class allows you to apply an effect to the edge of a data series. The image below shows an EdgeDetail applied to each data series. @@ -403,8 +390,7 @@ Note that in the example above the color uses transparency to give the edge of t NOTE: On Android 4.0 to 4.3 Adding an EdgeDetail to a data series will result in Hardware acceleration being turned off for that DecoView. This is due to these platforms not supporting the clipPath() functions with hardware acceleration. It would be unusual for this cause any noticeable difference to the performance of the View. -Adding a shadow to a SeriesItem -=== +### Adding a shadow to a SeriesItem Shadows were introduced in DecoView 1.1, check you gradle dependency before adding shadows. @@ -430,10 +416,7 @@ final SeriesItem seriesItem = new SeriesItem.Builder(Color.parseColor("#FFFF8800 .build(); ``` - - -Fitness tracker Sample -=== +## Fitness tracker Sample In addition to the samples built in this repository a [Fitness tracker sample is available on GitHub](https://github.com/bmarrdev/fauxfit-decoview-sample). @@ -441,20 +424,18 @@ The steps required to build this sample are detailed in the following article: [https://androidbycode.wordpress.com/2015/08/16/creating-a-google-fit-style-circular-animated-view/](https://androidbycode.wordpress.com/2015/08/16/creating-a-google-fit-style-circular-animated-view/) -Requirements -=== +## Requirements Android 2.3+ -Credits -=== +## Credits + - Continuous integration is provided by [Travis CI](https://travis-ci.org/bmarrdev/android-DecoView-charting). - Jake Wharton for NineOldAndroids allowing support for Android 2.2+ devices. - [Infographic vector designed by Freepik](http://www.freepik.com/free-photos-vectors/infographic) - [Avatars designed by Freepik](http://www.freepik.com/free-vector/family-avatars_796722.htm) -License -=== +## License Copyright 2016 Brent Marriott From 9ab6cc96d98967c1034b4c5714f5686a52788a5f Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Thu, 5 Oct 2017 13:30:37 +0800 Subject: [PATCH 13/15] Update CHANGELOG.md --- CHANGELOG.md | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12f5e09..be921ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ # DecoView Changelog -v1.0.0 -=== +## [Unreleased] + +- Update to latest support libraries +- Minimum SDK raised to 9 (Android 2.3) + +## 1.0.0 - Support for Android Studio 2.0 - Update targetSdkVersion to 23 @@ -10,19 +14,16 @@ v1.0.0 - Verify split screen behavior on Android N - Promote release to 1.0 -v0.9.6 -=== +## 0.9.6 - Fix issue where line width of arc was incorrect if onPause was called during the Event Show effect -v0.9.5 -=== +## 0.9.5 - Remove `android:allowBackup="true"` from library project to prevent compilation issues for projects that require this attribute to be overridden. This manifest merger issue is discussed in the AOSP issue tracker issue 70073. -v0.9.4 -=== +## 0.9.4 - Added pause() and resume() support for data series move animation - Added pause/resume sample fragment to sample app @@ -30,21 +31,17 @@ v0.9.4 - Changed default move effect animation duration from 2000ms to duration calculated by total series spin duration - Deprecated function DecoView.getSeriesItem(int index). Use DecoView.getChartSeries(index).getSeriesItem() -v0.9.3 -=== +## 0.9.3 - All xml attributes prefixed with 'dv_' -v0.9.2 -=== +## 0.9.2 - Add Travis Continuous Integration - Added support back to Android 2.2 (API 8) - Added new example charts to sample app - Reverse primary and secondary color for drawing gradient - -v0.9.1 -=== +## 0.9.1 Initial implementation From 75e18864b8211207e338eb34753fa9a57cd515d0 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Sat, 7 Oct 2017 00:42:40 +0800 Subject: [PATCH 14/15] Update default ProGuard templates --- decoviewlib/proguard-rules.pro | 16 ++++++++++------ sampleapp/proguard-rules.pro | 16 ++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/decoviewlib/proguard-rules.pro b/decoviewlib/proguard-rules.pro index 2f919ff..f1b4245 100644 --- a/decoviewlib/proguard-rules.pro +++ b/decoviewlib/proguard-rules.pro @@ -1,17 +1,21 @@ # Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in C:\Users\dell-laptop\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html -# Add any project specific keep options here: - # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/sampleapp/proguard-rules.pro b/sampleapp/proguard-rules.pro index 2f919ff..f1b4245 100644 --- a/sampleapp/proguard-rules.pro +++ b/sampleapp/proguard-rules.pro @@ -1,17 +1,21 @@ # Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in C:\Users\dell-laptop\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html -# Add any project specific keep options here: - # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile From cf9c244ab43a9de0a23519966a58163102d6a139 Mon Sep 17 00:00:00 2001 From: Frieder Bluemle Date: Sat, 7 Oct 2017 13:16:04 +0800 Subject: [PATCH 15/15] Replace appcompat with support-annotations appcompat-v7 was not needed for the library. --- decoviewlib/build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/decoviewlib/build.gradle b/decoviewlib/build.gradle index 38ada4c..696340b 100644 --- a/decoviewlib/build.gradle +++ b/decoviewlib/build.gradle @@ -18,7 +18,6 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:25.3.1' + compile 'com.android.support:support-annotations:25.3.1' compile 'com.nineoldandroids:library:2.4.0' }