package cl.monsoon.s1next.view.internal; import android.support.annotation.DrawableRes; import android.support.annotation.StringRes; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.view.LayoutInflater; import android.view.View; import android.widget.Toast; import com.google.common.base.Optional; import cl.monsoon.s1next.App; import cl.monsoon.s1next.R; public final class CoordinatorLayoutAnchorDelegateImpl implements CoordinatorLayoutAnchorDelegate { private final App mApp; private final CoordinatorLayout mCoordinatorLayout; public CoordinatorLayoutAnchorDelegateImpl(CoordinatorLayout coordinatorLayout) { this.mCoordinatorLayout = coordinatorLayout; mApp = (App) coordinatorLayout.getContext().getApplicationContext(); } @Override public void setupFloatingActionButton(@DrawableRes int resId, View.OnClickListener onClickListener) { FloatingActionButton floatingActionButton = (FloatingActionButton) LayoutInflater.from( mCoordinatorLayout.getContext()).inflate(R.layout.floating_action_button, mCoordinatorLayout, false); mCoordinatorLayout.addView(floatingActionButton); floatingActionButton.setOnClickListener(onClickListener); floatingActionButton.setImageResource(resId); } @Override public Optional<Snackbar> showShortText(CharSequence text) { if (mApp.isAppVisible()) { return showShortSnackbar(text); } else { Toast.makeText(mCoordinatorLayout.getContext().getApplicationContext(), text, Toast.LENGTH_SHORT).show(); return Optional.absent(); } } @Override public Optional<Snackbar> showShortSnackbar(@StringRes int resId) { return showShortSnackbar(mCoordinatorLayout.getResources().getText(resId)); } @Override public Optional<Snackbar> showShortSnackbar(CharSequence text) { Snackbar snackbar = Snackbar.make(mCoordinatorLayout, text, Snackbar.LENGTH_SHORT); snackbar.show(); return Optional.of(snackbar); } @Override public Optional<Snackbar> showLongSnackbarIfVisible(CharSequence text, @StringRes int actionResId, View.OnClickListener onClickListener) { if (mApp.isAppVisible()) { Snackbar snackbar = Snackbar.make(mCoordinatorLayout, text, Snackbar.LENGTH_LONG); snackbar.setAction(actionResId, onClickListener); snackbar.show(); return Optional.of(snackbar); } return Optional.absent(); } @Override public void dismissSnackbarIfExist() { throw new UnsupportedOperationException(); } }