tw.org.tsos.bsrs.MyVolley.java Source code

Java tutorial

Introduction

Here is the source code for tw.org.tsos.bsrs.MyVolley.java

Source

/**
 * Copyright 2013 Ognyan Bankov
 *
 * 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 tw.org.tsos.bsrs;

import android.app.ActivityManager;
import android.content.Context;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

import org.apache.http.impl.client.DefaultHttpClient;

import java.net.CookieManager;

import tw.org.tsos.bsrs.util.BitmapLruCache;

/**
 * Helper class that is used to provide references to initialized RequestQueue(s) and ImageLoader(s)
 *
 * @author Ognyan Bankov
 */
@SuppressWarnings("UnusedDeclaration")
public class MyVolley {

    private static RequestQueue mRequestQueue;
    private static ImageLoader mImageLoader;
    @SuppressWarnings("UnusedDeclaration")
    private static CookieManager client;
    private static DefaultHttpClient mClient;

    private MyVolley() {
        // no instances
    }

    public static DefaultHttpClient getClient() {
        return mClient;
    }

    static void init(Context context) {
        mClient = new DefaultHttpClient();
        mRequestQueue = Volley.newRequestQueue(context/*,new HttpClientStack(mClient)*/);

        int memClass = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
        // Use 1/8th of the available memory for this memory cache.
        int cacheSize = 1024 * 1024 * memClass / 8;
        mImageLoader = new ImageLoader(mRequestQueue, new BitmapLruCache(cacheSize));
    }

    public static RequestQueue getRequestQueue() {
        if (mRequestQueue != null) {
            return mRequestQueue;
        } else {
            throw new IllegalStateException("RequestQueue not initialized");
        }
    }

    /**
     * Returns instance of ImageLoader initialized with {@see FakeImageCache} which effectively means
     * that no memory caching is used. This is useful for images that you know that will be show
     * only once.
     *
     * @return
     */
    @SuppressWarnings("JavaDoc")
    public static ImageLoader getImageLoader() {
        if (mImageLoader != null) {
            return mImageLoader;
        } else {
            throw new IllegalStateException("ImageLoader not initialized");
        }
    }

}