コード例 #1
0
 private Draft getDraftOfType(String type) {
   for (Draft draft : this) {
     if (type.equals(draft.getType())) {
       return draft;
     }
   }
   return null;
 }
コード例 #2
0
    public @Nullable Uri getUriSnippet(Context context) {
      Draft imageDraft = getDraftOfType(Draft.IMAGE);

      if (imageDraft != null && imageDraft.getValue() != null) {
        return Uri.parse(imageDraft.getValue());
      }

      return null;
    }
コード例 #3
0
 public String getSnippet(Context context) {
   Draft textDraft = getDraftOfType(Draft.TEXT);
   if (textDraft != null) {
     return textDraft.getSnippet(context);
   } else if (size() > 0) {
     return get(0).getSnippet(context);
   } else {
     return "";
   }
 }
コード例 #4
0
  public void insertDrafts(MasterCipher masterCipher, long threadId, List<Draft> drafts) {
    SQLiteDatabase db = databaseHelper.getWritableDatabase();

    for (Draft draft : drafts) {
      ContentValues values = new ContentValues(3);
      values.put(THREAD_ID, threadId);
      values.put(DRAFT_TYPE, masterCipher.encryptBody(draft.getType()));
      values.put(DRAFT_VALUE, masterCipher.encryptBody(draft.getValue()));

      db.insert(TABLE_NAME, null, values);
    }
  }
コード例 #5
0
ファイル: JekyllManager.java プロジェクト: buyaoshushu/MrHyde
 /**
  * Publishes a previously created draft to the _posts folder.
  *
  * @return the newly created post.
  */
 public Observable<Post> publishDraft(final Draft draft) {
   final String postTitle = postTitleToFilename(draft.getTitle());
   return fileManager
       .getTree()
       // move draft
       .flatMap(
           new Func1<DirNode, Observable<FileNode>>() {
             @Override
             public Observable<FileNode> call(DirNode rootDir) {
               DirNode postsDir = assertDir(rootDir, DIR_POSTS);
               return fileManager.moveFile(draft.getFileNode(), postsDir, postTitle);
             }
           })
       // create post object
       .flatMap(
           new Func1<FileNode, Observable<Post>>() {
             @Override
             public Observable<Post> call(FileNode newNode) {
               return Observable.just(
                   new Post(postTitle, Calendar.getInstance().getTime(), newNode));
             }
           });
 }
コード例 #6
0
  /** @return {@code true} if this schedule was triggered. */
  public boolean trigger() {
    Date triggerDate = getTriggerDate();

    if (triggerDate == null || !triggerDate.before(new Date())) {
      return false;
    }

    LOGGER.debug("Triggering [{}] schedule", getLabel());

    try {
      beginWrites();

      for (Object draftObject :
          Query.fromAll()
              .where("com.psddev.cms.db.Draft/schedule = ?", this)
              .master()
              .noCache()
              .resolveInvisible()
              .selectAll()) {
        if (!(draftObject instanceof Draft)) {
          continue;
        }

        Draft draft = (Draft) draftObject;
        Object object = draft.getObject();

        LOGGER.debug("Processing [{}] draft in [{}] schedule", draft.getLabel(), getLabel());

        if (object != null) {
          ToolUser triggerUser = getTriggerUser();

          if (triggerUser == null) {
            triggerUser = draft.as(Content.ObjectModification.class).getUpdateUser();

            if (triggerUser == null) {
              triggerUser = draft.getOwner();
            }
          }

          State state = State.getInstance(object);
          Content.ObjectModification contentData = state.as(Content.ObjectModification.class);

          if (!state.isVisible()) {
            state.getExtras().put(FIRST_TRIGGER_EXTRA, Boolean.TRUE);
          }

          contentData.setDraft(false);
          contentData.setPublishDate(triggerDate);
          contentData.setPublishUser(triggerUser);
          state.as(BulkUploadDraft.class).setRunAfterSave(true);
          Content.Static.publish(object, getTriggerSite(), triggerUser);
        }

        draft.delete();
      }

      delete();
      commitWrites();
      return true;

    } finally {
      endWrites();
    }
  }