/*
* Copyright (c) 2015 Daimler AG / Moovel GmbH
*
* All rights reserved
*/
package com.car2go.maps.osm;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import com.car2go.maps.model.BitmapDescriptor;
/**
* Creates instances of {@link BitmapDescriptor}
*/
public class BitmapDescriptorFactory implements com.car2go.maps.BitmapDescriptorFactory {
@SuppressLint("StaticFieldLeak")
private static Context context;
@SuppressLint("StaticFieldLeak")
private static final BitmapDescriptorFactory instance = new BitmapDescriptorFactory();
private BitmapDescriptorFactory() {
}
public static BitmapDescriptorFactory getInstance() {
return instance;
}
static void initialize(Context context) {
BitmapDescriptorFactory.context = context.getApplicationContext();
}
@Override
public BitmapDescriptor fromBitmap(Bitmap bitmap) {
ensureInitialized();
return new OsmBitmapDescriptor(bitmap);
}
@Override
public BitmapDescriptor fromResource(int resourceId) {
ensureInitialized();
return new OsmBitmapDescriptor(
BitmapFactory.decodeResource(context.getResources(), resourceId)
);
}
private static void ensureInitialized() {
if (context == null) {
throw new IllegalStateException("Not initialized. Did you forgot to initialize MapsConfiguration?");
}
}
}