/* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.gallery3d.app; import com.android.gallery3d.data.DataManager; import com.android.gallery3d.data.DownloadCache; import com.android.gallery3d.data.ImageCacheService; import com.android.gallery3d.gadget.WidgetUtils; import com.android.gallery3d.picasasource.PicasaSource; import com.android.gallery3d.util.GalleryUtils; import com.android.gallery3d.util.ThreadPool; import android.app.Application; import android.content.Context; import java.io.File; public class GalleryAppImpl extends Application implements GalleryApp { private static final String DOWNLOAD_FOLDER = "download"; private static final long DOWNLOAD_CAPACITY = 64 * 1024 * 1024; // 64M private ImageCacheService mImageCacheService; private DataManager mDataManager; private ThreadPool mThreadPool; private DownloadCache mDownloadCache; @Override public void onCreate() { super.onCreate(); GalleryUtils.initialize(this); WidgetUtils.initialize(this); PicasaSource.initialize(this); } public Context getAndroidContext() { return this; } public synchronized DataManager getDataManager() { if (mDataManager == null) { mDataManager = new DataManager(this); mDataManager.initializeSourceMap(); } return mDataManager; } public synchronized ImageCacheService getImageCacheService() { if (mImageCacheService == null) { mImageCacheService = new ImageCacheService(getAndroidContext()); } return mImageCacheService; } public synchronized ThreadPool getThreadPool() { if (mThreadPool == null) { mThreadPool = new ThreadPool(); } return mThreadPool; } public synchronized DownloadCache getDownloadCache() { if (mDownloadCache == null) { File cacheDir = new File(getExternalCacheDir(), DOWNLOAD_FOLDER); if (!cacheDir.isDirectory()) cacheDir.mkdirs(); if (!cacheDir.isDirectory()) { throw new RuntimeException( "fail to create: " + cacheDir.getAbsolutePath()); } mDownloadCache = new DownloadCache(this, cacheDir, DOWNLOAD_CAPACITY); } return mDownloadCache; } }