Mholloway has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/352918 )
Change subject: Add new Gson POJOs for gallery collections
......................................................................
Add new Gson POJOs for gallery collections
Bug: T152403
Change-Id: Ib2e72662a0a5b12a9539d225652cc6197e045af1
---
A app/src/main/java/org/wikipedia/gallery/ExtMetadata.java
A app/src/main/java/org/wikipedia/gallery/ImageInfo.java
2 files changed, 139 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia
refs/changes/18/352918/1
diff --git a/app/src/main/java/org/wikipedia/gallery/ExtMetadata.java
b/app/src/main/java/org/wikipedia/gallery/ExtMetadata.java
new file mode 100644
index 0000000..736c5ba
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/gallery/ExtMetadata.java
@@ -0,0 +1,71 @@
+package org.wikipedia.gallery;
+
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+
+import com.google.gson.annotations.SerializedName;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ExtMetadata {
+ @SuppressWarnings("unused") @SerializedName("DateTime") @Nullable private
Values dateTime;
+ @SuppressWarnings("unused") @SerializedName("ObjectName") @Nullable
private Values objectName;
+ @SuppressWarnings("unused") @SerializedName("CommonsMetadataExtension")
@Nullable private Values commonsMetadataExtension;
+ @SuppressWarnings("unused") @SerializedName("Categories") @Nullable
private Values categories;
+ @SuppressWarnings("unused") @SerializedName("Assessments") @Nullable
private Values assessments;
+ @SuppressWarnings("unused") @SerializedName("ImageDescription") @Nullable
private Values imageDescription;
+ @SuppressWarnings("unused") @SerializedName("DateTimeOriginal") @Nullable
private Values dateTimeOriginal;
+ @SuppressWarnings("unused") @SerializedName("Artist") @Nullable private
Values artist;
+ @SuppressWarnings("unused") @SerializedName("Credit") @Nullable private
Values credit;
+ @SuppressWarnings("unused") @SerializedName("Permission") @Nullable
private Values permission;
+ @SuppressWarnings("unused") @SerializedName("AuthorCount") @Nullable
private Values authorCount;
+ @SuppressWarnings("unused") @SerializedName("LicenseShortName") @Nullable
private Values licenseShortName;
+ @SuppressWarnings("unused") @SerializedName("UsageTerms") @Nullable
private Values usageTerms;
+ @SuppressWarnings("unused") @SerializedName("LicenseUrl") @Nullable
private Values licenseUrl;
+ @SuppressWarnings("unused") @SerializedName("AttributionRequired")
@Nullable private Values attributionRequired;
+ @SuppressWarnings("unused") @SerializedName("Copyrighted") @Nullable
private Values copyrighted;
+ @SuppressWarnings("unused") @SerializedName("Restrictions") @Nullable
private Values restrictions;
+ @SuppressWarnings("unused") @SerializedName("License") @Nullable private
Values license;
+
+ @Nullable public Values licenseShortName() {
+ return licenseShortName;
+ }
+
+ @Nullable public Values licenseUrl() {
+ return licenseUrl;
+ }
+
+ @Nullable public Values license() {
+ return license;
+ }
+
+ public class Values {
+ @SuppressWarnings("unused,NullableProblems") @NonNull private String
value;
+ @SuppressWarnings("unused,NullableProblems") @NonNull private String
source;
+ @SuppressWarnings("unused,NullableProblems") @NonNull private String
hidden;
+
+ @NonNull public String value() {
+ return value;
+ }
+
+ @NonNull public String source() {
+ return source;
+ }
+ }
+
+ // TODO: Update consumers to use a ExtMetadata object and remove ASAP
+ @Deprecated @NonNull Map<String, String> toMap() throws
IllegalAccessException {
+ HashMap<String, String> result = new HashMap<>();
+ for (Field field : this.getClass().getDeclaredFields()) {
+ Values values = (Values) field.get(this);
+ if (values != null) {
+ result.put(StringUtils.capitalize(field.getName()),
values.value());
+ }
+ }
+ return result;
+ }
+}
diff --git a/app/src/main/java/org/wikipedia/gallery/ImageInfo.java
b/app/src/main/java/org/wikipedia/gallery/ImageInfo.java
new file mode 100644
index 0000000..2956ff5
--- /dev/null
+++ b/app/src/main/java/org/wikipedia/gallery/ImageInfo.java
@@ -0,0 +1,68 @@
+package org.wikipedia.gallery;
+
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+
+import com.google.gson.annotations.SerializedName;
+
+/**
+ * Gson POJO for a standard image info object as returned by the API ImageInfo
module via
+ * GalleryCollectionClient's request
+ */
+public class ImageInfo {
+ @SuppressWarnings("unused") private int size;
+ @SuppressWarnings("unused") private int width;
+ @SuppressWarnings("unused") private int height;
+ @SuppressWarnings("unused") @SerializedName("thumburl") @Nullable private
String thumbUrl;
+ @SuppressWarnings("unused") @SerializedName("thumbwidth") private int
thumbWidth;
+ @SuppressWarnings("unused") @SerializedName("thumbheight") private int
thumbHeight;
+ @SuppressWarnings("unused") @SerializedName("url") @Nullable private
String originalUrl;
+ @SuppressWarnings("unused") @SerializedName("descriptionurl") @Nullable
private String descriptionUrl;
+ @SuppressWarnings("unused") @SerializedName("descriptionshorturl")
@Nullable private String descriptionShortUrl;
+ @SuppressWarnings("unused,NullableProblems") @SerializedName("mime")
@NonNull private String mimeType = "*/*";
+ @SuppressWarnings("unused") @SerializedName("extmetadata")@Nullable
private ExtMetadata metadata;
+
+ public int getSize() {
+ return size;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ @Nullable public String getThumbUrl() {
+ return thumbUrl;
+ }
+
+ public int getThumbWidth() {
+ return thumbWidth;
+ }
+
+ public int getThumbHeight() {
+ return thumbHeight;
+ }
+
+ @Nullable public String getOriginalUrl() {
+ return originalUrl;
+ }
+
+ @Nullable public String getDescriptionUrl() {
+ return descriptionUrl;
+ }
+
+ @Nullable public String getDescriptionShortUrl() {
+ return descriptionShortUrl;
+ }
+
+ @NonNull public String getMimeType() {
+ return mimeType;
+ }
+
+ @Nullable public ExtMetadata getMetadata() {
+ return metadata;
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/352918
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib2e72662a0a5b12a9539d225652cc6197e045af1
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits