diff --git a/README.md b/README.md index c422cdd..d36ae12 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Material intro screen is inspired by [Material Intro] and developed with love fr - [Easily add new slides][Intro Activity] - [Custom slides][Custom Slide] - [Parallax slides][Parallax Slide] - - Easy extensible api + - Easy and extensible api - Android TV support! - Material design at it's best!!! @@ -55,12 +55,13 @@ public class IntroActivity extends MaterialIntroActivity .title("title 3") .description("Description 3") .build(), - new MessageButtonBehaviour(new View.OnClickListener() { - @Override - public void onClick(View v) { - showMessage("We provide solutions to make you love your work"); - } - }, "Work with love")); + new MessageButtonBehaviour(new MessageButtonClickListener() { + @Override + public void onClick(Button messageButton) { + messageButton.setText("Click me once again!"); + showMessage("We provide solutions to make you love your work"); + } + }, "Work with love")); } ``` #### Explanation of SlideFragment usage: diff --git a/app/src/main/java/agency/tango/materialintro/IntroActivity.java b/app/src/main/java/agency/tango/materialintro/IntroActivity.java index 13fc35c..435490c 100644 --- a/app/src/main/java/agency/tango/materialintro/IntroActivity.java +++ b/app/src/main/java/agency/tango/materialintro/IntroActivity.java @@ -5,12 +5,14 @@ import android.support.annotation.FloatRange; import android.support.annotation.Nullable; import android.view.View; +import android.widget.Button; import android.widget.Toast; import agency.tango.materialintroscreen.MaterialIntroActivity; import agency.tango.materialintroscreen.behaviours.MessageButtonBehaviour; import agency.tango.materialintroscreen.animations.IViewTranslation; import agency.tango.materialintroscreen.fragments.SlideFragmentBuilder; +import agency.tango.materialintroscreen.listeners.click.MessageButtonClickListener; public class IntroActivity extends MaterialIntroActivity { @@ -24,7 +26,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { .setEnterTranslation(new IViewTranslation() { @Override public void translate(View view, - @FloatRange(from = 0, to = 1.0) float percentage) { + @FloatRange(from = 0, to = 1.0) float percentage) { view.setAlpha(percentage); } }); @@ -36,9 +38,10 @@ public void translate(View view, .title("Organize your time with us") .description("Would you try?") .build(), - new MessageButtonBehaviour(new View.OnClickListener() { + new MessageButtonBehaviour(new MessageButtonClickListener() { @Override - public void onClick(View v) { + public void onClick(Button messageButton) { + messageButton.setText("Click me once again!"); showMessage("We provide solutions to make you love your work"); } }, "Work with love")); @@ -66,9 +69,9 @@ public void onClick(View v) { .title("We provide best tools") .description("ever") .build(), - new MessageButtonBehaviour(new View.OnClickListener() { + new MessageButtonBehaviour(new MessageButtonClickListener() { @Override - public void onClick(View v) { + public void onClick(Button messageButton) { showMessage("Try us!"); } }, "Tools")); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/behaviours/MessageButtonBehaviour.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/behaviours/MessageButtonBehaviour.java index 4260544..204d680 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/behaviours/MessageButtonBehaviour.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/behaviours/MessageButtonBehaviour.java @@ -1,14 +1,14 @@ package agency.tango.materialintroscreen.behaviours; -import android.view.View; +import agency.tango.materialintroscreen.listeners.click.MessageButtonClickListener; @SuppressWarnings("unused") public class MessageButtonBehaviour { - private View.OnClickListener clickListener; + private MessageButtonClickListener clickListener; private String messageButtonText; - public MessageButtonBehaviour(View.OnClickListener clickListener, String messageButtonText) { + public MessageButtonBehaviour(MessageButtonClickListener clickListener, String messageButtonText) { this.clickListener = clickListener; this.messageButtonText = messageButtonText; } @@ -17,7 +17,7 @@ public MessageButtonBehaviour(String messageButtonText) { this.messageButtonText = messageButtonText; } - public View.OnClickListener getClickListener() { + public MessageButtonClickListener getClickListener() { return clickListener; } diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java index 6d29401..3b92155 100644 --- a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/MessageButtonBehaviourOnPageSelected.java @@ -26,7 +26,7 @@ public MessageButtonBehaviourOnPageSelected(Button messageButton, SlidesAdapter } @Override - public void pageSelected(int position) { + public void pageSelected(final int position) { final SlideFragmentBase slideFragment = adapter.getItem(position); if (slideFragment.hasAnyPermissionsToGrant()) { @@ -43,7 +43,12 @@ public void onClick(View view) { showMessageButton(slideFragment); messageButton.setText(messageButtonBehaviours.get(position).getMessageButtonText()); messageButton - .setOnClickListener(messageButtonBehaviours.get(position).getClickListener()); + .setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + messageButtonBehaviours.get(position).getClickListener().onClick(messageButton); + } + }); } else if (messageButton.getVisibility() != View.INVISIBLE) { messageButton.startAnimation( AnimationUtils.loadAnimation(slideFragment.getContext(), R.anim.mis_fade_out)); diff --git a/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/click/MessageButtonClickListener.java b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/click/MessageButtonClickListener.java new file mode 100644 index 0000000..31623f7 --- /dev/null +++ b/material-intro-screen/src/main/java/agency/tango/materialintroscreen/listeners/click/MessageButtonClickListener.java @@ -0,0 +1,7 @@ +package agency.tango.materialintroscreen.listeners.click; + +import android.widget.Button; + +public interface MessageButtonClickListener { + void onClick(Button messageButton); +} \ No newline at end of file