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

Reply via email to