Преглед изворни кода

android: Reduce opacity of non-editable settings

Charles Lombardo пре 2 година
родитељ
комит
798a439eb1

+ 1 - 0
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
             val context = YuzuApplication.appContext
             binding.textSettingName.text = context.getString(license.titleId)
             binding.textSettingDescription.text = context.getString(license.descriptionId)
+            binding.textSettingValue.visibility = View.GONE
         }
     }
 }

+ 2 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/DateTimeViewHolder.kt

@@ -34,6 +34,8 @@ class DateTimeViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA
         val zonedTime = ZonedDateTime.ofInstant(instant, ZoneId.of("UTC"))
         val dateFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
         binding.textSettingValue.text = dateFormatter.format(zonedTime)
+
+        setStyle(setting.isEditable, binding)
     }
 
     override fun onClick(clicked: View) {

+ 2 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/RunnableViewHolder.kt

@@ -24,6 +24,8 @@ class RunnableViewHolder(val binding: ListItemSettingBinding, adapter: SettingsA
             binding.textSettingDescription.visibility = View.GONE
         }
         binding.textSettingValue.visibility = View.GONE
+
+        setStyle(setting.isEditable, binding)
     }
 
     override fun onClick(clicked: View) {

+ 16 - 0
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
 
 import android.view.View
 import androidx.recyclerview.widget.RecyclerView
+import org.yuzu.yuzu_emu.databinding.ListItemSettingBinding
+import org.yuzu.yuzu_emu.databinding.ListItemSettingSwitchBinding
 import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
 import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter
 
@@ -33,4 +35,18 @@ abstract class SettingViewHolder(itemView: View, protected val adapter: Settings
     abstract override fun onClick(clicked: View)
 
     abstract override fun onLongClick(clicked: View): Boolean
+
+    fun setStyle(isEditable: Boolean, binding: ListItemSettingBinding) {
+        val opacity = if (isEditable) 1.0f else 0.5f
+        binding.textSettingName.alpha = opacity
+        binding.textSettingDescription.alpha = opacity
+        binding.textSettingValue.alpha = opacity
+    }
+
+    fun setStyle(isEditable: Boolean, binding: ListItemSettingSwitchBinding) {
+        binding.switchWidget.isEnabled = isEditable
+        val opacity = if (isEditable) 1.0f else 0.5f
+        binding.textSettingName.alpha = opacity
+        binding.textSettingDescription.alpha = opacity
+    }
 }

+ 4 - 2
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SingleChoiceViewHolder.kt

@@ -31,17 +31,19 @@ class SingleChoiceViewHolder(val binding: ListItemSettingBinding, adapter: Setti
             for (i in values.indices) {
                 if (values[i] == item.selectedValue) {
                     binding.textSettingValue.text = resMgr.getStringArray(item.choicesId)[i]
-                    return
+                    break
                 }
             }
         } else if (item is StringSingleChoiceSetting) {
             for (i in item.values!!.indices) {
                 if (item.values[i] == item.selectedValue) {
                     binding.textSettingValue.text = item.choices[i]
-                    return
+                    break
                 }
             }
         }
+
+        setStyle(setting.isEditable, binding)
     }
 
     override fun onClick(clicked: View) {

+ 2 - 0
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SliderViewHolder.kt

@@ -29,6 +29,8 @@ class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAda
             setting.selectedValue,
             setting.units
         )
+
+        setStyle(setting.isEditable, binding)
     }
 
     override fun onClick(clicked: View) {

+ 1 - 1
src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/viewholder/SwitchSettingViewHolder.kt

@@ -30,7 +30,7 @@ class SwitchSettingViewHolder(val binding: ListItemSettingSwitchBinding, adapter
         }
         binding.switchWidget.isChecked = setting.isChecked
 
-        binding.switchWidget.isEnabled = setting.isEditable
+        setStyle(setting.isEditable, binding)
     }
 
     override fun onClick(clicked: View) {