Browse Source

[GameProperties] Add support for secondary actions

pull/478/head
nyx 6 months ago
committed by inix
parent
commit
87df7a2c21
  1. 11
      src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GamePropertiesAdapter.kt
  2. 10
      src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameProperties.kt
  3. 11
      src/android/app/src/main/res/layout/card_simple_outlined.xml
  4. 2
      src/android/app/src/main/res/values/strings.xml

11
src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/GamePropertiesAdapter.kt

@ -83,6 +83,17 @@ class GamePropertiesAdapter(
} else {
binding.details.setVisible(false)
}
if (submenuProperty.secondaryAction != null) {
binding.buttonSecondaryAction.setVisible(submenuProperty.secondaryAction.isShown)
binding.buttonSecondaryAction.setIconResource(submenuProperty.secondaryAction.iconId)
binding.buttonSecondaryAction.contentDescription = binding.buttonSecondaryAction.context.getString(submenuProperty.secondaryAction.descriptionId)
binding.buttonSecondaryAction.setOnClickListener {
submenuProperty.secondaryAction.action.invoke()
}
} else {
binding.buttonSecondaryAction.setVisible(false)
}
}
}

10
src/android/app/src/main/java/org/yuzu/yuzu_emu/model/GameProperties.kt

@ -24,9 +24,17 @@ data class SubmenuProperty(
override val iconId: Int,
val details: (() -> String)? = null,
val detailsFlow: StateFlow<String>? = null,
val action: () -> Unit
val action: () -> Unit,
val secondaryAction: SubMenuProperSecondaryAction? = null
) : GameProperty
data class SubMenuProperSecondaryAction(
val isShown : Boolean,
val descriptionId: Int,
val iconId: Int,
val action: () -> Unit
)
data class InstallableProperty(
override val titleId: Int,
override val descriptionId: Int,

11
src/android/app/src/main/res/layout/card_simple_outlined.xml

@ -67,6 +67,17 @@
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/buttonSecondaryAction"
style="@style/Widget.Material3.Button.IconButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:visibility="gone"
app:iconSize="20dp"
tools:visibility="visible"
tools:icon="@drawable/ic_info_outline" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

2
src/android/app/src/main/res/values/strings.xml

@ -791,6 +791,8 @@
<string name="verify_no_result">Integrity verification couldn\'t be performed</string>
<string name="verify_no_result_description">File contents were not checked for validity</string>
<string name="verification_failed_for">Verification failed for the following files:\n%1$s</string>
<string name="share_game_settings">Share Game Settings</string>
<string name="share_config_failed">Failed to share configuration file</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Your ROM is encrypted</string>

Loading…
Cancel
Save