android: Shape/spacing adjustments to game card
Ripple effect now reaches into rounded corners, icon size changed, company text removed, title font adjusted, and spacing around the card was adjusted as well. Text also doesn't get cut off anymore and instead scrolls indefinitely on one line.
This commit is contained in:
		| @@ -6,6 +6,7 @@ package org.yuzu.yuzu_emu.adapters | ||||
| import android.annotation.SuppressLint | ||||
| import android.graphics.Bitmap | ||||
| import android.graphics.BitmapFactory | ||||
| import android.text.TextUtils | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| @@ -31,7 +32,7 @@ class GameAdapter(private val activity: AppCompatActivity) : | ||||
|     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GameViewHolder { | ||||
|         // Create a new view. | ||||
|         val binding = CardGameBinding.inflate(LayoutInflater.from(parent.context), parent, false) | ||||
|         binding.root.setOnClickListener(this) | ||||
|         binding.cardGame.setOnClickListener(this) | ||||
|  | ||||
|         // Use that view to create a ViewHolder. | ||||
|         return GameViewHolder(binding) | ||||
| @@ -58,7 +59,7 @@ class GameAdapter(private val activity: AppCompatActivity) : | ||||
|         lateinit var game: Game | ||||
|  | ||||
|         init { | ||||
|             itemView.tag = this | ||||
|             binding.cardGame.tag = this | ||||
|         } | ||||
|  | ||||
|         fun bind(game: Game) { | ||||
| @@ -73,11 +74,14 @@ class GameAdapter(private val activity: AppCompatActivity) : | ||||
|             } | ||||
|  | ||||
|             binding.textGameTitle.text = game.title.replace("[\\t\\n\\r]+".toRegex(), " ") | ||||
|             binding.textGameCaption.text = game.company | ||||
|  | ||||
|             if (game.company.isEmpty()) { | ||||
|                 binding.textGameCaption.visibility = View.GONE | ||||
|             } | ||||
|             binding.textGameTitle.postDelayed( | ||||
|                 { | ||||
|                     binding.textGameTitle.ellipsize = TextUtils.TruncateAt.MARQUEE | ||||
|                     binding.textGameTitle.isSelected = true | ||||
|                 }, | ||||
|                 3000 | ||||
|             ) | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -1,64 +1,66 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.constraintlayout.widget.ConstraintLayout | ||||
| <FrameLayout | ||||
|     xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="wrap_content" | ||||
|     android:foreground="?attr/selectableItemBackground" | ||||
|     android:clickable="true" | ||||
|     android:clipToPadding="false" | ||||
|     android:focusable="true" | ||||
|     android:paddingStart="4dp" | ||||
|     android:paddingTop="8dp" | ||||
|     android:paddingEnd="4dp" | ||||
|     android:paddingBottom="8dp" | ||||
|     android:transitionName="card_game"> | ||||
|     android:layout_height="wrap_content"> | ||||
|  | ||||
|     <com.google.android.material.card.MaterialCardView | ||||
|         style="?attr/materialCardViewElevatedStyle" | ||||
|         android:id="@+id/card_game_art" | ||||
|         android:layout_width="140dp" | ||||
|         android:layout_height="140dp" | ||||
|         app:cardCornerRadius="4dp" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toTopOf="parent"> | ||||
|         android:id="@+id/card_game" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:background="?attr/selectableItemBackground" | ||||
|         android:clickable="true" | ||||
|         android:clipToPadding="false" | ||||
|         android:focusable="true" | ||||
|         android:transitionName="card_game" | ||||
|         android:layout_gravity="center" | ||||
|         app:cardElevation="0dp" | ||||
|         app:cardCornerRadius="12dp"> | ||||
|  | ||||
|         <ImageView | ||||
|             android:id="@+id/image_game_screen" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="match_parent" /> | ||||
|         <androidx.constraintlayout.widget.ConstraintLayout | ||||
|             android:layout_width="wrap_content" | ||||
|             android:layout_height="wrap_content" | ||||
|             android:padding="6dp"> | ||||
|  | ||||
|             <com.google.android.material.card.MaterialCardView | ||||
|                 style="?attr/materialCardViewElevatedStyle" | ||||
|                 android:id="@+id/card_game_art" | ||||
|                 android:layout_width="150dp" | ||||
|                 android:layout_height="150dp" | ||||
|                 app:cardCornerRadius="4dp" | ||||
|                 app:layout_constraintEnd_toEndOf="parent" | ||||
|                 app:layout_constraintStart_toStartOf="parent" | ||||
|                 app:layout_constraintTop_toTopOf="parent"> | ||||
|  | ||||
|                 <ImageView | ||||
|                     android:id="@+id/image_game_screen" | ||||
|                     android:layout_width="match_parent" | ||||
|                     android:layout_height="match_parent" /> | ||||
|  | ||||
|             </com.google.android.material.card.MaterialCardView> | ||||
|  | ||||
|             <com.google.android.material.textview.MaterialTextView | ||||
|                 style="@style/TextAppearance.Material3.TitleMedium" | ||||
|                 android:id="@+id/text_game_title" | ||||
|                 android:layout_width="0dp" | ||||
|                 android:layout_height="wrap_content" | ||||
|                 android:layout_marginTop="8dp" | ||||
|                 android:textAlignment="center" | ||||
|                 android:textSize="14sp" | ||||
|                 android:singleLine="true" | ||||
|                 android:marqueeRepeatLimit="marquee_forever" | ||||
|                 android:ellipsize="none" | ||||
|                 android:requiresFadingEdge="horizontal" | ||||
|                 app:layout_constraintEnd_toEndOf="@+id/card_game_art" | ||||
|                 app:layout_constraintStart_toStartOf="@+id/card_game_art" | ||||
|                 app:layout_constraintTop_toBottomOf="@+id/card_game_art" | ||||
|                 tools:text="The Legend of Zelda: Skyward Sword" /> | ||||
|  | ||||
|         </androidx.constraintlayout.widget.ConstraintLayout> | ||||
|  | ||||
|     </com.google.android.material.card.MaterialCardView> | ||||
|  | ||||
|     <com.google.android.material.textview.MaterialTextView | ||||
|         style="@style/TextAppearance.Material3.BodyLarge" | ||||
|         android:id="@+id/text_game_title" | ||||
|         android:layout_width="0dp" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:ellipsize="end" | ||||
|         android:maxLines="2" | ||||
|         android:paddingTop="8dp" | ||||
|         android:textAlignment="viewStart" | ||||
|         app:layout_constraintEnd_toEndOf="@+id/card_game_art" | ||||
|         app:layout_constraintStart_toStartOf="@+id/card_game_art" | ||||
|         app:layout_constraintTop_toBottomOf="@+id/card_game_art" | ||||
|         tools:text="Super Mario Odyssey" /> | ||||
|  | ||||
|     <com.google.android.material.textview.MaterialTextView | ||||
|         style="@style/TextAppearance.Material3.BodyMedium" | ||||
|         android:id="@+id/text_game_caption" | ||||
|         android:layout_width="0dp" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:ellipsize="end" | ||||
|         android:lines="1" | ||||
|         android:maxLines="1" | ||||
|         android:paddingTop="8dp" | ||||
|         android:textAlignment="viewStart" | ||||
|         app:layout_constraintEnd_toEndOf="@+id/card_game_art" | ||||
|         app:layout_constraintStart_toStartOf="@+id/card_game_art" | ||||
|         app:layout_constraintTop_toBottomOf="@+id/text_game_title" | ||||
|         tools:text="Nintendo" /> | ||||
|  | ||||
| </androidx.constraintlayout.widget.ConstraintLayout> | ||||
| </FrameLayout> | ||||
|   | ||||
| @@ -11,7 +11,7 @@ | ||||
|     <dimen name="spacing_refresh_start">32dp</dimen> | ||||
|     <dimen name="spacing_refresh_end">96dp</dimen> | ||||
|     <dimen name="menu_width">256dp</dimen> | ||||
|     <dimen name="card_width">160dp</dimen> | ||||
|     <dimen name="card_width">165dp</dimen> | ||||
|  | ||||
|     <dimen name="dialog_margin">20dp</dimen> | ||||
|     <dimen name="elevated_app_bar">3dp</dimen> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user