diff --git a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt index 3f4fd7498..f5d1b6b7c 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt @@ -148,11 +148,22 @@ class AudioPlayerFragment : BaseFragment() { NavigationHelper.navigateChannel(requireContext(), current.uploaderUrl?.toID()) } - ImageHelper.loadImage(current.thumbnail, binding.thumbnail) + current.thumbnail?.let { updateThumbnailAsync(it) } initializeSeekBar() } + private fun updateThumbnailAsync(thumbnailUrl: String) { + binding.progress.visibility = View.VISIBLE + binding.thumbnail.visibility = View.GONE + + ImageHelper.getAsync(requireContext(), thumbnailUrl) { + binding.thumbnail.setImageBitmap(it) + binding.thumbnail.visibility = View.VISIBLE + binding.progress.visibility = View.GONE + } + } + private fun initializeSeekBar() { binding.timeBar.addOnChangeListener { _, value, fromUser -> if (fromUser) playerService?.seekToPosition(value.toLong() * 1000) diff --git a/app/src/main/java/com/github/libretube/util/ImageHelper.kt b/app/src/main/java/com/github/libretube/util/ImageHelper.kt index ca07d5865..31fc77438 100644 --- a/app/src/main/java/com/github/libretube/util/ImageHelper.kt +++ b/app/src/main/java/com/github/libretube/util/ImageHelper.kt @@ -56,12 +56,17 @@ object ImageHelper { } fun downloadImage(context: Context, url: String, path: String) { + getAsync(context, url) { bitmap -> + saveImage(context, bitmap, Uri.fromFile(File(path))) + } + } + + fun getAsync(context: Context, url: String?, onSuccess: (Bitmap) -> Unit) { val request = ImageRequest.Builder(context) .data(url) .target { result -> val bitmap = (result as BitmapDrawable).bitmap - val file = File(path) - saveImage(context, bitmap, Uri.fromFile(file)) + onSuccess.invoke(bitmap) } .build() diff --git a/app/src/main/res/layout/fragment_audio_player.xml b/app/src/main/res/layout/fragment_audio_player.xml index e88be5878..26728e965 100644 --- a/app/src/main/res/layout/fragment_audio_player.xml +++ b/app/src/main/res/layout/fragment_audio_player.xml @@ -23,6 +23,12 @@ app:shapeAppearanceOverlay="@style/ShapeAppearance.Material3.Corner.Small" tools:src="@tools:sample/backgrounds/scenic" /> + + @@ -84,7 +90,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:layout_marginTop="24dp" + android:layout_marginTop="10dp" android:layout_marginBottom="36dp"> + android:layout_marginBottom="30dp" + app:cardCornerRadius="18dp">