display duration in bottom right corner

This commit is contained in:
Adrian Ulrich 2018-04-18 21:51:42 +02:00
parent 383120edcc
commit 428ae19d7c
5 changed files with 19 additions and 18 deletions

View File

@ -19,6 +19,7 @@ package ch.blinkenlights.android.vanilla;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.text.format.DateUtils;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.style.ForegroundColorSpan; import android.text.style.ForegroundColorSpan;
@ -196,10 +197,20 @@ public class DraggableRow extends LinearLayout implements Checkable {
} }
/** /**
* @return a TextView intended to display duration * Display given duration, negative values
* result in '--:--'
*
* @param duration the duration in ms to display
*/ */
public TextView getDurationView() { public void setDuration(long duration) {
return mDurationView; String txt = "--:--";
if (duration >= 0) {
txt = DateUtils.formatElapsedTime(duration / 1000);
}
SpannableStringBuilder sb = new SpannableStringBuilder("\n"+txt);
sb.setSpan(new ForegroundColorSpan(Color.GRAY), 1, sb.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mDurationView.setText(sb);
} }
/** /**

View File

@ -503,7 +503,7 @@ public class MediaAdapter
Cursor cursor = mCursor; Cursor cursor = mCursor;
cursor.moveToPosition(position); cursor.moveToPosition(position);
holder.id = cursor.getLong(0); holder.id = cursor.getLong(0);
String duration = "--:--"; long duration = -1;
long cacheId = cursor.getLong(1); long cacheId = cursor.getLong(1);
if (mProjection.length >= 4) { if (mProjection.length >= 4) {
String line1 = cursor.getString(2); String line1 = cursor.getString(2);
@ -515,7 +515,7 @@ public class MediaAdapter
line2 += ", " + cursor.getString(4); line2 += ", " + cursor.getString(4);
if (mProjection.length >= 6) if (mProjection.length >= 6)
duration = MediaUtils.getFormattedDuration(cursor.getLong(5)); duration = cursor.getLong(5);
row.setText(line1, line2); row.setText(line1, line2);
holder.title = line1; holder.title = line1;
@ -526,7 +526,7 @@ public class MediaAdapter
holder.title = title; holder.title = title;
} }
row.getDurationView().setText(duration); row.setDuration(duration);
row.getCoverView().setCover(mCoverCacheType, cacheId, holder.title); row.getCoverView().setCover(mCoverCacheType, cacheId, holder.title);
return row; return row;

View File

@ -46,7 +46,6 @@ import android.net.Uri;
import android.os.Environment; import android.os.Environment;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.support.v4.content.FileProvider; import android.support.v4.content.FileProvider;
import android.text.format.DateUtils;
import android.text.TextUtils; import android.text.TextUtils;
import android.database.MatrixCursor; import android.database.MatrixCursor;
import android.util.Log; import android.util.Log;
@ -627,11 +626,4 @@ public class MediaUtils {
return TYPE_INVALID; return TYPE_INVALID;
} }
} }
/**
* @return duration of this song.duration in the form "MM:SS" or "H:MM:SS"
*/
public static String getFormattedDuration(long duration) {
return DateUtils.formatElapsedTime(duration / 1000);
}
} }

View File

@ -110,9 +110,7 @@ public class PlaylistAdapter extends CursorAdapter implements Handler.Callback {
dview.showDragger(mEditable); dview.showDragger(mEditable);
dview.setText(cursor.getString(1)); dview.setText(cursor.getString(1));
dview.setTag(cursor.getLong(3)); dview.setTag(cursor.getLong(3));
dview.setDuration(cursor.getLong(6));
String duration = MediaUtils.getFormattedDuration(cursor.getLong(6));
dview.getDurationView().setText(duration);
LazyCoverView cover = dview.getCoverView(); LazyCoverView cover = dview.getCoverView();
cover.setCover(MediaUtils.TYPE_ALBUM, cursor.getLong(4), null); cover.setCover(MediaUtils.TYPE_ALBUM, cursor.getLong(4), null);

View File

@ -132,8 +132,8 @@ public class ShowQueueAdapter extends BaseAdapter {
if (song.isFilled()) { if (song.isFilled()) {
row.setText(song.title, song.album+", "+song.artist); row.setText(song.title, song.album+", "+song.artist);
row.setDuration(song.duration);
row.getCoverView().setCover(MediaUtils.TYPE_ALBUM, song.albumId, null); row.getCoverView().setCover(MediaUtils.TYPE_ALBUM, song.albumId, null);
row.getDurationView().setText(MediaUtils.getFormattedDuration(song.duration));
} }
row.highlightRow(position == mHighlightRow); row.highlightRow(position == mHighlightRow);