· 6 years ago · Mar 06, 2019, 04:26 AM
1package com.actxa.actxa.model;
2
3import android.content.Context;
4import android.database.sqlite.SQLiteDatabase;
5import android.database.sqlite.SQLiteOpenHelper;
6
7import com.actxa.actxa.ActxaCache;
8import com.actxa.actxa.util.GeneralUtil;
9import com.actxa.actxa.view.home.MainApplication;
10
11/**
12 * Created by Handrata Samsul on 11/12/2015.
13 */
14public class ActxaStride2DatabaseHelper extends SQLiteOpenHelper {
15
16
17 private static ActxaStride2DatabaseHelper instance;
18
19 public static synchronized ActxaStride2DatabaseHelper getInstance(){
20// if (instance == null) {
21 instance = new ActxaStride2DatabaseHelper(MainApplication.getInstance());
22// }
23 return instance;
24 }
25
26 private static final String TAG_LOG = "ActxaStride2DatabaseHelper";
27 // If you change the database schema, you must increment the database Version.
28 public static final int DATABASE_VERSION = 10;
29 public static final String DATABASE_NAME = "Actxa.db";
30
31 private static final String INTEGER_TYPE = " INTEGER";
32 private static final String REAL_TYPE = " REAL";
33 private static final String TEXT_TYPE = " TEXT";
34 private static final String COMMA_SEP = ",";
35
36 private static final String SQL_CREATE_TABLE_STEP_TRACKER =
37 "CREATE TABLE IF NOT EXISTS AppFitnessData (LocalID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, Date TEXT, " +
38 "Steps INTEGER, Distance REAL, Calories INTEGER, ActiveMinutes INTEGER, SleepTime INTEGER, CreatedAt TEXT, UpdatedAt TEXT, Synched INTEGER, TimeUnit INTEGER, TimeZone TEXT)";
39
40 private static final String SQL_CREATE_TABLE_APP_ANNOUNCEMENT =
41 "CREATE TABLE IF NOT EXISTS AppAnnouncement (AnnouncementID INTEGER PRIMARY KEY, Announcement TEXT, ShowMode INTEGER, NoMoreShown INTEGER, " +
42 "ActiveStartDate TEXT, ActiveEndDate TEXT, CreatedAt TEXT, RetrievedAt TEXT)";
43
44 //deprecated > updated to add accountID and userID
45 private static final String SQL_CREATE_TABLE_WEIGHT_HISTORY =
46 "CREATE TABLE IF NOT EXISTS WeightHistory (WeightID INTEGER, AccountID TEXT, UserID TEXT, Date TEXT, Weight REAL, WeightGoal REAL, " +
47 "WeightUnit TEXT, DisplayUnit TEXT, ProductCode TEXT, BoneMass REAL, BodyWater REAL, BodyFat REAL, BMI REAL, MuscleMass REAL, " +
48 "CreatedAt TEXT, UpdatedAt TEXT, Synched INTEGER, PRIMARY KEY ( WeightID, AccountID, UserID ))";
49
50
51 private static final String SQL_CREATE_TABLE_SLEEP_PATTERN =
52 "CREATE TABLE IF NOT EXISTS SleepPattern (SleepID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, StartDate TEXT, EndDate REAL, " +
53 "Duration INTEGER, SleepData TEXT, CreatedAt TEXT, UpdatedAt TEXT, Synched INTEGER, isDeleted INTEGER, SleepMode INTEGER)";
54
55 //deprecated table
56 private static final String SQL_CREATE_TABLE_WEIGHT_HISTORY_SENSE_USERS =
57 "CREATE TABLE IF NOT EXISTS WeightHistorySenseUsers (WeightID INTEGER. AccountID TEXT, Date TEXT, Weight REAL, WeightGoal REAL, " +
58 "WeightUnit TEXT, DisplayUnit TEXT, ProductCode TEXT, BoneMass REAL, BodyWater REAL, BodyFat REAL, Metabolism REAL, MuscleMass REAL, " +
59 "CreatedAt TEXT, UpdatedAt TEXT, Synched INTEGER, PRIMARY KEY ( WeightID, AccountID ))";
60
61
62 private static final String SQL_CREATE_TABLE_HEARTRATE =
63 "CREATE TABLE IF NOT EXISTS HeartRateData (HeartRateID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
64 "Date TEXT UNIQUE, HeartRate INTEGER, ActivityMode INTEGER," +
65 " WorkoutID INTEGER REFERENCES WorkoutData(WorkoutID) ON UPDATE CASCADE," +
66 " RestHRID INTEGER REFERENCES RestHRData(RestHRID) ON UPDATE CASCADE, " +
67 "Synched INTEGER)";
68
69 public interface FilteredHRColumns {
70
71 String TABLE_NAME = "FilteredHR";
72
73 String COLUMN_NAME_FILTER_HR_ID = "FilterHRID";
74 String COLUMN_NAME_WORK_OUT_ID = "WorkoutID"; // foreign key to workoutData table
75 String COLUMN_NAME_HEART_RATE = "HeartRate";
76 String COLUMN_NAME_RELAX_DURATION = "RelaxDuration";
77 String COLUMN_NAME_WARM_UP_DURATION = "WarmUpDuration";
78 String COLUMN_NAME_FAT_BURN_DURATION = "FatBurnDuration";
79 String COLUMN_NAME_CARDIO_DURATION = "CardioDuration";
80 String COLUMN_NAME_INTENSE_DURATION = "IntenseDuration";
81 String COLUMN_NAME_MAX_DURATION = "MaxDuration";
82 String COLUMN_NAME_MAX_HR = "MaxHeartRate";
83 String COLUMN_NAME_USER_MAX_HR = "userMaxHR";
84 String SYNCED = "Synced";
85
86 }
87
88 private static final String SQL_CREATE_FILTERED_HEART_RATE = "CREATE TABLE IF NOT EXISTS "+ FilteredHRColumns.TABLE_NAME+" ("+
89 FilteredHRColumns.COLUMN_NAME_FILTER_HR_ID+" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "+
90 FilteredHRColumns.COLUMN_NAME_WORK_OUT_ID+" INTEGER, "+
91 FilteredHRColumns.COLUMN_NAME_HEART_RATE+" TEXT, "+
92 FilteredHRColumns.COLUMN_NAME_RELAX_DURATION+" INTEGER, "+
93 FilteredHRColumns.COLUMN_NAME_WARM_UP_DURATION+" INTEGER, "+
94 FilteredHRColumns.COLUMN_NAME_FAT_BURN_DURATION+" INTEGER, "+
95 FilteredHRColumns.COLUMN_NAME_CARDIO_DURATION+" INTEGER, "+
96 FilteredHRColumns.COLUMN_NAME_INTENSE_DURATION+" INTEGER, "+
97 FilteredHRColumns.COLUMN_NAME_MAX_DURATION+" INTEGER, "+
98 FilteredHRColumns.COLUMN_NAME_MAX_HR+" INTEGER, "+
99 FilteredHRColumns.COLUMN_NAME_USER_MAX_HR + " INTEGER, " +
100 FilteredHRColumns.SYNCED + " INTEGER, " +
101 "UNIQUE (" + FilteredHRColumns.COLUMN_NAME_WORK_OUT_ID + ") ON CONFLICT REPLACE) ";
102
103
104 private static final String SQL_CREATE_TABLE_WORKOUT =
105 "CREATE TABLE IF NOT EXISTS WorkoutData (WorkoutID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, StartDate TEXT UNIQUE, " +
106 "Steps INTEGER, Distance REAL, Calories INTEGER, ActiveTime INTEGER, Duration INTEGER, Synched INTEGER, " +
107 "isDeleted INTEGER, AverageHR INTEGER, ModerateIntensity INTEGER, VigorousIntensity INTEGER, " +
108 "Vo2MaxID INTEGER REFERENCES Vo2MaxData(Vo2MaxID) ON UPDATE CASCADE)";
109
110
111 private static final String SQL_CREATE_TABLE_RESTHR =
112 "CREATE TABLE IF NOT EXISTS RestHRData (RestHRID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, StartDate TEXT UNIQUE, " +
113 "Duration INTEGER, HeartRate INTEGER, Synched INTEGER)";
114
115 private static final String SQL_CREATE_TABLE_AGGREGATE_WORKOUT =
116 "CREATE TABLE IF NOT EXISTS AggWorkoutData (WorkoutID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, StartDate TEXT, " +
117 "Duration INTEGER, TimeUnit INTEGER, Synched INTEGER, TimeZone TEXT);" +
118 " CREATE UNIQUE INDEX AggWorkoutDate ON AggWorkoutData (StartDate, TimeUnit);";
119
120 public interface AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS{
121 String TABLE_NAME = "AggPhysicalHistory";
122 String WEIGHT_ID = "WeightID";
123 String WEIGHT = "Weight";
124 String WEIGHT_UNIT = "WeightUnit";
125 String DISPLAY_UNIT = "DisplayUnit";
126 String DATE = "Date";
127 String TIME_UNIT = "TimeUnit";
128 String TIME_ZONE = "TimeZone";
129 String SYNCED = "Synced";
130 }
131
132 private static final String SQL_CREATE_TABLE_AGGREGATE_PHYSICAL_HISTORY = "CREATE TABLE IF NOT EXISTS "+
133 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.TABLE_NAME+" ( "+
134 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.WEIGHT_ID+" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"+
135 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.WEIGHT+" REAL,"+
136 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.WEIGHT_UNIT+" TEXT,"+
137 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.DISPLAY_UNIT+" TEXT,"+
138 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.TIME_UNIT+" INTEGER,"+
139 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.TIME_ZONE+" TEXT,"+
140 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.DATE + " TEXT, " +
141 AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.SYNCED + " INTEGER); " +
142 "CREATE UNIQUE INDEX AggPhysicalHistoryDate ON " + AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.TABLE_NAME +
143 " (" + AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.DATE + ", " + AGGREGATE_PHYSICAL_HISTORY_TABLE_COLUMNS.TIME_UNIT + ");";
144
145
146 private static final String SQL_CREATE_TABLE_VO2MAXDATA =
147 "CREATE TABLE IF NOT EXISTS Vo2MaxData (Vo2MaxID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, Vo2Max REAL, FitnessAge INTEGER," +
148 " FitnessLevel INTEGER, Synced INTEGER)";
149
150 private static final String SQL_CREATE_TABLE_AGGVO2MAXDATA =
151 "CREATE TABLE IF NOT EXISTS AggVo2MaxData (AggVo2MaxID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, Date TEXT, TimeUnit INTEGER, " +
152 "TimeZone TEXT, Vo2Max REAL, FitnessAge INTEGER, FitnessLevel INTEGER, Synced INTEGER);" +
153 " CREATE UNIQUE INDEX AggVo2MaxDate ON AggVo2MaxData (Date, TimeUnit);";
154
155 private static final String SQL_CREATE_TABLE_AGGINTENSITYMINSDATA =
156 "CREATE TABLE IF NOT EXISTS AggIntensityMinsData (AggIntensityMinsID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, Date TEXT, TimeUnit INTEGER, " +
157 "TimeZone TEXT, ModerateIntensity INTEGER, VigorousIntensity INTEGER, Synced INTEGER);" +
158 " CREATE UNIQUE INDEX AggIntensityMinsDate ON AggIntensityMinsData (Date, TimeUnit);";
159
160 private static final String SQL_CREATE_TABLE_ALLDAYHRDATA =
161 "CREATE TABLE IF NOT EXISTS AllDayHRData (AllDayHRID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, Date TEXT UNIQUE, " +
162 "HeartRate TEXT, MaxHR INTEGER, MinHR INTEGER, AvgHR INTEGER, UserMaxHR INTEGER, TimeZone TEXT, Synced INTEGER);";
163
164
165 private static final String SQL_CREATE_TABLE_VO2MAXCLASSIFICATION =
166 "CREATE TABLE IF NOT EXISTS Vo2MaxClassification (Gender TEXT, AgeGroup INTEGER, Vo2Max REAL, Classification TEXT," +
167 " Percentage INTEGER); CREATE UNIQUE INDEX Vo2MaxIndex ON Vo2MaxClassification (Gender, AgeGroup, Vo2Max);";
168
169
170 //Changes to existing weightHistory - for scale support
171 private static final String SQL_ALTER_WEIGHT_HISTORY_1 =
172 "ALTER TABLE WeightHistory ADD COLUMN WeightUnit TEXT";
173
174 private static final String SQL_ALTER_WEIGHT_HISTORY_2 =
175 "ALTER TABLE WeightHistory ADD COLUMN DisplayUnit TEXT";
176
177 private static final String SQL_ALTER_WEIGHT_HISTORY_3 =
178 "ALTER TABLE WeightHistory ADD COLUMN ProductCode TEXT";
179
180 private static final String SQL_ALTER_WEIGHT_HISTORY_4 =
181 "ALTER TABLE WeightHistory ADD COLUMN BoneMass REAL";
182
183 private static final String SQL_ALTER_WEIGHT_HISTORY_5 =
184 "ALTER TABLE WeightHistory ADD COLUMN BodyWater REAL";
185
186 private static final String SQL_ALTER_WEIGHT_HISTORY_6 =
187 "ALTER TABLE WeightHistory ADD COLUMN BodyFat REAL";
188
189 private static final String SQL_ALTER_WEIGHT_HISTORY_7 =
190 "ALTER TABLE WeightHistory ADD COLUMN BMI REAL";
191
192 private static final String SQL_ALTER_WEIGHT_HISTORY_8 =
193 "ALTER TABLE WeightHistory ADD COLUMN MuscleMass REAL";
194
195 private static final String SQL_UPDATE_WEIGHT_HISTORY_RECORDS =
196 "UPDATE WeightHistory SET Date = strftime('%Y-%m-%d %H:%M:%S', Date)";
197
198 /*ALTER TABLE WeightHistory
199 RENAME TO temp1;*/
200 private static final String SQL_ALTER_WEIGHT_HISTORY_9 =
201 "ALTER TABLE WeightHistory RENAME TO temp1; ";
202
203 /*ALTER TABLE WeightHistorySenseUsers
204 RENAME TO temp2;*/
205 private static final String SQL_ALTER_WEIGHT_HISTORY_10 =
206 "ALTER TABLE WeightHistory RENAME TO temp2; ";
207
208 private static final String SQL_CREATE_NEW_WEIGHTHISTORY =
209 "CREATE TABLE IF NOT EXISTS WeightHistory (WeightID INTEGER AUTOINCREMENT NOT NULL, AccountID TEXT, UserID TEXT, Date TEXT, Weight REAL, WeightGoal REAL, " +
210 "WeightUnit TEXT, DisplayUnit TEXT, ProductCode TEXT, BoneMass REAL, BodyWater REAL, BodyFat REAL, BMI REAL, MuscleMass REAL, " +
211 "CreatedAt TEXT, UpdatedAt TEXT, Synched INTEGER, PRIMARY KEY ( WeightID, AccountID, UserID ))";
212
213
214 /*INSERT INTO WeightHistory (WeightID, AccountID, Date, Weight, WeightGoal, WeightUnit, DisplayUnit, ProductCode, BoneMass, BodyWater, BodyFat, Metabolism, MuscleMass, CreatedAt, UpdatedAt, Synched, USERID)
215 SELECT
216 WeightID,
217 NULL,
218 Date,
219 Weight,
220 WeightGoal,
221 WeightUnit,
222 DisplayUnit,
223 ProductCode,
224 BoneMass,
225 BodyWater,
226 BodyFat,
227 Metabolism,
228 MuscleMass,
229 CreatedAt,
230 UpdatedAt,
231 Synched,
232 NULL
233 FROM temp1;*/
234
235 private static final String SQL_INSERT_INTO_NEW_WEIGHTHISTORY_TEMP1 =
236 "INSERT INTO WeightHistory (WeightID, AccountID, UserID, Date, Weight, WeightGoal, WeightUnit, DisplayUnit, ProductCode, BoneMass, BodyWater, BodyFat, BMI, MuscleMass, CreatedAt, UpdatedAt, Synched) " +
237 "SELECT WeightID, NULL," + ActxaCache.getInstance().getActxaUser().getUserID() + ", Date, Weight, WeightGoal, WeightUnit, DisplayUnit, ProductCode, BoneMass, BodyWater, BodyFat, Metabolism, MuscleMass, CreatedAt, UpdatedAt, Synched FROM temp1";
238
239 /*INSERT INTO WeightHistory (WeightID, AccountID, Date, Weight, WeightGoal, WeightUnit, DisplayUnit, ProductCode, BoneMass, BodyWater, BodyFat, Metabolism, MuscleMass, CreatedAt, UpdatedAt, Synched, USERID)
240 SELECT
241 WeightID,
242 AccountID,
243 Date,
244 Weight,
245 WeightGoal,
246 WeightUnit,
247 DisplayUnit,
248 ProductCode,
249 BoneMass,
250 BodyWater,
251 BodyFat,
252 Metabolism,
253 MuscleMass,
254 CreatedAt,
255 UpdatedAt,
256 Synched,
257 NULL
258 FROM temp2;*/
259
260 private static final String SQL_INSERT_INTO_NEW_WEIGHTHISTORY_TEMP2 =
261 "INSERT INTO WeightHistory (WeightID, AccountID, UserID, Date, Weight, WeightGoal, WeightUnit, DisplayUnit, ProductCode, BoneMass, BodyWater, BodyFat, BMI, MuscleMass, CreatedAt, UpdatedAt, Synched) " +
262 "SELECT WeightID, AccountID, NULL, Date, Weight, WeightGoal, WeightUnit, DisplayUnit, ProductCode, BoneMass, BodyWater, BodyFat, Metabolism, MuscleMass, CreatedAt, UpdatedAt, Synched FROM temp2";
263
264
265 /*DROP TABLE temp1;
266DROP TABLE temp2;*/
267 private static final String SQL_DROP_TABLE_TEMP1 =
268 "DROP TABLE temp1 ";
269 private static final String SQL_DROP_TABLE_TEMP2 =
270 "DROP TABLE temp2 ";
271
272
273 //add isDeleted to sleep pattern
274 private static final String SQL_ALTER_SLEEP_PATTERN =
275 "ALTER TABLE SleepPattern ADD COLUMN isDeleted INTEGER";
276
277 private static final String SQL_FIX_NULL_ACCOUNTID_WEIGHTHISTORY = "UPDATE WeightHistory SET AccountID = '' WHERE AccountID = \"null\"";
278 private static final String SQL_FIX_NULL_USERID_WEIGHTHISTORY = "UPDATE WeightHistory SET UserID = '' WHERE UserID = \"null\"";
279
280 //add SleepMode to sleep pattern
281 private static final String SQL_ALTER_SLEEP_PATTERN_2 =
282 "ALTER TABLE SleepPattern ADD COLUMN SleepMode INTEGER";
283
284 //add foreign key RestHRID to heartrate
285 private static final String SQL_ALTER_HEARTRATE =
286 "ALTER TABLE HeartRateData ADD COLUMN RestHRID INTEGER REFERENCES RestHRData(RestHRID) ON UPDATE CASCADE";
287
288 //add timezone and timeunit to fitness
289 private static final String SQL_ALTER_FITNESS =
290 "ALTER TABLE AppFitnessData ADD COLUMN TimeUnit INTEGER";
291
292 private static final String SQL_ALTER_FITNESS_2 =
293 "ALTER TABLE AppFitnessData ADD COLUMN TimeZone TEXT";
294
295 //for backward populate default timeunit and timezone to fitness
296 private static final String SQL_UPDATE_FITNESS_DEFAULT = "UPDATE AppFitnessData SET TimeUnit = 0, TimeZone = '" + ActxaCache.getInstance().getActxaUser().getTimeZone() + "';";
297
298 //for backward change of date format of sleep pattern
299 private static final String SQL_UPDATE_SLEEPPATTERN_DEFAULT = "UPDATE SleepPattern SET StartDate = (substr(StartDate, 0, 11))||'T'||(substr(StartDate, 12, 8))||'" + GeneralUtil.getUserCurrentTimezone() + "' , EndDate = (substr(EndDate, 0, 11))||'T'|| (substr(EndDate, 12, 8))||'" + GeneralUtil.getUserCurrentTimezone() + "';";
300
301 //for backward change of date format of physicalHistory
302 private static final String SQL_UPDATE_PHYSICALHISTORY_DEFAULT = "UPDATE WeightHistory SET Date = (substr(Date, 0, 11))||'T'||(substr(Date, 12, 8))||'" + GeneralUtil.getUserCurrentTimezone() + "';";
303
304 //add average hr to workout
305 private static final String SQL_ALTER_WORKOUTDATA =
306 "ALTER TABLE WorkoutData ADD COLUMN AverageHR INTEGER";
307
308 //for backward convert date to current timezone
309 private static final String SQL_UPDATE_WORKOUTDATA_TIMEZONE = "Update WorkoutData Set StartDate = strftime('%Y-%m-%dT%H:%M:%S',datetime(CAST(strftime('%s',substr(StartDate, 0, 24)) AS INTEGER) + " + (GeneralUtil.getCurrentOffsetFromTimezone() / 1000) + ", 'unixepoch'))||'" + GeneralUtil.getUserCurrentTimezone() + "';";
310
311 //for backward calc average hr for each workout
312 private static final String SQL_UPDATE_WORKOUTDATA_AVGHR = "UPDATE WorkoutData SET AverageHR = (SELECT IFNULL(CAST(AVG(heartrate) AS INTEGER), 0) FROM HeartRateData WHERE HeartRateData.workoutID = WorkoutData.workoutID);";
313
314 //remove existing aggworkoutdata and recreate
315 private static final String SQL_DELETE_AGGWORKOUTDATA = "DROP TABLE AggWorkoutData;";
316
317 //for backward clearing of duplicated heartrate data due to fail insert of workouts
318 private static final String SQL_DELETE_HEARTRATEDATA_DUPLICATES = "Delete FROM HeartRateData WHERE workoutID = -1;";
319
320 //for backward convert date to current timezone
321 private static final String SQL_UPDATE_HEARTRATEDATA_TIMEZONE = "Update HeartRateData Set Date = strftime('%Y-%m-%dT%H:%M:%S',datetime(CAST(strftime('%s',substr(Date, 0, 24)) AS INTEGER) + " + (GeneralUtil.getCurrentOffsetFromTimezone() / 1000) + ", 'unixepoch'))||'" + GeneralUtil.getUserCurrentTimezone() + "';";
322
323 //for backward convert date to current timezone
324 private static final String SQL_UPDATE_RESTHRDATA_TIMEZONE = "Update RestHRData Set StartDate = strftime('%Y-%m-%dT%H:%M:%S',datetime(CAST(strftime('%s',substr(StartDate, 0, 24)) AS INTEGER) + " + (GeneralUtil.getCurrentOffsetFromTimezone() / 1000) + ", 'unixepoch'))||'" + GeneralUtil.getUserCurrentTimezone() + "';";
325
326 //add timezone to aggheartrate
327 //private static final String SQL_ALTER_AGGHEARTRATEDATA =
328 //"ALTER TABLE AggHeartRateData ADD COLUMN TimeZone TEXT";
329
330 //for backward populate default
331 private static final String SQL_UPDATE_AGGHEARTRATEDATA_DEFAULT = "UPDATE AggHeartRateData SET Date = strftime('%Y-%m-%d',datetime(CAST(strftime('%s',substr(Date, 0, 24)) AS INTEGER) + " + (GeneralUtil.getCurrentOffsetFromTimezone() / 1000) + "+ (3600*12), 'unixepoch')), TimeZone = '" + ActxaCache.getInstance().getActxaUser().getTimeZone() + "';";
332
333 //create temp table to copy existing data
334 private static final String ALTER_TABLE_AGGREGATE_HR = "ALTER TABLE AggHeartRateData RENAME TO TempAggHeartRateData";
335
336 // create table with unique key Date and TimeUnit
337 private static final String SQL_CREATE_NEW_TABLE_AGGREGATE_HR = "CREATE TABLE IF NOT EXISTS AggHeartRateData " +
338 "(HeartRateID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, " +
339 "Date TEXT, " +
340 "HeartRate INTEGER, " +
341 "TimeUnit INTEGER, " +
342 "Synched INTEGER, " +
343 "TimeZone TEXT); CREATE UNIQUE INDEX AggHeartRateDate ON AggHeartRateData (Date, TimeUnit);";
344
345 // re-insert data with new Date format
346 private static final String INSERT_HEART_RATE_DATA_TO_NEW_TABLE = "INSERT INTO AggHeartRateData SELECT " +
347 "HeartRateID," +
348 " strftime('%Y-%m-%d',datetime(CAST(strftime('%s',substr(Date, 0, 24)) AS INTEGER) + " + (GeneralUtil.getCurrentOffsetFromTimezone() / 1000) + " + (3600*12), 'unixepoch')) As Date, " +
349 " HeartRate, TimeUnit, Synched, '" + ActxaCache.getInstance().getActxaUser().getTimeZone() + "' as TimeZone" +
350 " FROM TempAggHeartRateData";
351
352 // drop temp table
353 private static final String DROP_TABLE_TEMP_AGG_HEART_RATE_TABLE = "DROP TABLE IF EXISTS TempAggHeartRateData";
354
355
356 //add intensity mins and vo2maxID to workout
357 private static final String SQL_ALTER_WORKOUTDATA_ADD_MODERATE_INTENSITY =
358 "ALTER TABLE WorkoutData ADD COLUMN ModerateIntensity INTEGER";
359
360 //add intensity mins and vo2maxID to workout
361 private static final String SQL_ALTER_WORKOUTDATA_ADD_VIGOROUS_INTENSITY =
362 "ALTER TABLE WorkoutData ADD COLUMN VigorousIntensity INTEGER";
363
364 //add intensity mins and vo2maxID to workout
365 private static final String SQL_ALTER_WORKOUTDATA_ADD_VO2MAXID =
366 "ALTER TABLE WorkoutData ADD COLUMN Vo2MaxID INTEGER REFERENCES Vo2MaxData(Vo2MaxID) ON UPDATE CASCADE";
367
368 //create BGMData table - Vito
369 private static final String SQL_CREATE_NEW_TABLE_BGMDATA = "CREATE TABLE IF NOT EXISTS BGMData " +
370 "(bgmID INTEGER PRIMARY KEY AUTOINCREMENT, " +
371 "StartDate TEXT UNIQUE," +
372 "EndDate TEXT UNIQUE, " +
373 "BgmStatus INTEGER, " +
374 "Fasting INTEGER, " +
375 "AdditionalData TEXT, " +
376 "Synched INTEGER," +
377 "Duration INTEGER)";
378
379 //create AggBGMData table - Vito
380 private static final String SQL_CREATE_NEW_TABLE_AGGREGATE_BGMDATA = "CREATE TABLE IF NOT EXISTS AggBGMData" +
381 "(AggBgmID INTEGER PRIMARY KEY AUTOINCREMENT, " +
382 "Date TEXT, " +
383 "TimeZone TEXT, " +
384 "TimeUnit INTEGER, " +
385 "TotalHigh INTEGER, " +
386 "TotalNormal INTEGER," +
387 "Synched INTEGER); " +
388 "CREATE UNIQUE INDEX AggBgmDate ON AggBGMData (Date, TimeUnit);";
389
390 public interface ACTXA_RESOURCE_COLUMNS{
391
392 String TABLE_NAME = "ActxaResource";
393 // String RES_MAIN_ID = "resMainID";
394 String ACTXA_RESOURCE_ID = "actxaResourceID";
395 String MAIN_CATEGORY = "mainCategory";
396 String SUB_CATEGORY = "subCategory";
397 String RES_ID = "resID";
398 String LOCALE = "locale";
399 String VALUE = "value";
400 String MIME_CONTENT = "mimeContent";
401 String IS_DELETED = "isDeleted";
402 String UPDATED_AT = "updateAt";
403 String CREATED_AT = "createdAt";
404 }
405
406 private static final String SQL_CREATE_RESOURCE = "CREATE TABLE IF NOT EXISTS " +
407 ACTXA_RESOURCE_COLUMNS.TABLE_NAME + " ( " +
408 ACTXA_RESOURCE_COLUMNS.ACTXA_RESOURCE_ID + " INTEGER PRIMARY KEY NOT NULL, " +
409 ACTXA_RESOURCE_COLUMNS.MAIN_CATEGORY+" Text, "+
410 ACTXA_RESOURCE_COLUMNS.SUB_CATEGORY+" Text, "+
411 ACTXA_RESOURCE_COLUMNS.RES_ID+" Text, "+
412 ACTXA_RESOURCE_COLUMNS.LOCALE+" Text, "+
413 ACTXA_RESOURCE_COLUMNS.VALUE+" Text, "+
414 ACTXA_RESOURCE_COLUMNS.MIME_CONTENT+" Text, "+
415 ACTXA_RESOURCE_COLUMNS.IS_DELETED+" INTEGER, "+
416 ACTXA_RESOURCE_COLUMNS.CREATED_AT+" REAL, "+
417 ACTXA_RESOURCE_COLUMNS.UPDATED_AT+" REAL, "+
418 "UNIQUE (" + ACTXA_RESOURCE_COLUMNS.MAIN_CATEGORY + "," + ACTXA_RESOURCE_COLUMNS.SUB_CATEGORY + "," +
419 ACTXA_RESOURCE_COLUMNS.RES_ID + "," + ACTXA_RESOURCE_COLUMNS.LOCALE + ") ON CONFLICT REPLACE )";
420
421
422 //create transaction table
423 private static final String SQL_CREATE_NEW_TABLE_TRANSACTION = "CREATE TABLE IF NOT EXISTS CryptoTransaction " +
424 "(transactionId TEXT," +
425 "reason TEXT," +
426 "locale TEXT," +
427 "UNIQUE (transactionId, locale) ON CONFLICT REPLACE" +
428 ")";
429
430 /*//create Challenge table - Vito
431 private static final String SQL_CREATE_NEW_TABLE_CHALLENGE = "CREATE TABLE IF NOT EXISTS Challenge" +
432 "(ChallengeID INTEGER PRIMARY KEY AUTOINCREMENT, " +
433 "CompanyID INTEGER, " +
434 "ChallengeType INTEGER, " +
435 "Status INTEGER, " +
436 "JoinMethod INTEGER, " +
437 "ParticipantType INTEGER, " +
438 "ImageUrl TEXT, " +
439 "Title TEXT, " +
440 "Description TEXT, " +
441 "GrandDraw TEXT); ";
442
443 //create Company table - Vito
444 private static final String SQL_CREATE_NEW_TABLE_COMPANY = "CREATE TABLE IF NOT EXISTS Company" +
445 "(CompanyID INTEGER, " +
446 "ChallengeID INTEGER, " +
447 "CompanyName TEXT, " +
448 "CompanyLogo TEXT); CREATE UNIQUE INDEX companyIndex ON Company (CompanyID, ChallengeID); ";
449
450 //create ChallengeActivity table - Vito
451 private static final String SQL_CREATE_NEW_TABLE_CHALLENGE_ACTIVITY = "CREATE TABLE IF NOT EXISTS ChallengeActivity" +
452 "(ChallengeActivityID INTEGER NOT NULL, " +
453 "ChallengeID INTEGER, " +
454 "StartDate TEXT, " +
455 "EndDate TEXT, " +
456 "ActivityGoal TEXT, " +
457 "ActivityGoalTitle TEXT," +
458 "DataType INTEGER, " +
459 "Prize TEXT, " +
460 "Progress REAL); CREATE UNIQUE INDEX challengeActivityIndex ON ChallengeActivity (ChallengeActivityID, ChallengeID);";
461
462 //create Team table - Vito
463 private static final String SQL_CREATE_NEW_TABLE_TEAM = "CREATE TABLE IF NOT EXISTS Team" +
464 "(TeamID INTEGER, " +
465 "ChallengeID INTEGER, " +
466 "Name TEXT); CREATE UNIQUE INDEX teamIndex ON Team (TeamID, ChallengeID); ";
467
468 //create Individual table - Vito
469 private static final String SQL_CREATE_NEW_TABLE_INDIVIDUAL = "CREATE TABLE IF NOT EXISTS Individual" +
470 "(UserID INTEGER, " +
471 "ChallengeID INTEGER, " +
472 "TeamID INTEGER, " +
473 "Status INTEGER, " +
474 "OrganizationGroup TEXT, " +
475 "Entity TEXT, " +
476 "Department TEXT, " +
477 "Tag TEXT); CREATE UNIQUE INDEX individualIndex ON Individual (UserID, ChallengeID); ";
478
479 //create ChallengeProgress table - Vito
480 private static final String SQL_CREATE_NEW_TABLE_CHALLENGE_PROGRESS = "CREATE TABLE IF NOT EXISTS ChallengeProgress" +
481 "(ProgressID INTEGER, " +
482 "ChallengeID INTEGER, " +
483 "ParticipantID INTEGER, " +
484 "ParticipantType INTEGER, " +
485 "Rank INTEGER, " +
486 "Progress REAL); CREATE UNIQUE INDEX challengeProgressIndex ON ChallengeProgress (ProgressID, ChallengeID, ParticipantID);";*/
487
488 //create Challenge table - Vito
489 private static final String SQL_CREATE_NEW_TABLE_CHALLENGE = "CREATE TABLE IF NOT EXISTS Challenge" +
490 "(ChallengeID INTEGER PRIMARY KEY, " +
491 "ServiceID INTEGER, " +
492 "ChallengeType INTEGER, " +
493 "Status INTEGER, " +
494 "JoinMethod INTEGER, " +
495 "ParticipantType INTEGER, " +
496 "StartDate TEXT, " +
497 "EndDate TEXT, " +
498 "ActivityType INTEGER, " +
499 "DataType INTEGER, " +
500 "ImageUrl TEXT, " +
501 "Title TEXT, " +
502 "Description TEXT, " +
503 "GrandDraw TEXT), " +
504 "Prize TEXT, " +
505 "ActivityTarget INTEGER, " +
506 "NumberOfTimes INTEGER, " +
507 "TargetInterval INTEGER, " +
508 "JoinedParticipant INTEGER, " +
509 "JoinedTeam INTEGER, " +
510 "IsDeleted INTEGER); ";
511
512 //create Company table - Vito
513 private static final String SQL_CREATE_NEW_TABLE_ORGANISATION = "CREATE TABLE IF NOT EXISTS Organisation" +
514 "(ChallengeID INTEGER , " +
515 "ServiceID INTEGER, " +
516 "OrgName TEXT, " +
517 "OrgLogo TEXT); ";
518
519 private static final String SQL_CREATE_NEW_TABLE_INDIVIDUAL = "CREATE TABLE IF NOT EXISTS Individual" +
520 "(IndividualID INTEGER PRIMARY KEY, " +
521 "ActxaUserID INTEGER, " +
522 "Status INTEGER, " +
523 "Replacement INTEGER, " +
524 "OrgHierarchy TEXT); ";
525
526 private static final String SQL_CREATE_NEW_TABLE_TEAM = "CREATE TABLE IF NOT EXISTS Team" +
527 "(TeamID INTEGER PRIMARY KEY, " +
528 "Name TEXT, " +
529 "ParticipantNo INTEGER); ";
530
531 private static final String SQL_CREATE_NEW_TABLE_INDIVIDUAL_CHALLENGE_PROGRESS = "CREATE TABLE IF NOT EXISTS IndividualChallengeProgress" +
532 "(ChallengeProgressID INTEGER PRIMARY KEY, " +
533 "ChallengeID INTEGER PRIMARY KEY, " +
534 "TeamID INTEGER PRIMARY KEY, " +
535 "IndividualID INTEGER PRIMARY KEY, " +
536 "Rank INTEGER, " +
537 "Value REAL); ";
538
539 private static final String SQL_CREATE_NEW_TABLE_TEAM_CHALLENGE_PROGRESS = "CREATE TABLE IF NOT EXISTS TeamChallengeProgress" +
540 "(ChallengeProgressID INTEGER PRIMARY KEY, " +
541 "ChallengeID INTEGER PRIMARY KEY, " +
542 "TeamID INTEGER PRIMARY KEY, " +
543 "Rank INTEGER, " +
544 "Value REAL); ";
545
546 public ActxaStride2DatabaseHelper(Context context) {
547 super(context, DATABASE_NAME, null, DATABASE_VERSION);
548 }
549
550 @Override
551 public void onCreate(SQLiteDatabase db) {
552 execSQL(db, SQL_CREATE_TABLE_STEP_TRACKER);
553 execSQL(db, SQL_CREATE_TABLE_APP_ANNOUNCEMENT);
554 execSQL(db, SQL_CREATE_TABLE_WEIGHT_HISTORY);
555 execSQL(db, SQL_CREATE_TABLE_SLEEP_PATTERN);
556// db.execSQL(SQL_CREATE_TABLE_WEIGHT_HISTORY_SENSE_USERS);
557 execSQL(db, SQL_CREATE_TABLE_HEARTRATE);
558 execSQL(db, SQL_CREATE_TABLE_WORKOUT);
559 execSQL(db, SQL_CREATE_NEW_TABLE_AGGREGATE_HR);
560 execSQL(db, SQL_CREATE_TABLE_AGGREGATE_WORKOUT);
561 execSQL(db, SQL_CREATE_TABLE_RESTHR);
562
563 execSQL(db, SQL_CREATE_TABLE_AGGREGATE_PHYSICAL_HISTORY);
564 execSQL(db, SQL_CREATE_FILTERED_HEART_RATE);
565 execSQL(db, SQL_CREATE_TABLE_VO2MAXDATA);
566 execSQL(db, SQL_CREATE_TABLE_AGGVO2MAXDATA);
567 execSQL(db, SQL_CREATE_TABLE_AGGINTENSITYMINSDATA);
568 execSQL(db, SQL_CREATE_TABLE_VO2MAXCLASSIFICATION);
569
570 execSQL(db, SQL_CREATE_TABLE_ALLDAYHRDATA);
571 execSQL(db, SQL_CREATE_RESOURCE);
572
573 execSQL(db, SQL_CREATE_NEW_TABLE_BGMDATA);
574 execSQL(db, SQL_CREATE_NEW_TABLE_AGGREGATE_BGMDATA);
575 execSQL(db, SQL_CREATE_NEW_TABLE_TRANSACTION);
576
577 /*execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE);
578 execSQL(db, SQL_CREATE_NEW_TABLE_COMPANY);
579 execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE_ACTIVITY);
580 execSQL(db, SQL_CREATE_NEW_TABLE_INDIVIDUAL);
581 execSQL(db, SQL_CREATE_NEW_TABLE_TEAM);
582 execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE_PROGRESS);*/
583
584 execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE);
585 execSQL(db, SQL_CREATE_NEW_TABLE_ORGANISATION);
586 execSQL(db, SQL_CREATE_NEW_TABLE_INDIVIDUAL);
587 execSQL(db, SQL_CREATE_NEW_TABLE_TEAM);
588 execSQL(db, SQL_CREATE_NEW_TABLE_INDIVIDUAL_CHALLENGE_PROGRESS);
589 execSQL(db, SQL_CREATE_NEW_TABLE_TEAM_CHALLENGE_PROGRESS);
590
591 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "Init SQLITE DB", "All tables created success");
592 }
593
594 @Override
595 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
596 // This database is only a cache for online data, so its upgrade policy is
597 // to simply to discard the data and start over
598
599 if (oldVersion < 2) {
600 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_1);
601 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_2);
602 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_3);
603 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_4);
604 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_5);
605 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_6);
606 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_7);
607 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_8);
608 execSQL(db, SQL_UPDATE_WEIGHT_HISTORY_RECORDS);
609// execSQL(db,SQL_CREATE_TABLE_WEIGHT_HISTORY_SENSE_USERS);
610 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB STRUCTURE v1", "UPDATE success");
611 }
612 if (oldVersion <= 2) {
613 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_9);
614 execSQL(db, SQL_ALTER_WEIGHT_HISTORY_10);
615 execSQL(db, SQL_CREATE_NEW_WEIGHTHISTORY);
616 execSQL(db, SQL_INSERT_INTO_NEW_WEIGHTHISTORY_TEMP1);
617 execSQL(db, SQL_INSERT_INTO_NEW_WEIGHTHISTORY_TEMP2);
618 execSQL(db, SQL_DROP_TABLE_TEMP1);
619 execSQL(db, SQL_DROP_TABLE_TEMP2);
620 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "MIGRATE DB v2", "Migrating weight history db success");
621 }
622 if (oldVersion <= 3) {
623 execSQL(db, SQL_CREATE_TABLE_HEARTRATE);
624 execSQL(db, SQL_CREATE_TABLE_WORKOUT);
625 execSQL(db, SQL_CREATE_NEW_TABLE_AGGREGATE_HR);
626 execSQL(db, SQL_CREATE_TABLE_AGGREGATE_WORKOUT);
627 execSQL(db, SQL_ALTER_SLEEP_PATTERN);
628 execSQL(db, SQL_FIX_NULL_ACCOUNTID_WEIGHTHISTORY);
629 execSQL(db, SQL_FIX_NULL_USERID_WEIGHTHISTORY);
630 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "CREATING NEW TABLES v3", "Create new tables success");
631 }
632 if (oldVersion <= 4) {
633 execSQL(db, SQL_ALTER_SLEEP_PATTERN_2);
634 execSQL(db, SQL_ALTER_HEARTRATE);
635 execSQL(db, SQL_CREATE_TABLE_RESTHR);
636 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v4", "UPDATE success");
637 }
638 if (oldVersion <= 5) {
639 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "START....");
640 execSQL(db, SQL_ALTER_FITNESS);
641 execSQL(db, SQL_ALTER_FITNESS_2);
642 execSQL(db, SQL_UPDATE_FITNESS_DEFAULT);
643 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE fitness success");
644 execSQL(db, SQL_UPDATE_SLEEPPATTERN_DEFAULT);
645 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE sleep success");
646 execSQL(db, SQL_UPDATE_PHYSICALHISTORY_DEFAULT);
647 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE weight success");
648 execSQL(db, SQL_ALTER_WORKOUTDATA);
649 execSQL(db, SQL_UPDATE_WORKOUTDATA_TIMEZONE);
650 execSQL(db, SQL_UPDATE_WORKOUTDATA_AVGHR);
651 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE workout success");
652 execSQL(db, SQL_DELETE_AGGWORKOUTDATA);
653 execSQL(db, SQL_CREATE_TABLE_AGGREGATE_WORKOUT);
654 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "CREATE aggworkout success");
655 execSQL(db, SQL_DELETE_HEARTRATEDATA_DUPLICATES);
656 execSQL(db, SQL_UPDATE_HEARTRATEDATA_TIMEZONE);
657 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE heartrate success");
658 execSQL(db, SQL_UPDATE_RESTHRDATA_TIMEZONE);
659 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE resthr success");
660 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "insert statement is " + INSERT_HEART_RATE_DATA_TO_NEW_TABLE);
661 //execSQL(db, SQL_ALTER_AGGHEARTRATEDATA);
662 //execSQL(db, SQL_UPDATE_AGGHEARTRATEDATA_DEFAULT);
663 /**
664 * migrate AGGREGATE HR Table
665 */
666 execSQL(db, ALTER_TABLE_AGGREGATE_HR);
667 execSQL(db, SQL_CREATE_NEW_TABLE_AGGREGATE_HR);
668 execSQL(db, INSERT_HEART_RATE_DATA_TO_NEW_TABLE);
669 execSQL(db, DROP_TABLE_TEMP_AGG_HEART_RATE_TABLE);
670
671 execSQL(db, SQL_CREATE_TABLE_AGGREGATE_PHYSICAL_HISTORY);
672
673 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "UPDATE aggheartrate success");
674 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v5", "END....");
675
676 }
677
678 if (oldVersion <= 6) {
679 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v6", "START....");
680 execSQL(db, SQL_CREATE_FILTERED_HEART_RATE);
681 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v6", "CREATE filteredHR success");
682 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v6", "END....");
683 }
684
685 if (oldVersion <= 7) {
686 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v7", "START....");
687 execSQL(db, SQL_CREATE_TABLE_VO2MAXDATA);
688 execSQL(db, SQL_CREATE_TABLE_AGGVO2MAXDATA);
689 execSQL(db, SQL_ALTER_WORKOUTDATA_ADD_MODERATE_INTENSITY);
690 execSQL(db, SQL_ALTER_WORKOUTDATA_ADD_VIGOROUS_INTENSITY);
691 execSQL(db, SQL_ALTER_WORKOUTDATA_ADD_VO2MAXID);
692 execSQL(db, SQL_CREATE_TABLE_VO2MAXCLASSIFICATION);
693 execSQL(db, SQL_CREATE_TABLE_AGGINTENSITYMINSDATA);
694
695 execSQL(db, SQL_CREATE_TABLE_ALLDAYHRDATA);
696 }
697
698 if(oldVersion <= 8){
699 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v8", "START....");
700
701 execSQL(db, SQL_CREATE_NEW_TABLE_BGMDATA);
702 execSQL(db, SQL_CREATE_NEW_TABLE_AGGREGATE_BGMDATA);
703 execSQL(db, SQL_CREATE_RESOURCE);
704 execSQL(db, SQL_CREATE_NEW_TABLE_TRANSACTION);
705 }
706
707 if(oldVersion <= 9){
708 GeneralUtil.log(ActxaStride2DatabaseHelper.class, "UPDATING DB v9", "START....");
709
710 /*execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE);
711 execSQL(db, SQL_CREATE_NEW_TABLE_COMPANY);
712 execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE_ACTIVITY);
713 execSQL(db, SQL_CREATE_NEW_TABLE_INDIVIDUAL);
714 execSQL(db, SQL_CREATE_NEW_TABLE_TEAM);
715 execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE_PROGRESS);*/
716
717 execSQL(db, SQL_CREATE_NEW_TABLE_CHALLENGE);
718 execSQL(db, SQL_CREATE_NEW_TABLE_ORGANISATION);
719 execSQL(db, SQL_CREATE_NEW_TABLE_INDIVIDUAL);
720 execSQL(db, SQL_CREATE_NEW_TABLE_TEAM);
721 execSQL(db, SQL_CREATE_NEW_TABLE_INDIVIDUAL_CHALLENGE_PROGRESS);
722 execSQL(db, SQL_CREATE_NEW_TABLE_TEAM_CHALLENGE_PROGRESS);
723 }
724 }
725
726 public void execSQL(SQLiteDatabase db, String sqlString) {
727 try {
728 db.execSQL(sqlString);
729 } catch (Exception e) {
730 GeneralUtil.log(GeneralUtil.class, "ExecSql", "Sql Exception " + e.getMessage());
731 }
732 }
733
734 @Override
735 public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
736 //super.onDowngrade(db, oldVersion, newVersion);
737 onUpgrade(db, oldVersion, newVersion);
738 }
739
740 public void deleteDatabase(){
741 boolean isDeleted = MainApplication.getInstance().deleteDatabase(DATABASE_NAME);
742 GeneralUtil.log(GeneralUtil.class, "GENERALUTIL", "Delete database..." + isDeleted);
743 }
744}