package com.loopeer.codereader; import android.app.DownloadManager; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.text.Html; import android.widget.Toast; import com.loopeer.codereader.coreader.db.CoReaderDbHelper; import com.loopeer.codereader.model.Repo; import com.loopeer.codereader.sync.DownloadRepoService; import com.loopeer.codereader.ui.activity.AboutActivity; import com.loopeer.codereader.ui.activity.AddRepoActivity; import com.loopeer.codereader.ui.activity.CodeReadActivity; import com.loopeer.codereader.ui.activity.MainActivity; import com.loopeer.codereader.ui.activity.SearchActivity; import com.loopeer.codereader.ui.activity.SettingActivity; import com.loopeer.codereader.ui.activity.SimpleWebActivity; public class Navigator { public final static String EXTRA_REPO = "extra_repo"; public final static String EXTRA_ID = "extra_id"; public final static String EXTRA_DOWNLOAD_SERVICE_TYPE = "extra_download_service_type"; public final static String EXTRA_DIRETORY_ROOT = "extra_diretory_root"; public final static String EXTRA_DIRETORY_ROOT_NODE_INSTANCE = "extra_diretory_root_node_instance"; public final static String EXTRA_DIRETORY_SELECTING = "extra_diretory_selecting"; public final static String EXTRA_WEB_URL = "extra_web_url"; public final static String EXTRA_HTML_STRING = "extra_html_string"; public static void startMainActivity(Context context) { Intent intent = new Intent(context, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); } public static void startCodeReadActivity(Context context, Repo repo) { Intent intent = new Intent(context, CodeReadActivity.class); intent.putExtra(EXTRA_REPO, repo); context.startActivity(intent); } public static void startWebActivity(Context context, String url) { Intent intent = new Intent(context, SimpleWebActivity.class); intent.putExtra(EXTRA_WEB_URL, url); context.startActivity(intent); } public static void startAboutActivity(Context context) { Intent intent = new Intent(context, AboutActivity.class); context.startActivity(intent); } public static void startComposeEmail(Context context, String[] addresses, String subject, String content) { Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:")); intent.putExtra(Intent.EXTRA_SUBJECT, subject); intent.putExtra(Intent.EXTRA_EMAIL, addresses); intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(content)); if (intent.resolveActivity(context.getPackageManager()) != null) { context.startActivity(intent); } else { Toast.makeText(context, R.string.about_email_app_not_have, Toast.LENGTH_SHORT).show(); } } public static void startDownloadNewRepoService(Context context, Repo repo) { Repo sameRepo = CoReaderDbHelper.getInstance(context).readSameRepo(repo); long repoId; if (sameRepo != null) { repoId = Long.parseLong(sameRepo.id); } else { repoId = CoReaderDbHelper.getInstance(context).insertRepo(repo); } repo.id = String.valueOf(repoId); Navigator.startDownloadRepoService(context, repo); } public static void startDownloadRepoService(Context context, Repo repo) { Intent intent = new Intent(context, DownloadRepoService.class); intent.putExtra(EXTRA_REPO, repo); intent.putExtra(EXTRA_DOWNLOAD_SERVICE_TYPE, DownloadRepoService.DOWNLOAD_REPO); context.startService(intent); } public static void startDownloadRepoService(Context context, int type) { Intent intent = new Intent(context, DownloadRepoService.class); intent.putExtra(EXTRA_DOWNLOAD_SERVICE_TYPE, type); context.startService(intent); } public static void startDownloadRepoServiceRemove(Context context, long downloadId) { Intent intent = new Intent(context, DownloadRepoService.class); intent.putExtra(EXTRA_DOWNLOAD_SERVICE_TYPE, DownloadRepoService.DOWNLOAD_REMOVE_DOWNLOAD); intent.putExtra(DownloadManager.EXTRA_DOWNLOAD_ID, downloadId); context.startService(intent); } public static void startSearchActivity(Context context) { Intent intent = new Intent(context, SearchActivity.class); context.startActivity(intent); } public static void startAddRepoActivity(Context context) { Intent intent = new Intent(context, AddRepoActivity.class); context.startActivity(intent); } public static void startSettingActivity(Context context) { Intent intent = new Intent(context, SettingActivity.class); context.startActivity(intent); } public static void startOutWebActivity(Context context, String url) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri content_url = Uri.parse(url); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(content_url); context.startActivity(intent); } }