Skip to content

Commit ae6c20b

Browse files
authored
Merge pull request #142 from smarteist/dev
Dev
2 parents 5733cfa + 434e4e2 commit ae6c20b

File tree

26 files changed

+267
-282
lines changed

26 files changed

+267
-282
lines changed

README.md

+7-15
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,21 @@ This is an amazing image slider for the Android .
1010
You can easily load images with your custom layout, and there are many kinds of amazing animations you can choose.
1111

1212
```groovy
13-
implementation 'com.github.smarteist:autoimageslider:1.3.7'
13+
implementation 'com.github.smarteist:autoimageslider:1.3.8'
1414
```
1515
If you are using appcompat libraries use this one, but please migrate to androidx as soon as you can.
1616
```groovy
17-
implementation 'com.github.smarteist:autoimageslider:1.3.7-appcompat'
17+
implementation 'com.github.smarteist:autoimageslider:1.3.8-appcompat'
1818
```
1919

2020
### New Feautures
21-
* Minor sliderView API improvements.
22-
* Ability to disable infinite mode.
23-
* bug in issue #130 fixed.
21+
* Ability to disable default indicator.
2422

2523
### New Changes
26-
* Auto cycle Bugs fixed.
27-
* Sync state bugs fixed.
28-
* Circular handle completely replaced with infinite wrapper adapter.
29-
because of that the following interface has been replaced with new one.
30-
```CircularSliderHandle.CurrentPageListener```
31-
changed to => `SliderView.OnSliderPageListener`.
32-
* The slider permanently scrolls infinitely, so the following methods have also been deleted.
33-
`sliderView.setCircularHandlerEnabled(boolean enable)`
34-
& its attribute in xml side:
35-
`app:sliderCircularHandlerEnabled="boolean"`
24+
* Auto cycle bugs fixed.
25+
* Swiping debounce implemented.
26+
27+
3628
## Demo
3729
![](https://github.com/smarteist/android-image-slider/blob/master/gif/0.gif)
3830
![](https://github.com/smarteist/android-image-slider/blob/master/gif/8.gif)

app/src/main/java/com/smarteist/imageslider/MainActivity.java

+5-6
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import android.graphics.Color;
44
import android.os.Bundle;
5-
import android.util.Log;
6-
import android.view.MotionEvent;
75
import android.view.View;
86

97
import androidx.appcompat.app.AppCompatActivity;
108

11-
import com.smarteist.autoimageslider.IndicatorAnimations;
9+
import com.smarteist.autoimageslider.IndicatorView.PageIndicatorView;
10+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
1211
import com.smarteist.autoimageslider.IndicatorView.draw.controller.DrawController;
1312
import com.smarteist.autoimageslider.SliderAnimations;
1413
import com.smarteist.autoimageslider.SliderView;
@@ -29,12 +28,12 @@ protected void onCreate(Bundle savedInstanceState) {
2928

3029
sliderView = findViewById(R.id.imageSlider);
3130

31+
3232
adapter = new SliderAdapterExample(this);
3333
sliderView.setSliderAdapter(adapter);
34-
35-
sliderView.setIndicatorAnimation(IndicatorAnimations.THIN_WORM); //set indicator animation by using SliderLayout.IndicatorAnimations. :WORM or THIN_WORM or COLOR or DROP or FILL or NONE or SCALE or SCALE_DOWN or SLIDE and SWAP!!
34+
sliderView.setIndicatorAnimation(IndicatorAnimationType.WORM); //set indicator animation by using SliderLayout.IndicatorAnimations. :WORM or THIN_WORM or COLOR or DROP or FILL or NONE or SCALE or SCALE_DOWN or SLIDE and SWAP!!
3635
sliderView.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION);
37-
sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_RIGHT);
36+
sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_BACK_AND_FORTH);
3837
sliderView.setIndicatorSelectedColor(Color.WHITE);
3938
sliderView.setIndicatorUnselectedColor(Color.GRAY);
4039
sliderView.setScrollTimeInSec(3);

app/src/main/res/layout/activity_main.xml

+4-3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
app:sliderAnimationDuration="600"
2222
app:sliderAutoCycleDirection="back_and_forth"
2323
app:sliderIndicatorAnimationDuration="600"
24+
app:sliderIndicatorEnabled="true"
2425
app:sliderIndicatorGravity="center_horizontal|bottom"
2526
app:sliderIndicatorMargin="15dp"
2627
app:sliderIndicatorOrientation="horizontal"
@@ -40,21 +41,21 @@
4041
android:orientation="vertical">
4142

4243
<Button
43-
android:onClick="addNewItem"
4444
android:layout_width="wrap_content"
4545
android:layout_height="wrap_content"
46+
android:onClick="addNewItem"
4647
android:text="Add An Item" />
4748

4849
<Button
49-
android:onClick="removeLastItem"
5050
android:layout_width="wrap_content"
5151
android:layout_height="wrap_content"
52+
android:onClick="removeLastItem"
5253
android:text="Rmove Last Item" />
5354

5455
<Button
55-
android:onClick="renewItems"
5656
android:layout_width="wrap_content"
5757
android:layout_height="wrap_content"
58+
android:onClick="renewItems"
5859
android:text="Renew Items" />
5960

6061
</LinearLayout>

autoimageslider/build.gradle

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ext {
1515
siteUrl = 'https://github.com/smarteist'
1616
gitUrl = 'https://github.com/smarteist/android-image-slider.git'
1717

18-
libraryVersion = '1.3.7'
18+
libraryVersion = '1.3.8'
1919
organization = 'smarteistbintray' // if you push to organization's repository.
2020
developerId = 'smarteist'
2121
developerName = 'Ali Hosseini'
@@ -28,13 +28,13 @@ ext {
2828
}
2929

3030
android {
31-
compileSdkVersion 28
31+
compileSdkVersion 29
3232

3333
defaultConfig {
3434
minSdkVersion 15
35-
targetSdkVersion 28
35+
targetSdkVersion 29
3636
versionCode 5
37-
versionName "1.3.2"
37+
versionName "1.3.8"
3838

3939
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
4040

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorAnimations.java

-14
This file was deleted.

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/PageIndicatorView.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import android.view.ViewGroup;
2323
import android.view.ViewParent;
2424

25-
import com.smarteist.autoimageslider.IndicatorView.animation.type.AnimationType;
25+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
2626
import com.smarteist.autoimageslider.IndicatorView.animation.type.ScaleAnimation;
2727
import com.smarteist.autoimageslider.IndicatorView.draw.controller.DrawController;
2828
import com.smarteist.autoimageslider.IndicatorView.draw.data.Indicator;
@@ -327,13 +327,13 @@ public long getAnimationDuration() {
327327
}
328328

329329

330-
public void setAnimationType(@Nullable AnimationType type) {
330+
public void setAnimationType(@Nullable IndicatorAnimationType type) {
331331
manager.onValueUpdated(null);
332332

333333
if (type != null) {
334334
manager.indicator().setAnimationType(type);
335335
} else {
336-
manager.indicator().setAnimationType(AnimationType.NONE);
336+
manager.indicator().setAnimationType(IndicatorAnimationType.NONE);
337337
}
338338
invalidate();
339339
}
@@ -420,8 +420,8 @@ public void setSelection(int position) {
420420

421421
public void setSelected(int position) {
422422
Indicator indicator = manager.indicator();
423-
AnimationType animationType = indicator.getAnimationType();
424-
indicator.setAnimationType(AnimationType.NONE);
423+
IndicatorAnimationType animationType = indicator.getAnimationType();
424+
indicator.setAnimationType(IndicatorAnimationType.NONE);
425425

426426
setSelection(position);
427427
indicator.setAnimationType(animationType);
@@ -588,9 +588,9 @@ private void onPageSelect(int position) {
588588

589589
private void onPageScroll(int position, float positionOffset) {
590590
Indicator indicator = manager.indicator();
591-
AnimationType animationType = indicator.getAnimationType();
591+
IndicatorAnimationType animationType = indicator.getAnimationType();
592592
boolean interactiveAnimation = indicator.isInteractiveAnimation();
593-
boolean canSelectIndicator = isViewMeasured() && interactiveAnimation && animationType != AnimationType.NONE;
593+
boolean canSelectIndicator = isViewMeasured() && interactiveAnimation && animationType != IndicatorAnimationType.NONE;
594594

595595
if (!canSelectIndicator) {
596596
return;

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/animation/controller/AnimationController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import androidx.annotation.NonNull;
44

5-
import com.smarteist.autoimageslider.IndicatorView.animation.type.AnimationType;
5+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
66
import com.smarteist.autoimageslider.IndicatorView.animation.type.BaseAnimation;
77
import com.smarteist.autoimageslider.IndicatorView.draw.data.Indicator;
88
import com.smarteist.autoimageslider.IndicatorView.draw.data.Orientation;
@@ -44,7 +44,7 @@ public void end() {
4444
}
4545

4646
private void animate() {
47-
AnimationType animationType = indicator.getAnimationType();
47+
IndicatorAnimationType animationType = indicator.getAnimationType();
4848
switch (animationType) {
4949
case NONE:
5050
listener.onValueUpdated(null);

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/animation/type/AnimationType.java

-3
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.smarteist.autoimageslider.IndicatorView.animation.type;
2+
3+
public enum IndicatorAnimationType {NONE, COLOR, SCALE, WORM, SLIDE, FILL, THIN_WORM, DROP, SWAP, SCALE_DOWN}

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/draw/controller/AttributeController.java

+15-16
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import androidx.annotation.NonNull;
77
import androidx.annotation.Nullable;
88
import android.util.AttributeSet;
9-
import android.view.Gravity;
109
import android.view.View;
1110
import com.smarteist.autoimageslider.IndicatorView.utils.DensityUtils;
1211
import com.smarteist.autoimageslider.IndicatorView.animation.type.*;
@@ -75,8 +74,8 @@ private void initAnimationAttribute(@NonNull TypedArray typedArray) {
7574
animationDuration = 0;
7675
}
7776

78-
int animIndex = typedArray.getInt(R.styleable.PageIndicatorView_piv_animationType, AnimationType.NONE.ordinal());
79-
AnimationType animationType = getAnimationType(animIndex);
77+
int animIndex = typedArray.getInt(R.styleable.PageIndicatorView_piv_animationType, IndicatorAnimationType.NONE.ordinal());
78+
IndicatorAnimationType animationType = getAnimationType(animIndex);
8079

8180
int rtlIndex = typedArray.getInt(R.styleable.PageIndicatorView_piv_rtl_mode, RtlMode.Off.ordinal());
8281
RtlMode rtlMode = getRtlMode(rtlIndex);
@@ -120,7 +119,7 @@ private void initSizeAttribute(@NonNull TypedArray typedArray) {
120119
stroke = radius;
121120
}
122121

123-
if (indicator.getAnimationType() != AnimationType.FILL) {
122+
if (indicator.getAnimationType() != IndicatorAnimationType.FILL) {
124123
stroke = 0;
125124
}
126125

@@ -131,31 +130,31 @@ private void initSizeAttribute(@NonNull TypedArray typedArray) {
131130
indicator.setStroke(stroke);
132131
}
133132

134-
private AnimationType getAnimationType(int index) {
133+
private IndicatorAnimationType getAnimationType(int index) {
135134
switch (index) {
136135
case 0:
137-
return AnimationType.NONE;
136+
return IndicatorAnimationType.NONE;
138137
case 1:
139-
return AnimationType.COLOR;
138+
return IndicatorAnimationType.COLOR;
140139
case 2:
141-
return AnimationType.SCALE;
140+
return IndicatorAnimationType.SCALE;
142141
case 3:
143-
return AnimationType.WORM;
142+
return IndicatorAnimationType.WORM;
144143
case 4:
145-
return AnimationType.SLIDE;
144+
return IndicatorAnimationType.SLIDE;
146145
case 5:
147-
return AnimationType.FILL;
146+
return IndicatorAnimationType.FILL;
148147
case 6:
149-
return AnimationType.THIN_WORM;
148+
return IndicatorAnimationType.THIN_WORM;
150149
case 7:
151-
return AnimationType.DROP;
150+
return IndicatorAnimationType.DROP;
152151
case 8:
153-
return AnimationType.SWAP;
152+
return IndicatorAnimationType.SWAP;
154153
case 9:
155-
return AnimationType.SCALE_DOWN;
154+
return IndicatorAnimationType.SCALE_DOWN;
156155
}
157156

158-
return AnimationType.NONE;
157+
return IndicatorAnimationType.NONE;
159158
}
160159

161160
public static RtlMode getRtlMode(int index) {

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/draw/controller/DrawController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import androidx.annotation.Nullable;
66
import android.view.MotionEvent;
77
import com.smarteist.autoimageslider.IndicatorView.animation.data.Value;
8-
import com.smarteist.autoimageslider.IndicatorView.animation.type.AnimationType;
8+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
99
import com.smarteist.autoimageslider.IndicatorView.draw.data.Indicator;
1010
import com.smarteist.autoimageslider.IndicatorView.draw.drawer.Drawer;
1111
import com.smarteist.autoimageslider.IndicatorView.utils.CoordinatesUtils;
@@ -91,7 +91,7 @@ private void drawIndicator(
9191
}
9292

9393
private void drawWithAnimation(@NonNull Canvas canvas) {
94-
AnimationType animationType = indicator.getAnimationType();
94+
IndicatorAnimationType animationType = indicator.getAnimationType();
9595
switch (animationType) {
9696
case NONE:
9797
drawer.drawBasic(canvas, true);

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/draw/controller/MeasureController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import androidx.annotation.NonNull;
44
import android.util.Pair;
55
import android.view.View;
6-
import com.smarteist.autoimageslider.IndicatorView.animation.type.AnimationType;
6+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
77
import com.smarteist.autoimageslider.IndicatorView.draw.data.Indicator;
88
import com.smarteist.autoimageslider.IndicatorView.draw.data.Orientation;
99

@@ -52,7 +52,7 @@ public Pair<Integer, Integer> measureViewSize(@NonNull Indicator indicator, int
5252
}
5353
}
5454

55-
if (indicator.getAnimationType() == AnimationType.DROP) {
55+
if (indicator.getAnimationType() == IndicatorAnimationType.DROP) {
5656
if (orientation == Orientation.HORIZONTAL) {
5757
desiredHeight *= 2;
5858
} else {

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/draw/data/Indicator.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import androidx.annotation.NonNull;
44
import android.view.View;
5-
import com.smarteist.autoimageslider.IndicatorView.animation.type.AnimationType;
5+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
66

77
public class Indicator {
88

@@ -43,7 +43,7 @@ public class Indicator {
4343
private int viewPagerId = View.NO_ID;
4444

4545
private Orientation orientation;
46-
private AnimationType animationType;
46+
private IndicatorAnimationType animationType;
4747
private RtlMode rtlMode;
4848

4949
public int getHeight() {
@@ -219,14 +219,14 @@ public void setOrientation(Orientation orientation) {
219219
}
220220

221221
@NonNull
222-
public AnimationType getAnimationType() {
222+
public IndicatorAnimationType getAnimationType() {
223223
if (animationType == null) {
224-
animationType = AnimationType.NONE;
224+
animationType = IndicatorAnimationType.NONE;
225225
}
226226
return animationType;
227227
}
228228

229-
public void setAnimationType(AnimationType animationType) {
229+
public void setAnimationType(IndicatorAnimationType animationType) {
230230
this.animationType = animationType;
231231
}
232232

autoimageslider/src/main/java/com/smarteist/autoimageslider/IndicatorView/draw/drawer/type/BasicDrawer.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import android.graphics.Canvas;
44
import android.graphics.Paint;
55
import androidx.annotation.NonNull;
6-
import com.smarteist.autoimageslider.IndicatorView.animation.type.AnimationType;
6+
import com.smarteist.autoimageslider.IndicatorView.animation.type.IndicatorAnimationType;
77
import com.smarteist.autoimageslider.IndicatorView.draw.data.Indicator;
88

99
public class BasicDrawer extends BaseDrawer {
@@ -33,12 +33,12 @@ public void draw(
3333
int selectedColor = indicator.getSelectedColor();
3434
int unselectedColor = indicator.getUnselectedColor();
3535
int selectedPosition = indicator.getSelectedPosition();
36-
AnimationType animationType = indicator.getAnimationType();
36+
IndicatorAnimationType animationType = indicator.getAnimationType();
3737

38-
if (animationType == AnimationType.SCALE && !isSelectedItem) {
38+
if (animationType == IndicatorAnimationType.SCALE && !isSelectedItem) {
3939
radius *= scaleFactor;
4040

41-
} else if (animationType == AnimationType.SCALE_DOWN && isSelectedItem) {
41+
} else if (animationType == IndicatorAnimationType.SCALE_DOWN && isSelectedItem) {
4242
radius *= scaleFactor;
4343
}
4444

@@ -48,7 +48,7 @@ public void draw(
4848
}
4949

5050
Paint paint;
51-
if (animationType == AnimationType.FILL && position != selectedPosition) {
51+
if (animationType == IndicatorAnimationType.FILL && position != selectedPosition) {
5252
paint = strokePaint;
5353
paint.setStrokeWidth(strokePx);
5454
} else {

0 commit comments

Comments
 (0)