Example #1
0
  private void callUpdate(MessageEntry messageEntry) throws StorageException {
    DatabaseHelper instance = DatabaseHelper.getInstance(this);
    final SQLiteDatabase db = instance.getWritableDatabase();
    db.beginTransaction();

    try {
      CommandBusHelper.sendMessage(this, GetMessageCommand.CANCEL_UPDATE);

      // Update the database
      instance.insertOrUpdateMessage(db, messageEntry);

      Long serverId = messageEntry.getServerId();
      Long posted = messageEntry.getPosted();
      String messString = messageEntry.getMessage();

      Command command;
      if (serverId != null && posted != -1l) command = new EditMessageCommand(messString, serverId);
      else if (posted == -1l) command = new DeleteMessageCommand(serverId);
      else command = new PostMessageCommand(messString);

      CommandBusHelper.submitCommandSync(this, command);
      db.setTransactionSuccessful();
    } finally {
      db.endTransaction();
    }
  }