diff --git a/app/src/main/java/agency/tango/materialintro/MainActivity.java b/app/src/main/java/agency/tango/materialintro/MainActivity.java index aa76d5b..a1bca02 100644 --- a/app/src/main/java/agency/tango/materialintro/MainActivity.java +++ b/app/src/main/java/agency/tango/materialintro/MainActivity.java @@ -19,7 +19,7 @@ public void onCreate(Bundle savedInstanceState) { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, IntroActivity.class); - MainActivity.this.startActivity(intent); + startActivity(intent); } }); } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MaterialIntroActivity.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MaterialIntroActivity.java index 5ce78c1..38aad63 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MaterialIntroActivity.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MaterialIntroActivity.java @@ -102,9 +102,13 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { viewPager.post(new Runnable() { @Override public void run() { - int currentItem = viewPager.getCurrentItem(); - messageButtonBehaviourOnPageSelected.pageSelected(currentItem); - nextButtonBehaviour(currentItem, adapter.getItem(currentItem)); + if (adapter.slidesCount() == 0) { + finish(); + } else { + int currentItem = viewPager.getCurrentItem(); + messageButtonBehaviourOnPageSelected.pageSelected(currentItem); + nextButtonBehaviour(currentItem, adapter.getItem(currentItem)); + } } }); } @@ -113,7 +117,7 @@ public void run() { public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { SlideFragment fragment = adapter.getItem(viewPager.getCurrentItem()); boolean hasPermissionToGrant = fragment.hasNeededPermissionsToGrant(); - if (hasPermissionToGrant == false) { + if (!hasPermissionToGrant) { viewPager.setAllowedSwipeDirection(SwipeableViewPager.SwipeDirection.all); nextButtonBehaviour(viewPager.getCurrentItem(), fragment); messageButtonBehaviourOnPageSelected.pageSelected(viewPager.getCurrentItem()); @@ -170,7 +174,7 @@ public void pageScrolled(final int position, float offset) { viewPager.post(new Runnable() { @Override public void run() { - if (adapter.getItem(position).hasNeededPermissionsToGrant() || adapter.getItem(position).canMoveFurther() == false) { + if (adapter.getItem(position).hasNeededPermissionsToGrant() || !adapter.getItem(position).canMoveFurther()) { viewPager.setCurrentItem(position); pageIndicator.clearJoiningFractions(); } @@ -237,6 +241,7 @@ private int color(@ColorRes int color) { * * @param slideFragment Fragment to add */ + @SuppressWarnings("unused") public void addSlide(SlideFragment slideFragment) { adapter.addItem(slideFragment); } @@ -247,6 +252,7 @@ public void addSlide(SlideFragment slideFragment) { * @param slideFragment Fragment to add * @param messageButtonBehaviour Add behaviour for message button */ + @SuppressWarnings("unused") public void addSlide(SlideFragment slideFragment, MessageButtonBehaviour messageButtonBehaviour) { adapter.addItem(slideFragment); messageButtonBehaviours.put(adapter.getLastItemPosition(), messageButtonBehaviour); @@ -263,8 +269,8 @@ public void setSkipButtonVisible() { skipButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - for (int position = viewPager.getCurrentItem(); position < adapter.getCalculatedCount(); position++) { - if (adapter.getItem(position).canMoveFurther() == false) { + for (int position = viewPager.getCurrentItem(); position < adapter.slidesCount(); position++) { + if (!adapter.getItem(position).canMoveFurther()) { viewPager.setCurrentItem(position); showError(adapter.getItem(position).cantMoveFurtherErrorMessage()); return; @@ -313,6 +319,7 @@ public ViewTranslationWrapper getNextButtonTranslationWrapper() { * * @return ViewTranslationWrapper */ + @SuppressWarnings("unused") public ViewTranslationWrapper getBackButtonTranslationWrapper() { return backButtonTranslationWrapper; } @@ -322,6 +329,7 @@ public ViewTranslationWrapper getBackButtonTranslationWrapper() { * * @return ViewTranslationWrapper */ + @SuppressWarnings("unused") public ViewTranslationWrapper getPageIndicatorTranslationWrapper() { return pageIndicatorTranslationWrapper; } @@ -331,6 +339,7 @@ public ViewTranslationWrapper getPageIndicatorTranslationWrapper() { * * @return ViewTranslationWrapper */ + @SuppressWarnings("unused") public ViewTranslationWrapper getViewPagerTranslationWrapper() { return viewPagerTranslationWrapper; } @@ -340,6 +349,7 @@ public ViewTranslationWrapper getViewPagerTranslationWrapper() { * * @return ViewTranslationWrapper */ + @SuppressWarnings("unused") public ViewTranslationWrapper getSkipButtonTranslationWrapper() { return skipButtonTranslationWrapper; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MessageButtonBehaviour.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MessageButtonBehaviour.java index 7818b9c..4db0ea9 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MessageButtonBehaviour.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MessageButtonBehaviour.java @@ -2,6 +2,7 @@ import android.view.View; +@SuppressWarnings("unused") public class MessageButtonBehaviour { private View.OnClickListener clickListener; private String messageButtonText; diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MoveUpBehaviour.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MoveUpBehaviour.java index 3c3451f..2be956c 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MoveUpBehaviour.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/MoveUpBehaviour.java @@ -7,6 +7,7 @@ import android.view.View; import android.widget.LinearLayout; +@SuppressWarnings("unused") public class MoveUpBehaviour extends CoordinatorLayout.Behavior { public MoveUpBehaviour(Context context, AttributeSet attrs) { super(context, attrs); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragment.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragment.java index 2b81008..ba15ac6 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragment.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragment.java @@ -56,7 +56,7 @@ public static SlideFragment createInstance(SlideFragmentBuilder builder) { } public static boolean isNotNullOrEmpty(String string) { - return string != null && string.isEmpty() == false; + return string != null && !string.isEmpty(); } @Nullable @@ -93,7 +93,7 @@ public int buttonsColor() { public boolean hasAnyPermissionsToGrant() { boolean hasPermissionToGrant = hasPermissionsToGrant(neededPermissions); - if (hasPermissionToGrant == false) { + if (!hasPermissionToGrant) { hasPermissionToGrant = hasPermissionsToGrant(possiblePermissions); } return hasPermissionToGrant; @@ -144,14 +144,14 @@ public void askForPermissions() { } String[] permissionsToGrant = removeEmptyAndNullStrings(notGrantedPermissions); - ActivityCompat.requestPermissions(this.getActivity(), permissionsToGrant, PERMISSIONS_REQUEST_CODE); + ActivityCompat.requestPermissions(getActivity(), permissionsToGrant, PERMISSIONS_REQUEST_CODE); } private boolean hasPermissionsToGrant(String[] permissions) { if (permissions != null) { - for (int i = 0; i < permissions.length; i++) { - if (isNotNullOrEmpty(permissions[i])) { - if (ContextCompat.checkSelfPermission(getContext(), permissions[i]) != PackageManager.PERMISSION_GRANTED) { + for (String permission : permissions) { + if (isNotNullOrEmpty(permission)) { + if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED) { return true; } } @@ -160,6 +160,7 @@ private boolean hasPermissionsToGrant(String[] permissions) { return false; } + @SuppressWarnings("SuspiciousMethodCalls") private String[] removeEmptyAndNullStrings(final ArrayList permissions) { List list = new ArrayList<>(permissions); list.removeAll(Collections.singleton(null)); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragmentBuilder.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragmentBuilder.java index 00c45d6..f32b5ae 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragmentBuilder.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/SlideFragmentBuilder.java @@ -3,6 +3,7 @@ import android.support.annotation.ColorRes; import android.support.annotation.DrawableRes; +@SuppressWarnings({"unused", "WeakerAccess"}) public class SlideFragmentBuilder { int backgroundColor; int buttonsColor; diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java index d28cbe3..ca2226e 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/adapter/SlidesAdapter.java @@ -28,12 +28,18 @@ public Object instantiateItem(ViewGroup container, int position) { return fragment; } + /** + * @return Returns count of fragments in adapter + */ @Override public int getCount() { return fragments.size(); } - public int getCalculatedCount() { + /** + * @return Returns count of fragments in adapter WITHOUT empty slide if is available + */ + public int slidesCount() { if (isLastItemEmptySlide()) { return fragments.size() - 1; } else { @@ -42,25 +48,25 @@ public int getCalculatedCount() { } public void addItem(SlideFragment fragment) { - fragments.add(getCalculatedCount(), fragment); - this.notifyDataSetChanged(); + fragments.add(slidesCount(), fragment); + notifyDataSetChanged(); } public void addEmptySlide(LastEmptySlideFragment fragment) { fragments.add(fragment); - this.notifyDataSetChanged(); + notifyDataSetChanged(); } public int getLastItemPosition() { - return getCalculatedCount() - 1; + return slidesCount() - 1; } public boolean isLastSlide(int position) { - return position == getCalculatedCount() - 1; + return position == slidesCount() - 1; } public boolean shouldFinish(int position) { - return position == getCalculatedCount(); + return position == slidesCount(); } private boolean isLastItemEmptySlide() { diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/ViewTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/ViewTranslationWrapper.java index 2a42a77..9fcfcf2 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/ViewTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/ViewTranslationWrapper.java @@ -19,13 +19,14 @@ public class ViewTranslationWrapper { public ViewTranslationWrapper(View view) { this.view = view; - this.enterTranslation = new NoTranslation(); - this.exitTranslation = new NoTranslation(); - this.setErrorAnimation(0); + enterTranslation = new NoTranslation(); + exitTranslation = new NoTranslation(); + setErrorAnimation(0); } /** * Set translation after passing first slide + * * @param enterTranslation new translation */ public ViewTranslationWrapper setEnterTranslation(IViewTranslation enterTranslation) { @@ -35,6 +36,7 @@ public ViewTranslationWrapper setEnterTranslation(IViewTranslation enterTranslat /** * Set translation after passing last slide + * * @param exitTranslation new translation */ public ViewTranslationWrapper setExitTranslation(IViewTranslation exitTranslation) { @@ -44,6 +46,7 @@ public ViewTranslationWrapper setExitTranslation(IViewTranslation exitTranslatio /** * Set default translation + * * @param defaultTranslation new translation */ public ViewTranslationWrapper setDefaultTranslation(IViewTranslation defaultTranslation) { @@ -53,6 +56,7 @@ public ViewTranslationWrapper setDefaultTranslation(IViewTranslation defaultTran /** * Set view on error animation + * * @param errorAnimation new animation */ public ViewTranslationWrapper setErrorAnimation(@AnimRes int errorAnimation) { @@ -63,20 +67,20 @@ public ViewTranslationWrapper setErrorAnimation(@AnimRes int errorAnimation) { } public void enterTranslate(float percentage) { - this.enterTranslation.translate(view, percentage); + enterTranslation.translate(view, percentage); } public void exitTranslate(float percentage) { - this.exitTranslation.translate(view, percentage); + exitTranslation.translate(view, percentage); } public void defaultTranslate(float percentage) { - this.defaultTranslation.translate(view, percentage); + defaultTranslation.translate(view, percentage); } public void error() { if (errorAnimation != null) { - this.view.startAnimation(errorAnimation); + view.startAnimation(errorAnimation); } } } \ No newline at end of file diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java index b1abf1e..222d7a2 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/BackButtonTranslationWrapper.java @@ -11,7 +11,7 @@ public class BackButtonTranslationWrapper extends ViewTranslationWrapper { public BackButtonTranslationWrapper(View view) { super(view); - this.setEnterTranslation(new EnterDefaultTranslation()) + setEnterTranslation(new EnterDefaultTranslation()) .setDefaultTranslation(new DefaultPositionTranslation()) .setExitTranslation(new ExitDefaultTranslation()); } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java index 7d90fa6..3d8baaf 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/NextButtonTranslationWrapper.java @@ -11,7 +11,7 @@ public class NextButtonTranslationWrapper extends ViewTranslationWrapper { public NextButtonTranslationWrapper(View view) { super(view); - this.setExitTranslation(new ExitDefaultTranslation()) + setExitTranslation(new ExitDefaultTranslation()) .setDefaultTranslation(new DefaultPositionTranslation()) .setErrorAnimation(R.anim.shake_it); } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java index ddcbca1..2fdc068 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/PageIndicatorTranslationWrapper.java @@ -10,7 +10,7 @@ public class PageIndicatorTranslationWrapper extends ViewTranslationWrapper { public PageIndicatorTranslationWrapper(View view) { super(view); - this.setDefaultTranslation(new DefaultPositionTranslation()) + setDefaultTranslation(new DefaultPositionTranslation()) .setExitTranslation(new ExitDefaultTranslation()); } } \ No newline at end of file diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java index 783d9e4..d78c22c 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/SkipButtonTranslationWrapper.java @@ -1,17 +1,17 @@ package agency.tango.materialintroscreen.animations.wrappers; - import android.view.View; +import android.view.View; - import agency.tango.materialintroscreen.animations.ViewTranslationWrapper; - import agency.tango.materialintroscreen.animations.translations.DefaultPositionTranslation; - import agency.tango.materialintroscreen.animations.translations.EnterDefaultTranslation; - import agency.tango.materialintroscreen.animations.translations.ExitDefaultTranslation; +import agency.tango.materialintroscreen.animations.ViewTranslationWrapper; +import agency.tango.materialintroscreen.animations.translations.DefaultPositionTranslation; +import agency.tango.materialintroscreen.animations.translations.EnterDefaultTranslation; +import agency.tango.materialintroscreen.animations.translations.ExitDefaultTranslation; public class SkipButtonTranslationWrapper extends ViewTranslationWrapper { public SkipButtonTranslationWrapper(View view) { super(view); - this.setEnterTranslation(new EnterDefaultTranslation()) + setEnterTranslation(new EnterDefaultTranslation()) .setDefaultTranslation(new DefaultPositionTranslation()) .setExitTranslation(new ExitDefaultTranslation()); } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java index 6a5c1b8..2382784 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/animations/wrappers/ViewPagerTranslationWrapper.java @@ -10,7 +10,7 @@ public class ViewPagerTranslationWrapper extends ViewTranslationWrapper { public ViewPagerTranslationWrapper(View view) { super(view); - this.setDefaultTranslation(new DefaultAlphaTranslation()) + setDefaultTranslation(new DefaultAlphaTranslation()) .setExitTranslation(new AlphaTranslation()); } } \ No newline at end of file diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/SwipeStateTouchListener.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/SwipeStateTouchListener.java index 16bea59..25d615b 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/SwipeStateTouchListener.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/SwipeStateTouchListener.java @@ -17,7 +17,7 @@ public SwipeStateTouchListener(SwipeableViewPager viewPager, SlidesAdapter adapt @Override public void process() { SlideFragment fragment = adapter.getItem(viewPager.getCurrentItem()); - if (fragment.canMoveFurther() == false || fragment.hasNeededPermissionsToGrant()) { + if (!fragment.canMoveFurther() || fragment.hasNeededPermissionsToGrant()) { viewPager.setAllowedSwipeDirection(SwipeableViewPager.SwipeDirection.left); } else { viewPager.setAllowedSwipeDirection(SwipeableViewPager.SwipeDirection.all); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java index 631637c..9213c06 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/scrollListeners/ParallaxScrollListener.java @@ -18,7 +18,7 @@ public ParallaxScrollListener(SlidesAdapter adapter) { @SuppressWarnings("ConstantConditions") @Override public void pageScrolled(int position, float offset) { - if (position != adapter.getCalculatedCount()) { + if (position != adapter.slidesCount()) { Fragment fragment = adapter.getItem(position); Fragment fragmentNext = getNextFragment(position); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFragment.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFragment.java index 5571fec..c1a0905 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFragment.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFragment.java @@ -19,12 +19,11 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { parallaxLayout = findParallaxLayout(view); } - @SuppressWarnings("PointlessBooleanExpression") public Parallaxable findParallaxLayout(View root) { Queue queue = new LinkedList<>(); queue.add(root); - while (queue.isEmpty() == false) { + while (!queue.isEmpty()) { View child = queue.remove(); if (child instanceof Parallaxable) { diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java index 0a5a442..2fb4f6d 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxFrameLayout.java @@ -11,8 +11,6 @@ import agency.tango.materialintroscreen.R; public class ParallaxFrameLayout extends FrameLayout implements Parallaxable { - @FloatRange(from = -1.0, to = 1.0) - private float offset = 0; public ParallaxFrameLayout(Context context) { super(context); @@ -48,7 +46,6 @@ protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { @Override public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) { - this.offset = offset; for (int i = getChildCount() - 1; i >= 0; i--) { View child = getChildAt(i); ParallaxFrameLayout.LayoutParams layoutParams = (LayoutParams) child.getLayoutParams(); @@ -61,26 +58,28 @@ public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) { public static class LayoutParams extends FrameLayout.LayoutParams { float parallaxFactor = 0f; - public LayoutParams(Context context, AttributeSet attributeSet) { + LayoutParams(Context context, AttributeSet attributeSet) { super(context, attributeSet); TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.ParallaxLayout_Layout); parallaxFactor = typedArray.getFloat(R.styleable.ParallaxLayout_Layout_layout_parallaxFactor, parallaxFactor); typedArray.recycle(); } - public LayoutParams(int width, int height) { + LayoutParams(int width, int height) { super(width, height); } - public LayoutParams(int width, int height, int gravity) { + @SuppressWarnings("unused") + LayoutParams(int width, int height, int gravity) { super(width, height, gravity); } - public LayoutParams(ViewGroup.LayoutParams source) { + LayoutParams(ViewGroup.LayoutParams source) { super(source); } - public LayoutParams(MarginLayoutParams source) { + @SuppressWarnings("unused") + LayoutParams(MarginLayoutParams source) { super(source); } } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java index 5da710b..3fa2743 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxLinearLayout.java @@ -11,8 +11,6 @@ import agency.tango.materialintroscreen.R; public class ParallaxLinearLayout extends LinearLayout implements Parallaxable { - @FloatRange(from = -1.0, to = 1.0) - private float offset = 0; public ParallaxLinearLayout(Context context) { super(context); @@ -48,7 +46,6 @@ protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { @Override public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) { - this.offset = offset; for (int i = getChildCount() - 1; i >= 0; i--) { View child = getChildAt(i); ParallaxLinearLayout.LayoutParams p = (LayoutParams) child.getLayoutParams(); @@ -61,26 +58,28 @@ public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) { public static class LayoutParams extends LinearLayout.LayoutParams { float parallaxFactor = 0f; - public LayoutParams(Context context, AttributeSet attributeSet) { + LayoutParams(Context context, AttributeSet attributeSet) { super(context, attributeSet); TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.ParallaxLayout_Layout); parallaxFactor = typedArray.getFloat(R.styleable.ParallaxLayout_Layout_layout_parallaxFactor, parallaxFactor); typedArray.recycle(); } - public LayoutParams(int width, int height) { + LayoutParams(int width, int height) { super(width, height); } - public LayoutParams(int width, int height, int gravity) { + @SuppressWarnings("unused") + LayoutParams(int width, int height, int gravity) { super(width, height, gravity); } - public LayoutParams(ViewGroup.LayoutParams source) { + LayoutParams(ViewGroup.LayoutParams source) { super(source); } - public LayoutParams(MarginLayoutParams source) { + @SuppressWarnings("unused") + LayoutParams(MarginLayoutParams source) { super(source); } } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java index 76a3cc1..1e524be 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/parallax/ParallaxRelativeLayout.java @@ -11,8 +11,6 @@ import agency.tango.materialintroscreen.R; public class ParallaxRelativeLayout extends RelativeLayout implements Parallaxable { - @FloatRange(from = -1.0, to = 1.0) - private float offset = 0; public ParallaxRelativeLayout(Context context) { super(context); @@ -48,7 +46,6 @@ protected LayoutParams generateLayoutParams(ViewGroup.LayoutParams p) { @Override public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) { - this.offset = offset; for (int i = getChildCount() - 1; i >= 0; i--) { View child = getChildAt(i); ParallaxRelativeLayout.LayoutParams p = (LayoutParams) child.getLayoutParams(); @@ -61,22 +58,23 @@ public void setOffset(@FloatRange(from = -1.0, to = 1.0) float offset) { public static class LayoutParams extends RelativeLayout.LayoutParams { float parallaxFactor = 0f; - public LayoutParams(Context context, AttributeSet attributeSet) { + LayoutParams(Context context, AttributeSet attributeSet) { super(context, attributeSet); TypedArray typedArray = context.obtainStyledAttributes(attributeSet, R.styleable.ParallaxLayout_Layout); parallaxFactor = typedArray.getFloat(R.styleable.ParallaxLayout_Layout_layout_parallaxFactor, parallaxFactor); typedArray.recycle(); } - public LayoutParams(int width, int height) { + LayoutParams(int width, int height) { super(width, height); } - public LayoutParams(ViewGroup.LayoutParams source) { + LayoutParams(ViewGroup.LayoutParams source) { super(source); } - public LayoutParams(MarginLayoutParams source) { + @SuppressWarnings("unused") + LayoutParams(MarginLayoutParams source) { super(source); } } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java index ee7a71f..4c4856e 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/widgets/InkPageIndicator.java @@ -118,7 +118,7 @@ public InkPageIndicator(Context context, AttributeSet attrs, int defStyle) { } private int getCount() { - return InkPageIndicator.this.viewPager.getAdapter().getCalculatedCount(); + return viewPager.getAdapter().slidesCount(); } public void setViewPager(final SwipeableViewPager viewPager) { @@ -445,7 +445,7 @@ private boolean isDotJoining(float joiningFraction) { private boolean isDotNotJoining(int page, float joiningFraction, float dotRevealFraction) { return (joiningFraction == 0f || joiningFraction == INVALID_FRACTION) && dotRevealFraction == 0f - && !(page == currentPage && selectedDotInPosition == true); + && !(page == currentPage && selectedDotInPosition); } private Path getRetreatingJoinPath() { @@ -527,9 +527,11 @@ public void onAnimationEnd(Animator animation) { } private void setJoiningFraction(int leftDot, float fraction) { - if (leftDot < joiningFractions.length) { - joiningFractions[leftDot] = fraction; - ViewCompat.postInvalidateOnAnimation(this); + if (joiningFractions != null) { + if (leftDot < joiningFractions.length) { + joiningFractions[leftDot] = fraction; + ViewCompat.postInvalidateOnAnimation(this); + } } }