package moe.kurumi.moegallery.model.database; import com.raizlabs.android.dbflow.annotation.Column; import com.raizlabs.android.dbflow.annotation.PrimaryKey; import com.raizlabs.android.dbflow.annotation.Table; import com.raizlabs.android.dbflow.structure.BaseModel; import org.json.JSONArray; import org.json.JSONException; import java.util.ArrayList; import java.util.List; import moe.kurumi.moegallery.model.Image; /** * Created by kurumi on 15-6-21. */ @Table(databaseName = GalleryDatabase.NAME) public class HistoryImage extends BaseModel implements Image, Comparable { @Column @PrimaryKey(autoincrement = true) public long id; @Column public String previewUrl; @Column public long width; @Column public long height; @Column public String fileUrl; @Column public String md5; @Column public String sampleUrl; @Column public String name; @Column public long imageId; @Column public String user; @Column public String type; @Column public long count; @Column public long size; @Column public String tagList; @Column public long last; public HistoryImage() { } public HistoryImage(Image image) { previewUrl = image.getPreviewUrl(); width = image.getWidth(); height = image.getHeight(); fileUrl = image.getFileUrl(); md5 = image.getMd5(); sampleUrl = image.getSampleUrl(); name = image.getName(); imageId = image.getId(); user = image.getUser(); type = image.getType(); count = image.getCount(); size = image.getSize(); JSONArray jsArray = new JSONArray(image.getTagList()); tagList = jsArray.toString(); last = System.currentTimeMillis(); } @Override public String getPreviewUrl() { return previewUrl; } @Override public Long getWidth() { return width; } @Override public Long getHeight() { return height; } @Override public String getFileUrl() { return fileUrl; } @Override public String getMd5() { return md5; } @Override public String getSampleUrl() { return sampleUrl; } @Override public String getName() { return name; } @Override public Long getId() { return imageId; } @Override public String getUser() { return user; } @Override public String getType() { return type; } @Override public Long getCount() { return count; } @Override public Long getSize() { return size; } @Override public List<String> getTagList() { ArrayList<String> list = new ArrayList<>(); try { JSONArray jsonArray = new JSONArray(tagList); for (int i = 0; i < jsonArray.length(); i++) { list.add(jsonArray.getString(i)); } } catch (JSONException e) { e.printStackTrace(); } return list; } @Override public int compareTo(Object another) { if (last > ((HistoryTag) another).last) { return -1; } else if (last < ((HistoryTag) another).last) { return 1; } else { return 0; } } public void updateLast() { last = System.currentTimeMillis(); } }