package com.instructure.canvasapi.model;
import android.os.Parcel;
import com.google.gson.annotations.SerializedName;
import com.instructure.canvasapi.utilities.APIHelpers;
import java.util.Date;
/**
* Created by Josh Ruesch
*
* Copyright (c) 2014 Instructure. All rights reserved.
*/
public class DiscussionAttachment extends CanvasModel<DiscussionAttachment> {
private long id;
private boolean locked;
private boolean hidden;
private boolean locked_for_user;
private boolean hidden_for_user;
private int size;
private String lock_at;
private String unlock_at;
private String updated_at;
private String created_at;
private String display_name;
private String filename;
private String url;
@SerializedName("content-type")
private String content_type;
@SerializedName("folder_id")
private long folderId;
@SerializedName("thumbnail_url")
private String thumbnailUrl;
///////////////////////////////////////////////////////////////////////////
// Getters and Setters
///////////////////////////////////////////////////////////////////////////
@Override
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public boolean isLocked() {
return locked;
}
public void setLocked(boolean locked) {
this.locked = locked;
}
public boolean isHidden() {
return hidden;
}
public void setHidden(boolean hidden) {
this.hidden = hidden;
}
public boolean isLockedForUser() {
return locked_for_user;
}
public void setLockedForUser(boolean lockedForUser) {
this.locked_for_user = lockedForUser;
}
public boolean isHiddenForUser() {
return hidden_for_user;
}
public void setHiddenForUser(boolean hiddenForUser) {
this.hidden_for_user = hiddenForUser;
}
public int getFileSize() {
return size;
}
public void setFileSize(int fileSize) {
this.size = fileSize;
}
public Date getLockAt() {
return APIHelpers.stringToDate(lock_at);
}
public void setLockAt(Date lockAt) {
this.lock_at = APIHelpers.dateToString(lockAt);
}
public Date getUnlockAt() {
return APIHelpers.stringToDate(unlock_at);
}
public void setUnlockAt(Date unlockAt) {
this.unlock_at = APIHelpers.dateToString(unlockAt);
}
public Date getUpdatedAt() {
return APIHelpers.stringToDate(updated_at);
}
public void setUpdatedAt(Date updatedAt) {
this.updated_at = APIHelpers.dateToString(updatedAt);
}
public Date getCreatedAt() {
return APIHelpers.stringToDate(created_at);
}
public void setCreatedAt(Date createdAt) {
this.created_at = APIHelpers.dateToString(createdAt);
}
public String getDisplayName() {
return display_name;
}
public void setDisplayName(String displayName) {
this.display_name = displayName;
}
public String getFileName() {
return filename;
}
public void setFileName(String fileName) {
this.filename = fileName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMimeType() {
return content_type;
}
public void setMimeType(String mimeType) {
this.content_type = mimeType;
}
public long getFolderId(){
return folderId;
}
public void setFolderId(long folderId){
this.folderId = folderId;
}
public String getThumbnailUrl(){
return thumbnailUrl;
}
public void setThumbnailUrl(String thumbnailUrl){
this.thumbnailUrl = thumbnailUrl;
}
///////////////////////////////////////////////////////////////////////////
// Required Overrides
///////////////////////////////////////////////////////////////////////////
@Override
public Date getComparisonDate() {
return null;
}
@Override
public String getComparisonString() {
return filename;
}
///////////////////////////////////////////////////////////////////////////
// Constructors
///////////////////////////////////////////////////////////////////////////
public DiscussionAttachment() {}
///////////////////////////////////////////////////////////////////////////
// Helpers
///////////////////////////////////////////////////////////////////////////
public boolean shouldShowToUser() {
if (hidden || hidden_for_user) {
return false;
} else if (locked || locked_for_user) {
Date unlockAt = APIHelpers.stringToDate(unlock_at);
if (unlock_at == null) {
return false;
} else {
return new Date().after(unlockAt);
}
} else {
return true;
}
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(this.id);
dest.writeByte(locked ? (byte) 1 : (byte) 0);
dest.writeByte(hidden ? (byte) 1 : (byte) 0);
dest.writeByte(locked_for_user ? (byte) 1 : (byte) 0);
dest.writeByte(hidden_for_user ? (byte) 1 : (byte) 0);
dest.writeInt(this.size);
dest.writeString(this.lock_at);
dest.writeString(this.unlock_at);
dest.writeString(this.updated_at);
dest.writeString(this.created_at);
dest.writeString(this.display_name);
dest.writeString(this.filename);
dest.writeString(this.url);
dest.writeString(this.content_type);
}
private DiscussionAttachment(Parcel in) {
this.id = in.readLong();
this.locked = in.readByte() != 0;
this.hidden = in.readByte() != 0;
this.locked_for_user = in.readByte() != 0;
this.hidden_for_user = in.readByte() != 0;
this.size = in.readInt();
this.lock_at = in.readString();
this.unlock_at = in.readString();
this.updated_at = in.readString();
this.created_at = in.readString();
this.display_name = in.readString();
this.filename = in.readString();
this.url = in.readString();
this.content_type = in.readString();
}
public static Creator<DiscussionAttachment> CREATOR = new Creator<DiscussionAttachment>() {
public DiscussionAttachment createFromParcel(Parcel source) {
return new DiscussionAttachment(source);
}
public DiscussionAttachment[] newArray(int size) {
return new DiscussionAttachment[size];
}
};
}