package com.joanfuentes.hintcaseexample; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.RelativeLayout; import com.joanfuentes.hintcase.HintCase; 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.extracontentholders.SimpleButtonContentHolder; import com.joanfuentes.hintcaseexample.customBlock.CustomHintContentHolder; public class CustomHintActivity extends AppCompatActivity { public Activity getActivity() { return this; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom_hint); configureToolbar(); setViews(); } private void configureToolbar() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); if (toolbar != null) { toolbar.setTitle("Hintcase - Custom hints"); 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 buttonUp = (Button) findViewById(R.id.button_up); if(buttonUp != null) { buttonUp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showHint(view); } }); } Button buttonDown = (Button) findViewById(R.id.button_down); if(buttonDown != null) { buttonDown.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showHint(view); } }); } Button buttonRight = (Button) findViewById(R.id.button_right); if(buttonRight != null) { buttonRight.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showHint(view); } }); } Button buttonLeft = (Button) findViewById(R.id.button_left); if(buttonLeft != null) { buttonLeft.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showHint(view); } }); } } private void showHint(final View view) { SimpleButtonContentHolder okBlock = new SimpleButtonContentHolder.Builder(view.getContext()) .setWidth(ViewGroup.LayoutParams.WRAP_CONTENT) .setHeight(ViewGroup.LayoutParams.WRAP_CONTENT) .setRules(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.ALIGN_PARENT_RIGHT) .setButtonText("OK") .setCloseHintCaseOnClick(true) .setButtonStyle(R.style.buttonNice) .build(); CustomHintContentHolder blockInfo = new CustomHintContentHolder.Builder(view.getContext()) .setContentTitle("Custom Hint Content Holder!") .setContentText("This hint was done with a custom hint content holder and it only can be closed clicking over the blue OK button") .setBorder(R.dimen.bubble_border, android.R.color.holo_blue_dark) .setArrowSize(R.dimen.arrow_width, R.dimen.arrow_height) .setBackgroundColor(Color.WHITE) .setTitleStyle(R.style.title) .setMargingByResourcesId(R.dimen.activity_vertical_margin, R.dimen.activity_horizontal_margin, R.dimen.activity_vertical_margin, R.dimen.activity_horizontal_margin) .setContentPaddingByResourcesId(R.dimen.small_margin, R.dimen.small_margin, R.dimen.small_margin, R.dimen.small_margin) .setContentStyle(R.style.content_dark) .build(); new HintCase(getActivity().getWindow().getDecorView()) .setTarget(view, R.dimen.zero_margin) .setBackgroundColor(0x00000000) .setHintBlock(blockInfo, new FadeInContentHolderAnimator(), new FadeOutContentHolderAnimator()) .setExtraBlock(okBlock, new SlideInFromRightContentHolderAnimator(), new SlideOutFromRightContentHolderAnimator()) .setCloseOnTouchView(false) .show(); } }