package org.droidplanner.android.data;
import android.content.Context;
import android.text.TextUtils;
import org.droidplanner.android.maps.providers.google_map.tiles.offline.db.OfflineDatabaseHandler;
import java.util.Locale;
import java.util.concurrent.ConcurrentHashMap;
/**
* Created by Fredia Huya-Kouadio on 5/13/15.
*/
public class DatabaseState {
private static final ConcurrentHashMap<String, OfflineDatabaseHandler> databaseHandlers = new ConcurrentHashMap<>();
public static OfflineDatabaseHandler getOfflineDatabaseHandlerForMapId(Context context, String dbName) {
final String lowerMapId = dbName.toLowerCase(Locale.US);
OfflineDatabaseHandler dbh = databaseHandlers.get(lowerMapId);
if(dbh == null){
dbh = new OfflineDatabaseHandler(context, lowerMapId);
databaseHandlers.put(lowerMapId, dbh);
}
return dbh;
}
public static void deleteDatabase(Context context, String dbName){
if(context == null || TextUtils.isEmpty(dbName))
return;
final String lowerMapId = dbName.toLowerCase(Locale.US);
OfflineDatabaseHandler dbHandler = databaseHandlers.remove(lowerMapId);
if(dbHandler != null)
dbHandler.close();
context.deleteDatabase(lowerMapId);
}
}