package zenproject.meditation.android.ui.menu.dialogs; import android.app.FragmentManager; import com.novoda.notils.caster.Classes; import zenproject.meditation.android.ContextRetriever; import zenproject.meditation.android.SketchRetriever; import zenproject.meditation.android.analytics.AnalyticsTracker; import zenproject.meditation.android.ui.menu.dialogs.brush.BrushOptionsDialog; import zenproject.meditation.android.ui.menu.dialogs.flower.FlowerOptionsDialog; import zenproject.meditation.android.ui.menu.dialogs.flower.FlowerSelectedListener; public class Navigator { private final FragmentManager fragmentManager; private final BrushOptionsDialog brushOptionsDialog; private final FlowerOptionsDialog flowerOptionsDialog; protected Navigator(FragmentManager fragmentManager, BrushOptionsDialog brushOptionsDialog, FlowerOptionsDialog flowerOptionsDialog) { this.fragmentManager = fragmentManager; this.brushOptionsDialog = brushOptionsDialog; this.flowerOptionsDialog = flowerOptionsDialog; } public static Navigator newInstance() { FragmentManager fragmentManager = ContextRetriever.INSTANCE.getActivity().getFragmentManager(); BrushOptionsDialog brushOptionsDialog = new BrushOptionsDialog(); FlowerOptionsDialog flowerOptionsDialog = new FlowerOptionsDialog(); FlowerSelectedListener flowerSelectedListener = Classes.from(SketchRetriever.INSTANCE.getZenSketch()); flowerOptionsDialog.setFlowerSelectedListener(flowerSelectedListener); return new Navigator(fragmentManager, brushOptionsDialog, flowerOptionsDialog); } public void openBrushSelectionDialog() { if (!brushOptionsDialog.isAdded()) { brushOptionsDialog.show(fragmentManager, BrushOptionsDialog.TAG); AnalyticsTracker.INSTANCE.trackDialogOpened(BrushOptionsDialog.TAG); } } public void openFlowerSelectionDialog() { if (!flowerOptionsDialog.isAdded()) { flowerOptionsDialog.show(fragmentManager, FlowerOptionsDialog.TAG); AnalyticsTracker.INSTANCE.trackDialogOpened(FlowerOptionsDialog.TAG); } } }