Commit b1352af9 by Kunj Gupta

Added Local DB table for storing Variable form views and Variable choice values.

parent 3af6f1d6
package com.vsoft.uoflservicenow.api.listeners.get; package com.vsoft.uoflservicenow.api.listeners.get;
import com.vsoft.uoflservicenow.db.models.CatalogueVariable; import com.vsoft.uoflservicenow.db.models.CatalogueVariable;
import com.vsoft.uoflservicenow.db.models.CatalogueVariableSet;
import java.util.List; import java.util.List;
...@@ -11,5 +10,5 @@ import java.util.List; ...@@ -11,5 +10,5 @@ import java.util.List;
* *
*/ */
public interface GetCatalogueVariableApiListener { public interface GetCatalogueVariableApiListener {
void onDoneApiCall(List<CatalogueVariableSet> variableSetList, List<CatalogueVariable> variableList); void onDoneApiCall(List<CatalogueVariable> variableList);
} }
...@@ -94,6 +94,7 @@ public class CatalogueVariableApiManager { ...@@ -94,6 +94,7 @@ public class CatalogueVariableApiManager {
JSONObject catalogueJsonObject = jsonArray.getJSONObject(0); JSONObject catalogueJsonObject = jsonArray.getJSONObject(0);
JSONArray variableSetJsonArray = catalogueJsonObject.getJSONArray(Constants.RESPONSE_VARIABLE_SET_OBJECT_NAME); JSONArray variableSetJsonArray = catalogueJsonObject.getJSONArray(Constants.RESPONSE_VARIABLE_SET_OBJECT_NAME);
List<CatalogueVariableSet> variableSetList = new ArrayList<>(variableSetJsonArray.length()); List<CatalogueVariableSet> variableSetList = new ArrayList<>(variableSetJsonArray.length());
List<CatalogueVariable> finalVariableList = new ArrayList<>();
for (int i = 0; i < variableSetJsonArray.length(); i++) { for (int i = 0; i < variableSetJsonArray.length(); i++) {
JSONObject variableSetJsonObject = variableSetJsonArray.getJSONObject(i); JSONObject variableSetJsonObject = variableSetJsonArray.getJSONObject(i);
CatalogueVariableSet catalogueVariableSet = gson.fromJson(variableSetJsonObject.toString(), CatalogueVariableSet.class); CatalogueVariableSet catalogueVariableSet = gson.fromJson(variableSetJsonObject.toString(), CatalogueVariableSet.class);
...@@ -140,9 +141,19 @@ public class CatalogueVariableApiManager { ...@@ -140,9 +141,19 @@ public class CatalogueVariableApiManager {
return (lhs.getOrder() - rhs.getOrder()); return (lhs.getOrder() - rhs.getOrder());
} }
}); });
listener.onDoneApiCall(variableSetList, variableList);
/*For variableset */
for (int i = 0; i < variableSetList.size(); i++) {
CatalogueVariableSet catalogueVariableSet = variableSetList.get(i);
finalVariableList.addAll(catalogueVariableSet.getVariables());
}
/*For variable list*/
finalVariableList.addAll(variableList);
listener.onDoneApiCall(finalVariableList);
} else { } else {
listener.onDoneApiCall(new ArrayList<CatalogueVariableSet>(0), new ArrayList<CatalogueVariable>(0)); listener.onDoneApiCall(new ArrayList<CatalogueVariable>(0));
} }
return SyncStatus.SUCCESS; return SyncStatus.SUCCESS;
} else } else
......
package com.vsoft.uoflservicenow.api.managers;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.vsoft.uoflservicenow.CatalogueApplication;
import com.vsoft.uoflservicenow.db.models.VariableChoice;
import com.vsoft.uoflservicenow.utils.DBConstants;
import java.util.ArrayList;
import java.util.List;
/**
* @author Kunj on 11-08-2016.
*/
public class VariableChoiceManager implements DBConstants {
public static long save(VariableChoice variableChoice) {
SQLiteDatabase db = CatalogueApplication.getDatabase();
if (db != null) {
long id = db.insert(TABLE_VARIABLE_CHOICES, null, getContentValues(variableChoice));
variableChoice.setId(id);
return id;
} else {
return -1;
}
}
public static int delete(VariableChoice variableChoice) {
SQLiteDatabase db = CatalogueApplication.getDatabase();
if (db != null) {
return db.delete(TABLE_VARIABLE_CHOICES, VARIABLE_CHOICE_ID + "=" + variableChoice.getId(), null);
}
return -1;
}
public static void deleteAll(long variableId) {
List<VariableChoice> localVariableChoiceList = getAllVariableChoices(variableId);
if(!localVariableChoiceList.isEmpty()) {
SQLiteDatabase db = CatalogueApplication.getDatabase();
if (db != null) {
for (int i = 0; i < localVariableChoiceList.size(); i++) {
delete(localVariableChoiceList.get(i));
}
}
}
}
public static void handleGetVariableChoice(long variableId, List<VariableChoice> serverVariableChoiceList) {
if(serverVariableChoiceList != null && !serverVariableChoiceList.isEmpty()) {
/*First delete all existing variable choice for particular variable then we will save*/
deleteAll(variableId);
for (int i = 0; i < serverVariableChoiceList.size(); i++) {
VariableChoice variableChoice = serverVariableChoiceList.get(i);
variableChoice.setVariableId(variableId);
save(variableChoice);
}
} else {
/*That means there is no VariableChoice in server response,
*then all local items should be deleted those are contain that variable id*/
/*localVariableChoiceList is contain all local Catalogues */
deleteAll(variableId);
}
}
public static List<VariableChoice> getAllVariableChoices(long variableId) {
SQLiteDatabase db = CatalogueApplication.getDatabase();
if (db != null) {
Cursor c = db.rawQuery("select * from " + TABLE_VARIABLE_CHOICES
+ " where " + VARIABLE_CHOICE_VARIABLE_ID + "=" + variableId
+ " ORDER BY " + VARIABLE_CHOICE_ORDER + " ASC", null);
ArrayList<VariableChoice> variableChoiceList;
if (c.getCount() > 0) {
variableChoiceList = new ArrayList<>(c.getCount());
while (c.moveToNext()) {
VariableChoice.VariableChoiceBuilder builder = VariableChoice.VariableChoiceBuilder.aVariableChoice();
fillAllVariableChoiceDetails(c, builder);
variableChoiceList.add(builder.build());
}
} else {
variableChoiceList = new ArrayList<>(0);
}
c.close();
return variableChoiceList;
} else {
return new ArrayList<>(0);
}
}
public static VariableChoice get(long variableChoiceId) {
SQLiteDatabase db = CatalogueApplication.getDatabase();
VariableChoice variableChoice = null;
if (db != null) {
Cursor c = db.rawQuery("select * from " + TABLE_VARIABLE_CHOICES + " where " + VARIABLE_CHOICE_ID + "=" + variableChoiceId, null);
if (c.moveToFirst()) {
VariableChoice.VariableChoiceBuilder builder = VariableChoice.VariableChoiceBuilder.aVariableChoice();
fillAllVariableChoiceDetails(c, builder);
variableChoice = builder.build();
}
c.close();
}
return variableChoice;
}
private static void fillAllVariableChoiceDetails(Cursor c, VariableChoice.VariableChoiceBuilder builder) {
builder.setId(c.getLong(INDEX_VARIABLE_CHOICE_ID));
builder.setVariableId((c.getLong(INDEX_VARIABLE_CHOICE_VARIABLE_ID)));
builder.setText(c.getString(INDEX_VARIABLE_CHOICE_TEXT));
builder.setValue(c.getString(INDEX_VARIABLE_CHOICE_VALUE));
builder.setOrder(c.getInt(INDEX_VARIABLE_CHOICE_ORDER));
builder.setMisc(c.getFloat(INDEX_VARIABLE_CHOICE_MISC));
}
private static ContentValues getContentValues(VariableChoice variableChoice) {
ContentValues cv = new ContentValues(VARIABLE_CHOICE_COLUMN_COUNT - 1);
cv.put(VARIABLE_CHOICE_VARIABLE_ID, variableChoice.getVariableId());
cv.put(VARIABLE_CHOICE_TEXT, variableChoice.getText());
cv.put(VARIABLE_CHOICE_VALUE, variableChoice.getValue());
cv.put(VARIABLE_CHOICE_ORDER, variableChoice.getOrder());
cv.put(VARIABLE_CHOICE_MISC, variableChoice.getMisc());
return cv;
}
}
\ No newline at end of file
...@@ -29,6 +29,8 @@ public class DBManager extends SQLiteOpenHelper implements DBConstants { ...@@ -29,6 +29,8 @@ public class DBManager extends SQLiteOpenHelper implements DBConstants {
public void onCreate(SQLiteDatabase db) { public void onCreate(SQLiteDatabase db) {
createCatalogueTable(db); createCatalogueTable(db);
createCatalogueItemsTable(db); createCatalogueItemsTable(db);
createVariableTable(db);
createVariableChoiceTable(db);
} }
@Override @Override
...@@ -64,4 +66,31 @@ public class DBManager extends SQLiteOpenHelper implements DBConstants { ...@@ -64,4 +66,31 @@ public class DBManager extends SQLiteOpenHelper implements DBConstants {
+ CATALOGUE_ITEM_SYNC_DIRTY + " integer default " + SYNC_FLAG_NONE + CATALOGUE_ITEM_SYNC_DIRTY + " integer default " + SYNC_FLAG_NONE
+ ");"); + ");");
} }
private void createVariableTable(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_CATALOGUE_VARIABLES + "("
+ CATALOGUE_VARIABLE_ID + " integer primary key autoincrement, "
+ CATALOGUE_VARIABLE_CATALOGUE_ITEM_ID + " integer default -1, "
+ CATALOGUE_VARIABLE_SYS_ID + " text, "
+ CATALOGUE_VARIABLE_NAME + " text, "
+ CATALOGUE_VARIABLE_QUESTION_TEXT + " text, "
+ CATALOGUE_VARIABLE_TYPE + " integer, "
+ CATALOGUE_VARIABLE_MANDATORY + " integer, "
+ CATALOGUE_VARIABLE_NONE_REQUIRED + " integer, "
+ CATALOGUE_VARIABLE_REFERENCE_TABLE + " text, "
+ CATALOGUE_VARIABLE_ORDER + " text, "
+ CATALOGUE_VARIABLE_REFERENCE_COLUMN_NAME + " text, "
+ CATALOGUE_VARIABLE_SYNC_DIRTY + " integer default " + SYNC_FLAG_NONE
+ ");");
}
private void createVariableChoiceTable(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_VARIABLE_CHOICES + "("
+ VARIABLE_CHOICE_ID + " integer primary key autoincrement, "
+ VARIABLE_CHOICE_VARIABLE_ID + " integer default -1, "
+ VARIABLE_CHOICE_TEXT + " text, "
+ VARIABLE_CHOICE_VALUE + " integer, "
+ VARIABLE_CHOICE_ORDER + " integer, "
+ VARIABLE_CHOICE_MISC + " real);");
}
} }
...@@ -18,6 +18,9 @@ import java.util.List; ...@@ -18,6 +18,9 @@ import java.util.List;
*/ */
public class CatalogueVariable { public class CatalogueVariable {
private long id = -1;
private long catalogue_item_id = -1;
@SerializedName("name") @SerializedName("name")
@Expose @Expose
private String name; private String name;
...@@ -47,8 +50,25 @@ public class CatalogueVariable { ...@@ -47,8 +50,25 @@ public class CatalogueVariable {
// @Expose // @Expose
private ViewType type; private ViewType type;
private int syncDirty;
private List<VariableChoice> mVariableChoiceList; private List<VariableChoice> mVariableChoiceList;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getCatalogueItemId() {
return catalogue_item_id;
}
public void setCatalogueItemId(long catalogue_item_id) {
this.catalogue_item_id = catalogue_item_id;
}
/** /**
* *
* @return * @return
...@@ -161,6 +181,14 @@ public class CatalogueVariable { ...@@ -161,6 +181,14 @@ public class CatalogueVariable {
this.referenceColumnName = referenceColumnName; this.referenceColumnName = referenceColumnName;
} }
public int getSyncDirty() {
return syncDirty;
}
public void setSyncDirty(int syncDirty) {
this.syncDirty = syncDirty;
}
public List<VariableChoice> getVariableChoiceList() { public List<VariableChoice> getVariableChoiceList() {
return mVariableChoiceList; return mVariableChoiceList;
} }
...@@ -212,6 +240,109 @@ public class CatalogueVariable { ...@@ -212,6 +240,109 @@ public class CatalogueVariable {
this.setType(ViewType.from(viewType)); this.setType(ViewType.from(viewType));
} }
public static final class CatalogueVariableBuilder {
private long id = -1;
private long catalogue_item_id = -1;
private String name;
private String questionText;
private String sysId;
private boolean isNoneRequired;
private boolean mandatory;
private String referenceTable;
private int order;
private String referenceColumnName;
private ViewType type;
private int syncDirty;
private CatalogueVariableBuilder() {
}
public static CatalogueVariableBuilder aCatalogueVariable() {
return new CatalogueVariableBuilder();
}
public CatalogueVariableBuilder setId(long id) {
this.id = id;
return this;
}
public CatalogueVariableBuilder setCatalogueItemId(long catalogue_item_id) {
this.catalogue_item_id = catalogue_item_id;
return this;
}
public CatalogueVariableBuilder setName(String name) {
this.name = name;
return this;
}
public CatalogueVariableBuilder setQuestionText(String questionText) {
this.questionText = questionText;
return this;
}
public CatalogueVariableBuilder setSysId(String sysId) {
this.sysId = sysId;
return this;
}
public CatalogueVariableBuilder setNoneRequired(boolean noneRequired) {
this.isNoneRequired = noneRequired;
return this;
}
public CatalogueVariableBuilder setMandatory(boolean mandatory) {
this.mandatory = mandatory;
return this;
}
public CatalogueVariableBuilder setReferenceTable(String referenceTable) {
this.referenceTable = referenceTable;
return this;
}
public CatalogueVariableBuilder setOrder(int order) {
this.order = order;
return this;
}
public CatalogueVariableBuilder setReferenceColumnName(String referenceColumnName) {
this.referenceColumnName = referenceColumnName;
return this;
}
public CatalogueVariableBuilder setType(ViewType type) {
this.type = type;
return this;
}
public CatalogueVariableBuilder setSyncDirty(int syncDirty) {
this.syncDirty = syncDirty;
return this;
}
public CatalogueVariableBuilder but() {
return aCatalogueVariable().setId(id).setCatalogueItemId(catalogue_item_id).setName(name).setQuestionText(questionText).setSysId(sysId).setNoneRequired(isNoneRequired).setMandatory(mandatory).setReferenceTable(referenceTable).setOrder(order).setReferenceColumnName(referenceColumnName).setType(type).setSyncDirty(syncDirty);
}
public CatalogueVariable build() {
CatalogueVariable catalogueVariable = new CatalogueVariable();
catalogueVariable.setId(id);
catalogueVariable.setCatalogueItemId(catalogue_item_id);
catalogueVariable.setName(name);
catalogueVariable.setQuestionText(questionText);
catalogueVariable.setSysId(sysId);
catalogueVariable.setNoneRequired(isNoneRequired);
catalogueVariable.setMandatory(mandatory);
catalogueVariable.setReferenceTable(referenceTable);
catalogueVariable.setOrder(order);
catalogueVariable.setReferenceColumnName(referenceColumnName);
catalogueVariable.setType(type);
catalogueVariable.setSyncDirty(syncDirty);
return catalogueVariable;
}
}
public static class Json { public static class Json {
public static final String SYS_ID = "sys_id"; public static final String SYS_ID = "sys_id";
public static final String TYPE = "type"; public static final String TYPE = "type";
...@@ -221,14 +352,18 @@ public class CatalogueVariable { ...@@ -221,14 +352,18 @@ public class CatalogueVariable {
@Override @Override
public String toString() { public String toString() {
return "CatalogueVariable{" + return "CatalogueVariable{" +
"name='" + name + '\'' + "id=" + id +
", catalogue_item_id=" + catalogue_item_id +
", name='" + name + '\'' +
", questionText='" + questionText + '\'' + ", questionText='" + questionText + '\'' +
", sysId='" + sysId + '\'' + ", sysId='" + sysId + '\'' +
", mandatory=" + mandatory + ", mandatory=" + mandatory +
", isNoneRequired=" + isNoneRequired + ", isNoneRequired=" + isNoneRequired +
", referenceTable='" + referenceTable + '\'' + ", referenceTable='" + referenceTable + '\'' +
", order=" + order + ", order=" + order +
", referenceColumnName='" + referenceColumnName + '\'' +
", type=" + type + ", type=" + type +
", syncDirty=" + syncDirty +
", mVariableChoiceList=" + mVariableChoiceList + ", mVariableChoiceList=" + mVariableChoiceList +
'}'; '}';
} }
......
...@@ -6,6 +6,7 @@ import com.google.gson.annotations.SerializedName; ...@@ -6,6 +6,7 @@ import com.google.gson.annotations.SerializedName;
public class VariableChoice { public class VariableChoice {
private long id;
private long variable_id; private long variable_id;
@SerializedName("text") @SerializedName("text")
...@@ -21,6 +22,14 @@ public class VariableChoice { ...@@ -21,6 +22,14 @@ public class VariableChoice {
@Expose @Expose
private float misc; private float misc;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public long getVariableId() { public long getVariableId() {
return variable_id; return variable_id;
} }
...@@ -91,6 +100,67 @@ public class VariableChoice { ...@@ -91,6 +100,67 @@ public class VariableChoice {
this.misc = misc; this.misc = misc;
} }
public static final class VariableChoiceBuilder {
private long id;
private long variable_id;
private String text;
private String value;
private int order;
private float misc;
private VariableChoiceBuilder() {
}
public static VariableChoiceBuilder aVariableChoice() {
return new VariableChoiceBuilder();
}
public VariableChoiceBuilder setId(long id) {
this.id = id;
return this;
}
public VariableChoiceBuilder setVariableId(long variable_id) {
this.variable_id = variable_id;
return this;
}
public VariableChoiceBuilder setText(String text) {
this.text = text;
return this;
}
public VariableChoiceBuilder setValue(String value) {
this.value = value;
return this;
}
public VariableChoiceBuilder setOrder(int order) {
this.order = order;
return this;
}
public VariableChoiceBuilder setMisc(float misc) {
this.misc = misc;
return this;
}
public VariableChoiceBuilder but() {
return aVariableChoice().setId(id).setVariableId(variable_id).setText(text).setValue(value).setOrder(order).setMisc(misc);
}
public VariableChoice build() {
VariableChoice variableChoice = new VariableChoice();
variableChoice.setId(id);
variableChoice.setVariableId(variable_id);
variableChoice.setText(text);
variableChoice.setValue(value);
variableChoice.setOrder(order);
variableChoice.setMisc(misc);
return variableChoice;
}
}
public static class Json { public static class Json {
public static final String URL_PARAM_VARIABLE_CHOICE_SYSPRM_QUERY_VALUE = "question"; public static final String URL_PARAM_VARIABLE_CHOICE_SYSPRM_QUERY_VALUE = "question";
} }
...@@ -98,6 +168,7 @@ public class VariableChoice { ...@@ -98,6 +168,7 @@ public class VariableChoice {
@Override @Override
public String toString() { public String toString() {
return "VariableChoice{" + return "VariableChoice{" +
"id=" + id +
", variable_id=" + variable_id + ", variable_id=" + variable_id +
", text='" + text + '\'' + ", text='" + text + '\'' +
", value='" + value + '\'' + ", value='" + value + '\'' +
......
...@@ -148,9 +148,6 @@ public class CatalogueItemScreen extends AppCompatActivity { ...@@ -148,9 +148,6 @@ public class CatalogueItemScreen extends AppCompatActivity {
CatalogueLog.e("OnItemClickListener: position: " + position + ", Catalogue: " + catalogueItemList.get(position)); CatalogueLog.e("OnItemClickListener: position: " + position + ", Catalogue: " + catalogueItemList.get(position));
Intent intent = new Intent(CatalogueItemScreen.this, CatalogueVariableScreen.class); Intent intent = new Intent(CatalogueItemScreen.this, CatalogueVariableScreen.class);
intent.putExtra(Constants.DATA_KEY_SYS_ID, catalogueItemList.get(position).getSysId()); intent.putExtra(Constants.DATA_KEY_SYS_ID, catalogueItemList.get(position).getSysId());
intent.putExtra(Constants.DATA_KEY_CATALOGUE_ITEM_DESCRIPTION, catalogueItemList.get(position).getDescription());
intent.putExtra(Constants.DATA_KEY_CATALOGUE_ITEM_SHORT_DESCRIPTION, catalogueItemList.get(position).getShortDescription());
intent.putExtra(Constants.DATA_KEY_CATALOGUE_TITLE, catalogueItemList.get(position).getName());
startActivity(intent); startActivity(intent);
} }
}); });
......
...@@ -127,7 +127,6 @@ public class CatalogueScreen extends AppCompatActivity { ...@@ -127,7 +127,6 @@ public class CatalogueScreen extends AppCompatActivity {
CatalogueLog.e("OnItemClickListener: position: "+position + ", Catalogue: "+catalogueList.get(position)); CatalogueLog.e("OnItemClickListener: position: "+position + ", Catalogue: "+catalogueList.get(position));
Intent intent = new Intent(CatalogueScreen.this, CatalogueItemScreen.class); Intent intent = new Intent(CatalogueScreen.this, CatalogueItemScreen.class);
intent.putExtra(Constants.DATA_KEY_SYS_ID, catalogueList.get(position).getSysId()); intent.putExtra(Constants.DATA_KEY_SYS_ID, catalogueList.get(position).getSysId());
intent.putExtra(Constants.DATA_KEY_CATALOGUE_TITLE, catalogueList.get(position).getTitle());
startActivity(intent); startActivity(intent);
} }
}); });
......
...@@ -26,9 +26,6 @@ public class Constants { ...@@ -26,9 +26,6 @@ public class Constants {
*/ */
public static final String DATA_DATE_AND_TIME_PICKER_TITLE = "title"; public static final String DATA_DATE_AND_TIME_PICKER_TITLE = "title";
public static final String DATA_KEY_SYS_ID = "sys_id"; public static final String DATA_KEY_SYS_ID = "sys_id";
public static final String DATA_KEY_CATALOGUE_TITLE = "catalogue_title";
public static final String DATA_KEY_CATALOGUE_ITEM_DESCRIPTION = "catalogue_item_des";
public static final String DATA_KEY_CATALOGUE_ITEM_SHORT_DESCRIPTION = "catalogue_item_short_des";
public static final String DATA_KEY_REFERENCE_TABLE_NAME = "table_name"; public static final String DATA_KEY_REFERENCE_TABLE_NAME = "table_name";
public static final String DATA_KEY_REFERENCE_TABLE_COLUMN_NAME = "table_column_name"; public static final String DATA_KEY_REFERENCE_TABLE_COLUMN_NAME = "table_column_name";
public static final String DATA_KEY_REFERENCE_TITLE = "title"; public static final String DATA_KEY_REFERENCE_TITLE = "title";
......
...@@ -4,6 +4,8 @@ public interface DBConstants { ...@@ -4,6 +4,8 @@ public interface DBConstants {
//Tables //Tables
String TABLE_CATALOGUE = "catalogue_category"; String TABLE_CATALOGUE = "catalogue_category";
String TABLE_CATALOGUE_ITEM = "catalogue_category_item"; String TABLE_CATALOGUE_ITEM = "catalogue_category_item";
String TABLE_CATALOGUE_VARIABLES = "catalogue_variable";
String TABLE_VARIABLE_CHOICES = "variable_choices";
String ID = "_id"; String ID = "_id";
String SYS_ID = "sys_id"; String SYS_ID = "sys_id";
...@@ -62,4 +64,59 @@ public interface DBConstants { ...@@ -62,4 +64,59 @@ public interface DBConstants {
int CATALOGUE_ITEM_COLUMN_COUNT = 8; int CATALOGUE_ITEM_COLUMN_COUNT = 8;
/**
* Catalogue variables table
*/
String CATALOGUE_VARIABLE_ID = ID;
String CATALOGUE_VARIABLE_CATALOGUE_ITEM_ID = "catalogue_item_id";
String CATALOGUE_VARIABLE_SYS_ID = SYS_ID;
String CATALOGUE_VARIABLE_NAME = "name";
String CATALOGUE_VARIABLE_QUESTION_TEXT = "question_text";
String CATALOGUE_VARIABLE_TYPE = "type";
String CATALOGUE_VARIABLE_MANDATORY = "mandatory";
String CATALOGUE_VARIABLE_NONE_REQUIRED = "none_required";
String CATALOGUE_VARIABLE_REFERENCE_TABLE = "reference_table";
String CATALOGUE_VARIABLE_ORDER= "variable_order";
String CATALOGUE_VARIABLE_REFERENCE_COLUMN_NAME = "reference_column_name";
String CATALOGUE_VARIABLE_SYNC_DIRTY = SYNC_DIRTY;
/**
* Indices for Catalogue variables table. *Use these only if you fetch all columns*
*/
int INDEX_CATALOGUE_VARIABLE_ID = 0;
int INDEX_CATALOGUE_VARIABLE_CATALOGUE_ITEM_ID = 1;
int INDEX_CATALOGUE_VARIABLE_SYS_ID = 2;
int INDEX_CATALOGUE_VARIABLE_NAME = 3;
int INDEX_CATALOGUE_VARIABLE_QUESTION_TEXT = 4;
int INDEX_CATALOGUE_VARIABLE_TYPE = 5;
int INDEX_CATALOGUE_VARIABLE_MANDATORY = 6;
int INDEX_CATALOGUE_VARIABLE_NONE_REQUIRED = 7;
int INDEX_CATALOGUE_VARIABLE_REFERENCE = 8;
int INDEX_CATALOGUE_VARIABLE_ORDER = 9;
int INDEX_CATALOGUE_VARIABLE_REFERENCE_COLUMN_NAME = 10;
int INDEX_CATALOGUE_VARIABLE_SYNC_DIRTY = 11;
int CATALOGUE_VARIABLE_COLUMN_COUNT = 12;
/**
* Variables Choice table
*/
String VARIABLE_CHOICE_ID = ID;
String VARIABLE_CHOICE_VARIABLE_ID = "variable_id";
String VARIABLE_CHOICE_TEXT = "text";
String VARIABLE_CHOICE_VALUE = "value";
String VARIABLE_CHOICE_ORDER = "choice_order";
String VARIABLE_CHOICE_MISC = "misc";
/**
* Indices for Variables Choice table. *Use these only if you fetch all columns*
*/
int INDEX_VARIABLE_CHOICE_ID = 0;
int INDEX_VARIABLE_CHOICE_VARIABLE_ID = 1;
int INDEX_VARIABLE_CHOICE_TEXT = 2;
int INDEX_VARIABLE_CHOICE_VALUE = 3;
int INDEX_VARIABLE_CHOICE_ORDER = 4;
int INDEX_VARIABLE_CHOICE_MISC = 5;
int VARIABLE_CHOICE_COLUMN_COUNT = 6;
} }
\ No newline at end of file
package com.vsoft.uoflservicenow.utils; package com.vsoft.uoflservicenow.utils;
import android.content.Context; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.text.InputType; import android.text.InputType;
...@@ -21,6 +22,7 @@ import android.widget.TextView; ...@@ -21,6 +22,7 @@ import android.widget.TextView;
import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker; import com.google.android.gms.analytics.Tracker;
import com.vsoft.uoflservicenow.CatalogueApplication;
import com.vsoft.uoflservicenow.R; import com.vsoft.uoflservicenow.R;
import com.vsoft.uoflservicenow.db.models.CatalogueVariable; import com.vsoft.uoflservicenow.db.models.CatalogueVariable;
import com.vsoft.uoflservicenow.db.models.Reference; import com.vsoft.uoflservicenow.db.models.Reference;
...@@ -31,6 +33,7 @@ import java.text.ParseException; ...@@ -31,6 +33,7 @@ import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Locale; import java.util.Locale;
/** /**
...@@ -311,6 +314,41 @@ public class Util { ...@@ -311,6 +314,41 @@ public class Util {
return date.getTime(); return date.getTime();
} }
public static void createDynamicTable(String catalogueItemSysId, List<CatalogueVariable> catalogueVariableList) {
StringBuilder queryString = new StringBuilder();
//Opens database in writable mode.
SQLiteDatabase database = CatalogueApplication.getDatabase();
queryString.append("CREATE TABLE IF NOT EXISTS t_");
queryString.append(catalogueItemSysId);
queryString.append(" (");
queryString.append(DBConstants.ID);
queryString.append(" integer primary key autoincrement, ");
CatalogueVariable catalogueVariable = catalogueVariableList.get(0);
if(catalogueVariable.getName() != null) {
queryString.append(catalogueVariable.getName());
queryString.append(" text, ");
}
for(int i = 1; i < catalogueVariableList.size(); i++) {
catalogueVariable = catalogueVariableList.get(i);
if(catalogueVariable.getName()!=null) {
queryString.append(catalogueVariable.getName());
queryString.append(" text, ");
}
}
queryString.append(DBConstants.CATALOGUE_VARIABLE_SYNC_DIRTY);
queryString.append(" integer default ");
queryString.append(DBConstants.SYNC_FLAG_NONE);
queryString.append(");");
System.out.println("Create Table Stmt : "+ queryString);
database.execSQL(queryString.toString());
}
/*Record a screen view hit for the visible*/ /*Record a screen view hit for the visible*/
public static void sendScreenName(Tracker tracker, String name) { public static void sendScreenName(Tracker tracker, String name) {
tracker.setScreenName(name); tracker.setScreenName(name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment