package com.commonsensenet.realfarm.dataaccess;
import java.util.Calendar;
import java.util.Date;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.telephony.TelephonyManager;
import android.util.Log;
import com.commonsensenet.realfarm.R;
import com.commonsensenet.realfarm.model.Model;
/**
* Class to manage database, i.e., input, remove and read data.
*
* @author Julien Freudiger
* @author Hendrik Knoche
* @author Oscar BolaƱos <@oscarbolanos>
* @author Lisa Nguyen
*
*/
public class RealFarmDatabase {
/**
* Class to facilitate creation of database. The database is created only if
* needed.
*
* @author Julien Freudiger
*/
private class RealFarmDatabaseOpenHelper extends SQLiteOpenHelper {
/**
* Creates a new RealFarmDatabaseOpenHandler instance.
*
* @param context
* application context to be used.
*/
public RealFarmDatabaseOpenHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
/**
* Create the database with the table name and column names
*
* @param SQLiteDatabase
* to create
* @throws SQLException
*/
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(LOG_TAG, "Try to fill up database with tables");
db.execSQL("create table "
+ TABLE_NAME_ACTION
+ " ( "
+ COLUMN_NAME_ACTION_ID
+ " integer, "
+ COLUMN_NAME_ACTION_ACTIONTYPEID
+ " integer, "
+ COLUMN_NAME_ACTION_PLOTID
+ " integer, "
+ COLUMN_NAME_ACTION_DATE
+ " text not null, "
+ COLUMN_NAME_ACTION_SEEDTYPEID
+ " integer, "
+ COLUMN_NAME_ACTION_CROPTYPEID
+ " integer, "
+ COLUMN_NAME_ACTION_QUANTITY1
+ " real, "
+ COLUMN_NAME_ACTION_QUANTITY2
+ " real, "
+ COLUMN_NAME_ACTION_UNIT1ID
+ " integer, "
+ COLUMN_NAME_ACTION_UNIT2ID
+ " integer, "
+ COLUMN_NAME_ACTION_RESOURCE1ID
+ " integer, "
+ COLUMN_NAME_ACTION_RESOURCE2ID
+ " integer, "
+ COLUMN_NAME_ACTION_PRICE
+ " integer, "
+ COLUMN_NAME_ACTION_USERID
+ " integer not null, "
+ COLUMN_NAME_ACTION_SENDSTATUS
+ " integer, "
+ COLUMN_NAME_ACTION_ISADMINACTION
+ " boolean, "
+ COLUMN_NAME_ACTION_TIMESTAMP
+ " integer not null, "
+ references(COLUMN_NAME_ACTION_ACTIONTYPEID,
TABLE_NAME_ACTIONTYPE, COLUMN_NAME_ACTIONTYPE_ID)
+ references(COLUMN_NAME_ACTION_SEEDTYPEID,
TABLE_NAME_SEEDTYPE, COLUMN_NAME_SEEDTYPE_ID)
+ references(COLUMN_NAME_ACTION_CROPTYPEID,
TABLE_NAME_CROPTYPE, COLUMN_NAME_CROPTYPE_ID)
+ references(COLUMN_NAME_ACTION_UNIT1ID, TABLE_NAME_UNIT,
COLUMN_NAME_UNIT_ID)
+ references(COLUMN_NAME_ACTION_UNIT2ID, TABLE_NAME_UNIT,
COLUMN_NAME_UNIT_ID)
+ references(COLUMN_NAME_ACTION_RESOURCE1ID,
TABLE_NAME_RESOURCE, COLUMN_NAME_RESOURCE_ID)
+ references(COLUMN_NAME_ACTION_RESOURCE2ID,
TABLE_NAME_RESOURCE, COLUMN_NAME_RESOURCE_ID)
// + references(COLUMN_NAME_ACTION_USERID, TABLE_NAME_USER,
// COLUMN_NAME_USER_ID)
//
// + references(COLUMN_NAME_ACTION_PLOTID + ", "
// + COLUMN_NAME_ACTION_USERID, TABLE_NAME_PLOT,
// COLUMN_NAME_PLOT_ID + ", "
// + COLUMN_NAME_PLOT_USERID)
+ "PRIMARY KEY (" + COLUMN_NAME_ACTION_ID + ", "
+ COLUMN_NAME_ACTION_USERID + ")" + " ); ");
Log.d(LOG_TAG, "Created action table");
// actionsNames
db.execSQL("create table " + TABLE_NAME_ACTIONTYPE + " ( "
+ COLUMN_NAME_ACTIONTYPE_ID + " integer primary key, "
+ COLUMN_NAME_ACTIONTYPE_NAME + " text not null, "
+ COLUMN_NAME_ACTIONTYPE_IMAGE + " integer, "
+ COLUMN_NAME_ACTIONTYPE_AUDIO + " integer" + " ); ");
Log.d(LOG_TAG, "Created actiontype table");
// advice topics
db.execSQL("create table " + TABLE_NAME_ADVICE + " ( "
+ COLUMN_NAME_ADVICE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_ADVICE_PROBLEMTYPEID + " integer, "
+ COLUMN_NAME_ADVICE_SEEDTYPEID + " integer, "
+ COLUMN_NAME_ADVICE_AUDIOSEQUENCE + " text, "
+ COLUMN_NAME_ADVICE_STAGENUMBER + " integer" + " ); ");
Log.d(LOG_TAG, "Created advice table");
// advice pieces
db.execSQL("create table " + TABLE_NAME_ADVICEPIECE + " ( "
+ COLUMN_NAME_ADVICEPIECE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_ADVICEPIECE_AUDIO + " integer, "
+ COLUMN_NAME_ADVICEPIECE_COMMENT + " text, "
+ COLUMN_NAME_ADVICEPIECE_ADVICEID + " integer, "
+ COLUMN_NAME_ADVICEPIECE_SUGGESTEDACTIONID + " integer, "
+ COLUMN_NAME_ADVICEPIECE_SUGGESTEDRESOURCEID
+ " integer, " + COLUMN_NAME_ADVICEPIECE_ORDERNUMBER
+ " integer" + " ); ");
Log.d(LOG_TAG, "Created advice table");
// cropTypes
db.execSQL("create table " + TABLE_NAME_CROPTYPE + " ( "
+ COLUMN_NAME_CROPTYPE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_CROPTYPE_NAME + " text not null, "
+ COLUMN_NAME_CROPTYPE_SHORTNAME + " text, "
+ COLUMN_NAME_CROPTYPE_IMAGE + " integer, "
+ COLUMN_NAME_CROPTYPE_BACKGROUNDIMAGE + " integer, "
+ COLUMN_NAME_CROPTYPE_AUDIO + " integer" + " ); ");
Log.d(LOG_TAG, "Created crop type table");
// Market price
db.execSQL("create table " + TABLE_NAME_MARKETPRICE + " ( "
+ COLUMN_NAME_MARKETPRICE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_MARKETPRICE_MIN + " integer, "
+ COLUMN_NAME_MARKETPRICE_MAX + " integer, "
+ COLUMN_NAME_MARKETPRICE_DATE + " text, "
+ COLUMN_NAME_MARKETPRICE_TYPE + " text" + " ); ");
Log.d(LOG_TAG, "Created market price table");
// plots
db.execSQL("create table "
+ TABLE_NAME_PLOT
+ " ( "
+ COLUMN_NAME_PLOT_ID
+ " integer, "
+ COLUMN_NAME_PLOT_USERID
+ " integer not null, "
+ COLUMN_NAME_PLOT_SEEDTYPEID
+ " integer, "
+ COLUMN_NAME_PLOT_SOILTYPEID
+ " integer, "
+ COLUMN_NAME_PLOT_IMAGEPATH
+ " text, "
+ COLUMN_NAME_PLOT_SIZE
+ " real, "
+ COLUMN_NAME_PLOT_SENDSTATUS
+ " integer, "
+ COLUMN_NAME_PLOT_ISENABLED
+ " boolean, "
+ COLUMN_NAME_PLOT_ISADMINACTION
+ " boolean, "
+ COLUMN_NAME_PLOT_TIMESTAMP
+ " integer not null, "
+ COLUMN_NAME_PLOT_TYPE
+ " integer, "
// + references(COLUMN_NAME_PLOT_USERID, TABLE_NAME_USER,
// COLUMN_NAME_USER_ID)
+ references(COLUMN_NAME_PLOT_SEEDTYPEID,
TABLE_NAME_SEEDTYPE, COLUMN_NAME_SEEDTYPE_ID)
+ references(COLUMN_NAME_PLOT_SOILTYPEID,
TABLE_NAME_SOILTYPE, COLUMN_NAME_SOILTYPE_ID)
+ references(COLUMN_NAME_PLOT_TYPE, TABLE_NAME_RESOURCE,
COLUMN_NAME_RESOURCE_ID) + "PRIMARY KEY ("
+ COLUMN_NAME_PLOT_ID + ", " + COLUMN_NAME_PLOT_USERID
+ ")" + " ); ");
Log.d(LOG_TAG, "Created plot table");
// recommendation
db.execSQL("create table " + TABLE_NAME_RECOMMENDATION + " ( "
+ COLUMN_NAME_RECOMMENDATION_ID + " integer primary key, "
+ COLUMN_NAME_RECOMMENDATION_PLOTID + " integer, "
+ COLUMN_NAME_RECOMMENDATION_ADVICEID + " integer, "
+ COLUMN_NAME_RECOMMENDATION_USERID + " integer, "
+ COLUMN_NAME_RECOMMENDATION_DATACOLLECTIONDATE + " text,"
+ COLUMN_NAME_RECOMMENDATION_ACTIONREQUIREDBYDATE
+ " text, " + COLUMN_NAME_RECOMMENDATION_VALIDTHROUGHDATE
+ " text, " + COLUMN_NAME_RECOMMENDATION_SEVERITY
+ " integer, " + COLUMN_NAME_RECOMMENDATION_PROBABILITY
+ " integer, " + COLUMN_NAME_RECOMMENDATION_ISUNREAD
+ " boolean, " + COLUMN_NAME_RECOMMENDATION_TIMESTAMP
+ " integer not null " + " ); ");
Log.d(LOG_TAG, "Created recommendation table");
// resource
db.execSQL("create table " + TABLE_NAME_RESOURCE + " ( "
+ COLUMN_NAME_RESOURCE_ID + " integer primary key, "
+ COLUMN_NAME_RESOURCE_NAME + " text not null, "
+ COLUMN_NAME_RESOURCE_SHORTNAME + " text, "
+ COLUMN_NAME_RESOURCE_IMAGE1 + " integer, "
+ COLUMN_NAME_RESOURCE_IMAGE2 + " integer, "
+ COLUMN_NAME_RESOURCE_VALUE + " integer, "
+ COLUMN_NAME_RESOURCE_BACKGROUNDIMAGE + " integer, "
+ COLUMN_NAME_RESOURCE_AUDIO + " integer, "
+ COLUMN_NAME_RESOURCE_TYPE + " integer " + " ); ");
Log.d(LOG_TAG, "Created Resources Type table");
// seed type
db.execSQL("create table "
+ TABLE_NAME_SEEDTYPE
+ " ( "
+ COLUMN_NAME_SEEDTYPE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_SEEDTYPE_NAME
+ " text not null, "
+ COLUMN_NAME_SEEDTYPE_SHORTNAME
+ " text, "
+ COLUMN_NAME_SEEDTYPE_RESOURCE
+ " integer, "
+ COLUMN_NAME_SEEDTYPE_AUDIO
+ " integer, "
+ COLUMN_NAME_SEEDTYPE_CROPTYPEID
+ " integer, "
+ references(COLUMN_NAME_SEEDTYPE_CROPTYPEID,
TABLE_NAME_CROPTYPE, COLUMN_NAME_CROPTYPE_ID, false)
+ " ); ");
Log.d(LOG_TAG, "Created seed type table");
// soil moisture
db.execSQL("create table " + TABLE_NAME_SOILMOISTURE + " ( "
+ COLUMN_NAME_SOILMOISTURE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_SOILMOISTURE_VALUE + " integer, "
+ COLUMN_NAME_SOILMOISTURE_DATE + " text, "
+ COLUMN_NAME_SOILMOISTURE_CLUSTER + " integer, "
+ COLUMN_NAME_SOILMOISTURE_ISADMINACTION + " boolean "
+ " ); ");
Log.d(LOG_TAG, "Created soil moisture table");
// soil type
db.execSQL("create table " + TABLE_NAME_SOILTYPE + " ( "
+ COLUMN_NAME_SOILTYPE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_SOILTYPE_NAME + " text, "
+ COLUMN_NAME_SOILTYPE_SHORTNAME + " text, "
+ COLUMN_NAME_SOILTYPE_IMAGE + " integer, "
+ COLUMN_NAME_SOILTYPE_AUDIO + " integer " + " ); ");
Log.d(LOG_TAG, "Created soil type table");
// users
db.execSQL("create table " + TABLE_NAME_USER + " ( "
+ COLUMN_NAME_USER_ID + " integer primary key, "
+ COLUMN_NAME_USER_FIRSTNAME + " text not null, "
+ COLUMN_NAME_USER_LASTNAME + " text not null, "
+ COLUMN_NAME_USER_MOBILENUMBER + " text not null, "
+ COLUMN_NAME_USER_DEVICEID + " text not null, "
+ COLUMN_NAME_USER_IMAGEPATH + " text, "
+ COLUMN_NAME_USER_LOCATION + " text, "
+ COLUMN_NAME_USER_NAME_AUDIO + " integer, "
+ COLUMN_NAME_USER_LOCATION_AUDIO + " integer, "
+ COLUMN_NAME_USER_SENDSTATUS + " integer, "
+ COLUMN_NAME_USER_ISENABLED + " boolean, "
+ COLUMN_NAME_USER_ISADMINACTION + " boolean, "
+ COLUMN_NAME_USER_TIMESTAMP + " integer not null" + " ); ");
Log.d(LOG_TAG, "Created user table");
// units
db.execSQL("create table "
+ TABLE_NAME_UNIT
+ " ( "
+ COLUMN_NAME_UNIT_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_UNIT_NAME
+ " text not null, "
+ COLUMN_NAME_UNIT_IMAGE
+ " integer, "
+ COLUMN_NAME_UNIT_AUDIO
+ " integer, "
+ COLUMN_NAME_UNIT_VALUE
+ " integer, "
+ COLUMN_NAME_UNIT_ACTIONTYPEID
+ " integer, "
+ references(COLUMN_NAME_UNIT_ACTIONTYPEID,
TABLE_NAME_ACTIONTYPE, COLUMN_NAME_ACTIONTYPE_ID,
false) + " ); ");
Log.d(LOG_TAG, "Created unit table");
// Weather forecast
db.execSQL("create table "
+ TABLE_NAME_WEATHERFORECAST
+ " ( "
+ COLUMN_NAME_WEATHERFORECAST_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_WEATHERFORECAST_TEMPERATURE
+ " integer not null, "
+ COLUMN_NAME_WEATHERFORECAST_DATE
+ " text unique not null, "
+ COLUMN_NAME_WEATHERFORECAST_WEATHERTYPEID
+ " integer, "
+ COLUMN_NAME_WEATHERFORECAST_TIMESTAMP
+ " integer not null, "
+ references(COLUMN_NAME_WEATHERFORECAST_WEATHERTYPEID,
TABLE_NAME_WEATHERTYPE,
COLUMN_NAME_WEATHERFORECAST_ID, false) + " ); ");
Log.d(LOG_TAG, "Created weather forecast table");
// Weather types
db.execSQL("create table " + TABLE_NAME_WEATHERTYPE + " ( "
+ COLUMN_NAME_WEATHERTYPE_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_WEATHERTYPE_NAME + " text not null, "
+ COLUMN_NAME_WEATHERTYPE_IMAGE + " integer, "
+ COLUMN_NAME_WEATHERTYPE_AUDIO + " integer" + " ); ");
Log.d(LOG_TAG, "Created weather type table");
db.execSQL("create table " + TABLE_NAME_YIELDAGG + " ( "
+ COLUMN_NAME_YIELDAGG_ID
+ " integer primary key autoincrement, "
+ COLUMN_NAME_YIELDAGG_SEASONID + " integer, "
+ COLUMN_NAME_YIELDAGG_PLACEID + " integer, "
+ COLUMN_NAME_YIELDAGG_SEEDTYPEID + " integer, "
+ COLUMN_NAME_YIELDAGG_SOILTYPEID
+ " integer, "
+ COLUMN_NAME_YIELDAGG_SOWINGWINDOWID
+ " integer, "
+ COLUMN_NAME_YIELDAGG_HASIRRIGATED
+ " boolean, "
// tri-state yes, no, unknown
+ COLUMN_NAME_YIELDAGG_HASFERTILIZED + " boolean, "
+ COLUMN_NAME_YIELDAGG_HADPEST + " boolean, "
+ COLUMN_NAME_YIELDAGG_HADDISEASE + " boolean, "
+ COLUMN_NAME_YIELDAGG_SPRAYED + " boolean, "
+ COLUMN_NAME_YIELDAGG_YIELDINQTPACRE + " real " + " ); ");
Log.d(LOG_TAG, "Created AggYield table");
Log.d(LOG_TAG, "Database created successfully");
initValues(db);
}
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
if (!db.isReadOnly()) {
// enables the foreign key constraints.
db.execSQL("PRAGMA foreign_keys=ON;");
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
private String references(String fieldName, String tableName, String id) {
return references(fieldName, tableName, id, true);
}
/**
* Helps building the reference statement for the table creation.
*
* @param fieldName
* name of the field that references another one.
* @param tableName
* name of the reference table.
* @param id
* name of the column to reference.
*
* @return a string that contains the reference to add.
*/
private String references(String fieldName, String tableName,
String id, boolean addComma) {
return String.format("FOREIGN KEY (%s) REFERENCES %s(%s)%s ",
fieldName, tableName, id, addComma ? "," : "");
}
}
public static final int ACTION_TYPE_ALL_ID = 0;
public static final int ACTION_TYPE_FERTILIZE_ID = 2;
public static final int ACTION_TYPE_HARVEST_ID = 6;
public static final int ACTION_TYPE_IRRIGATE_ID = 3;
public static final int ACTION_TYPE_PLAN_ID = 8;
public static final int ACTION_TYPE_REPORT_ID = 4;
public static final int ACTION_TYPE_SELL_ID = 7;
public static final int ACTION_TYPE_SOW_ID = 1;
public static final int ACTION_TYPE_SPRAY_ID = 5;
public static final String COLUMN_NAME_ACTION_ACTIONTYPEID = "actionTypeId";
public static final String COLUMN_NAME_ACTION_CROPTYPEID = "cropTypeId";
public static final String COLUMN_NAME_ACTION_DATE = "date";
public static final String COLUMN_NAME_ACTION_ID = "id";
public static final String COLUMN_NAME_ACTION_ISADMINACTION = "isAdminAction";
public static final String COLUMN_NAME_ACTION_PLOTID = "plotId";
public static final String COLUMN_NAME_ACTION_PRICE = "price";
public static final String COLUMN_NAME_ACTION_QUANTITY1 = "quantity1";
public static final String COLUMN_NAME_ACTION_QUANTITY2 = "quantity2";
public static final String COLUMN_NAME_ACTION_RESOURCE1ID = "resource1Id";
public static final String COLUMN_NAME_ACTION_RESOURCE2ID = "resource2Id";
public static final String COLUMN_NAME_ACTION_SEEDTYPEID = "seedTypeId";
public static final String COLUMN_NAME_ACTION_SENDSTATUS = "sendStatus";
public static final String COLUMN_NAME_ACTION_TIMESTAMP = "timestamp";
public static final String COLUMN_NAME_ACTION_UNIT1ID = "unit1Id";
public static final String COLUMN_NAME_ACTION_UNIT2ID = "unit2Id";
public static final String COLUMN_NAME_ACTION_USERID = "userId";
public static final String COLUMN_NAME_ACTIONTYPE_AUDIO = "audio";
public static final String COLUMN_NAME_ACTIONTYPE_ID = "id";
public static final String COLUMN_NAME_ACTIONTYPE_IMAGE = "image";
public static final String COLUMN_NAME_ACTIONTYPE_NAME = "name";
public static final String COLUMN_NAME_ADVICE_AUDIOSEQUENCE = "audioSequence";
public static final String COLUMN_NAME_ADVICE_ID = "id";
public static final String COLUMN_NAME_ADVICE_PROBLEMTYPEID = "problemTypeId";
public static final String COLUMN_NAME_ADVICE_SEEDTYPEID = "seedTypeId";
public static final String COLUMN_NAME_ADVICE_STAGENUMBER = "stageNumber";
public static final String COLUMN_NAME_ADVICEPIECE_ADVICEID = "adviceId";
public static final String COLUMN_NAME_ADVICEPIECE_AUDIO = "audio";
public static final String COLUMN_NAME_ADVICEPIECE_COMMENT = "comment";
public static final String COLUMN_NAME_ADVICEPIECE_ID = "id";
public static final String COLUMN_NAME_ADVICEPIECE_ORDERNUMBER = "orderNumber";
public static final String COLUMN_NAME_ADVICEPIECE_SUGGESTEDACTIONID = "suggestedActionId";
public static final String COLUMN_NAME_ADVICEPIECE_SUGGESTEDRESOURCEID = "suggestedResourceId";
public static final String COLUMN_NAME_CROPTYPE_AUDIO = "audio";
public static final String COLUMN_NAME_CROPTYPE_BACKGROUNDIMAGE = "backgroundImage";
public static final String COLUMN_NAME_CROPTYPE_ID = "id";
public static final String COLUMN_NAME_CROPTYPE_IMAGE = "image";
public static final String COLUMN_NAME_CROPTYPE_NAME = "name";
public static final String COLUMN_NAME_CROPTYPE_SHORTNAME = "shortName";
public static final String COLUMN_NAME_MARKETPRICE_DATE = "date";
public static final String COLUMN_NAME_MARKETPRICE_ID = "id";
public static final String COLUMN_NAME_MARKETPRICE_MAX = "max";
public static final String COLUMN_NAME_MARKETPRICE_MIN = "min";
public static final String COLUMN_NAME_MARKETPRICE_TYPE = "type";
public static final String COLUMN_NAME_PLOT_ID = "id";
public static final String COLUMN_NAME_PLOT_IMAGEPATH = "imagePath";
public static final String COLUMN_NAME_PLOT_ISADMINACTION = "isAdminAction";
public static final String COLUMN_NAME_PLOT_ISENABLED = "isEnabled";
public static final String COLUMN_NAME_PLOT_SEEDTYPEID = "seedtypeId";
public static final String COLUMN_NAME_PLOT_SENDSTATUS = "sendStatus";
public static final String COLUMN_NAME_PLOT_SIZE = "size";
public static final String COLUMN_NAME_PLOT_SOILTYPEID = "soilTypeId";
public static final String COLUMN_NAME_PLOT_TIMESTAMP = "timestamp";
public static final String COLUMN_NAME_PLOT_TYPE = "type";
public static final String COLUMN_NAME_PLOT_USERID = "userId";
public static final String COLUMN_NAME_RECOMMENDATION_ACTIONREQUIREDBYDATE = "actionRequiredByDate";
public static final String COLUMN_NAME_RECOMMENDATION_ADVICEID = "adviceId";
public static final String COLUMN_NAME_RECOMMENDATION_ID = "id";
public static final String COLUMN_NAME_RECOMMENDATION_ISUNREAD = "isUnread";
public static final String COLUMN_NAME_RECOMMENDATION_PLOTID = "plotId";
public static final String COLUMN_NAME_RECOMMENDATION_PROBABILITY = "probability";
public static final String COLUMN_NAME_RECOMMENDATION_SEVERITY = "severity";
public static final String COLUMN_NAME_RECOMMENDATION_TIMESTAMP = "timestamp";
public static final String COLUMN_NAME_RECOMMENDATION_DATACOLLECTIONDATE = "dataCollectionDate";
public static final String COLUMN_NAME_RECOMMENDATION_USERID = "userId";
public static final String COLUMN_NAME_RECOMMENDATION_VALIDTHROUGHDATE = "validThroughDate";
public static final String COLUMN_NAME_RESOURCE_AUDIO = "audio";
public static final String COLUMN_NAME_RESOURCE_BACKGROUNDIMAGE = "backgroundImage";
public static final String COLUMN_NAME_RESOURCE_ID = "id";
public static final String COLUMN_NAME_RESOURCE_IMAGE1 = "image1";
public static final String COLUMN_NAME_RESOURCE_IMAGE2 = "image2";
public static final String COLUMN_NAME_RESOURCE_NAME = "name";
public static final String COLUMN_NAME_RESOURCE_SHORTNAME = "shortName";
public static final String COLUMN_NAME_RESOURCE_TYPE = "type";
public static final String COLUMN_NAME_RESOURCE_VALUE = "value";
public static final String COLUMN_NAME_SEEDTYPE_AUDIO = "audio";
public static final String COLUMN_NAME_SEEDTYPE_CROPTYPEID = "cropTypeId";
public static final String COLUMN_NAME_SEEDTYPE_ID = "id";
public static final String COLUMN_NAME_SEEDTYPE_RESOURCE = "resource";
public static final String COLUMN_NAME_SEEDTYPE_NAME = "name";
public static final String COLUMN_NAME_SEEDTYPE_SHORTNAME = "shortName";
public static final String COLUMN_NAME_SOILMOISTURE_CLUSTER = "cluster";
public static final String COLUMN_NAME_SOILMOISTURE_DATE = "date";
public static final String COLUMN_NAME_SOILMOISTURE_ID = "id";
public static final String COLUMN_NAME_SOILMOISTURE_ISADMINACTION = "isAdminAction";
public static final String COLUMN_NAME_SOILMOISTURE_VALUE = "value";
public static final String COLUMN_NAME_SOILTYPE_AUDIO = "audio";
public static final String COLUMN_NAME_SOILTYPE_ID = "id";
public static final String COLUMN_NAME_SOILTYPE_IMAGE = "image";
public static final String COLUMN_NAME_SOILTYPE_NAME = "name";
public static final String COLUMN_NAME_SOILTYPE_SHORTNAME = "shortName";
public static final String COLUMN_NAME_UNIT_ACTIONTYPEID = "actionTypeId";
public static final String COLUMN_NAME_UNIT_AUDIO = "audio";
public static final String COLUMN_NAME_UNIT_ID = "id";
public static final String COLUMN_NAME_UNIT_IMAGE = "image";
public static final String COLUMN_NAME_UNIT_NAME = "name";
public static final String COLUMN_NAME_UNIT_VALUE = "value";
public static final String COLUMN_NAME_USER_DEVICEID = "deviceId";
public static final String COLUMN_NAME_USER_FIRSTNAME = "firstname";
public static final String COLUMN_NAME_USER_ID = "id";
public static final String COLUMN_NAME_USER_IMAGEPATH = "imagePath";
public static final String COLUMN_NAME_USER_ISADMINACTION = "isAdminAction";
public static final String COLUMN_NAME_USER_ISENABLED = "isEnabled";
public static final String COLUMN_NAME_USER_LASTNAME = "lastname";
public static final String COLUMN_NAME_USER_LOCATION = "location";
public static final String COLUMN_NAME_USER_LOCATION_AUDIO = "locationAudio";
public static final String COLUMN_NAME_USER_MOBILENUMBER = "mobileNumber";
public static final String COLUMN_NAME_USER_NAME_AUDIO = "nameAudio";
public static final String COLUMN_NAME_USER_SENDSTATUS = "sendStatus";
public static final String COLUMN_NAME_USER_TIMESTAMP = "timestamp";
public static final String COLUMN_NAME_WEATHERFORECAST_DATE = "date";
public static final String COLUMN_NAME_WEATHERFORECAST_ID = "id";
public static final String COLUMN_NAME_WEATHERFORECAST_TEMPERATURE = "temperature";
public static final String COLUMN_NAME_WEATHERFORECAST_WEATHERTYPEID = "weatherTypeId";
public static final String COLUMN_NAME_WEATHERFORECAST_TIMESTAMP = "timestamp";
public static final String COLUMN_NAME_WEATHERTYPE_AUDIO = "audio";
public static final String COLUMN_NAME_WEATHERTYPE_ID = "id";
public static final String COLUMN_NAME_WEATHERTYPE_IMAGE = "image";
public static final String COLUMN_NAME_WEATHERTYPE_NAME = "name";
public static final String COLUMN_NAME_YIELDAGG_HADDISEASE = "hadDisease";
public static final String COLUMN_NAME_YIELDAGG_HADPEST = "hadPest";
public static final String COLUMN_NAME_YIELDAGG_HASFERTILIZED = "hasFertilized";
public static final String COLUMN_NAME_YIELDAGG_HASIRRIGATED = "hasIrrigated";
public static final String COLUMN_NAME_YIELDAGG_ID = "id";
public static final String COLUMN_NAME_YIELDAGG_PLACEID = "placeId";
public static final String COLUMN_NAME_YIELDAGG_SEASONID = "seasonId";
public static final String COLUMN_NAME_YIELDAGG_SEEDTYPEID = "seedTypeId";
public static final String COLUMN_NAME_YIELDAGG_SOILTYPEID = "soilTypeId";
public static final String COLUMN_NAME_YIELDAGG_SOWINGWINDOWID = "sowingWindowId";
public static final String COLUMN_NAME_YIELDAGG_SPRAYED = "hasSprayed";
public static final String COLUMN_NAME_YIELDAGG_YIELDINQTPACRE = "yieldInQtPerAcre";
/** Filename of the database. */
public static final String DB_NAME = "realFarm.db";
/** Current version of the database. */
public static final int DB_VERSION = 1;
/** Default Device Id. */
public static final String DEFAULT_DEVICE_ID = "000000000";
/** Identifier used to debug the database. */
public static final String LOG_TAG = "RealFarm";
// TODO: This is for the selling aggregate and the aggregates number
// indicators on the homescreen. Put that somewhere into the database
public static final int NUMBER_DAYS_NEWS = 14;
public static final int RESOURCE_TYPE_ADVICE = 12;
public static final int RESOURCE_TYPE_DAYS_SPAN = 10;
public static final int RESOURCE_TYPE_DISEASE_SELECTOR = 17;
public static final int RESOURCE_TYPE_FERTILIZE_SELECTOR = 20;
public static final int RESOURCE_TYPE_FERTILIZER = 3;
public static final int RESOURCE_TYPE_INTERCROP = 4;
public static final int RESOURCE_TYPE_IRRIGATION_SELECTOR = 18;
public static final int RESOURCE_TYPE_IRRIGATIONMETHOD = 5;
public static final int RESOURCE_TYPE_LOCATION = 13;
public static final int RESOURCE_TYPE_MONTH = 6;
public static final int RESOURCE_TYPE_PEST_SELECTOR = 16;
public static final int RESOURCE_TYPE_PESTICIDE = 2;
public static final int RESOURCE_TYPE_PLOT_TYPE = 11;
public static final int RESOURCE_TYPE_PROBLEM = 0;
public static final int RESOURCE_TYPE_SATISFACTION = 7;
public static final int RESOURCE_TYPE_SOIL_TYPE = 22;
public static final int RESOURCE_TYPE_SOWING_WINDOW = 15;
public static final int RESOURCE_TYPE_SPRAYING_SELECTOR = 19;
public static final int RESOURCE_TYPE_TREATMENT = 8;
public static final int RESOURCE_TYPE_UNIT = 9;
public static final int RESOURCE_TYPE_VARIETY = 21;
public static final int RESOURCE_TYPE_YEAR = 14;
public static final String TABLE_NAME_ACTION = "action";
public static final String TABLE_NAME_ACTIONTYPE = "actionType";
public static final String TABLE_NAME_ADVICE = "advice";
public static final String TABLE_NAME_ADVICEPIECE = "advicePiece";
public static final String TABLE_NAME_CROPTYPE = "cropType";
public static final String TABLE_NAME_MARKETPRICE = "marketPrice";
public static final String TABLE_NAME_PLOT = "plot";
public static final String TABLE_NAME_RECOMMENDATION = "recommendation";
public static final String TABLE_NAME_RESOURCE = "resource";
public static final String TABLE_NAME_SEEDTYPE = "seedType";
public static final String TABLE_NAME_SOILMOISTURE = "soilMoisture";
public static final String TABLE_NAME_SOILTYPE = "soilType";
public static final String TABLE_NAME_UNIT = "unit";
public static final String TABLE_NAME_USER = "user";
public static final String TABLE_NAME_WEATHERFORECAST = "weatherForecast";
public static final String TABLE_NAME_WEATHERTYPE = "weatherType";
public static final String TABLE_NAME_YIELDAGG = "yieldAgg";
/** Application context. */
private Context mContext;
/** Database where the statements are performed. */
private SQLiteDatabase mDb;
/** Helper used to access the database. */
private RealFarmDatabaseOpenHelper mOpenHelper;
/**
* Creates a new RealFarmDatabase instance.
*
* @param context
* application context
*/
public RealFarmDatabase(Context context) {
mContext = context;
mOpenHelper = new RealFarmDatabaseOpenHelper(mContext);
}
public void clearValues() {
// deletes all the tables.
mDb.delete(TABLE_NAME_ACTION, null, null);
mDb.delete(TABLE_NAME_ACTIONTYPE, null, null);
mDb.delete(TABLE_NAME_ADVICE, null, null);
mDb.delete(TABLE_NAME_ADVICEPIECE, null, null);
mDb.delete(TABLE_NAME_CROPTYPE, null, null);
mDb.delete(TABLE_NAME_MARKETPRICE, null, null);
mDb.delete(TABLE_NAME_PLOT, null, null);
mDb.delete(TABLE_NAME_RECOMMENDATION, null, null);
mDb.delete(TABLE_NAME_RESOURCE, null, null);
mDb.delete(TABLE_NAME_SEEDTYPE, null, null);
mDb.delete(TABLE_NAME_SOILMOISTURE, null, null);
mDb.delete(TABLE_NAME_SOILTYPE, null, null);
mDb.delete(TABLE_NAME_UNIT, null, null);
mDb.delete(TABLE_NAME_USER, null, null);
mDb.delete(TABLE_NAME_WEATHERFORECAST, null, null);
mDb.delete(TABLE_NAME_WEATHERTYPE, null, null);
mDb.delete(TABLE_NAME_YIELDAGG, null, null);
}
/**
* Closes the database and its handler.
*/
public synchronized void close() {
mOpenHelper.close();
if (mDb != null)
mDb.close();
mDb = null;
}
public long deleteEntries(String tableName, String selector, String[] values) {
return deleteFromDatabase(tableName, selector, values, mDb);
}
public long deleteEntriesdb(String TableName, String whereClause,
String[] whereArgs) {
long result = -1;
if (TableName != null) {
try {
result = mDb.delete(TableName, whereClause, whereArgs);
} catch (SQLException e) {
Log.d(LOG_TAG, "Exception" + e);
}
}
return result;
}
public long deleteFromDatabase(String tableName, String selector,
String[] values, SQLiteDatabase database) {
return database.delete(tableName, selector, values);
}
/**
* Runs the provided SQL and returns a Cursor over the result set.
*
* @param sql
* the SQL query. The SQL string must not be ; terminated
* @param selectionArgs
* You may include ?s in where clause in the query, which will be
* replaced by the values from selectionArgs. The values will be
* bound as Strings.
* @return a Cursor object with the query result.
*
*/
public Cursor executeQuery(String sql, String[] selectionArgs) {
return mDb.rawQuery(sql, selectionArgs);
}
/**
* Reads all the entries in a given table that match certain parameters.
*
* @return A cursor containing the result of the query.
*/
public Cursor getAllEntries(String tableName, String[] parameters) {
return mDb.query(tableName, parameters, null, null, null, null, null);
}
/**
* Method to read specific values from table.
*
* @return A cursor containing the result of the query.
*/
public Cursor getEntries(String tableName, String[] columns,
String selection, String[] selectionArgs, String groupBy,
String having, String orderBy) {
return mDb.query(tableName, columns, selection, selectionArgs, groupBy,
having, orderBy);
}
/**
* Defines hard-coded initial values for database. All base tables and user
* data, the latter is for testing purposes only and should be replaced by
* method to obtain location of plots from farmers directly. base table
* conventions: 1 - unknown, 2 - none, 3 - ... real entries
*
* @param db
* database where the values will be inserted.
*/
public void initValues(SQLiteDatabase db) {
Log.d(LOG_TAG, "Try to fill up tables with content " + db.getVersion());
// gets the device id of the current user
TelephonyManager telephonyManager = (TelephonyManager) mContext
.getSystemService(Context.TELEPHONY_SERVICE);
String deviceId = telephonyManager.getDeviceId();
// sets the default value if invalid.
if (deviceId == null) {
deviceId = DEFAULT_DEVICE_ID;
}
boolean testUserAdded = false;
Object[][] userData = {
{ "Allappa", "", "911208750943398", "8151906806",
"farmer_911208750943398", "CK Pura", R.raw.allappa,
R.raw.ckpura },/* 1 */
{ "SH Hanumantharayappa", "", "911208750673037", "8151906807",
"farmer_911208750673037", "CK Pura",
R.raw.s_h_hanumantharayappa, R.raw.ckpura },/* 2 */
{ "Raamanji", "", "911208750512359", "8151906858",
"farmer_911208750512359", "CK Pura", R.raw.ramanji,
R.raw.ckpura },/* 3 */
{ "Sanjeevappa", "", "911208750941913", "8151906857",
"farmer_911208750941913", "CK Pura", R.raw.sanjevappa,
R.raw.ckpura },/* 4 */
{ "Fakruddin", "", "911208750963651", "8151906855",
"farmer_911208750963651", "CK Pura", R.raw.fakruddin,
R.raw.ckpura },/* 5 */
{ "Subramanya", "", "911208750485879", "8722577881",
"farmer_911208750485879", "CK Pura", R.raw.subramanya,
R.raw.ckpura },/* 6 */
{ "Nagendra", "", "911208750507219", "8151906788",
"farmer_911208750507219", "CK Pura", R.raw.nagendra,
R.raw.ckpura },/* 7 */
{ "Sanna", "Mallapa", "911208750707959", "8151906790",
"farmer_911208750707959", "CK Pura",
R.raw.sanna_malappa, R.raw.ckpura },/* 8 */
{ "Gangadhara", "", "911208750961135", "8151905805",
"farmer_911208750961135", "CK Pura", R.raw.gangadhara,
R.raw.ckpura },/* 9 */
{ "M Hanumantharayappa", "", "911208750956119", "9740744471",
"farmer_default", "CK Pura",
R.raw.s_h_hanumantharayappa, R.raw.ckpura },/* 10 */
{ "Eranna", "", "911208750715812", "8748923287",
"farmer_911208750715812", "CK Pura", R.raw.john_doe,
R.raw.ckpura },/* 11 */
{ "Pakali", "Nagaraja", "911208750027572", "8151906861",
"farmer_911208750027572", "CK Pura",
R.raw.pakali_nagaraja, R.raw.ckpura },/* 12 */
{ "G Prabhakar", "", "911217500767007", "8151906849",
"farmer_911217500767007", "CK Pura", R.raw.g_prabhakar,
R.raw.ckpura },/* 13 */
{ "Paramesha", "", "911217500770324", "8151906841",
"farmer_911217500770324", "CK Pura", R.raw.paramesha,
R.raw.ckpura },/* 14 */
{ "Bindu", "", "911217500727225", "8151906854",
"farmer_911217500727225", "CK Pura", R.raw.bindu,
R.raw.ckpura },/* 15 */
{ "Sheshagiri", "", "354717046643814", "9448379025",
"farmer_354717046643814", "CK Pura", R.raw.sheshagiri,
R.raw.ckpura }, /* 16 */
{ "Hendrik", "Knoche", "911208750949379", "9483824373",
"farmer_911208750949379", "Aalborg",
R.raw.hendrik_knoche, R.raw.ckpura },/* 17 */
{ "Prakruthi", "", "911208750715499", "9483824373",
"farmer_default", "CK Pura", R.raw.john_doe,
R.raw.ckpura },/* 18 */
};
ContentValues users = new ContentValues();
for (int x = 0; x < userData.length; x++) {
users.put(COLUMN_NAME_USER_ID, userData[x][2] + "1");
users.put(COLUMN_NAME_USER_FIRSTNAME, (String) userData[x][0]);
users.put(COLUMN_NAME_USER_LASTNAME, (String) userData[x][1]);
users.put(COLUMN_NAME_USER_DEVICEID, (String) userData[x][2]);
users.put(COLUMN_NAME_USER_MOBILENUMBER, (String) userData[x][3]);
users.put(COLUMN_NAME_USER_IMAGEPATH, (String) userData[x][4]);
users.put(COLUMN_NAME_USER_LOCATION, (String) userData[x][5]);
users.put(COLUMN_NAME_USER_NAME_AUDIO, (Integer) userData[x][6]);
users.put(COLUMN_NAME_USER_LOCATION_AUDIO, (Integer) userData[x][7]);
users.put(COLUMN_NAME_USER_SENDSTATUS, userData[x][2]
.equals(deviceId) ? Model.STATUS_UNSENT
: Model.STATUS_CONFIRMED);
users.put(COLUMN_NAME_USER_ISENABLED, 1);
users.put(COLUMN_NAME_USER_ISADMINACTION, 0);
users.put(COLUMN_NAME_USER_TIMESTAMP, new Date().getTime());
insertEntriesIntoDatabase(TABLE_NAME_USER, users, db);
users.clear();
// checks if a user that matches the current device id was added.
if (userData[x][2].equals(deviceId)) {
testUserAdded = true;
}
}
// adds the test used John Doe.I
if (!testUserAdded) {
users.put(COLUMN_NAME_USER_ID, deviceId + "1");
users.put(COLUMN_NAME_USER_FIRSTNAME, "John");
users.put(COLUMN_NAME_USER_LASTNAME, "Doe");
users.put(COLUMN_NAME_USER_DEVICEID, deviceId);
users.put(COLUMN_NAME_USER_MOBILENUMBER, "0000000000");
users.put(COLUMN_NAME_USER_IMAGEPATH, "farmer_default");
users.put(COLUMN_NAME_USER_LOCATION, "CK Pura");
users.put(COLUMN_NAME_USER_NAME_AUDIO, R.raw.john_doe);
users.put(COLUMN_NAME_USER_LOCATION_AUDIO, R.raw.ckpura);
users.put(COLUMN_NAME_USER_SENDSTATUS, Model.STATUS_UNSENT);
users.put(COLUMN_NAME_USER_ISENABLED, 1);
users.put(COLUMN_NAME_USER_ISADMINACTION, 0);
users.put(COLUMN_NAME_USER_TIMESTAMP, new Date().getTime());
insertEntriesIntoDatabase(TABLE_NAME_USER, users, db);
}
Log.d(LOG_TAG, "users works");
Object[][] actionTypeData = {
{ ACTION_TYPE_SOW_ID, "Sow", R.drawable.sowingaction,
R.raw.sowing },
{ ACTION_TYPE_FERTILIZE_ID, "Fertilize",
R.drawable.fertilizingaction, R.raw.fertilizing },
{ ACTION_TYPE_IRRIGATE_ID, "Irrigate",
R.drawable.irrigationaction, R.raw.irrigate },
{ ACTION_TYPE_REPORT_ID, "Report",
R.drawable.problemreportingaction, R.raw.problems },
{ ACTION_TYPE_SPRAY_ID, "Spray", R.drawable.sprayingaction,
R.raw.spraying },
{ ACTION_TYPE_HARVEST_ID, "Harvest",
R.drawable.harvestingaction, R.raw.harvest },
{ ACTION_TYPE_SELL_ID, "Sell", R.drawable.sellingaction,
R.raw.selling }, { ACTION_TYPE_PLAN_ID, "", -1, -1 }
};
ContentValues actionType = new ContentValues();
for (int x = 0; x < actionTypeData.length; x++) {
actionType.put(COLUMN_NAME_ACTIONTYPE_ID,
(Integer) actionTypeData[x][0]);
actionType.put(COLUMN_NAME_ACTIONTYPE_NAME,
(String) actionTypeData[x][1]);
actionType.put(COLUMN_NAME_ACTIONTYPE_IMAGE,
(Integer) actionTypeData[x][2]);
actionType.put(COLUMN_NAME_ACTIONTYPE_AUDIO,
(Integer) actionTypeData[x][3]);
insertEntriesIntoDatabase(TABLE_NAME_ACTIONTYPE, actionType, db);
actionType.clear();
}
Log.d(LOG_TAG, "actionType works");
// resources
Object[][] resourceData = {
/** Problems */
{ "Late leaf spot", "LLS", R.raw.late_leaf_spot,
R.drawable.ic_diseasecategory,
R.drawable.pr_late_leaf_spot, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Pod rot", "Pod rot", R.raw.pod_rot,
R.drawable.ic_diseasecategory, R.drawable.pr_pod_rot,
-1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Unknown disease", "? disease", R.raw.unknown_disease,
R.drawable.ic_diseasecategory,
R.drawable.pr_unknown_disease, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Disease not listed", "D unlisted", R.raw.disease_not_listed,
R.drawable.ic_diseasecategory,
R.drawable.square_btn_normal, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Aphids", "Aphids", R.raw.aphids, R.drawable.ic_pestcategory,
R.drawable.pr_aphids, -1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Leaf miner", "Leaf miner", R.raw.leaf_miner,
R.drawable.ic_pestcategory, R.drawable.pr_leaf_miner,
-1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Pod borer", "Pod borer", R.raw.pod_borer,
R.drawable.ic_pestcategory, R.drawable.pr_pod_borer,
-1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Red hairy caterpillar", "R H Caterpillar",
R.raw.red_hairy_caterpillar,
R.drawable.ic_pestcategory,
R.drawable.pr_red_hairy_caterpillar, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Root grub", "Root grub", R.raw.root_grub,
R.drawable.ic_pestcategory, R.drawable.pr_root_grub,
-1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Unknown pest", "? pest", R.raw.unknown_pest,
R.drawable.ic_pestcategory, R.drawable.pr_pestunknown,
-1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Pest not listed", "Pe-unlisted", R.raw.pest_not_listed,
R.drawable.ic_pestcategory,
R.drawable.square_btn_normal, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "No rain", "No rain", R.raw.no_sound_help,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_norain, -1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Low growth", "Low growth", R.raw.low_growth,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_low_growth, -1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Pegs not developed", "Pegs undev", R.raw.pegs_not_developed,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_pegs_not_developed, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Pod germination", "Pod germination", R.raw.pod_germination,
R.drawable.ic_otherproblemcategory,
R.drawable.square_btn_normal, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Reduced flowering", "Red flowering",
R.raw.reduced_flowering,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_low_flowring, -1, RESOURCE_TYPE_PROBLEM,
-1 },
{ "Rot of stalks", "Stalk rot", R.raw.rot_of_stalks,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_rot_of_stalks, -1, RESOURCE_TYPE_PROBLEM,
-1 },
{ "Too much vegetative growth", "Veg growth",
R.raw.too_much_vegetative_growth,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_too_much_vegetation_growth, -1,
RESOURCE_TYPE_PROBLEM, -1 },
{ "Weeds", "Weeds", R.raw.weeds,
R.drawable.ic_otherproblemcategory, R.drawable.pr_weed,
-1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Wild boar", "Wild boar", R.raw.wild_boar,
R.drawable.ic_otherproblemcategory,
R.drawable.pr_wild_boar, -1, RESOURCE_TYPE_PROBLEM, -1 },
{ "Problem not listed", "Pb-unlisted",
R.raw.problem_not_listed,
R.drawable.ic_otherproblemcategory,
R.drawable.square_btn_normal, -1,
RESOURCE_TYPE_PROBLEM, -1 },
/** Treatment */
{ "Treated", "Treated", R.raw.treatmenttoseeds2,
R.drawable.ic_sowingseedtreated, -1, -1,
RESOURCE_TYPE_TREATMENT, -1 },
{ "Not treated", "Not treated", R.raw.treatmenttoseeds3,
R.drawable.ic_sowingseednottreated, -1, -1,
RESOURCE_TYPE_TREATMENT, -1 },
/** Month */
{ "01 January", "Jan", R.raw.jan, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.JANUARY },
{ "02 February", "Feb", R.raw.feb, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.FEBRUARY },
{ "03 March", "Mar", R.raw.mar, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.MARCH },
{ "04 April", "Apr", R.raw.apr, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.APRIL },
{ "05 May", "May", R.raw.may, -1, -1, -1, RESOURCE_TYPE_MONTH,
Calendar.MAY },
{ "06 June", "Jun", R.raw.jun, -1, -1, -1, RESOURCE_TYPE_MONTH,
Calendar.JUNE },
{ "07 July", "Jul", R.raw.jul, -1, -1, -1, RESOURCE_TYPE_MONTH,
Calendar.JULY },
{ "08 August", "Aug", R.raw.aug, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.AUGUST },
{ "09 September", "Sep", R.raw.sep, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.SEPTEMBER },
{ "10 October", "Oct", R.raw.oct, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.OCTOBER },
{ "11 November", "Nov", R.raw.nov, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.NOVEMBER },
{ "12 December", "Dec", R.raw.dec, -1, -1, -1,
RESOURCE_TYPE_MONTH, Calendar.DECEMBER },
/** Days span */
{ "7 days", "7 days", R.raw.seven_days, -1, -1, -1,
RESOURCE_TYPE_DAYS_SPAN, 7 },
{ "14 days", "14 days", R.raw.fourteen_days, -1, -1, -1,
RESOURCE_TYPE_DAYS_SPAN, 14 },
{ "21 days", "21 days", R.raw.twentyone_days, -1, -1, -1,
RESOURCE_TYPE_DAYS_SPAN, 21 },
{ "1 month", "1 month", R.raw.one_month, -1, -1, -1,
RESOURCE_TYPE_DAYS_SPAN, 31 },
{ "1 year", "1 year", R.raw.year, -1, -1, -1,
RESOURCE_TYPE_DAYS_SPAN, 366 },
/** Treated */
{ "Main crop", "Main crop", R.raw.maincrop,
R.drawable.ic_maincrop, -1, -1,
RESOURCE_TYPE_INTERCROP, -1 },
{ "Intercrop", "Intercrop", R.raw.intercrop,
R.drawable.ic_intercrop, -1, -1,
RESOURCE_TYPE_INTERCROP, -1 },
/** Fertilizer */
{ "Complex", "Complex", R.raw.complex, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Compost", "Compost", R.raw.compost, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "DAP", "DAP", R.raw.dap, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Farm Yard Manure / FYM", "FYM", R.raw.fym, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Gypsum", "Gypsum", R.raw.gypsum, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Potash", "Potash", R.raw.potash, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Salt", "Salt", R.raw.salt, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Super", "Super", R.raw.superr, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Urea", "Urea", R.raw.superr, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
{ "Unlisted", "Not in the list", R.raw.unlisted, -1, -1, -1,
RESOURCE_TYPE_FERTILIZER, -1 },
/** Pesticide */
{ "Monocrotophos", "Monocrot.", R.raw.monocrotophos,
R.drawable.pesticide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Dimethoate", "Dimethoa.", R.raw.dimethoate,
R.drawable.pesticide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Thiodicarb", "Thiodicarb", R.raw.thiodicarb,
R.drawable.pesticide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Fenvelerate", "Fenvelerate", R.raw.fenvelerate,
R.drawable.pesticide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Quinolphos", "Quinolphos", R.raw.quinolphos,
R.drawable.pesticide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Pesticide not listed", "P-unlisted",
R.raw.pesticide_not_listed, R.drawable.pesticide, -1,
-1, RESOURCE_TYPE_PESTICIDE, -1 },
{ "Dithane M-45", "D. M-45", R.raw.dithane_m_45,
R.drawable.fungicide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Chlorothalonil", "Chlorot.", R.raw.chlorothalonil,
R.drawable.fungicide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Cyproconazole", "Cyproconazole", R.raw.cyproconazole,
R.drawable.fungicide, -1, -1, RESOURCE_TYPE_PESTICIDE,
-1 },
{ "Triazole", "Triazole", R.raw.triazole, R.drawable.fungicide,
-1, -1, RESOURCE_TYPE_PESTICIDE, -1 },
{ "Fungicide not listed", "F-unlisted",
R.raw.fungicide_not_listed, R.drawable.fungicide, -1,
-1, RESOURCE_TYPE_PESTICIDE, -1 },
/** Irrigation Method. */
{ "Flooding", "Flooding", R.raw.flooding,
R.drawable.ic_flooding, -1, -1,
RESOURCE_TYPE_IRRIGATIONMETHOD, -1 },
{ "Sprinkling", "Sprinkling", R.raw.sprinkling,
R.drawable.ic_sprinkling, -1, -1,
RESOURCE_TYPE_IRRIGATIONMETHOD, -1 },
/** Satisfaction */
{ "Good", "Good", R.raw.feedbackgood, R.drawable.smiley_good,
-1, -1, RESOURCE_TYPE_SATISFACTION, -1 },
{ "Moderate", "Moderate", R.raw.feedbackmoderate,
R.drawable.smiley_medium, -1, -1,
RESOURCE_TYPE_SATISFACTION, -1 },
{ "Bad", "Bad", R.raw.feedbackbad, R.drawable.smiley_bad, -1,
-1, RESOURCE_TYPE_SATISFACTION, -1 },
/** Plot type */
{ "Irrigated", "Irrigated", R.raw.irrigated,
R.drawable.irrigatedland, -1, -1,
RESOURCE_TYPE_PLOT_TYPE, -1 },
{ "Rainfed", "Rainfed", R.raw.rainfed, R.drawable.rainfedland,
-1, -1, RESOURCE_TYPE_PLOT_TYPE, -1 },
/** None image advice page */
{ "", "", R.raw.none, -1, -1, R.drawable.noactionforadvice,
RESOURCE_TYPE_ADVICE, -1 },
/** Locations */
{ "CK Pura", "CK Pura", R.raw.ckpura, -1, -1, -1,
RESOURCE_TYPE_LOCATION, -1 },
/** Sowing window */
{ "2011", "2011", R.raw.a2011, -1, -1, -1, RESOURCE_TYPE_YEAR,
-1 },
/** Sowing window */
{ "Bharani 27.4. - 10.5.", "27.4. 10.5.", R.raw.bharani, -1,
-1, -1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
{ "Kritika 11.5. - 24.5.", "11.5. 24.5.", R.raw.kritika, -1,
-1, -1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
{ "Rohini 24.5. - 07.6.", "24.5 07.6", R.raw.rohini, -1, -1,
-1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
{ "Mrigashira 08.6 -. 21.6.", "08.6. 21.6.", R.raw.mrigashira,
-1, -1, -1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
{ "Ardra 22.6. - 05.7.", "22.6. 05.7.", R.raw.ardra, -1, -1,
-1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
{ "Punarvasu 06.7. - 19.7.", "06.7. 19.7.", R.raw.punarvasu,
-1, -1, -1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
{ "Pushya 20.7. - 02.8.", "20.7. 02.8.", R.raw.pushya, -1, -1,
-1, RESOURCE_TYPE_SOWING_WINDOW, -1 },
/** Selectors */
{ "Yes", "", -1, R.drawable.yt_diseased, -1, -1,
RESOURCE_TYPE_DISEASE_SELECTOR, -1 },
{ "No", "", -1, R.drawable.yt_diseaseno, -1, -1,
RESOURCE_TYPE_DISEASE_SELECTOR, -1 },
{ "All", "", -1, R.drawable.yt_diseasesnotfiltered, -1, -1,
RESOURCE_TYPE_DISEASE_SELECTOR, -1 },
{ "Yes", "", -1, R.drawable.yt_pested, -1, -1,
RESOURCE_TYPE_PEST_SELECTOR, -1 },
{ "No", "", -1, R.drawable.yt_pestedno, -1, -1,
RESOURCE_TYPE_PEST_SELECTOR, -1 },
{ "All", "", -1, R.drawable.yt_pestnotfiltered, -1, -1,
RESOURCE_TYPE_PEST_SELECTOR, -1 },
{ "Yes", "", -1, R.drawable.yt_irrigated, -1, -1,
RESOURCE_TYPE_IRRIGATION_SELECTOR, -1 },
{ "No", "", -1, R.drawable.yt_irrigatedno, -1, -1,
RESOURCE_TYPE_IRRIGATION_SELECTOR, -1 },
{ "All", "", -1, R.drawable.yt_irrigatednotfiltered, -1, -1,
RESOURCE_TYPE_IRRIGATION_SELECTOR, -1 },
{ "Yes", "", -1, R.drawable.yt_sprayingselected, -1, -1,
RESOURCE_TYPE_SPRAYING_SELECTOR, -1 },
{ "No", "", -1, R.drawable.yt_sprayingno, -1, -1,
RESOURCE_TYPE_SPRAYING_SELECTOR, -1 },
{ "All", "", -1, R.drawable.yt_sprayingnotfiltered, -1, -1,
RESOURCE_TYPE_SPRAYING_SELECTOR, -1 },
{ "Yes", "", -1, R.drawable.yt_fertilized, -1, -1,
RESOURCE_TYPE_FERTILIZE_SELECTOR, -1 },
{ "No", "", -1, R.drawable.yt_fertilizedno, -1, -1,
RESOURCE_TYPE_FERTILIZE_SELECTOR, -1 },
{ "All", "", -1, R.drawable.yt_fertilizednotfiltered, -1, -1,
RESOURCE_TYPE_FERTILIZE_SELECTOR, -1 },
/** TODO: orbolanos: This should not go here. */
{ "TMV2", "TMV2", R.raw.tmv_2, R.drawable.yt_varietyselected,
-1, R.drawable.pic_72px_castor, RESOURCE_TYPE_VARIETY,
-1 },
{ "K6", "K6", R.raw.k_6, R.drawable.yt_varietyselected, -1,
R.drawable.pic_72px_groundnut, RESOURCE_TYPE_VARIETY,
-1 },
{ "Samrat", "Samrat", R.raw.samrat,
R.drawable.yt_varietyselected, -1,
R.drawable.pic_72px_bajra, RESOURCE_TYPE_VARIETY, -1 },
{ "JL24", "JL24", R.raw.jl_24, R.drawable.yt_varietyselected,
-1, R.drawable.pic_72px_groundnut,
RESOURCE_TYPE_VARIETY, -1 },
{ "All", "All", -1, R.drawable.yt_varietiesnotfiltered, -1, -1,
RESOURCE_TYPE_VARIETY, -1 },
{ "Red loam", "Red loam", R.raw.red_loam,
R.drawable.yt_soiltypeselected, -1,
R.drawable.st_redloam, RESOURCE_TYPE_SOIL_TYPE, -1 },
{ "Sandy", "Sandy", R.raw.sandy,
R.drawable.yt_soiltypeselected, -1,
R.drawable.st_sandloam, RESOURCE_TYPE_SOIL_TYPE, -1 },
{ "Black loam", "Black loam", R.raw.black_loam,
R.drawable.yt_soiltypeselected, -1,
R.drawable.st_kappumannu, RESOURCE_TYPE_SOIL_TYPE, -1 },
{ "Black clayey loam", "BC loam", R.raw.black_clay_loam,
R.drawable.yt_soiltypeselected, -1,
R.drawable.st_clayloam, RESOURCE_TYPE_SOIL_TYPE, -1 },
{ "Jedi Maralu", "Sand", R.raw.jedi_maralu,
R.drawable.yt_soiltypeselected, -1,
R.drawable.st_irrigatesoilloam,
RESOURCE_TYPE_SOIL_TYPE, -1 }, };
ContentValues resource = new ContentValues();
for (int x = 0; x < resourceData.length; x++) {
resource.put(COLUMN_NAME_RESOURCE_NAME, (String) resourceData[x][0]);
resource.put(COLUMN_NAME_RESOURCE_SHORTNAME,
(String) resourceData[x][1]);
resource.put(COLUMN_NAME_RESOURCE_AUDIO,
(Integer) resourceData[x][2]);
resource.put(COLUMN_NAME_RESOURCE_IMAGE1,
(Integer) resourceData[x][3]);
resource.put(COLUMN_NAME_RESOURCE_IMAGE2,
(Integer) resourceData[x][4]);
resource.put(COLUMN_NAME_RESOURCE_BACKGROUNDIMAGE,
(Integer) resourceData[x][5]);
resource.put(COLUMN_NAME_RESOURCE_TYPE,
(Integer) resourceData[x][6]);
resource.put(COLUMN_NAME_RESOURCE_VALUE,
(Integer) resourceData[x][7]);
insertEntriesIntoDatabase(TABLE_NAME_RESOURCE, resource, db);
resource.clear();
}
// units
Object[][] unitData = {
{ "1L can(s)", R.drawable.ic_pesticideherbicidecan,
R.raw.one_litre_can, ACTION_TYPE_SPRAY_ID, -1 },
{ "bag(s) of 1 kg", R.drawable.onekgbagpesticides,
R.raw.bagof1kg, ACTION_TYPE_SPRAY_ID, -1 },
{ "bag(s) of 50 kg", R.drawable.ic_50kgbag, R.raw.bagof50kg,
ACTION_TYPE_FERTILIZE_ID, -1 },
{ "cart load(s)", R.drawable.ic_cartload, R.raw.cart_load,
ACTION_TYPE_FERTILIZE_ID, -1 },
{ "tractor load(s)", R.drawable.ic_tractorload,
R.raw.tractor_load, ACTION_TYPE_FERTILIZE_ID, -1 },
{ "bag of 20 kgs", R.drawable.bag20kg, R.raw.bagof20kg,
ACTION_TYPE_HARVEST_ID, 20 },
{ "bag of 21 kgs", R.drawable.bag21kg, R.raw.bagof21kg,
ACTION_TYPE_HARVEST_ID, 21 },
{ "bag of 22 kgs", R.drawable.bag22kg, R.raw.bagof22kg,
ACTION_TYPE_HARVEST_ID, 22 },
{ "bag of 23 kgs", R.drawable.bag23kg, R.raw.bagof23kg,
ACTION_TYPE_HARVEST_ID, 23 },
{ "bag of 24 kgs", R.drawable.bag24kg, R.raw.bagof24kg,
ACTION_TYPE_HARVEST_ID, 24 },
{ "bag of 25 kgs", R.drawable.bag25kg, R.raw.bagof25kg,
ACTION_TYPE_HARVEST_ID, 25 },
{ "bag of 26 kgs", R.drawable.bag26kg, R.raw.bagof26kg,
ACTION_TYPE_HARVEST_ID, 26 },
{ "bag of 27 kgs", R.drawable.bag27kg, R.raw.bagof27kg,
ACTION_TYPE_HARVEST_ID, 27 },
{ "bag of 28 kgs", R.drawable.bag28kg, R.raw.bagof28kg,
ACTION_TYPE_HARVEST_ID, 28 },
{ "bag of 29 kgs", R.drawable.bag29kg, R.raw.bagof29kg,
ACTION_TYPE_HARVEST_ID, 29 },
{ "bag of 30 kgs", R.drawable.bag30kg, R.raw.bagof30kg,
ACTION_TYPE_HARVEST_ID, 30 },
{ "bag of 31 kgs", R.drawable.bag31kg, R.raw.bagof31kg,
ACTION_TYPE_HARVEST_ID, 31 },
{ "bag of 32 kgs", R.drawable.bag32kg, R.raw.bagof32kg,
ACTION_TYPE_HARVEST_ID, 32 },
{ "bag of 33 kgs", R.drawable.bag33kg, R.raw.bagof33kg,
ACTION_TYPE_HARVEST_ID, 33 },
{ "bag of 34 kgs", R.drawable.bag34kg, R.raw.bagof34kg,
ACTION_TYPE_HARVEST_ID, 34 },
{ "bag of 35 kgs", R.drawable.bag35kg, R.raw.bagof35kg,
ACTION_TYPE_HARVEST_ID, 35 },
{ "bag of 36 kgs", R.drawable.bag36kg, R.raw.bagof36kg,
ACTION_TYPE_HARVEST_ID, 36 },
{ "bag of 37 kgs", R.drawable.bag37kg, R.raw.bagof37kg,
ACTION_TYPE_HARVEST_ID, 37 },
{ "bag of 38 kgs", R.drawable.bag38kg, R.raw.bagof10kg,
ACTION_TYPE_HARVEST_ID, 38 },
{ "bag of 39 kgs", R.drawable.bag39kg, R.raw.bagof38kg,
ACTION_TYPE_HARVEST_ID, 39 },
{ "bag of 40 kgs", R.drawable.bag40kg, R.raw.bagof40kg,
ACTION_TYPE_HARVEST_ID, 40 },
{ "bag of 41 kgs", R.drawable.bag41kg, R.raw.bagof41kg,
ACTION_TYPE_HARVEST_ID, 41 },
{ "bag of 42 kgs", R.drawable.bag42kg, R.raw.bagof42kg,
ACTION_TYPE_HARVEST_ID, 42 },
{ "bag of 43 kgs", R.drawable.bag43kg, R.raw.bagof43kg,
ACTION_TYPE_HARVEST_ID, 43 },
{ "bag of 44 kgs", R.drawable.bag44kg, R.raw.bagof44kg,
ACTION_TYPE_HARVEST_ID, 44 },
{ "bag of 45 kgs", R.drawable.bag45kg, R.raw.bagof45kg,
ACTION_TYPE_HARVEST_ID, 45 },
{ "bag of 46 kgs", R.drawable.bag46kg, R.raw.bagof46kg,
ACTION_TYPE_HARVEST_ID, 46 },
{ "bag of 47 kgs", R.drawable.bag47kg, R.raw.bagof47kg,
ACTION_TYPE_HARVEST_ID, 47 },
{ "bag of 48 kgs", R.drawable.bag48kg, R.raw.bagof48kg,
ACTION_TYPE_HARVEST_ID, 48 },
{ "bag of 49 kgs", R.drawable.bag49kg, R.raw.bagof49kg,
ACTION_TYPE_HARVEST_ID, 49 },
{ "bag of 50 kgs", R.drawable.bag50kg, R.raw.bagof50kg,
ACTION_TYPE_HARVEST_ID, 50 },
{ "bag of 20 kgs", R.drawable.bag20kg, R.raw.bagof20kg,
ACTION_TYPE_SELL_ID, 20 },
{ "bag of 21 kgs", R.drawable.bag21kg, R.raw.bagof21kg,
ACTION_TYPE_SELL_ID, 21 },
{ "bag of 22 kgs", R.drawable.bag22kg, R.raw.bagof22kg,
ACTION_TYPE_SELL_ID, 22 },
{ "bag of 23 kgs", R.drawable.bag23kg, R.raw.bagof23kg,
ACTION_TYPE_SELL_ID, 23 },
{ "bag of 24 kgs", R.drawable.bag24kg, R.raw.bagof24kg,
ACTION_TYPE_SELL_ID, 24 },
{ "bag of 25 kgs", R.drawable.bag25kg, R.raw.bagof25kg,
ACTION_TYPE_SELL_ID, 25 },
{ "bag of 26 kgs", R.drawable.bag26kg, R.raw.bagof26kg,
ACTION_TYPE_SELL_ID, 26 },
{ "bag of 27 kgs", R.drawable.bag27kg, R.raw.bagof27kg,
ACTION_TYPE_SELL_ID, 27 },
{ "bag of 28 kgs", R.drawable.bag28kg, R.raw.bagof28kg,
ACTION_TYPE_SELL_ID, 28 },
{ "bag of 29 kgs", R.drawable.bag29kg, R.raw.bagof29kg,
ACTION_TYPE_SELL_ID, 29 },
{ "bag of 30 kgs", R.drawable.bag30kg, R.raw.bagof30kg,
ACTION_TYPE_SELL_ID, 30 },
{ "bag of 31 kgs", R.drawable.bag31kg, R.raw.bagof31kg,
ACTION_TYPE_SELL_ID, 31 },
{ "bag of 32 kgs", R.drawable.bag32kg, R.raw.bagof32kg,
ACTION_TYPE_SELL_ID, 32 },
{ "bag of 33 kgs", R.drawable.bag33kg, R.raw.bagof33kg,
ACTION_TYPE_SELL_ID, 33 },
{ "bag of 34 kgs", R.drawable.bag34kg, R.raw.bagof34kg,
ACTION_TYPE_SELL_ID, 34 },
{ "bag of 35 kgs", R.drawable.bag35kg, R.raw.bagof35kg,
ACTION_TYPE_SELL_ID, 35 },
{ "bag of 36 kgs", R.drawable.bag36kg, R.raw.bagof36kg,
ACTION_TYPE_SELL_ID, 36 },
{ "bag of 37 kgs", R.drawable.bag37kg, R.raw.bagof37kg,
ACTION_TYPE_SELL_ID, 37 },
{ "bag of 38 kgs", R.drawable.bag38kg, R.raw.bagof38kg,
ACTION_TYPE_SELL_ID, 38 },
{ "bag of 39 kgs", R.drawable.bag39kg, R.raw.bagof39kg,
ACTION_TYPE_SELL_ID, 39 },
{ "bag of 40 kgs", R.drawable.bag40kg, R.raw.bagof40kg,
ACTION_TYPE_SELL_ID, 40 },
{ "bag of 41 kgs", R.drawable.bag41kg, R.raw.bagof41kg,
ACTION_TYPE_SELL_ID, 41 },
{ "bag of 42 kgs", R.drawable.bag42kg, R.raw.bagof42kg,
ACTION_TYPE_SELL_ID, 42 },
{ "bag of 43 kgs", R.drawable.bag43kg, R.raw.bagof43kg,
ACTION_TYPE_SELL_ID, 43 },
{ "bag of 44 kgs", R.drawable.bag44kg, R.raw.bagof44kg,
ACTION_TYPE_SELL_ID, 44 },
{ "bag of 45 kgs", R.drawable.bag45kg, R.raw.bagof45kg,
ACTION_TYPE_SELL_ID, 45 },
{ "bag of 46 kgs", R.drawable.bag46kg, R.raw.bagof46kg,
ACTION_TYPE_SELL_ID, 46 },
{ "bag of 47 kgs", R.drawable.bag47kg, R.raw.bagof47kg,
ACTION_TYPE_SELL_ID, 47 },
{ "bag of 48 kgs", R.drawable.bag48kg, R.raw.bagof48kg,
ACTION_TYPE_SELL_ID, 48 },
{ "bag of 49 kgs", R.drawable.bag49kg, R.raw.bagof49kg,
ACTION_TYPE_SELL_ID, 49 },
{ "bag of 50 kgs", R.drawable.bag50kg, R.raw.bagof50kg,
ACTION_TYPE_SELL_ID, 50 },
{ "unknown", R.drawable.unitunknown, R.raw.unit_unknown,
ACTION_TYPE_ALL_ID, 0 },
{ "none", R.drawable.unitnone, R.raw.none, ACTION_TYPE_ALL_ID,
0 }
};
ContentValues unit = new ContentValues();
for (int x = 0; x < unitData.length; x++) {
unit.put(COLUMN_NAME_UNIT_NAME, (String) unitData[x][0]);
unit.put(COLUMN_NAME_UNIT_IMAGE, (Integer) unitData[x][1]);
unit.put(COLUMN_NAME_UNIT_AUDIO, (Integer) unitData[x][2]);
unit.put(COLUMN_NAME_UNIT_ACTIONTYPEID, (Integer) unitData[x][3]);
unit.put(COLUMN_NAME_UNIT_VALUE, (Integer) unitData[x][4]);
insertEntriesIntoDatabase(TABLE_NAME_UNIT, unit, db);
unit.clear();
}
Log.d(LOG_TAG, "unit works");
Object[][] soilTypes = {
{ "Red loam", "Red loam", R.drawable.st_redloam, R.raw.red_loam },
{ "Sandy", "Sandy", R.drawable.st_sandloam, R.raw.sandy },
{ "Black loam", "Black loam", R.drawable.st_kappumannu,
R.raw.black_loam },
{ "Black clayey loam", "BC loam", R.drawable.st_clayloam,
R.raw.black_clay_loam },
{ "Jedi Maralu", "Sand", R.drawable.st_irrigatesoilloam,
R.raw.jedi_maralu }
};
ContentValues soilType = new ContentValues();
for (int x = 0; x < soilTypes.length; x++) {
soilType.put(COLUMN_NAME_SOILTYPE_NAME, (String) soilTypes[x][0]);
soilType.put(COLUMN_NAME_SOILTYPE_SHORTNAME,
(String) soilTypes[x][1]);
soilType.put(COLUMN_NAME_SOILTYPE_IMAGE, (Integer) soilTypes[x][2]);
soilType.put(COLUMN_NAME_SOILTYPE_AUDIO, (Integer) soilTypes[x][3]);
insertEntriesIntoDatabase(TABLE_NAME_SOILTYPE, soilType, db);
soilType.clear();
}
Log.d(LOG_TAG, "soil type works");
Object[][] weatherTypeData = {
{ "Sunny", R.drawable.wf_sunny, R.raw.sunny },
{ "Chance of Rain", R.drawable.wf_lightrain, R.raw.lightshowers },
{ "Cloudy", R.drawable.wf_cloudy, R.raw.cloudy },
{ "Rain", R.drawable.wf_rain, R.raw.rain },
{ "Partly Cloudy", R.drawable.wf_partlycloudy, R.raw.overcast },
{ "Storm", R.drawable.wf_storm, R.raw.stormy }
};
ContentValues wt = new ContentValues();
for (int x = 0; x < weatherTypeData.length; x++) {
wt.put(COLUMN_NAME_WEATHERTYPE_NAME, (String) weatherTypeData[x][0]);
wt.put(COLUMN_NAME_WEATHERTYPE_IMAGE,
(Integer) weatherTypeData[x][1]);
wt.put(COLUMN_NAME_WEATHERTYPE_AUDIO,
(Integer) weatherTypeData[x][2]);
insertEntriesIntoDatabase(TABLE_NAME_WEATHERTYPE, wt, db);
wt.clear();
}
Log.d(LOG_TAG, "weather type works");
// cropTypes
ContentValues croptype = new ContentValues();
Object[][] cropData = {
{ "Groundnut", "Gndnut", R.drawable.pic_72px_groundnut,
R.drawable.pic_90px_groundnut_tiled, R.raw.gnut },
{ "Bajra / pearl millet", "Bajra", R.drawable.pic_72px_bajra,
R.drawable.pic_90px_bajra_tiled, R.raw.bajra },
{ "Castor", "Castor", R.drawable.pic_72px_castor,
R.drawable.pic_90px_castor_tiled, R.raw.castor },
{ "Cow pea", "Cow pea", R.drawable.pic_72px_cowpea,
R.drawable.pic_90px_cowpea_tiled, R.raw.cowpea },
{ "Field beans", "F beans", R.drawable.pic_72px_fieldbean,
R.drawable.fieldbean, R.raw.field_beans },
{ "Green / moong gram", "Gr gram",
R.drawable.pic_72px_greengram,
R.drawable.pic_90px_greengram_tiled, R.raw.greengram },
{ "Horse gram", "H gram", R.drawable.pic_72px_horsegram,
R.drawable.pic_90px_horsegram_tiled, R.raw.horsegram },
{ "Padddy / rice", "Padddy", R.drawable.pic_72px_paddy,
R.drawable.paddy, R.raw.paddy },
{ "Ragi / finger millet", "Ragi", R.drawable.pic_72px_ragi,
R.drawable.ragi, R.raw.ragi },
{ "Sorghum", "Sorghum", R.drawable.pic_72px_sorghum,
R.drawable.pic_90px_sorghum_tiled, R.raw.sorghum }
};
for (int x = 0; x < cropData.length; x++) {
croptype.put(COLUMN_NAME_CROPTYPE_NAME, (String) cropData[x][0]);
croptype.put(COLUMN_NAME_CROPTYPE_SHORTNAME,
(String) cropData[x][1]);
croptype.put(COLUMN_NAME_CROPTYPE_IMAGE, (Integer) cropData[x][2]);
croptype.put(COLUMN_NAME_CROPTYPE_BACKGROUNDIMAGE,
(Integer) cropData[x][3]);
croptype.put(COLUMN_NAME_CROPTYPE_AUDIO, (Integer) cropData[x][4]);
insertEntriesIntoDatabase(TABLE_NAME_CROPTYPE, croptype, db);
croptype.clear();
}
// seedType
ContentValues seedtype = new ContentValues();
Object[][] seedData = {
{ "JL24", "JL24", R.drawable.pic_72px_groundnut, R.raw.jl_24, 1 },
{ "K6 / Kadari ghat", "K6", R.drawable.pic_72px_groundnut,
R.raw.k_6, 1 },
{ "Samrat", "Samrat", R.drawable.pic_72px_groundnut,
R.raw.samrat, 1 },
{ "TMV2 / Bunching", "TMV2", R.drawable.pic_72px_groundnut,
R.raw.tmv_2, 1 },
{ "Bajra / pearl millet", "Bajra", R.drawable.pic_72px_bajra,
R.raw.bajra, 2 },
{ "Castor", "Castor", R.drawable.pic_72px_castor, R.raw.castor,
3 },
{ "Cow pea", "Cow pea", R.drawable.pic_72px_cowpea,
R.raw.cowpea, 4 },
{ "Field beans", "F beans", R.drawable.pic_72px_fieldbean,
R.raw.field_beans, 5 },
{ "Green / moong gram", "Gr gram",
R.drawable.pic_72px_greengram, R.raw.greengram, 6 },
{ "Horse gram", "H gram", R.drawable.pic_72px_horsegram,
R.raw.horsegram, 7 },
{ "Paddy / rice", "Paddy", R.drawable.pic_72px_paddy,
R.raw.paddy, 8 },
{ "Ragi / finger millet", "Ragi", R.drawable.pic_72px_ragi,
R.raw.ragi, 9 },
{ "Sorghum", "Sorghum", R.drawable.pic_72px_sorghum,
R.raw.sorghum, 10 }
};
for (int x = 0; x < seedData.length; x++) {
seedtype.put(COLUMN_NAME_SEEDTYPE_NAME, (String) seedData[x][0]);
seedtype.put(COLUMN_NAME_SEEDTYPE_SHORTNAME,
(String) seedData[x][1]);
seedtype.put(COLUMN_NAME_SEEDTYPE_RESOURCE,
(Integer) seedData[x][2]);
seedtype.put(COLUMN_NAME_SEEDTYPE_AUDIO, (Integer) seedData[x][3]);
seedtype.put(COLUMN_NAME_SEEDTYPE_CROPTYPEID,
(Integer) seedData[x][4]);
insertEntriesIntoDatabase(TABLE_NAME_SEEDTYPE, seedtype, db);
seedtype.clear();
}
Object[][] yieldData = {};
ContentValues yieldAgg = new ContentValues();
for (int x = 0; x < yieldData.length; x++) {
yieldAgg.put(COLUMN_NAME_YIELDAGG_HADPEST, (String) yieldData[x][0]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_HASFERTILIZED,
(String) yieldData[x][1]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_HADDISEASE,
(String) yieldData[x][2]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_HASIRRIGATED,
(String) yieldData[x][3]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_ID, (String) yieldData[x][4]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_PLACEID, (String) yieldData[x][5]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_SEASONID,
(String) yieldData[x][6]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_SEEDTYPEID,
(String) yieldData[x][7]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_SOWINGWINDOWID,
(String) yieldData[x][8]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_SPRAYED, (String) yieldData[x][9]);
yieldAgg.put(COLUMN_NAME_YIELDAGG_YIELDINQTPACRE,
(Double) yieldData[x][10]);
insertEntriesIntoDatabase(TABLE_NAME_YIELDAGG, yieldAgg, db);
yieldAgg.clear();
}
Object[][] adviceData = {
{
R.raw.till_date_collected_info + ","
+ R.raw.because_lateeafspot_podrot + ","
+ R.raw.percent_loss, 1, -1, 1 },
{
R.raw.till_date_collected_info + ","
+ R.raw.caused_by_leaf_miner + ","
+ R.raw.percent_loss, 6, -1, 1 }
};
ContentValues adviceAgg = new ContentValues();
for (int x = 0; x < adviceData.length; x++) {
adviceAgg.put(COLUMN_NAME_ADVICE_AUDIOSEQUENCE,
(String) adviceData[x][0]);
adviceAgg.put(COLUMN_NAME_ADVICE_PROBLEMTYPEID,
(Integer) adviceData[x][1]);
adviceAgg.put(COLUMN_NAME_ADVICE_SEEDTYPEID,
(Integer) adviceData[x][2]);
adviceAgg.put(COLUMN_NAME_ADVICE_STAGENUMBER,
(Integer) adviceData[x][3]);
insertEntriesIntoDatabase(TABLE_NAME_ADVICE, adviceAgg, db);
adviceAgg.clear();
}
Object[][] advicePieceData = {
{
1,
R.raw.advice_lateleafspot_podrot,
"34 g/ha (0.5 g per liter) of cyproconazole and 420 g/ha (1 g per liter) of chlorothalonil",
1, ACTION_TYPE_SPRAY_ID, -1 },
{ 2, R.raw.advice_leafminer, "monocrotophos 36 SL @ 1ml/l", 2,
ACTION_TYPE_SPRAY_ID, -1 },
};
ContentValues advicePieceAgg = new ContentValues();
for (int x = 0; x < advicePieceData.length; x++) {
advicePieceAgg.put(COLUMN_NAME_ADVICEPIECE_ADVICEID,
(Integer) advicePieceData[x][0]);
advicePieceAgg.put(COLUMN_NAME_ADVICEPIECE_AUDIO,
(Integer) advicePieceData[x][1]);
advicePieceAgg.put(COLUMN_NAME_ADVICEPIECE_COMMENT,
(String) advicePieceData[x][2]);
advicePieceAgg.put(COLUMN_NAME_ADVICEPIECE_ORDERNUMBER,
(Integer) advicePieceData[x][3]);
advicePieceAgg.put(COLUMN_NAME_ADVICEPIECE_SUGGESTEDACTIONID,
(Integer) advicePieceData[x][4]);
advicePieceAgg.put(COLUMN_NAME_ADVICEPIECE_SUGGESTEDRESOURCEID,
(Integer) advicePieceData[x][5]);
insertEntriesIntoDatabase(TABLE_NAME_ADVICEPIECE, advicePieceAgg,
db);
advicePieceAgg.clear();
}
}
/**
* Inserts the values into the current database in the specified table.
*
* @param tableName
* name of the table where the values will be inserted.
* @param values
* values to insert
*
* @return the row id of the newly inserted row, or -1 if an error occurred.
*/
public long insertEntries(String tableName, ContentValues values) {
return insertEntriesIntoDatabase(tableName, values, mDb);
}
/**
* Inserts the given values inside the specified table.
*
* @param tableName
* name of the table where the values will be inserted.
* @param values
* values to insert
* @param database
* database where the insert operation will be performed
*
* @return the row id of the newly inserted row, or -1 if an error occurred.
*/
public long insertEntriesIntoDatabase(String tableName,
ContentValues values, SQLiteDatabase database) {
long result = -1;
if (tableName != null && values != null) {
try {
result = database.insertOrThrow(tableName, null, values);
} catch (SQLException e) {
Log.d(LOG_TAG, "Exception: " + e);
}
}
return result;
}
/**
* Open database helper for writing
*
* @return ManageDatabase Object
* @throws SQLException
*/
public synchronized void open() throws SQLException {
// opens the database
if (mDb == null || !mDb.isOpen()) {
mDb = mOpenHelper.getWritableDatabase();
}
}
protected Cursor rawQuery(String sql, String[] selectionArgs) {
return mDb.rawQuery(sql, selectionArgs);
}
public long update(String tableName, ContentValues values,
String whereClause, String[] whereArgs) {
long result = -1;
if (tableName != null && values != null) {
result = mDb.update(tableName, values, whereClause, whereArgs);
}
return result;
}
}