diff --git a/app/build.gradle b/app/build.gradle index 732087a..fcfe85c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 26 + buildToolsVersion "26.0.2" defaultConfig { applicationId "com.dx.dxloadingbutton" minSdkVersion 21 - targetSdkVersion 25 + targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -24,7 +24,7 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.4.0' + compile 'com.android.support:appcompat-v7:26.1.0' testCompile 'junit:junit:4.12' compile project(':library') } diff --git a/build.gradle b/build.gradle index 5d026c2..0c38757 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.0.0-beta6' + classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' } } diff --git a/library/build.gradle b/library/build.gradle index 9730f0a..c5aa1b0 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -2,12 +2,12 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 26 + buildToolsVersion "26.0.2" defaultConfig { minSdkVersion 16 - targetSdkVersion 25 + targetSdkVersion 26 versionCode 1 versionName "1.0" @@ -27,6 +27,6 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.4.0' + compile 'com.android.support:appcompat-v7:26.1.0' testCompile 'junit:junit:4.12' } diff --git a/library/src/main/java/com/dx/dxloadingbutton/lib/LoadingButton.java b/library/src/main/java/com/dx/dxloadingbutton/lib/LoadingButton.java index f34c7c7..13f7267 100644 --- a/library/src/main/java/com/dx/dxloadingbutton/lib/LoadingButton.java +++ b/library/src/main/java/com/dx/dxloadingbutton/lib/LoadingButton.java @@ -210,20 +210,29 @@ public boolean performClick() { @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouchEvent(MotionEvent event) { - if(!isEnabled()){ + if(!isEnabled()) { return true; } - switch (event.getAction()){ + switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mTouchX = event.getX(); mTouchY = event.getY(); playRippleAnimation(true); break; case MotionEvent.ACTION_UP: - playRippleAnimation(false); + if ((event.getX() > mButtonRectF.left && event.getX() < mButtonRectF.right) && + (event.getY() > mButtonRectF.top && event.getY() < mButtonRectF.bottom)) { + // only register as click if finger is up inside view + playRippleAnimation(false); + } else { + // if finger is moved outside view and lifted up, reset + mTouchX = 0; + mTouchY = 0; + mRippleRadius = 0; + invalidate(); + } break; } - return true; }