package com.ved.musicmapapp.applications; import java.io.File; import android.annotation.SuppressLint; import android.app.Application; import android.content.Context; import android.graphics.Bitmap.CompressFormat; import android.graphics.Point; import android.os.Build; import android.os.Environment; import android.view.Display; import android.view.WindowManager; import com.facebook.Session; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator; import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache; 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.nostra13.universalimageloader.core.download.BaseImageDownloader; import com.nostra13.universalimageloader.utils.StorageUtils; public class MusicMapApplication extends Application { private Session session; public static int SCREEN_WIDTH = 0; public static int SCREEN_HEIGHT = 0; /** * @return the session */ public Session getSession() { return session; } /** * @param session * the session to set */ public void setSession(Session session) { this.session = session; } @SuppressWarnings("deprecation") @SuppressLint("NewApi") @Override public void onCreate() { super.onCreate(); try { new File(Environment.getExternalStorageDirectory(), "tmp.log") .delete(); } catch (Exception e) { } WindowManager windowManager = (WindowManager) getApplicationContext() .getSystemService(Context.WINDOW_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { Point size = new Point(); windowManager.getDefaultDisplay().getSize(size); SCREEN_WIDTH = size.x; SCREEN_HEIGHT = size.y; } else { Display d = windowManager.getDefaultDisplay(); SCREEN_WIDTH = d.getWidth(); SCREEN_HEIGHT = d.getHeight(); } File cacheDir = StorageUtils.getCacheDirectory(getApplicationContext()); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( getApplicationContext()) .memoryCacheExtraOptions(SCREEN_WIDTH, SCREEN_HEIGHT) .discCacheExtraOptions(SCREEN_WIDTH * 2, SCREEN_HEIGHT * 2, CompressFormat.JPEG, 100, null) .threadPoolSize(3) .threadPriority(Thread.NORM_PRIORITY - 1) .denyCacheImageMultipleSizesInMemory() .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) .memoryCacheSize(2 * 1024 * 1024) .discCache(new UnlimitedDiscCache(cacheDir)) .discCacheSize(100 * 1024 * 1024) .discCacheFileCount(1000) .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) .imageDownloader( new BaseImageDownloader(getApplicationContext())) // default .tasksProcessingOrder(QueueProcessingType.FIFO) // default .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default .writeDebugLogs().build(); // Initialize ImageLoader with configuration. ImageLoader.getInstance().init(config); } @Override public void onLowMemory() { ImageLoader.getInstance().clearMemoryCache(); super.onLowMemory(); } }