diff --git a/app/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt b/app/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt index b8346ed2..df19f837 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/adapters/EpisodeListAdapter.kt @@ -1,6 +1,8 @@ package dev.jdtech.jellyfin.adapters +import android.util.TypedValue import android.view.LayoutInflater +import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter @@ -15,6 +17,14 @@ class EpisodeListAdapter(private val onClickListener: OnClickListener) : RecyclerView.ViewHolder(binding.root) { fun bind(episode: BaseItemDto) { binding.episode = episode + if (episode.userData?.playedPercentage != null) { + binding.progressBar.layoutParams.width = TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + (episode.userData?.playedPercentage?.times(.84))!!.toFloat(), binding.progressBar.context.resources.displayMetrics).toInt() + binding.progressBar.visibility = View.VISIBLE + } else { + binding.progressBar.visibility = View.GONE + } binding.executePendingBindings() } } diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt index 71f90819..6c65e205 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/EpisodeBottomSheetFragment.kt @@ -1,6 +1,7 @@ package dev.jdtech.jellyfin.fragments import android.os.Bundle +import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -33,6 +34,16 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() { binding.lifecycleOwner = this binding.viewModel = viewModel + viewModel.item.observe(viewLifecycleOwner, { episode -> + if (episode.userData?.playedPercentage != null) { + binding.progressBar.layoutParams.width = TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_DIP, + (episode.userData?.playedPercentage?.times(1.26))!!.toFloat(), context?.resources?.displayMetrics + ).toInt() + binding.progressBar.visibility = View.VISIBLE + } + }) + return binding.root } } \ No newline at end of file diff --git a/app/src/main/res/layout/base_item.xml b/app/src/main/res/layout/base_item.xml index 3fdf58cc..0385df67 100644 --- a/app/src/main/res/layout/base_item.xml +++ b/app/src/main/res/layout/base_item.xml @@ -5,6 +5,8 @@ + + @@ -57,5 +59,19 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" tools:text="9" /> + + \ No newline at end of file diff --git a/app/src/main/res/layout/episode_bottom_sheet.xml b/app/src/main/res/layout/episode_bottom_sheet.xml index 47b2ce24..86500b92 100644 --- a/app/src/main/res/layout/episode_bottom_sheet.xml +++ b/app/src/main/res/layout/episode_bottom_sheet.xml @@ -28,6 +28,19 @@ app:layout_constraintTop_toTopOf="parent" app:shapeAppearance="@style/roundedImageView" /> + + + +