summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-04-24 05:05:24 -0400
committerbunnei <bunneidev@gmail.com>2023-06-03 00:05:55 -0700
commit388dc0757fa55ee93e53de7e271a01cb7d09398a (patch)
treedaae8003abc1ddd978c091f7bc9d477eb04f76ff
parentf984775f12804b40b4dd93e611e7cdb6383e9269 (diff)
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.
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt16
-rw-r--r--src/android/app/src/main/res/layout/card_game.xml104
-rw-r--r--src/android/app/src/main/res/values/dimens.xml2
3 files changed, 64 insertions, 58 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt
index 77288b6d8..eca84a694 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GameAdapter.kt
@@ -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
+ )
}
}
diff --git a/src/android/app/src/main/res/layout/card_game.xml b/src/android/app/src/main/res/layout/card_game.xml
index 4b7d2b3cc..469ad9edf 100644
--- a/src/android/app/src/main/res/layout/card_game.xml
+++ b/src/android/app/src/main/res/layout/card_game.xml
@@ -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>
+ <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">
- <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" />
+ <ImageView
+ android:id="@+id/image_game_screen"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
- <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" />
+ </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>
-</androidx.constraintlayout.widget.ConstraintLayout>
+</FrameLayout>
diff --git a/src/android/app/src/main/res/values/dimens.xml b/src/android/app/src/main/res/values/dimens.xml
index 23977c9f1..ab2583938 100644
--- a/src/android/app/src/main/res/values/dimens.xml
+++ b/src/android/app/src/main/res/values/dimens.xml
@@ -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>