package com.mortarnav.presenter; import android.os.Bundle; import com.mortarnav.presenter.stackable.MyPopup2Stackable; import com.mortarnav.presenter.stackable.MyPopupStackable; import com.mortarnav.presenter.stackable.ReturnsResultStackable; import com.mortarnav.presenter.stackable.SlidesStackable; import com.mortarnav.presenter.stackable.SubnavStackable; import com.mortarnav.stackable.HomeStackable; import com.mortarnav.view.HomeView; import java.util.Random; import architect.NavigationChain; import architect.NavigationStack; import architect.Navigator; import architect.ReceivesResult; import architect.ViewTransitionDirection; import mortar.ViewPresenter; import timber.log.Timber; /** * @author Lukasz Piliszczuk - lukasz.pili@gmail.com */ public class HomePresenter extends ViewPresenter<HomeView> implements ReceivesResult<String> { private static int count = 0; private final String name; private final int random; public HomePresenter(String name) { this.name = name; random = new Random().nextInt(100); } @Override protected void onLoad(Bundle savedInstanceState) { getView().titleTextView.setText(name); int r = savedInstanceState != null ? savedInstanceState.getInt("random") : random; getView().subtitleTextView.setText("Random number: " + r); } @Override protected void onSave(Bundle outState) { outState.putInt("random", random); } @Override public void onReceivedResult(String result) { Timber.d("Receive result: %s", result); // beware that this is called before onLoad() and getView() returns null here } public void nextHomeClick() { Navigator.get(getView()).push(new HomeStackable("Home " + ++count)); } public void subnavClick() { // Navigator.get(getView()).chain(new NavigationChain().back().back()); Navigator.get(getView()).push(new SubnavStackable()); } public void customViewClick() { Timber.d("Click from custom view"); } public void pagerClick() { Navigator.get(getView()).push(new SlidesStackable()); } public void showPopupClick() { Navigator.get(getView()).show(new MyPopupStackable()); } public void replaceNewHomeClick() { Navigator.get(getView()).replace(new HomeStackable("Replaced!")); } public void showReturnsResultClick() { Navigator.get(getView()).push(new ReturnsResultStackable()); } public void backToRootClick() { Navigator.get(getView()).backToRoot("Result test back to root"); // Navigator.get(getView()).chain(new NavigationChain() // .backToRoot() // .replace(new HomeStackable("REPLACED STACKABLE " + new Random().nextInt(10000)))); } public void showTwoPopupsClick() { Navigator.get(getView()).show(new MyPopup2Stackable(), new MyPopupStackable()); } public void showPopupTwoClick() { Navigator.get(getView()).show(new MyPopup2Stackable()); } public void setNewStackClick() { Navigator.get(getView()).set(new NavigationStack() .put(new HomeStackable("NEW STACK 1")) .put(new HomeStackable("NEW STACK 2")) .put(new SlidesStackable()), ViewTransitionDirection.FORWARD); } }