diff options
Diffstat (limited to '')
12 files changed, 106 insertions, 59 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt index 7006651d0..bc6ff1364 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/adapters/LicenseAdapter.kt | |||
| @@ -49,6 +49,7 @@ class LicenseAdapter(private val activity: AppCompatActivity, var licenses: List | |||
| 49 | val context = YuzuApplication.appContext | 49 | val context = YuzuApplication.appContext |
| 50 | binding.textSettingName.text = context.getString(license.titleId) | 50 | binding.textSettingName.text = context.getString(license.titleId) |
| 51 | binding.textSettingDescription.text = context.getString(license.descriptionId) | 51 | binding.textSettingDescription.text = context.getString(license.descriptionId) |
| 52 | binding.textSettingValue.visibility = View.GONE | ||
| 52 | } | 53 | } |
| 53 | } | 54 | } |
| 54 | } | 55 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt index ce0b92c90..9711e2c51 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsAdapter.kt | |||
| @@ -207,8 +207,11 @@ class SettingsAdapter( | |||
| 207 | val sliderBinding = DialogSliderBinding.inflate(inflater) | 207 | val sliderBinding = DialogSliderBinding.inflate(inflater) |
| 208 | 208 | ||
| 209 | textSliderValue = sliderBinding.textValue | 209 | textSliderValue = sliderBinding.textValue |
| 210 | textSliderValue!!.text = sliderProgress.toString() | 210 | textSliderValue!!.text = String.format( |
| 211 | sliderBinding.textUnits.text = item.units | 211 | context.getString(R.string.value_with_units), |
| 212 | sliderProgress.toString(), | ||
| 213 | item.units | ||
| 214 | ) | ||
| 212 | 215 | ||
| 213 | sliderBinding.slider.apply { | 216 | sliderBinding.slider.apply { |
| 214 | valueFrom = item.min.toFloat() | 217 | valueFrom = item.min.toFloat() |
| @@ -216,7 +219,11 @@ class SettingsAdapter( | |||
| 216 | value = sliderProgress.toFloat() | 219 | value = sliderProgress.toFloat() |
| 217 | addOnChangeListener { _: Slider, value: Float, _: Boolean -> | 220 | addOnChangeListener { _: Slider, value: Float, _: Boolean -> |
| 218 | sliderProgress = value.toInt() | 221 | sliderProgress = value.toInt() |
| 219 | textSliderValue!!.text = sliderProgress.toString() | 222 | textSliderValue!!.text = String.format( |
| 223 | context.getString(R.string.value_with_units), | ||
| 224 | sliderProgress.toString(), | ||
| 225 | item.units | ||
| 226 | ) | ||
| 220 | } | 227 | } |
| 221 | } | 228 | } |
| 222 | 229 | ||
| @@ -225,10 +232,6 @@ class SettingsAdapter( | |||
| 225 | .setView(sliderBinding.root) | 232 | .setView(sliderBinding.root) |
| 226 | .setPositiveButton(android.R.string.ok, this) | 233 | .setPositiveButton(android.R.string.ok, this) |
| 227 | .setNegativeButton(android.R.string.cancel, defaultCancelListener) | 234 | .setNegativeButton(android.R.string.cancel, defaultCancelListener) |
| 228 | .setNeutralButton(R.string.slider_default) { dialog: DialogInterface, which: Int -> | ||
| 229 | sliderBinding.slider.value = item.defaultValue!!.toFloat() | ||
| 230 | onClick(dialog, which) | ||
| 231 | } | ||
| 232 | .show() | 235 | .show() |
| 233 | } | 236 | } |
| 234 | 237 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt index 7955532ee..79572fc06 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt | |||
| @@ -25,12 +25,17 @@ class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA | |||
| 25 | binding.textSettingDescription.setText(item.descriptionId) | 25 | binding.textSettingDescription.setText(item.descriptionId) |
| 26 | binding.textSettingDescription.visibility = View.VISIBLE | 26 | binding.textSettingDescription.visibility = View.VISIBLE |
| 27 | } else { | 27 | } else { |
| 28 | val epochTime = setting.value.toLong() | 28 | binding.textSettingDescription.visibility = View.GONE |
| 29 | val instant = Instant.ofEpochMilli(epochTime * 1000) | ||
| 30 | val zonedTime = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC")) | ||
| 31 | val dateFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) | ||
| 32 | binding.textSettingDescription.text = dateFormatter.format(zonedTime) | ||
| 33 | } | 29 | } |
| 30 | |||
| 31 | binding.textSettingValue.visibility = View.VISIBLE | ||
| 32 | val epochTime = setting.value.toLong() | ||
| 33 | val instant = Instant.ofEpochMilli(epochTime * 1000) | ||
| 34 | val zonedTime = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC")) | ||
| 35 | val dateFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) | ||
| 36 | binding.textSettingValue.text = dateFormatter.format(zonedTime) | ||
| 37 | |||
| 38 | setStyle(setting.isEditable, binding) | ||
| 34 | } | 39 | } |
| 35 | 40 | ||
| 36 | override fun onClick(clicked: View) { | 41 | override fun onClick(clicked: View) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt index 5dad5945f..83a2e94f1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt | |||
| @@ -23,6 +23,9 @@ class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA | |||
| 23 | } else { | 23 | } else { |
| 24 | binding.textSettingDescription.visibility = View.GONE | 24 | binding.textSettingDescription.visibility = View.GONE |
| 25 | } | 25 | } |
| 26 | binding.textSettingValue.visibility = View.GONE | ||
| 27 | |||
| 28 | setStyle(setting.isEditable, binding) | ||
| 26 | } | 29 | } |
| 27 | 30 | ||
| 28 | override fun onClick(clicked: View) { | 31 | override fun onClick(clicked: View) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt index f56460893..0fd1d2eaa 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SettingViewHolder.kt | |||
| @@ -5,6 +5,8 @@ package org.yuzu.yuzu_emu.features.settings.ui.viewholder | |||
| 5 | 5 | ||
| 6 | import android.view.View | 6 | import android.view.View |
| 7 | import androidx.recyclerview.widget.RecyclerView | 7 | import androidx.recyclerview.widget.RecyclerView |
| 8 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding | ||
| 9 | import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding | ||
| 8 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | 10 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
| 9 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter | 11 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter |
| 10 | 12 | ||
| @@ -33,4 +35,18 @@ abstract class SettingViewHolder(itemView: View, protected val adapter: Settings | |||
| 33 | abstract override fun onClick(clicked: View) | 35 | abstract override fun onClick(clicked: View) |
| 34 | 36 | ||
| 35 | abstract override fun onLongClick(clicked: View): Boolean | 37 | abstract override fun onLongClick(clicked: View): Boolean |
| 38 | |||
| 39 | fun setStyle(isEditable: Boolean, binding: ListItemSettingBinding) { | ||
| 40 | val opacity = if (isEditable) 1.0f else 0.5f | ||
| 41 | binding.textSettingName.alpha = opacity | ||
| 42 | binding.textSettingDescription.alpha = opacity | ||
| 43 | binding.textSettingValue.alpha = opacity | ||
| 44 | } | ||
| 45 | |||
| 46 | fun setStyle(isEditable: Boolean, binding: ListItemSettingSwitchBinding) { | ||
| 47 | binding.switchWidget.isEnabled = isEditable | ||
| 48 | val opacity = if (isEditable) 1.0f else 0.5f | ||
| 49 | binding.textSettingName.alpha = opacity | ||
| 50 | binding.textSettingDescription.alpha = opacity | ||
| 51 | } | ||
| 36 | } | 52 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt index e4e321bd3..b42d955aa 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt | |||
| @@ -17,28 +17,33 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti | |||
| 17 | override fun bind(item: SettingsItem) { | 17 | override fun bind(item: SettingsItem) { |
| 18 | setting = item | 18 | setting = item |
| 19 | binding.textSettingName.setText(item.nameId) | 19 | binding.textSettingName.setText(item.nameId) |
| 20 | binding.textSettingDescription.visibility = View.VISIBLE | ||
| 21 | if (item.descriptionId != 0) { | 20 | if (item.descriptionId != 0) { |
| 22 | binding.textSettingDescription.setText(item.descriptionId) | 21 | binding.textSettingDescription.setText(item.descriptionId) |
| 23 | } else if (item is SingleChoiceSetting) { | 22 | binding.textSettingDescription.visibility = View.VISIBLE |
| 24 | val resMgr = binding.textSettingDescription.context.resources | 23 | } else { |
| 24 | binding.textSettingDescription.visibility = View.GONE | ||
| 25 | } | ||
| 26 | |||
| 27 | binding.textSettingValue.visibility = View.VISIBLE | ||
| 28 | if (item is SingleChoiceSetting) { | ||
| 29 | val resMgr = binding.textSettingValue.context.resources | ||
| 25 | val values = resMgr.getIntArray(item.valuesId) | 30 | val values = resMgr.getIntArray(item.valuesId) |
| 26 | for (i in values.indices) { | 31 | for (i in values.indices) { |
| 27 | if (values[i] == item.selectedValue) { | 32 | if (values[i] == item.selectedValue) { |
| 28 | binding.textSettingDescription.text = resMgr.getStringArray(item.choicesId)[i] | 33 | binding.textSettingValue.text = resMgr.getStringArray(item.choicesId)[i] |
| 29 | return | 34 | break |
| 30 | } | 35 | } |
| 31 | } | 36 | } |
| 32 | } else if (item is StringSingleChoiceSetting) { | 37 | } else if (item is StringSingleChoiceSetting) { |
| 33 | for (i in item.values!!.indices) { | 38 | for (i in item.values!!.indices) { |
| 34 | if (item.values[i] == item.selectedValue) { | 39 | if (item.values[i] == item.selectedValue) { |
| 35 | binding.textSettingDescription.text = item.choices[i] | 40 | binding.textSettingValue.text = item.choices[i] |
| 36 | return | 41 | break |
| 37 | } | 42 | } |
| 38 | } | 43 | } |
| 39 | } else { | ||
| 40 | binding.textSettingDescription.visibility = View.GONE | ||
| 41 | } | 44 | } |
| 45 | |||
| 46 | setStyle(setting.isEditable, binding) | ||
| 42 | } | 47 | } |
| 43 | 48 | ||
| 44 | override fun onClick(clicked: View) { | 49 | override fun onClick(clicked: View) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt index cc3f39aa5..a23b5d109 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | package org.yuzu.yuzu_emu.features.settings.ui.viewholder | 4 | package org.yuzu.yuzu_emu.features.settings.ui.viewholder |
| 5 | 5 | ||
| 6 | import android.view.View | 6 | import android.view.View |
| 7 | import org.yuzu.yuzu_emu.R | ||
| 7 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding | 8 | import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding |
| 8 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | 9 | import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem |
| 9 | import org.yuzu.yuzu_emu.features.settings.model.view.SliderSetting | 10 | import org.yuzu.yuzu_emu.features.settings.model.view.SliderSetting |
| @@ -22,6 +23,14 @@ class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAda | |||
| 22 | } else { | 23 | } else { |
| 23 | binding.textSettingDescription.visibility = View.GONE | 24 | binding.textSettingDescription.visibility = View.GONE |
| 24 | } | 25 | } |
| 26 | binding.textSettingValue.visibility = View.VISIBLE | ||
| 27 | binding.textSettingValue.text = String.format( | ||
| 28 | binding.textSettingValue.context.getString(R.string.value_with_units), | ||
| 29 | setting.selectedValue, | ||
| 30 | setting.units | ||
| 31 | ) | ||
| 32 | |||
| 33 | setStyle(setting.isEditable, binding) | ||
| 25 | } | 34 | } |
| 26 | 35 | ||
| 27 | override fun onClick(clicked: View) { | 36 | override fun onClick(clicked: View) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt index c545b4174..1cf581a9d 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SubmenuViewHolder.kt | |||
| @@ -22,6 +22,7 @@ class SubmenuViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAd | |||
| 22 | } else { | 22 | } else { |
| 23 | binding.textSettingDescription.visibility = View.GONE | 23 | binding.textSettingDescription.visibility = View.GONE |
| 24 | } | 24 | } |
| 25 | binding.textSettingValue.visibility = View.GONE | ||
| 25 | } | 26 | } |
| 26 | 27 | ||
| 27 | override fun onClick(clicked: View) { | 28 | override fun onClick(clicked: View) { |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt index 54f531795..ef34bf5f4 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt | |||
| @@ -25,12 +25,12 @@ class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter | |||
| 25 | binding.textSettingDescription.text = "" | 25 | binding.textSettingDescription.text = "" |
| 26 | binding.textSettingDescription.visibility = View.GONE | 26 | binding.textSettingDescription.visibility = View.GONE |
| 27 | } | 27 | } |
| 28 | binding.switchWidget.isChecked = setting.isChecked | ||
| 29 | binding.switchWidget.setOnCheckedChangeListener { _: CompoundButton, _: Boolean -> | 28 | binding.switchWidget.setOnCheckedChangeListener { _: CompoundButton, _: Boolean -> |
| 30 | adapter.onBooleanClick(item, bindingAdapterPosition, binding.switchWidget.isChecked) | 29 | adapter.onBooleanClick(item, bindingAdapterPosition, binding.switchWidget.isChecked) |
| 31 | } | 30 | } |
| 31 | binding.switchWidget.isChecked = setting.isChecked | ||
| 32 | 32 | ||
| 33 | binding.switchWidget.isEnabled = setting.isEditable | 33 | setStyle(setting.isEditable, binding) |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | override fun onClick(clicked: View) { | 36 | override fun onClick(clicked: View) { |
diff --git a/src/android/app/src/main/res/layout/dialog_slider.xml b/src/android/app/src/main/res/layout/dialog_slider.xml index 8c84cb606..d1cb31739 100644 --- a/src/android/app/src/main/res/layout/dialog_slider.xml +++ b/src/android/app/src/main/res/layout/dialog_slider.xml | |||
| @@ -5,23 +5,16 @@ | |||
| 5 | android:layout_height="wrap_content" | 5 | android:layout_height="wrap_content" |
| 6 | android:orientation="vertical"> | 6 | android:orientation="vertical"> |
| 7 | 7 | ||
| 8 | <TextView | 8 | <com.google.android.material.textview.MaterialTextView |
| 9 | android:id="@+id/text_value" | 9 | android:id="@+id/text_value" |
| 10 | style="@style/TextAppearance.Material3.LabelMedium" | ||
| 10 | android:layout_width="wrap_content" | 11 | android:layout_width="wrap_content" |
| 11 | android:layout_height="wrap_content" | 12 | android:layout_height="wrap_content" |
| 12 | android:layout_alignParentTop="true" | 13 | android:layout_alignParentTop="true" |
| 13 | android:layout_centerHorizontal="true" | 14 | android:layout_centerHorizontal="true" |
| 14 | android:layout_marginBottom="@dimen/spacing_medlarge" | 15 | android:layout_marginBottom="@dimen/spacing_medlarge" |
| 15 | android:layout_marginTop="@dimen/spacing_medlarge" | 16 | android:layout_marginTop="@dimen/spacing_medlarge" |
| 16 | tools:text="75" /> | 17 | tools:text="75%" /> |
| 17 | |||
| 18 | <TextView | ||
| 19 | android:id="@+id/text_units" | ||
| 20 | android:layout_width="wrap_content" | ||
| 21 | android:layout_height="wrap_content" | ||
| 22 | android:layout_alignTop="@+id/text_value" | ||
| 23 | android:layout_toEndOf="@+id/text_value" | ||
| 24 | tools:text="%" /> | ||
| 25 | 18 | ||
| 26 | <com.google.android.material.slider.Slider | 19 | <com.google.android.material.slider.Slider |
| 27 | android:id="@+id/slider" | 20 | android:id="@+id/slider" |
diff --git a/src/android/app/src/main/res/layout/list_item_setting.xml b/src/android/app/src/main/res/layout/list_item_setting.xml index ec896342b..f1037a740 100644 --- a/src/android/app/src/main/res/layout/list_item_setting.xml +++ b/src/android/app/src/main/res/layout/list_item_setting.xml | |||
| @@ -1,9 +1,10 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | 2 | <RelativeLayout |
| 3 | xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 4 | xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 3 | xmlns:tools="http://schemas.android.com/tools" | 5 | xmlns:tools="http://schemas.android.com/tools" |
| 4 | android:layout_width="match_parent" | 6 | android:layout_width="match_parent" |
| 5 | android:layout_height="wrap_content" | 7 | android:layout_height="wrap_content" |
| 6 | xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 7 | android:background="?android:attr/selectableItemBackground" | 8 | android:background="?android:attr/selectableItemBackground" |
| 8 | android:clickable="true" | 9 | android:clickable="true" |
| 9 | android:focusable="true" | 10 | android:focusable="true" |
| @@ -11,31 +12,40 @@ | |||
| 11 | android:minHeight="72dp" | 12 | android:minHeight="72dp" |
| 12 | android:padding="@dimen/spacing_large"> | 13 | android:padding="@dimen/spacing_large"> |
| 13 | 14 | ||
| 14 | <com.google.android.material.textview.MaterialTextView | 15 | <LinearLayout |
| 15 | style="@style/TextAppearance.Material3.HeadlineMedium" | 16 | android:layout_width="match_parent" |
| 16 | android:id="@+id/text_setting_name" | ||
| 17 | android:layout_width="0dp" | ||
| 18 | android:layout_height="wrap_content" | 17 | android:layout_height="wrap_content" |
| 19 | android:layout_alignParentEnd="true" | 18 | android:orientation="vertical"> |
| 20 | android:layout_alignParentStart="true" | ||
| 21 | android:layout_alignParentTop="true" | ||
| 22 | android:textSize="16sp" | ||
| 23 | android:textAlignment="viewStart" | ||
| 24 | app:lineHeight="28dp" | ||
| 25 | tools:text="Setting Name" /> | ||
| 26 | 19 | ||
| 27 | <TextView | 20 | <com.google.android.material.textview.MaterialTextView |
| 28 | style="@style/TextAppearance.Material3.BodySmall" | 21 | android:id="@+id/text_setting_name" |
| 29 | android:id="@+id/text_setting_description" | 22 | style="@style/TextAppearance.Material3.HeadlineMedium" |
| 30 | android:layout_width="wrap_content" | 23 | android:layout_width="match_parent" |
| 31 | android:layout_height="wrap_content" | 24 | android:layout_height="wrap_content" |
| 32 | android:layout_alignParentEnd="true" | 25 | android:textAlignment="viewStart" |
| 33 | android:layout_alignParentStart="true" | 26 | android:textSize="16sp" |
| 34 | android:layout_alignStart="@+id/text_setting_name" | 27 | app:lineHeight="22dp" |
| 35 | android:layout_below="@+id/text_setting_name" | 28 | tools:text="Setting Name" /> |
| 36 | android:layout_marginTop="@dimen/spacing_small" | 29 | |
| 37 | android:visibility="visible" | 30 | <com.google.android.material.textview.MaterialTextView |
| 38 | android:textAlignment="viewStart" | 31 | android:id="@+id/text_setting_description" |
| 39 | tools:text="@string/app_disclaimer" /> | 32 | style="@style/TextAppearance.Material3.BodySmall" |
| 33 | android:layout_width="match_parent" | ||
| 34 | android:layout_height="wrap_content" | ||
| 35 | android:layout_marginTop="@dimen/spacing_small" | ||
| 36 | android:textAlignment="viewStart" | ||
| 37 | tools:text="@string/app_disclaimer" /> | ||
| 38 | |||
| 39 | <com.google.android.material.textview.MaterialTextView | ||
| 40 | android:id="@+id/text_setting_value" | ||
| 41 | style="@style/TextAppearance.Material3.LabelMedium" | ||
| 42 | android:layout_width="match_parent" | ||
| 43 | android:layout_height="wrap_content" | ||
| 44 | android:layout_marginTop="@dimen/spacing_small" | ||
| 45 | android:textAlignment="viewStart" | ||
| 46 | android:textStyle="bold" | ||
| 47 | tools:text="1x" /> | ||
| 48 | |||
| 49 | </LinearLayout> | ||
| 40 | 50 | ||
| 41 | </RelativeLayout> | 51 | </RelativeLayout> |
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 02e25504d..82359f358 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml | |||
| @@ -149,6 +149,7 @@ | |||
| 149 | <string name="frame_limit_slider">Limit speed percent</string> | 149 | <string name="frame_limit_slider">Limit speed percent</string> |
| 150 | <string name="frame_limit_slider_description">Specifies the percentage to limit emulation speed. 100% is the normal speed. Values higher or lower will increase or decrease the speed limit.</string> | 150 | <string name="frame_limit_slider_description">Specifies the percentage to limit emulation speed. 100% is the normal speed. Values higher or lower will increase or decrease the speed limit.</string> |
| 151 | <string name="cpu_accuracy">CPU accuracy</string> | 151 | <string name="cpu_accuracy">CPU accuracy</string> |
| 152 | <string name="value_with_units">%1$s%2$s</string> | ||
| 152 | 153 | ||
| 153 | <!-- System settings strings --> | 154 | <!-- System settings strings --> |
| 154 | <string name="use_docked_mode">Docked Mode</string> | 155 | <string name="use_docked_mode">Docked Mode</string> |