Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

package com.gebauz.framework.util;

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

import android.content.Context;
import android.content.res.Resources;

public class ResourceManager
{
       
        private static ResourceManager mInstance = new ResourceManager();
       
        /** Stores the current context for access from anywhere. */
        private Context mCurrentContext = null;
       
        private List<Resource> mResources = new ArrayList<Resource>();
       
        private ResourceManager()
        {      
        }
       
        public void registerResource(Resource resource)
        {
                mResources.add(resource);
        }
       
        public void unregisterResource(Resource resource)
        {
                while (mResources.remove(resource))
                {
                        // do nothing
                }
        }
       
        /** Recreate resources that are lost when the context is recreated.
         *  Context renewal can happen when task-switching, for instance.
         */

        public void recreateResources() {
                Iterator<Resource> it = mResources.iterator();
        while(it.hasNext())
        {
                Resource res = it.next();
                res.recreate();        
        }
        }
       
        public static ResourceManager getInstance() { return mInstance; }
        public static Resources getResources() { return mInstance.mCurrentContext.getResources(); }
       
        public void setCurrentContext(Context context) { mCurrentContext = context; }
        public Context getCurrentContext() { return mCurrentContext; }
       
}