Merge pull request #91 from jarnedemeulemeester/material3

Upgrade to Material 3
This commit is contained in:
Jarne Demeulemeester 2022-04-09 20:57:42 +02:00 committed by GitHub
commit 0d25a79793
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 314 additions and 190 deletions

View file

@ -84,11 +84,23 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
when (viewModel.played) {
true -> {
viewModel.markAsUnplayed(episodeId)
binding.checkButton.setImageResource(R.drawable.ic_check)
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
false -> {
viewModel.markAsPlayed(episodeId)
binding.checkButton.setImageResource(R.drawable.ic_check_filled)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
}
}
@ -98,10 +110,24 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
true -> {
viewModel.unmarkAsFavorite(episodeId)
binding.favoriteButton.setImageResource(R.drawable.ic_heart)
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
false -> {
viewModel.markAsFavorite(episodeId)
binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled)
binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
}
}
@ -160,11 +186,26 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
binding.playButton.alpha = if (!available) 0.5F else 1.0F
// Check icon
val checkDrawable = when (played) {
true -> R.drawable.ic_check_filled
false -> R.drawable.ic_check
when (played) {
true -> {
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
false -> {
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
}
binding.checkButton.setImageResource(checkDrawable)
// Favorite icon
val favoriteDrawable = when (favorite) {
@ -172,6 +213,12 @@ class EpisodeBottomSheetFragment : BottomSheetDialogFragment() {
false -> R.drawable.ic_heart
}
binding.favoriteButton.setImageResource(favoriteDrawable)
if (favorite) binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
when (canDownload) {
true -> {

View file

@ -4,6 +4,7 @@ import android.content.Intent
import android.content.res.ColorStateList
import android.net.Uri
import android.os.Bundle
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -147,11 +148,23 @@ class MediaInfoFragment : Fragment() {
when (viewModel.played) {
true -> {
viewModel.markAsUnplayed(args.itemId)
binding.checkButton.setImageResource(R.drawable.ic_check)
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
false -> {
viewModel.markAsPlayed(args.itemId)
binding.checkButton.setImageResource(R.drawable.ic_check_filled)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
}
}
@ -161,10 +174,24 @@ class MediaInfoFragment : Fragment() {
true -> {
viewModel.unmarkAsFavorite(args.itemId)
binding.favoriteButton.setImageResource(R.drawable.ic_heart)
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
false -> {
viewModel.markAsFavorite(args.itemId)
binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled)
binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
}
}
@ -206,11 +233,27 @@ class MediaInfoFragment : Fragment() {
binding.playButton.alpha = if (!available) 0.5F else 1.0F
// Check icon
val checkDrawable = when (played) {
true -> R.drawable.ic_check_filled
false -> R.drawable.ic_check
when (played) {
true -> {
if (played) binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
false -> {
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
}
binding.checkButton.setImageResource(checkDrawable)
// Favorite icon
val favoriteDrawable = when (favorite) {
@ -218,6 +261,12 @@ class MediaInfoFragment : Fragment() {
false -> R.drawable.ic_heart
}
binding.favoriteButton.setImageResource(favoriteDrawable)
if (favorite) binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
binding.downloadButton.isEnabled = !downloaded

View file

@ -1,8 +1,10 @@
package dev.jdtech.jellyfin.tv.ui
import android.content.Intent
import android.content.res.ColorStateList
import android.net.Uri
import android.os.Bundle
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@ -119,11 +121,23 @@ internal class MediaDetailFragment : Fragment() {
when (viewModel.played) {
true -> {
viewModel.markAsUnplayed(args.itemId)
binding.checkButton.setImageResource(R.drawable.ic_check)
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
false -> {
viewModel.markAsPlayed(args.itemId)
binding.checkButton.setImageResource(R.drawable.ic_check_filled)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
}
}
@ -133,10 +147,24 @@ internal class MediaDetailFragment : Fragment() {
true -> {
viewModel.unmarkAsFavorite(args.itemId)
binding.favoriteButton.setImageResource(R.drawable.ic_heart)
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
false -> {
viewModel.markAsFavorite(args.itemId)
binding.favoriteButton.setImageResource(R.drawable.ic_heart_filled)
binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
}
}
@ -154,11 +182,26 @@ internal class MediaDetailFragment : Fragment() {
actorsAdapter.submitList(actors)
// Check icon
val checkDrawable = when (played) {
true -> R.drawable.ic_check_filled
false -> R.drawable.ic_check
when (played) {
true -> {
if (played) binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
}
false -> {
val typedValue = TypedValue()
requireActivity().theme.resolveAttribute(R.attr.colorOnSecondaryContainer, typedValue, true)
binding.checkButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
typedValue.resourceId,
requireActivity().theme
)
)
}
}
binding.checkButton.setImageResource(checkDrawable)
// Favorite icon
val favoriteDrawable = when (favorite) {
@ -166,6 +209,12 @@ internal class MediaDetailFragment : Fragment() {
false -> R.drawable.ic_heart
}
binding.favoriteButton.setImageResource(favoriteDrawable)
if (favorite) binding.favoriteButton.imageTintList = ColorStateList.valueOf(
resources.getColor(
R.color.red,
requireActivity().theme
)
)
binding.title.text = item.name
binding.subtitle.text = item.seriesName

View file

@ -3,7 +3,7 @@
android:color="?attr/colorControlHighlight">
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<solid android:color="@color/neutral_700" />
<solid android:color="?attr/colorSecondaryContainer" />
<corners
android:radius="10dp" />
</shape>

View file

@ -1,13 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M20,6l-11,11l-5,-5"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="@color/red"
android:strokeLineCap="round"/>
</vector>

View file

@ -38,7 +38,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />

View file

@ -42,7 +42,7 @@
android:layout_marginTop="4dp"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/item_image"
tools:text="Movie title" />
@ -56,8 +56,8 @@
android:background="@drawable/circle_background"
android:gravity="center"
android:text="@{item.userData.unplayedItemCount.toString()}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Caption"
android:textColor="@color/white"
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
android:textColor="?attr/colorOnPrimary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="9" />
@ -74,6 +74,7 @@
android:src="@drawable/ic_check"
android:visibility="@{item.userData.played == true ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="@id/item_image"
app:layout_constraintTop_toTopOf="@id/item_image" />
app:layout_constraintTop_toTopOf="@id/item_image"
app:tint="?attr/colorOnPrimary" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View file

@ -38,7 +38,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="@{collection.name}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/collection_image"

View file

@ -23,7 +23,7 @@
android:layout_marginStart="24dp"
android:layout_marginBottom="12dp"
android:text="@{section.name}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp"
tools:text="Movies" />

View file

@ -77,7 +77,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="24dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/episode_image"
app:layout_constraintTop_toTopOf="@id/episode_image"
@ -99,7 +99,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="4/6/2013" />
<TextView
@ -107,7 +107,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="26 min" />
<TextView
@ -116,7 +116,7 @@
android:layout_height="wrap_content"
android:drawablePadding="4dp"
android:gravity="bottom"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:drawableStartCompat="@drawable/ic_star"
app:drawableTint="@color/yellow"
tools:text="8.8" />
@ -149,7 +149,7 @@
android:paddingHorizontal="24dp"
android:paddingVertical="12dp"
android:src="@drawable/ic_play"
app:tint="@android:color/white" />
app:tint="?attr/colorOnPrimary" />
<ProgressBar
android:id="@+id/progress_circular"
@ -157,7 +157,7 @@
android:layout_height="48dp"
android:layout_centerHorizontal="true"
android:elevation="8dp"
android:indeterminateTint="@color/white"
android:indeterminateTint="?attr/colorOnPrimary"
android:padding="8dp"
android:visibility="invisible" />
</RelativeLayout>
@ -170,7 +170,8 @@
android:background="@drawable/button_accent_background"
android:contentDescription="@string/check_button_description"
android:padding="12dp"
android:src="@drawable/ic_check" />
android:src="@drawable/ic_check"
app:tint="?attr/colorOnSecondaryContainer" />
<ImageButton
android:id="@+id/favorite_button"
@ -180,7 +181,8 @@
android:background="@drawable/button_accent_background"
android:contentDescription="@string/favorite_button_description"
android:padding="12dp"
android:src="@drawable/ic_heart" />
android:src="@drawable/ic_heart"
app:tint="?attr/colorOnSecondaryContainer" />
<RelativeLayout
android:id="@+id/download_button_wrapper"
@ -197,7 +199,7 @@
android:contentDescription="@string/download_button_description"
android:padding="12dp"
android:src="@drawable/ic_download"
app:tint="@android:color/white" />
app:tint="?attr/colorOnSecondaryContainer" />
<ProgressBar
android:id="@+id/progress_download"
@ -242,7 +244,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/error_preparing_player_items"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
android:textColor="?attr/colorError" />
<TextView
@ -250,7 +252,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/view_details_underlined"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
android:textColor="?attr/colorError" />
</LinearLayout>
@ -260,7 +262,7 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/player_items_error"

View file

@ -46,7 +46,8 @@
android:src="@drawable/ic_check"
android:visibility="@{episode.userData.played == true ? View.VISIBLE : View.GONE}"
app:layout_constraintEnd_toEndOf="@id/episode_image"
app:layout_constraintTop_toTopOf="@id/episode_image" />
app:layout_constraintTop_toTopOf="@id/episode_image"
app:tint="?attr/colorOnPrimary" />
<FrameLayout
android:id="@+id/missing_icon"
@ -88,7 +89,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@{String.format(@string/episode_name, episode.indexNumber, episode.name)}"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintBottom_toTopOf="@id/episode_desc"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/episode_image"
@ -101,7 +102,7 @@
android:layout_height="0dp"
android:scrollbars="none"
android:text="@{episode.overview}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Caption"
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/episode_title"

View file

@ -26,16 +26,17 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/error_loading_data"
android:textAppearance="@style/TextAppearance.AppCompat.Body1" />
android:textAppearance="@style/TextAppearance.Material3.BodyMedium" />
<LinearLayout
android:layout_width="wrap_content"
style="?android:attr/buttonBarStyle"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/error_details_button"
style="@style/Widget.MaterialComponents.Button.TextButton"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
@ -43,7 +44,7 @@
<Button
android:id="@+id/error_retry_button"
style="@style/Widget.MaterialComponents.Button"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/retry" />

View file

@ -42,7 +42,7 @@
android:layout_marginEnd="16dp"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
android:textColor="@color/white"
tools:text="The Dawn of Despair" />

View file

@ -23,7 +23,7 @@
android:layout_marginStart="24dp"
android:layout_marginBottom="12dp"
android:text="@{section.name}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp"
tools:text="Movies" />

View file

@ -41,12 +41,12 @@
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:text="@string/add_server"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edit_text_server_address_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"

View file

@ -41,12 +41,12 @@
android:layout_height="wrap_content"
android:layout_marginBottom="32dp"
android:text="@string/login"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"
android:textColor="?android:textColorPrimary" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edit_text_username_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
@ -64,7 +64,7 @@
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/edit_text_password_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"

View file

@ -54,7 +54,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"
app:layout_constraintBottom_toTopOf="@id/original_title"
app:layout_constraintStart_toStartOf="parent"
tools:text="Alita: Battle Angel" />
@ -64,7 +64,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -81,7 +81,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="2019" />
<TextView
@ -89,7 +89,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="122 min" />
<TextView
@ -97,7 +97,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="PG-13" />
<TextView
@ -106,7 +106,7 @@
android:layout_height="wrap_content"
android:drawablePadding="4dp"
android:gravity="bottom"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:drawableStartCompat="@drawable/ic_star"
app:drawableTint="@color/yellow"
tools:text="7.3" />
@ -133,7 +133,7 @@
android:paddingHorizontal="24dp"
android:paddingVertical="12dp"
android:src="@drawable/ic_play"
app:tint="@android:color/white" />
app:tint="?attr/colorOnPrimary" />
<ProgressBar
android:id="@+id/progress_circular"
@ -141,7 +141,7 @@
android:layout_height="48dp"
android:layout_centerHorizontal="true"
android:elevation="8dp"
android:indeterminateTint="@color/white"
android:indeterminateTint="?attr/colorOnPrimary"
android:padding="8dp"
android:visibility="invisible" />
</RelativeLayout>
@ -154,7 +154,8 @@
android:background="@drawable/button_accent_background"
android:contentDescription="@string/trailer_button_description"
android:padding="12dp"
android:src="@drawable/ic_film" />
android:src="@drawable/ic_film"
app:tint="?attr/colorOnSecondaryContainer" />
<ImageButton
android:id="@+id/check_button"
@ -164,7 +165,8 @@
android:background="@drawable/button_accent_background"
android:contentDescription="@string/check_button_description"
android:padding="12dp"
android:src="@drawable/ic_check" />
android:src="@drawable/ic_check"
app:tint="?attr/colorOnSecondaryContainer" />
<ImageButton
android:id="@+id/favorite_button"
@ -174,7 +176,8 @@
android:background="@drawable/button_accent_background"
android:contentDescription="@string/download_button_description"
android:padding="12dp"
android:src="@drawable/ic_heart" />
android:src="@drawable/ic_heart"
app:tint="?attr/colorOnSecondaryContainer" />
<ImageButton
android:id="@+id/download_button"
@ -186,7 +189,7 @@
android:padding="12dp"
android:src="@drawable/ic_download"
android:visibility="gone"
app:tint="@android:color/white" />
app:tint="?attr/colorOnSecondaryContainer" />
<ImageButton
android:id="@+id/delete_button"
@ -197,7 +200,8 @@
android:contentDescription="@string/delete_button_description"
android:padding="12dp"
android:src="@drawable/ic_trash"
android:visibility="gone" />
android:visibility="gone"
app:tint="?attr/colorOnSecondaryContainer" />
</LinearLayout>
<LinearLayout
@ -217,7 +221,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:text="@string/error_preparing_player_items"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
android:textColor="?attr/colorError" />
<TextView
@ -225,7 +229,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/view_details_underlined"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
android:textColor="?attr/colorError" />
</LinearLayout>
@ -249,7 +253,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/genres"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -258,7 +262,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="64dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@ -276,7 +280,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/director"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -285,7 +289,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="64dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@ -303,7 +307,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/writers"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -312,7 +316,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="64dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@ -327,7 +331,7 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="24dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="An angel falls. A warrior rises. When Alita awakens with no memory of who she is in a future world she does not recognize, she is taken in by Ido, a compassionate doctor who realizes that somewhere in this abandoned cyborg shell is the heart and soul of a young woman with an extraordinary past." />
<LinearLayout
@ -343,7 +347,7 @@
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="12dp"
android:text="@string/next_up"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp" />
<androidx.constraintlayout.widget.ConstraintLayout
@ -372,7 +376,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/next_up_image"
@ -394,7 +398,7 @@
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="12dp"
android:text="@string/seasons"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp" />
<androidx.recyclerview.widget.RecyclerView
@ -423,7 +427,7 @@
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="12dp"
android:text="@string/cast_amp_crew"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp" />
<androidx.recyclerview.widget.RecyclerView

View file

@ -45,7 +45,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/person_image"
app:layout_constraintTop_toTopOf="parent"
@ -58,7 +58,7 @@
android:layout_marginHorizontal="24dp"
android:layout_marginTop="8dp"
android:ellipsize="end"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintBottom_toTopOf="@id/read_all"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/person_image"
@ -75,7 +75,7 @@
<Button
android:id="@+id/read_all"
style="@style/Widget.MaterialComponents.Button.TextButton"
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
@ -99,7 +99,7 @@
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="12dp"
android:text="@string/movies_label"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:visibility="gone" />
<androidx.recyclerview.widget.RecyclerView
@ -121,7 +121,7 @@
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="12dp"
android:text="@string/shows_label"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:visibility="gone" />
<androidx.recyclerview.widget.RecyclerView

View file

@ -21,7 +21,8 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:itemCount="4"
tools:listitem="@layout/episode_item" />
tools:listitem="@layout/episode_item"
android:clipChildren="false"/>
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/loading_indicator"

View file

@ -41,7 +41,7 @@
<TextView
android:id="@+id/text_add_server"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="12dp"

View file

@ -37,7 +37,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/episode_image"
@ -49,7 +49,7 @@
android:layout_height="wrap_content"
android:singleLine="true"
android:text="@{String.format(@string/episode_name_extended, episode.parentIndexNumber, episode.indexNumber, episode.name)}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Caption"
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/primary_name"

View file

@ -23,7 +23,7 @@
android:layout_marginStart="24dp"
android:layout_marginBottom="12dp"
android:text="@{section.name}"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp"
tools:text="Next Up" />

View file

@ -36,7 +36,7 @@
android:ellipsize="end"
android:maxLines="2"
android:text="@{person.name}"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
tools:text="Rosa Salazar" />
<TextView
@ -46,7 +46,7 @@
android:ellipsize="end"
android:maxLines="2"
android:text="@{person.role}"
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
tools:text="as Alita" />
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
tools:text="Alita" />
</LinearLayout>
</layout>

View file

@ -65,7 +65,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyLarge"
app:layout_constraintBottom_toTopOf="@id/season_name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/season_poster"
@ -76,7 +76,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5"
android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/season_poster"

View file

@ -39,7 +39,7 @@
android:layout_gravity="center"
android:importantForAccessibility="no"
app:srcCompat="@drawable/ic_server"
app:tint="@color/white" />
app:tint="?attr/colorOnPrimary" />
</FrameLayout>
@ -49,7 +49,7 @@
android:layout_height="wrap_content"
android:text="@{server.name}"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View file

@ -20,7 +20,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textSize="18sp"
app:layout_constraintBaseline_toBaselineOf="@id/view_all"
app:layout_constraintStart_toStartOf="parent"
@ -28,7 +28,7 @@
<Button
android:id="@+id/view_all"
style="@style/Widget.MaterialComponents.Button.TextButton"
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"

View file

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Findroid" parent="Base.Theme.Findroid">
<!-- Main colors -->
<item name="colorPrimary">@android:color/system_accent1_400</item>
<item name="colorPrimaryVariant">@android:color/system_accent1_800</item>
<item name="colorSecondary">@android:color/system_accent2_400</item>
<item name="colorSecondaryVariant">@android:color/system_accent2_800</item>
<!-- Background colors and error state color -->
<item name="android:colorBackground">@color/black</item>
<item name="colorSurface">@android:color/system_neutral1_900</item>
<item name="colorError">@color/red</item>
<!-- Text, icons and strokes in relation to the surface -->
<item name="colorOnPrimary">@color/white</item>
<item name="colorOnSecondary">@color/black</item>
<item name="colorOnBackground">@color/white</item>
<item name="colorOnSurface">@color/white</item>
<item name="colorOnError">@color/white</item>
<!-- Navigation bar -->
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightNavigationBar">?attr/isLightTheme</item>
<item name="elevationOverlayEnabled">false</item>
</style>
</resources>

View file

@ -1,24 +1,20 @@
<resources>
<style name="Theme.Findroid" parent="Base.Theme.Findroid">
<!-- Main colors -->
<item name="colorPrimary">@color/blue_600</item>
<item name="colorPrimaryVariant">@color/blue_800</item>
<item name="colorSecondary">@color/green_300</item>
<item name="colorSecondaryVariant">@color/green_800</item>
<!-- Primary -->
<item name="colorPrimary">@color/primary_dark</item>
<item name="colorOnPrimary">@color/on_primary_dark</item>
<item name="colorPrimaryContainer">@color/primary_container_dark</item>
<item name="colorOnPrimaryContainer">@color/on_primary_container_dark</item>
<!-- Background colors and error state color -->
<item name="android:colorBackground">@color/black</item>
<!-- Secondary -->
<item name="colorSecondary">@color/secondary_dark</item>
<item name="colorOnSecondary">@color/on_secondary_dark</item>
<item name="colorSecondaryContainer">@color/secondary_container_dark</item>
<item name="colorOnSecondaryContainer">@color/on_secondary_container_dark</item>
<!-- Surface -->
<item name="android:colorBackground">@color/neutral_1000</item>
<item name="colorSurface">@color/neutral_900</item>
<item name="colorError">@color/red</item>
<!-- Text, icons and strokes in relation to the surface -->
<item name="colorOnPrimary">@color/white</item>
<item name="colorOnSecondary">@color/black</item>
<item name="colorOnBackground">@color/white</item>
<item name="colorOnSurface">@color/white</item>
<item name="colorOnError">@color/white</item>
<item name="elevationOverlayEnabled">false</item>
</style>
<style name="Theme.FindroidSplashScreen" parent="Theme.SplashScreen">

View file

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Findroid" parent="Base.Theme.Findroid">
<!-- Main colors -->
<item name="colorPrimary">@android:color/system_accent1_500</item>
<item name="colorPrimaryVariant">@android:color/system_accent1_800</item>
<item name="colorSecondary">@android:color/system_accent2_500</item>
<item name="colorSecondaryVariant">@android:color/system_accent2_800</item>
<!-- Navigation bar -->
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightNavigationBar">?attr/isLightTheme</item>
</style>
</resources>

View file

@ -1,11 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Primary -->
<color name="primary_light">#0060ac</color>
<color name="primary_container_light">#d3e4ff</color>
<color name="on_primary_container_light">#001c3a</color>
<color name="primary_dark">#a1c9ff</color>
<color name="on_primary_dark">#00315e</color>
<color name="primary_container_dark">#004884</color>
<color name="on_primary_container_dark">#d3e4ff</color>
<!-- Secondary -->
<color name="secondary_light">#545f70</color>
<color name="secondary_container_light">#d8e3f8</color>
<color name="on_secondary_container_light">#111c2b</color>
<color name="secondary_dark">#bcc7db</color>
<color name="on_secondary_dark">#263141</color>
<color name="secondary_container_dark">#3c4758</color>
<color name="on_secondary_container_dark">#d8e3f8</color>
<color name="blue_300">#67b0ed</color>
<color name="blue_600">#2B82D9</color>
<color name="blue_800">#2060b4</color>
<color name="green_300">#71ca92</color>
<color name="green_500">#24B364</color>
<color name="green_800">#038043</color>
<color name="neutral_1000">#0E141A</color>
<color name="neutral_900">#121A21</color>
<color name="neutral_800">#243342</color>
<color name="neutral_700">#374F67</color>
@ -13,6 +35,7 @@
<color name="neutral_300">#A9BDD1</color>
<color name="neutral_200">#D7E0E9</color>
<color name="neutral_100">#EEF2F6</color>
<color name="neutral_50">#F7FBFF</color>
<color name="transparent_white_300">#4DFFFFFF</color>
<color name="transparent_black_300">#4D000000</color>
<color name="black">#FF000000</color>

View file

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ShapeAppearance.Findroid.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
<style name="ShapeAppearance.Findroid.SmallComponent" parent="ShapeAppearance.Material3.SmallComponent">
<item name="cornerSize">10dp</item>
</style>
<style name="ShapeAppearance.Findroid.MediumComponent" parent="ShapeAppearance.MaterialComponents.MediumComponent">
<style name="ShapeAppearance.Findroid.MediumComponent" parent="ShapeAppearance.Material3.MediumComponent">
<item name="cornerSize">10dp</item>
</style>
<style name="ShapeAppearance.Findroid.LargeComponent" parent="ShapeAppearance.MaterialComponents.LargeComponent">
<style name="ShapeAppearance.Findroid.LargeComponent" parent="ShapeAppearance.Material3.LargeComponent">
<item name="cornerSize">10dp</item>
</style>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ErrorDialogStyle" parent="MaterialAlertDialog.MaterialComponents">
<style name="ErrorDialogStyle" parent="MaterialAlertDialog.Material3">
<item name="materialAlertDialogBodyTextStyle">@style/AlertDialogBodyText</item>
</style>
<style name="AlertDialogBodyText" parent="MaterialAlertDialog.MaterialComponents.Body.Text">
<style name="AlertDialogBodyText" parent="MaterialAlertDialog.Material3.Body.Text">
<item name="android:fontFamily">monospace</item>
</style>

View file

@ -2,23 +2,25 @@
<!-- Base application theme. -->
<style name="Theme.Findroid" parent="Base.Theme.Findroid" />
<style name="Base.Theme.Findroid" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Main colors -->
<item name="colorPrimary">@color/blue_600</item>
<item name="colorPrimaryVariant">@color/blue_800</item>
<item name="colorSecondary">@color/green_500</item>
<item name="colorSecondaryVariant">@color/green_800</item>
<!-- Background colors and error state color -->
<item name="android:colorBackground">@color/white</item>
<item name="colorSurface">@color/white</item>
<item name="colorError">@color/red</item>
<!-- Text, icons and strokes in relation to the surface -->
<style name="Base.Theme.Findroid" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Primary -->
<item name="colorPrimary">@color/primary_light</item>
<item name="colorOnPrimary">@color/white</item>
<item name="colorOnSecondary">@color/black</item>
<item name="colorOnBackground">@color/black</item>
<item name="colorOnSurface">@color/black</item>
<item name="colorPrimaryContainer">@color/primary_container_light</item>
<item name="colorOnPrimaryContainer">@color/on_primary_container_light</item>
<!-- Secondary -->
<item name="colorSecondary">@color/secondary_light</item>
<item name="colorOnSecondary">@color/white</item>
<item name="colorSecondaryContainer">@color/secondary_container_light</item>
<item name="colorOnSecondaryContainer">@color/on_secondary_container_light</item>
<!-- Surface -->
<item name="android:colorBackground">@color/neutral_50</item>
<item name="colorSurface">@color/neutral_100</item>
<!-- Error -->
<item name="colorError">@color/red</item>
<item name="colorOnError">@color/white</item>
<!-- Status bar -->
@ -31,7 +33,10 @@
<item name="shapeAppearanceLargeComponent">@style/ShapeAppearance.Findroid.LargeComponent</item>
<!-- Toolbar -->
<item name="toolbarStyle">@style/Widget.MaterialComponents.Toolbar.Surface</item>
<item name="toolbarStyle">@style/Widget.Material3.Toolbar.Surface</item>
<!-- Extra -->
<item name="elevationOverlayEnabled">false</item>
</style>
<style name="Theme.FindroidSplashScreen" parent="Theme.SplashScreen">