mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 03:18:55 +02:00
Compare commits
2 commits
9423a33fc2
...
f2c46eadc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2c46eadc1 | ||
|
|
7a17fd8c71 |
49 changed files with 948 additions and 351 deletions
|
|
@ -91,7 +91,7 @@ After configuration, you may need to modify `externals/ffmpeg/CMakeFiles/ffmpeg-
|
||||||
|
|
||||||
`-lc++-experimental` doesn't exist in OpenBSD but the LLVM driver still tries to link against it, to solve just symlink `ln -s /usr/lib/libc++.a /usr/lib/libc++experimental.a`. Builds are currently not working due to lack of `std::jthread` and such, either compile libc++ manually or wait for ports to catch up.
|
`-lc++-experimental` doesn't exist in OpenBSD but the LLVM driver still tries to link against it, to solve just symlink `ln -s /usr/lib/libc++.a /usr/lib/libc++experimental.a`. Builds are currently not working due to lack of `std::jthread` and such, either compile libc++ manually or wait for ports to catch up.
|
||||||
|
|
||||||
If clang has errors, try using `g++-11`.
|
If clang has errors, try using `g++11`.
|
||||||
|
|
||||||
## FreeBSD
|
## FreeBSD
|
||||||
|
|
||||||
|
|
@ -107,6 +107,8 @@ hw.usb.usbhid.enable="0"
|
||||||
|
|
||||||
## NetBSD
|
## NetBSD
|
||||||
|
|
||||||
|
2026-02-07: `vulkan-headers` must not be installed, since the version found in `pkgsrc` is older than required. Either wait for binary packages to update or build newer versions from source.
|
||||||
|
|
||||||
Install `pkgin` if not already `pkg_add pkgin`, see also the general [pkgsrc guide](https://www.netbsd.org/docs/pkgsrc/using.html). For NetBSD 10.1 provide `echo 'PKG_PATH="https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/10.1/All/"' >/etc/pkg_install.conf`. If `pkgin` is taking too much time consider adding the following to `/etc/rc.conf`:
|
Install `pkgin` if not already `pkg_add pkgin`, see also the general [pkgsrc guide](https://www.netbsd.org/docs/pkgsrc/using.html). For NetBSD 10.1 provide `echo 'PKG_PATH="https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/10.1/All/"' >/etc/pkg_install.conf`. If `pkgin` is taking too much time consider adding the following to `/etc/rc.conf`:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|
@ -116,7 +118,7 @@ ip6addrctl_policy=ipv4_prefer
|
||||||
|
|
||||||
System provides a default `g++-10` which doesn't support the current C++ codebase; install `clang-19` with `pkgin install clang-19`. Or install `gcc14` (or `gcc15` with current pkgsrc). Provided that, the following CMake commands may work:
|
System provides a default `g++-10` which doesn't support the current C++ codebase; install `clang-19` with `pkgin install clang-19`. Or install `gcc14` (or `gcc15` with current pkgsrc). Provided that, the following CMake commands may work:
|
||||||
|
|
||||||
- `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -Bbuild`
|
- `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -Bbuild` (Recommended)
|
||||||
- `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/pkg/gcc14/bin/gcc -DCMAKE_CXX_COMPILER=/usr/pkg/gcc14/bin/g++ -Bbuild`
|
- `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/pkg/gcc14/bin/gcc -DCMAKE_CXX_COMPILER=/usr/pkg/gcc14/bin/g++ -Bbuild`
|
||||||
- `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/pkg/gcc15/bin/gcc -DCMAKE_CXX_COMPILER=/usr/pkg/gcc15/bin/g++ -Bbuild`
|
- `cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/pkg/gcc15/bin/gcc -DCMAKE_CXX_COMPILER=/usr/pkg/gcc15/bin/g++ -Bbuild`
|
||||||
|
|
||||||
|
|
@ -138,8 +140,12 @@ cmake --install build
|
||||||
|
|
||||||
However, pkgsrc is highly recommended, see [getting pkgsrc](https://iso.us.netbsd.org/pub/pkgsrc/current/pkgsrc/doc/pkgsrc.html#getting). You must get `current` not the `2025Q2` version.
|
However, pkgsrc is highly recommended, see [getting pkgsrc](https://iso.us.netbsd.org/pub/pkgsrc/current/pkgsrc/doc/pkgsrc.html#getting). You must get `current` not the `2025Q2` version.
|
||||||
|
|
||||||
|
`QtCore` on NetBSD is included, but due to misconfigurations(!) we MUST include one of the standard headers that include `bits/c++config.h`, since source_location (required by `QtCore`) isn't properly configured to intake `bits/c++config.h` (none of the experimental library is). This is a bug with NetBSD packaging and not our fault, but alas.
|
||||||
|
|
||||||
## DragonFlyBSD
|
## DragonFlyBSD
|
||||||
|
|
||||||
|
2026-02-07: `vulkan-headers` and `vulkan-utility-libraries` must NOT be uninstalled, since they're too old: `1.3.289`. Either wait for binary packages to update or build newer versions from source.
|
||||||
|
|
||||||
If `libstdc++.so.6` is not found (`GLIBCXX_3.4.30`) then attempt:
|
If `libstdc++.so.6` is not found (`GLIBCXX_3.4.30`) then attempt:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
|
|
@ -10,6 +10,8 @@ import android.view.LayoutInflater
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
|
import com.google.android.material.button.MaterialButton
|
||||||
|
import org.yuzu.yuzu_emu.R
|
||||||
import org.yuzu.yuzu_emu.databinding.CardInstallableIconBinding
|
import org.yuzu.yuzu_emu.databinding.CardInstallableIconBinding
|
||||||
import org.yuzu.yuzu_emu.databinding.CardSimpleOutlinedBinding
|
import org.yuzu.yuzu_emu.databinding.CardSimpleOutlinedBinding
|
||||||
import org.yuzu.yuzu_emu.model.GameProperty
|
import org.yuzu.yuzu_emu.model.GameProperty
|
||||||
|
|
@ -89,29 +91,33 @@ class GamePropertiesAdapter(
|
||||||
|
|
||||||
|
|
||||||
val hasVisibleActions = submenuProperty.secondaryActions?.any { it.isShown } == true
|
val hasVisibleActions = submenuProperty.secondaryActions?.any { it.isShown } == true
|
||||||
|
binding.layoutSecondaryActions.removeAllViews()
|
||||||
|
binding.dividerSecondaryActions.setVisible(false)
|
||||||
|
|
||||||
if (hasVisibleActions) {
|
if (hasVisibleActions) {
|
||||||
binding.dividerSecondaryActions.setVisible(true)
|
|
||||||
binding.layoutSecondaryActions.setVisible(true)
|
binding.layoutSecondaryActions.setVisible(true)
|
||||||
|
|
||||||
submenuProperty.secondaryActions!!.forEach { secondaryAction ->
|
val visibleActions = submenuProperty.secondaryActions!!.filter { it.isShown }
|
||||||
if (secondaryAction.isShown) {
|
val inflater = LayoutInflater.from(binding.root.context)
|
||||||
val button = com.google.android.material.button.MaterialButton(
|
visibleActions.forEachIndexed { index, secondaryAction ->
|
||||||
binding.root.context,
|
val button = inflater.inflate(
|
||||||
null,
|
R.layout.item_secondary_action_button,
|
||||||
com.google.android.material.R.attr.materialButtonOutlinedStyle
|
binding.layoutSecondaryActions,
|
||||||
).apply {
|
false
|
||||||
setIconResource(secondaryAction.iconId)
|
) as MaterialButton
|
||||||
iconSize = (18 * binding.root.context.resources.displayMetrics.density).toInt()
|
button.setIconResource(secondaryAction.iconId)
|
||||||
text = binding.root.context.getString(secondaryAction.descriptionId)
|
button.text = ""
|
||||||
contentDescription = binding.root.context.getString(secondaryAction.descriptionId)
|
button.contentDescription = binding.root.context
|
||||||
setOnClickListener { secondaryAction.action.invoke() }
|
.getString(secondaryAction.descriptionId)
|
||||||
}
|
button.tooltipText = binding.root.context
|
||||||
binding.layoutSecondaryActions.addView(button)
|
.getString(secondaryAction.descriptionId)
|
||||||
|
if (index == visibleActions.lastIndex) {
|
||||||
|
(button.layoutParams as ViewGroup.MarginLayoutParams).marginEnd = 0
|
||||||
}
|
}
|
||||||
|
button.setOnClickListener { secondaryAction.action.invoke() }
|
||||||
|
binding.layoutSecondaryActions.addView(button)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.dividerSecondaryActions.setVisible(false)
|
|
||||||
binding.layoutSecondaryActions.setVisible(false)
|
binding.layoutSecondaryActions.setVisible(false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
package org.yuzu.yuzu_emu.dialogs
|
package org.yuzu.yuzu_emu.dialogs
|
||||||
|
|
@ -14,6 +14,7 @@ import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.inputmethod.EditorInfo
|
import android.view.inputmethod.EditorInfo
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
|
import android.widget.FrameLayout
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import androidx.core.widget.doOnTextChanged
|
import androidx.core.widget.doOnTextChanged
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration
|
import androidx.recyclerview.widget.DividerItemDecoration
|
||||||
|
|
@ -58,6 +59,30 @@ class LobbyBrowser(context: Context) : BottomSheetDialog(context) {
|
||||||
setupSearchBar()
|
setupSearchBar()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onStart() {
|
||||||
|
super.onStart()
|
||||||
|
|
||||||
|
window?.setLayout(
|
||||||
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||||
|
ViewGroup.LayoutParams.MATCH_PARENT
|
||||||
|
)
|
||||||
|
|
||||||
|
val bottomSheet =
|
||||||
|
findViewById<FrameLayout>(com.google.android.material.R.id.design_bottom_sheet)
|
||||||
|
if (bottomSheet != null) {
|
||||||
|
bottomSheet.layoutParams = bottomSheet.layoutParams.apply {
|
||||||
|
width = ViewGroup.LayoutParams.MATCH_PARENT
|
||||||
|
height = ViewGroup.LayoutParams.MATCH_PARENT
|
||||||
|
}
|
||||||
|
bottomSheet.requestLayout()
|
||||||
|
}
|
||||||
|
|
||||||
|
behavior.isFitToContents = false
|
||||||
|
behavior.expandedOffset = 0
|
||||||
|
behavior.skipCollapsed = true
|
||||||
|
behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupRecyclerView() {
|
private fun setupRecyclerView() {
|
||||||
adapter = LobbyRoomAdapter { room -> handleRoomSelection(room) }
|
adapter = LobbyRoomAdapter { room -> handleRoomSelection(room) }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
package org.yuzu.yuzu_emu.features.settings.model
|
package org.yuzu.yuzu_emu.features.settings.model
|
||||||
|
|
@ -27,7 +27,7 @@ object Settings {
|
||||||
SECTION_APP_SETTINGS(R.string.app_settings),
|
SECTION_APP_SETTINGS(R.string.app_settings),
|
||||||
SECTION_CUSTOM_PATHS(R.string.preferences_custom_paths),
|
SECTION_CUSTOM_PATHS(R.string.preferences_custom_paths),
|
||||||
SECTION_DEBUG(R.string.preferences_debug),
|
SECTION_DEBUG(R.string.preferences_debug),
|
||||||
SECTION_FREEDRENO(R.string.gpu_driver_settings),
|
SECTION_FREEDRENO(R.string.freedreno_settings_title),
|
||||||
SECTION_APPLETS(R.string.applets_menu);
|
SECTION_APPLETS(R.string.applets_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
|
|
@ -111,10 +111,18 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
if (navHostFragment.childFragmentManager.backStackEntryCount > 0) {
|
if (navHostFragment.childFragmentManager.backStackEntryCount > 0) {
|
||||||
navHostFragment.navController.popBackStack()
|
navHostFragment.navController.popBackStack()
|
||||||
} else {
|
} else {
|
||||||
finish()
|
finishWithFragmentLikeAnimation()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun finishWithFragmentLikeAnimation() {
|
||||||
|
finish()
|
||||||
|
overridePendingTransition(
|
||||||
|
androidx.navigation.ui.R.anim.nav_default_pop_enter_anim,
|
||||||
|
androidx.navigation.ui.R.anim.nav_default_pop_exit_anim
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
if (!DirectoryInitialization.areDirectoriesReady) {
|
if (!DirectoryInitialization.areDirectoriesReady) {
|
||||||
|
|
@ -170,7 +178,7 @@ class SettingsActivity : AppCompatActivity() {
|
||||||
getString(R.string.settings_reset),
|
getString(R.string.settings_reset),
|
||||||
Toast.LENGTH_LONG
|
Toast.LENGTH_LONG
|
||||||
).show()
|
).show()
|
||||||
finish()
|
finishWithFragmentLikeAnimation()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setInsets() {
|
private fun setInsets() {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||||
|
|
@ -98,23 +98,8 @@ class SettingsFragment : Fragment() {
|
||||||
activity
|
activity
|
||||||
)
|
)
|
||||||
|
|
||||||
binding.toolbarSettingsLayout.title = if (args.menuTag == Settings.MenuTag.SECTION_ROOT &&
|
val toolbarTitle = resolveToolbarTitle()
|
||||||
args.game != null
|
configureToolbar(toolbarTitle)
|
||||||
) {
|
|
||||||
args.game!!.title
|
|
||||||
} else {
|
|
||||||
when (args.menuTag) {
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_ONE -> Settings.getPlayerString(1)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_TWO -> Settings.getPlayerString(2)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_THREE -> Settings.getPlayerString(3)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_FOUR -> Settings.getPlayerString(4)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_FIVE -> Settings.getPlayerString(5)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_SIX -> Settings.getPlayerString(6)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_SEVEN -> Settings.getPlayerString(7)
|
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_EIGHT -> Settings.getPlayerString(8)
|
|
||||||
else -> getString(args.menuTag.titleId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.listSettings.apply {
|
binding.listSettings.apply {
|
||||||
adapter = settingsAdapter
|
adapter = settingsAdapter
|
||||||
|
|
@ -193,11 +178,9 @@ class SettingsFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
presenter.onViewCreated()
|
presenter.onViewCreated()
|
||||||
|
|
||||||
setInsets()
|
setInsets()
|
||||||
}
|
}
|
||||||
|
private fun getPlayerIndex(): Int =
|
||||||
private fun getPlayerIndex(): Int =
|
|
||||||
when (args.menuTag) {
|
when (args.menuTag) {
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_ONE -> 0
|
Settings.MenuTag.SECTION_INPUT_PLAYER_ONE -> 0
|
||||||
Settings.MenuTag.SECTION_INPUT_PLAYER_TWO -> 1
|
Settings.MenuTag.SECTION_INPUT_PLAYER_TWO -> 1
|
||||||
|
|
@ -210,6 +193,27 @@ class SettingsFragment : Fragment() {
|
||||||
else -> -1
|
else -> -1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun resolveToolbarTitle(): String {
|
||||||
|
if (args.menuTag == Settings.MenuTag.SECTION_ROOT && args.game != null) {
|
||||||
|
return args.game!!.title
|
||||||
|
}
|
||||||
|
return when (args.menuTag) {
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_ONE -> Settings.getPlayerString(1)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_TWO -> Settings.getPlayerString(2)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_THREE -> Settings.getPlayerString(3)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_FOUR -> Settings.getPlayerString(4)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_FIVE -> Settings.getPlayerString(5)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_SIX -> Settings.getPlayerString(6)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_SEVEN -> Settings.getPlayerString(7)
|
||||||
|
Settings.MenuTag.SECTION_INPUT_PLAYER_EIGHT -> Settings.getPlayerString(8)
|
||||||
|
else -> getString(args.menuTag.titleId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun configureToolbar(title: String) {
|
||||||
|
binding.toolbarSettings.title = title
|
||||||
|
}
|
||||||
|
|
||||||
private fun setInsets() {
|
private fun setInsets() {
|
||||||
ViewCompat.setOnApplyWindowInsetsListener(
|
ViewCompat.setOnApplyWindowInsetsListener(
|
||||||
binding.root
|
binding.root
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ package org.yuzu.yuzu_emu.features.settings.ui
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.preference.PreferenceManager
|
|
||||||
import org.yuzu.yuzu_emu.NativeLibrary
|
import org.yuzu.yuzu_emu.NativeLibrary
|
||||||
import org.yuzu.yuzu_emu.R
|
import org.yuzu.yuzu_emu.R
|
||||||
import org.yuzu.yuzu_emu.YuzuApplication
|
import org.yuzu.yuzu_emu.YuzuApplication
|
||||||
|
|
@ -27,11 +26,9 @@ import org.yuzu.yuzu_emu.features.settings.model.Settings.MenuTag
|
||||||
import org.yuzu.yuzu_emu.features.settings.model.ShortSetting
|
import org.yuzu.yuzu_emu.features.settings.model.ShortSetting
|
||||||
import org.yuzu.yuzu_emu.features.settings.model.StringSetting
|
import org.yuzu.yuzu_emu.features.settings.model.StringSetting
|
||||||
import org.yuzu.yuzu_emu.features.settings.model.view.*
|
import org.yuzu.yuzu_emu.features.settings.model.view.*
|
||||||
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
|
||||||
import org.yuzu.yuzu_emu.utils.InputHandler
|
import org.yuzu.yuzu_emu.utils.InputHandler
|
||||||
import org.yuzu.yuzu_emu.utils.NativeConfig
|
import org.yuzu.yuzu_emu.utils.NativeConfig
|
||||||
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
|
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
|
||||||
import androidx.core.content.edit
|
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
|
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
|
||||||
|
|
||||||
|
|
@ -183,16 +180,6 @@ class SettingsFragmentPresenter(
|
||||||
menuKey = MenuTag.SECTION_DEBUG
|
menuKey = MenuTag.SECTION_DEBUG
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
if (GpuDriverHelper.isAdrenoGpu() && !NativeConfig.isPerGameConfigLoaded()) {
|
|
||||||
add(
|
|
||||||
SubmenuSetting(
|
|
||||||
titleId = R.string.gpu_driver_settings,
|
|
||||||
descriptionId = R.string.freedreno_settings_title,
|
|
||||||
iconId = R.drawable.ic_graphics,
|
|
||||||
menuKey = MenuTag.SECTION_FREEDRENO
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
add(
|
add(
|
||||||
SubmenuSetting(
|
SubmenuSetting(
|
||||||
titleId = R.string.applets_menu,
|
titleId = R.string.applets_menu,
|
||||||
|
|
@ -1084,27 +1071,6 @@ class SettingsFragmentPresenter(
|
||||||
|
|
||||||
add(HeaderSetting(R.string.theme_and_color))
|
add(HeaderSetting(R.string.theme_and_color))
|
||||||
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
|
||||||
add(
|
|
||||||
SingleChoiceSetting(
|
|
||||||
theme,
|
|
||||||
titleId = R.string.change_app_theme,
|
|
||||||
choicesId = R.array.themeEntriesA12,
|
|
||||||
valuesId = R.array.themeValuesA12
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
add(
|
|
||||||
SingleChoiceSetting(
|
|
||||||
theme,
|
|
||||||
titleId = R.string.change_app_theme,
|
|
||||||
choicesId = R.array.themeEntries,
|
|
||||||
valuesId = R.array.themeValues
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val themeMode: AbstractIntSetting = object : AbstractIntSetting {
|
val themeMode: AbstractIntSetting = object : AbstractIntSetting {
|
||||||
override fun getInt(needsGlobal: Boolean): Int = IntSetting.THEME_MODE.getInt()
|
override fun getInt(needsGlobal: Boolean): Int = IntSetting.THEME_MODE.getInt()
|
||||||
override fun setInt(value: Int) {
|
override fun setInt(value: Int) {
|
||||||
|
|
@ -1126,6 +1092,35 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add(
|
||||||
|
SingleChoiceSetting(
|
||||||
|
themeMode,
|
||||||
|
titleId = R.string.change_theme_mode,
|
||||||
|
choicesId = R.array.themeModeEntries,
|
||||||
|
valuesId = R.array.themeModeValues
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
|
add(
|
||||||
|
SingleChoiceSetting(
|
||||||
|
theme,
|
||||||
|
titleId = R.string.change_app_theme,
|
||||||
|
choicesId = R.array.themeEntriesA12,
|
||||||
|
valuesId = R.array.themeValuesA12
|
||||||
|
)
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
add(
|
||||||
|
SingleChoiceSetting(
|
||||||
|
theme,
|
||||||
|
titleId = R.string.change_app_theme,
|
||||||
|
choicesId = R.array.themeEntries,
|
||||||
|
valuesId = R.array.themeValues
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
val staticThemeColor: AbstractIntSetting = object : AbstractIntSetting {
|
val staticThemeColor: AbstractIntSetting = object : AbstractIntSetting {
|
||||||
override fun getInt(needsGlobal: Boolean): Int =
|
override fun getInt(needsGlobal: Boolean): Int =
|
||||||
IntSetting.STATIC_THEME_COLOR.getInt(needsGlobal)
|
IntSetting.STATIC_THEME_COLOR.getInt(needsGlobal)
|
||||||
|
|
@ -1149,15 +1144,6 @@ class SettingsFragmentPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
add(
|
|
||||||
SingleChoiceSetting(
|
|
||||||
themeMode,
|
|
||||||
titleId = R.string.change_theme_mode,
|
|
||||||
choicesId = R.array.themeModeEntries,
|
|
||||||
valuesId = R.array.themeModeValues
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
if (IntSetting.THEME.getInt() != 1) {
|
if (IntSetting.THEME.getInt() != 1) {
|
||||||
add(
|
add(
|
||||||
SingleChoiceSetting(
|
SingleChoiceSetting(
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
package org.yuzu.yuzu_emu.fragments
|
package org.yuzu.yuzu_emu.fragments
|
||||||
|
|
@ -54,8 +51,8 @@ class AboutFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
homeViewModel.setStatusBarShadeVisibility(visible = false)
|
homeViewModel.setStatusBarShadeVisibility(visible = false)
|
||||||
|
|
||||||
binding.toolbarAbout.setNavigationOnClickListener {
|
binding.toolbarAbout.setNavigationOnClickListener {
|
||||||
binding.root.findNavController().popBackStack()
|
binding.root.findNavController().popBackStack()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import org.yuzu.yuzu_emu.R
|
||||||
import org.yuzu.yuzu_emu.databinding.FragmentDriverFetcherBinding
|
import org.yuzu.yuzu_emu.databinding.FragmentDriverFetcherBinding
|
||||||
import org.yuzu.yuzu_emu.features.fetcher.DriverGroupAdapter
|
import org.yuzu.yuzu_emu.features.fetcher.DriverGroupAdapter
|
||||||
import org.yuzu.yuzu_emu.model.DriverViewModel
|
import org.yuzu.yuzu_emu.model.DriverViewModel
|
||||||
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
||||||
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
@ -87,6 +88,7 @@ class DriverFetcherFragment : Fragment() {
|
||||||
|
|
||||||
private lateinit var driverGroupAdapter: DriverGroupAdapter
|
private lateinit var driverGroupAdapter: DriverGroupAdapter
|
||||||
private val driverViewModel: DriverViewModel by activityViewModels()
|
private val driverViewModel: DriverViewModel by activityViewModels()
|
||||||
|
private val homeViewModel: HomeViewModel by activityViewModels()
|
||||||
|
|
||||||
private fun parseAdrenoModel(): Int {
|
private fun parseAdrenoModel(): Int {
|
||||||
if (gpuModel == null) {
|
if (gpuModel == null) {
|
||||||
|
|
@ -138,7 +140,7 @@ class DriverFetcherFragment : Fragment() {
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
homeViewModel.setStatusBarShadeVisibility(visible = false)
|
||||||
binding.toolbarDrivers.setNavigationOnClickListener {
|
binding.toolbarDrivers.setNavigationOnClickListener {
|
||||||
binding.root.findNavController().popBackStack()
|
binding.root.findNavController().popBackStack()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentFreedrenoSettingsBinding
|
||||||
import org.yuzu.yuzu_emu.model.Game
|
import org.yuzu.yuzu_emu.model.Game
|
||||||
import org.yuzu.yuzu_emu.utils.NativeFreedrenoConfig
|
import org.yuzu.yuzu_emu.utils.NativeFreedrenoConfig
|
||||||
import org.yuzu.yuzu_emu.utils.FreedrenoPresets
|
import org.yuzu.yuzu_emu.utils.FreedrenoPresets
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
|
|
||||||
class FreedrenoSettingsFragment : Fragment() {
|
class FreedrenoSettingsFragment : Fragment() {
|
||||||
|
|
@ -74,10 +75,15 @@ class FreedrenoSettingsFragment : Fragment() {
|
||||||
binding.toolbarFreedreno.setNavigationOnClickListener {
|
binding.toolbarFreedreno.setNavigationOnClickListener {
|
||||||
requireActivity().onBackPressedDispatcher.onBackPressed()
|
requireActivity().onBackPressedDispatcher.onBackPressed()
|
||||||
}
|
}
|
||||||
if (isPerGameConfig) {
|
|
||||||
binding.toolbarFreedreno.title = getString(R.string.freedreno_per_game_title)
|
binding.toolbarFreedreno.title = getString(
|
||||||
binding.toolbarFreedreno.subtitle = game!!.title
|
if (isPerGameConfig) {
|
||||||
}
|
R.string.freedreno_per_game_title
|
||||||
|
} else {
|
||||||
|
R.string.freedreno_settings_title
|
||||||
|
}
|
||||||
|
)
|
||||||
|
binding.toolbarFreedreno.subtitle = null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupAdapters() {
|
private fun setupAdapters() {
|
||||||
|
|
@ -175,17 +181,19 @@ class FreedrenoSettingsFragment : Fragment() {
|
||||||
|
|
||||||
private fun setupWindowInsets() {
|
private fun setupWindowInsets() {
|
||||||
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
|
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets ->
|
||||||
val systemInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
|
val barInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||||
binding.root.updatePadding(
|
val cutoutInsets = insets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
||||||
left = systemInsets.left,
|
|
||||||
right = systemInsets.right,
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
bottom = systemInsets.bottom
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
)
|
|
||||||
|
binding.appbarFreedreno.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
|
binding.scrollFreedreno.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
|
binding.scrollFreedreno.updatePadding(bottom = barInsets.bottom)
|
||||||
insets
|
insets
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private fun showSnackbar(message: String) {
|
||||||
private fun showSnackbar(message: String) {
|
|
||||||
Snackbar.make(binding.root, message, Snackbar.LENGTH_SHORT).show()
|
Snackbar.make(binding.root, message, Snackbar.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
package org.yuzu.yuzu_emu.fragments
|
package org.yuzu.yuzu_emu.fragments
|
||||||
|
|
@ -310,6 +310,21 @@ class GamePropertiesFragment : Fragment() {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (!args.game.isHomebrew) {
|
||||||
|
add(
|
||||||
|
SubmenuProperty(
|
||||||
|
R.string.add_ons,
|
||||||
|
R.string.add_ons_description,
|
||||||
|
R.drawable.ic_edit,
|
||||||
|
action = {
|
||||||
|
val action = GamePropertiesFragmentDirections
|
||||||
|
.actionPerGamePropertiesFragmentToAddonsFragment(args.game)
|
||||||
|
binding.root.findNavController().navigate(action)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
if (GpuDriverHelper.supportsCustomDriverLoading()) {
|
if (GpuDriverHelper.supportsCustomDriverLoading()) {
|
||||||
add(
|
add(
|
||||||
SubmenuProperty(
|
SubmenuProperty(
|
||||||
|
|
@ -341,18 +356,6 @@ class GamePropertiesFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!args.game.isHomebrew) {
|
if (!args.game.isHomebrew) {
|
||||||
add(
|
|
||||||
SubmenuProperty(
|
|
||||||
R.string.add_ons,
|
|
||||||
R.string.add_ons_description,
|
|
||||||
R.drawable.ic_edit,
|
|
||||||
action = {
|
|
||||||
val action = GamePropertiesFragmentDirections
|
|
||||||
.actionPerGamePropertiesFragmentToAddonsFragment(args.game)
|
|
||||||
binding.root.findNavController().navigate(action)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
add(
|
add(
|
||||||
InstallableProperty(
|
InstallableProperty(
|
||||||
R.string.save_data,
|
R.string.save_data,
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,6 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
package org.yuzu.yuzu_emu.fragments
|
package org.yuzu.yuzu_emu.fragments
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
|
|
@ -44,7 +41,9 @@ import org.yuzu.yuzu_emu.model.HomeSetting
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.ui.main.MainActivity
|
import org.yuzu.yuzu_emu.ui.main.MainActivity
|
||||||
import org.yuzu.yuzu_emu.utils.FileUtil
|
import org.yuzu.yuzu_emu.utils.FileUtil
|
||||||
|
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
||||||
import org.yuzu.yuzu_emu.utils.Log
|
import org.yuzu.yuzu_emu.utils.Log
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class HomeSettingsFragment : Fragment() {
|
class HomeSettingsFragment : Fragment() {
|
||||||
private var _binding: FragmentHomeSettingsBinding? = null
|
private var _binding: FragmentHomeSettingsBinding? = null
|
||||||
|
|
@ -71,8 +70,12 @@ class HomeSettingsFragment : Fragment() {
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
homeViewModel.setStatusBarShadeVisibility(visible = true)
|
homeViewModel.setStatusBarShadeVisibility(visible = false)
|
||||||
mainActivity = requireActivity() as MainActivity
|
mainActivity = requireActivity() as MainActivity
|
||||||
|
binding.toolbarHomeSettings.setNavigationOnClickListener {
|
||||||
|
findNavController().popBackStack()
|
||||||
|
}
|
||||||
|
binding.toolbarHomeSettings.title = getString(R.string.preferences_settings)
|
||||||
|
|
||||||
val optionsList: MutableList<HomeSetting> = mutableListOf<HomeSetting>().apply {
|
val optionsList: MutableList<HomeSetting> = mutableListOf<HomeSetting>().apply {
|
||||||
add(
|
add(
|
||||||
|
|
@ -144,6 +147,18 @@ class HomeSettingsFragment : Fragment() {
|
||||||
driverViewModel.selectedDriverTitle
|
driverViewModel.selectedDriverTitle
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
if (GpuDriverHelper.isAdrenoGpu()) {
|
||||||
|
add(
|
||||||
|
HomeSetting(
|
||||||
|
R.string.freedreno_settings_title,
|
||||||
|
R.string.gpu_driver_settings,
|
||||||
|
R.drawable.ic_graphics,
|
||||||
|
{
|
||||||
|
binding.root.findNavController().navigate(R.id.freedrenoSettingsFragment)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
add(
|
add(
|
||||||
HomeSetting(
|
HomeSetting(
|
||||||
R.string.multiplayer,
|
R.string.multiplayer,
|
||||||
|
|
@ -465,19 +480,22 @@ class HomeSettingsFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setInsets() =
|
private fun setInsets() =
|
||||||
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { view, windowInsets ->
|
ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, windowInsets ->
|
||||||
val barInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
val barInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||||
val cutoutInsets = windowInsets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
val cutoutInsets = windowInsets.getInsets(WindowInsetsCompat.Type.displayCutout())
|
||||||
|
|
||||||
|
binding.appbarHomeSettings.updateMargins(
|
||||||
|
left = barInsets.left + cutoutInsets.left,
|
||||||
|
right = barInsets.right + cutoutInsets.right
|
||||||
|
)
|
||||||
|
|
||||||
binding.scrollViewSettings.updatePadding(
|
binding.scrollViewSettings.updatePadding(
|
||||||
top = barInsets.top
|
bottom = barInsets.bottom
|
||||||
)
|
)
|
||||||
|
|
||||||
binding.homeSettingsList.updatePadding(
|
binding.homeSettingsList.updatePadding(
|
||||||
left = barInsets.left + cutoutInsets.left,
|
left = barInsets.left + cutoutInsets.left,
|
||||||
top = cutoutInsets.top,
|
right = barInsets.right + cutoutInsets.right
|
||||||
right = barInsets.right + cutoutInsets.right,
|
|
||||||
bottom = barInsets.bottom
|
|
||||||
)
|
)
|
||||||
|
|
||||||
windowInsets
|
windowInsets
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="rectangle">
|
||||||
<solid android:color="?attr/colorSurface" />
|
<solid android:color="@android:color/transparent" />
|
||||||
<stroke
|
<stroke
|
||||||
android:width="1dp"
|
android:width="1dp"
|
||||||
android:color="?attr/colorOutline" />
|
android:color="?attr/colorOutline" />
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,237 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.coordinatorlayout.widget.CoordinatorLayout 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="match_parent"
|
||||||
|
android:background="?attr/colorSurface">
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/appbar"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingHorizontal="16dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:gravity="start|center_vertical"
|
||||||
|
android:text="@string/multiplayer_room_browser"
|
||||||
|
android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
|
||||||
|
android:textColor="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
<com.google.android.material.card.MaterialCardView
|
||||||
|
android:id="@+id/search_background"
|
||||||
|
style="?attr/materialCardViewFilledStyle"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
app:cardBackgroundColor="?attr/colorSurfaceVariant"
|
||||||
|
app:cardCornerRadius="24dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/search_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:contentDescription="@string/home_search"
|
||||||
|
android:src="@drawable/ic_search"
|
||||||
|
app:tint="?attr/colorOnSurfaceVariant" />
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/search_text"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:autofillHints=""
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:hint="@string/multiplayer_search_public_lobbies"
|
||||||
|
android:imeOptions="flagNoFullscreen"
|
||||||
|
android:inputType="text"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:textColor="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/clear_button"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:layout_marginEnd="48dp"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:contentDescription="@string/clear"
|
||||||
|
android:src="@drawable/ic_clear"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:tint="?attr/colorOnSurfaceVariant"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/btn_submit"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center_vertical|end"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:contentDescription="@string/submit"
|
||||||
|
android:src="@drawable/ic_send"
|
||||||
|
app:tint="?attr/colorOnSurfaceVariant"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/refresh_button"
|
||||||
|
style="@style/Widget.Material3.Button.IconButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:text="@string/refresh"
|
||||||
|
app:icon="@drawable/ic_refresh" />
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progress_bar"
|
||||||
|
style="?android:attr/progressBarStyleSmall"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:visibility="gone" />
|
||||||
|
</FrameLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<HorizontalScrollView
|
||||||
|
android:id="@+id/horizontalScrollView"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginVertical="8dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:fadingEdge="horizontal"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:scrollbars="none">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/chips"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clipToPadding="false">
|
||||||
|
|
||||||
|
<com.google.android.material.chip.Chip
|
||||||
|
android:id="@+id/chip_hide_empty"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:checkable="true"
|
||||||
|
android:checked="false"
|
||||||
|
android:paddingStart="8dp"
|
||||||
|
android:paddingTop="6dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:paddingBottom="6dp"
|
||||||
|
android:text="@string/multiplayer_hide_empty_rooms"
|
||||||
|
app:chipCornerRadius="16dp"
|
||||||
|
app:chipIconSize="18dp"
|
||||||
|
app:chipIconTint="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
<com.google.android.material.chip.Chip
|
||||||
|
android:id="@+id/chip_hide_full"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:checkable="true"
|
||||||
|
android:checked="false"
|
||||||
|
android:paddingStart="8dp"
|
||||||
|
android:paddingTop="6dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:paddingBottom="6dp"
|
||||||
|
android:text="@string/multiplayer_hide_full_rooms"
|
||||||
|
app:chipCornerRadius="16dp"
|
||||||
|
app:chipIconSize="18dp"
|
||||||
|
app:chipIconTint="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</HorizontalScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/room_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:contentDescription="@string/room_list"
|
||||||
|
android:paddingBottom="16dp"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="32dp"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="72dp"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:alpha="0.5"
|
||||||
|
android:contentDescription="@string/refresh"
|
||||||
|
android:src="@drawable/ic_refresh"
|
||||||
|
app:tint="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/multiplayer_no_rooms_found"
|
||||||
|
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||||
|
android:textColor="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:text="@string/multiplayer_tap_refresh_to_check_again"
|
||||||
|
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:textColor="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/empty_refresh_button"
|
||||||
|
style="@style/Widget.Material3.Button.ElevatedButton"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
android:text="@string/refresh"
|
||||||
|
app:icon="@drawable/ic_refresh" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
@ -0,0 +1,112 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/theme_dialog_background"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
|
||||||
|
android:id="@+id/drag_handle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:layout_weight="0.75">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="120dp"
|
||||||
|
android:layout_height="120dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:contentDescription="@string/multiplayer"
|
||||||
|
android:src="@drawable/ic_network"
|
||||||
|
app:tint="?attr/colorPrimary" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1.25"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/text_title"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="4dp"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/multiplayer"
|
||||||
|
android:textAppearance="?attr/textAppearanceHeadline6"
|
||||||
|
android:textColor="?attr/colorOnSurface" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btn_lobby_browser"
|
||||||
|
style="@style/Widget.Material3.Button.TonalButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:minHeight="56dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:text="@string/multiplayer_public_room"
|
||||||
|
android:textColor="?attr/colorOnPrimary"
|
||||||
|
app:backgroundTint="?attr/colorPrimary"
|
||||||
|
app:cornerRadius="16dp"
|
||||||
|
app:icon="@drawable/ic_search"
|
||||||
|
app:iconPadding="12dp"
|
||||||
|
app:iconTint="?attr/colorOnPrimary" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btn_join"
|
||||||
|
style="@style/Widget.Material3.Button.ElevatedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:minHeight="56dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:text="@string/multiplayer_join_room"
|
||||||
|
app:cornerRadius="16dp"
|
||||||
|
app:icon="@drawable/ic_install"
|
||||||
|
app:iconPadding="12dp" />
|
||||||
|
|
||||||
|
<Space
|
||||||
|
android:layout_width="16dp"
|
||||||
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/btn_create"
|
||||||
|
style="@style/Widget.Material3.Button.ElevatedButton"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:minHeight="56dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:text="@string/multiplayer_create_room"
|
||||||
|
app:cornerRadius="16dp"
|
||||||
|
app:icon="@drawable/ic_add"
|
||||||
|
app:iconPadding="12dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
@ -44,7 +44,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="24dp"
|
app:cardCornerRadius="24dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -103,7 +108,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="42dp"
|
android:layout_width="42dp"
|
||||||
android:layout_height="42dp"
|
android:layout_height="42dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="21dp"
|
app:cardCornerRadius="21dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -127,7 +137,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="42dp"
|
android:layout_width="42dp"
|
||||||
android:layout_height="42dp"
|
android:layout_height="42dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="21dp"
|
app:cardCornerRadius="21dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -151,7 +166,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="42dp"
|
android:layout_width="42dp"
|
||||||
android:layout_height="42dp"
|
android:layout_height="42dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="21dp"
|
app:cardCornerRadius="21dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,70 +12,83 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:orientation="horizontal"
|
android:orientation="vertical"
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:paddingHorizontal="24dp"
|
android:paddingHorizontal="24dp"
|
||||||
android:paddingVertical="16dp">
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/icon"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_marginEnd="20dp"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
app:tint="?attr/colorOnSurface"
|
|
||||||
tools:src="@drawable/ic_settings" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="16dp"
|
android:gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:orientation="horizontal">
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<ImageView
|
||||||
android:id="@+id/title"
|
android:id="@+id/icon"
|
||||||
style="@style/TextAppearance.Material3.TitleMedium"
|
android:layout_width="24dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_height="24dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_marginEnd="20dp"
|
||||||
android:text="@string/user_data"
|
android:layout_gravity="center_vertical"
|
||||||
android:textAlignment="viewStart" />
|
app:tint="?attr/colorOnSurface"
|
||||||
|
tools:src="@drawable/ic_settings" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<LinearLayout
|
||||||
android:id="@+id/description"
|
android:layout_width="0dp"
|
||||||
style="@style/TextAppearance.Material3.BodyMedium"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_weight="1"
|
||||||
android:text="@string/user_data_description"
|
android:orientation="vertical">
|
||||||
android:textAlignment="viewStart" />
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:id="@+id/title"
|
||||||
|
style="@style/TextAppearance.Material3.TitleMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/user_data"
|
||||||
|
android:textAlignment="viewStart" />
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:id="@+id/description"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="@string/user_data_description"
|
||||||
|
android:textAlignment="viewStart" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<Button
|
<LinearLayout
|
||||||
android:id="@+id/button_export"
|
android:layout_width="match_parent"
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_marginTop="10dp"
|
||||||
android:contentDescription="@string/export"
|
android:gravity="end|center_vertical"
|
||||||
android:tooltipText="@string/export"
|
android:orientation="horizontal">
|
||||||
android:visibility="gone"
|
|
||||||
app:icon="@drawable/ic_export"
|
|
||||||
tools:visibility="visible" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button_install"
|
android:id="@+id/button_install"
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:contentDescription="@string/string_import"
|
||||||
android:layout_marginStart="12dp"
|
android:tooltipText="@string/string_import"
|
||||||
android:contentDescription="@string/string_import"
|
android:visibility="gone"
|
||||||
android:tooltipText="@string/string_import"
|
app:icon="@drawable/ic_import"
|
||||||
android:visibility="gone"
|
tools:visibility="visible" />
|
||||||
app:icon="@drawable/ic_import"
|
|
||||||
tools:visibility="visible" />
|
<Button
|
||||||
|
android:id="@+id/button_export"
|
||||||
|
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:contentDescription="@string/export"
|
||||||
|
android:tooltipText="@string/export"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:icon="@drawable/ic_export"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
android:id="@+id/coordinator_about"
|
android:id="@+id/coordinator_about"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/colorSurface"
|
||||||
>
|
>
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,13 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginVertical="12dp"
|
android:layout_marginVertical="12dp"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="@android:color/transparent"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true">
|
android:focusable="true"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,15 @@
|
||||||
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
style="?attr/materialCardViewOutlinedStyle"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginVertical="12dp">
|
android:layout_marginVertical="12dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="14dp"
|
android:paddingTop="4dp"
|
||||||
android:paddingLeft="6dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="6dp"
|
android:paddingRight="4dp"
|
||||||
android:paddingBottom="6dp">
|
android:paddingBottom="2dp">
|
||||||
|
|
||||||
<com.google.android.material.imageview.ShapeableImageView
|
<com.google.android.material.imageview.ShapeableImageView
|
||||||
android:id="@+id/image_game_screen"
|
android:id="@+id/image_game_screen"
|
||||||
|
|
@ -48,11 +48,14 @@
|
||||||
style="@style/SynthwaveText.Body"
|
style="@style/SynthwaveText.Body"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="2dp"
|
||||||
|
android:gravity="center"
|
||||||
android:requiresFadingEdge="horizontal"
|
android:requiresFadingEdge="horizontal"
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
app:layout_constraintEnd_toEndOf="@+id/image_game_screen"
|
app:layout_constraintEnd_toEndOf="@+id/image_game_screen"
|
||||||
app:layout_constraintStart_toStartOf="@+id/image_game_screen"
|
app:layout_constraintStart_toStartOf="@+id/image_game_screen"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/image_game_screen"
|
app:layout_constraintTop_toBottomOf="@+id/image_game_screen"
|
||||||
|
|
|
||||||
|
|
@ -27,10 +27,10 @@
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="14dp"
|
android:paddingTop="3dp"
|
||||||
android:paddingLeft="6dp"
|
android:paddingLeft="4dp"
|
||||||
android:paddingRight="6dp"
|
android:paddingRight="4dp"
|
||||||
android:paddingBottom="6dp">
|
android:paddingBottom="3dp">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/image_container"
|
android:id="@+id/image_container"
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
android:transitionName="card_game"
|
android:transitionName="card_game"
|
||||||
app:cardCornerRadius="16dp"
|
app:cardCornerRadius="16dp"
|
||||||
app:cardElevation="0dp"
|
app:cardElevation="0dp"
|
||||||
app:cardBackgroundColor="@color/eden_card_background"
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
app:strokeWidth="0dp">
|
app:strokeWidth="0dp">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
|
@ -27,6 +27,8 @@
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"
|
app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"
|
||||||
|
app:strokeColor="@color/eden_card_background"
|
||||||
|
app:strokeWidth="4dp"
|
||||||
tools:src="@drawable/default_icon" />
|
tools:src="@drawable/default_icon" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,14 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:layout_marginHorizontal="8dp"
|
android:layout_marginHorizontal="8dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
app:cardCornerRadius="16dp">
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/option_layout"
|
android:id="@+id/option_layout"
|
||||||
|
|
@ -60,6 +65,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
|
android:textColor="?attr/colorPrimary"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,15 @@
|
||||||
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
style="@style/EdenCard"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginVertical="12dp">
|
android:layout_marginVertical="12dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
@ -42,30 +46,37 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<Button
|
<LinearLayout
|
||||||
android:id="@+id/button_export"
|
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:contentDescription="@string/export"
|
android:gravity="center_horizontal"
|
||||||
android:tooltipText="@string/export"
|
android:orientation="vertical">
|
||||||
android:visibility="gone"
|
|
||||||
app:icon="@drawable/ic_export"
|
|
||||||
tools:visibility="visible" />
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button_install"
|
android:id="@+id/button_export"
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:contentDescription="@string/export"
|
||||||
android:layout_marginStart="12dp"
|
android:tooltipText="@string/export"
|
||||||
android:contentDescription="@string/string_import"
|
android:visibility="gone"
|
||||||
android:tooltipText="@string/string_import"
|
app:icon="@drawable/ic_export"
|
||||||
android:visibility="gone"
|
tools:visibility="visible" />
|
||||||
app:icon="@drawable/ic_import"
|
|
||||||
tools:visibility="visible" />
|
<Button
|
||||||
|
android:id="@+id/button_install"
|
||||||
|
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:contentDescription="@string/string_import"
|
||||||
|
android:tooltipText="@string/string_import"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:icon="@drawable/ic_import"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,63 +6,75 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginVertical="12dp">
|
android:layout_marginVertical="12dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:orientation="horizontal"
|
android:orientation="vertical"
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:paddingHorizontal="24dp"
|
android:paddingHorizontal="24dp"
|
||||||
android:paddingVertical="16dp">
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/icon"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_marginEnd="20dp"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
app:tint="?attr/colorOnSurface"
|
|
||||||
tools:src="@drawable/ic_settings" />
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="16dp"
|
android:gravity="center_vertical"
|
||||||
android:layout_weight="1"
|
android:orientation="horizontal">
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<ImageView
|
||||||
android:id="@+id/title"
|
android:id="@+id/icon"
|
||||||
style="@style/TextAppearance.Material3.TitleMedium"
|
android:layout_width="24dp"
|
||||||
android:layout_width="match_parent"
|
android:layout_height="24dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_marginEnd="20dp"
|
||||||
android:text="@string/user_data"
|
android:layout_gravity="center_vertical"
|
||||||
android:textAlignment="viewStart" />
|
app:tint="?attr/colorOnSurface"
|
||||||
|
tools:src="@drawable/ic_settings" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<LinearLayout
|
||||||
android:id="@+id/description"
|
android:layout_width="0dp"
|
||||||
style="@style/TextAppearance.Material3.BodyMedium"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="6dp"
|
android:layout_weight="1"
|
||||||
android:text="@string/user_data_description"
|
android:orientation="vertical">
|
||||||
android:textAlignment="viewStart" />
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:id="@+id/title"
|
||||||
|
style="@style/TextAppearance.Material3.TitleMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/user_data"
|
||||||
|
android:textAlignment="viewStart" />
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:id="@+id/description"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="@string/user_data_description"
|
||||||
|
android:textAlignment="viewStart" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:layout_marginTop="10dp"
|
||||||
|
android:gravity="end|center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button_install"
|
android:id="@+id/button_install"
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:contentDescription="@string/string_import"
|
android:contentDescription="@string/string_import"
|
||||||
android:tooltipText="@string/string_import"
|
android:tooltipText="@string/string_import"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
|
@ -71,11 +83,10 @@
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button_export"
|
android:id="@+id/button_export"
|
||||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_marginStart="12dp"
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:contentDescription="@string/export"
|
android:contentDescription="@string/export"
|
||||||
android:tooltipText="@string/export"
|
android:tooltipText="@string/export"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,13 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginVertical="12dp"
|
android:layout_marginVertical="12dp"
|
||||||
android:background="?attr/selectableItemBackground"
|
android:background="@android:color/transparent"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true">
|
android:focusable="true"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
@ -81,14 +85,15 @@
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<com.google.android.material.chip.ChipGroup
|
<LinearLayout
|
||||||
android:id="@+id/layoutSecondaryActions"
|
android:id="@+id/layoutSecondaryActions"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="end|center_vertical"
|
||||||
|
android:orientation="horizontal"
|
||||||
android:paddingHorizontal="24dp"
|
android:paddingHorizontal="24dp"
|
||||||
android:paddingVertical="8dp"
|
android:paddingVertical="8dp"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:singleLine="false"
|
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
||||||
|
|
@ -8,16 +8,14 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar"
|
android:id="@+id/appbar"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content">
|
||||||
android:background="?attr/colorSurface"
|
|
||||||
android:elevation="0dp">
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical">
|
||||||
app:layout_scrollFlags="scroll|enterAlways|snap">
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,11 @@
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:text="@string/multiplayer_public_room"
|
android:text="@string/multiplayer_public_room"
|
||||||
app:cornerRadius="16dp"
|
app:cornerRadius="16dp"
|
||||||
|
app:backgroundTint="?attr/colorPrimary"
|
||||||
app:icon="@drawable/ic_search"
|
app:icon="@drawable/ic_search"
|
||||||
app:iconPadding="12dp" />
|
app:iconPadding="12dp"
|
||||||
|
app:iconTint="?attr/colorOnPrimary"
|
||||||
|
android:textColor="?attr/colorOnPrimary" />
|
||||||
|
|
||||||
<Space
|
<Space
|
||||||
android:layout_width="20dp"
|
android:layout_width="20dp"
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
android:id="@+id/coordinator_about"
|
android:id="@+id/coordinator_about"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/colorSurface"
|
||||||
>
|
>
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
|
@ -51,12 +52,15 @@
|
||||||
android:src="@drawable/ic_yuzu" />
|
android:src="@drawable/ic_yuzu" />
|
||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
style="@style/EdenCard"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
app:cardCornerRadius="16dp">
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
@ -84,14 +88,17 @@
|
||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/button_contributors"
|
android:id="@+id/button_contributors"
|
||||||
style="@style/EdenCard"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
app:cardCornerRadius="16dp">
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
@ -119,14 +126,17 @@
|
||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/button_licenses"
|
android:id="@+id/button_licenses"
|
||||||
style="@style/EdenCard"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="16dp"
|
android:layout_marginHorizontal="16dp"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
app:cardCornerRadius="16dp">
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
@ -161,7 +171,7 @@
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
app:cardCornerRadius="16dp"
|
app:cardCornerRadius="16dp"
|
||||||
app:cardBackgroundColor="?attr/colorSurface"
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
app:strokeColor="?attr/colorOutline"
|
app:strokeColor="?attr/colorOutline"
|
||||||
app:strokeWidth="1dp"
|
app:strokeWidth="1dp"
|
||||||
app:cardElevation="0dp">
|
app:cardElevation="0dp">
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_addons"
|
android:id="@+id/appbar_addons"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
|
|
@ -18,6 +19,7 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_addons"
|
android:id="@+id/toolbar_addons"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_applets"
|
android:id="@+id/appbar_applets"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
|
|
@ -15,6 +16,7 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_applets"
|
android:id="@+id/toolbar_applets"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
|
|
||||||
|
|
@ -7,19 +7,22 @@
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/colorSurface">
|
android:background="?attr/colorSurface">
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_drivers"
|
android:id="@+id/appbar_drivers"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
|
||||||
app:liftOnScrollTargetViewId="@id/list_drivers">
|
app:liftOnScrollTargetViewId="@id/list_drivers">
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_drivers"
|
android:id="@+id/toolbar_drivers"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
|
|
||||||
|
|
@ -13,14 +13,15 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_drivers"
|
android:id="@+id/appbar_drivers"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false">
|
||||||
app:liftOnScrollTargetViewId="@id/list_drivers">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_drivers"
|
android:id="@+id/toolbar_drivers"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,15 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_folders"
|
android:id="@+id/appbar_folders"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false">
|
||||||
app:liftOnScrollTargetViewId="@id/list_folders">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_folders"
|
android:id="@+id/toolbar_folders"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
|
|
||||||
|
|
@ -8,35 +8,24 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_freedreno"
|
android:id="@+id/appbar_freedreno"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false">
|
||||||
app:elevation="0dp">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_freedreno_layout"
|
android:id="@+id/toolbar_freedreno"
|
||||||
style="?attr/collapsingToolbarLayoutMediumStyle"
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
android:touchscreenBlocksFocus="false"
|
||||||
app:contentScrim="?attr/colorSurface"
|
app:navigationIcon="@drawable/ic_back" />
|
||||||
app:scrimVisibleHeightTrigger="100dp">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
|
||||||
android:id="@+id/toolbar_freedreno"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:touchscreenBlocksFocus="false"
|
|
||||||
app:layout_collapseMode="pin"
|
|
||||||
app:navigationIcon="@drawable/ic_back"
|
|
||||||
app:title="@string/gpu_driver_settings" />
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
|
android:id="@+id/scroll_freedreno"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||||
|
|
@ -63,8 +52,12 @@
|
||||||
android:id="@+id/list_freedreno_presets"
|
android:id="@+id/list_freedreno_presets"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="6dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
android:scrollbars="horizontal"
|
android:scrollbars="horizontal"
|
||||||
|
android:scrollbarStyle="outsideInset"
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||||
|
|
||||||
<!-- Current Settings Section -->
|
<!-- Current Settings Section -->
|
||||||
|
|
@ -135,22 +128,23 @@
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:spacing="8dp">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button_clear_all"
|
android:id="@+id/button_clear_all"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="4dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/freedreno_clear_all"
|
style="?attr/materialButtonOutlinedStyle"
|
||||||
style="?attr/materialButtonOutlinedStyle" />
|
android:text="@string/freedreno_clear_all" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/button_save"
|
android:id="@+id/button_save"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="@string/save" />
|
android:text="@string/save" />
|
||||||
|
|
||||||
|
|
@ -161,6 +155,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="24dp"
|
android:layout_marginTop="24dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
app:cardElevation="0dp"
|
app:cardElevation="0dp"
|
||||||
app:strokeWidth="1dp"
|
app:strokeWidth="1dp"
|
||||||
app:strokeColor="?attr/colorOutline">
|
app:strokeColor="?attr/colorOutline">
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,12 @@
|
||||||
style="?attr/materialIconButtonStyle"
|
style="?attr/materialIconButtonStyle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:backgroundTint="@android:color/transparent"
|
||||||
app:icon="@drawable/ic_back"
|
app:icon="@drawable/ic_back"
|
||||||
app:iconSize="24dp"
|
app:iconSize="24dp"
|
||||||
app:iconTint="?attr/colorOnSurface"
|
app:iconTint="?attr/colorOnSurface"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
@ -44,9 +47,12 @@
|
||||||
style="?attr/materialIconButtonStyle"
|
style="?attr/materialIconButtonStyle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:backgroundTint="@android:color/transparent"
|
||||||
app:icon="@drawable/ic_shortcut"
|
app:icon="@drawable/ic_shortcut"
|
||||||
app:iconSize="24dp"
|
app:iconSize="24dp"
|
||||||
app:iconTint="?attr/colorOnSurface"
|
app:iconTint="?attr/colorOnSurface"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="42dp"
|
android:layout_width="42dp"
|
||||||
android:layout_height="42dp"
|
android:layout_height="42dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="21dp"
|
app:cardCornerRadius="21dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -61,7 +66,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="42dp"
|
android:layout_width="42dp"
|
||||||
android:layout_height="42dp"
|
android:layout_height="42dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="21dp"
|
app:cardCornerRadius="21dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -85,7 +95,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="42dp"
|
android:layout_width="42dp"
|
||||||
android:layout_height="42dp"
|
android:layout_height="42dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="21dp"
|
app:cardCornerRadius="21dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
@ -117,7 +132,12 @@
|
||||||
style="@style/EdenCard"
|
style="@style/EdenCard"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="48dp"
|
android:layout_height="48dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
app:cardCornerRadius="24dp"
|
app:cardCornerRadius="24dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:padding="4dp"
|
android:padding="4dp"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,64 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/scroll_view_settings"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:scrollbars="vertical"
|
android:background="?attr/colorSurface">
|
||||||
android:fadeScrollbars="false"
|
|
||||||
android:clipToPadding="false"
|
|
||||||
android:background="?attr/colorSurface"
|
|
||||||
android:defaultFocusHighlightEnabled="false">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/linear_layout_settings"
|
android:id="@+id/appbar_home_settings"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:fitsSystemWindows="true"
|
||||||
android:paddingHorizontal="16dp">
|
android:touchscreenBlocksFocus="false"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<ImageView
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/logo_image"
|
android:id="@+id/toolbar_home_settings"
|
||||||
android:layout_width="120dp"
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_height="120dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_marginTop="48dp"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:layout_marginBottom="24dp"
|
android:touchscreenBlocksFocus="false"
|
||||||
android:layout_gravity="center_horizontal"
|
app:navigationIcon="@drawable/ic_back"
|
||||||
android:src="@drawable/ic_yuzu" />
|
app:title="@string/preferences_settings" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
android:id="@+id/home_settings_list"
|
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
|
android:id="@+id/scroll_view_settings"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:background="@android:color/transparent"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:defaultFocusHighlightEnabled="false"
|
||||||
|
android:fadeScrollbars="false"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/appbar_home_settings">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/linear_layout_settings"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:clipToPadding="false"
|
android:orientation="vertical"
|
||||||
android:nestedScrollingEnabled="false" />
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingTop="16dp">
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/home_settings_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:nestedScrollingEnabled="false" />
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_installables"
|
android:id="@+id/appbar_installables"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
|
|
@ -15,6 +16,7 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_installables"
|
android:id="@+id/toolbar_installables"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false"
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,14 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar"
|
android:id="@+id/appbar"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true">
|
android:fitsSystemWindows="true">
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_profiles"
|
android:id="@+id/toolbar_profiles"
|
||||||
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
app:title="@string/profile_manager"
|
app:title="@string/profile_manager"
|
||||||
|
|
|
||||||
|
|
@ -8,30 +8,19 @@
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
android:id="@+id/appbar_settings"
|
android:id="@+id/appbar_settings"
|
||||||
|
style="@style/Widget.Eden.TransparentTopAppBarLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
android:touchscreenBlocksFocus="false"
|
android:touchscreenBlocksFocus="false">
|
||||||
app:elevation="0dp">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar_settings_layout"
|
android:id="@+id/toolbar_settings"
|
||||||
style="?attr/collapsingToolbarLayoutMediumStyle"
|
style="@style/Widget.Eden.TransparentTopToolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/collapsingToolbarLayoutMediumSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
android:touchscreenBlocksFocus="false"
|
||||||
app:contentScrim="?attr/colorSurface"
|
app:navigationIcon="@drawable/ic_back" />
|
||||||
app:scrimVisibleHeightTrigger="100dp">
|
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
|
||||||
android:id="@+id/toolbar_settings"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:touchscreenBlocksFocus="false"
|
|
||||||
app:layout_collapseMode="pin"
|
|
||||||
app:navigationIcon="@drawable/ic_back" />
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<com.google.android.material.button.MaterialButton xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="12dp" />
|
||||||
|
|
@ -11,8 +11,11 @@
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="16dp"
|
android:layout_marginEnd="16dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
app:cardCornerRadius="12dp"
|
app:cardCornerRadius="12dp"
|
||||||
app:cardElevation="2dp"
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:foreground="?attr/selectableItemBackground"
|
android:foreground="?attr/selectableItemBackground"
|
||||||
|
|
@ -78,8 +81,11 @@
|
||||||
android:layout_width="48dp"
|
android:layout_width="48dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_marginEnd="8dp"
|
android:layout_marginEnd="8dp"
|
||||||
|
app:cardBackgroundColor="@android:color/transparent"
|
||||||
app:cardCornerRadius="10dp"
|
app:cardCornerRadius="10dp"
|
||||||
app:cardElevation="2dp"
|
app:cardElevation="0dp"
|
||||||
|
app:strokeColor="?attr/colorOutline"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:foreground="?attr/selectableItemBackgroundBorderless"
|
android:foreground="?attr/selectableItemBackgroundBorderless"
|
||||||
|
|
@ -100,7 +106,7 @@
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:src="@drawable/ic_delete"
|
android:src="@drawable/ic_delete"
|
||||||
app:tint="@color/eden_border_gradient_end"
|
app:tint="?attr/colorPrimary"
|
||||||
android:contentDescription="@string/delete" />
|
android:contentDescription="@string/delete" />
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,10 @@
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_settingsActivity"
|
android:id="@+id/action_global_settingsActivity"
|
||||||
app:destination="@id/settingsActivity" />
|
app:destination="@id/settingsActivity"
|
||||||
|
app:enterAnim="@anim/nav_default_enter_anim"
|
||||||
|
app:exitAnim="@anim/nav_default_exit_anim"
|
||||||
|
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||||
|
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
|
||||||
|
|
||||||
</navigation>
|
</navigation>
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,11 @@
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_settingsActivity"
|
android:id="@+id/action_global_settingsActivity"
|
||||||
app:destination="@id/settingsActivity" />
|
app:destination="@id/settingsActivity"
|
||||||
|
app:enterAnim="@anim/nav_default_enter_anim"
|
||||||
|
app:exitAnim="@anim/nav_default_exit_anim"
|
||||||
|
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||||
|
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/installableFragment"
|
android:id="@+id/installableFragment"
|
||||||
android:name="org.yuzu.yuzu_emu.fragments.InstallableFragment"
|
android:name="org.yuzu.yuzu_emu.fragments.InstallableFragment"
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,22 @@
|
||||||
<item name="android:textColor">@color/eden_primary</item>
|
<item name="android:textColor">@color/eden_primary</item>
|
||||||
<item name="rippleColor">@color/eden_glow_pink</item>
|
<item name="rippleColor">@color/eden_glow_pink</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="Widget.Eden.TransparentTopAppBarLayout" parent="">
|
||||||
|
<item name="android:background">@android:color/transparent</item>
|
||||||
|
<item name="android:elevation">0dp</item>
|
||||||
|
<item name="android:stateListAnimator">@null</item>
|
||||||
|
<item name="elevation">0dp</item>
|
||||||
|
<item name="liftOnScroll">false</item>
|
||||||
|
<item name="statusBarForeground">@android:color/transparent</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="Widget.Eden.TransparentTopToolbar" parent="">
|
||||||
|
<item name="android:background">@android:color/transparent</item>
|
||||||
|
<item name="android:elevation">0dp</item>
|
||||||
|
<item name="backgroundTint">@android:color/transparent</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="EdenPopupMenu" parent="Widget.Material3.PopupMenu">
|
<style name="EdenPopupMenu" parent="Widget.Material3.PopupMenu">
|
||||||
<item name="android:popupBackground">@drawable/popup_menu_background</item>
|
<item name="android:popupBackground">@drawable/popup_menu_background</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,12 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "common/string_util.h"
|
#include "common/string_util.h"
|
||||||
#else
|
#else
|
||||||
#if defined(__Bitrig__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#if defined(__FreeBSD__)
|
||||||
#include <sys/cpuset.h>
|
#include <sys/cpuset.h>
|
||||||
#include <sys/_cpuset.h>
|
#include <sys/_cpuset.h>
|
||||||
#include <pthread_np.h>
|
#include <pthread_np.h>
|
||||||
|
#elif defined(__DragonFly__) || defined(__OpenBSD__) || defined(__Bitrig__)
|
||||||
|
#include <pthread_np.h>
|
||||||
#endif
|
#endif
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,8 @@ if (NOT GLSLANG_ERROR STREQUAL "")
|
||||||
set(QUIET_FLAG "")
|
set(QUIET_FLAG "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Shader files must depend on their directory otherwise *BSD make will spontaneously combust
|
||||||
|
file(MAKE_DIRECTORY "${SHADER_DIR}")
|
||||||
foreach(SOURCE_FILE IN ITEMS ${SHADER_FILES})
|
foreach(SOURCE_FILE IN ITEMS ${SHADER_FILES})
|
||||||
get_filename_component(FILENAME ${SOURCE_FILE} NAME)
|
get_filename_component(FILENAME ${SOURCE_FILE} NAME)
|
||||||
string(REPLACE "." "_" SHADER_NAME ${FILENAME})
|
string(REPLACE "." "_" SHADER_NAME ${FILENAME})
|
||||||
|
|
@ -133,6 +135,7 @@ foreach(SOURCE_FILE IN ITEMS ${SHADER_FILES})
|
||||||
${SOURCE_FILE}
|
${SOURCE_FILE}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${INPUT_FILE}
|
${INPUT_FILE}
|
||||||
|
${SHADER_DIR}
|
||||||
# HEADER_GENERATOR should be included here but msbuild seems to assume it's always modified
|
# HEADER_GENERATOR should be included here but msbuild seems to assume it's always modified
|
||||||
)
|
)
|
||||||
set(SHADER_HEADERS ${SHADER_HEADERS} ${SOURCE_HEADER_FILE})
|
set(SHADER_HEADERS ${SHADER_HEADERS} ${SOURCE_HEADER_FILE})
|
||||||
|
|
@ -148,6 +151,8 @@ foreach(SOURCE_FILE IN ITEMS ${SHADER_FILES})
|
||||||
${GLSLANGVALIDATOR} -V ${QUIET_FLAG} -I"${FIDELITYFX_INCLUDE_DIR}" ${GLSL_FLAGS} --variable-name ${SPIRV_VARIABLE_NAME} -o ${SPIRV_HEADER_FILE} ${SOURCE_FILE} --target-env ${SPIR_V_VERSION}
|
${GLSLANGVALIDATOR} -V ${QUIET_FLAG} -I"${FIDELITYFX_INCLUDE_DIR}" ${GLSL_FLAGS} --variable-name ${SPIRV_VARIABLE_NAME} -o ${SPIRV_HEADER_FILE} ${SOURCE_FILE} --target-env ${SPIR_V_VERSION}
|
||||||
MAIN_DEPENDENCY
|
MAIN_DEPENDENCY
|
||||||
${SOURCE_FILE}
|
${SOURCE_FILE}
|
||||||
|
DEPENDS
|
||||||
|
${SHADER_DIR}
|
||||||
)
|
)
|
||||||
set(SHADER_HEADERS ${SHADER_HEADERS} ${SPIRV_HEADER_FILE})
|
set(SHADER_HEADERS ${SHADER_HEADERS} ${SPIRV_HEADER_FILE})
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -167,6 +172,7 @@ foreach(FILEPATH IN ITEMS ${FIDELITYFX_FILES})
|
||||||
${SOURCE_FILE}
|
${SOURCE_FILE}
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${INPUT_FILE}
|
${INPUT_FILE}
|
||||||
|
${SHADER_DIR}
|
||||||
# HEADER_GENERATOR should be included here but msbuild seems to assume it's always modified
|
# HEADER_GENERATOR should be included here but msbuild seems to assume it's always modified
|
||||||
)
|
)
|
||||||
set(SHADER_HEADERS ${SHADER_HEADERS} ${SOURCE_HEADER_FILE})
|
set(SHADER_HEADERS ${SHADER_HEADERS} ${SOURCE_HEADER_FILE})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue