public void nextInstruction(boolean isSucessful, int intented_nextId) { SQLiteDatabase db = app.getDB(); db.beginTransaction(); // deal with current Instruction if (current != null) { markCurrentInstructionState( db, current._id, isSucessful ? Instruction.COMPLETED : Instruction.SKIPPED); intented_nextId = current._id + 1; } Instruction nextInstruction = fetchNextInstruction(db, intented_nextId); if (nextInstruction != null) { // check has nextTask // check if in the same task if (current == null || current.task_id != nextInstruction.task_id) { // app.enterNewTask(current, nextInstruction); app.enterNewTask(nextInstruction.task_id); } boolean switchSegment = (current == null) ? false : (nextInstruction.seg_id > current.seg_id); current = nextInstruction; app.setUserInfomraiton( null, nextInstruction._id, nextInstruction.task_id, nextInstruction.seg_id); if (switchSegment) app.onChangeSegment(); // Log.v("mark", "nextInstruction id:" + nextInstruction); } else { // no more instruction app.enterNewTask(-1); // app.enterNewTask(current, null); current = null; Log.v("mark", "nextInstruction is null"); app.onAllTaskFinished(); } db.setTransactionSuccessful(); db.endTransaction(); }
private int getTotalCount() { SQLiteDatabase db = app.getDB(); Cursor cur = db.query(Common.Tables.INSTRUCTION, null, null, null, null, null, null); int result = cur.getCount(); cur.close(); return result; }
private void postCorrectVerification() { switch (type) { case DATABASE: { SQLiteDatabase db = app.getDB(); db.beginTransaction(); ContentValues values = new ContentValues(); Cursor cur = db.query(table, null, null, null, null, null, null); int index = cur.getColumnIndex("new"); if (index >= 0) { values.put("new", 0); long result = db.update(table, values, "new = ?", new String[] {"1"}); Log.v("mark", "postCorrectVerification set new to 0 result:" + result); } db.setTransactionSuccessful(); db.endTransaction(); } break; case RIGHTDRAWER: { Activity act = this.app.getCurrentActivity(); if (act != null) { ((FrameActivity) act).clearRightPanel(); } } break; } return; }
private String[] retrieveAnswer(int type) { this.type = type; switch (type) { case PASS: { Log.v("mark", "retrieveAnswer all pass"); return new String[] {}; } case DATABASE: { Log.v("mark", "retrieveAnswer from databse"); SQLiteDatabase db = app.getDB(); ArrayList<String> result = new ArrayList<String>(); db.beginTransaction(); String toDepacket = current.verif_com; if (toDepacket == null) { Log.v("mark", "retrieveAnswer verif_com is null"); return null; } /* table;col1,col2,...;selection;arg1,arg2; */ parts = toDepacket.split(";"); table = parts[0]; columns = parts[1].equals("null") ? null : parts[1].split(","); selection = parts[2].equals("null") ? null : parts[2]; args = selection == null ? null : parts[3].split(","); Log.v("mark", "" + toDepacket); Log.v("mark", "table:" + table); Log.v("mark", "columns:" + Arrays.toString(columns)); Log.v("mark", "selection:" + selection); Log.v("mark", "args:" + Arrays.toString(args)); Cursor cur = db.query(table, columns, selection, args, null, null, null); if (cur.moveToFirst()) { do { StringBuilder sb = new StringBuilder(); for (int i = 0; i < columns.length; i++) { String columnName = columns[i]; int index = cur.getColumnIndex(columnName); if (index < 0) { Log.v("mark", "onVerification: columnName does not exist"); } else { sb.append(cur.getString(index)); if (i < columns.length - 1) { sb.append("><"); } } } result.add(sb.toString()); } while (cur.moveToNext()); cur.close(); db.setTransactionSuccessful(); db.endTransaction(); return result.toArray(new String[0]); } else { Log.v("mark", "retrieveAnswer cursor empty"); cur.close(); db.setTransactionSuccessful(); db.endTransaction(); return null; } } case RIGHTDRAWER: { Activity act = app.getCurrentActivity(); Log.v("mark", "retrieveAnswer from rightdrawer:" + act); if (act instanceof FrameActivity) { return new String[] {((FrameActivity) act).retrieveAnswerOnRightPanel()}; } else { return null; } } case TASPANEL: { Log.v("mark", "retrieveAnswer from taskpanel"); Activity act = app.getCurrentActivity(); if (act instanceof ExperimentActivity) { return new String[] {((ExperimentActivity) act).getTaskIconPattern()}; } // if (act instanceof TaskPanel) { return new String[] { ((TaskPanel.TaskPanelFragment) // act).getTaskIconPattern() }; } return null; } case ADDITIONALINFO: { Log.v("mark", "retrieveAnswer from addionalinfo"); return new String[] {this.additionalInformation}; } default: Log.v("mark", "onVerification: unidentified verif_src"); } return null; }