Skip to content

Commit 93726c5

Browse files
committed
update:
updated samples; added selector activity; fixed minor bugs;
1 parent 4f0c440 commit 93726c5

File tree

11 files changed

+83
-47
lines changed

11 files changed

+83
-47
lines changed

lib/src/main/java/com/cleveroad/slidingtutorial/FragmentPagerAdapter.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,6 @@ public long getItemId(int position) {
175175
return position;
176176
}
177177

178-
private static void setUserVisibleHint(Fragment fragment, boolean isVisible) {
179-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
180-
fragment.setUserVisibleHint(isVisible);
181-
}
182-
}
183-
184178
private static String makeFragmentName(int viewId, long id) {
185179
return "android:switcher:" + viewId + ":" + id;
186180
}

lib/src/main/java/com/cleveroad/slidingtutorial/TutorialImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,12 @@ void onViewCreated(View view, Bundle savedInstanceState) {
9494

9595
if (mTutorialOptions.isUseInfiniteScroll()) {
9696
int pos = Integer.MAX_VALUE / 2;
97-
pos -= pos % mTutorialOptions.getPagesCount();
97+
// to avoid java.lang.ArithmeticException: divide by zero when user specify pages count = 0
98+
if (mTutorialOptions.getPagesCount() != 0) {
99+
pos -= pos % mTutorialOptions.getPagesCount();
100+
} else {
101+
pos = 0;
102+
}
98103
mViewPager.setCurrentItem(pos);
99104
}
100105
}
@@ -363,6 +368,7 @@ public void onPageScrolled(int position, float positionOffset, int positionOffse
363368
public void onPageSelected(int position) {
364369
// Forward callback to all OnTutorialPageChangeListeners
365370
int pos = position == mTutorialOptions.getPagesCount() ? EMPTY_FRAGMENT_POSITION : position;
371+
pos %= mTutorialOptions.getPagesCount();
366372
for (OnTutorialPageChangeListener onTutorialPageChangeListener : mOnTutorialPageChangeListeners) {
367373
onTutorialPageChangeListener.onPageChanged(pos);
368374
}

lib/src/main/java/com/cleveroad/slidingtutorial/TutorialOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ private TutorialOptions(boolean autoRemoveTutorialFragment, boolean useInfiniteS
5757
@NonNull IndicatorOptions indicatorOptions) {
5858
mAutoRemoveTutorialFragment = autoRemoveTutorialFragment;
5959
mUseInfiniteScroll = useInfiniteScroll;
60-
mPagesCount = pagesCount;
61-
mPagesColors = ValidationUtil.checkPagesColorsSize(pagesCount, pagesColors);
60+
mPagesCount = ValidationUtil.checkPagesCount(pagesCount);
61+
mPagesColors = pagesColors;
6262
mTutorialPageProvider = ValidationUtil.checkNotNull(tutorialPageProvider, "TutorialPageProvider can't be null");
6363
mIndicatorOptions = ValidationUtil.checkNotNull(indicatorOptions);
6464
mOnSkipClickListener = onSkipClickListener;

lib/src/main/java/com/cleveroad/slidingtutorial/ValidationUtil.java

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,30 +60,14 @@ static <T> T checkNotNull(T reference, @Nullable Object errorMessage) {
6060
return reference;
6161
}
6262

63-
/**
64-
* Checks on less or equals setPagesCount to pagesColor array size
65-
*
66-
* @param pagesCount count of pages
67-
* @param pagesColors array of pages colors
68-
* @return pagesColor array
69-
* @throws IllegalArgumentException when setPagesColors array has different from setPagesCount value size
70-
*/
71-
static int[] checkPagesColorsSize(int pagesCount, int[] pagesColors) {
72-
checkPagesCount(pagesCount);
73-
if (pagesColors != null && pagesColors.length > pagesCount) {
74-
throw new IllegalArgumentException("Pages color array size must be less or equal to pages count.");
75-
}
76-
return pagesColors;
77-
}
78-
7963
/**
8064
* Checks setPagesCount value to be greater that 0
8165
*
8266
* @param pagesCount count of pages
8367
* @return pages count
8468
* @throws IllegalArgumentException when setPagesColors array has different from setPagesCount value size
8569
*/
86-
private static int checkPagesCount(int pagesCount) {
70+
static int checkPagesCount(int pagesCount) {
8771
if (pagesCount < 0) {
8872
throw new IllegalArgumentException("Pages count can't be less than 0.");
8973
}

sample/src/main/AndroidManifest.xml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,23 @@
1010

1111
<activity
1212
android:name=".support.MainActivity"
13-
android:label="@string/st_app_name" >
14-
<!--<intent-filter>-->
15-
<!--<action android:name="android.intent.action.MAIN" />-->
16-
17-
<!--<category android:name="android.intent.category.LAUNCHER" />-->
18-
<!--</intent-filter>-->
19-
</activity>
13+
android:label="@string/st_app_name"/>
2014

2115
<activity
2216
android:name=".MainActivity"
23-
android:label="@string/st_app_name" >
17+
android:label="@string/st_app_name"/>
18+
19+
<activity
20+
android:name=".selector.SelectorActivity"
21+
android:label="@string/st_app_name"
22+
android:theme="@style/AppTheme">
23+
2424
<intent-filter>
2525
<action android:name="android.intent.action.MAIN" />
2626

2727
<category android:name="android.intent.category.LAUNCHER" />
2828
</intent-filter>
29+
2930
</activity>
3031

3132
</application>

sample/src/main/java/com/cleveroad/slidingtutorial/sample/CustomTutorialFragment.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,29 +59,29 @@ public PageOptions provide(int position) {
5959
break;
6060
}
6161
case 1: {
62-
pageLayoutResId = R.layout.fragment_page_second;
62+
pageLayoutResId = R.layout.fragment_page_third;
6363
tutorialItems = new TransformItem[]{
6464
TransformItem.create(R.id.ivFirstImage, Direction.RIGHT_TO_LEFT, 0.2f),
6565
TransformItem.create(R.id.ivSecondImage, Direction.LEFT_TO_RIGHT, 0.06f),
6666
TransformItem.create(R.id.ivThirdImage, Direction.RIGHT_TO_LEFT, 0.08f),
6767
TransformItem.create(R.id.ivFourthImage, Direction.LEFT_TO_RIGHT, 0.1f),
6868
TransformItem.create(R.id.ivFifthImage, Direction.LEFT_TO_RIGHT, 0.03f),
6969
TransformItem.create(R.id.ivSixthImage, Direction.LEFT_TO_RIGHT, 0.09f),
70-
TransformItem.create(R.id.ivSeventhImage, Direction.LEFT_TO_RIGHT, 0.14f),
71-
TransformItem.create(R.id.ivEighthImage, Direction.LEFT_TO_RIGHT, 0.07f)
70+
TransformItem.create(R.id.ivSeventhImage, Direction.LEFT_TO_RIGHT, 0.14f)
7271
};
7372
break;
7473
}
7574
case 2: {
76-
pageLayoutResId = R.layout.fragment_page_third;
75+
pageLayoutResId = R.layout.fragment_page_second;
7776
tutorialItems = new TransformItem[]{
7877
TransformItem.create(R.id.ivFirstImage, Direction.RIGHT_TO_LEFT, 0.2f),
7978
TransformItem.create(R.id.ivSecondImage, Direction.LEFT_TO_RIGHT, 0.06f),
8079
TransformItem.create(R.id.ivThirdImage, Direction.RIGHT_TO_LEFT, 0.08f),
8180
TransformItem.create(R.id.ivFourthImage, Direction.LEFT_TO_RIGHT, 0.1f),
8281
TransformItem.create(R.id.ivFifthImage, Direction.LEFT_TO_RIGHT, 0.03f),
8382
TransformItem.create(R.id.ivSixthImage, Direction.LEFT_TO_RIGHT, 0.09f),
84-
TransformItem.create(R.id.ivSeventhImage, Direction.LEFT_TO_RIGHT, 0.14f)
83+
TransformItem.create(R.id.ivSeventhImage, Direction.LEFT_TO_RIGHT, 0.14f),
84+
TransformItem.create(R.id.ivEighthImage, Direction.LEFT_TO_RIGHT, 0.07f)
8585
};
8686
break;
8787
}
@@ -119,12 +119,12 @@ public void onCreate(Bundle savedInstanceState) {
119119
super.onCreate(savedInstanceState);
120120
if (pagesColors == null) {
121121
pagesColors = new int[]{
122-
ContextCompat.getColor(getActivity(), android.R.color.holo_orange_dark),
122+
ContextCompat.getColor(getActivity(), android.R.color.darker_gray),
123123
ContextCompat.getColor(getActivity(), android.R.color.holo_green_dark),
124-
ContextCompat.getColor(getActivity(), android.R.color.holo_blue_dark),
125124
ContextCompat.getColor(getActivity(), android.R.color.holo_red_dark),
125+
ContextCompat.getColor(getActivity(), android.R.color.holo_blue_dark),
126126
ContextCompat.getColor(getActivity(), android.R.color.holo_purple),
127-
ContextCompat.getColor(getActivity(), android.R.color.darker_gray)
127+
ContextCompat.getColor(getActivity(), android.R.color.holo_orange_dark),
128128
};
129129
}
130130
addOnTutorialPageChangeListener(this);
@@ -134,10 +134,9 @@ public void onCreate(Bundle savedInstanceState) {
134134
protected TutorialOptions provideTutorialOptions() {
135135
return newTutorialOptionsBuilder(getActivity())
136136
.setUseAutoRemoveTutorialFragment(true)
137-
.setUseInfiniteScroll(false)
138137
.setPagesColors(pagesColors)
139138
.setPagesCount(TOTAL_PAGES)
140-
// .setTutorialPageProvider(mTutorialPageOptionsProvider)
139+
//.setTutorialPageProvider(mTutorialPageOptionsProvider)
141140
.setIndicatorOptions(IndicatorOptions.newBuilder(getActivity())
142141
.setElementSizeRes(R.dimen.indicator_size)
143142
.setElementSpacingRes(R.dimen.indicator_spacing)

sample/src/main/java/com/cleveroad/slidingtutorial/sample/MainActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package com.cleveroad.slidingtutorial.sample;
22

33
import android.app.Activity;
4+
import android.content.Context;
5+
import android.content.Intent;
46
import android.os.Bundle;
57
import android.view.View;
68

79
public class MainActivity extends Activity implements View.OnClickListener {
810

11+
public static void start(Context context) {
12+
context.startActivity(new Intent(context, MainActivity.class));
13+
}
14+
915
@Override
1016
protected void onCreate(Bundle savedInstanceState) {
1117
super.onCreate(savedInstanceState);
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.cleveroad.slidingtutorial.sample.selector;
2+
3+
import android.app.ListActivity;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.AdapterView;
7+
import android.widget.ArrayAdapter;
8+
9+
import com.cleveroad.slidingtutorial.sample.R;
10+
11+
public class SelectorActivity extends ListActivity implements AdapterView.OnItemClickListener {
12+
13+
@Override
14+
public void onCreate(Bundle savedInstanceState) {
15+
super.onCreate(savedInstanceState);
16+
setTitle(R.string.app_name);
17+
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
18+
R.array.options, android.R.layout.simple_list_item_1);
19+
setListAdapter(adapter);
20+
getListView().setOnItemClickListener(this);
21+
}
22+
23+
@Override
24+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
25+
switch (position) {
26+
case 0:
27+
com.cleveroad.slidingtutorial.sample.support.MainActivity.start(this);
28+
break;
29+
case 1:
30+
com.cleveroad.slidingtutorial.sample.MainActivity.start(this);
31+
break;
32+
}
33+
}
34+
}

sample/src/main/java/com/cleveroad/slidingtutorial/sample/support/CustomTutorialSupportFragment.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,7 @@ public void onCreate(Bundle savedInstanceState) {
134134
@Override
135135
protected TutorialOptions provideTutorialOptions() {
136136
return newTutorialOptionsBuilder(getContext())
137-
.setUseAutoRemoveTutorialFragment(true)
138-
.setUseInfiniteScroll(false)
137+
.setUseInfiniteScroll(true)
139138
.setPagesColors(pagesColors)
140139
.setPagesCount(TOTAL_PAGES)
141140
.setTutorialPageProvider(mTutorialPageOptionsProvider)
@@ -147,7 +146,7 @@ protected TutorialOptions provideTutorialOptions() {
147146
.setRenderer(RhombusRenderer.create())
148147
.build())
149148
.onSkipClickListener(mOnSkipClickListener)
150-
.setTutorialPageProvider(mTutorialPageProvider)
149+
//.setTutorialPageProvider(mTutorialPageProvider)
151150
.build();
152151
}
153152

sample/src/main/java/com/cleveroad/slidingtutorial/sample/support/MainActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.cleveroad.slidingtutorial.sample.support;
22

3+
import android.content.Context;
4+
import android.content.Intent;
35
import android.os.Bundle;
46
import android.support.v7.app.AppCompatActivity;
57
import android.view.View;
@@ -8,6 +10,10 @@
810

911
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
1012

13+
public static void start(Context context) {
14+
context.startActivity(new Intent(context, MainActivity.class));
15+
}
16+
1117
@Override
1218
protected void onCreate(Bundle savedInstanceState) {
1319
super.onCreate(savedInstanceState);

0 commit comments

Comments
 (0)