package com.marshalchen.common.demoofui.snackbar; import android.content.Intent; import android.graphics.Color; import android.graphics.Typeface; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.marshalchen.common.demoofui.R; import com.nispok.snackbar.Snackbar; import com.nispok.snackbar.SnackbarManager; import com.nispok.snackbar.enums.SnackbarType; import com.nispok.snackbar.listeners.ActionClickListener; import com.nispok.snackbar.listeners.ActionSwipeListener; import com.nispok.snackbar.listeners.EventListener; public class SnackbarSampleActivity extends ActionBarActivity { private static final String TAG = SnackbarSampleActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.snack_bar_activity_sample); Button singleLineButton = (Button) findViewById(R.id.single_line); singleLineButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("Single-line snackbar")); } }); Button singleLineWithActionButton = (Button) findViewById(R.id.single_line_with_action); singleLineWithActionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("Something has been done") .actionLabel("Undo") .swipeListener(new ActionSwipeListener() { @Override public void onSwipeToDismiss() { Toast.makeText(SnackbarSampleActivity.this, "swipe to dismiss", Toast.LENGTH_SHORT).show(); } }) .actionListener(new ActionClickListener() { @Override public void onActionClicked(Snackbar snackbar) { Toast.makeText(SnackbarSampleActivity.this, "Action undone", Toast.LENGTH_SHORT).show(); } })); } }); Button multiLineButton = (Button) findViewById(R.id.multi_line); multiLineButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .type(SnackbarType.MULTI_LINE) .text("This is a multi-line snackbar. Keep in mind that snackbars" + " are meant for VERY short messages")); } }); Button multiLineWithActionButton = (Button) findViewById(R.id.multi_line_with_action); multiLineWithActionButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .type(SnackbarType.MULTI_LINE) .text("This is a multi-line snackbar with an action button. Note " + "that multi-line snackbars are 2 lines max") .actionLabel("Action") .actionListener(new ActionClickListener() { @Override public void onActionClicked(Snackbar snackbar) { Toast.makeText(SnackbarSampleActivity.this, "Action clicked", Toast.LENGTH_SHORT).show(); } })); } }); Button noAnimationButton = (Button) findViewById(R.id.no_animation); noAnimationButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("No animation :(") .animation(false) .duration(2500l)); } }); Button eventListenerButton = (Button) findViewById(R.id.event_listener); eventListenerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("I'm showing a toast on exit") .eventListener(new EventListener() { @Override public void onShow(Snackbar snackbar) { Log.i(TAG, String.format( "Snackbar will show. Width: %d Height: %d Offset: %d", snackbar.getWidth(), snackbar.getHeight(), snackbar.getOffset())); } @Override public void onShowByReplace(Snackbar snackbar) { Log.i(TAG, String.format( "Snackbar will show by replace. Width: %d Height: %d Offset: %d", snackbar.getWidth(), snackbar.getHeight(), snackbar.getOffset())); } @Override public void onShown(Snackbar snackbar) { Log.i(TAG, String.format( "Snackbar shown. Width: %d Height: %d Offset: %d", snackbar.getWidth(), snackbar.getHeight(), snackbar.getOffset())); } @Override public void onDismiss(Snackbar snackbar) { Log.i(TAG, String.format( "Snackbar will dismiss. Width: %d Height: %d Offset: %d", snackbar.getWidth(), snackbar.getHeight(), snackbar.getOffset())); } @Override public void onDismissByReplace(Snackbar snackbar) { Log.i(TAG, String.format( "Snackbar will dismiss by replace. Width: %d Height: %d Offset: %d", snackbar.getWidth(), snackbar.getHeight(), snackbar.getOffset())); } @Override public void onDismissed(Snackbar snackbar) { Toast.makeText(SnackbarSampleActivity.this, String.format( "Snackbar dismissed. Width: %d Height: %d Offset: %d", snackbar.getWidth(), snackbar.getHeight(), snackbar.getOffset()), Toast.LENGTH_SHORT).show(); } })); } }); Button customColorsButton = (Button) findViewById(R.id.custom_colors); customColorsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("Different colors!!!") .textColor(Color.parseColor("#ff9d9d9c")) .color(Color.parseColor("#ff914300")) .actionLabel("Action") .actionColor(Color.parseColor("#ff5a2900")) .actionListener(new ActionClickListener() { @Override public void onActionClicked(Snackbar snackbar) { Log.i(TAG, "Action touched"); } }) .duration(Snackbar.SnackbarDuration.LENGTH_SHORT)); } }); Button unswipeableButton = (Button) findViewById(R.id.unswipeable); unswipeableButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("Try to swipe me off from the screen") .swipeToDismiss(false)); } }); Button indefiniteButton = (Button) findViewById(R.id.indefinite); indefiniteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .type(SnackbarType.MULTI_LINE) .duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE) .text("Indefinite duration, ideal for communicating errors")); } }); Button listSampleButton = (Button) findViewById(R.id.list_example); listSampleButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent sampleIntent = new Intent(SnackbarSampleActivity.this, SnackbarListViewSampleActivity.class); startActivity(sampleIntent); } }); Button recyclerSampleButton = (Button) findViewById(R.id.recycler_example); recyclerSampleButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent sampleIntent = new Intent(SnackbarSampleActivity.this, SnackbarRecyclerViewSampleActivity.class); startActivity(sampleIntent); } }); Button customTypefaceButton = (Button) findViewById(R.id.typeface_example); customTypefaceButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Roboto-LightItalic.ttf"); SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("Custom font!") .textTypeface(tf) .actionLabel("Cool") .actionLabelTypeface(tf)); } }); Button navigationBarTranslucentButton = (Button) findViewById(R.id.navigation_bar_translucent); navigationBarTranslucentButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(SnackbarNavigationBarTranslucentSampleActivity.isTranslucentSystemBarsCapable()) { Intent sampleIntent = new Intent(SnackbarSampleActivity.this, SnackbarNavigationBarTranslucentSampleActivity.class); startActivity(sampleIntent); } else { Toast.makeText(SnackbarSampleActivity.this, "Translucent System bars only available for KITKAT or newer", Toast.LENGTH_SHORT).show(); } } }); Button immersiveModeButton = (Button) findViewById(R.id.immersive_mode_example); immersiveModeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(SnackbarImmersiveModeSampleActivity.isImmersiveModeCapable()) { Intent sampleIntent = new Intent(SnackbarSampleActivity.this, SnackbarImmersiveModeSampleActivity.class); startActivity(sampleIntent); } else { Toast.makeText(SnackbarSampleActivity.this, "Immersive mode only available for KITKAT or newer", Toast.LENGTH_SHORT).show(); } } }); Button showInDialogButton = (Button) findViewById(R.id.show_in_dialog_example); showInDialogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent sampleIntent = new Intent(SnackbarSampleActivity.this, SnackbarShowInDialogSampleActivity.class); startActivity(sampleIntent); } }); Button singleLineMarginsButton = (Button) findViewById(R.id.single_line_margins); singleLineMarginsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .margin(25) .text("Single-line Margins")); } }); Button singleLineTopButton = (Button) findViewById(R.id.single_line_top); singleLineTopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this).position(Snackbar.SnackbarPosition.TOP) .text("Single-line Top")); } }); Button singleLineButtonInside = (Button) findViewById(R.id.single_line_inside); singleLineButtonInside.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .text("Single-line Inside RelativeLayout") , (android.view.ViewGroup) findViewById(R.id.view_relative_layout)); } }); Button singleLineTopButtonInside = (Button) findViewById(R.id.single_line_top_inside); singleLineTopButtonInside.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .position(Snackbar.SnackbarPosition.TOP) .margin(25, 15) .text("Single-line TOP Inside LinearLayout") , (android.view.ViewGroup) findViewById(R.id.view_linear_layout)); } }); Button singleLineButtonCustomShape = (Button) findViewById(R.id.single_line_shape); singleLineButtonCustomShape.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SnackbarManager.show( Snackbar.with(SnackbarSampleActivity.this) .position(Snackbar.SnackbarPosition.TOP) .margin(15, 15) .backgroundDrawable(R.drawable.snack_bar_custom_shape) .text("Single-line Custom Shape")); } }); } }