Display artist, track number, sort by track number.

This commit is contained in:
Felix Ableitner 2013-06-08 15:51:04 +02:00
parent 2d38870dfe
commit 167e0c7479
2 changed files with 35 additions and 4 deletions

View file

@ -41,7 +41,7 @@ public class DeviceArrayAdapter extends ArrayAdapter<Device<?, ?, ?>>
* @param deviceType One of RENDERER or SERVER.
*/
public DeviceArrayAdapter(Activity activity, String deviceType) {
super(activity, android.R.layout.simple_list_item_1);
super(activity, android.R.layout.simple_list_item_2);
mActivity = activity;
mDeviceType = deviceType;
}

View file

@ -1,8 +1,12 @@
package com.github.nutomic.controldlna;
import java.util.Collection;
import java.util.Comparator;
import org.teleal.cling.support.model.DIDLObject;
import org.teleal.cling.support.model.container.Container;
import org.teleal.cling.support.model.item.Item;
import org.teleal.cling.support.model.item.MusicTrack;
import android.content.Context;
import android.view.LayoutInflater;
@ -15,6 +19,23 @@ public class FileArrayAdapter extends ArrayAdapter<DIDLObject> {
public FileArrayAdapter(Context context) {
super(context, android.R.layout.simple_list_item_1);
sort(new Comparator<DIDLObject>() {
@Override
public int compare(DIDLObject lhs, DIDLObject rhs) {
if (lhs instanceof MusicTrack && rhs instanceof MusicTrack)
return ((MusicTrack) rhs).getOriginalTrackNumber() -
((MusicTrack) lhs).getOriginalTrackNumber();
else if (lhs instanceof Item && rhs instanceof Container)
return 1;
else if (rhs instanceof Item && lhs instanceof Container)
return -1;
else if (lhs instanceof Container && rhs instanceof Container)
return lhs.getTitle().compareTo(rhs.getTitle());
else
return 0;
}
});
}
@Override
@ -22,10 +43,20 @@ public class FileArrayAdapter extends ArrayAdapter<DIDLObject> {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(android.R.layout.simple_list_item_1, parent, false);
convertView = inflater.inflate(android.R.layout.simple_list_item_2, parent, false);
}
TextView tv = (TextView) convertView.findViewById(android.R.id.text1);
tv.setText(getItem(position).getTitle());
DIDLObject item = getItem(position);
TextView title = (TextView) convertView.findViewById(android.R.id.text1);
TextView artist = (TextView) convertView.findViewById(android.R.id.text2);
MusicTrack track;
if (item instanceof MusicTrack) {
track = (MusicTrack) item;
title.setText(Integer.toString(track.getOriginalTrackNumber()) +
". " + item.getTitle());
artist.setText(track.getArtists()[0].getName());
}
else
title.setText(item.getTitle());
return convertView;
}