package jm.org.data.area;
import static jm.org.data.area.AreaConstants.BING_SEARCH;
import static jm.org.data.area.AreaConstants.COUNTRY_ARTICLES;
import static jm.org.data.area.AreaConstants.COUNTRY_REPORTS;
import static jm.org.data.area.AreaConstants.SEARCH_SUCCESS;
import android.content.Context;
import android.database.Cursor;
import android.util.Log;
public class SearchListAdapter extends SimpleCursorLoader {
private final String TAG = getClass().getSimpleName();
private int searchType;
private Context mContext;
private String indicatorID;
private String[] country;
public SearchListAdapter(Context context) {
super(context);
mContext = context;
}
public SearchListAdapter(Context context, int sType, String indID,
String[] ctry) {
super(context);
Log.e(TAG, "Creating SearchListAdapter.");
searchType = sType;
mContext = context;
indicatorID = indID;
country = ctry;
}
@Override
public Cursor loadInBackground() {
area = (AreaApplication) mContext.getApplicationContext();
Cursor results;
// int searchType = IDS_SEARCH;
// indicatorID = "AG.PRD.CROP.XD";
// country = new String[] { "Jamaica", "Barbados" };
try {
Log.e(TAG, "Calling Generic Search:" + searchType);
if(searchType == COUNTRY_REPORTS ){
if (area.areaData.genericSearch(COUNTRY_REPORTS, indicatorID, country) >= SEARCH_SUCCESS) {
//Also update country data
area.areaData.getProfileIndicators(indicatorID);
// return report data
results = area.areaData.getData(searchType, indicatorID,
country);
Log.d(TAG,
"Returning data. Num of records: " + results.getCount());
return results;
}else{
Log.d(TAG, "Error Retrieving Data");
}
}else if (searchType == COUNTRY_ARTICLES){ // getting saved data so skip search
results = area.areaData.getData(searchType, indicatorID, null);
Log.d(TAG, "Returning Saved Data");
return results;
}else if (searchType > BING_SEARCH){ // getting saved data so skip search
results = area.areaData.getData(searchType, indicatorID, null);
Log.d(TAG, "Returning Saved Data");
return results;
}else if (area.areaData.genericSearch(searchType, indicatorID, country) >= SEARCH_SUCCESS) {
results = area.areaData.getData(searchType, indicatorID,
country);
Log.d(TAG,
"Returning data. Num of records: " + results.getCount());
return results;
}else{
Log.d(TAG, "Error Retrieving Data");
}
} catch (IllegalStateException ilEc) {
Log.e(TAG,
"Database list loading returned Database Lock exception on "
+ searchType + " query");
// db.close();
// return rawQuery(tableName, tableColumns,queryParams);
}
Log.d(TAG, "Returning zero");
return null;
}
}