public void onVerification(final int event_obj, final String event) {
   boolean sucessful = false;
   if (current == null) return;
   if (!current.isSameTarget(event_obj, event)) {
     Log.v("mark", "onVerification, is not the targeted object");
     return;
   } else {
     Log.v("mark", "onVerification, is the targeted object");
   }
   String[] answer = retrieveAnswer(current.verif_src);
   Log.v("mark", "retrieved:" + Arrays.toString(answer));
   if (answer == null) {
     sucessful = false;
   } else {
     // String[] filteredAnswer = this.inputFilter(answer);
     sucessful = isCorrectAnswer(answer);
   }
   if (sucessful) {
     Activity act = app.getCurrentActivity();
     Log.v("mark", "onVerification: sucessful");
     this.nextInstruction(true);
     if (act instanceof FrameActivity) {
       ((FrameActivity) act).closeRightDrawer();
       ((FrameActivity) act).closeRightDrawer();
       ((FrameActivity) act).openLeftDrawer();
     }
     postCorrectVerification();
   } else {
     Log.v("mark", "onVerification: failure");
     postWrongVerfication();
     if (this.current.err_msg == null || this.current.err_msg.equals("null")) {
       return;
     }
     Toast toast =
         Toast.makeText(app.getApplicationContext(), this.current.err_msg, Toast.LENGTH_SHORT);
     toast.setGravity(Gravity.TOP, 0, 0);
     toast.show();
   }
 }
  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;
  }