package com.joanfuentes.hintcaseexample; import android.app.Activity; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.transcode.BitmapToGlideDrawableTranscoder; import com.joanfuentes.hintcase.HintCase; import com.joanfuentes.hintcase.RectangularShape; import com.joanfuentes.hintcase.ShapeAnimator; import com.joanfuentes.hintcaseassets.contentholderanimators.FadeInContentHolderAnimator; import com.joanfuentes.hintcaseassets.contentholderanimators.FadeOutContentHolderAnimator; import com.joanfuentes.hintcaseassets.contentholderanimators.SlideInFromRightContentHolderAnimator; import com.joanfuentes.hintcaseassets.contentholderanimators.SlideOutFromRightContentHolderAnimator; import com.joanfuentes.hintcaseassets.hintcontentholders.SimpleHintContentHolder; import com.joanfuentes.hintcaseassets.shapeanimators.FadeInShapeAnimator; import com.joanfuentes.hintcaseassets.shapeanimators.FadeOutShapeAnimator; import com.joanfuentes.hintcaseassets.shapeanimators.RevealCircleShapeAnimator; import com.joanfuentes.hintcaseassets.shapeanimators.RevealRectangularShapeAnimator; import com.joanfuentes.hintcaseassets.shapeanimators.UnrevealCircleShapeAnimator; import com.joanfuentes.hintcaseassets.shapeanimators.UnrevealRectangularShapeAnimator; import com.joanfuentes.hintcaseassets.shapes.CircularShape; public class FullHintActivity extends AppCompatActivity { private static final View NO_VIEW_AS_TARGET = null; public Activity getActivity() { return this; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_full_hint); configureToolbar(); setViews(); } private void configureToolbar() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { toolbar.setTitle("Hintcase - Full Screen"); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } private void setViews() { Button buttonExample1 = (Button) findViewById(R.id.button_example_1); if(buttonExample1 != null) { buttonExample1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView animatedImageView = getGifLoadedUsingGlide(); SimpleHintContentHolder blockInfo = getSimpleHintContentHolder(view, animatedImageView); new HintCase(view.getRootView()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setShapeAnimators(new FadeInShapeAnimator(), new FadeOutShapeAnimator()) .setHintBlock(blockInfo) .show(); } }); } Button buttonExample2 = (Button) findViewById(R.id.button_example_2); if(buttonExample2 != null) { buttonExample2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView animatedImageView = getGifLoadedUsingGlide(); SimpleHintContentHolder blockInfo = getSimpleHintContentHolder(view, animatedImageView); new HintCase(view.getRootView()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setTarget(NO_VIEW_AS_TARGET, new CircularShape()) .setShapeAnimators(new RevealCircleShapeAnimator(), new UnrevealCircleShapeAnimator()) .setHintBlock(blockInfo) .show(); } }); } Button buttonExample3 = (Button) findViewById(R.id.button_example_3); if(buttonExample3 != null) { buttonExample3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView animatedImageView = getGifLoadedUsingGlide(); SimpleHintContentHolder blockInfo = getSimpleHintContentHolder(view, animatedImageView); new HintCase(view.getRootView()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setTarget(NO_VIEW_AS_TARGET, new RectangularShape()) .setShapeAnimators(new RevealRectangularShapeAnimator(), new UnrevealRectangularShapeAnimator()) .setHintBlock(blockInfo) .show(); } }); } Button buttonExample4 = (Button) findViewById(R.id.button_example_4); if(buttonExample4 != null) { buttonExample4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView animatedImageView = getGifLoadedUsingGlide(); SimpleHintContentHolder blockInfo = getSimpleHintContentHolder(view, animatedImageView); new HintCase(view.getRootView()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setShapeAnimators(new FadeInShapeAnimator(), new FadeOutShapeAnimator()) .setHintBlock(blockInfo, new FadeInContentHolderAnimator(), new FadeOutContentHolderAnimator()) .show(); } }); } Button buttonExample5 = (Button) findViewById(R.id.button_example_5); if(buttonExample5 != null) { buttonExample5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView animatedImageView = getGifLoadedUsingGlide(); SimpleHintContentHolder blockInfo = getSimpleHintContentHolder(view, animatedImageView); new HintCase(view.getRootView()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setTarget(NO_VIEW_AS_TARGET, new CircularShape()) .setShapeAnimators(new RevealCircleShapeAnimator(), new UnrevealCircleShapeAnimator()) .setHintBlock(blockInfo, new FadeInContentHolderAnimator(), new FadeOutContentHolderAnimator()) .show(); } }); } Button buttonExample6 = (Button) findViewById(R.id.button_example_6); if(buttonExample6 != null) { buttonExample6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ImageView animatedImageView = getGifLoadedUsingGlide(); SimpleHintContentHolder blockInfo = getSimpleHintContentHolder(view, animatedImageView); new HintCase(view.getRootView()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setTarget(NO_VIEW_AS_TARGET, new CircularShape()) .setShapeAnimators(new RevealCircleShapeAnimator(), new UnrevealCircleShapeAnimator()) .setHintBlock(blockInfo, new SlideInFromRightContentHolderAnimator(), new SlideOutFromRightContentHolderAnimator()) .show(); } }); } Button buttonExample7 = (Button) findViewById(R.id.button_example_7); if(buttonExample7 != null) { buttonExample7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View view) { launchFirstHint(view); } }); } } private void launchFirstHint(final View view) { SimpleHintContentHolder blockInfo = new SimpleHintContentHolder.Builder(view.getContext()) .setContentTitle("Attention!") .setContentText("This is your first advice. Please, be careful") .setTitleStyle(R.style.title) .setContentStyle(R.style.content) .build(); new HintCase(view.getRootView()) .setTarget(findViewById(R.id.textView), new CircularShape(), HintCase.TARGET_IS_NOT_CLICKABLE) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setShapeAnimators(new RevealCircleShapeAnimator(), ShapeAnimator.NO_ANIMATOR) .setHintBlock(blockInfo, new FadeInContentHolderAnimator(), new SlideOutFromRightContentHolderAnimator()) .setOnClosedListener(new HintCase.OnClosedListener() { @Override public void onClosed() { launchSecondHint(view); } }) .show(); } private void launchSecondHint(View view) { SimpleHintContentHolder blockInfo = new SimpleHintContentHolder.Builder(view.getContext()) .setContentTitle("Attention again!") .setContentText("Are you really reading these messages?") .setTitleStyle(R.style.title) .setContentStyle(R.style.content) .build(); new HintCase(view.getRootView()) .setTarget(findViewById(R.id.textView), new CircularShape()) .setBackgroundColor(getResources().getColor(R.color.colorPrimary)) .setShapeAnimators(ShapeAnimator.NO_ANIMATOR, new UnrevealCircleShapeAnimator()) .setHintBlock(blockInfo, new SlideInFromRightContentHolderAnimator()) .show(); } @NonNull private ImageView getGifLoadedUsingGlide() { ImageView animatedImageView = new ImageView(getActivity()); animatedImageView.setMaxHeight(900); Glide.with(getActivity()) .load(R.drawable.animated_image) .diskCacheStrategy(DiskCacheStrategy.SOURCE) .thumbnail(Glide.with(getActivity()) .load(R.drawable.animated_image) .asBitmap() .transcode(new BitmapToGlideDrawableTranscoder(getActivity()), GlideDrawable.class) .diskCacheStrategy(DiskCacheStrategy.ALL) ) .into(animatedImageView); return animatedImageView; } private SimpleHintContentHolder getSimpleHintContentHolder(View view, ImageView animatedImageView) { return new SimpleHintContentHolder.Builder(view.getContext()) .setContentTitle("The truth behind the veil") .setContentText("True story") .setImageView(animatedImageView) .setTitleStyle(R.style.title) .setContentStyle(R.style.content) .setMarginByResourcesId(R.dimen.activity_horizontal_margin, R.dimen.activity_vertical_margin, R.dimen.activity_horizontal_margin, R.dimen.activity_vertical_margin) .build(); } }