package jm.org.data.area;
import static jm.org.data.area.AreaConstants.*;
import static jm.org.data.area.AreaConstants.BING_RESULT_DATA;
import static jm.org.data.area.AreaConstants.BING_SEARCH;
import static jm.org.data.area.AreaConstants.BING_SEARCH_DATA;
import static jm.org.data.area.AreaConstants.CATEGORY_LIST;
import static jm.org.data.area.AreaConstants.COUNTRY_LIST;
import static jm.org.data.area.AreaConstants.COUNTRY_SEARCH_DATA;
import static jm.org.data.area.AreaConstants.IDS_PARAM_DATA;
import static jm.org.data.area.AreaConstants.IDS_RESULT_DATA;
import static jm.org.data.area.AreaConstants.IDS_SEARCH;
import static jm.org.data.area.AreaConstants.IDS_SEARCH_DATA;
import static jm.org.data.area.AreaConstants.INDICATOR_LIST;
import static jm.org.data.area.AreaConstants.IND_CATEGORIES_DATA;
import static jm.org.data.area.AreaConstants.PERIOD_LIST;
import static jm.org.data.area.AreaConstants.SEARCH_DATA;
import static jm.org.data.area.AreaConstants.WB_SEARCH_DATA;
import static jm.org.data.area.AreaConstants.WORLD_SEARCH;
import static jm.org.data.area.DBConstants.*;
import static jm.org.data.area.DBConstants.BING_SEARCH_RESULTS;
import static jm.org.data.area.DBConstants.BING_SEARCH_TABLE;
import static jm.org.data.area.DBConstants.COUNTRY;
import static jm.org.data.area.DBConstants.IDS_SEARCH_PARAMS;
import static jm.org.data.area.DBConstants.IDS_SEARCH_RESULTS;
import static jm.org.data.area.DBConstants.IDS_SEARCH_TABLE;
import static jm.org.data.area.DBConstants.INDICATOR;
import static jm.org.data.area.DBConstants.IND_CATEGORIES;
import static jm.org.data.area.DBConstants.PERIOD;
import static jm.org.data.area.DBConstants.SEARCH;
import static jm.org.data.area.DBConstants.SEARCH_COUNTRY;
import static jm.org.data.area.DBConstants.WB_CATEGORY;
import static jm.org.data.area.DBConstants.WB_DATA;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.preference.PreferenceManager;
import android.util.Log;
public class AreaApplication extends Application {
private String TAG = AreaActivity.class.getSimpleName();
public SharedPreferences prefs;
public AreaData areaData;
public APIPull netserv;
// public AreaService areaService;
private Cursor wbCursor;
private Cursor idsCursor;
private Cursor bingCursor;
// public boolean isServiceRunning = false;
public boolean isOnline = false;
public boolean initIsRunning = false;
private Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getBaseContext();
// doBindService();
String idsKey = getString(R.string.pref_idsKey);
String bingKey = getString(R.string.pref_bingKey);
Log.e(TAG, String.format("IDS: %s. Bing: %s", idsKey, bingKey));
prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
areaData = new AreaData(mContext);
netserv = new APIPull();
}
/*
* private ServiceConnection mConnection = new ServiceConnection() {
*
* @Override public void onServiceConnected(ComponentName name, IBinder
* binder) { areaService = ((AreaService.MyBinder) binder).getService();
* Log.e(TAG, "Connected to service"); }
*
* @Override public void onServiceDisconnected(ComponentName name) {
* areaService = null; }
*
* };
*
* void doBindService() { bindService(new Intent(mContext,
* AreaService.class), mConnection, Context.BIND_AUTO_CREATE); }
*/
public Cursor getSharedCursor(int apiCode) {
switch (apiCode) {
case WORLD_SEARCH:
return wbCursor;
case IDS_SEARCH:
return idsCursor;
case BING_SEARCH:
return bingCursor;
default:
return null;
}
}
public void setSharedCursor(int apiCode, Cursor cursor) {
switch (apiCode) {
case WORLD_SEARCH:
wbCursor = cursor;
case IDS_SEARCH:
idsCursor = cursor;
case BING_SEARCH:
bingCursor = cursor;
}
}
/**
* Checks if the device has Internet connection.
*
* @return <code>true</code> if the phone is connected to the Internet.
*/
public boolean checkNetworkConnection() {
final ConnectivityManager connMgr = (ConnectivityManager) mContext
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
// to fix the error getActivenetworkInfo is something null so it needs
// to be tested
// http://stackoverflow.com/questions/2753412/android-internet-connectivity-check-problem
if (connMgr.getActiveNetworkInfo() == null)
return false;
final boolean connected = (wifi != null && mobile != null
&& connMgr.getActiveNetworkInfo().isAvailable() && connMgr
.getActiveNetworkInfo().isConnected());
if (connected)
return true;
else
return false;
}
public static int getTableCode(String tableName) {
if (tableName.equals(INDICATOR))
return INDICATOR_LIST;
else if (tableName.equals(COUNTRY))
return COUNTRY_LIST;
else if (tableName.equals(WB_CATEGORY))
return CATEGORY_LIST;
else if (tableName.equals(SEARCH))
return SEARCH_DATA;
else if (tableName.equals(API))
return API_LIST;
else if (tableName.equals(PERIOD))
return PERIOD_LIST;
else if (tableName.equals(SEARCH_COUNTRY))
return COUNTRY_SEARCH_DATA;
else if (tableName.equals(WB_DATA))
return WB_SEARCH_DATA;
else if (tableName.equals(IDS_SEARCH_TABLE))
return IDS_SEARCH_DATA;
else if (tableName.equals(IDS_SEARCH_PARAMS))
return IDS_PARAM_DATA;
else if (tableName.equals(IDS_SEARCH_RESULTS))
return IDS_RESULT_DATA;
else if (tableName.equals(BING_SEARCH_TABLE))
return BING_SEARCH_DATA;
else if (tableName.equals(BING_SEARCH_RESULTS))
return BING_RESULT_DATA;
else if (tableName.equals(IND_CATEGORIES))
return IND_CATEGORIES_DATA;
else if (tableName.equals(AREA_SELECTIONS))
return SELECTIONS_DATA;
else if (tableName.equals(DATA_TYPES))
return DATA_TYPES_LIST;
else if (tableName.equals(CHARTS))
return CHART_DATA;
else if (tableName.equals(SAVED_DATA))
return GET_DATA;
else if (tableName.equals(COLLECTIONS))
return GET_COLLECTION;
else if (tableName.equals(COLL_DATA))
return GET_COLL_DATA;
return -1;
}
}