package com.ywwxhz;
import android.app.Application;
import android.content.Context;
import android.os.Environment;
import com.balysv.materialripple.MaterialRippleLayout;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.ywwxhz.cnbetareader.BuildConfig;
import com.ywwxhz.cnbetareader.R;
import com.ywwxhz.crash.CustomActivityOnCrash;
import com.ywwxhz.lib.Emoticons;
import com.ywwxhz.lib.database.DbUtils;
import com.ywwxhz.lib.kits.FileCacheKit;
import com.ywwxhz.lib.kits.PrefKit;
import java.io.File;
/**
* Created by ywwxhz on 2014/11/1.
*/
public class MyApplication extends Application {
private static MyApplication instance;
private Boolean debug;
private boolean listImageShowStatusChange;
public DbUtils getDbUtils() {
return mDbUtils;
}
private DbUtils mDbUtils;
public static DisplayImageOptions options = new DisplayImageOptions.Builder().cacheOnDisk(true).build();
@Override
public void onCreate() {
instance = this;
debug = PrefKit.getBoolean(this, R.string.pref_debug_key, false);
FileCacheKit.getInstance(this);
CustomActivityOnCrash.install(this);
initImageLoader(getApplicationContext());
Emoticons.init(this);
mDbUtils = DbUtils.create(this);
MaterialRippleLayout.setEnableRipple(PrefKit.getBoolean(this, R.string.pref_enable_ripple_key, true));
}
public void initImageLoader(Context context) {
// This configuration tuning is custom. You can tune every option, you may tune some of them,
// or you can create default configuration by
// ImageLoaderConfiguration.createDefault(this);
// method.
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.diskCacheSize(50 * 1024 * 1024) // 50 Mb
.tasksProcessingOrder(QueueProcessingType.LIFO);
if (debug) {
builder.writeDebugLogs();
}
ImageLoaderConfiguration config = builder.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
}
public static MyApplication getInstance() {
return instance;
}
public boolean getDebug() {
return debug;
}
@Override
public File getCacheDir() {
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
return getExternalCacheDir();
} else {
return super.getCacheDir();
}
}
public File getInternalCacheDir() {
return super.getCacheDir();
}
public static DisplayImageOptions getDefaultDisplayOption() {
return options;
}
public boolean isListImageShowStatusChange() {
return listImageShowStatusChange;
}
public void setListImageShowStatusChange(boolean listImageShowStatusChange) {
this.listImageShowStatusChange = listImageShowStatusChange;
}
public String getUpdateUrl() {
return "http://ywwxhz.byethost31.com/projects/cnBetaPlus/api/update-" +
PrefKit.getString(this, R.string.pref_release_channel_key, BuildConfig.BUILD_TYPE) + ".php?ckattempt=1";
}
}