package com.roboo.like.google; import java.util.LinkedList; import java.util.List; import java.util.Locale; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.view.View; import android.view.inputmethod.InputMethodManager; import cn.jpush.android.api.JPushInterface; import com.roboo.like.google.commons.CrashException; import com.roboo.like.google.dao.impl.ImgUrlDaoImpl; import com.roboo.like.google.dao.impl.NewsTypeItemDaoImpl; import com.roboo.like.google.databases.DBHelper; import com.roboo.like.google.models.ImgUrl; import com.roboo.like.google.models.NewsTypeItem; public class BaseActivity extends FragmentActivity { public static final String PREF_FAST_SCROLL = "fast_scroll"; public static final String PREF_ONLY_ANDROID = "only_android"; public static final String PREF_EXACT_BUS = "exact_bus"; private static final String PREF_FIRST_INSERT_IMG_URL = "insert_img_url"; private static final String PREF_FIRST_INSERT_NEWS_TYPE = "insert_news_type"; protected SharedPreferences mPreferences; @Override protected void onCreate(Bundle savedInstanceState) { GoogleApplication application = (GoogleApplication) getApplication(); application.recordActivity(this); Thread.setDefaultUncaughtExceptionHandler(CrashException.getInstance(this)); mPreferences = getSharedPreferences(getPackageName(), Context.MODE_PRIVATE); super.onCreate(savedInstanceState); } protected void onResume() { super.onResume(); JPushInterface.onResume(this); LinkedList<NewsTypeItem> typeItems = NewsTypeItem.getNewsTypeItems(this); NewsTypeItemDaoImpl newsTypeItemDao = new NewsTypeItemDaoImpl(new DBHelper(this)); boolean update = (null == newsTypeItemDao.getNewsTypeItems() || (typeItems != null && newsTypeItemDao.getNewsTypeItems().size() != typeItems.size())); if (update || !mPreferences.contains(PREF_FIRST_INSERT_IMG_URL) || !mPreferences.getBoolean(PREF_FIRST_INSERT_IMG_URL, false)) { insertImgUrls(); } if (update || !mPreferences.contains(PREF_FIRST_INSERT_NEWS_TYPE) || !mPreferences.getBoolean(PREF_FIRST_INSERT_NEWS_TYPE, false)) { insertNewsType(newsTypeItemDao, typeItems); } GoogleApplication.mIsOnlyAndroid = mPreferences.getBoolean(PREF_ONLY_ANDROID, false); GoogleApplication.mIsExactBus = mPreferences.getBoolean(PREF_EXACT_BUS, false); } private void insertNewsType(NewsTypeItemDaoImpl newsTypeItemDao, LinkedList<NewsTypeItem> typeItems) { if (null != typeItems) { boolean returnFlag = newsTypeItemDao.insertNewsTypeItems(typeItems); returnFlag = true;//执行完成 mPreferences.edit().putBoolean(PREF_FIRST_INSERT_NEWS_TYPE, returnFlag).commit(); if (returnFlag) { System.out.println("插入 新闻类型 成功"); } else { System.out.println("插入 新闻类型 失败"); } } } private void insertImgUrls() { LinkedList<ImgUrl> imgUrls = ImgUrl.getImgUrls(this); if (null != imgUrls) { ImgUrlDaoImpl imgUrlDao = new ImgUrlDaoImpl(new DBHelper(this)); boolean returnFlag = imgUrlDao.insertImgUrls(imgUrls); returnFlag = true;//执行完成 mPreferences.edit().putBoolean(PREF_FIRST_INSERT_IMG_URL, returnFlag).commit(); if (returnFlag) { System.out.println("插入图片Base URL 成功"); } else { System.out.println("插入图片Base URL 失败"); } } } protected void onPause() { super.onPause(); JPushInterface.onPause(this); } public boolean isImg(String str) { ImgUrlDaoImpl imgUrlDao = new ImgUrlDaoImpl(new DBHelper(this)); List<String> imgList = imgUrlDao.getImgUrls(); boolean flag = false; for (String string : imgList) { if (str.startsWith(string)) { flag = true; break; } else if (str.toLowerCase(Locale.getDefault()).endsWith(".png") || str.toLowerCase(Locale.getDefault()).endsWith(".jpg") ||str.toLowerCase(Locale.getDefault()).endsWith(".jpeg") || str.toLowerCase(Locale.getDefault()).endsWith("gif")) { flag = true; break; } } return flag; } public SharedPreferences getSharedPreferences() { return mPreferences; } public void hideKeyBoard(View view) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive(view)) { imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } } public FragmentTransaction beginTransaction() { int enter = R.anim.base_slide_right_in; int exit = R.anim.base_slide_right_out; int popEnter = R.anim.base_slide_right_in; int popExit = R.anim.base_slide_right_out; enter = exit = popEnter = popExit = 0; return getSupportFragmentManager().beginTransaction().setCustomAnimations(enter, exit, popEnter, popExit); } }