summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt8
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt29
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt8
-rw-r--r--src/android/app/src/main/res/layout-w600dp/fragment_about.xml5
-rw-r--r--src/android/app/src/main/res/layout-w600dp/fragment_game_info.xml155
-rw-r--r--src/android/app/src/main/res/layout-w600dp/fragment_game_properties.xml1
-rw-r--r--src/android/app/src/main/res/layout/card_driver_option.xml1
-rw-r--r--src/android/app/src/main/res/layout/card_folder.xml6
-rw-r--r--src/android/app/src/main/res/layout/fragment_about.xml5
-rw-r--r--src/android/app/src/main/res/layout/fragment_addons.xml4
-rw-r--r--src/android/app/src/main/res/layout/fragment_applet_launcher.xml4
-rw-r--r--src/android/app/src/main/res/layout/fragment_driver_manager.xml2
-rw-r--r--src/android/app/src/main/res/layout/fragment_early_access.xml5
-rw-r--r--src/android/app/src/main/res/layout/fragment_emulation.xml8
-rw-r--r--src/android/app/src/main/res/layout/fragment_folders.xml3
-rw-r--r--src/android/app/src/main/res/layout/fragment_game_info.xml3
-rw-r--r--src/android/app/src/main/res/layout/fragment_game_properties.xml5
-rw-r--r--src/android/app/src/main/res/layout/fragment_games.xml1
-rw-r--r--src/android/app/src/main/res/layout/fragment_home_settings.xml3
-rw-r--r--src/android/app/src/main/res/layout/fragment_installables.xml4
-rw-r--r--src/android/app/src/main/res/layout/fragment_licenses.xml4
-rw-r--r--src/android/app/src/main/res/layout/fragment_settings.xml2
-rw-r--r--src/android/app/src/main/res/layout/list_item_addon.xml2
-rw-r--r--src/android/app/src/main/res/layout/list_item_settings_header.xml1
25 files changed, 247 insertions, 24 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index 9b08f008d..26cddecf4 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -193,6 +193,10 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
193 return super.dispatchKeyEvent(event) 193 return super.dispatchKeyEvent(event)
194 } 194 }
195 195
196 if (emulationViewModel.drawerOpen.value) {
197 return super.dispatchKeyEvent(event)
198 }
199
196 return InputHandler.dispatchKeyEvent(event) 200 return InputHandler.dispatchKeyEvent(event)
197 } 201 }
198 202
@@ -203,6 +207,10 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
203 return super.dispatchGenericMotionEvent(event) 207 return super.dispatchGenericMotionEvent(event)
204 } 208 }
205 209
210 if (emulationViewModel.drawerOpen.value) {
211 return super.dispatchGenericMotionEvent(event)
212 }
213
206 // Don't attempt to do anything if we are disconnecting a device. 214 // Don't attempt to do anything if we are disconnecting a device.
207 if (event.actionMasked == MotionEvent.ACTION_CANCEL) { 215 if (event.actionMasked == MotionEvent.ACTION_CANCEL) {
208 return true 216 return true
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt
index 5b5f800c1..5ab38ffda 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt
@@ -77,7 +77,7 @@ class AboutFragment : Fragment() {
77 } 77 }
78 78
79 binding.textVersionName.text = BuildConfig.VERSION_NAME 79 binding.textVersionName.text = BuildConfig.VERSION_NAME
80 binding.textVersionName.setOnClickListener { 80 binding.buttonVersionName.setOnClickListener {
81 val clipBoard = 81 val clipBoard =
82 requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager 82 requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
83 val clip = ClipData.newPlainText(getString(R.string.build), BuildConfig.GIT_HASH) 83 val clip = ClipData.newPlainText(getString(R.string.build), BuildConfig.GIT_HASH)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index d17e087fe..22da1d0e5 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -38,6 +38,7 @@ import androidx.window.layout.WindowLayoutInfo
38import com.google.android.material.dialog.MaterialAlertDialogBuilder 38import com.google.android.material.dialog.MaterialAlertDialogBuilder
39import com.google.android.material.slider.Slider 39import com.google.android.material.slider.Slider
40import kotlinx.coroutines.Dispatchers 40import kotlinx.coroutines.Dispatchers
41import kotlinx.coroutines.flow.collect
41import kotlinx.coroutines.flow.collectLatest 42import kotlinx.coroutines.flow.collectLatest
42import kotlinx.coroutines.launch 43import kotlinx.coroutines.launch
43import org.yuzu.yuzu_emu.HomeNavigationDirections 44import org.yuzu.yuzu_emu.HomeNavigationDirections
@@ -184,10 +185,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
184 185
185 override fun onDrawerOpened(drawerView: View) { 186 override fun onDrawerOpened(drawerView: View) {
186 binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED) 187 binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
188 binding.inGameMenu.requestFocus()
189 emulationViewModel.setDrawerOpen(true)
187 } 190 }
188 191
189 override fun onDrawerClosed(drawerView: View) { 192 override fun onDrawerClosed(drawerView: View) {
190 binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt()) 193 binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
194 emulationViewModel.setDrawerOpen(false)
191 } 195 }
192 196
193 override fun onDrawerStateChanged(newState: Int) { 197 override fun onDrawerStateChanged(newState: Int) {
@@ -239,6 +243,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
239 requireContext().theme 243 requireContext().theme
240 ) 244 )
241 } 245 }
246 binding.inGameMenu.requestFocus()
242 true 247 true
243 } 248 }
244 249
@@ -247,6 +252,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
247 null, 252 null,
248 Settings.MenuTag.SECTION_ROOT 253 Settings.MenuTag.SECTION_ROOT
249 ) 254 )
255 binding.inGameMenu.requestFocus()
250 binding.root.findNavController().navigate(action) 256 binding.root.findNavController().navigate(action)
251 true 257 true
252 } 258 }
@@ -256,6 +262,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
256 args.game, 262 args.game,
257 Settings.MenuTag.SECTION_ROOT 263 Settings.MenuTag.SECTION_ROOT
258 ) 264 )
265 binding.inGameMenu.requestFocus()
259 binding.root.findNavController().navigate(action) 266 binding.root.findNavController().navigate(action)
260 true 267 true
261 } 268 }
@@ -287,6 +294,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
287 ) 294 )
288 } 295 }
289 } 296 }
297 binding.inGameMenu.requestFocus()
290 NativeConfig.saveGlobalConfig() 298 NativeConfig.saveGlobalConfig()
291 true 299 true
292 } 300 }
@@ -295,7 +303,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
295 emulationState.stop() 303 emulationState.stop()
296 emulationViewModel.setIsEmulationStopping(true) 304 emulationViewModel.setIsEmulationStopping(true)
297 binding.drawerLayout.close() 305 binding.drawerLayout.close()
298 binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) 306 binding.inGameMenu.requestFocus()
299 true 307 true
300 } 308 }
301 309
@@ -312,12 +320,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
312 if (!NativeLibrary.isRunning()) { 320 if (!NativeLibrary.isRunning()) {
313 return 321 return
314 } 322 }
315 323 emulationViewModel.setDrawerOpen(!binding.drawerLayout.isOpen)
316 if (binding.drawerLayout.isOpen) {
317 binding.drawerLayout.close()
318 } else {
319 binding.drawerLayout.open()
320 }
321 } 324 }
322 } 325 }
323 ) 326 )
@@ -408,6 +411,18 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
408 } 411 }
409 } 412 }
410 } 413 }
414 launch {
415 repeatOnLifecycle(Lifecycle.State.CREATED) {
416 emulationViewModel.drawerOpen.collect {
417 if (it) {
418 binding.drawerLayout.open()
419 binding.inGameMenu.requestFocus()
420 } else {
421 binding.drawerLayout.close()
422 }
423 }
424 }
425 }
411 } 426 }
412 } 427 }
413 428
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt
index f34870c2d..b66f47fe7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/EmulationViewModel.kt
@@ -6,6 +6,7 @@ package org.yuzu.yuzu_emu.model
6import androidx.lifecycle.ViewModel 6import androidx.lifecycle.ViewModel
7import kotlinx.coroutines.flow.MutableStateFlow 7import kotlinx.coroutines.flow.MutableStateFlow
8import kotlinx.coroutines.flow.StateFlow 8import kotlinx.coroutines.flow.StateFlow
9import kotlinx.coroutines.flow.asStateFlow
9 10
10class EmulationViewModel : ViewModel() { 11class EmulationViewModel : ViewModel() {
11 val emulationStarted: StateFlow<Boolean> get() = _emulationStarted 12 val emulationStarted: StateFlow<Boolean> get() = _emulationStarted
@@ -23,6 +24,9 @@ class EmulationViewModel : ViewModel() {
23 val shaderMessage: StateFlow<String> get() = _shaderMessage 24 val shaderMessage: StateFlow<String> get() = _shaderMessage
24 private val _shaderMessage = MutableStateFlow("") 25 private val _shaderMessage = MutableStateFlow("")
25 26
27 private val _drawerOpen = MutableStateFlow(false)
28 val drawerOpen = _drawerOpen.asStateFlow()
29
26 fun setEmulationStarted(started: Boolean) { 30 fun setEmulationStarted(started: Boolean) {
27 _emulationStarted.value = started 31 _emulationStarted.value = started
28 } 32 }
@@ -49,6 +53,10 @@ class EmulationViewModel : ViewModel() {
49 setTotalShaders(max) 53 setTotalShaders(max)
50 } 54 }
51 55
56 fun setDrawerOpen(value: Boolean) {
57 _drawerOpen.value = value
58 }
59
52 fun clear() { 60 fun clear() {
53 setEmulationStarted(false) 61 setEmulationStarted(false)
54 setIsEmulationStopping(false) 62 setIsEmulationStopping(false)
diff --git a/src/android/app/src/main/res/layout-w600dp/fragment_about.xml b/src/android/app/src/main/res/layout-w600dp/fragment_about.xml
index 655e49219..a5eba6474 100644
--- a/src/android/app/src/main/res/layout-w600dp/fragment_about.xml
+++ b/src/android/app/src/main/res/layout-w600dp/fragment_about.xml
@@ -11,12 +11,14 @@
11 android:id="@+id/appbar_about" 11 android:id="@+id/appbar_about"
12 android:layout_width="match_parent" 12 android:layout_width="match_parent"
13 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
14 android:fitsSystemWindows="true"> 14 android:fitsSystemWindows="true"
15 android:touchscreenBlocksFocus="false">
15 16
16 <com.google.android.material.appbar.MaterialToolbar 17 <com.google.android.material.appbar.MaterialToolbar
17 android:id="@+id/toolbar_about" 18 android:id="@+id/toolbar_about"
18 android:layout_width="match_parent" 19 android:layout_width="match_parent"
19 android:layout_height="?attr/actionBarSize" 20 android:layout_height="?attr/actionBarSize"
21 android:touchscreenBlocksFocus="false"
20 app:navigationIcon="@drawable/ic_back" 22 app:navigationIcon="@drawable/ic_back"
21 app:title="@string/about" /> 23 app:title="@string/about" />
22 24
@@ -28,6 +30,7 @@
28 android:layout_height="match_parent" 30 android:layout_height="match_parent"
29 android:fadeScrollbars="false" 31 android:fadeScrollbars="false"
30 android:scrollbars="vertical" 32 android:scrollbars="vertical"
33 android:defaultFocusHighlightEnabled="false"
31 app:layout_behavior="@string/appbar_scrolling_view_behavior"> 34 app:layout_behavior="@string/appbar_scrolling_view_behavior">
32 35
33 <LinearLayout 36 <LinearLayout
diff --git a/src/android/app/src/main/res/layout-w600dp/fragment_game_info.xml b/src/android/app/src/main/res/layout-w600dp/fragment_game_info.xml
new file mode 100644
index 000000000..90d95dbb7
--- /dev/null
+++ b/src/android/app/src/main/res/layout-w600dp/fragment_game_info.xml
@@ -0,0 +1,155 @@
1<?xml version="1.0" encoding="utf-8"?>
2<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:id="@+id/coordinator_about"
6 android:layout_width="match_parent"
7 android:layout_height="match_parent"
8 android:background="?attr/colorSurface">
9
10 <com.google.android.material.appbar.AppBarLayout
11 android:id="@+id/appbar_info"
12 android:layout_width="match_parent"
13 android:layout_height="wrap_content"
14 android:fitsSystemWindows="true"
15 android:touchscreenBlocksFocus="false">
16
17 <com.google.android.material.appbar.MaterialToolbar
18 android:id="@+id/toolbar_info"
19 android:layout_width="match_parent"
20 android:layout_height="?attr/actionBarSize"
21 android:touchscreenBlocksFocus="false"
22 app:navigationIcon="@drawable/ic_back" />
23
24 </com.google.android.material.appbar.AppBarLayout>
25
26 <androidx.core.widget.NestedScrollView
27 android:id="@+id/scroll_info"
28 android:layout_width="match_parent"
29 android:layout_height="wrap_content"
30 android:defaultFocusHighlightEnabled="false"
31 app:layout_behavior="@string/appbar_scrolling_view_behavior">
32
33 <LinearLayout
34 android:id="@+id/content_info"
35 android:layout_width="match_parent"
36 android:layout_height="wrap_content"
37 android:orientation="horizontal"
38 android:paddingHorizontal="16dp"
39 android:baselineAligned="false">
40
41 <LinearLayout
42 android:layout_width="match_parent"
43 android:layout_height="match_parent"
44 android:orientation="vertical"
45 android:layout_weight="3"
46 android:gravity="top|center_horizontal"
47 android:paddingHorizontal="16dp">
48
49 <com.google.android.material.button.MaterialButton
50 android:id="@+id/button_copy"
51 style="@style/Widget.Material3.Button"
52 android:layout_width="wrap_content"
53 android:layout_height="wrap_content"
54 android:layout_marginTop="16dp"
55 android:text="@string/copy_details" />
56
57 <com.google.android.material.button.MaterialButton
58 android:id="@+id/button_verify_integrity"
59 style="@style/Widget.Material3.Button"
60 android:layout_width="wrap_content"
61 android:layout_height="wrap_content"
62 android:layout_marginTop="10dp"
63 android:text="@string/verify_integrity" />
64
65 </LinearLayout>
66
67 <LinearLayout
68 android:layout_width="match_parent"
69 android:layout_height="match_parent"
70 android:orientation="vertical"
71 android:layout_weight="1">
72
73 <com.google.android.material.textfield.TextInputLayout
74 android:id="@+id/path"
75 android:layout_width="match_parent"
76 android:layout_height="wrap_content"
77 android:paddingTop="16dp">
78
79 <com.google.android.material.textfield.TextInputEditText
80 android:id="@+id/path_field"
81 android:layout_width="match_parent"
82 android:layout_height="wrap_content"
83 android:editable="false"
84 android:importantForAutofill="no"
85 android:inputType="none"
86 android:minHeight="48dp"
87 android:textAlignment="viewStart"
88 tools:text="1.0.0" />
89
90 </com.google.android.material.textfield.TextInputLayout>
91
92 <com.google.android.material.textfield.TextInputLayout
93 android:id="@+id/program_id"
94 android:layout_width="match_parent"
95 android:layout_height="wrap_content"
96 android:paddingTop="16dp">
97
98 <com.google.android.material.textfield.TextInputEditText
99 android:id="@+id/program_id_field"
100 android:layout_width="match_parent"
101 android:layout_height="wrap_content"
102 android:editable="false"
103 android:importantForAutofill="no"
104 android:inputType="none"
105 android:minHeight="48dp"
106 android:textAlignment="viewStart"
107 tools:text="1.0.0" />
108
109 </com.google.android.material.textfield.TextInputLayout>
110
111 <com.google.android.material.textfield.TextInputLayout
112 android:id="@+id/developer"
113 android:layout_width="match_parent"
114 android:layout_height="wrap_content"
115 android:paddingTop="16dp">
116
117 <com.google.android.material.textfield.TextInputEditText
118 android:id="@+id/developer_field"
119 android:layout_width="match_parent"
120 android:layout_height="wrap_content"
121 android:editable="false"
122 android:importantForAutofill="no"
123 android:inputType="none"
124 android:minHeight="48dp"
125 android:textAlignment="viewStart"
126 tools:text="1.0.0" />
127
128 </com.google.android.material.textfield.TextInputLayout>
129
130 <com.google.android.material.textfield.TextInputLayout
131 android:id="@+id/version"
132 android:layout_width="match_parent"
133 android:layout_height="wrap_content"
134 android:paddingTop="16dp">
135
136 <com.google.android.material.textfield.TextInputEditText
137 android:id="@+id/version_field"
138 android:layout_width="match_parent"
139 android:layout_height="wrap_content"
140 android:editable="false"
141 android:importantForAutofill="no"
142 android:inputType="none"
143 android:minHeight="48dp"
144 android:textAlignment="viewStart"
145 tools:text="1.0.0" />
146
147 </com.google.android.material.textfield.TextInputLayout>
148
149 </LinearLayout>
150
151 </LinearLayout>
152
153 </androidx.core.widget.NestedScrollView>
154
155</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/src/android/app/src/main/res/layout-w600dp/fragment_game_properties.xml b/src/android/app/src/main/res/layout-w600dp/fragment_game_properties.xml
index 551f255c0..7cdef569f 100644
--- a/src/android/app/src/main/res/layout-w600dp/fragment_game_properties.xml
+++ b/src/android/app/src/main/res/layout-w600dp/fragment_game_properties.xml
@@ -14,6 +14,7 @@
14 android:clipToPadding="false" 14 android:clipToPadding="false"
15 android:fadeScrollbars="false" 15 android:fadeScrollbars="false"
16 android:scrollbars="vertical" 16 android:scrollbars="vertical"
17 android:defaultFocusHighlightEnabled="false"
17 app:layout_constraintEnd_toEndOf="parent" 18 app:layout_constraintEnd_toEndOf="parent"
18 app:layout_constraintStart_toEndOf="@+id/icon_layout" 19 app:layout_constraintStart_toEndOf="@+id/icon_layout"
19 app:layout_constraintTop_toTopOf="parent"> 20 app:layout_constraintTop_toTopOf="parent">
diff --git a/src/android/app/src/main/res/layout/card_driver_option.xml b/src/android/app/src/main/res/layout/card_driver_option.xml
index 1dd9a6d7d..bda524f0f 100644
--- a/src/android/app/src/main/res/layout/card_driver_option.xml
+++ b/src/android/app/src/main/res/layout/card_driver_option.xml
@@ -23,6 +23,7 @@
23 android:layout_width="wrap_content" 23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content" 24 android:layout_height="wrap_content"
25 android:layout_gravity="center_vertical" 25 android:layout_gravity="center_vertical"
26 android:focusable="false"
26 android:clickable="false" 27 android:clickable="false"
27 android:checked="false" /> 28 android:checked="false" />
28 29
diff --git a/src/android/app/src/main/res/layout/card_folder.xml b/src/android/app/src/main/res/layout/card_folder.xml
index 4e0c04b6b..ed4a7ca8f 100644
--- a/src/android/app/src/main/res/layout/card_folder.xml
+++ b/src/android/app/src/main/res/layout/card_folder.xml
@@ -6,16 +6,14 @@
6 android:layout_width="match_parent" 6 android:layout_width="match_parent"
7 android:layout_height="wrap_content" 7 android:layout_height="wrap_content"
8 android:layout_marginHorizontal="16dp" 8 android:layout_marginHorizontal="16dp"
9 android:layout_marginVertical="12dp" 9 android:layout_marginVertical="12dp">
10 android:focusable="true">
11 10
12 <androidx.constraintlayout.widget.ConstraintLayout 11 <androidx.constraintlayout.widget.ConstraintLayout
13 android:layout_width="match_parent" 12 android:layout_width="match_parent"
14 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
15 android:orientation="horizontal" 14 android:orientation="horizontal"
16 android:padding="16dp" 15 android:padding="16dp"
17 android:layout_gravity="center_vertical" 16 android:layout_gravity="center_vertical">
18 android:animateLayoutChanges="true">
19 17
20 <com.google.android.material.textview.MaterialTextView 18 <com.google.android.material.textview.MaterialTextView
21 android:id="@+id/path" 19 android:id="@+id/path"
diff --git a/src/android/app/src/main/res/layout/fragment_about.xml b/src/android/app/src/main/res/layout/fragment_about.xml
index 38090fa50..7f32e139a 100644
--- a/src/android/app/src/main/res/layout/fragment_about.xml
+++ b/src/android/app/src/main/res/layout/fragment_about.xml
@@ -11,12 +11,14 @@
11 android:id="@+id/appbar_about" 11 android:id="@+id/appbar_about"
12 android:layout_width="match_parent" 12 android:layout_width="match_parent"
13 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
14 android:fitsSystemWindows="true"> 14 android:fitsSystemWindows="true"
15 android:touchscreenBlocksFocus="false">
15 16
16 <com.google.android.material.appbar.MaterialToolbar 17 <com.google.android.material.appbar.MaterialToolbar
17 android:id="@+id/toolbar_about" 18 android:id="@+id/toolbar_about"
18 android:layout_width="match_parent" 19 android:layout_width="match_parent"
19 android:layout_height="?attr/actionBarSize" 20 android:layout_height="?attr/actionBarSize"
21 android:touchscreenBlocksFocus="false"
20 app:title="@string/about" 22 app:title="@string/about"
21 app:navigationIcon="@drawable/ic_back" /> 23 app:navigationIcon="@drawable/ic_back" />
22 24
@@ -28,6 +30,7 @@
28 android:layout_height="match_parent" 30 android:layout_height="match_parent"
29 android:scrollbars="vertical" 31 android:scrollbars="vertical"
30 android:fadeScrollbars="false" 32 android:fadeScrollbars="false"
33 android:defaultFocusHighlightEnabled="false"
31 app:layout_behavior="@string/appbar_scrolling_view_behavior"> 34 app:layout_behavior="@string/appbar_scrolling_view_behavior">
32 35
33 <LinearLayout 36 <LinearLayout
diff --git a/src/android/app/src/main/res/layout/fragment_addons.xml b/src/android/app/src/main/res/layout/fragment_addons.xml
index a25e82766..b029b4209 100644
--- a/src/android/app/src/main/res/layout/fragment_addons.xml
+++ b/src/android/app/src/main/res/layout/fragment_addons.xml
@@ -11,6 +11,7 @@
11 android:layout_width="match_parent" 11 android:layout_width="match_parent"
12 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
13 android:fitsSystemWindows="true" 13 android:fitsSystemWindows="true"
14 android:touchscreenBlocksFocus="false"
14 app:layout_constraintEnd_toEndOf="parent" 15 app:layout_constraintEnd_toEndOf="parent"
15 app:layout_constraintStart_toStartOf="parent" 16 app:layout_constraintStart_toStartOf="parent"
16 app:layout_constraintTop_toTopOf="parent"> 17 app:layout_constraintTop_toTopOf="parent">
@@ -19,6 +20,7 @@
19 android:id="@+id/toolbar_addons" 20 android:id="@+id/toolbar_addons"
20 android:layout_width="match_parent" 21 android:layout_width="match_parent"
21 android:layout_height="?attr/actionBarSize" 22 android:layout_height="?attr/actionBarSize"
23 android:touchscreenBlocksFocus="false"
22 app:navigationIcon="@drawable/ic_back" /> 24 app:navigationIcon="@drawable/ic_back" />
23 25
24 </com.google.android.material.appbar.AppBarLayout> 26 </com.google.android.material.appbar.AppBarLayout>
@@ -28,6 +30,8 @@
28 android:layout_width="match_parent" 30 android:layout_width="match_parent"
29 android:layout_height="0dp" 31 android:layout_height="0dp"
30 android:clipToPadding="false" 32 android:clipToPadding="false"
33 android:defaultFocusHighlightEnabled="false"
34 android:nextFocusDown="@id/button_install"
31 app:layout_behavior="@string/appbar_scrolling_view_behavior" 35 app:layout_behavior="@string/appbar_scrolling_view_behavior"
32 app:layout_constraintBottom_toBottomOf="parent" 36 app:layout_constraintBottom_toBottomOf="parent"
33 app:layout_constraintEnd_toEndOf="parent" 37 app:layout_constraintEnd_toEndOf="parent"
diff --git a/src/android/app/src/main/res/layout/fragment_applet_launcher.xml b/src/android/app/src/main/res/layout/fragment_applet_launcher.xml
index fe8fae40f..95e6d6a6b 100644
--- a/src/android/app/src/main/res/layout/fragment_applet_launcher.xml
+++ b/src/android/app/src/main/res/layout/fragment_applet_launcher.xml
@@ -10,12 +10,14 @@
10 android:id="@+id/appbar_applets" 10 android:id="@+id/appbar_applets"
11 android:layout_width="match_parent" 11 android:layout_width="match_parent"
12 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
13 android:fitsSystemWindows="true"> 13 android:fitsSystemWindows="true"
14 android:touchscreenBlocksFocus="false">
14 15
15 <com.google.android.material.appbar.MaterialToolbar 16 <com.google.android.material.appbar.MaterialToolbar
16 android:id="@+id/toolbar_applets" 17 android:id="@+id/toolbar_applets"
17 android:layout_width="match_parent" 18 android:layout_width="match_parent"
18 android:layout_height="?attr/actionBarSize" 19 android:layout_height="?attr/actionBarSize"
20 android:touchscreenBlocksFocus="false"
19 app:navigationIcon="@drawable/ic_back" 21 app:navigationIcon="@drawable/ic_back"
20 app:title="@string/applets" /> 22 app:title="@string/applets" />
21 23
diff --git a/src/android/app/src/main/res/layout/fragment_driver_manager.xml b/src/android/app/src/main/res/layout/fragment_driver_manager.xml
index 6cea2d164..56d8e6bb8 100644
--- a/src/android/app/src/main/res/layout/fragment_driver_manager.xml
+++ b/src/android/app/src/main/res/layout/fragment_driver_manager.xml
@@ -15,12 +15,14 @@
15 android:layout_width="match_parent" 15 android:layout_width="match_parent"
16 android:layout_height="wrap_content" 16 android:layout_height="wrap_content"
17 android:fitsSystemWindows="true" 17 android:fitsSystemWindows="true"
18 android:touchscreenBlocksFocus="false"
18 app:liftOnScrollTargetViewId="@id/list_drivers"> 19 app:liftOnScrollTargetViewId="@id/list_drivers">
19 20
20 <com.google.android.material.appbar.MaterialToolbar 21 <com.google.android.material.appbar.MaterialToolbar
21 android:id="@+id/toolbar_drivers" 22 android:id="@+id/toolbar_drivers"
22 android:layout_width="match_parent" 23 android:layout_width="match_parent"
23 android:layout_height="?attr/actionBarSize" 24 android:layout_height="?attr/actionBarSize"
25 android:touchscreenBlocksFocus="false"
24 app:navigationIcon="@drawable/ic_back" 26 app:navigationIcon="@drawable/ic_back"
25 app:title="@string/gpu_driver_manager" /> 27 app:title="@string/gpu_driver_manager" />
26 28
diff --git a/src/android/app/src/main/res/layout/fragment_early_access.xml b/src/android/app/src/main/res/layout/fragment_early_access.xml
index 644b4dd45..12e233afc 100644
--- a/src/android/app/src/main/res/layout/fragment_early_access.xml
+++ b/src/android/app/src/main/res/layout/fragment_early_access.xml
@@ -11,12 +11,14 @@
11 android:id="@+id/appbar_ea" 11 android:id="@+id/appbar_ea"
12 android:layout_width="match_parent" 12 android:layout_width="match_parent"
13 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
14 android:fitsSystemWindows="true"> 14 android:fitsSystemWindows="true"
15 android:touchscreenBlocksFocus="false">
15 16
16 <com.google.android.material.appbar.MaterialToolbar 17 <com.google.android.material.appbar.MaterialToolbar
17 android:id="@+id/toolbar_about" 18 android:id="@+id/toolbar_about"
18 android:layout_width="match_parent" 19 android:layout_width="match_parent"
19 android:layout_height="?attr/actionBarSize" 20 android:layout_height="?attr/actionBarSize"
21 android:touchscreenBlocksFocus="false"
20 app:navigationIcon="@drawable/ic_back" 22 app:navigationIcon="@drawable/ic_back"
21 app:title="@string/early_access" /> 23 app:title="@string/early_access" />
22 24
@@ -30,6 +32,7 @@
30 android:paddingBottom="20dp" 32 android:paddingBottom="20dp"
31 android:scrollbars="vertical" 33 android:scrollbars="vertical"
32 android:fadeScrollbars="false" 34 android:fadeScrollbars="false"
35 android:defaultFocusHighlightEnabled="false"
33 app:layout_behavior="@string/appbar_scrolling_view_behavior"> 36 app:layout_behavior="@string/appbar_scrolling_view_behavior">
34 37
35 <LinearLayout 38 <LinearLayout
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml
index 5252adf54..c01117d14 100644
--- a/src/android/app/src/main/res/layout/fragment_emulation.xml
+++ b/src/android/app/src/main/res/layout/fragment_emulation.xml
@@ -5,6 +5,7 @@
5 android:layout_width="match_parent" 5 android:layout_width="match_parent"
6 android:layout_height="match_parent" 6 android:layout_height="match_parent"
7 android:keepScreenOn="true" 7 android:keepScreenOn="true"
8 android:defaultFocusHighlightEnabled="false"
8 tools:context="org.yuzu.yuzu_emu.fragments.EmulationFragment" 9 tools:context="org.yuzu.yuzu_emu.fragments.EmulationFragment"
9 tools:openDrawer="start"> 10 tools:openDrawer="start">
10 11
@@ -24,7 +25,8 @@
24 android:layout_height="match_parent" 25 android:layout_height="match_parent"
25 android:layout_gravity="center" 26 android:layout_gravity="center"
26 android:focusable="false" 27 android:focusable="false"
27 android:focusableInTouchMode="false" /> 28 android:focusableInTouchMode="false"
29 android:defaultFocusHighlightEnabled="false" />
28 30
29 <com.google.android.material.card.MaterialCardView 31 <com.google.android.material.card.MaterialCardView
30 android:id="@+id/loading_indicator" 32 android:id="@+id/loading_indicator"
@@ -32,7 +34,7 @@
32 android:layout_width="wrap_content" 34 android:layout_width="wrap_content"
33 android:layout_height="wrap_content" 35 android:layout_height="wrap_content"
34 android:layout_gravity="center" 36 android:layout_gravity="center"
35 android:focusable="false" 37 android:defaultFocusHighlightEnabled="false"
36 android:clickable="false"> 38 android:clickable="false">
37 39
38 <androidx.constraintlayout.widget.ConstraintLayout 40 <androidx.constraintlayout.widget.ConstraintLayout
@@ -118,6 +120,7 @@
118 android:layout_gravity="center" 120 android:layout_gravity="center"
119 android:focusable="true" 121 android:focusable="true"
120 android:focusableInTouchMode="true" 122 android:focusableInTouchMode="true"
123 android:defaultFocusHighlightEnabled="false"
121 android:visibility="invisible" /> 124 android:visibility="invisible" />
122 125
123 <Button 126 <Button
@@ -160,6 +163,7 @@
160 android:layout_width="wrap_content" 163 android:layout_width="wrap_content"
161 android:layout_height="match_parent" 164 android:layout_height="match_parent"
162 android:layout_gravity="start" 165 android:layout_gravity="start"
166 android:focusedByDefault="true"
163 app:headerLayout="@layout/header_in_game" 167 app:headerLayout="@layout/header_in_game"
164 app:menu="@menu/menu_in_game" 168 app:menu="@menu/menu_in_game"
165 tools:visibility="gone" /> 169 tools:visibility="gone" />
diff --git a/src/android/app/src/main/res/layout/fragment_folders.xml b/src/android/app/src/main/res/layout/fragment_folders.xml
index 74f2f3754..b5c7676d8 100644
--- a/src/android/app/src/main/res/layout/fragment_folders.xml
+++ b/src/android/app/src/main/res/layout/fragment_folders.xml
@@ -15,12 +15,14 @@
15 android:layout_width="match_parent" 15 android:layout_width="match_parent"
16 android:layout_height="wrap_content" 16 android:layout_height="wrap_content"
17 android:fitsSystemWindows="true" 17 android:fitsSystemWindows="true"
18 android:touchscreenBlocksFocus="false"
18 app:liftOnScrollTargetViewId="@id/list_folders"> 19 app:liftOnScrollTargetViewId="@id/list_folders">
19 20
20 <com.google.android.material.appbar.MaterialToolbar 21 <com.google.android.material.appbar.MaterialToolbar
21 android:id="@+id/toolbar_folders" 22 android:id="@+id/toolbar_folders"
22 android:layout_width="match_parent" 23 android:layout_width="match_parent"
23 android:layout_height="?attr/actionBarSize" 24 android:layout_height="?attr/actionBarSize"
25 android:touchscreenBlocksFocus="false"
24 app:navigationIcon="@drawable/ic_back" 26 app:navigationIcon="@drawable/ic_back"
25 app:title="@string/game_folders" /> 27 app:title="@string/game_folders" />
26 28
@@ -31,6 +33,7 @@
31 android:layout_width="match_parent" 33 android:layout_width="match_parent"
32 android:layout_height="wrap_content" 34 android:layout_height="wrap_content"
33 android:clipToPadding="false" 35 android:clipToPadding="false"
36 android:defaultFocusHighlightEnabled="false"
34 app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 37 app:layout_behavior="@string/appbar_scrolling_view_behavior" />
35 38
36 </androidx.coordinatorlayout.widget.CoordinatorLayout> 39 </androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/src/android/app/src/main/res/layout/fragment_game_info.xml b/src/android/app/src/main/res/layout/fragment_game_info.xml
index 53af15787..f29e7e376 100644
--- a/src/android/app/src/main/res/layout/fragment_game_info.xml
+++ b/src/android/app/src/main/res/layout/fragment_game_info.xml
@@ -11,12 +11,14 @@
11 android:id="@+id/appbar_info" 11 android:id="@+id/appbar_info"
12 android:layout_width="match_parent" 12 android:layout_width="match_parent"
13 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
14 android:touchscreenBlocksFocus="false"
14 android:fitsSystemWindows="true"> 15 android:fitsSystemWindows="true">
15 16
16 <com.google.android.material.appbar.MaterialToolbar 17 <com.google.android.material.appbar.MaterialToolbar
17 android:id="@+id/toolbar_info" 18 android:id="@+id/toolbar_info"
18 android:layout_width="match_parent" 19 android:layout_width="match_parent"
19 android:layout_height="?attr/actionBarSize" 20 android:layout_height="?attr/actionBarSize"
21 android:touchscreenBlocksFocus="false"
20 app:navigationIcon="@drawable/ic_back" /> 22 app:navigationIcon="@drawable/ic_back" />
21 23
22 </com.google.android.material.appbar.AppBarLayout> 24 </com.google.android.material.appbar.AppBarLayout>
@@ -25,6 +27,7 @@
25 android:id="@+id/scroll_info" 27 android:id="@+id/scroll_info"
26 android:layout_width="match_parent" 28 android:layout_width="match_parent"
27 android:layout_height="wrap_content" 29 android:layout_height="wrap_content"
30 android:defaultFocusHighlightEnabled="false"
28 app:layout_behavior="@string/appbar_scrolling_view_behavior"> 31 app:layout_behavior="@string/appbar_scrolling_view_behavior">
29 32
30 <LinearLayout 33 <LinearLayout
diff --git a/src/android/app/src/main/res/layout/fragment_game_properties.xml b/src/android/app/src/main/res/layout/fragment_game_properties.xml
index cadd0bc4a..436ebd79d 100644
--- a/src/android/app/src/main/res/layout/fragment_game_properties.xml
+++ b/src/android/app/src/main/res/layout/fragment_game_properties.xml
@@ -12,7 +12,8 @@
12 android:layout_height="match_parent" 12 android:layout_height="match_parent"
13 android:scrollbars="vertical" 13 android:scrollbars="vertical"
14 android:fadeScrollbars="false" 14 android:fadeScrollbars="false"
15 android:clipToPadding="false"> 15 android:clipToPadding="false"
16 android:defaultFocusHighlightEnabled="false">
16 17
17 <LinearLayout 18 <LinearLayout
18 android:id="@+id/layout_all" 19 android:id="@+id/layout_all"
@@ -86,7 +87,7 @@
86 android:id="@+id/list_properties" 87 android:id="@+id/list_properties"
87 android:layout_width="match_parent" 88 android:layout_width="match_parent"
88 android:layout_height="match_parent" 89 android:layout_height="match_parent"
89 tools:listitem="@layout/card_simple_outlined" /> 90 android:defaultFocusHighlightEnabled="false" />
90 91
91 </LinearLayout> 92 </LinearLayout>
92 93
diff --git a/src/android/app/src/main/res/layout/fragment_games.xml b/src/android/app/src/main/res/layout/fragment_games.xml
index a0568668a..cc280b1ff 100644
--- a/src/android/app/src/main/res/layout/fragment_games.xml
+++ b/src/android/app/src/main/res/layout/fragment_games.xml
@@ -27,6 +27,7 @@
27 android:layout_width="match_parent" 27 android:layout_width="match_parent"
28 android:layout_height="match_parent" 28 android:layout_height="match_parent"
29 android:clipToPadding="false" 29 android:clipToPadding="false"
30 android:defaultFocusHighlightEnabled="false"
30 tools:listitem="@layout/card_game" /> 31 tools:listitem="@layout/card_game" />
31 32
32 </RelativeLayout> 33 </RelativeLayout>
diff --git a/src/android/app/src/main/res/layout/fragment_home_settings.xml b/src/android/app/src/main/res/layout/fragment_home_settings.xml
index d84093ba3..c179f9341 100644
--- a/src/android/app/src/main/res/layout/fragment_home_settings.xml
+++ b/src/android/app/src/main/res/layout/fragment_home_settings.xml
@@ -7,7 +7,8 @@
7 android:background="?attr/colorSurface" 7 android:background="?attr/colorSurface"
8 android:scrollbars="vertical" 8 android:scrollbars="vertical"
9 android:fadeScrollbars="false" 9 android:fadeScrollbars="false"
10 android:clipToPadding="false"> 10 android:clipToPadding="false"
11 android:defaultFocusHighlightEnabled="false">
11 12
12 <androidx.appcompat.widget.LinearLayoutCompat 13 <androidx.appcompat.widget.LinearLayoutCompat
13 android:id="@+id/linear_layout_settings" 14 android:id="@+id/linear_layout_settings"
diff --git a/src/android/app/src/main/res/layout/fragment_installables.xml b/src/android/app/src/main/res/layout/fragment_installables.xml
index 3a4df81a6..47ef3869f 100644
--- a/src/android/app/src/main/res/layout/fragment_installables.xml
+++ b/src/android/app/src/main/res/layout/fragment_installables.xml
@@ -10,12 +10,14 @@
10 android:id="@+id/appbar_installables" 10 android:id="@+id/appbar_installables"
11 android:layout_width="match_parent" 11 android:layout_width="match_parent"
12 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
13 android:fitsSystemWindows="true"> 13 android:fitsSystemWindows="true"
14 android:touchscreenBlocksFocus="false">
14 15
15 <com.google.android.material.appbar.MaterialToolbar 16 <com.google.android.material.appbar.MaterialToolbar
16 android:id="@+id/toolbar_installables" 17 android:id="@+id/toolbar_installables"
17 android:layout_width="match_parent" 18 android:layout_width="match_parent"
18 android:layout_height="?attr/actionBarSize" 19 android:layout_height="?attr/actionBarSize"
20 android:touchscreenBlocksFocus="false"
19 app:title="@string/manage_yuzu_data" 21 app:title="@string/manage_yuzu_data"
20 app:navigationIcon="@drawable/ic_back" /> 22 app:navigationIcon="@drawable/ic_back" />
21 23
diff --git a/src/android/app/src/main/res/layout/fragment_licenses.xml b/src/android/app/src/main/res/layout/fragment_licenses.xml
index 6b31ff5b4..59d68b112 100644
--- a/src/android/app/src/main/res/layout/fragment_licenses.xml
+++ b/src/android/app/src/main/res/layout/fragment_licenses.xml
@@ -10,12 +10,14 @@
10 android:id="@+id/appbar_licenses" 10 android:id="@+id/appbar_licenses"
11 android:layout_width="match_parent" 11 android:layout_width="match_parent"
12 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
13 android:fitsSystemWindows="true"> 13 android:fitsSystemWindows="true"
14 android:touchscreenBlocksFocus="false">
14 15
15 <com.google.android.material.appbar.MaterialToolbar 16 <com.google.android.material.appbar.MaterialToolbar
16 android:id="@+id/toolbar_licenses" 17 android:id="@+id/toolbar_licenses"
17 android:layout_width="match_parent" 18 android:layout_width="match_parent"
18 android:layout_height="?attr/actionBarSize" 19 android:layout_height="?attr/actionBarSize"
20 android:touchscreenBlocksFocus="false"
19 app:title="@string/licenses" 21 app:title="@string/licenses"
20 app:navigationIcon="@drawable/ic_back" /> 22 app:navigationIcon="@drawable/ic_back" />
21 23
diff --git a/src/android/app/src/main/res/layout/fragment_settings.xml b/src/android/app/src/main/res/layout/fragment_settings.xml
index ebedbf1ec..110c70eef 100644
--- a/src/android/app/src/main/res/layout/fragment_settings.xml
+++ b/src/android/app/src/main/res/layout/fragment_settings.xml
@@ -11,6 +11,7 @@
11 android:layout_width="match_parent" 11 android:layout_width="match_parent"
12 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
13 android:fitsSystemWindows="true" 13 android:fitsSystemWindows="true"
14 android:touchscreenBlocksFocus="false"
14 app:elevation="0dp"> 15 app:elevation="0dp">
15 16
16 <com.google.android.material.appbar.CollapsingToolbarLayout 17 <com.google.android.material.appbar.CollapsingToolbarLayout
@@ -24,6 +25,7 @@
24 android:id="@+id/toolbar_settings" 25 android:id="@+id/toolbar_settings"
25 android:layout_width="match_parent" 26 android:layout_width="match_parent"
26 android:layout_height="?attr/actionBarSize" 27 android:layout_height="?attr/actionBarSize"
28 android:touchscreenBlocksFocus="false"
27 app:layout_collapseMode="pin" 29 app:layout_collapseMode="pin"
28 app:navigationIcon="@drawable/ic_back" /> 30 app:navigationIcon="@drawable/ic_back" />
29 31
diff --git a/src/android/app/src/main/res/layout/list_item_addon.xml b/src/android/app/src/main/res/layout/list_item_addon.xml
index 3a1382fe2..9b1c0e6fc 100644
--- a/src/android/app/src/main/res/layout/list_item_addon.xml
+++ b/src/android/app/src/main/res/layout/list_item_addon.xml
@@ -6,7 +6,7 @@
6 android:layout_width="match_parent" 6 android:layout_width="match_parent"
7 android:layout_height="wrap_content" 7 android:layout_height="wrap_content"
8 android:background="?attr/selectableItemBackground" 8 android:background="?attr/selectableItemBackground"
9 android:focusable="true" 9 android:focusable="false"
10 android:paddingHorizontal="20dp" 10 android:paddingHorizontal="20dp"
11 android:paddingVertical="16dp"> 11 android:paddingVertical="16dp">
12 12
diff --git a/src/android/app/src/main/res/layout/list_item_settings_header.xml b/src/android/app/src/main/res/layout/list_item_settings_header.xml
index 21276b19e..615860368 100644
--- a/src/android/app/src/main/res/layout/list_item_settings_header.xml
+++ b/src/android/app/src/main/res/layout/list_item_settings_header.xml
@@ -12,4 +12,5 @@
12 android:textAlignment="viewStart" 12 android:textAlignment="viewStart"
13 android:textColor="?attr/colorPrimary" 13 android:textColor="?attr/colorPrimary"
14 android:textStyle="bold" 14 android:textStyle="bold"
15 android:focusable="false"
15 tools:text="CPU Settings" /> 16 tools:text="CPU Settings" />