X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/97da4d5c8a771bffe239d9d10a237909a8b32574..f65152c5fb9548c0a2ae58879fa3d88e7bd82b1e:/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java diff --git a/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java b/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java index 02aebd0c..ab677745 100644 --- a/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java +++ b/src/com/owncloud/android/ui/preview/PreviewMediaFragment.java @@ -21,7 +21,10 @@ package com.owncloud.android.ui.preview; import android.accounts.Account; import android.app.Activity; -import android.app.AlertDialog; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.media.MediaMetadataRetriever; +import android.support.v7.app.AlertDialog; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; @@ -205,11 +208,35 @@ public class PreviewMediaFragment extends FileFragment implements else { mVideoPreview.setVisibility(View.GONE); mImagePreview.setVisibility(View.VISIBLE); + extractAndSetCoverArt(file); } } } + /** + * tries to read the cover art from the audio file and sets it as cover art. + * + * @param file audio file with potential cover art + */ + private void extractAndSetCoverArt(OCFile file) { + if (file.isAudio()) { + try { + MediaMetadataRetriever mmr = new MediaMetadataRetriever(); + mmr.setDataSource(file.getStoragePath()); + byte[] data = mmr.getEmbeddedPicture(); + if (data != null) { + Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); + mImagePreview.setImageBitmap(bitmap); //associated cover art in bitmap + } else { + mImagePreview.setImageResource(R.drawable.logo); + } + } catch (Throwable t) { + mImagePreview.setImageResource(R.drawable.logo); + } + } + } + /** * {@inheritDoc} @@ -328,6 +355,10 @@ public class PreviewMediaFragment extends FileFragment implements mContainerActivity.getFileOperationsHelper().shareFileWithLink(getFile()); return true; } + case R.id.action_share_with_users: { + seeShareFile(); + return true; + } case R.id.action_unshare_file: { stopPreview(false); mContainerActivity.getFileOperationsHelper().unshareFileWithLink(getFile()); @@ -388,6 +419,10 @@ public class PreviewMediaFragment extends FileFragment implements mContainerActivity.showDetails(getFile()); } + private void seeShareFile() { + stopPreview(false); + mContainerActivity.showShareFile(getFile()); + } private void prepareVideo() { // create helper to get more control on the playback