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