package com.instructure.canvasapi.model; import android.os.Parcel; import com.instructure.canvasapi.utilities.APIHelpers; import java.util.Date; /** * Copyright (c) 2016 Instructure. All rights reserved. */ public class Alert extends CanvasModel<Alert>{ //Variables from API private String id; private boolean marked_read; private boolean dismissed; private String alert_type; private String title; private String action_date; private String creation_date; private String observer_id; private String student_id; private String course_id; private String alert_criteria_id; private String asset_url; public enum ALERT_TYPE { COURSE_ANNOUNCEMENT, INSTITUTION_ANNOUNCEMENT, ASSIGNMENT_GRADE_HIGH, ASSIGNMENT_GRADE_LOW, ASSIGNMENT_MISSING, COURSE_GRADE_HIGH, COURSE_GRADE_LOW } @Override public long getId() { return id.hashCode(); } @Override public Date getComparisonDate() { return null; } @Override public String getComparisonString() { return null; } //region Getters/Setters public String getStringId(){ return id; } public void setId(String id){ this.id = id; } public void setMarkedRead(boolean isRead){ this.marked_read = isRead; } public boolean isMarkedRead(){ return this.marked_read; } public void setDismissed(boolean dismissed){ this.dismissed = dismissed; } public boolean isDismissed(){ return this.dismissed; } public void setAlertType(ALERT_TYPE alert_type){ this.alert_type = alertTypeToAPIString(alert_type); } public ALERT_TYPE getAlertType(){ return getAlertTypeFromString(alert_type); } public void setTitle(String title){ this.title = title; } public String getTitle(){ return this.title; } public void setActionDate(String actionDate){ this.action_date = actionDate; } public Date getActionDate(){ return APIHelpers.stringToDate(this.action_date); } public void setCreationDate(String creationDate){ this.creation_date = creationDate; } public Date getCreationDate(){ return APIHelpers.stringToDate(this.creation_date); } public void setObserverId(String observerId){ this.observer_id = observerId; } public String getObserverId(){ return this.observer_id; } public void setStudentId(String studentId){ this.student_id = studentId; } public String getStudentId(){ return this.student_id; } public void setCourseId(String courseId){ this.course_id = courseId; } public String getCourseId(){ return this.course_id; } public void setAssetUrl(String assetUrl){ this.asset_url = assetUrl; } public String getAssetUrl(){ return this.asset_url; } public String getAlertCriteriaId() { return alert_criteria_id; } public void setAlertCriteriaId(String alert_criteria_id) { this.alert_criteria_id = alert_criteria_id; } //endregion public static ALERT_TYPE getAlertTypeFromString(String alert_type){ switch(alert_type){ case("course_announcement"): return ALERT_TYPE.COURSE_ANNOUNCEMENT; case("institution_announcement"): return ALERT_TYPE.INSTITUTION_ANNOUNCEMENT; case("assignment_grade_high"): return ALERT_TYPE.ASSIGNMENT_GRADE_HIGH; case("assignment_grade_low"): return ALERT_TYPE.ASSIGNMENT_GRADE_LOW; case("assignment_missing"): return ALERT_TYPE.ASSIGNMENT_MISSING; case("course_grade_high"): return ALERT_TYPE.COURSE_GRADE_HIGH; case("course_grade_low"): return ALERT_TYPE.COURSE_GRADE_LOW; default: return null; } } public static String alertTypeToAPIString(ALERT_TYPE alert_type){ switch(alert_type){ case COURSE_ANNOUNCEMENT: return "course_announcement"; case INSTITUTION_ANNOUNCEMENT: return "institution_announcement"; case ASSIGNMENT_GRADE_HIGH: return "assignment_grade_high"; case ASSIGNMENT_GRADE_LOW: return "assignment_grade_low"; case ASSIGNMENT_MISSING: return "assignment_missing"; case COURSE_GRADE_HIGH: return "course_grade_high"; case COURSE_GRADE_LOW: return "course_grade_low"; default: return null; } } //region Parcel stuffs @Override public void writeToParcel(Parcel parcel, int i) { parcel.writeString(this.id); parcel.writeString(this.alert_criteria_id); parcel.writeByte(this.marked_read ? (byte) 1 : (byte) 0); parcel.writeByte(this.dismissed ? (byte) 1 : (byte) 0); parcel.writeString(this.alert_type); parcel.writeString(this.title); parcel.writeString(this.action_date); parcel.writeString(this.creation_date); parcel.writeString(this.observer_id); parcel.writeString(this.student_id); parcel.writeString(this.course_id); parcel.writeString(this.asset_url); } private Alert(Parcel parcel){ this.alert_criteria_id = parcel.readString(); this.id = parcel.readString(); this.marked_read = parcel.readByte() != 0; this.dismissed = parcel.readByte() != 0; this.alert_type = parcel.readString(); this.title = parcel.readString(); this.action_date = parcel.readString(); this.creation_date = parcel.readString(); this.observer_id = parcel.readString(); this.student_id = parcel.readString(); this.course_id = parcel.readString(); this.asset_url = parcel.readString(); } public static Creator<Alert> CREATOR = new Creator<Alert>() { public Alert createFromParcel(Parcel parcel) { return new Alert(parcel); } public Alert[] newArray(int size) { return new Alert[size]; } }; //endregion }