Compare commits
9 Commits
android-23
...
android-23
Author | SHA1 | Date | |
---|---|---|---|
25d0e6cadd | |||
0488ffcff9 | |||
5b3a18f000 | |||
d359780cb0 | |||
c8a6bbd39d | |||
3ed1d86bd4 | |||
36df098c82 | |||
6e147b4ea8 | |||
0fb00a0393 |
@ -6,7 +6,8 @@
|
|||||||
| [12920](https://github.com/yuzu-emu/yuzu//pull/12920) | [`2600ac65c`](https://github.com/yuzu-emu/yuzu//pull/12920/files) | android: Move JNI setup and helpers to common | [t895](https://github.com/t895/) | Yes |
|
| [12920](https://github.com/yuzu-emu/yuzu//pull/12920) | [`2600ac65c`](https://github.com/yuzu-emu/yuzu//pull/12920/files) | android: Move JNI setup and helpers to common | [t895](https://github.com/t895/) | Yes |
|
||||||
| [12951](https://github.com/yuzu-emu/yuzu//pull/12951) | [`fee263c59`](https://github.com/yuzu-emu/yuzu//pull/12951/files) | ipc: additional fixes | [liamwhite](https://github.com/liamwhite/) | Yes |
|
| [12951](https://github.com/yuzu-emu/yuzu//pull/12951) | [`fee263c59`](https://github.com/yuzu-emu/yuzu//pull/12951/files) | ipc: additional fixes | [liamwhite](https://github.com/liamwhite/) | Yes |
|
||||||
| [12955](https://github.com/yuzu-emu/yuzu//pull/12955) | [`8d2ad3d8f`](https://github.com/yuzu-emu/yuzu//pull/12955/files) | dmnt: cheat: Avoid invalidating cache on 32bit | [german77](https://github.com/german77/) | Yes |
|
| [12955](https://github.com/yuzu-emu/yuzu//pull/12955) | [`8d2ad3d8f`](https://github.com/yuzu-emu/yuzu//pull/12955/files) | dmnt: cheat: Avoid invalidating cache on 32bit | [german77](https://github.com/german77/) | Yes |
|
||||||
| [12964](https://github.com/yuzu-emu/yuzu//pull/12964) | [`d93459db6`](https://github.com/yuzu-emu/yuzu//pull/12964/files) | android: Remove foreground service | [t895](https://github.com/t895/) | Yes |
|
| [12964](https://github.com/yuzu-emu/yuzu//pull/12964) | [`af8736567`](https://github.com/yuzu-emu/yuzu//pull/12964/files) | android: Remove foreground service | [t895](https://github.com/t895/) | Yes |
|
||||||
|
| [12968](https://github.com/yuzu-emu/yuzu//pull/12968) | [`87660add8`](https://github.com/yuzu-emu/yuzu//pull/12968/files) | android: Thermal throttling indicator | [t895](https://github.com/t895/) | Yes |
|
||||||
|
|
||||||
|
|
||||||
End of merge log. You can find the original README.md below the break.
|
End of merge log. You can find the original README.md below the break.
|
||||||
|
@ -25,7 +25,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
|||||||
HAPTIC_FEEDBACK("haptic_feedback"),
|
HAPTIC_FEEDBACK("haptic_feedback"),
|
||||||
SHOW_PERFORMANCE_OVERLAY("show_performance_overlay"),
|
SHOW_PERFORMANCE_OVERLAY("show_performance_overlay"),
|
||||||
SHOW_INPUT_OVERLAY("show_input_overlay"),
|
SHOW_INPUT_OVERLAY("show_input_overlay"),
|
||||||
TOUCHSCREEN("touchscreen");
|
TOUCHSCREEN("touchscreen"),
|
||||||
|
SHOW_THERMAL_OVERLAY("show_thermal_overlay");
|
||||||
|
|
||||||
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
||||||
NativeConfig.getBoolean(key, needsGlobal)
|
NativeConfig.getBoolean(key, needsGlobal)
|
||||||
|
@ -8,7 +8,6 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
import androidx.core.view.updatePadding
|
import androidx.core.view.updatePadding
|
||||||
@ -27,6 +26,7 @@ import org.yuzu.yuzu_emu.R
|
|||||||
import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding
|
import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding
|
||||||
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
||||||
import org.yuzu.yuzu_emu.model.SettingsViewModel
|
import org.yuzu.yuzu_emu.model.SettingsViewModel
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class SettingsFragment : Fragment() {
|
class SettingsFragment : Fragment() {
|
||||||
private lateinit var presenter: SettingsFragmentPresenter
|
private lateinit var presenter: SettingsFragmentPresenter
|
||||||
@ -125,18 +125,10 @@ class SettingsFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpSettingsList = binding.listSettings.layoutParams as MarginLayoutParams
|
binding.listSettings.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpSettingsList.leftMargin = leftInsets
|
binding.listSettings.updatePadding(bottom = barInsets.bottom)
|
||||||
mlpSettingsList.rightMargin = rightInsets
|
|
||||||
binding.listSettings.layoutParams = mlpSettingsList
|
|
||||||
binding.listSettings.updatePadding(
|
|
||||||
bottom = barInsets.bottom
|
|
||||||
)
|
|
||||||
|
|
||||||
val mlpAppBar = binding.appbarSettings.layoutParams as MarginLayoutParams
|
binding.appbarSettings.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.leftMargin = leftInsets
|
|
||||||
mlpAppBar.rightMargin = rightInsets
|
|
||||||
binding.appbarSettings.layoutParams = mlpAppBar
|
|
||||||
windowInsets
|
windowInsets
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
@ -26,6 +25,7 @@ import org.yuzu.yuzu_emu.BuildConfig
|
|||||||
import org.yuzu.yuzu_emu.R
|
import org.yuzu.yuzu_emu.R
|
||||||
import org.yuzu.yuzu_emu.databinding.FragmentAboutBinding
|
import org.yuzu.yuzu_emu.databinding.FragmentAboutBinding
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class AboutFragment : Fragment() {
|
class AboutFragment : Fragment() {
|
||||||
private var _binding: FragmentAboutBinding? = null
|
private var _binding: FragmentAboutBinding? = null
|
||||||
@ -114,15 +114,8 @@ class AboutFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpToolbar = binding.toolbarAbout.layoutParams as MarginLayoutParams
|
binding.toolbarAbout.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.leftMargin = leftInsets
|
binding.scrollAbout.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.rightMargin = rightInsets
|
|
||||||
binding.toolbarAbout.layoutParams = mlpToolbar
|
|
||||||
|
|
||||||
val mlpScrollAbout = binding.scrollAbout.layoutParams as MarginLayoutParams
|
|
||||||
mlpScrollAbout.leftMargin = leftInsets
|
|
||||||
mlpScrollAbout.rightMargin = rightInsets
|
|
||||||
binding.scrollAbout.layoutParams = mlpScrollAbout
|
|
||||||
|
|
||||||
binding.contentAbout.updatePadding(bottom = barInsets.bottom)
|
binding.contentAbout.updatePadding(bottom = barInsets.bottom)
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ import org.yuzu.yuzu_emu.model.AddonViewModel
|
|||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.utils.AddonUtil
|
import org.yuzu.yuzu_emu.utils.AddonUtil
|
||||||
import org.yuzu.yuzu_emu.utils.FileUtil.copyFilesTo
|
import org.yuzu.yuzu_emu.utils.FileUtil.copyFilesTo
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class AddonsFragment : Fragment() {
|
class AddonsFragment : Fragment() {
|
||||||
@ -202,27 +203,19 @@ class AddonsFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpToolbar = binding.toolbarAddons.layoutParams as ViewGroup.MarginLayoutParams
|
binding.toolbarAddons.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.leftMargin = leftInsets
|
binding.listAddons.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.rightMargin = rightInsets
|
|
||||||
binding.toolbarAddons.layoutParams = mlpToolbar
|
|
||||||
|
|
||||||
val mlpAddonsList = binding.listAddons.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpAddonsList.leftMargin = leftInsets
|
|
||||||
mlpAddonsList.rightMargin = rightInsets
|
|
||||||
binding.listAddons.layoutParams = mlpAddonsList
|
|
||||||
binding.listAddons.updatePadding(
|
binding.listAddons.updatePadding(
|
||||||
bottom = barInsets.bottom +
|
bottom = barInsets.bottom +
|
||||||
resources.getDimensionPixelSize(R.dimen.spacing_bottom_list_fab)
|
resources.getDimensionPixelSize(R.dimen.spacing_bottom_list_fab)
|
||||||
)
|
)
|
||||||
|
|
||||||
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
||||||
val mlpFab =
|
binding.buttonInstall.updateMargins(
|
||||||
binding.buttonInstall.layoutParams as ViewGroup.MarginLayoutParams
|
left = leftInsets + fabSpacing,
|
||||||
mlpFab.leftMargin = leftInsets + fabSpacing
|
right = rightInsets + fabSpacing,
|
||||||
mlpFab.rightMargin = rightInsets + fabSpacing
|
bottom = barInsets.bottom + fabSpacing
|
||||||
mlpFab.bottomMargin = barInsets.bottom + fabSpacing
|
)
|
||||||
binding.buttonInstall.layoutParams = mlpFab
|
|
||||||
|
|
||||||
windowInsets
|
windowInsets
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentAppletLauncherBinding
|
|||||||
import org.yuzu.yuzu_emu.model.Applet
|
import org.yuzu.yuzu_emu.model.Applet
|
||||||
import org.yuzu.yuzu_emu.model.AppletInfo
|
import org.yuzu.yuzu_emu.model.AppletInfo
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class AppletLauncherFragment : Fragment() {
|
class AppletLauncherFragment : Fragment() {
|
||||||
private var _binding: FragmentAppletLauncherBinding? = null
|
private var _binding: FragmentAppletLauncherBinding? = null
|
||||||
@ -95,16 +96,8 @@ class AppletLauncherFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpAppBar = binding.toolbarApplets.layoutParams as ViewGroup.MarginLayoutParams
|
binding.toolbarApplets.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.leftMargin = leftInsets
|
binding.listApplets.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.rightMargin = rightInsets
|
|
||||||
binding.toolbarApplets.layoutParams = mlpAppBar
|
|
||||||
|
|
||||||
val mlpListApplets =
|
|
||||||
binding.listApplets.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpListApplets.leftMargin = leftInsets
|
|
||||||
mlpListApplets.rightMargin = rightInsets
|
|
||||||
binding.listApplets.layoutParams = mlpListApplets
|
|
||||||
|
|
||||||
binding.listApplets.updatePadding(bottom = barInsets.bottom)
|
binding.listApplets.updatePadding(bottom = barInsets.bottom)
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ import org.yuzu.yuzu_emu.model.HomeViewModel
|
|||||||
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.GpuDriverHelper
|
||||||
import org.yuzu.yuzu_emu.utils.NativeConfig
|
import org.yuzu.yuzu_emu.utils.NativeConfig
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
@ -141,23 +142,15 @@ class DriverManagerFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpAppBar = binding.toolbarDrivers.layoutParams as ViewGroup.MarginLayoutParams
|
binding.toolbarDrivers.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.leftMargin = leftInsets
|
binding.listDrivers.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.rightMargin = rightInsets
|
|
||||||
binding.toolbarDrivers.layoutParams = mlpAppBar
|
|
||||||
|
|
||||||
val mlplistDrivers = binding.listDrivers.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlplistDrivers.leftMargin = leftInsets
|
|
||||||
mlplistDrivers.rightMargin = rightInsets
|
|
||||||
binding.listDrivers.layoutParams = mlplistDrivers
|
|
||||||
|
|
||||||
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
||||||
val mlpFab =
|
binding.buttonInstall.updateMargins(
|
||||||
binding.buttonInstall.layoutParams as ViewGroup.MarginLayoutParams
|
left = leftInsets + fabSpacing,
|
||||||
mlpFab.leftMargin = leftInsets + fabSpacing
|
right = rightInsets + fabSpacing,
|
||||||
mlpFab.rightMargin = rightInsets + fabSpacing
|
bottom = barInsets.bottom + fabSpacing
|
||||||
mlpFab.bottomMargin = barInsets.bottom + fabSpacing
|
)
|
||||||
binding.buttonInstall.layoutParams = mlpFab
|
|
||||||
|
|
||||||
binding.listDrivers.updatePadding(
|
binding.listDrivers.updatePadding(
|
||||||
bottom = barInsets.bottom +
|
bottom = barInsets.bottom +
|
||||||
|
@ -19,6 +19,7 @@ import com.google.android.material.transition.MaterialSharedAxis
|
|||||||
import org.yuzu.yuzu_emu.R
|
import org.yuzu.yuzu_emu.R
|
||||||
import org.yuzu.yuzu_emu.databinding.FragmentEarlyAccessBinding
|
import org.yuzu.yuzu_emu.databinding.FragmentEarlyAccessBinding
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class EarlyAccessFragment : Fragment() {
|
class EarlyAccessFragment : Fragment() {
|
||||||
private var _binding: FragmentEarlyAccessBinding? = null
|
private var _binding: FragmentEarlyAccessBinding? = null
|
||||||
@ -73,10 +74,7 @@ class EarlyAccessFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpAppBar = binding.appbarEa.layoutParams as ViewGroup.MarginLayoutParams
|
binding.appbarEa.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.leftMargin = leftInsets
|
|
||||||
mlpAppBar.rightMargin = rightInsets
|
|
||||||
binding.appbarEa.layoutParams = mlpAppBar
|
|
||||||
|
|
||||||
binding.scrollEa.updatePadding(
|
binding.scrollEa.updatePadding(
|
||||||
left = leftInsets,
|
left = leftInsets,
|
||||||
|
@ -13,6 +13,7 @@ import android.net.Uri
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
|
import android.os.PowerManager
|
||||||
import android.os.SystemClock
|
import android.os.SystemClock
|
||||||
import android.view.*
|
import android.view.*
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
@ -23,6 +24,7 @@ import androidx.core.content.res.ResourcesCompat
|
|||||||
import androidx.core.graphics.Insets
|
import androidx.core.graphics.Insets
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
|
import androidx.core.view.updatePadding
|
||||||
import androidx.drawerlayout.widget.DrawerLayout
|
import androidx.drawerlayout.widget.DrawerLayout
|
||||||
import androidx.drawerlayout.widget.DrawerLayout.DrawerListener
|
import androidx.drawerlayout.widget.DrawerLayout.DrawerListener
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
@ -38,7 +40,6 @@ import androidx.window.layout.WindowLayoutInfo
|
|||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.google.android.material.slider.Slider
|
import com.google.android.material.slider.Slider
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.collect
|
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.yuzu.yuzu_emu.HomeNavigationDirections
|
import org.yuzu.yuzu_emu.HomeNavigationDirections
|
||||||
@ -64,6 +65,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
private lateinit var emulationState: EmulationState
|
private lateinit var emulationState: EmulationState
|
||||||
private var emulationActivity: EmulationActivity? = null
|
private var emulationActivity: EmulationActivity? = null
|
||||||
private var perfStatsUpdater: (() -> Unit)? = null
|
private var perfStatsUpdater: (() -> Unit)? = null
|
||||||
|
private var thermalStatsUpdater: (() -> Unit)? = null
|
||||||
|
|
||||||
private var _binding: FragmentEmulationBinding? = null
|
private var _binding: FragmentEmulationBinding? = null
|
||||||
private val binding get() = _binding!!
|
private val binding get() = _binding!!
|
||||||
@ -77,6 +79,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
|
|
||||||
private var isInFoldableLayout = false
|
private var isInFoldableLayout = false
|
||||||
|
|
||||||
|
private lateinit var powerManager: PowerManager
|
||||||
|
|
||||||
override fun onAttach(context: Context) {
|
override fun onAttach(context: Context) {
|
||||||
super.onAttach(context)
|
super.onAttach(context)
|
||||||
if (context is EmulationActivity) {
|
if (context is EmulationActivity) {
|
||||||
@ -102,6 +106,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
updateOrientation()
|
updateOrientation()
|
||||||
|
|
||||||
|
powerManager = requireContext().getSystemService(Context.POWER_SERVICE) as PowerManager
|
||||||
|
|
||||||
val intentUri: Uri? = requireActivity().intent.data
|
val intentUri: Uri? = requireActivity().intent.data
|
||||||
var intentGame: Game? = null
|
var intentGame: Game? = null
|
||||||
if (intentUri != null) {
|
if (intentUri != null) {
|
||||||
@ -394,8 +400,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
|
|
||||||
emulationState.updateSurface()
|
emulationState.updateSurface()
|
||||||
|
|
||||||
// Setup overlay
|
// Setup overlays
|
||||||
updateShowFpsOverlay()
|
updateShowFpsOverlay()
|
||||||
|
updateThermalOverlay()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -553,6 +560,38 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun updateThermalOverlay() {
|
||||||
|
if (BooleanSetting.SHOW_THERMAL_OVERLAY.getBoolean()) {
|
||||||
|
thermalStatsUpdater = {
|
||||||
|
if (emulationViewModel.emulationStarted.value &&
|
||||||
|
!emulationViewModel.isEmulationStopping.value
|
||||||
|
) {
|
||||||
|
val thermalStatus = when (powerManager.currentThermalStatus) {
|
||||||
|
PowerManager.THERMAL_STATUS_LIGHT -> "😥"
|
||||||
|
PowerManager.THERMAL_STATUS_MODERATE -> "🥵"
|
||||||
|
PowerManager.THERMAL_STATUS_SEVERE -> "🔥"
|
||||||
|
PowerManager.THERMAL_STATUS_CRITICAL,
|
||||||
|
PowerManager.THERMAL_STATUS_EMERGENCY,
|
||||||
|
PowerManager.THERMAL_STATUS_SHUTDOWN -> "☢️"
|
||||||
|
|
||||||
|
else -> "🙂"
|
||||||
|
}
|
||||||
|
if (_binding != null) {
|
||||||
|
binding.showThermalsText.text = thermalStatus
|
||||||
|
}
|
||||||
|
thermalStatsUpdateHandler.postDelayed(thermalStatsUpdater!!, 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
thermalStatsUpdateHandler.post(thermalStatsUpdater!!)
|
||||||
|
binding.showThermalsText.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
if (thermalStatsUpdater != null) {
|
||||||
|
thermalStatsUpdateHandler.removeCallbacks(thermalStatsUpdater!!)
|
||||||
|
}
|
||||||
|
binding.showThermalsText.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("SourceLockedOrientationActivity")
|
@SuppressLint("SourceLockedOrientationActivity")
|
||||||
private fun updateOrientation() {
|
private fun updateOrientation() {
|
||||||
emulationActivity?.let {
|
emulationActivity?.let {
|
||||||
@ -641,6 +680,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
popup.menu.apply {
|
popup.menu.apply {
|
||||||
findItem(R.id.menu_toggle_fps).isChecked =
|
findItem(R.id.menu_toggle_fps).isChecked =
|
||||||
BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean()
|
BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean()
|
||||||
|
findItem(R.id.thermal_indicator).isChecked =
|
||||||
|
BooleanSetting.SHOW_THERMAL_OVERLAY.getBoolean()
|
||||||
findItem(R.id.menu_rel_stick_center).isChecked =
|
findItem(R.id.menu_rel_stick_center).isChecked =
|
||||||
BooleanSetting.JOYSTICK_REL_CENTER.getBoolean()
|
BooleanSetting.JOYSTICK_REL_CENTER.getBoolean()
|
||||||
findItem(R.id.menu_dpad_slide).isChecked = BooleanSetting.DPAD_SLIDE.getBoolean()
|
findItem(R.id.menu_dpad_slide).isChecked = BooleanSetting.DPAD_SLIDE.getBoolean()
|
||||||
@ -660,6 +701,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
R.id.thermal_indicator -> {
|
||||||
|
it.isChecked = !it.isChecked
|
||||||
|
BooleanSetting.SHOW_THERMAL_OVERLAY.setBoolean(it.isChecked)
|
||||||
|
updateThermalOverlay()
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
R.id.menu_edit_overlay -> {
|
R.id.menu_edit_overlay -> {
|
||||||
binding.drawerLayout.close()
|
binding.drawerLayout.close()
|
||||||
binding.surfaceInputOverlay.requestFocus()
|
binding.surfaceInputOverlay.requestFocus()
|
||||||
@ -850,7 +898,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
right = cutInsets.right
|
right = cutInsets.right
|
||||||
}
|
}
|
||||||
|
|
||||||
v.setPadding(left, cutInsets.top, right, 0)
|
v.updatePadding(left = left, top = cutInsets.top, right = right)
|
||||||
windowInsets
|
windowInsets
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1003,5 +1051,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val perfStatsUpdateHandler = Handler(Looper.myLooper()!!)
|
private val perfStatsUpdateHandler = Handler(Looper.myLooper()!!)
|
||||||
|
private val thermalStatsUpdateHandler = Handler(Looper.myLooper()!!)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentFoldersBinding
|
|||||||
import org.yuzu.yuzu_emu.model.GamesViewModel
|
import org.yuzu.yuzu_emu.model.GamesViewModel
|
||||||
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.ViewUtils.updateMargins
|
||||||
|
|
||||||
class GameFoldersFragment : Fragment() {
|
class GameFoldersFragment : Fragment() {
|
||||||
private var _binding: FragmentFoldersBinding? = null
|
private var _binding: FragmentFoldersBinding? = null
|
||||||
@ -100,23 +101,16 @@ class GameFoldersFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpToolbar = binding.toolbarFolders.layoutParams as ViewGroup.MarginLayoutParams
|
binding.toolbarFolders.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.leftMargin = leftInsets
|
|
||||||
mlpToolbar.rightMargin = rightInsets
|
|
||||||
binding.toolbarFolders.layoutParams = mlpToolbar
|
|
||||||
|
|
||||||
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
||||||
val mlpFab =
|
binding.buttonAdd.updateMargins(
|
||||||
binding.buttonAdd.layoutParams as ViewGroup.MarginLayoutParams
|
left = leftInsets + fabSpacing,
|
||||||
mlpFab.leftMargin = leftInsets + fabSpacing
|
right = rightInsets + fabSpacing,
|
||||||
mlpFab.rightMargin = rightInsets + fabSpacing
|
bottom = barInsets.bottom + fabSpacing
|
||||||
mlpFab.bottomMargin = barInsets.bottom + fabSpacing
|
)
|
||||||
binding.buttonAdd.layoutParams = mlpFab
|
|
||||||
|
|
||||||
val mlpListFolders = binding.listFolders.layoutParams as ViewGroup.MarginLayoutParams
|
binding.listFolders.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpListFolders.leftMargin = leftInsets
|
|
||||||
mlpListFolders.rightMargin = rightInsets
|
|
||||||
binding.listFolders.layoutParams = mlpListFolders
|
|
||||||
|
|
||||||
binding.listFolders.updatePadding(
|
binding.listFolders.updatePadding(
|
||||||
bottom = barInsets.bottom +
|
bottom = barInsets.bottom +
|
||||||
|
@ -27,6 +27,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentGameInfoBinding
|
|||||||
import org.yuzu.yuzu_emu.model.GameVerificationResult
|
import org.yuzu.yuzu_emu.model.GameVerificationResult
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.utils.GameMetadata
|
import org.yuzu.yuzu_emu.utils.GameMetadata
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class GameInfoFragment : Fragment() {
|
class GameInfoFragment : Fragment() {
|
||||||
private var _binding: FragmentGameInfoBinding? = null
|
private var _binding: FragmentGameInfoBinding? = null
|
||||||
@ -122,11 +123,13 @@ class GameInfoFragment : Fragment() {
|
|||||||
titleId = R.string.verify_success,
|
titleId = R.string.verify_success,
|
||||||
descriptionId = R.string.operation_completed_successfully
|
descriptionId = R.string.operation_completed_successfully
|
||||||
)
|
)
|
||||||
|
|
||||||
GameVerificationResult.Failed ->
|
GameVerificationResult.Failed ->
|
||||||
MessageDialogFragment.newInstance(
|
MessageDialogFragment.newInstance(
|
||||||
titleId = R.string.verify_failure,
|
titleId = R.string.verify_failure,
|
||||||
descriptionId = R.string.verify_failure_description
|
descriptionId = R.string.verify_failure_description
|
||||||
)
|
)
|
||||||
|
|
||||||
GameVerificationResult.NotImplemented ->
|
GameVerificationResult.NotImplemented ->
|
||||||
MessageDialogFragment.newInstance(
|
MessageDialogFragment.newInstance(
|
||||||
titleId = R.string.verify_no_result,
|
titleId = R.string.verify_no_result,
|
||||||
@ -165,15 +168,8 @@ class GameInfoFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpToolbar = binding.toolbarInfo.layoutParams as ViewGroup.MarginLayoutParams
|
binding.toolbarInfo.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.leftMargin = leftInsets
|
binding.scrollInfo.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpToolbar.rightMargin = rightInsets
|
|
||||||
binding.toolbarInfo.layoutParams = mlpToolbar
|
|
||||||
|
|
||||||
val mlpScrollAbout = binding.scrollInfo.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpScrollAbout.leftMargin = leftInsets
|
|
||||||
mlpScrollAbout.rightMargin = rightInsets
|
|
||||||
binding.scrollInfo.layoutParams = mlpScrollAbout
|
|
||||||
|
|
||||||
binding.contentInfo.updatePadding(bottom = barInsets.bottom)
|
binding.contentInfo.updatePadding(bottom = barInsets.bottom)
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@ import org.yuzu.yuzu_emu.utils.FileUtil
|
|||||||
import org.yuzu.yuzu_emu.utils.GameIconUtils
|
import org.yuzu.yuzu_emu.utils.GameIconUtils
|
||||||
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
||||||
import org.yuzu.yuzu_emu.utils.MemoryUtil
|
import org.yuzu.yuzu_emu.utils.MemoryUtil
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
import java.io.BufferedOutputStream
|
import java.io.BufferedOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@ -320,46 +321,25 @@ class GamePropertiesFragment : Fragment() {
|
|||||||
|
|
||||||
val smallLayout = resources.getBoolean(R.bool.small_layout)
|
val smallLayout = resources.getBoolean(R.bool.small_layout)
|
||||||
if (smallLayout) {
|
if (smallLayout) {
|
||||||
val mlpListAll =
|
binding.listAll.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
binding.listAll.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpListAll.leftMargin = leftInsets
|
|
||||||
mlpListAll.rightMargin = rightInsets
|
|
||||||
binding.listAll.layoutParams = mlpListAll
|
|
||||||
} else {
|
} else {
|
||||||
if (ViewCompat.getLayoutDirection(binding.root) ==
|
if (ViewCompat.getLayoutDirection(binding.root) ==
|
||||||
ViewCompat.LAYOUT_DIRECTION_LTR
|
ViewCompat.LAYOUT_DIRECTION_LTR
|
||||||
) {
|
) {
|
||||||
val mlpListAll =
|
binding.listAll.updateMargins(right = rightInsets)
|
||||||
binding.listAll.layoutParams as ViewGroup.MarginLayoutParams
|
binding.iconLayout!!.updateMargins(top = barInsets.top, left = leftInsets)
|
||||||
mlpListAll.rightMargin = rightInsets
|
|
||||||
binding.listAll.layoutParams = mlpListAll
|
|
||||||
|
|
||||||
val mlpIconLayout =
|
|
||||||
binding.iconLayout!!.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpIconLayout.topMargin = barInsets.top
|
|
||||||
mlpIconLayout.leftMargin = leftInsets
|
|
||||||
binding.iconLayout!!.layoutParams = mlpIconLayout
|
|
||||||
} else {
|
} else {
|
||||||
val mlpListAll =
|
binding.listAll.updateMargins(left = leftInsets)
|
||||||
binding.listAll.layoutParams as ViewGroup.MarginLayoutParams
|
binding.iconLayout!!.updateMargins(top = barInsets.top, right = rightInsets)
|
||||||
mlpListAll.leftMargin = leftInsets
|
|
||||||
binding.listAll.layoutParams = mlpListAll
|
|
||||||
|
|
||||||
val mlpIconLayout =
|
|
||||||
binding.iconLayout!!.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpIconLayout.topMargin = barInsets.top
|
|
||||||
mlpIconLayout.rightMargin = rightInsets
|
|
||||||
binding.iconLayout!!.layoutParams = mlpIconLayout
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab)
|
||||||
val mlpFab =
|
binding.buttonStart.updateMargins(
|
||||||
binding.buttonStart.layoutParams as ViewGroup.MarginLayoutParams
|
left = leftInsets + fabSpacing,
|
||||||
mlpFab.leftMargin = leftInsets + fabSpacing
|
right = rightInsets + fabSpacing,
|
||||||
mlpFab.rightMargin = rightInsets + fabSpacing
|
bottom = barInsets.bottom + fabSpacing
|
||||||
mlpFab.bottomMargin = barInsets.bottom + fabSpacing
|
)
|
||||||
binding.buttonStart.layoutParams = mlpFab
|
|
||||||
|
|
||||||
binding.layoutAll.updatePadding(
|
binding.layoutAll.updatePadding(
|
||||||
top = barInsets.top,
|
top = barInsets.top,
|
||||||
|
@ -12,7 +12,6 @@ import android.provider.DocumentsContract
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
@ -44,6 +43,7 @@ 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.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
|
||||||
@ -408,10 +408,7 @@ class HomeSettingsFragment : Fragment() {
|
|||||||
bottom = barInsets.bottom
|
bottom = barInsets.bottom
|
||||||
)
|
)
|
||||||
|
|
||||||
val mlpScrollSettings = binding.scrollViewSettings.layoutParams as MarginLayoutParams
|
binding.scrollViewSettings.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpScrollSettings.leftMargin = leftInsets
|
|
||||||
mlpScrollSettings.rightMargin = rightInsets
|
|
||||||
binding.scrollViewSettings.layoutParams = mlpScrollSettings
|
|
||||||
|
|
||||||
binding.linearLayoutSettings.updatePadding(bottom = spacingNavigation)
|
binding.linearLayoutSettings.updatePadding(bottom = spacingNavigation)
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ import org.yuzu.yuzu_emu.model.TaskState
|
|||||||
import org.yuzu.yuzu_emu.ui.main.MainActivity
|
import org.yuzu.yuzu_emu.ui.main.MainActivity
|
||||||
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
|
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
|
||||||
import org.yuzu.yuzu_emu.utils.FileUtil
|
import org.yuzu.yuzu_emu.utils.FileUtil
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
import java.io.BufferedOutputStream
|
import java.io.BufferedOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
@ -172,16 +173,8 @@ class InstallableFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpAppBar = binding.toolbarInstallables.layoutParams as ViewGroup.MarginLayoutParams
|
binding.toolbarInstallables.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.leftMargin = leftInsets
|
binding.listInstallables.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.rightMargin = rightInsets
|
|
||||||
binding.toolbarInstallables.layoutParams = mlpAppBar
|
|
||||||
|
|
||||||
val mlpScrollAbout =
|
|
||||||
binding.listInstallables.layoutParams as ViewGroup.MarginLayoutParams
|
|
||||||
mlpScrollAbout.leftMargin = leftInsets
|
|
||||||
mlpScrollAbout.rightMargin = rightInsets
|
|
||||||
binding.listInstallables.layoutParams = mlpScrollAbout
|
|
||||||
|
|
||||||
binding.listInstallables.updatePadding(bottom = barInsets.bottom)
|
binding.listInstallables.updatePadding(bottom = barInsets.bottom)
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
@ -22,6 +21,7 @@ import org.yuzu.yuzu_emu.adapters.LicenseAdapter
|
|||||||
import org.yuzu.yuzu_emu.databinding.FragmentLicensesBinding
|
import org.yuzu.yuzu_emu.databinding.FragmentLicensesBinding
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
import org.yuzu.yuzu_emu.model.License
|
import org.yuzu.yuzu_emu.model.License
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class LicensesFragment : Fragment() {
|
class LicensesFragment : Fragment() {
|
||||||
private var _binding: FragmentLicensesBinding? = null
|
private var _binding: FragmentLicensesBinding? = null
|
||||||
@ -122,15 +122,8 @@ class LicensesFragment : Fragment() {
|
|||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
|
|
||||||
val mlpAppBar = binding.appbarLicenses.layoutParams as MarginLayoutParams
|
binding.appbarLicenses.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.leftMargin = leftInsets
|
binding.listLicenses.updateMargins(left = leftInsets, right = rightInsets)
|
||||||
mlpAppBar.rightMargin = rightInsets
|
|
||||||
binding.appbarLicenses.layoutParams = mlpAppBar
|
|
||||||
|
|
||||||
val mlpScrollAbout = binding.listLicenses.layoutParams as MarginLayoutParams
|
|
||||||
mlpScrollAbout.leftMargin = leftInsets
|
|
||||||
mlpScrollAbout.rightMargin = rightInsets
|
|
||||||
binding.listLicenses.layoutParams = mlpScrollAbout
|
|
||||||
|
|
||||||
binding.listLicenses.updatePadding(bottom = barInsets.bottom)
|
binding.listLicenses.updatePadding(bottom = barInsets.bottom)
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem
|
|||||||
import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter
|
import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter
|
||||||
import org.yuzu.yuzu_emu.model.SettingsViewModel
|
import org.yuzu.yuzu_emu.model.SettingsViewModel
|
||||||
import org.yuzu.yuzu_emu.utils.NativeConfig
|
import org.yuzu.yuzu_emu.utils.NativeConfig
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class SettingsSearchFragment : Fragment() {
|
class SettingsSearchFragment : Fragment() {
|
||||||
private var _binding: FragmentSettingsSearchBinding? = null
|
private var _binding: FragmentSettingsSearchBinding? = null
|
||||||
@ -174,15 +175,14 @@ class SettingsSearchFragment : Fragment() {
|
|||||||
bottom = barInsets.bottom
|
bottom = barInsets.bottom
|
||||||
)
|
)
|
||||||
|
|
||||||
val mlpSettingsList = binding.settingsList.layoutParams as ViewGroup.MarginLayoutParams
|
binding.settingsList.updateMargins(
|
||||||
mlpSettingsList.leftMargin = leftInsets + sideMargin
|
left = leftInsets + sideMargin,
|
||||||
mlpSettingsList.rightMargin = rightInsets + sideMargin
|
right = rightInsets + sideMargin
|
||||||
binding.settingsList.layoutParams = mlpSettingsList
|
)
|
||||||
|
binding.divider.updateMargins(
|
||||||
val mlpDivider = binding.divider.layoutParams as ViewGroup.MarginLayoutParams
|
left = leftInsets + sideMargin,
|
||||||
mlpDivider.leftMargin = leftInsets + sideMargin
|
right = rightInsets + sideMargin
|
||||||
mlpDivider.rightMargin = rightInsets + sideMargin
|
)
|
||||||
binding.divider.layoutParams = mlpDivider
|
|
||||||
|
|
||||||
windowInsets
|
windowInsets
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ import android.os.Bundle
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.WindowInsetsCompat
|
import androidx.core.view.WindowInsetsCompat
|
||||||
@ -27,6 +26,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentGamesBinding
|
|||||||
import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager
|
import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager
|
||||||
import org.yuzu.yuzu_emu.model.GamesViewModel
|
import org.yuzu.yuzu_emu.model.GamesViewModel
|
||||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||||
|
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||||
|
|
||||||
class GamesFragment : Fragment() {
|
class GamesFragment : Fragment() {
|
||||||
private var _binding: FragmentGamesBinding? = null
|
private var _binding: FragmentGamesBinding? = null
|
||||||
@ -169,15 +169,16 @@ class GamesFragment : Fragment() {
|
|||||||
|
|
||||||
val leftInsets = barInsets.left + cutoutInsets.left
|
val leftInsets = barInsets.left + cutoutInsets.left
|
||||||
val rightInsets = barInsets.right + cutoutInsets.right
|
val rightInsets = barInsets.right + cutoutInsets.right
|
||||||
val mlpSwipe = binding.swipeRefresh.layoutParams as MarginLayoutParams
|
val left: Int
|
||||||
|
val right: Int
|
||||||
if (ViewCompat.getLayoutDirection(view) == ViewCompat.LAYOUT_DIRECTION_LTR) {
|
if (ViewCompat.getLayoutDirection(view) == ViewCompat.LAYOUT_DIRECTION_LTR) {
|
||||||
mlpSwipe.leftMargin = leftInsets + spacingNavigationRail
|
left = leftInsets + spacingNavigationRail
|
||||||
mlpSwipe.rightMargin = rightInsets
|
right = rightInsets
|
||||||
} else {
|
} else {
|
||||||
mlpSwipe.leftMargin = leftInsets
|
left = leftInsets
|
||||||
mlpSwipe.rightMargin = rightInsets + spacingNavigationRail
|
right = rightInsets + spacingNavigationRail
|
||||||
}
|
}
|
||||||
binding.swipeRefresh.layoutParams = mlpSwipe
|
binding.swipeRefresh.updateMargins(left = left, right = right)
|
||||||
|
|
||||||
binding.noticeText.updatePadding(bottom = spacingNavigation)
|
binding.noticeText.updatePadding(bottom = spacingNavigation)
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package org.yuzu.yuzu_emu.utils
|
package org.yuzu.yuzu_emu.utils
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
|
||||||
object ViewUtils {
|
object ViewUtils {
|
||||||
fun showView(view: View, length: Long = 300) {
|
fun showView(view: View, length: Long = 300) {
|
||||||
@ -32,4 +33,28 @@ object ViewUtils {
|
|||||||
view.visibility = View.INVISIBLE
|
view.visibility = View.INVISIBLE
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun View.updateMargins(
|
||||||
|
left: Int = -1,
|
||||||
|
top: Int = -1,
|
||||||
|
right: Int = -1,
|
||||||
|
bottom: Int = -1
|
||||||
|
) {
|
||||||
|
val layoutParams = this.layoutParams as ViewGroup.MarginLayoutParams
|
||||||
|
layoutParams.apply {
|
||||||
|
if (left != -1) {
|
||||||
|
leftMargin = left
|
||||||
|
}
|
||||||
|
if (top != -1) {
|
||||||
|
topMargin = top
|
||||||
|
}
|
||||||
|
if (right != -1) {
|
||||||
|
rightMargin = right
|
||||||
|
}
|
||||||
|
if (bottom != -1) {
|
||||||
|
bottomMargin = bottom
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.layoutParams = layoutParams
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,6 +60,8 @@ struct Values {
|
|||||||
Settings::Category::Overlay};
|
Settings::Category::Overlay};
|
||||||
Settings::Setting<bool> show_performance_overlay{linkage, true, "show_performance_overlay",
|
Settings::Setting<bool> show_performance_overlay{linkage, true, "show_performance_overlay",
|
||||||
Settings::Category::Overlay};
|
Settings::Category::Overlay};
|
||||||
|
Settings::Setting<bool> show_thermal_overlay{linkage, false, "show_thermal_overlay",
|
||||||
|
Settings::Category::Overlay};
|
||||||
Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay",
|
Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay",
|
||||||
Settings::Category::Overlay};
|
Settings::Category::Overlay};
|
||||||
Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay};
|
Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay};
|
||||||
|
@ -140,6 +140,7 @@
|
|||||||
android:id="@+id/overlay_container"
|
android:id="@+id/overlay_container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:paddingHorizontal="20dp"
|
||||||
android:fitsSystemWindows="true">
|
android:fitsSystemWindows="true">
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
@ -150,7 +151,19 @@
|
|||||||
android:layout_gravity="left"
|
android:layout_gravity="left"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:focusable="false"
|
android:focusable="false"
|
||||||
android:paddingHorizontal="20dp"
|
android:textColor="@android:color/white"
|
||||||
|
android:shadowColor="@android:color/black"
|
||||||
|
android:shadowRadius="3"
|
||||||
|
tools:ignore="RtlHardcoded" />
|
||||||
|
|
||||||
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
android:id="@+id/show_thermals_text"
|
||||||
|
style="@style/TextAppearance.Material3.BodySmall"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="right"
|
||||||
|
android:clickable="false"
|
||||||
|
android:focusable="false"
|
||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:shadowColor="@android:color/black"
|
android:shadowColor="@android:color/black"
|
||||||
android:shadowRadius="3"
|
android:shadowRadius="3"
|
||||||
|
@ -6,6 +6,11 @@
|
|||||||
android:title="@string/emulation_fps_counter"
|
android:title="@string/emulation_fps_counter"
|
||||||
android:checkable="true" />
|
android:checkable="true" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/thermal_indicator"
|
||||||
|
android:title="@string/emulation_thermal_indicator"
|
||||||
|
android:checkable="true" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/menu_edit_overlay"
|
android:id="@+id/menu_edit_overlay"
|
||||||
android:title="@string/emulation_touch_overlay_edit" />
|
android:title="@string/emulation_touch_overlay_edit" />
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="emulation_notification_channel_name">المحاكي نشط</string>
|
|
||||||
<string name="emulation_notification_channel_description">اظهار اشعار دائم عندما يكون المحاكي نشطاً</string>
|
|
||||||
<string name="emulation_notification_running">يوزو قيد التشغيل</string>
|
|
||||||
<string name="notice_notification_channel_name">الإشعارات والأخطاء</string>
|
<string name="notice_notification_channel_name">الإشعارات والأخطاء</string>
|
||||||
<string name="notice_notification_channel_description">اظهار اشعار عند حصول اي مشكلة.</string>
|
<string name="notice_notification_channel_description">اظهار اشعار عند حصول اي مشكلة.</string>
|
||||||
<string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string>
|
<string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی <![CDATA[<b> prod.keys </b>]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">زیاتر فێربە</a>]]></string>
|
<string name="app_disclaimer">ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی <![CDATA[<b> prod.keys </b>]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">زیاتر فێربە</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">ئیمولەیشن کارایە</string>
|
|
||||||
<string name="emulation_notification_channel_description">ئاگادارکردنەوەیەکی بەردەوام نیشان دەدات کاتێک ئیمولەیشن کاردەکات.</string>
|
|
||||||
<string name="emulation_notification_running">یوزو کاردەکات</string>
|
|
||||||
<string name="notice_notification_channel_name">ئاگاداری و هەڵەکان</string>
|
<string name="notice_notification_channel_name">ئاگاداری و هەڵەکان</string>
|
||||||
<string name="notice_notification_channel_description">ئاگادارکردنەوەکان پیشان دەدات کاتێک شتێک بە هەڵەدا دەچێت.</string>
|
<string name="notice_notification_channel_description">ئاگادارکردنەوەکان پیشان دەدات کاتێک شتێک بە هەڵەدا دەچێت.</string>
|
||||||
<string name="notification_permission_not_granted">مۆڵەتی ئاگادارکردنەوە نەدراوە!</string>
|
<string name="notification_permission_not_granted">مۆڵەتی ئاگادارکردنەوە نەدراوە!</string>
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="emulation_notification_channel_name">Emulace je aktivní</string>
|
|
||||||
<string name="notice_notification_channel_name">Upozornění a chyby</string>
|
<string name="notice_notification_channel_name">Upozornění a chyby</string>
|
||||||
<string name="notice_notification_channel_description">Ukáže oznámení v případě chyby.</string>
|
<string name="notice_notification_channel_description">Ukáže oznámení v případě chyby.</string>
|
||||||
<string name="notification_permission_not_granted">Oznámení nejsou oprávněna!</string>
|
<string name="notification_permission_not_granted">Oznámení nejsou oprávněna!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Diese Software kann Spiele für die Nintendo Switch abspielen. Keine Spiele oder Spielekeys sind enthalten.<br /><br />Bevor du beginnst, bitte halte deine <![CDATA[<b> prod.keys </b>]]> auf deinem Gerät bereit. .<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Mehr Infos</a>]]></string>
|
<string name="app_disclaimer">Diese Software kann Spiele für die Nintendo Switch abspielen. Keine Spiele oder Spielekeys sind enthalten.<br /><br />Bevor du beginnst, bitte halte deine <![CDATA[<b> prod.keys </b>]]> auf deinem Gerät bereit. .<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Mehr Infos</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Emulation ist aktiv</string>
|
|
||||||
<string name="emulation_notification_channel_description">Zeigt eine dauerhafte Benachrichtigung an, wenn die Emulation läuft.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu läuft</string>
|
|
||||||
<string name="notice_notification_channel_name">Hinweise und Fehler</string>
|
<string name="notice_notification_channel_name">Hinweise und Fehler</string>
|
||||||
<string name="notice_notification_channel_description">Zeigt Benachrichtigungen an, wenn etwas schief läuft.</string>
|
<string name="notice_notification_channel_description">Zeigt Benachrichtigungen an, wenn etwas schief läuft.</string>
|
||||||
<string name="notification_permission_not_granted">Berechtigung für Benachrichtigungen nicht erlaubt!</string>
|
<string name="notification_permission_not_granted">Berechtigung für Benachrichtigungen nicht erlaubt!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Este software ejecuta juegos para la videoconsola Nintendo Switch. Los videojuegos o claves no vienen incluidos.<br /><br />Antes de empezar, por favor, localice el archivo <![CDATA[<b> prod.keys </b>]]>en el almacenamiento de su dispositivo..<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Saber más</a>]]></string>
|
<string name="app_disclaimer">Este software ejecuta juegos para la videoconsola Nintendo Switch. Los videojuegos o claves no vienen incluidos.<br /><br />Antes de empezar, por favor, localice el archivo <![CDATA[<b> prod.keys </b>]]>en el almacenamiento de su dispositivo..<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Saber más</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Emulación activa</string>
|
|
||||||
<string name="emulation_notification_channel_description">Muestra una notificación persistente cuando la emulación está activa.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu está ejecutándose</string>
|
|
||||||
<string name="notice_notification_channel_name">Avisos y errores</string>
|
<string name="notice_notification_channel_name">Avisos y errores</string>
|
||||||
<string name="notice_notification_channel_description">Mostrar notificaciones cuándo algo vaya mal.</string>
|
<string name="notice_notification_channel_description">Mostrar notificaciones cuándo algo vaya mal.</string>
|
||||||
<string name="notification_permission_not_granted">¡Permisos de notificación no concedidos!</string>
|
<string name="notification_permission_not_granted">¡Permisos de notificación no concedidos!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Ce logiciel exécutera des jeux pour la console de jeu Nintendo Switch. Aucun jeux ou clés n\'est inclus.<br /><br />Avant de commencer, veuillez localiser votre fichier <![CDATA[<b> prod.keys </b>]]> sur le stockage de votre appareil.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">En savoir plus</a>]]></string>
|
<string name="app_disclaimer">Ce logiciel exécutera des jeux pour la console de jeu Nintendo Switch. Aucun jeux ou clés n\'est inclus.<br /><br />Avant de commencer, veuillez localiser votre fichier <![CDATA[<b> prod.keys </b>]]> sur le stockage de votre appareil.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">En savoir plus</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">L\'émulation est active</string>
|
|
||||||
<string name="emulation_notification_channel_description">Affiche une notification persistante lorsque l\'émulation est en cours d\'exécution.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu est en cours d\'exécution</string>
|
|
||||||
<string name="notice_notification_channel_name">Avis et erreurs</string>
|
<string name="notice_notification_channel_name">Avis et erreurs</string>
|
||||||
<string name="notice_notification_channel_description">Affiche des notifications en cas de problème.</string>
|
<string name="notice_notification_channel_description">Affiche des notifications en cas de problème.</string>
|
||||||
<string name="notification_permission_not_granted">Permission de notification non accordée !</string>
|
<string name="notification_permission_not_granted">Permission de notification non accordée !</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">התוכנה תריץ משחקים לקונסולת ה Nintendo Switch. אף משחק או קבצים בעלי זכויות יוצרים נכללים.<br /><br /> לפני שאת/ה מתחיל בבקשה מצא את קובץ <![CDATA[<b>prod.keys</b>]]> על המכשיר.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">קרא עוד</a>]]></string>
|
<string name="app_disclaimer">התוכנה תריץ משחקים לקונסולת ה Nintendo Switch. אף משחק או קבצים בעלי זכויות יוצרים נכללים.<br /><br /> לפני שאת/ה מתחיל בבקשה מצא את קובץ <![CDATA[<b>prod.keys</b>]]> על המכשיר.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">קרא עוד</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">אמולציה פעילה</string>
|
|
||||||
<string name="emulation_notification_channel_description">מציג התראה מתמשכת כאשר האמולציה פועלת.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu רץ</string>
|
|
||||||
<string name="notice_notification_channel_name">התראות ותקלות</string>
|
<string name="notice_notification_channel_name">התראות ותקלות</string>
|
||||||
<string name="notice_notification_channel_description">מציג התראות כאשר משהו הולך לא כשורה.</string>
|
<string name="notice_notification_channel_description">מציג התראות כאשר משהו הולך לא כשורה.</string>
|
||||||
<string name="notification_permission_not_granted">הרשאות התראות לא ניתנה!</string>
|
<string name="notification_permission_not_granted">הרשאות התראות לא ניתנה!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Ez a szoftver Nintendo Switch játékkonzolhoz készült játékokat futtat. Nem tartalmaz játékokat vagy kulcsokat. .<br /><br />Mielőtt hozzákezdenél, kérjük, válaszd ki a <![CDATA[<b>prod.keys</b>]]> fájl helyét a készülék tárhelyén<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Tudj meg többet</a>]]></string>
|
<string name="app_disclaimer">Ez a szoftver Nintendo Switch játékkonzolhoz készült játékokat futtat. Nem tartalmaz játékokat vagy kulcsokat. .<br /><br />Mielőtt hozzákezdenél, kérjük, válaszd ki a <![CDATA[<b>prod.keys</b>]]> fájl helyét a készülék tárhelyén<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Tudj meg többet</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Emuláció aktív</string>
|
|
||||||
<string name="emulation_notification_channel_description">Állandó értesítést jelenít meg, amíg az emuláció fut.</string>
|
|
||||||
<string name="emulation_notification_running">A yuzu fut</string>
|
|
||||||
<string name="notice_notification_channel_name">Megjegyzések és hibák</string>
|
<string name="notice_notification_channel_name">Megjegyzések és hibák</string>
|
||||||
<string name="notice_notification_channel_description">Értesítések megjelenítése, ha valami rosszul sül el.</string>
|
<string name="notice_notification_channel_description">Értesítések megjelenítése, ha valami rosszul sül el.</string>
|
||||||
<string name="notification_permission_not_granted">Nincs engedély az értesítés megjelenítéséhez!</string>
|
<string name="notification_permission_not_granted">Nincs engedély az értesítés megjelenítéséhez!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Questo software permette di giocare ai giochi della console Nintendo Switch. Nessun gioco o chiave è inclusa.<br /><br />Prima di iniziare, perfavore individua il file <![CDATA[<b>prod.keys </b>]]> nella memoria del tuo dispositivo.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Scopri di più</a>]]></string>
|
<string name="app_disclaimer">Questo software permette di giocare ai giochi della console Nintendo Switch. Nessun gioco o chiave è inclusa.<br /><br />Prima di iniziare, perfavore individua il file <![CDATA[<b>prod.keys </b>]]> nella memoria del tuo dispositivo.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Scopri di più</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">L\'emulatore è attivo</string>
|
|
||||||
<string name="emulation_notification_channel_description">Mostra una notifica persistente quando l\'emulatore è in esecuzione.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu è in esecuzione</string>
|
|
||||||
<string name="notice_notification_channel_name">Avvisi ed errori</string>
|
<string name="notice_notification_channel_name">Avvisi ed errori</string>
|
||||||
<string name="notice_notification_channel_description">Mostra le notifiche quando qualcosa va storto.</string>
|
<string name="notice_notification_channel_description">Mostra le notifiche quando qualcosa va storto.</string>
|
||||||
<string name="notification_permission_not_granted">Autorizzazione di notifica non concessa!</string>
|
<string name="notification_permission_not_granted">Autorizzazione di notifica non concessa!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">このソフトウェアでは、Nintendo Switchのゲームを実行できます。 ゲームソフトやキーは含まれません。<br /><br />事前に、 <![CDATA[<b> prod.keys </b>]]> ファイルをストレージに配置しておいてください。<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">詳細</a>]]></string>
|
<string name="app_disclaimer">このソフトウェアでは、Nintendo Switchのゲームを実行できます。 ゲームソフトやキーは含まれません。<br /><br />事前に、 <![CDATA[<b> prod.keys </b>]]> ファイルをストレージに配置しておいてください。<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">詳細</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">エミュレーションが有効です</string>
|
|
||||||
<string name="emulation_notification_channel_description">エミュレーションの実行中に常設通知を表示します。</string>
|
|
||||||
<string name="emulation_notification_running">yuzu は実行中です</string>
|
|
||||||
<string name="notice_notification_channel_name">通知とエラー</string>
|
<string name="notice_notification_channel_name">通知とエラー</string>
|
||||||
<string name="notice_notification_channel_description">問題の発生時に通知を表示します。</string>
|
<string name="notice_notification_channel_description">問題の発生時に通知を表示します。</string>
|
||||||
<string name="notification_permission_not_granted">通知が許可されていません!</string>
|
<string name="notification_permission_not_granted">通知が許可されていません!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">이 소프트웨어는 Nintendo Switch 게임을 실행합니다. 게임 타이틀이나 키는 포함되어 있지 않습니다.<br /><br />시작하기 전에 장치 저장소에서 <![CDATA[<b> prod.keys </b>]]> 파일을 찾아주세요.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">자세히 알아보기</a>]]></string>
|
<string name="app_disclaimer">이 소프트웨어는 Nintendo Switch 게임을 실행합니다. 게임 타이틀이나 키는 포함되어 있지 않습니다.<br /><br />시작하기 전에 장치 저장소에서 <![CDATA[<b> prod.keys </b>]]> 파일을 찾아주세요.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">자세히 알아보기</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">에뮬레이션이 활성화됨</string>
|
|
||||||
<string name="emulation_notification_channel_description">에뮬레이션이 실행 중일 때 지속적으로 알림을 표시합니다.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu가 실행 중입니다.</string>
|
|
||||||
<string name="notice_notification_channel_name">알림 및 오류</string>
|
<string name="notice_notification_channel_name">알림 및 오류</string>
|
||||||
<string name="notice_notification_channel_description">문제가 발생하면 알림을 표시합니다.</string>
|
<string name="notice_notification_channel_description">문제가 발생하면 알림을 표시합니다.</string>
|
||||||
<string name="notification_permission_not_granted">알림 권한이 부여되지 않았습니다!</string>
|
<string name="notification_permission_not_granted">알림 권한이 부여되지 않았습니다!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Denne programvaren vil kjøre spill for Nintendo Switch-spillkonsollen. Ingen spilltitler eller nøkler er inkludert.<br /><br />Før du begynner, må du finne <![CDATA[<b> prod.keys </b>]]> filen din på enhetslagringen.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Lær mer</a>]]></string>
|
<string name="app_disclaimer">Denne programvaren vil kjøre spill for Nintendo Switch-spillkonsollen. Ingen spilltitler eller nøkler er inkludert.<br /><br />Før du begynner, må du finne <![CDATA[<b> prod.keys </b>]]> filen din på enhetslagringen.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Lær mer</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Emulering er aktiv</string>
|
|
||||||
<string name="emulation_notification_channel_description">Viser et vedvarende varsel når emuleringen kjører.</string>
|
|
||||||
<string name="emulation_notification_running">Yuzu kjører</string>
|
|
||||||
<string name="notice_notification_channel_name">Merknader og feil</string>
|
<string name="notice_notification_channel_name">Merknader og feil</string>
|
||||||
<string name="notice_notification_channel_description">Viser varsler når noe går galt.</string>
|
<string name="notice_notification_channel_description">Viser varsler når noe går galt.</string>
|
||||||
<string name="notification_permission_not_granted">Varslingstillatelse ikke gitt!</string>
|
<string name="notification_permission_not_granted">Varslingstillatelse ikke gitt!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">To oprogramowanie umożliwia uruchomienie gier z konsoli Nintendo Switch. Nie zawiera gier ani wymaganych kluczy.<br /><br />Zanim zaczniesz, wybierz plik kluczy <![CDATA[<b> prod.keys </b>]]> z katalogu w pamięci masowej.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Dowiedz się więcej</a>]]></string>
|
<string name="app_disclaimer">To oprogramowanie umożliwia uruchomienie gier z konsoli Nintendo Switch. Nie zawiera gier ani wymaganych kluczy.<br /><br />Zanim zaczniesz, wybierz plik kluczy <![CDATA[<b> prod.keys </b>]]> z katalogu w pamięci masowej.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Dowiedz się więcej</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Emulacja jest uruchomiona</string>
|
|
||||||
<string name="emulation_notification_channel_description">Pokaż trwałe powiadomienie gdy emulacja jest uruchomiona.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu jest uruchomiony</string>
|
|
||||||
<string name="notice_notification_channel_name">Powiadomienia błędy</string>
|
<string name="notice_notification_channel_name">Powiadomienia błędy</string>
|
||||||
<string name="notice_notification_channel_description">Pokaż powiadomienie gdy coś pójdzie źle</string>
|
<string name="notice_notification_channel_description">Pokaż powiadomienie gdy coś pójdzie źle</string>
|
||||||
<string name="notification_permission_not_granted">Nie zezwolono na powiadomienia!</string>
|
<string name="notification_permission_not_granted">Nie zezwolono na powiadomienia!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Este software executa jogos do console Nintendo Switch. Não estão inclusos nem jogos ou chaves.<br /><br />Antes de começar, por favor localize o arquivo <![CDATA[<b> prod.keys </b>]]> no armazenamento de seu dispositivo.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Saiba mais</a>]]></string>
|
<string name="app_disclaimer">Este software executa jogos do console Nintendo Switch. Não estão inclusos nem jogos ou chaves.<br /><br />Antes de começar, por favor localize o arquivo <![CDATA[<b> prod.keys </b>]]> no armazenamento de seu dispositivo.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Saiba mais</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">A emulação está Ativa</string>
|
|
||||||
<string name="emulation_notification_channel_description">Mostra uma notificação permanente enquanto a emulação estiver em andamento.</string>
|
|
||||||
<string name="emulation_notification_running">O Yuzu está em execução </string>
|
|
||||||
<string name="notice_notification_channel_name">Notificações e erros</string>
|
<string name="notice_notification_channel_name">Notificações e erros</string>
|
||||||
<string name="notice_notification_channel_description">Mostra notificações quando algo dá errado.</string>
|
<string name="notice_notification_channel_description">Mostra notificações quando algo dá errado.</string>
|
||||||
<string name="notification_permission_not_granted">Acesso às notificações não concedido!</string>
|
<string name="notification_permission_not_granted">Acesso às notificações não concedido!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Este software corre jogos para a consola Nintendo Switch. Não estão incluídas nem jogos ou chaves. <br /><br />Antes de começares, por favor localiza o ficheiro <![CDATA[1 prod.keys 1]]> no armazenamento do teu dispositivo.<br /><br /><![CDATA[2Learn more2]]></string>
|
<string name="app_disclaimer">Este software corre jogos para a consola Nintendo Switch. Não estão incluídas nem jogos ou chaves. <br /><br />Antes de começares, por favor localiza o ficheiro <![CDATA[1 prod.keys 1]]> no armazenamento do teu dispositivo.<br /><br /><![CDATA[2Learn more2]]></string>
|
||||||
<string name="emulation_notification_channel_name">Emulação está Ativa</string>
|
|
||||||
<string name="emulation_notification_channel_description">Mostra uma notificação permanente enquanto a emulação está a correr.</string>
|
|
||||||
<string name="emulation_notification_running">Yuzu está em execução </string>
|
|
||||||
<string name="notice_notification_channel_name">Notificações e erros</string>
|
<string name="notice_notification_channel_name">Notificações e erros</string>
|
||||||
<string name="notice_notification_channel_description">Mostra notificações quendo algo corre mal.</string>
|
<string name="notice_notification_channel_description">Mostra notificações quendo algo corre mal.</string>
|
||||||
<string name="notification_permission_not_granted">Permissões de notificação não permitidas </string>
|
<string name="notification_permission_not_granted">Permissões de notificação não permitidas </string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Это программное обеспечение позволяет запускать игры для игровой консоли Nintendo Switch. Мы не предоставляем сами игры или ключи.<br /><br />Перед началом работы найдите файл <![CDATA[<b> prod.keys </b>]]> в хранилище устройства..<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Узнать больше</a>]]></string>
|
<string name="app_disclaimer">Это программное обеспечение позволяет запускать игры для игровой консоли Nintendo Switch. Мы не предоставляем сами игры или ключи.<br /><br />Перед началом работы найдите файл <![CDATA[<b> prod.keys </b>]]> в хранилище устройства..<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Узнать больше</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Эмуляция активна</string>
|
|
||||||
<string name="emulation_notification_channel_description">Показывает постоянное уведомление, когда запущена эмуляция.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu запущен</string>
|
|
||||||
<string name="notice_notification_channel_name">Уведомления и ошибки</string>
|
<string name="notice_notification_channel_name">Уведомления и ошибки</string>
|
||||||
<string name="notice_notification_channel_description">Показывать уведомления, когда что-то пошло не так</string>
|
<string name="notice_notification_channel_description">Показывать уведомления, когда что-то пошло не так</string>
|
||||||
<string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string>
|
<string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Це програмне забезпечення дозволяє запускати ігри для ігрової консолі Nintendo Switch. Ми не надаємо самі ігри або ключі.<br /><br />Перед початком роботи знайдіть ваш файл <![CDATA[<b> prod.keys </b>]]> у сховищі пристрою.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Дізнатися більше</a>]]></string>
|
<string name="app_disclaimer">Це програмне забезпечення дозволяє запускати ігри для ігрової консолі Nintendo Switch. Ми не надаємо самі ігри або ключі.<br /><br />Перед початком роботи знайдіть ваш файл <![CDATA[<b> prod.keys </b>]]> у сховищі пристрою.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Дізнатися більше</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Емуляція активна</string>
|
|
||||||
<string name="emulation_notification_channel_description">Показує постійне сповіщення, коли запущено емуляцію.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu запущено</string>
|
|
||||||
<string name="notice_notification_channel_name">Сповіщення та помилки</string>
|
<string name="notice_notification_channel_name">Сповіщення та помилки</string>
|
||||||
<string name="notice_notification_channel_description">Показувати сповіщення, коли щось пішло не так</string>
|
<string name="notice_notification_channel_description">Показувати сповіщення, коли щось пішло не так</string>
|
||||||
<string name="notification_permission_not_granted">Ви не надали дозвіл сповіщень!</string>
|
<string name="notification_permission_not_granted">Ви не надали дозвіл сповіщень!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">Phần mềm này sẽ chạy các game cho máy chơi game Nintendo Switch. Không có title games hoặc keys được bao gồm.<br /><br />Trước khi bạn bắt đầu, hãy tìm tập tin <![CDATA[<b> prod.keys </b>]]> trên bộ nhớ thiết bị của bạn.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Tìm hiểu thêm</a>]]></string>
|
<string name="app_disclaimer">Phần mềm này sẽ chạy các game cho máy chơi game Nintendo Switch. Không có title games hoặc keys được bao gồm.<br /><br />Trước khi bạn bắt đầu, hãy tìm tập tin <![CDATA[<b> prod.keys </b>]]> trên bộ nhớ thiết bị của bạn.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Tìm hiểu thêm</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">Giả lập đang chạy</string>
|
|
||||||
<string name="emulation_notification_channel_description">Hiển thị thông báo liên tục khi giả lập đang chạy.</string>
|
|
||||||
<string name="emulation_notification_running">yuzu đang chạy</string>
|
|
||||||
<string name="notice_notification_channel_name">Thông báo và lỗi</string>
|
<string name="notice_notification_channel_name">Thông báo và lỗi</string>
|
||||||
<string name="notice_notification_channel_description">Hiển thị thông báo khi có sự cố xảy ra.</string>
|
<string name="notice_notification_channel_description">Hiển thị thông báo khi có sự cố xảy ra.</string>
|
||||||
<string name="notification_permission_not_granted">Ứng dụng không được cấp quyền thông báo!</string>
|
<string name="notification_permission_not_granted">Ứng dụng không được cấp quyền thông báo!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">此软件可以运行 Nintendo Switch 游戏,但不包含任何游戏和密钥文件。<br /><br />在开始前,请找到放置于设备存储中的 <![CDATA[<b> prod.keys </b>]]> 文件。<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">了解更多</a>]]></string>
|
<string name="app_disclaimer">此软件可以运行 Nintendo Switch 游戏,但不包含任何游戏和密钥文件。<br /><br />在开始前,请找到放置于设备存储中的 <![CDATA[<b> prod.keys </b>]]> 文件。<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">了解更多</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">正在进行模拟</string>
|
|
||||||
<string name="emulation_notification_channel_description">在模拟运行时显示持久通知。</string>
|
|
||||||
<string name="emulation_notification_running">yuzu 正在运行</string>
|
|
||||||
<string name="notice_notification_channel_name">通知及错误提醒</string>
|
<string name="notice_notification_channel_name">通知及错误提醒</string>
|
||||||
<string name="notice_notification_channel_description">当发生错误时显示通知。</string>
|
<string name="notice_notification_channel_description">当发生错误时显示通知。</string>
|
||||||
<string name="notification_permission_not_granted">未授予通知权限!</string>
|
<string name="notification_permission_not_granted">未授予通知权限!</string>
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">此軟體可以執行 Nintendo Switch 主機遊戲,但不包含任何遊戲和金鑰。<br /><br />在您開始前,請找到放置於您的裝置儲存空間的 <![CDATA[<b> prod.keys </b>]]> 檔案。<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">深入瞭解</a>]]></string>
|
<string name="app_disclaimer">此軟體可以執行 Nintendo Switch 主機遊戲,但不包含任何遊戲和金鑰。<br /><br />在您開始前,請找到放置於您的裝置儲存空間的 <![CDATA[<b> prod.keys </b>]]> 檔案。<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">深入瞭解</a>]]></string>
|
||||||
<string name="emulation_notification_channel_name">模擬進行中</string>
|
|
||||||
<string name="emulation_notification_channel_description">在模擬執行時顯示持續通知。</string>
|
|
||||||
<string name="emulation_notification_running">yuzu 正在執行</string>
|
|
||||||
<string name="notice_notification_channel_name">通知和錯誤</string>
|
<string name="notice_notification_channel_name">通知和錯誤</string>
|
||||||
<string name="notice_notification_channel_description">發生錯誤時顯示通知。</string>
|
<string name="notice_notification_channel_description">發生錯誤時顯示通知。</string>
|
||||||
<string name="notification_permission_not_granted">未授予通知權限!</string>
|
<string name="notification_permission_not_granted">未授予通知權限!</string>
|
||||||
|
@ -376,6 +376,7 @@
|
|||||||
<string name="emulation_exit">Exit emulation</string>
|
<string name="emulation_exit">Exit emulation</string>
|
||||||
<string name="emulation_done">Done</string>
|
<string name="emulation_done">Done</string>
|
||||||
<string name="emulation_fps_counter">FPS counter</string>
|
<string name="emulation_fps_counter">FPS counter</string>
|
||||||
|
<string name="emulation_thermal_indicator">Thermal indicator</string>
|
||||||
<string name="emulation_toggle_controls">Toggle controls</string>
|
<string name="emulation_toggle_controls">Toggle controls</string>
|
||||||
<string name="emulation_rel_stick_center">Relative stick center</string>
|
<string name="emulation_rel_stick_center">Relative stick center</string>
|
||||||
<string name="emulation_dpad_slide">D-pad slide</string>
|
<string name="emulation_dpad_slide">D-pad slide</string>
|
||||||
|
Reference in New Issue
Block a user