diff --git a/.gitignore b/.gitignore
index 39fb081..2927b1e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,9 @@
*.iml
.gradle
/local.properties
-/.idea/workspace.xml
-/.idea/libraries
+.idea/*
.DS_Store
/build
/captures
.externalNativeBuild
+
diff --git a/app/build.gradle b/app/build.gradle
index fe4f8b6..660f1e3 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,31 +1,25 @@
-apply plugin: 'com.android.application'
-
-android {
- compileSdkVersion 25
- buildToolsVersion "25.0.2"
- defaultConfig {
- applicationId "com.unstoppable.submitbutton"
- minSdkVersion 15
- targetSdkVersion 25
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
-}
-
-dependencies {
- compile fileTree(include: ['*.jar'], dir: 'libs')
- androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
- exclude group: 'com.android.support', module: 'support-annotations'
- })
- compile project(':submitbuttonview')
- compile 'com.android.support:appcompat-v7:25.3.1'
- compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha4'
- testCompile 'junit:junit:4.12'
-}
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 28
+ defaultConfig {
+ applicationId "com.unstoppable.submitbutton"
+ minSdkVersion 15
+ targetSdkVersion 28
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+ implementation project(':submitbuttonview')
+
+ implementation 'androidx.appcompat:appcompat:1.0.0'
+}
diff --git a/app/src/androidTest/java/com/unstoppable/submitbutton/ExampleInstrumentedTest.java b/app/src/androidTest/java/com/unstoppable/submitbutton/ExampleInstrumentedTest.java
deleted file mode 100644
index d9e8bb3..0000000
--- a/app/src/androidTest/java/com/unstoppable/submitbutton/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.unstoppable.submitbutton;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumentation test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
-
- assertEquals("com.unstoppable.submitbutton", appContext.getPackageName());
- }
-}
diff --git a/app/src/main/java/com/unstoppable/submitbutton/MainActivity.java b/app/src/main/java/com/unstoppable/submitbutton/MainActivity.java
index d3acca1..00b6b02 100644
--- a/app/src/main/java/com/unstoppable/submitbutton/MainActivity.java
+++ b/app/src/main/java/com/unstoppable/submitbutton/MainActivity.java
@@ -2,7 +2,7 @@
import android.os.AsyncTask;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.view.accessibility.AccessibilityManager;
import android.widget.Button;
@@ -25,13 +25,13 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- sBtnLoading = (SubmitButton) findViewById(R.id.sbtn_loading);
- sBtnProgress = (SubmitButton) findViewById(R.id.sbtn_progress);
- mSwitch = (Switch) findViewById(R.id.switch1);
+ sBtnLoading = findViewById(R.id.sbtn_loading);
+ sBtnProgress = findViewById(R.id.sbtn_progress);
+ mSwitch = findViewById(R.id.switch1);
- btnFailed = (Button) findViewById(R.id.btn_failed);
- btnSucceed = (Button) findViewById(R.id.btn_succeed);
- btnReset = (Button) findViewById(R.id.btn_reset);
+ btnFailed = findViewById(R.id.btn_failed);
+ btnSucceed = findViewById(R.id.btn_succeed);
+ btnReset = findViewById(R.id.btn_reset);
sBtnLoading.setOnClickListener(this);
sBtnProgress.setOnClickListener(this);
diff --git a/app/src/test/java/com/unstoppable/submitbutton/ExampleUnitTest.java b/app/src/test/java/com/unstoppable/submitbutton/ExampleUnitTest.java
deleted file mode 100644
index d464d6b..0000000
--- a/app/src/test/java/com/unstoppable/submitbutton/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.unstoppable.submitbutton;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() throws Exception {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 843fc53..3717ab3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,30 +1,18 @@
-// 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:2.3.2'
- classpath 'com.novoda:bintray-release:0.4.0'
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
- }
-}
-
-allprojects {
- repositories {
- jcenter()
- }
- tasks.withType(Javadoc) {
- options{
- encoding "UTF-8"
- charSet 'UTF-8'
- links "http://docs.oracle.com/javase/7/docs/api"
- }
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
+buildscript {
+ repositories {
+ jcenter()
+ maven { url "https://maven.google.com" }
+ google()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:3.2.1'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
+ }
+}
+
+allprojects {
+ repositories {
+ jcenter()
+ maven { url "https://maven.google.com" }
+ }
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index aac7c9b..9e6fce1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,6 +9,8 @@
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
+android.enableJetifier=true
+android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 16176e9..39a0f5c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Tue Apr 18 09:09:14 CST 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
+#Sat Oct 28 10:51:25 CDT 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
diff --git a/submitbuttonview/build.gradle b/submitbuttonview/build.gradle
index 8a5d3e1..12fad08 100644
--- a/submitbuttonview/build.gradle
+++ b/submitbuttonview/build.gradle
@@ -1,18 +1,17 @@
apply plugin: 'com.android.library'
-apply plugin: 'com.novoda.bintray-release'
+apply plugin: 'com.github.dcendents.android-maven'
+
+group='com.github.searchy2'
+version = '1.8.1'
android {
- compileSdkVersion 25
- buildToolsVersion "25.0.2"
+ compileSdkVersion 28
defaultConfig {
minSdkVersion 15
- targetSdkVersion 25
+ targetSdkVersion 28
versionCode 1
versionName "1.0"
-
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-
}
buildTypes {
@@ -28,20 +27,6 @@ android {
}
dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- 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.3.1'
- testCompile 'junit:junit:4.12'
-}
-
-publish {
- userOrg = 'unstoppable'
- groupId = 'com.unstoppable'
- artifactId = 'submitbutton'
- publishVersion = '1.1.3'
- desc = 'It\'s a submit button with a fun animation for Android.'
- website = 'https://github.com/Someonewow/SubmitButton'
-}
-
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'androidx.appcompat:appcompat:1.0.0'
+}
\ No newline at end of file
diff --git a/submitbuttonview/src/androidTest/java/com/unstoppable/submitbuttonview/ExampleInstrumentedTest.java b/submitbuttonview/src/androidTest/java/com/unstoppable/submitbuttonview/ExampleInstrumentedTest.java
deleted file mode 100644
index eaa6ac7..0000000
--- a/submitbuttonview/src/androidTest/java/com/unstoppable/submitbuttonview/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.unstoppable.submitbuttonview;
-
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumentation test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() throws Exception {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getTargetContext();
-
- assertEquals("com.unstoppable.submitbuttonview.test", appContext.getPackageName());
- }
-}
diff --git a/submitbuttonview/src/main/java/com/unstoppable/submitbuttonview/SubmitButton.java b/submitbuttonview/src/main/java/com/unstoppable/submitbuttonview/SubmitButton.java
index 961c477..9425e9b 100644
--- a/submitbuttonview/src/main/java/com/unstoppable/submitbuttonview/SubmitButton.java
+++ b/submitbuttonview/src/main/java/com/unstoppable/submitbuttonview/SubmitButton.java
@@ -11,9 +11,7 @@
import android.graphics.PathMeasure;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
@@ -450,6 +448,38 @@ public void reset() {
invalidate();
}
+ /**
+ * Set Button to Result State
+ *
+ * @param success true = result success; false = failure
+ */
+ public void setResult(boolean success)
+ {
+ isSucceed = success;
+ viewState = STATE_RESULT;
+ if (loadingAnim != null) {
+ loadingAnim.cancel();
+ }
+ if (isSucceed) {
+ bgPaint.setColor(succeedColor);
+ } else {
+ bgPaint.setColor(failedColor);
+ }
+ bgPaint.setStyle(Paint.Style.FILL_AND_STROKE);
+ resultPaint.setAlpha(255);
+ invalidate();
+ }
+
+ /**
+ * Set Button to Loading State
+ */
+ public void setLoading()
+ {
+ viewState = STATE_LOADING;
+ mWidth = mHeight;
+ startLoadingAnim();
+ }
+
/**
* 设置进度
*
@@ -466,6 +496,21 @@ public void setProgress(int progress) {
}
+ /**
+ * Set Button text. Redraws button if text is visible.
+ *
+ * @param text Text to display on button.
+ */
+ public void setText(String text)
+ {
+ buttonText = text;
+ if (viewState == STATE_NONE)
+ {
+ init();
+ invalidate();
+ }
+ }
+
/**
* 设置动画结束回调接口
*
diff --git a/submitbuttonview/src/test/java/com/unstoppable/submitbuttonview/ExampleUnitTest.java b/submitbuttonview/src/test/java/com/unstoppable/submitbuttonview/ExampleUnitTest.java
deleted file mode 100644
index bb8de15..0000000
--- a/submitbuttonview/src/test/java/com/unstoppable/submitbuttonview/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.unstoppable.submitbuttonview;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() throws Exception {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file