package com.mortarnav.view; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.content.Context; import android.view.View; import android.widget.TextView; import com.mortarnav.R; import com.mortarnav.ToolbarOwner; import com.mortarnav.presenter.HomePresenter; import com.mortarnav.stackable.HomeStackable; import javax.inject.Inject; import architect.commons.view.PresentedScrollView; import architect.robot.DaggerService; import architect.view.HandlesViewTransition; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import timber.log.Timber; /** * @author Lukasz Piliszczuk - lukasz.pili@gmail.com */ public class HomeView extends PresentedScrollView<HomePresenter> implements HandlesViewTransition { @Inject protected ToolbarOwner toolbarOwner; @Bind(R.id.home_title) public TextView titleTextView; @Bind(R.id.home_subtitle) public TextView subtitleTextView; public HomeView(Context context) { super(context); DaggerService.<HomeStackable.Component>get(context).inject(this); View view = View.inflate(context, R.layout.home_view, this); ButterKnife.bind(view); } @OnClick(R.id.next_home_button) void nextHomeClick() { presenter.nextHomeClick(); } @OnClick(R.id.pager_button) void pagerClick() { presenter.pagerClick(); } @OnClick(R.id.subnav_button) void subnavClick() { presenter.subnavClick(); } @OnClick(R.id.show_popup) void showPopupClick() { presenter.showPopupClick(); } @OnClick(R.id.replace_new_home) void replaceNewHomeClick() { presenter.replaceNewHomeClick(); } @OnClick(R.id.show_returns_result) void showReturnsResultClick() { presenter.showReturnsResultClick(); } @OnClick(R.id.back_root) void backRootClick() { presenter.backToRootClick(); } @OnClick(R.id.home_show_popup_two) void showPopupTwoClick() { presenter.showPopupTwoClick(); } @OnClick(R.id.home_show_two_popups) void showTwoPopupsClick() { presenter.showTwoPopupsClick(); } @OnClick(R.id.home_set_new_stack) void setNewStackClick() { presenter.setNewStackClick(); } @Override public void onViewTransition(AnimatorSet set) { if (set != null) { set.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { toolbarOwner.show(); } @Override public void onAnimationEnd(Animator animation) { toolbarOwner.setTitle("Hello Home!"); } }); Animator animator = toolbarOwner.animateShow(); Timber.d("Animate show: %s", animator); if (animator != null) { set.play(animator); } } else { toolbarOwner.show(); toolbarOwner.setTitle("Hello Home!"); } } }