Skip to content

Instantly share code, notes, and snippets.

@blundell
Last active December 26, 2015 07:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save blundell/7116358 to your computer and use it in GitHub Desktop.
Save blundell/7116358 to your computer and use it in GitHub Desktop.
Navigator Pattern - not really copy and paste-able. Packages intents for re-use nicely. Helps testing? Redundant now we can use espresso?
public class Navigator {
private final ImplicitNavigator implicitNavigator;
private final ExplicitNavigator explicitNavigator;
private final AccountNavigator accountNavigator;
public Navigator(Activity activity, TescoLoginFacade tescoLoginFacade) {
implicitNavigator = new ImplicitNavigator(activity);
explicitNavigator = new ExplicitNavigator(activity);
accountNavigator = new AccountNavigator(activity, tescoLoginFacade);
}
public void toDebugActivity() {
explicitNavigator.toDebugActivity();
}
public void toShopping() {
toShoppingActivity().now();
}
public ExplicitNavigatorWithExtras toShoppingActivity() {
return explicitNavigator.toShopping();
}
public void toMyLists() {
explicitNavigator.toMyLists();
}
public void toMyOrders() {
explicitNavigator.toMyOrders();
}
public void toBookASlot() {
explicitNavigator.toBookingActivity();
}
public void toBasketActivity() {
explicitNavigator.toBasketActivity();
}
public void toAboutActivity() {
explicitNavigator.toAboutActivity();
}
public void toTermsAndConditions() {
explicitNavigator.toTermsAndConditions();
}
public void toLicences() {
explicitNavigator.toLicences();
}
public void toCheckout() {
explicitNavigator.toCheckout();
}
public ExplicitNavigatorWithExtras toProductsByOfferActivity() {
return explicitNavigator.toOffers();
}
public ExplicitNavigatorWithExtras toShoppingSelectionActivity() {
return explicitNavigator.toShoppingSelection();
}
public void toFeedbackEmail(String customerId) {
implicitNavigator.toFeedbackEmail(customerId);
}
public void toAppMarketListing() {
implicitNavigator.toAppMarketListing();
}
public void toTescoOnAppMarket() {
implicitNavigator.toTescoOnAppMarket();
}
public void toExternalWebsite(String contactUrl) {
implicitNavigator.toExternalWebsite(contactUrl);
}
public void toBrowseRecipes() {
implicitNavigator.toBrowseRecipes();
}
public void toRecipeDetails(ContentId contentId) {
explicitNavigator.toRecipeDetails(contentId);
}
public void signIn() {
accountNavigator.signIn();
}
public void signIn(String message) {
accountNavigator.signIn(message);
}
public void register() {
accountNavigator.register();
}
public void signOut() {
accountNavigator.signOut();
}
public void toJustChecking() {
explicitNavigator.toJustChecking();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment