From e589664bd96bd86c8bef9bc6447f80c21954aaf4 Mon Sep 17 00:00:00 2001 From: Dani Mahardhika Date: Thu, 8 Jun 2017 19:50:22 +0700 Subject: [PATCH 1/2] Update gradle and support library --- app/build.gradle | 10 +++++----- build.gradle | 12 ++++++++++-- gradle/wrapper/gradle-wrapper.properties | 4 ++-- library/build.gradle | 11 ++++++----- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e49239a..820f370 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,13 +3,13 @@ apply plugin: 'com.android.application' group = 'com.github.rafakob' android { - compileSdkVersion 23 - buildToolsVersion "23.0.2" + compileSdkVersion rootProject.ext.CompileSdk + buildToolsVersion rootProject.ext.BuildTools defaultConfig { applicationId "com.rafakob.example.drawme" - minSdkVersion 10 - targetSdkVersion 23 + minSdkVersion rootProject.ext.MinSdk + targetSdkVersion rootProject.ext.TargetSdk versionCode 1 versionName "1.0.0" } @@ -24,7 +24,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:23.2.1' + compile "com.android.support:appcompat-v7:$rootProject.ext.SupportLibrary" compile project(':library') } diff --git a/build.gradle b/build.gradle index b8a692e..dc0c4a8 100644 --- a/build.gradle +++ b/build.gradle @@ -3,8 +3,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0-rc1' - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' + classpath 'com.android.tools.build:gradle:2.3.2' + classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' } } @@ -12,6 +12,14 @@ allprojects { repositories { jcenter() } + + rootProject.ext { + BuildTools = "25.0.2" + MinSdk = 10 + TargetSdk = 25 + CompileSdk = 25 + SupportLibrary = "25.3.1" + } } task clean(type: Delete) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 122a0dc..eb2064d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Dec 28 10:00:20 PST 2015 +#Thu Jun 08 19:35:26 PST 2017 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-3.5-all.zip diff --git a/library/build.gradle b/library/build.gradle index 1430c1f..af92fd2 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -6,15 +6,16 @@ def versionMinor = 1 def versionPatch = 6 android { - compileSdkVersion 23 - buildToolsVersion "23.0.2" + compileSdkVersion rootProject.ext.CompileSdk + buildToolsVersion rootProject.ext.BuildTools defaultConfig { - minSdkVersion 10 - targetSdkVersion 23 + minSdkVersion rootProject.ext.MinSdk + targetSdkVersion rootProject.ext.TargetSdk versionCode versionMajor * 1000000 + versionMinor * 1000 + versionPatch versionName "${versionMajor}.${versionMinor}.${versionPatch}" } + buildTypes { release { minifyEnabled false @@ -26,7 +27,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:23.2.1' + compile "com.android.support:appcompat-v7:$rootProject.ext.SupportLibrary" } // build a jar with source files From 4a672e78fcf3d524e9efb0e1542ab03d3dd7ea8e Mon Sep 17 00:00:00 2001 From: Dani Mahardhika Date: Thu, 8 Jun 2017 19:52:49 +0700 Subject: [PATCH 2/2] Automatically pick text color based on back color --- .../drawme/delegate/DrawMeShapeText.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/rafakob/drawme/delegate/DrawMeShapeText.java b/library/src/main/java/com/rafakob/drawme/delegate/DrawMeShapeText.java index 6f34e4d..fc70ebc 100644 --- a/library/src/main/java/com/rafakob/drawme/delegate/DrawMeShapeText.java +++ b/library/src/main/java/com/rafakob/drawme/delegate/DrawMeShapeText.java @@ -3,10 +3,13 @@ import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; +import android.graphics.Color; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.os.Build; import android.support.annotation.AttrRes; +import android.support.annotation.ColorInt; +import android.support.annotation.FloatRange; import android.support.v4.graphics.drawable.DrawableCompat; import android.text.TextUtils; import android.util.AttributeSet; @@ -38,7 +41,7 @@ public DrawMeShapeText(Context context, View view, AttributeSet attrs, @AttrRes protected void obtainTextAttributes(TypedArray a) { font = a.getString(R.styleable.DrawMeText_dm_font); - textColor = a.getColor(R.styleable.DrawMeText_dm_textColor, ((TextView) mView).getTextColors().getDefaultColor()); + textColor = a.getColor(R.styleable.DrawMeText_dm_textColor, getTitleColor(backColor)); textColorPressed = a.getColor(R.styleable.DrawMeText_dm_textColorPressed, textColor); textColorDisabled = a.getColor(R.styleable.DrawMeText_dm_textColorDisabled, textColor); @@ -152,4 +155,18 @@ public void updateLayout() { ((TextView) mView).setTextColor(colorStateList); } } + + @ColorInt + private int getTitleColor(@ColorInt int color) { + double darkness = 1-(0.299* Color.red(color) + 0.587*Color.green(color) + 0.114*Color.blue(color))/255; + return (darkness < 0.35) ? getDarkerColor(color, 0.25f) : Color.WHITE; + } + + @ColorInt + private int getDarkerColor(@ColorInt int color, @FloatRange(from = 0.0f, to = 1.0f) float transparency) { + float[] hsv = new float[3]; + Color.colorToHSV(color, hsv); + hsv[2] *= transparency; + return Color.HSVToColor(hsv); + } }