diff options
author | Chris Warrington <cmw@google.com> | 2016-10-18 12:29:21 +0100 |
---|---|---|
committer | Chris Warrington <cmw@google.com> | 2016-10-18 12:34:18 +0100 |
commit | e3780081075c01aa1dff6d1f373cb43192b33e68 (patch) | |
tree | fb734615933a39f3d009210dc0d1457160479b35 /WordPress/src/main/java/org/wordpress/android/models/PostStatus.java | |
parent | 7e05eb7e57827eddc885570bc00aed8a50320dbf (diff) | |
parent | 025b8b226c8d8edba2b309ca878572f40512eca7 (diff) | |
download | gradle-perf-android-medium-e3780081075c01aa1dff6d1f373cb43192b33e68.tar.gz |
Merge remote-tracking branch 'origin/upstream-master' into masterHEADstudio-3.4.0studio-3.2.1studio-3.1.2studio-3.0studio-2.3gradle_3.4.0gradle_3.1.2gradle_3.0.0gradle_2.3.0studio-master-devmirror-goog-studio-master-devmastermain
Change-Id: I63f5e16d09297c48432192761b840310935eb903
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/models/PostStatus.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/models/PostStatus.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/models/PostStatus.java b/WordPress/src/main/java/org/wordpress/android/models/PostStatus.java new file mode 100644 index 000000000..192a273a4 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/models/PostStatus.java @@ -0,0 +1,70 @@ +package org.wordpress.android.models; + +import java.util.Date; + +public enum PostStatus { + UNKNOWN, + PUBLISHED, + DRAFT, + PRIVATE, + PENDING, + TRASHED, + SCHEDULED; //NOTE: Only used locally, WP has a 'future' status but it is not returned from the metaWeblog API + + private synchronized static PostStatus fromStringAndDateGMT(String value, long dateCreatedGMT) { + if (value == null) { + return PostStatus.UNKNOWN; + } else if (value.equals("publish")) { + // Check if post is scheduled + Date d = new Date(); + // Subtract 10 seconds from the server GMT date, in case server and device time slightly differ + if (dateCreatedGMT - 10000 > d.getTime()) { + return SCHEDULED; + } + return PUBLISHED; + } else if (value.equals("draft")) { + return PostStatus.DRAFT; + } else if (value.equals("private")) { + return PostStatus.PRIVATE; + } else if (value.equals("pending")) { + return PENDING; + } else if (value.equals("trash")) { + return TRASHED; + } else if (value.equals("future")) { + return SCHEDULED; + } else { + return PostStatus.UNKNOWN; + } + } + + public synchronized static PostStatus fromPost(Post post) { + String value = post.getPostStatus(); + long dateCreatedGMT = post.getDate_created_gmt(); + return fromStringAndDateGMT(value, dateCreatedGMT); + } + + public synchronized static PostStatus fromPostsListPost(PostsListPost post) { + String value = post.getOriginalStatus(); + long dateCreatedGMT = post.getDateCreatedGmt(); + return fromStringAndDateGMT(value, dateCreatedGMT); + } + + public static String toString(PostStatus status) { + switch (status) { + case PUBLISHED: + return "publish"; + case DRAFT: + return "draft"; + case PRIVATE: + return "private"; + case PENDING: + return "pending"; + case TRASHED: + return "trash"; + case SCHEDULED: + return "future"; + default: + return ""; + } + } +} |