From 16bc87969da9c76894628f2afd04898cd3493ec2 Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Tue, 6 Jul 2021 12:30:19 +0200 Subject: [PATCH] Add more progress bars and check marks + general layout improvements --- .../jellyfin/adapters/EpisodeListAdapter.kt | 10 ++++++++++ .../fragments/EpisodeBottomSheetFragment.kt | 11 +++++++++++ app/src/main/res/layout/base_item.xml | 16 ++++++++++++++++ app/src/main/res/layout/episode_bottom_sheet.xml | 13 +++++++++++++ app/src/main/res/layout/episode_item.xml | 13 +++++++++++++ app/src/main/res/layout/next_up_section.xml | 4 ++-- 6 files changed, 65 insertions(+), 2 deletions(-) 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" /> + + + +