package com.hannesdorfmann.mosby3.sample.mail; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import com.hannesdorfmann.mosby3.sample.mail.details.DetailsActivity; import com.hannesdorfmann.mosby3.sample.mail.login.LoginActivity; import com.hannesdorfmann.mosby3.sample.mail.model.contact.Person; import com.hannesdorfmann.mosby3.sample.mail.model.mail.Label; import com.hannesdorfmann.mosby3.sample.mail.model.mail.Mail; import com.hannesdorfmann.mosby3.sample.mail.model.mail.service.SendMailService; import com.hannesdorfmann.mosby3.sample.mail.profile.ProfileActivity; import com.hannesdorfmann.mosby3.sample.mail.search.SearchActivity; import com.hannesdorfmann.mosby3.sample.mail.write.WriteActivity; /** * A simple helper class that helps to create and launch Intents. It checks if we our device is a * phone or a tablet app. * * @author Hannes Dorfmann */ // TODO make it injectable with dagger public class IntentStarter { private boolean isTablet(Context context) { return context.getResources().getBoolean(R.bool.tablet); } public void showMailDetails(Context context, Mail mail, Bundle activityTransitionBundle) { Intent i = null; if (isTablet(context)) { i = new Intent(context, MainActivity.class); i.putExtra(MainActivity.KEY_SHOW_ACTION, MainActivity.KEY_SHOW_ACTION_MAIL_DETAILS); i.putExtra(MainActivity.KEY_DATA_MAIL_DETAILS, mail); } else { i = getShowMailInNewActivityIntent(context, mail); } context.startActivity(i, activityTransitionBundle); } public Intent getShowMailInNewActivityIntent(Context context, Mail mail) { Intent i = new Intent(context, DetailsActivity.class); i.putExtra(DetailsActivity.KEY_MAIL, mail); return i; } public void showMailsOfLabel(Context context, Label label) { Intent i = new Intent(context, MainActivity.class); i.putExtra(MainActivity.KEY_SHOW_ACTION, MainActivity.KEY_SHOW_ACTION_MAILS_OF_LABEL); i.putExtra(MainActivity.KEY_DATA_MAILS_OF_LABEL, label); context.startActivity(i); } public void showWriteMail(Context context, Mail replayTo, Bundle activityTransitionBundle) { Intent i = new Intent(context, WriteActivity.class); if (replayTo != null) { i.putExtra(WriteActivity.KEY_REPLAY_MAIL, replayTo); } context.startActivity(i, activityTransitionBundle); } public void showAuthentication(Context context) { context.startActivity(new Intent(context, LoginActivity.class)); } public void sendMailViaService(Context context, Mail mail) { Intent i = new Intent(context, SendMailService.class); i.putExtra(SendMailService.KEY_MAIL, mail); context.startService(i); } public void showSearch(Activity context) { Intent i = new Intent(context, SearchActivity.class); context.startActivity(i); context.overridePendingTransition(R.anim.fade_in, R.anim.fade_out); } public void showProfile(Context context, Person person) { Intent i = new Intent(context, ProfileActivity.class); i.putExtra(ProfileActivity.KEY_PERSON, person); context.startActivity(i); } }