diff --git a/build.gradle b/build.gradle index 09b5979..19b0ce0 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.3' + classpath 'com.android.tools.build:gradle:2.3.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' // Add this line // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fb3f4d1..d115f9c 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Sep 17 16:46:17 CST 2016 +#Fri Apr 28 18:48:32 GST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/library/build.gradle b/library/build.gradle index ca00f75..fb41f34 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -3,10 +3,10 @@ apply plugin: 'com.github.dcendents.android-maven' group = 'com.github.ybq' version = '1.0' android { - compileSdkVersion 24 - buildToolsVersion "24.0.2" + compileSdkVersion 25 + buildToolsVersion '25.0.2' defaultConfig { minSdkVersion 14 - targetSdkVersion 24 + targetSdkVersion 25 } } \ No newline at end of file diff --git a/library/src/main/java/com/github/ybq/android/spinkit/SpinKitView.java b/library/src/main/java/com/github/ybq/android/spinkit/SpinKitView.java index 2f13c62..2ccb380 100644 --- a/library/src/main/java/com/github/ybq/android/spinkit/SpinKitView.java +++ b/library/src/main/java/com/github/ybq/android/spinkit/SpinKitView.java @@ -17,98 +17,115 @@ */ public class SpinKitView extends ProgressBar { - private Style mStyle; - private int mColor; - private Sprite mSprite; - - public SpinKitView(Context context) { - this(context, null); - } - - public SpinKitView(Context context, AttributeSet attrs) { - this(context, attrs, R.attr.SpinKitViewStyle); - } - - public SpinKitView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, R.style.SpinKitView); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public SpinKitView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SpinKitView, defStyleAttr, - defStyleRes); - mStyle = Style.values()[a.getInt(R.styleable.SpinKitView_SpinKit_Style, 0)]; - mColor = a.getColor(R.styleable.SpinKitView_SpinKit_Color, Color.WHITE); - a.recycle(); - init(); - setIndeterminate(true); + private Style mStyle; + private int mColor; + private Sprite mSprite; + + public SpinKitView(Context context) { + this(context, null); + } + + public SpinKitView(Context context, AttributeSet attrs) { + this(context, attrs, R.attr.SpinKitViewStyle); + } + + public SpinKitView(Context context, AttributeSet attrs, int defStyleAttr) { + this(context, attrs, defStyleAttr, R.style.SpinKitView); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + public SpinKitView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SpinKitView, defStyleAttr, + defStyleRes); + mStyle = Style.values()[a.getInt(R.styleable.SpinKitView_SpinKit_Style, 0)]; + mColor = a.getColor(R.styleable.SpinKitView_SpinKit_Color, Color.WHITE); + a.recycle(); + init(); + setIndeterminate(true); + } + + private void init() { + Sprite sprite = SpriteFactory.create(mStyle); + setIndeterminateDrawable(sprite); + } + + @Override + public void setIndeterminateDrawable(Drawable d) { + if (!(d instanceof Sprite)) { + throw new IllegalArgumentException("this d must be instanceof Sprite"); } - - private void init() { - Sprite sprite = SpriteFactory.create(mStyle); - setIndeterminateDrawable(sprite); + setIndeterminateDrawable((Sprite) d); + } + + public void setIndeterminateDrawable(Sprite d) { + super.setIndeterminateDrawable(d); + mSprite = d; + if (mSprite.getColor() == 0) { + mSprite.setColor(mColor); } - - @Override - public void setIndeterminateDrawable(Drawable d) { - if (!(d instanceof Sprite)) { - throw new IllegalArgumentException("this d must be instanceof Sprite"); - } - setIndeterminateDrawable((Sprite) d); + onSizeChanged(getWidth(), getHeight(), getWidth(), getHeight()); + validateSprite(); + } + + @Override + public Sprite getIndeterminateDrawable() { + return mSprite; + } + + @Override + public void setVisibility(int visibility) { + super.setVisibility(visibility); + validateSprite(); + } + + private void validateSprite() { + if (mSprite != null) { + if (getVisibility() == VISIBLE) { + mSprite.start(); + } else { + mSprite.stop(); + } } + } - public void setIndeterminateDrawable(Sprite d) { - super.setIndeterminateDrawable(d); - mSprite = d; - if (mSprite.getColor() == 0) { - mSprite.setColor(mColor); - } - onSizeChanged(getWidth(), getHeight(), getWidth(), getHeight()); - if (getVisibility() == VISIBLE) { - mSprite.start(); - } - } - @Override - public Sprite getIndeterminateDrawable() { - return mSprite; + public void setColor(int color) { + this.mColor = color; + if (mSprite != null) { + mSprite.setColor(color); } - - public void setColor(int color) { - this.mColor = color; - if (mSprite != null) { - mSprite.setColor(color); - } - invalidate(); + invalidate(); + } + + @Override + public void unscheduleDrawable(Drawable who) { + super.unscheduleDrawable(who); + if (who instanceof Sprite) { + ((Sprite) who).stop(); } + } - @Override - public void unscheduleDrawable(Drawable who) { - super.unscheduleDrawable(who); - if (who instanceof Sprite) { - ((Sprite) who).stop(); - } + @Override + public void onWindowFocusChanged(boolean hasWindowFocus) { + super.onWindowFocusChanged(hasWindowFocus); + if (hasWindowFocus) { + validateSprite(); } - - @Override - public void onWindowFocusChanged(boolean hasWindowFocus) { - super.onWindowFocusChanged(hasWindowFocus); - if (hasWindowFocus) { - if (mSprite != null && getVisibility() == VISIBLE) { - mSprite.start(); - } - } - } - - @Override - public void onScreenStateChanged(int screenState) { - super.onScreenStateChanged(screenState); - if (screenState == View.SCREEN_STATE_OFF) { - if (mSprite != null) { - mSprite.stop(); - } - } + } + + @Override + public void onScreenStateChanged(int screenState) { + super.onScreenStateChanged(screenState); + if (screenState == View.SCREEN_STATE_OFF) { + if (mSprite != null) { + mSprite.stop(); + } + } else { + if (mSprite != null) { + mSprite.start(); + } } + } } diff --git a/sample/build.gradle b/sample/build.gradle index 521bcdf..baf2cd1 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,13 +1,13 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 24 - buildToolsVersion "24.0.2" + compileSdkVersion 25 + buildToolsVersion '25.0.2' defaultConfig { applicationId "com.github.ybq.android.spinkit" minSdkVersion 14 - targetSdkVersion 24 + targetSdkVersion 25 versionCode 1 versionName "1.0" } @@ -22,7 +22,7 @@ android { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' - compile 'com.android.support:appcompat-v7:24.2.1' - compile 'com.android.support:design:24.2.1' + compile 'com.android.support:appcompat-v7:25.3.1' + compile 'com.android.support:design:25.3.1' compile project(':library') }