diff options
author | Charles Lombardo <clombardo169@gmail.com> | 2023-04-24 05:05:24 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2023-06-03 00:05:55 -0700 |
commit | 388dc0757fa55ee93e53de7e271a01cb7d09398a (patch) | |
tree | daae8003abc1ddd978c091f7bc9d477eb04f76ff /src | |
parent | f984775f12804b40b4dd93e611e7cdb6383e9269 (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.
Diffstat (limited to 'src')
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> |