From c9659c3d99d2d040e5e78f1409b2d462fead9488 Mon Sep 17 00:00:00 2001 From: elegwance Date: Thu, 16 Apr 2015 20:44:37 +0900 Subject: [PATCH 01/17] add null check for ImageLoadListener --- .../daimajia/slider/library/SliderTypes/BaseSliderView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java index aeaf2b2..f924d52 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java @@ -192,7 +192,9 @@ public void onClick(View v) { if (targetImageView == null) return; - mLoadListener.onStart(me); + if (mLoadListener != null) { + mLoadListener.onStart(me); + } Picasso p = Picasso.with(mContext); RequestCreator rq = null; From 5880308b8e06974a0d6255d30de9e2af2d73be5a Mon Sep 17 00:00:00 2001 From: audiebant Date: Thu, 16 Apr 2015 20:51:45 +0800 Subject: [PATCH 02/17] Update PagerIndicator.java Repair delays indicator. --- .../slider/library/Indicators/PagerIndicator.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java b/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java index ec14093..edd151c 100644 --- a/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java +++ b/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java @@ -444,11 +444,6 @@ private void setItemAsSelected(int position){ @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - if(mItemCount == 0){ - return; - } - int n = position % mItemCount; - setItemAsSelected(n - 1); } public IndicatorVisibility getIndicatorVisibility(){ @@ -457,7 +452,11 @@ public IndicatorVisibility getIndicatorVisibility(){ @Override public void onPageSelected(int position) { - + if(mItemCount == 0){ + return; + } + int n = position % mItemCount; + setItemAsSelected(n - 1); } @Override public void onPageScrollStateChanged(int state) { From 9c6b73bd04a3fc93a354803e8e604fb502d95f2a Mon Sep 17 00:00:00 2001 From: Billy Ceskavich Date: Mon, 20 Apr 2015 14:26:04 -0400 Subject: [PATCH 03/17] Users can now add Bundles to sliders if they want to access additional information. --- .../slider/library/SliderTypes/BaseSliderView.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java index aeaf2b2..88cb42d 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java @@ -58,7 +58,6 @@ public enum ScaleType{ protected BaseSliderView(Context context) { mContext = context; - this.mBundle = new Bundle(); } /** @@ -138,6 +137,16 @@ public BaseSliderView image(int res){ return this; } + /** + * lets users add a bundle of additional information + * @param bundle + * @return + */ + public BaseSliderView bundle(Bundle bundle){ + mBundle = bundle; + return this; + } + public String getUrl(){ return mUrl; } From 3efb084b306ea5896fdfcb8e517c58309877d3c8 Mon Sep 17 00:00:00 2001 From: Shengzhang Wen Date: Sun, 3 May 2015 23:32:32 +0800 Subject: [PATCH 04/17] update build tools --- build.gradle | 6 +++++- demo/build.gradle | 9 ++++----- gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 52141 bytes gradle/wrapper/gradle-wrapper.properties | 4 ++-- library/build.gradle | 9 ++++----- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index 2d50cf7..49166ee 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,15 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. +task wrapper(type: Wrapper) { + gradleVersion = '2.2.1' +} + buildscript { repositories { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.12.+' + classpath 'com.android.tools.build:gradle:1.1.2' classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.+' } } diff --git a/demo/build.gradle b/demo/build.gradle index b227c58..c16c0ee 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -1,20 +1,19 @@ apply plugin: 'android-sdk-manager' -apply plugin: 'android' +apply plugin: 'com.android.application' android { - compileSdkVersion 20 - buildToolsVersion "20" + compileSdkVersion 22 + buildToolsVersion "22.0.1" defaultConfig { minSdkVersion 8 - targetSdkVersion 20 + targetSdkVersion 22 versionCode 2 versionName "1.0.1" } buildTypes { release { - runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..085a1cdc27db1185342f15a00441734e74fe3735 100644 GIT binary patch delta 44786 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 delta 42641 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 94e85da..043d0ff 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Jun 09 09:36:23 CST 2014 +#Sun May 03 23:30:33 CST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-bin.zip diff --git a/library/build.gradle b/library/build.gradle index 5d9aa29..12327d7 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -1,18 +1,17 @@ -apply plugin: 'android-library' +apply plugin: 'com.android.library' android { - compileSdkVersion 20 + compileSdkVersion 22 buildToolsVersion "20" defaultConfig { minSdkVersion 8 - targetSdkVersion 20 + targetSdkVersion 22 versionCode 10 versionName "1.0.9" } buildTypes { release { - runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } @@ -28,4 +27,4 @@ dependencies { compile 'com.squareup.picasso:picasso:+' compile 'com.nineoldandroids:library:+' } -apply from: './gradle-mvn-push.gradle' \ No newline at end of file +apply from: './gradle-mvn-push.gradle' From 1736f912ace3469ce2a6ab4d14eb15434d40c7db Mon Sep 17 00:00:00 2001 From: Shengzhang Wen Date: Sun, 3 May 2015 23:36:12 +0800 Subject: [PATCH 05/17] update support library --- demo/build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- library/build.gradle | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/demo/build.gradle b/demo/build.gradle index c16c0ee..de31b19 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -22,7 +22,7 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':library') - compile 'com.android.support:appcompat-v7:20.+' + compile 'com.android.support:appcompat-v7:22.+' compile 'com.nineoldandroids:library:2.4.0' compile 'com.daimajia.androidanimations:library:1.0.3@aar' } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 043d0ff..918e0f3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun May 03 23:30:33 CST 2015 +#Sun May 03 23:34:25 CST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip diff --git a/library/build.gradle b/library/build.gradle index 12327d7..f519c12 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion 22 - buildToolsVersion "20" + buildToolsVersion "22.0.1" defaultConfig { minSdkVersion 8 @@ -22,8 +22,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:20.+' - compile "com.android.support:support-v4:20.0.+" + compile 'com.android.support:appcompat-v7:22.+' + compile "com.android.support:support-v4:22.+" compile 'com.squareup.picasso:picasso:+' compile 'com.nineoldandroids:library:+' } From 98d4d64f5d6215584a963ebb2bfa4aa7b3d40b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=B6?= Date: Mon, 4 May 2015 12:08:49 +0800 Subject: [PATCH 06/17] Update .travis.yml --- .travis.yml | 49 ++++++++++++++++++++----------------------------- 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/.travis.yml b/.travis.yml index 515d331..b717bee 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,33 +1,24 @@ -language: java -jdk: oraclejdk7 -env: - matrix: - - ANDROID_TARGET=android-20 ANDROID_ABI=armeabi-v7a +language: android +android: + components: + # Uncomment the lines below if you want to + # use the latest revision of Android SDK Tools + # - platform-tools + # - tools -before_install: - # Install base Android SDK - - sudo apt-get update -qq - - if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch > /dev/null; fi - - wget http://dl.google.com/android/android-sdk_r23-linux.tgz - - tar xzf android-sdk_r23-linux.tgz - - export ANDROID_HOME=$PWD/android-sdk-linux - - export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools + # The BuildTools version used by your project + - build-tools-22.0.1 - # Gradle - - wget http://services.gradle.org/distributions/gradle-1.12-bin.zip - - unzip gradle-1.12-bin.zip - - export GRADLE_HOME=$PWD/gradle-1.12 - - export PATH=$GRADLE_HOME/bin:$PATH + # The SDK version used to compile your project + - android-22 - # Install required components - # For a full list, run `android list sdk -a --extended` - # Note that sysimg-19 downloads only ARM, because only the first license query is accepted. - - echo yes | android update sdk --filter platform-tools --no-ui --force > /dev/null - - echo yes | android update sdk --all --filter build-tools-20.0.0 --no-ui --force > /dev/null - - echo yes | android update sdk --filter android-20 --no-ui --force > /dev/null - - echo yes | android update sdk --filter sys-img-x86-android-19 --no-ui --force > /dev/null - - echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null - - echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null + # Additional components + - extra-google-google_play_services + - extra-google-m2repository + - extra-android-m2repository + - addon-google_apis-google-19 -install: - - ./gradlew assemble \ No newline at end of file + # Specify at least one system image, + # if you need to run emulator(s) during your tests + - sys-img-armeabi-v7a-android-19 + - sys-img-x86-android-17 From b9dddc4bc50604886e500209ead20abd429c8fb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=B6?= Date: Mon, 4 May 2015 12:22:49 +0800 Subject: [PATCH 07/17] Update gradle-mvn-push.gradle --- library/gradle-mvn-push.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/gradle-mvn-push.gradle b/library/gradle-mvn-push.gradle index ae4b440..f09ffcf 100644 --- a/library/gradle-mvn-push.gradle +++ b/library/gradle-mvn-push.gradle @@ -105,7 +105,7 @@ afterEvaluate { project -> } task androidJavadocs(type: Javadoc) { - source = android.sourceSets.main + source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath() .join(File.pathSeparator)) } From 2a712768a2def62a3aa41ff579c4aa5473585674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=AE=B6?= Date: Mon, 4 May 2015 14:07:41 +0800 Subject: [PATCH 08/17] Update .travis.yml make it just assembledebug --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b717bee..452e48d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,3 +22,4 @@ android: # if you need to run emulator(s) during your tests - sys-img-armeabi-v7a-android-19 - sys-img-x86-android-17 +script: ./gradlew assembleDebug From 97e3276833f60a43c937ae7cf2343255f784601d Mon Sep 17 00:00:00 2001 From: zhouqiangWang Date: Tue, 5 May 2015 04:22:15 +0800 Subject: [PATCH 09/17] removeSliderAt(position) function not work #88 and a NPE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. fixed removeSliderAt(position) function not work #88 logic mistake. 2. NullPointerException in MainActivity.java 05-05 04:12:14.960 472-472/? E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.daimajia.slider.demo, PID: 472 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.daimajia.slider.demo/com.daimajia.slider.demo.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Bundle.putString(java.lang.String, java.lang.String)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) .... Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Bundle.putString(java.lang.String, java.lang.String)' on a null object reference at com.daimajia.slider.demo.MainActivity.onCreate(MainActivity.java:57) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) --- .../src/main/java/com/daimajia/slider/demo/MainActivity.java | 5 +++-- .../main/java/com/daimajia/slider/library/SliderAdapter.java | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java index c150044..5004849 100644 --- a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java +++ b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java @@ -54,8 +54,9 @@ protected void onCreate(Bundle savedInstanceState) { .setOnSliderClickListener(this); //add your extra information - textSliderView.getBundle() - .putString("extra",name); + if (textSliderView.getBundle() != null) + textSliderView.getBundle() + .putString("extra",name); mDemoSlider.addSlider(textSliderView); } diff --git a/library/src/main/java/com/daimajia/slider/library/SliderAdapter.java b/library/src/main/java/com/daimajia/slider/library/SliderAdapter.java index 238564c..bc0a90a 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderAdapter.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderAdapter.java @@ -49,7 +49,7 @@ public void removeSlider(T slider){ } public void removeSliderAt(int position){ - if(mImageContents.size() < position){ + if(mImageContents.size() > position){ mImageContents.remove(position); notifyDataSetChanged(); } From 425504e0247efefe51669e48b3449ab75a2a9acf Mon Sep 17 00:00:00 2001 From: Massimo Biolcati Date: Wed, 6 May 2015 10:30:15 -0400 Subject: [PATCH 10/17] Added a OnPageChangedListener to the SliderLayout --- .../daimajia/slider/demo/MainActivity.java | 16 +++++- .../library/Indicators/PagerIndicator.java | 3 +- .../daimajia/slider/library/SliderLayout.java | 6 ++ .../slider/library/Tricks/ViewPagerEx.java | 55 +++++++++++-------- 4 files changed, 54 insertions(+), 26 deletions(-) diff --git a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java index 5004849..3f2a8d7 100644 --- a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java +++ b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java @@ -4,6 +4,7 @@ import android.net.Uri; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; +import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -18,11 +19,12 @@ import com.daimajia.slider.library.SliderLayout; import com.daimajia.slider.library.SliderTypes.BaseSliderView; import com.daimajia.slider.library.SliderTypes.TextSliderView; +import com.daimajia.slider.library.Tricks.ViewPagerEx; import java.util.HashMap; -public class MainActivity extends ActionBarActivity implements BaseSliderView.OnSliderClickListener{ +public class MainActivity extends ActionBarActivity implements BaseSliderView.OnSliderClickListener, ViewPagerEx.OnPageChangeListener{ private SliderLayout mDemoSlider; @@ -64,6 +66,7 @@ protected void onCreate(Bundle savedInstanceState) { mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom); mDemoSlider.setCustomAnimation(new DescriptionAnimation()); mDemoSlider.setDuration(4000); + mDemoSlider.setOnPageChangeListener(this); ListView l = (ListView)findViewById(R.id.transformers); l.setAdapter(new TransformerAdapter(this)); l.setOnItemClickListener(new AdapterView.OnItemClickListener() { @@ -109,4 +112,15 @@ public boolean onOptionsItemSelected(MenuItem item) { } return super.onOptionsItemSelected(item); } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} + + @Override + public void onPageSelected(int position) { + Log.d("Slider Demo", "Page Changed: " + position); + } + + @Override + public void onPageScrollStateChanged(int state) {} } diff --git a/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java b/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java index edd151c..ffc5007 100644 --- a/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java +++ b/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java @@ -455,8 +455,7 @@ public void onPageSelected(int position) { if(mItemCount == 0){ return; } - int n = position % mItemCount; - setItemAsSelected(n - 1); + setItemAsSelected(position-1); } @Override public void onPageScrollStateChanged(int state) { diff --git a/library/src/main/java/com/daimajia/slider/library/SliderLayout.java b/library/src/main/java/com/daimajia/slider/library/SliderLayout.java index 149f36b..5781d03 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderLayout.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderLayout.java @@ -213,6 +213,12 @@ public boolean onTouch(View v, MotionEvent event) { } } + public void setOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener){ + if(onPageChangeListener!=null){ + mViewPager.setOnPageChangeListener(onPageChangeListener); + } + } + public void setCustomIndicator(PagerIndicator indicator){ if(mIndicator != null){ mIndicator.destroySelf(); diff --git a/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java b/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java index 6df86fa..518568e 100644 --- a/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java +++ b/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java @@ -208,7 +208,7 @@ public float getInterpolation(float t) { private boolean mCalledSuper; private int mDecorChildCount; - private OnPageChangeListener mOnPageChangeListener; + private ArrayList mOnPageChangeListeners = new ArrayList<>(); private OnPageChangeListener mInternalPageChangeListener; private OnAdapterChangeListener mAdapterChangeListener; private PageTransformer mPageTransformer; @@ -305,6 +305,21 @@ public void onPageScrollStateChanged(int state) { } } + private void setOnPageChanged(int position) { + for (OnPageChangeListener eachListener : mOnPageChangeListeners) { + if (eachListener != null) { + InfinitePagerAdapter infiniteAdapter = (InfinitePagerAdapter)mAdapter; + if (infiniteAdapter.getRealCount() == 0) { + return; + } + int n = position % infiniteAdapter.getRealCount(); + eachListener.onPageSelected(n); + } + } + if (mInternalPageChangeListener != null) { + mInternalPageChangeListener.onPageSelected(position); + } + } /** * A PageTransformer is invoked whenever a visible/attached page is scrolled. * This offers an opportunity for the application to apply a custom transformation @@ -394,8 +409,10 @@ private void setScrollState(int newState) { // PageTransformers can do complex things that benefit from hardware layers. enableLayers(newState != SCROLL_STATE_IDLE); } - if (mOnPageChangeListener != null) { - mOnPageChangeListener.onPageScrollStateChanged(newState); + for (OnPageChangeListener eachListener : mOnPageChangeListeners) { + if (eachListener != null) { + eachListener.onPageScrollStateChanged(newState); + } } } @@ -539,12 +556,7 @@ void setCurrentItemInternal(int item, boolean smoothScroll, boolean always, int // We don't have any idea how big we are yet and shouldn't have any pages either. // Just set things up and let the pending layout handle things. mCurItem = item; - if (dispatchSelected && mOnPageChangeListener != null) { - mOnPageChangeListener.onPageSelected(item); - } - if (dispatchSelected && mInternalPageChangeListener != null) { - mInternalPageChangeListener.onPageSelected(item); - } + setOnPageChanged(item); requestLayout(); } else { populate(item); @@ -563,18 +575,12 @@ private void scrollToItem(int item, boolean smoothScroll, int velocity, } if (smoothScroll) { smoothScrollTo(destX, 0, velocity); - if (dispatchSelected && mOnPageChangeListener != null) { - mOnPageChangeListener.onPageSelected(item); - } - if (dispatchSelected && mInternalPageChangeListener != null) { - mInternalPageChangeListener.onPageSelected(item); + if (dispatchSelected) { + setOnPageChanged(item); } } else { - if (dispatchSelected && mOnPageChangeListener != null) { - mOnPageChangeListener.onPageSelected(item); - } - if (dispatchSelected && mInternalPageChangeListener != null) { - mInternalPageChangeListener.onPageSelected(item); + if (dispatchSelected) { + setOnPageChanged(item); } completeScroll(false); scrollTo(destX, 0); @@ -589,7 +595,9 @@ private void scrollToItem(int item, boolean smoothScroll, int velocity, * @param listener Listener to set */ public void setOnPageChangeListener(OnPageChangeListener listener) { - mOnPageChangeListener = listener; + if (!mOnPageChangeListeners.contains(listener)) { + mOnPageChangeListeners.add(listener); + } } /** @@ -1706,9 +1714,10 @@ protected void onPageScrolled(int position, float offset, int offsetPixels) { } } } - - if (mOnPageChangeListener != null) { - mOnPageChangeListener.onPageScrolled(position, offset, offsetPixels); + for (OnPageChangeListener eachListener : mOnPageChangeListeners) { + if (eachListener != null) { + eachListener.onPageScrolled(position, offset, offsetPixels); + } } if (mInternalPageChangeListener != null) { mInternalPageChangeListener.onPageScrolled(position, offset, offsetPixels); From ab74534ad4752fd2ca50c0640302e29563146851 Mon Sep 17 00:00:00 2001 From: Massimo Biolcati Date: Wed, 6 May 2015 10:47:40 -0400 Subject: [PATCH 11/17] Fixed crash in the Demo app in onSliderClick The bundle for the textSliderView was never created so the Toast would crash in the onSliderClick method when trying to retrieve the "extra" from the null bundle --- demo/src/main/java/com/daimajia/slider/demo/MainActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java index 3f2a8d7..29237ea 100644 --- a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java +++ b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java @@ -56,8 +56,8 @@ protected void onCreate(Bundle savedInstanceState) { .setOnSliderClickListener(this); //add your extra information - if (textSliderView.getBundle() != null) - textSliderView.getBundle() + textSliderView.bundle(new Bundle()); + textSliderView.getBundle() .putString("extra",name); mDemoSlider.addSlider(textSliderView); From 33de56623fc9e7fa8a3cc6e4e0093a6b74055b4c Mon Sep 17 00:00:00 2001 From: Massimo Biolcati Date: Wed, 6 May 2015 22:24:01 -0400 Subject: [PATCH 12/17] Changed PageChangeListener to add/remove It's the right way to indicate and handle multiple listener --- .../com/daimajia/slider/demo/MainActivity.java | 2 +- .../library/Indicators/PagerIndicator.java | 2 +- .../daimajia/slider/library/SliderLayout.java | 10 +++++++--- .../slider/library/Tricks/ViewPagerEx.java | 16 +++++++++++++--- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java index 29237ea..cbe4570 100644 --- a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java +++ b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java @@ -66,7 +66,7 @@ protected void onCreate(Bundle savedInstanceState) { mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom); mDemoSlider.setCustomAnimation(new DescriptionAnimation()); mDemoSlider.setDuration(4000); - mDemoSlider.setOnPageChangeListener(this); + mDemoSlider.addOnPageChangeListener(this); ListView l = (ListView)findViewById(R.id.transformers); l.setAdapter(new TransformerAdapter(this)); l.setOnItemClickListener(new AdapterView.OnItemClickListener() { diff --git a/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java b/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java index ffc5007..b10abee 100644 --- a/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java +++ b/library/src/main/java/com/daimajia/slider/library/Indicators/PagerIndicator.java @@ -328,7 +328,7 @@ public void setViewPager(ViewPagerEx pager){ throw new IllegalStateException("Viewpager does not have adapter instance"); } mPager = pager; - mPager.setOnPageChangeListener(this); + mPager.addOnPageChangeListener(this); ((InfinitePagerAdapter)mPager.getAdapter()).getRealAdapter().registerDataSetObserver(dataChangeObserver); } diff --git a/library/src/main/java/com/daimajia/slider/library/SliderLayout.java b/library/src/main/java/com/daimajia/slider/library/SliderLayout.java index 5781d03..9094733 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderLayout.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderLayout.java @@ -213,12 +213,16 @@ public boolean onTouch(View v, MotionEvent event) { } } - public void setOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener){ - if(onPageChangeListener!=null){ - mViewPager.setOnPageChangeListener(onPageChangeListener); + public void addOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener){ + if(onPageChangeListener != null){ + mViewPager.addOnPageChangeListener(onPageChangeListener); } } + public void removeOnPageChangeListener(ViewPagerEx.OnPageChangeListener onPageChangeListener) { + mViewPager.removeOnPageChangeListener(onPageChangeListener); + } + public void setCustomIndicator(PagerIndicator indicator){ if(mIndicator != null){ mIndicator.destroySelf(); diff --git a/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java b/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java index 518568e..8d4509b 100644 --- a/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java +++ b/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java @@ -589,17 +589,27 @@ private void scrollToItem(int item, boolean smoothScroll, int velocity, } /** - * Set a listener that will be invoked whenever the page changes or is incrementally + * Add a listener that will be invoked whenever the page changes or is incrementally * scrolled. See {@link OnPageChangeListener}. * - * @param listener Listener to set + * @param listener Listener to add */ - public void setOnPageChangeListener(OnPageChangeListener listener) { + public void addOnPageChangeListener(OnPageChangeListener listener) { if (!mOnPageChangeListeners.contains(listener)) { mOnPageChangeListeners.add(listener); } } + /** + * Remove a listener that was added with addOnPageChangeListener + * See {@link OnPageChangeListener}. + * + * @param listener Listener to remove + */ + public void removeOnPageChangeListener(OnPageChangeListener listener) { + mOnPageChangeListeners.remove(listener); + } + /** * Set a {@link PageTransformer} that will be called for each attached page whenever * the scroll position is changed. This allows the application to apply custom property From 2e890ec35916e235bcf8da302d69f265fbe2be43 Mon Sep 17 00:00:00 2001 From: Massimo Biolcati Date: Thu, 7 May 2015 21:52:58 -0400 Subject: [PATCH 13/17] Corrected method name to better follow Android convetions --- .../com/daimajia/slider/library/Tricks/ViewPagerEx.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java b/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java index 8d4509b..8927d26 100644 --- a/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java +++ b/library/src/main/java/com/daimajia/slider/library/Tricks/ViewPagerEx.java @@ -305,7 +305,7 @@ public void onPageScrollStateChanged(int state) { } } - private void setOnPageChanged(int position) { + private void triggerOnPageChangeEvent(int position) { for (OnPageChangeListener eachListener : mOnPageChangeListeners) { if (eachListener != null) { InfinitePagerAdapter infiniteAdapter = (InfinitePagerAdapter)mAdapter; @@ -556,7 +556,7 @@ void setCurrentItemInternal(int item, boolean smoothScroll, boolean always, int // We don't have any idea how big we are yet and shouldn't have any pages either. // Just set things up and let the pending layout handle things. mCurItem = item; - setOnPageChanged(item); + triggerOnPageChangeEvent(item); requestLayout(); } else { populate(item); @@ -576,11 +576,11 @@ private void scrollToItem(int item, boolean smoothScroll, int velocity, if (smoothScroll) { smoothScrollTo(destX, 0, velocity); if (dispatchSelected) { - setOnPageChanged(item); + triggerOnPageChangeEvent(item); } } else { if (dispatchSelected) { - setOnPageChanged(item); + triggerOnPageChangeEvent(item); } completeScroll(false); scrollTo(destX, 0); From 7a9cb5a103e2f73a986c20ce579cff956c990d59 Mon Sep 17 00:00:00 2001 From: Massimo Biolcati Date: Fri, 8 May 2015 23:33:26 -0400 Subject: [PATCH 14/17] Fix demo to prevent memory leak on device orientation change --- .../main/java/com/daimajia/slider/demo/MainActivity.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java index cbe4570..8037dcf 100644 --- a/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java +++ b/demo/src/main/java/com/daimajia/slider/demo/MainActivity.java @@ -80,6 +80,13 @@ public void onItemClick(AdapterView parent, View view, int position, long id) } + @Override + protected void onStop() { + // To prevent a memory leak on rotation, make sure to call stopAutoCycle() on the slider before activity or fragment is destroyed + mDemoSlider.stopAutoCycle(); + super.onStop(); + } + @Override public void onSliderClick(BaseSliderView slider) { Toast.makeText(this,slider.getBundle().get("extra") + "",Toast.LENGTH_SHORT).show(); From 83fff0b91f56189d6ebff6e2b7b246e0c09cdb5e Mon Sep 17 00:00:00 2001 From: Justin Ko Date: Wed, 13 May 2015 11:48:19 -0700 Subject: [PATCH 15/17] Allow specifying a Picasso instance to use Add methods to allow configuring the Picasso instance used by the slider when it loads images. --- .../library/SliderTypes/BaseSliderView.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java index fe3cedc..8ad1d35 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java @@ -47,6 +47,8 @@ public abstract class BaseSliderView { private String mDescription; + private Picasso mPicasso; + /** * Scale type of the image. */ @@ -205,7 +207,7 @@ public void onClick(View v) { mLoadListener.onStart(me); } - Picasso p = Picasso.with(mContext); + Picasso p = (mPicasso != null) ? mPicasso : Picasso.with(mContext); RequestCreator rq = null; if(mUrl!=null){ rq = p.load(mUrl); @@ -304,4 +306,23 @@ public interface ImageLoadListener{ public void onEnd(boolean result,BaseSliderView target); } + /** + * Get the last instance set via setPicasso(), or null if no user provided instance was set + * + * @return The current user-provided Picasso instance, or null if none + */ + public Picasso getPicasso() { + return mPicasso; + } + + /** + * Provide a Picasso instance to use when loading pictures, this is useful if you have a + * particular HTTP cache you would like to share. + * + * @param picasso The Picasso instance to use, may be null to let the system use the default + * instance + */ + public void setPicasso(Picasso picasso) { + mPicasso = picasso; + } } From 8c674606e67cf0769965f1559c3b792f0a62dac1 Mon Sep 17 00:00:00 2001 From: daimajia Date: Mon, 18 May 2015 09:35:12 +0800 Subject: [PATCH 16/17] modify jar gen function (v1.1.5) --- README.md | 2 +- library/build.gradle | 12 ++++++------ library/gradle-mvn-push.gradle | 14 ++++++++++---- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 60db822..a96a07a 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ dependencies { compile "com.android.support:support-v4:+" compile 'com.squareup.picasso:picasso:2.3.2' compile 'com.nineoldandroids:library:2.4.0' - compile 'com.daimajia.slider:library:1.1.2@aar' + compile 'com.daimajia.slider:library:1.1.5@aar' } ``` diff --git a/library/build.gradle b/library/build.gradle index f519c12..b2e8cc6 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -7,8 +7,8 @@ android { defaultConfig { minSdkVersion 8 targetSdkVersion 22 - versionCode 10 - versionName "1.0.9" + versionCode 15 + versionName "1.1.5" } buildTypes { release { @@ -22,9 +22,9 @@ android { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) - compile 'com.android.support:appcompat-v7:22.+' - compile "com.android.support:support-v4:22.+" - compile 'com.squareup.picasso:picasso:+' - compile 'com.nineoldandroids:library:+' + compile 'com.android.support:appcompat-v7:22.1.1' + compile "com.android.support:support-v4:22.1.1" + compile 'com.squareup.picasso:picasso:2.5.2' + compile 'com.nineoldandroids:library:2.4.0' } apply from: './gradle-mvn-push.gradle' diff --git a/library/gradle-mvn-push.gradle b/library/gradle-mvn-push.gradle index f09ffcf..873d7b0 100644 --- a/library/gradle-mvn-push.gradle +++ b/library/gradle-mvn-push.gradle @@ -104,9 +104,15 @@ afterEvaluate { project -> } } + task androidJavadocs(type: Javadoc) { source = android.sourceSets.main.java.srcDirs - classpath += project.files(android.getBootClasspath() .join(File.pathSeparator)) + classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + options.links("http://docs.oracle.com/javase/7/docs/api/"); + options.linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference" + exclude '**/BuildConfig.java' + exclude '**/R.java' + failOnError = false } task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { @@ -116,12 +122,12 @@ afterEvaluate { project -> task androidSourcesJar(type: Jar) { classifier = 'sources' - from android.sourceSets.main + from android.sourceSets.main.java.sourceFiles } artifacts { archives androidSourcesJar archives androidJavadocsJar - archives apklib + archives apklib } -} +} \ No newline at end of file From e39f97cf7a542ba7a720a7f3fa06d9cfa791cbc2 Mon Sep 17 00:00:00 2001 From: Marc Date: Sun, 24 May 2015 18:47:35 +0100 Subject: [PATCH 17/17] Fix bug #70. Initial delay was hardcoded to 1 second. Now uses delay which was set. --- .../src/main/java/com/daimajia/slider/library/SliderLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/slider/library/SliderLayout.java b/library/src/main/java/com/daimajia/slider/library/SliderLayout.java index 9094733..ba36e5e 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderLayout.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderLayout.java @@ -246,7 +246,7 @@ public void handleMessage(Message msg) { }; public void startAutoCycle(){ - startAutoCycle(1000, mSliderDuration, mAutoRecover); + startAutoCycle(mSliderDuration, mSliderDuration, mAutoRecover); } /**