/*
* Copyright (C) 2015 Jorge Ruesga
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.ruesga.android.wallpapers.photophase.model;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
/**
* A class that represents an album
*/
public class Album implements Comparable<Album>, Cloneable {
private Drawable mIcon;
private String mPath;
private String mName;
private String mDate;
private boolean mSelected;
private List<Picture> mItems;
// We have this array for performance access. Do not forget to sync with Picture#selected
private List<String> mSelectedItems;
// Ui properties
private boolean mDisplayed = false;
public Drawable getIcon() {
return mIcon;
}
public void setIcon(Drawable icon) {
this.mIcon = icon;
}
public String getPath() {
return mPath;
}
public void setPath(String path) {
this.mPath = path;
}
public String getName() {
return mName;
}
public void setName(String name) {
this.mName = name;
}
public String getDate() {
return mDate;
}
public void setDate(String date) {
this.mDate = date;
}
public boolean isSelected() {
return mSelected;
}
public void setSelected(boolean selected) {
this.mSelected = selected;
}
public List<Picture> getItems() {
return mItems;
}
public void setItems(List<Picture> items) {
this.mItems = items;
}
public List<String> getSelectedItems() {
return mSelectedItems;
}
public void setSelectedItems(List<String> selectedItems) {
this.mSelectedItems = selectedItems;
}
public boolean isDisplayed() {
return mDisplayed;
}
public void setDisplayed(boolean displayed) {
this.mDisplayed = displayed;
}
@Override
public int compareTo(@NonNull Album another) {
return mPath.compareTo(another.mPath);
}
@Override
@SuppressWarnings("CloneDoesntCallSuperClone")
public Object clone() {
Album album = new Album();
album.mIcon = mIcon;
album.mPath = mPath;
album.mName = mName;
album.mDate = mDate;
album.mItems = new ArrayList<>(mItems);
album.mSelectedItems = new ArrayList<>(mSelectedItems);
album.mSelected = mSelected;
album.mDisplayed = mDisplayed;
return album;
}
}