package com.youshibi.app; import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebSettings; import android.webkit.WebView; import com.youshibi.app.data.bean.Book; import com.youshibi.app.data.db.table.BookTb; import com.youshibi.app.pref.AppConfig; import com.youshibi.app.presentation.AboutActivity; import com.youshibi.app.presentation.CrashActivity; import com.youshibi.app.presentation.book.BookCatalogActivity; import com.youshibi.app.presentation.book.BookDetailActivity; import com.youshibi.app.presentation.main.MainActivity; import com.youshibi.app.presentation.read.ReadActivity; import com.youshibi.app.presentation.search.SearchActivity; import com.youshibi.app.presentation.search.SearchResultActivity; import com.youshibi.app.util.CountEventHelper; import com.youshibi.app.util.DensityUtil; import com.youshibi.app.util.ToastUtil; import com.zchu.log.Logger; /** * 作者: 赵成柱 on 2016/7/13. * app路由,界面跳转帮助类,所有的界面跳转通过此类进行跳转,包括组件交互 */ public class AppRouter { /** * 获取全局加载dialog */ public static Dialog getLoadingDialog(Context context) { Dialog dialog = new Dialog(context, R.style.AlertDialogStyle); View view = LayoutInflater.from(context).inflate(R.layout.dialog_loading, null); dialog.setContentView(view, new ViewGroup.LayoutParams(DensityUtil.dp2px(context, 96), DensityUtil.dp2px(context, 96))); return dialog; } public static void showAppMarket(Context context) { try { String mAddress = "market://details?id=" + context.getPackageName(); Intent marketIntent = new Intent("android.intent.action.VIEW"); marketIntent.setData(Uri.parse(mAddress)); context.startActivity(marketIntent); } catch (Exception e) { Logger.e(e); ToastUtil.showToast("亲,您未安装任何应用商店,无法评论。"); } } /** * 跳转到当前应用设置界面 */ public static void showAppDetailSetting(Context context) { Intent localIntent = new Intent(); localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (Build.VERSION.SDK_INT >= 9) { localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); localIntent.setData(Uri.fromParts("package", context.getPackageName(), null)); } else if (Build.VERSION.SDK_INT <= 8) { localIntent.setAction(Intent.ACTION_VIEW); localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); localIntent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName()); } context.startActivity(localIntent); } /** * @param webView */ @SuppressLint("SetJavaScriptEnabled") public static void initWebViewSettings(WebView webView) { WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); webSettings.setDefaultFontSize(15); //设置缓存 webSettings.setDomStorageEnabled(true); webSettings.setDatabaseEnabled(true); webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); webSettings.setAppCacheEnabled(true); webSettings.setAllowFileAccess(true); webSettings.setAppCachePath(AppConfig.WEB_CACHE_PATH); } public static void showMainActivity(Context context) { Intent intent = new Intent(context, MainActivity.class); context.startActivity(intent); } /** * 显示崩溃提示 */ public static void showCrashActivity(Context context, String message, final String errorInfo) { context.startActivity(CrashActivity.newIntent(context, message, errorInfo)); } public static void showBookDetailActivity(Context context, Book book) { context.startActivity(BookDetailActivity.newIntent(context, book)); CountEventHelper.countBookDetail(context, book); } public static void showReadActivity(Context context, Book book, Integer sectionIndex, String sectionId) { context.startActivity(ReadActivity.newIntent(context, book, sectionIndex, sectionId)); CountEventHelper.countBookRead(context, book.getId(), book.getName()); } public static void showReadActivity(Context context, BookTb bookTb) { context.startActivity(ReadActivity.newIntent(context, bookTb)); CountEventHelper.countBookRead(context, bookTb.getId(), bookTb.getName()); } public static void showSearchActivity(Context context) { showSearchActivity(context, null); } public static void showSearchActivity(Context context, String keyword) { context.startActivity(SearchActivity.newIntent(context, keyword)); } public static void showSearchResultActivity(Context context, String keyword) { context.startActivity(SearchResultActivity.newIntent(context, keyword)); CountEventHelper.countBookSearch(context, keyword); } public static void showBookCatalogActivity(Context context, Book book, int sectionCount) { context.startActivity(BookCatalogActivity.newIntent(context, book, sectionCount)); } public static void showAboutActivity(Context context) { context.startActivity(new Intent(context, AboutActivity.class)); } }