private Draft getDraftOfType(String type) { for (Draft draft : this) { if (type.equals(draft.getType())) { return draft; } } return null; }
public @Nullable Uri getUriSnippet(Context context) { Draft imageDraft = getDraftOfType(Draft.IMAGE); if (imageDraft != null && imageDraft.getValue() != null) { return Uri.parse(imageDraft.getValue()); } return null; }
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 ""; } }
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); } }
/** * 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)); } }); }
/** @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(); } }