package com.kitty.poclient.bean;
import java.util.ArrayList;
import java.util.List;
import android.util.Log;
import com.kitty.poclient.domain.Music;
public class LocalSingles extends ArrayList<LocalSingle> {
private static final long serialVersionUID = 781178238546017359L;
private boolean isSelectAll = false;
public static LocalSingles translateMusics(List<Music> musics) {
LocalSingles localSingles = new LocalSingles();
for (int mIndex = 0; mIndex < musics.size(); mIndex++) {
LocalSingle localSingle = new LocalSingle();
Music music = musics.get(mIndex);
Long id = music.getId();
localSingle.setId(id);
localSingle.setSelected(false);
localSingles.add(localSingle);
}
return localSingles;
}
public void clearAllSelect(){
isSelectAll = false;
updateAllStatus(isSelectAll);
}
public boolean isSelectAll(){
return isSelectAll;
}
public void cancelSelectAll(){
isSelectAll = false;
}
public void switchAllSelectStatus(){
updateAllStatus(!isSelectAll);
Log.i("SinglesCache", "switchAllSelectStatus-isSelectAll:"+isSelectAll);
}
private void updateAllStatus(boolean newStatus){
isSelectAll = newStatus;
for (int mIndex = 0; mIndex < size(); mIndex++) {
LocalSingle localMusic = get(mIndex);
localMusic.setSelected(newStatus);
}
Log.i("SinglesCache", "updateAllStatus-isSelectAll:"+isSelectAll);
}
public int getSelectedItemNum(){
int selectedNum = 0;
for (int mIndex = 0; mIndex < size(); mIndex++) {
LocalSingle localMusic = get(mIndex);
if(localMusic.isSelected()){
selectedNum++;
}
}
return selectedNum;
}
public LocalSingles getSelectedSingles(){
LocalSingles localSingles = new LocalSingles();
for (int mIndex = 0; mIndex < size(); mIndex++) {
LocalSingle localSingle = get(mIndex);
if(localSingle.isSelected()){
localSingles.add(localSingle);
}
}
return localSingles;
}
public LocalSingle removeSingle(Long id){
int postion = getPositionById(id);
return remove(postion);
}
public int getPositionById(Long id){
int position = -1;
int index = 0;
while(index < size()){
if(get(index).getId().equals(id)){
position = index;
break;
}
index++;
}
return position;
}
}