Skip to content

Commit

Permalink
Merge "Display the song duration in the queue and info views" into cm…
Browse files Browse the repository at this point in the history
…-11.0
  • Loading branch information
maniac103 authored and Gerrit Code Review committed Jul 26, 2014
2 parents b0af95e + 7486acf commit a184737
Show file tree
Hide file tree
Showing 11 changed files with 111 additions and 12 deletions.
13 changes: 13 additions & 0 deletions res/layout/list_item_simple.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,25 @@
android:id="@+id/line_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/line_one_right"
android:singleLine="true"
android:textSize="@dimen/text_size_medium"
android:textStyle="bold"
app:themeResource="line_one" />

<com.andrew.apollo.widgets.theme.ThemeableTextView
android:id="@+id/line_one_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:paddingRight="@dimen/list_preferred_item_padding"
android:singleLine="true"
android:textSize="@dimen/text_size_medium"
app:themeResource="line_one" />

<com.andrew.apollo.widgets.theme.ThemeableTextView
android:id="@+id/line_two"
android:layout_width="match_parent"
Expand Down
14 changes: 14 additions & 0 deletions src/com/andrew/apollo/adapters/ProfileSongAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -162,17 +162,31 @@ public View getView(final int position, View convertView, final ViewGroup parent
switch (mDisplaySetting) {
// show duration if on album fragment
case DISPLAY_ALBUM_SETTING:
holder.mLineOneRight.get().setVisibility(View.GONE);

holder.mLineTwo.get().setText(
MusicUtils.makeTimeString(getContext(), song.mDuration));
break;
case DISPLAY_PLAYLIST_SETTING:
if (song.mDuration == -1) {
holder.mLineOneRight.get().setVisibility(View.GONE);
} else {
holder.mLineOneRight.get().setVisibility(View.VISIBLE);
holder.mLineOneRight.get().setText(
MusicUtils.makeTimeString(getContext(), song.mDuration));
}

final StringBuilder sb = new StringBuilder(song.mArtistName);
sb.append(SEPARATOR_STRING);
sb.append(song.mAlbumName);
holder.mLineTwo.get().setText(sb.toString());
break;
case DISPLAY_DEFAULT_SETTING:
default:
holder.mLineOneRight.get().setVisibility(View.VISIBLE);

holder.mLineOneRight.get().setText(
MusicUtils.makeTimeString(getContext(), song.mDuration));
holder.mLineTwo.get().setText(song.mAlbumName);
break;
}
Expand Down
5 changes: 5 additions & 0 deletions src/com/andrew/apollo/adapters/SongAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.andrew.apollo.ui.MusicHolder.DataHolder;
import com.andrew.apollo.ui.fragments.QueueFragment;
import com.andrew.apollo.ui.fragments.SongFragment;
import com.andrew.apollo.utils.MusicUtils;

/**
* This {@link ArrayAdapter} is used to display all of the songs on a user's
Expand Down Expand Up @@ -81,6 +82,8 @@ public View getView(final int position, View convertView, final ViewGroup parent

// Set each song name (line one)
holder.mLineOne.get().setText(dataHolder.mLineOne);
// Set the song duration (line one, right)
holder.mLineOneRight.get().setText(dataHolder.mLineOneRight);
// Set the album name (line two)
holder.mLineTwo.get().setText(dataHolder.mLineTwo);
return convertView;
Expand Down Expand Up @@ -119,6 +122,8 @@ public void buildCache() {
mData[i].mItemId = song.mSongId;
// Song names (line one)
mData[i].mLineOne = song.mSongName;
// Song duration (line one, right)
mData[i].mLineOneRight = MusicUtils.makeTimeString(getContext(), song.mDuration);
// Album names (line two)
mData[i].mLineTwo = song.mAlbumName;
}
Expand Down
12 changes: 10 additions & 2 deletions src/com/andrew/apollo/loaders/ArtistSongLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,14 @@ public List<Song> loadInBackground() {
// Copy the album name
final String album = mCursor.getString(3);

// Copy the duration
final long duration = mCursor.getLong(4);

// Convert the duration into seconds
final int durationInSecs = (int) duration / 1000;

// Create a new song
final Song song = new Song(id, songName, artist, album, -1);
final Song song = new Song(id, songName, artist, album, durationInSecs);

// Add everything up
mSongList.add(song);
Expand Down Expand Up @@ -115,7 +121,9 @@ public static final Cursor makeArtistSongCursor(final Context context, final Lon
/* 2 */
AudioColumns.ARTIST,
/* 3 */
AudioColumns.ALBUM
AudioColumns.ALBUM,
/* 4 */
AudioColumns.DURATION
}, selection.toString(), null,
PreferenceUtils.getInstance(context).getArtistSongSortOrder());
}
Expand Down
12 changes: 10 additions & 2 deletions src/com/andrew/apollo/loaders/GenreSongLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,14 @@ public List<Song> loadInBackground() {
// Copy the artist name
final String artist = mCursor.getString(3);

// Copy the duration
final long duration = mCursor.getLong(4);

// Convert the duration into seconds
final int durationInSecs = (int) duration / 1000;

// Create a new song
final Song song = new Song(id, songName, artist, album, -1);
final Song song = new Song(id, songName, artist, album, durationInSecs);

// Add everything up
mSongList.add(song);
Expand Down Expand Up @@ -111,7 +117,9 @@ public static final Cursor makeGenreSongCursor(final Context context, final Long
/* 2 */
MediaStore.Audio.Genres.Members.ALBUM,
/* 3 */
MediaStore.Audio.Genres.Members.ARTIST
MediaStore.Audio.Genres.Members.ARTIST,
/* 4 */
MediaStore.Audio.Genres.Members.DURATION
}, selection.toString(), null, MediaStore.Audio.Genres.Members.DEFAULT_SORT_ORDER);
}
}
12 changes: 10 additions & 2 deletions src/com/andrew/apollo/loaders/LastAddedLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,14 @@ public List<Song> loadInBackground() {
// Copy the album name
final String album = mCursor.getString(3);

// Copy the duration
final long duration = mCursor.getLong(4);

// Convert the duration into seconds
final int durationInSecs = (int) duration / 1000;

// Create a new song
final Song song = new Song(id, songName, artist, album, -1);
final Song song = new Song(id, songName, artist, album, durationInSecs);

// Add everything up
mSongList.add(song);
Expand Down Expand Up @@ -107,7 +113,9 @@ public static final Cursor makeLastAddedCursor(final Context context) {
/* 2 */
AudioColumns.ARTIST,
/* 3 */
AudioColumns.ALBUM
AudioColumns.ALBUM,
/* 4 */
AudioColumns.DURATION
}, selection.toString(), null, MediaStore.Audio.Media.DATE_ADDED + " DESC");
}
}
4 changes: 3 additions & 1 deletion src/com/andrew/apollo/loaders/NowPlayingCursor.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ public class NowPlayingCursor extends AbstractCursor {
/* 2 */
AudioColumns.ARTIST,
/* 3 */
AudioColumns.ALBUM
AudioColumns.ALBUM,
/* 4 */
AudioColumns.DURATION
};

private final Context mContext;
Expand Down
13 changes: 11 additions & 2 deletions src/com/andrew/apollo/loaders/PlaylistSongLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,15 @@ public List<Song> loadInBackground() {
final String album = mCursor.getString(mCursor
.getColumnIndexOrThrow(AudioColumns.ALBUM));

// Copy the duration
final long duration = mCursor.getLong(mCursor
.getColumnIndexOrThrow(AudioColumns.DURATION));

// Convert the duration into seconds
final int durationInSecs = (int) duration / 1000;

// Create a new song
final Song song = new Song(id, songName, artist, album, -1);
final Song song = new Song(id, songName, artist, album, durationInSecs);

// Add everything up
mSongList.add(song);
Expand Down Expand Up @@ -120,7 +127,9 @@ public static final Cursor makePlaylistSongCursor(final Context context, final L
/* 3 */
AudioColumns.ARTIST,
/* 4 */
AudioColumns.ALBUM
AudioColumns.ALBUM,
/* 5 */
AudioColumns.DURATION
}, mSelection.toString(), null,
MediaStore.Audio.Playlists.Members.DEFAULT_SORT_ORDER);
}
Expand Down
8 changes: 7 additions & 1 deletion src/com/andrew/apollo/loaders/QueueLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,14 @@ public List<Song> loadInBackground() {
// Copy the album name
final String album = mCursor.getString(3);

// Copy the duration
final long duration = mCursor.getLong(4);

// Convert the duration into seconds
final int durationInSecs = (int) duration / 1000;

// Create a new song
final Song song = new Song(id, songName, artist, album, -1);
final Song song = new Song(id, songName, artist, album, durationInSecs);

// Add everything up
mSongList.add(song);
Expand Down
12 changes: 10 additions & 2 deletions src/com/andrew/apollo/loaders/SongLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,14 @@ public List<Song> loadInBackground() {
// Copy the album name
final String album = mCursor.getString(3);

// Copy the duration
final long duration = mCursor.getLong(4);

// Convert the duration into seconds
final int durationInSecs = (int) duration / 1000;

// Create a new song
final Song song = new Song(id, songName, artist, album, -1);
final Song song = new Song(id, songName, artist, album, durationInSecs);

// Add everything up
mSongList.add(song);
Expand Down Expand Up @@ -107,7 +113,9 @@ public static final Cursor makeSongCursor(final Context context) {
/* 2 */
AudioColumns.ARTIST,
/* 3 */
AudioColumns.ALBUM
AudioColumns.ALBUM,
/* 4 */
AudioColumns.DURATION
}, mSelection.toString(), null,
PreferenceUtils.getInstance(context).getSongSortOrder());
}
Expand Down
18 changes: 18 additions & 0 deletions src/com/andrew/apollo/ui/MusicHolder.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,13 @@ public class MusicHolder {
*/
public WeakReference<TextView> mLineOne;

/**
* This is displayed on the right side of the first line in the list or grid
*
* @see {@code #getView()} of a specific adapter for more detailed info
*/
public WeakReference<TextView> mLineOneRight;

/**
* This is the second line displayed in the list or grid
*
Expand Down Expand Up @@ -89,6 +96,10 @@ public MusicHolder(final View view) {
// Initialize mLineOne
mLineOne = new WeakReference<TextView>((TextView)view.findViewById(R.id.line_one));

// Initialize mLineOneRight
mLineOneRight = new WeakReference<TextView>(
(TextView)view.findViewById(R.id.line_one_right));

// Initialize mLineTwo
mLineTwo = new WeakReference<TextView>((TextView)view.findViewById(R.id.line_two));

Expand All @@ -113,6 +124,13 @@ public final static class DataHolder {
*/
public String mLineOne;

/**
* This is displayed on the right side of the first line in the list or grid
*
* @see {@code #getView()} of a specific adapter for more detailed info
*/
public String mLineOneRight;

/**
* This is the second line displayed in the list or grid
*
Expand Down

0 comments on commit a184737

Please sign in to comment.