/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2009 (C) Sindre Mehus
*/
package github.daneren2005.dsub.view;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import github.daneren2005.dsub.R;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.domain.Playlist;
import github.daneren2005.dsub.util.FileUtil;
import github.daneren2005.dsub.util.SyncUtil;
import github.daneren2005.dsub.util.Util;
public class PlaylistSongView extends UpdateView2<Playlist, List<MusicDirectory.Entry>> {
private static final String TAG = PlaylistSongView.class.getSimpleName();
private TextView titleView;
private TextView countView;
private int count = 0;
public PlaylistSongView(Context context) {
super(context, false);
this.context = context;
LayoutInflater.from(context).inflate(R.layout.basic_count_item, this, true);
titleView = (TextView) findViewById(R.id.basic_count_name);
countView = (TextView) findViewById(R.id.basic_count_count);
}
protected void setObjectImpl(Playlist playlist, List<MusicDirectory.Entry> songs) {
count = 0;
titleView.setText(playlist.getName());
// Make sure to hide initially so it's not present briefly before update
countView.setVisibility(View.GONE);
}
@Override
protected void updateBackground() {
// Make sure to reset when starting count
count = 0;
// Don't try to lookup playlist for Create New
if(!"-1".equals(item.getId())) {
MusicDirectory cache = FileUtil.deserialize(context, Util.getCacheName(context, "playlist", item.getId()), MusicDirectory.class);
if(cache != null) {
// Try to find song instances in the given playlists
for(MusicDirectory.Entry song: item2) {
if(cache.getChildren().contains(song)) {
count++;
}
}
}
}
}
@Override
protected void update() {
// Update count display with appropriate information
if(count <= 0) {
countView.setVisibility(View.GONE);
} else {
String displayName;
if(count < 10) {
displayName = "0" + count;
} else {
displayName = "" + count;
}
countView.setText(displayName);
countView.setVisibility(View.VISIBLE);
}
}
}