diff options
Diffstat (limited to 'src/android')
47 files changed, 202 insertions, 358 deletions
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index 188ef9469..cb026211c 100644 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts | |||
| @@ -3,8 +3,8 @@ | |||
| 3 | 3 | ||
| 4 | import android.annotation.SuppressLint | 4 | import android.annotation.SuppressLint |
| 5 | import kotlin.collections.setOf | 5 | import kotlin.collections.setOf |
| 6 | import org.jetbrains.kotlin.konan.properties.Properties | ||
| 7 | import org.jlleitschuh.gradle.ktlint.reporter.ReporterType | 6 | import org.jlleitschuh.gradle.ktlint.reporter.ReporterType |
| 7 | import com.github.triplet.gradle.androidpublisher.ReleaseStatus | ||
| 8 | 8 | ||
| 9 | plugins { | 9 | plugins { |
| 10 | id("com.android.application") | 10 | id("com.android.application") |
| @@ -13,6 +13,7 @@ plugins { | |||
| 13 | kotlin("plugin.serialization") version "1.9.20" | 13 | kotlin("plugin.serialization") version "1.9.20" |
| 14 | id("androidx.navigation.safeargs.kotlin") | 14 | id("androidx.navigation.safeargs.kotlin") |
| 15 | id("org.jlleitschuh.gradle.ktlint") version "11.4.0" | 15 | id("org.jlleitschuh.gradle.ktlint") version "11.4.0" |
| 16 | id("com.github.triplet.play") version "3.8.6" | ||
| 16 | } | 17 | } |
| 17 | 18 | ||
| 18 | /** | 19 | /** |
| @@ -58,15 +59,7 @@ android { | |||
| 58 | targetSdk = 34 | 59 | targetSdk = 34 |
| 59 | versionName = getGitVersion() | 60 | versionName = getGitVersion() |
| 60 | 61 | ||
| 61 | // If you want to use autoVersion for the versionCode, create a property in local.properties | 62 | versionCode = if (System.getenv("AUTO_VERSIONED") == "true") { |
| 62 | // named "autoVersioned" and set it to "true" | ||
| 63 | val properties = Properties() | ||
| 64 | val versionProperty = try { | ||
| 65 | properties.load(project.rootProject.file("local.properties").inputStream()) | ||
| 66 | properties.getProperty("autoVersioned") ?: "" | ||
| 67 | } catch (e: Exception) { "" } | ||
| 68 | |||
| 69 | versionCode = if (versionProperty == "true") { | ||
| 70 | autoVersion | 63 | autoVersion |
| 71 | } else { | 64 | } else { |
| 72 | 1 | 65 | 1 |
| @@ -221,6 +214,15 @@ ktlint { | |||
| 221 | } | 214 | } |
| 222 | } | 215 | } |
| 223 | 216 | ||
| 217 | play { | ||
| 218 | val keyPath = System.getenv("SERVICE_ACCOUNT_KEY_PATH") | ||
| 219 | if (keyPath != null) { | ||
| 220 | serviceAccountCredentials.set(File(keyPath)) | ||
| 221 | } | ||
| 222 | track.set(System.getenv("STORE_TRACK") ?: "internal") | ||
| 223 | releaseStatus.set(ReleaseStatus.COMPLETED) | ||
| 224 | } | ||
| 225 | |||
| 224 | dependencies { | 226 | dependencies { |
| 225 | implementation("androidx.core:core-ktx:1.12.0") | 227 | implementation("androidx.core:core-ktx:1.12.0") |
| 226 | implementation("androidx.appcompat:appcompat:1.6.1") | 228 | implementation("androidx.appcompat:appcompat:1.6.1") |
| @@ -257,12 +259,18 @@ fun runGitCommand(command: List<String>): String { | |||
| 257 | } | 259 | } |
| 258 | 260 | ||
| 259 | fun getGitVersion(): String { | 261 | fun getGitVersion(): String { |
| 262 | val gitVersion = runGitCommand( | ||
| 263 | listOf( | ||
| 264 | "git", | ||
| 265 | "describe", | ||
| 266 | "--always", | ||
| 267 | "--long" | ||
| 268 | ) | ||
| 269 | ).replace(Regex("(-0)?-[^-]+$"), "") | ||
| 260 | val versionName = if (System.getenv("GITHUB_ACTIONS") != null) { | 270 | val versionName = if (System.getenv("GITHUB_ACTIONS") != null) { |
| 261 | val gitTag = System.getenv("GIT_TAG_NAME") ?: "" | 271 | System.getenv("GIT_TAG_NAME") ?: gitVersion |
| 262 | gitTag | ||
| 263 | } else { | 272 | } else { |
| 264 | runGitCommand(listOf("git", "describe", "--always", "--long")) | 273 | gitVersion |
| 265 | .replace(Regex("(-0)?-[^-]+$"), "") | ||
| 266 | } | 274 | } |
| 267 | return versionName.ifEmpty { "0.0" } | 275 | return versionName.ifEmpty { "0.0" } |
| 268 | } | 276 | } |
diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml index f011bd696..7890b30ca 100644 --- a/src/android/app/src/main/AndroidManifest.xml +++ b/src/android/app/src/main/AndroidManifest.xml | |||
| @@ -12,8 +12,6 @@ SPDX-License-Identifier: GPL-3.0-or-later | |||
| 12 | <uses-feature android:name="android.hardware.vulkan.version" android:version="0x401000" android:required="true" /> | 12 | <uses-feature android:name="android.hardware.vulkan.version" android:version="0x401000" android:required="true" /> |
| 13 | 13 | ||
| 14 | <uses-permission android:name="android.permission.INTERNET" /> | 14 | <uses-permission android:name="android.permission.INTERNET" /> |
| 15 | <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> | ||
| 16 | <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" /> | ||
| 17 | <uses-permission android:name="android.permission.NFC" /> | 15 | <uses-permission android:name="android.permission.NFC" /> |
| 18 | <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> | 16 | <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> |
| 19 | 17 | ||
| @@ -80,10 +78,6 @@ SPDX-License-Identifier: GPL-3.0-or-later | |||
| 80 | android:resource="@xml/nfc_tech_filter" /> | 78 | android:resource="@xml/nfc_tech_filter" /> |
| 81 | </activity> | 79 | </activity> |
| 82 | 80 | ||
| 83 | <service android:name="org.yuzu.yuzu_emu.utils.ForegroundService" android:foregroundServiceType="specialUse"> | ||
| 84 | <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="Keep emulation running in background"/> | ||
| 85 | </service> | ||
| 86 | |||
| 87 | <provider | 81 | <provider |
| 88 | android:name=".features.DocumentProvider" | 82 | android:name=".features.DocumentProvider" |
| 89 | android:authorities="${applicationId}.user" | 83 | android:authorities="${applicationId}.user" |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt index d114bd53d..76778c10a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/YuzuApplication.kt | |||
| @@ -17,17 +17,6 @@ fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir | |||
| 17 | 17 | ||
| 18 | class YuzuApplication : Application() { | 18 | class YuzuApplication : Application() { |
| 19 | private fun createNotificationChannels() { | 19 | private fun createNotificationChannels() { |
| 20 | val emulationChannel = NotificationChannel( | ||
| 21 | getString(R.string.emulation_notification_channel_id), | ||
| 22 | getString(R.string.emulation_notification_channel_name), | ||
| 23 | NotificationManager.IMPORTANCE_LOW | ||
| 24 | ) | ||
| 25 | emulationChannel.description = getString( | ||
| 26 | R.string.emulation_notification_channel_description | ||
| 27 | ) | ||
| 28 | emulationChannel.setSound(null, null) | ||
| 29 | emulationChannel.vibrationPattern = null | ||
| 30 | |||
| 31 | val noticeChannel = NotificationChannel( | 20 | val noticeChannel = NotificationChannel( |
| 32 | getString(R.string.notice_notification_channel_id), | 21 | getString(R.string.notice_notification_channel_id), |
| 33 | getString(R.string.notice_notification_channel_name), | 22 | getString(R.string.notice_notification_channel_name), |
| @@ -39,7 +28,6 @@ class YuzuApplication : Application() { | |||
| 39 | // Register the channel with the system; you can't change the importance | 28 | // Register the channel with the system; you can't change the importance |
| 40 | // or other notification behaviors after this | 29 | // or other notification behaviors after this |
| 41 | val notificationManager = getSystemService(NotificationManager::class.java) | 30 | val notificationManager = getSystemService(NotificationManager::class.java) |
| 42 | notificationManager.createNotificationChannel(emulationChannel) | ||
| 43 | notificationManager.createNotificationChannel(noticeChannel) | 31 | notificationManager.createNotificationChannel(noticeChannel) |
| 44 | } | 32 | } |
| 45 | 33 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt index 564aaf305..7a8d03610 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt | |||
| @@ -4,7 +4,6 @@ | |||
| 4 | package org.yuzu.yuzu_emu.activities | 4 | package org.yuzu.yuzu_emu.activities |
| 5 | 5 | ||
| 6 | import android.annotation.SuppressLint | 6 | import android.annotation.SuppressLint |
| 7 | import android.app.Activity | ||
| 8 | import android.app.PendingIntent | 7 | import android.app.PendingIntent |
| 9 | import android.app.PictureInPictureParams | 8 | import android.app.PictureInPictureParams |
| 10 | import android.app.RemoteAction | 9 | import android.app.RemoteAction |
| @@ -45,7 +44,6 @@ import org.yuzu.yuzu_emu.features.settings.model.IntSetting | |||
| 45 | import org.yuzu.yuzu_emu.features.settings.model.Settings | 44 | import org.yuzu.yuzu_emu.features.settings.model.Settings |
| 46 | import org.yuzu.yuzu_emu.model.EmulationViewModel | 45 | import org.yuzu.yuzu_emu.model.EmulationViewModel |
| 47 | import org.yuzu.yuzu_emu.model.Game | 46 | import org.yuzu.yuzu_emu.model.Game |
| 48 | import org.yuzu.yuzu_emu.utils.ForegroundService | ||
| 49 | import org.yuzu.yuzu_emu.utils.InputHandler | 47 | import org.yuzu.yuzu_emu.utils.InputHandler |
| 50 | import org.yuzu.yuzu_emu.utils.Log | 48 | import org.yuzu.yuzu_emu.utils.Log |
| 51 | import org.yuzu.yuzu_emu.utils.MemoryUtil | 49 | import org.yuzu.yuzu_emu.utils.MemoryUtil |
| @@ -74,11 +72,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 74 | 72 | ||
| 75 | private val emulationViewModel: EmulationViewModel by viewModels() | 73 | private val emulationViewModel: EmulationViewModel by viewModels() |
| 76 | 74 | ||
| 77 | override fun onDestroy() { | ||
| 78 | stopForegroundService(this) | ||
| 79 | super.onDestroy() | ||
| 80 | } | ||
| 81 | |||
| 82 | override fun onCreate(savedInstanceState: Bundle?) { | 75 | override fun onCreate(savedInstanceState: Bundle?) { |
| 83 | Log.gameLaunched = true | 76 | Log.gameLaunched = true |
| 84 | ThemeHelper.setTheme(this) | 77 | ThemeHelper.setTheme(this) |
| @@ -125,10 +118,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 125 | .apply() | 118 | .apply() |
| 126 | } | 119 | } |
| 127 | } | 120 | } |
| 128 | |||
| 129 | // Start a foreground service to prevent the app from getting killed in the background | ||
| 130 | val startIntent = Intent(this, ForegroundService::class.java) | ||
| 131 | startForegroundService(startIntent) | ||
| 132 | } | 121 | } |
| 133 | 122 | ||
| 134 | override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { | 123 | override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean { |
| @@ -481,12 +470,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener { | |||
| 481 | activity.startActivity(launcher) | 470 | activity.startActivity(launcher) |
| 482 | } | 471 | } |
| 483 | 472 | ||
| 484 | fun stopForegroundService(activity: Activity) { | ||
| 485 | val startIntent = Intent(activity, ForegroundService::class.java) | ||
| 486 | startIntent.action = ForegroundService.ACTION_STOP | ||
| 487 | activity.startForegroundService(startIntent) | ||
| 488 | } | ||
| 489 | |||
| 490 | private fun areCoordinatesOutside(view: View?, x: Float, y: Float): Boolean { | 473 | private fun areCoordinatesOutside(view: View?, x: Float, y: Float): Boolean { |
| 491 | if (view == null) { | 474 | if (view == null) { |
| 492 | return true | 475 | return true |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt index 86bd33672..664478472 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt | |||
| @@ -25,7 +25,8 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting { | |||
| 25 | HAPTIC_FEEDBACK("haptic_feedback"), | 25 | HAPTIC_FEEDBACK("haptic_feedback"), |
| 26 | SHOW_PERFORMANCE_OVERLAY("show_performance_overlay"), | 26 | SHOW_PERFORMANCE_OVERLAY("show_performance_overlay"), |
| 27 | SHOW_INPUT_OVERLAY("show_input_overlay"), | 27 | SHOW_INPUT_OVERLAY("show_input_overlay"), |
| 28 | TOUCHSCREEN("touchscreen"); | 28 | TOUCHSCREEN("touchscreen"), |
| 29 | SHOW_THERMAL_OVERLAY("show_thermal_overlay"); | ||
| 29 | 30 | ||
| 30 | override fun getBoolean(needsGlobal: Boolean): Boolean = | 31 | override fun getBoolean(needsGlobal: Boolean): Boolean = |
| 31 | NativeConfig.getBoolean(key, needsGlobal) | 32 | NativeConfig.getBoolean(key, needsGlobal) |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt index d7ab0b5d9..6f6e7be10 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragment.kt | |||
| @@ -8,7 +8,6 @@ import android.os.Bundle | |||
| 8 | import android.view.LayoutInflater | 8 | import android.view.LayoutInflater |
| 9 | import android.view.View | 9 | import android.view.View |
| 10 | import android.view.ViewGroup | 10 | import android.view.ViewGroup |
| 11 | import android.view.ViewGroup.MarginLayoutParams | ||
| 12 | import androidx.core.view.ViewCompat | 11 | import androidx.core.view.ViewCompat |
| 13 | import androidx.core.view.WindowInsetsCompat | 12 | import androidx.core.view.WindowInsetsCompat |
| 14 | import androidx.core.view.updatePadding | 13 | import androidx.core.view.updatePadding |
| @@ -27,6 +26,7 @@ import org.yuzu.yuzu_emu.R | |||
| 27 | import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding | 26 | import org.yuzu.yuzu_emu.databinding.FragmentSettingsBinding |
| 28 | import org.yuzu.yuzu_emu.features.settings.model.Settings | 27 | import org.yuzu.yuzu_emu.features.settings.model.Settings |
| 29 | import org.yuzu.yuzu_emu.model.SettingsViewModel | 28 | import org.yuzu.yuzu_emu.model.SettingsViewModel |
| 29 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 30 | 30 | ||
| 31 | class SettingsFragment : Fragment() { | 31 | class SettingsFragment : Fragment() { |
| 32 | private lateinit var presenter: SettingsFragmentPresenter | 32 | private lateinit var presenter: SettingsFragmentPresenter |
| @@ -125,18 +125,10 @@ class SettingsFragment : Fragment() { | |||
| 125 | val leftInsets = barInsets.left + cutoutInsets.left | 125 | val leftInsets = barInsets.left + cutoutInsets.left |
| 126 | val rightInsets = barInsets.right + cutoutInsets.right | 126 | val rightInsets = barInsets.right + cutoutInsets.right |
| 127 | 127 | ||
| 128 | val mlpSettingsList = binding.listSettings.layoutParams as MarginLayoutParams | 128 | binding.listSettings.updateMargins(left = leftInsets, right = rightInsets) |
| 129 | mlpSettingsList.leftMargin = leftInsets | 129 | binding.listSettings.updatePadding(bottom = barInsets.bottom) |
| 130 | mlpSettingsList.rightMargin = rightInsets | 130 | |
| 131 | binding.listSettings.layoutParams = mlpSettingsList | 131 | binding.appbarSettings.updateMargins(left = leftInsets, right = rightInsets) |
| 132 | binding.listSettings.updatePadding( | ||
| 133 | bottom = barInsets.bottom | ||
| 134 | ) | ||
| 135 | |||
| 136 | val mlpAppBar = binding.appbarSettings.layoutParams as MarginLayoutParams | ||
| 137 | mlpAppBar.leftMargin = leftInsets | ||
| 138 | mlpAppBar.rightMargin = rightInsets | ||
| 139 | binding.appbarSettings.layoutParams = mlpAppBar | ||
| 140 | windowInsets | 132 | windowInsets |
| 141 | } | 133 | } |
| 142 | } | 134 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt index 5ab38ffda..ff4f0e5df 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AboutFragment.kt | |||
| @@ -13,7 +13,6 @@ import android.os.Bundle | |||
| 13 | import android.view.LayoutInflater | 13 | import android.view.LayoutInflater |
| 14 | import android.view.View | 14 | import android.view.View |
| 15 | import android.view.ViewGroup | 15 | import android.view.ViewGroup |
| 16 | import android.view.ViewGroup.MarginLayoutParams | ||
| 17 | import android.widget.Toast | 16 | import android.widget.Toast |
| 18 | import androidx.core.view.ViewCompat | 17 | import androidx.core.view.ViewCompat |
| 19 | import androidx.core.view.WindowInsetsCompat | 18 | import androidx.core.view.WindowInsetsCompat |
| @@ -26,6 +25,7 @@ import org.yuzu.yuzu_emu.BuildConfig | |||
| 26 | import org.yuzu.yuzu_emu.R | 25 | import org.yuzu.yuzu_emu.R |
| 27 | import org.yuzu.yuzu_emu.databinding.FragmentAboutBinding | 26 | import org.yuzu.yuzu_emu.databinding.FragmentAboutBinding |
| 28 | import org.yuzu.yuzu_emu.model.HomeViewModel | 27 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 28 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 29 | 29 | ||
| 30 | class AboutFragment : Fragment() { | 30 | class AboutFragment : Fragment() { |
| 31 | private var _binding: FragmentAboutBinding? = null | 31 | private var _binding: FragmentAboutBinding? = null |
| @@ -114,15 +114,8 @@ class AboutFragment : Fragment() { | |||
| 114 | val leftInsets = barInsets.left + cutoutInsets.left | 114 | val leftInsets = barInsets.left + cutoutInsets.left |
| 115 | val rightInsets = barInsets.right + cutoutInsets.right | 115 | val rightInsets = barInsets.right + cutoutInsets.right |
| 116 | 116 | ||
| 117 | val mlpToolbar = binding.toolbarAbout.layoutParams as MarginLayoutParams | 117 | binding.toolbarAbout.updateMargins(left = leftInsets, right = rightInsets) |
| 118 | mlpToolbar.leftMargin = leftInsets | 118 | binding.scrollAbout.updateMargins(left = leftInsets, right = rightInsets) |
| 119 | mlpToolbar.rightMargin = rightInsets | ||
| 120 | binding.toolbarAbout.layoutParams = mlpToolbar | ||
| 121 | |||
| 122 | val mlpScrollAbout = binding.scrollAbout.layoutParams as MarginLayoutParams | ||
| 123 | mlpScrollAbout.leftMargin = leftInsets | ||
| 124 | mlpScrollAbout.rightMargin = rightInsets | ||
| 125 | binding.scrollAbout.layoutParams = mlpScrollAbout | ||
| 126 | 119 | ||
| 127 | binding.contentAbout.updatePadding(bottom = barInsets.bottom) | 120 | binding.contentAbout.updatePadding(bottom = barInsets.bottom) |
| 128 | 121 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt index adb65812c..f5647fa95 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AddonsFragment.kt | |||
| @@ -31,6 +31,7 @@ import org.yuzu.yuzu_emu.model.AddonViewModel | |||
| 31 | import org.yuzu.yuzu_emu.model.HomeViewModel | 31 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 32 | import org.yuzu.yuzu_emu.utils.AddonUtil | 32 | import org.yuzu.yuzu_emu.utils.AddonUtil |
| 33 | import org.yuzu.yuzu_emu.utils.FileUtil.copyFilesTo | 33 | import org.yuzu.yuzu_emu.utils.FileUtil.copyFilesTo |
| 34 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 34 | import java.io.File | 35 | import java.io.File |
| 35 | 36 | ||
| 36 | class AddonsFragment : Fragment() { | 37 | class AddonsFragment : Fragment() { |
| @@ -202,27 +203,19 @@ class AddonsFragment : Fragment() { | |||
| 202 | val leftInsets = barInsets.left + cutoutInsets.left | 203 | val leftInsets = barInsets.left + cutoutInsets.left |
| 203 | val rightInsets = barInsets.right + cutoutInsets.right | 204 | val rightInsets = barInsets.right + cutoutInsets.right |
| 204 | 205 | ||
| 205 | val mlpToolbar = binding.toolbarAddons.layoutParams as ViewGroup.MarginLayoutParams | 206 | binding.toolbarAddons.updateMargins(left = leftInsets, right = rightInsets) |
| 206 | mlpToolbar.leftMargin = leftInsets | 207 | binding.listAddons.updateMargins(left = leftInsets, right = rightInsets) |
| 207 | mlpToolbar.rightMargin = rightInsets | ||
| 208 | binding.toolbarAddons.layoutParams = mlpToolbar | ||
| 209 | |||
| 210 | val mlpAddonsList = binding.listAddons.layoutParams as ViewGroup.MarginLayoutParams | ||
| 211 | mlpAddonsList.leftMargin = leftInsets | ||
| 212 | mlpAddonsList.rightMargin = rightInsets | ||
| 213 | binding.listAddons.layoutParams = mlpAddonsList | ||
| 214 | binding.listAddons.updatePadding( | 208 | binding.listAddons.updatePadding( |
| 215 | bottom = barInsets.bottom + | 209 | bottom = barInsets.bottom + |
| 216 | resources.getDimensionPixelSize(R.dimen.spacing_bottom_list_fab) | 210 | resources.getDimensionPixelSize(R.dimen.spacing_bottom_list_fab) |
| 217 | ) | 211 | ) |
| 218 | 212 | ||
| 219 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) | 213 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) |
| 220 | val mlpFab = | 214 | binding.buttonInstall.updateMargins( |
| 221 | binding.buttonInstall.layoutParams as ViewGroup.MarginLayoutParams | 215 | left = leftInsets + fabSpacing, |
| 222 | mlpFab.leftMargin = leftInsets + fabSpacing | 216 | right = rightInsets + fabSpacing, |
| 223 | mlpFab.rightMargin = rightInsets + fabSpacing | 217 | bottom = barInsets.bottom + fabSpacing |
| 224 | mlpFab.bottomMargin = barInsets.bottom + fabSpacing | 218 | ) |
| 225 | binding.buttonInstall.layoutParams = mlpFab | ||
| 226 | 219 | ||
| 227 | windowInsets | 220 | windowInsets |
| 228 | } | 221 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt index 1f66b440d..73ca40484 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/AppletLauncherFragment.kt | |||
| @@ -21,6 +21,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentAppletLauncherBinding | |||
| 21 | import org.yuzu.yuzu_emu.model.Applet | 21 | import org.yuzu.yuzu_emu.model.Applet |
| 22 | import org.yuzu.yuzu_emu.model.AppletInfo | 22 | import org.yuzu.yuzu_emu.model.AppletInfo |
| 23 | import org.yuzu.yuzu_emu.model.HomeViewModel | 23 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 24 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 24 | 25 | ||
| 25 | class AppletLauncherFragment : Fragment() { | 26 | class AppletLauncherFragment : Fragment() { |
| 26 | private var _binding: FragmentAppletLauncherBinding? = null | 27 | private var _binding: FragmentAppletLauncherBinding? = null |
| @@ -95,16 +96,8 @@ class AppletLauncherFragment : Fragment() { | |||
| 95 | val leftInsets = barInsets.left + cutoutInsets.left | 96 | val leftInsets = barInsets.left + cutoutInsets.left |
| 96 | val rightInsets = barInsets.right + cutoutInsets.right | 97 | val rightInsets = barInsets.right + cutoutInsets.right |
| 97 | 98 | ||
| 98 | val mlpAppBar = binding.toolbarApplets.layoutParams as ViewGroup.MarginLayoutParams | 99 | binding.toolbarApplets.updateMargins(left = leftInsets, right = rightInsets) |
| 99 | mlpAppBar.leftMargin = leftInsets | 100 | binding.listApplets.updateMargins(left = leftInsets, right = rightInsets) |
| 100 | mlpAppBar.rightMargin = rightInsets | ||
| 101 | binding.toolbarApplets.layoutParams = mlpAppBar | ||
| 102 | |||
| 103 | val mlpListApplets = | ||
| 104 | binding.listApplets.layoutParams as ViewGroup.MarginLayoutParams | ||
| 105 | mlpListApplets.leftMargin = leftInsets | ||
| 106 | mlpListApplets.rightMargin = rightInsets | ||
| 107 | binding.listApplets.layoutParams = mlpListApplets | ||
| 108 | 101 | ||
| 109 | binding.listApplets.updatePadding(bottom = barInsets.bottom) | 102 | binding.listApplets.updatePadding(bottom = barInsets.bottom) |
| 110 | 103 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt index bf017cd7c..41cff46c1 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/DriverManagerFragment.kt | |||
| @@ -34,6 +34,7 @@ import org.yuzu.yuzu_emu.model.HomeViewModel | |||
| 34 | import org.yuzu.yuzu_emu.utils.FileUtil | 34 | import org.yuzu.yuzu_emu.utils.FileUtil |
| 35 | import org.yuzu.yuzu_emu.utils.GpuDriverHelper | 35 | import org.yuzu.yuzu_emu.utils.GpuDriverHelper |
| 36 | import org.yuzu.yuzu_emu.utils.NativeConfig | 36 | import org.yuzu.yuzu_emu.utils.NativeConfig |
| 37 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 37 | import java.io.File | 38 | import java.io.File |
| 38 | import java.io.IOException | 39 | import java.io.IOException |
| 39 | 40 | ||
| @@ -141,23 +142,15 @@ class DriverManagerFragment : Fragment() { | |||
| 141 | val leftInsets = barInsets.left + cutoutInsets.left | 142 | val leftInsets = barInsets.left + cutoutInsets.left |
| 142 | val rightInsets = barInsets.right + cutoutInsets.right | 143 | val rightInsets = barInsets.right + cutoutInsets.right |
| 143 | 144 | ||
| 144 | val mlpAppBar = binding.toolbarDrivers.layoutParams as ViewGroup.MarginLayoutParams | 145 | binding.toolbarDrivers.updateMargins(left = leftInsets, right = rightInsets) |
| 145 | mlpAppBar.leftMargin = leftInsets | 146 | binding.listDrivers.updateMargins(left = leftInsets, right = rightInsets) |
| 146 | mlpAppBar.rightMargin = rightInsets | ||
| 147 | binding.toolbarDrivers.layoutParams = mlpAppBar | ||
| 148 | |||
| 149 | val mlplistDrivers = binding.listDrivers.layoutParams as ViewGroup.MarginLayoutParams | ||
| 150 | mlplistDrivers.leftMargin = leftInsets | ||
| 151 | mlplistDrivers.rightMargin = rightInsets | ||
| 152 | binding.listDrivers.layoutParams = mlplistDrivers | ||
| 153 | 147 | ||
| 154 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) | 148 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) |
| 155 | val mlpFab = | 149 | binding.buttonInstall.updateMargins( |
| 156 | binding.buttonInstall.layoutParams as ViewGroup.MarginLayoutParams | 150 | left = leftInsets + fabSpacing, |
| 157 | mlpFab.leftMargin = leftInsets + fabSpacing | 151 | right = rightInsets + fabSpacing, |
| 158 | mlpFab.rightMargin = rightInsets + fabSpacing | 152 | bottom = barInsets.bottom + fabSpacing |
| 159 | mlpFab.bottomMargin = barInsets.bottom + fabSpacing | 153 | ) |
| 160 | binding.buttonInstall.layoutParams = mlpFab | ||
| 161 | 154 | ||
| 162 | binding.listDrivers.updatePadding( | 155 | binding.listDrivers.updatePadding( |
| 163 | bottom = barInsets.bottom + | 156 | bottom = barInsets.bottom + |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt index dbc16da4a..0534b68ce 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EarlyAccessFragment.kt | |||
| @@ -19,6 +19,7 @@ import com.google.android.material.transition.MaterialSharedAxis | |||
| 19 | import org.yuzu.yuzu_emu.R | 19 | import org.yuzu.yuzu_emu.R |
| 20 | import org.yuzu.yuzu_emu.databinding.FragmentEarlyAccessBinding | 20 | import org.yuzu.yuzu_emu.databinding.FragmentEarlyAccessBinding |
| 21 | import org.yuzu.yuzu_emu.model.HomeViewModel | 21 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 22 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 22 | 23 | ||
| 23 | class EarlyAccessFragment : Fragment() { | 24 | class EarlyAccessFragment : Fragment() { |
| 24 | private var _binding: FragmentEarlyAccessBinding? = null | 25 | private var _binding: FragmentEarlyAccessBinding? = null |
| @@ -73,10 +74,7 @@ class EarlyAccessFragment : Fragment() { | |||
| 73 | val leftInsets = barInsets.left + cutoutInsets.left | 74 | val leftInsets = barInsets.left + cutoutInsets.left |
| 74 | val rightInsets = barInsets.right + cutoutInsets.right | 75 | val rightInsets = barInsets.right + cutoutInsets.right |
| 75 | 76 | ||
| 76 | val mlpAppBar = binding.appbarEa.layoutParams as ViewGroup.MarginLayoutParams | 77 | binding.appbarEa.updateMargins(left = leftInsets, right = rightInsets) |
| 77 | mlpAppBar.leftMargin = leftInsets | ||
| 78 | mlpAppBar.rightMargin = rightInsets | ||
| 79 | binding.appbarEa.layoutParams = mlpAppBar | ||
| 80 | 78 | ||
| 81 | binding.scrollEa.updatePadding( | 79 | binding.scrollEa.updatePadding( |
| 82 | left = leftInsets, | 80 | left = leftInsets, |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt index 937b8faf1..44af896da 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt | |||
| @@ -13,6 +13,7 @@ import android.net.Uri | |||
| 13 | import android.os.Bundle | 13 | import android.os.Bundle |
| 14 | import android.os.Handler | 14 | import android.os.Handler |
| 15 | import android.os.Looper | 15 | import android.os.Looper |
| 16 | import android.os.PowerManager | ||
| 16 | import android.os.SystemClock | 17 | import android.os.SystemClock |
| 17 | import android.view.* | 18 | import android.view.* |
| 18 | import android.widget.TextView | 19 | import android.widget.TextView |
| @@ -23,6 +24,7 @@ import androidx.core.content.res.ResourcesCompat | |||
| 23 | import androidx.core.graphics.Insets | 24 | import androidx.core.graphics.Insets |
| 24 | import androidx.core.view.ViewCompat | 25 | import androidx.core.view.ViewCompat |
| 25 | import androidx.core.view.WindowInsetsCompat | 26 | import androidx.core.view.WindowInsetsCompat |
| 27 | import androidx.core.view.updatePadding | ||
| 26 | import androidx.drawerlayout.widget.DrawerLayout | 28 | import androidx.drawerlayout.widget.DrawerLayout |
| 27 | import androidx.drawerlayout.widget.DrawerLayout.DrawerListener | 29 | import androidx.drawerlayout.widget.DrawerLayout.DrawerListener |
| 28 | import androidx.fragment.app.Fragment | 30 | import androidx.fragment.app.Fragment |
| @@ -38,7 +40,6 @@ import androidx.window.layout.WindowLayoutInfo | |||
| 38 | import com.google.android.material.dialog.MaterialAlertDialogBuilder | 40 | import com.google.android.material.dialog.MaterialAlertDialogBuilder |
| 39 | import com.google.android.material.slider.Slider | 41 | import com.google.android.material.slider.Slider |
| 40 | import kotlinx.coroutines.Dispatchers | 42 | import kotlinx.coroutines.Dispatchers |
| 41 | import kotlinx.coroutines.flow.collect | ||
| 42 | import kotlinx.coroutines.flow.collectLatest | 43 | import kotlinx.coroutines.flow.collectLatest |
| 43 | import kotlinx.coroutines.launch | 44 | import kotlinx.coroutines.launch |
| 44 | import org.yuzu.yuzu_emu.HomeNavigationDirections | 45 | import org.yuzu.yuzu_emu.HomeNavigationDirections |
| @@ -64,6 +65,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 64 | private lateinit var emulationState: EmulationState | 65 | private lateinit var emulationState: EmulationState |
| 65 | private var emulationActivity: EmulationActivity? = null | 66 | private var emulationActivity: EmulationActivity? = null |
| 66 | private var perfStatsUpdater: (() -> Unit)? = null | 67 | private var perfStatsUpdater: (() -> Unit)? = null |
| 68 | private var thermalStatsUpdater: (() -> Unit)? = null | ||
| 67 | 69 | ||
| 68 | private var _binding: FragmentEmulationBinding? = null | 70 | private var _binding: FragmentEmulationBinding? = null |
| 69 | private val binding get() = _binding!! | 71 | private val binding get() = _binding!! |
| @@ -77,6 +79,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 77 | 79 | ||
| 78 | private var isInFoldableLayout = false | 80 | private var isInFoldableLayout = false |
| 79 | 81 | ||
| 82 | private lateinit var powerManager: PowerManager | ||
| 83 | |||
| 80 | override fun onAttach(context: Context) { | 84 | override fun onAttach(context: Context) { |
| 81 | super.onAttach(context) | 85 | super.onAttach(context) |
| 82 | if (context is EmulationActivity) { | 86 | if (context is EmulationActivity) { |
| @@ -102,6 +106,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 102 | super.onCreate(savedInstanceState) | 106 | super.onCreate(savedInstanceState) |
| 103 | updateOrientation() | 107 | updateOrientation() |
| 104 | 108 | ||
| 109 | powerManager = requireContext().getSystemService(Context.POWER_SERVICE) as PowerManager | ||
| 110 | |||
| 105 | val intentUri: Uri? = requireActivity().intent.data | 111 | val intentUri: Uri? = requireActivity().intent.data |
| 106 | var intentGame: Game? = null | 112 | var intentGame: Game? = null |
| 107 | if (intentUri != null) { | 113 | if (intentUri != null) { |
| @@ -394,8 +400,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 394 | 400 | ||
| 395 | emulationState.updateSurface() | 401 | emulationState.updateSurface() |
| 396 | 402 | ||
| 397 | // Setup overlay | 403 | // Setup overlays |
| 398 | updateShowFpsOverlay() | 404 | updateShowFpsOverlay() |
| 405 | updateThermalOverlay() | ||
| 399 | } | 406 | } |
| 400 | } | 407 | } |
| 401 | } | 408 | } |
| @@ -553,6 +560,38 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 553 | } | 560 | } |
| 554 | } | 561 | } |
| 555 | 562 | ||
| 563 | private fun updateThermalOverlay() { | ||
| 564 | if (BooleanSetting.SHOW_THERMAL_OVERLAY.getBoolean()) { | ||
| 565 | thermalStatsUpdater = { | ||
| 566 | if (emulationViewModel.emulationStarted.value && | ||
| 567 | !emulationViewModel.isEmulationStopping.value | ||
| 568 | ) { | ||
| 569 | val thermalStatus = when (powerManager.currentThermalStatus) { | ||
| 570 | PowerManager.THERMAL_STATUS_LIGHT -> "😥" | ||
| 571 | PowerManager.THERMAL_STATUS_MODERATE -> "🥵" | ||
| 572 | PowerManager.THERMAL_STATUS_SEVERE -> "🔥" | ||
| 573 | PowerManager.THERMAL_STATUS_CRITICAL, | ||
| 574 | PowerManager.THERMAL_STATUS_EMERGENCY, | ||
| 575 | PowerManager.THERMAL_STATUS_SHUTDOWN -> "☢️" | ||
| 576 | |||
| 577 | else -> "🙂" | ||
| 578 | } | ||
| 579 | if (_binding != null) { | ||
| 580 | binding.showThermalsText.text = thermalStatus | ||
| 581 | } | ||
| 582 | thermalStatsUpdateHandler.postDelayed(thermalStatsUpdater!!, 1000) | ||
| 583 | } | ||
| 584 | } | ||
| 585 | thermalStatsUpdateHandler.post(thermalStatsUpdater!!) | ||
| 586 | binding.showThermalsText.visibility = View.VISIBLE | ||
| 587 | } else { | ||
| 588 | if (thermalStatsUpdater != null) { | ||
| 589 | thermalStatsUpdateHandler.removeCallbacks(thermalStatsUpdater!!) | ||
| 590 | } | ||
| 591 | binding.showThermalsText.visibility = View.GONE | ||
| 592 | } | ||
| 593 | } | ||
| 594 | |||
| 556 | @SuppressLint("SourceLockedOrientationActivity") | 595 | @SuppressLint("SourceLockedOrientationActivity") |
| 557 | private fun updateOrientation() { | 596 | private fun updateOrientation() { |
| 558 | emulationActivity?.let { | 597 | emulationActivity?.let { |
| @@ -641,6 +680,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 641 | popup.menu.apply { | 680 | popup.menu.apply { |
| 642 | findItem(R.id.menu_toggle_fps).isChecked = | 681 | findItem(R.id.menu_toggle_fps).isChecked = |
| 643 | BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean() | 682 | BooleanSetting.SHOW_PERFORMANCE_OVERLAY.getBoolean() |
| 683 | findItem(R.id.thermal_indicator).isChecked = | ||
| 684 | BooleanSetting.SHOW_THERMAL_OVERLAY.getBoolean() | ||
| 644 | findItem(R.id.menu_rel_stick_center).isChecked = | 685 | findItem(R.id.menu_rel_stick_center).isChecked = |
| 645 | BooleanSetting.JOYSTICK_REL_CENTER.getBoolean() | 686 | BooleanSetting.JOYSTICK_REL_CENTER.getBoolean() |
| 646 | findItem(R.id.menu_dpad_slide).isChecked = BooleanSetting.DPAD_SLIDE.getBoolean() | 687 | findItem(R.id.menu_dpad_slide).isChecked = BooleanSetting.DPAD_SLIDE.getBoolean() |
| @@ -660,6 +701,13 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 660 | true | 701 | true |
| 661 | } | 702 | } |
| 662 | 703 | ||
| 704 | R.id.thermal_indicator -> { | ||
| 705 | it.isChecked = !it.isChecked | ||
| 706 | BooleanSetting.SHOW_THERMAL_OVERLAY.setBoolean(it.isChecked) | ||
| 707 | updateThermalOverlay() | ||
| 708 | true | ||
| 709 | } | ||
| 710 | |||
| 663 | R.id.menu_edit_overlay -> { | 711 | R.id.menu_edit_overlay -> { |
| 664 | binding.drawerLayout.close() | 712 | binding.drawerLayout.close() |
| 665 | binding.surfaceInputOverlay.requestFocus() | 713 | binding.surfaceInputOverlay.requestFocus() |
| @@ -850,7 +898,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 850 | right = cutInsets.right | 898 | right = cutInsets.right |
| 851 | } | 899 | } |
| 852 | 900 | ||
| 853 | v.setPadding(left, cutInsets.top, right, 0) | 901 | v.updatePadding(left = left, top = cutInsets.top, right = right) |
| 854 | windowInsets | 902 | windowInsets |
| 855 | } | 903 | } |
| 856 | } | 904 | } |
| @@ -1003,5 +1051,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback { | |||
| 1003 | 1051 | ||
| 1004 | companion object { | 1052 | companion object { |
| 1005 | private val perfStatsUpdateHandler = Handler(Looper.myLooper()!!) | 1053 | private val perfStatsUpdateHandler = Handler(Looper.myLooper()!!) |
| 1054 | private val thermalStatsUpdateHandler = Handler(Looper.myLooper()!!) | ||
| 1006 | } | 1055 | } |
| 1007 | } | 1056 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt index 341a37fdb..5c558b1a5 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameFoldersFragment.kt | |||
| @@ -26,6 +26,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentFoldersBinding | |||
| 26 | import org.yuzu.yuzu_emu.model.GamesViewModel | 26 | import org.yuzu.yuzu_emu.model.GamesViewModel |
| 27 | import org.yuzu.yuzu_emu.model.HomeViewModel | 27 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 28 | import org.yuzu.yuzu_emu.ui.main.MainActivity | 28 | import org.yuzu.yuzu_emu.ui.main.MainActivity |
| 29 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 29 | 30 | ||
| 30 | class GameFoldersFragment : Fragment() { | 31 | class GameFoldersFragment : Fragment() { |
| 31 | private var _binding: FragmentFoldersBinding? = null | 32 | private var _binding: FragmentFoldersBinding? = null |
| @@ -100,23 +101,16 @@ class GameFoldersFragment : Fragment() { | |||
| 100 | val leftInsets = barInsets.left + cutoutInsets.left | 101 | val leftInsets = barInsets.left + cutoutInsets.left |
| 101 | val rightInsets = barInsets.right + cutoutInsets.right | 102 | val rightInsets = barInsets.right + cutoutInsets.right |
| 102 | 103 | ||
| 103 | val mlpToolbar = binding.toolbarFolders.layoutParams as ViewGroup.MarginLayoutParams | 104 | binding.toolbarFolders.updateMargins(left = leftInsets, right = rightInsets) |
| 104 | mlpToolbar.leftMargin = leftInsets | ||
| 105 | mlpToolbar.rightMargin = rightInsets | ||
| 106 | binding.toolbarFolders.layoutParams = mlpToolbar | ||
| 107 | 105 | ||
| 108 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) | 106 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) |
| 109 | val mlpFab = | 107 | binding.buttonAdd.updateMargins( |
| 110 | binding.buttonAdd.layoutParams as ViewGroup.MarginLayoutParams | 108 | left = leftInsets + fabSpacing, |
| 111 | mlpFab.leftMargin = leftInsets + fabSpacing | 109 | right = rightInsets + fabSpacing, |
| 112 | mlpFab.rightMargin = rightInsets + fabSpacing | 110 | bottom = barInsets.bottom + fabSpacing |
| 113 | mlpFab.bottomMargin = barInsets.bottom + fabSpacing | 111 | ) |
| 114 | binding.buttonAdd.layoutParams = mlpFab | 112 | |
| 115 | 113 | binding.listFolders.updateMargins(left = leftInsets, right = rightInsets) | |
| 116 | val mlpListFolders = binding.listFolders.layoutParams as ViewGroup.MarginLayoutParams | ||
| 117 | mlpListFolders.leftMargin = leftInsets | ||
| 118 | mlpListFolders.rightMargin = rightInsets | ||
| 119 | binding.listFolders.layoutParams = mlpListFolders | ||
| 120 | 114 | ||
| 121 | binding.listFolders.updatePadding( | 115 | binding.listFolders.updatePadding( |
| 122 | bottom = barInsets.bottom + | 116 | bottom = barInsets.bottom + |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt index 5aa3f453f..dbd56e84f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GameInfoFragment.kt | |||
| @@ -27,6 +27,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentGameInfoBinding | |||
| 27 | import org.yuzu.yuzu_emu.model.GameVerificationResult | 27 | import org.yuzu.yuzu_emu.model.GameVerificationResult |
| 28 | import org.yuzu.yuzu_emu.model.HomeViewModel | 28 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 29 | import org.yuzu.yuzu_emu.utils.GameMetadata | 29 | import org.yuzu.yuzu_emu.utils.GameMetadata |
| 30 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 30 | 31 | ||
| 31 | class GameInfoFragment : Fragment() { | 32 | class GameInfoFragment : Fragment() { |
| 32 | private var _binding: FragmentGameInfoBinding? = null | 33 | private var _binding: FragmentGameInfoBinding? = null |
| @@ -122,11 +123,13 @@ class GameInfoFragment : Fragment() { | |||
| 122 | titleId = R.string.verify_success, | 123 | titleId = R.string.verify_success, |
| 123 | descriptionId = R.string.operation_completed_successfully | 124 | descriptionId = R.string.operation_completed_successfully |
| 124 | ) | 125 | ) |
| 126 | |||
| 125 | GameVerificationResult.Failed -> | 127 | GameVerificationResult.Failed -> |
| 126 | MessageDialogFragment.newInstance( | 128 | MessageDialogFragment.newInstance( |
| 127 | titleId = R.string.verify_failure, | 129 | titleId = R.string.verify_failure, |
| 128 | descriptionId = R.string.verify_failure_description | 130 | descriptionId = R.string.verify_failure_description |
| 129 | ) | 131 | ) |
| 132 | |||
| 130 | GameVerificationResult.NotImplemented -> | 133 | GameVerificationResult.NotImplemented -> |
| 131 | MessageDialogFragment.newInstance( | 134 | MessageDialogFragment.newInstance( |
| 132 | titleId = R.string.verify_no_result, | 135 | titleId = R.string.verify_no_result, |
| @@ -165,15 +168,8 @@ class GameInfoFragment : Fragment() { | |||
| 165 | val leftInsets = barInsets.left + cutoutInsets.left | 168 | val leftInsets = barInsets.left + cutoutInsets.left |
| 166 | val rightInsets = barInsets.right + cutoutInsets.right | 169 | val rightInsets = barInsets.right + cutoutInsets.right |
| 167 | 170 | ||
| 168 | val mlpToolbar = binding.toolbarInfo.layoutParams as ViewGroup.MarginLayoutParams | 171 | binding.toolbarInfo.updateMargins(left = leftInsets, right = rightInsets) |
| 169 | mlpToolbar.leftMargin = leftInsets | 172 | binding.scrollInfo.updateMargins(left = leftInsets, right = rightInsets) |
| 170 | mlpToolbar.rightMargin = rightInsets | ||
| 171 | binding.toolbarInfo.layoutParams = mlpToolbar | ||
| 172 | |||
| 173 | val mlpScrollAbout = binding.scrollInfo.layoutParams as ViewGroup.MarginLayoutParams | ||
| 174 | mlpScrollAbout.leftMargin = leftInsets | ||
| 175 | mlpScrollAbout.rightMargin = rightInsets | ||
| 176 | binding.scrollInfo.layoutParams = mlpScrollAbout | ||
| 177 | 173 | ||
| 178 | binding.contentInfo.updatePadding(bottom = barInsets.bottom) | 174 | binding.contentInfo.updatePadding(bottom = barInsets.bottom) |
| 179 | 175 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt index 582df0133..d14b2c634 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt | |||
| @@ -46,6 +46,7 @@ import org.yuzu.yuzu_emu.utils.FileUtil | |||
| 46 | import org.yuzu.yuzu_emu.utils.GameIconUtils | 46 | import org.yuzu.yuzu_emu.utils.GameIconUtils |
| 47 | import org.yuzu.yuzu_emu.utils.GpuDriverHelper | 47 | import org.yuzu.yuzu_emu.utils.GpuDriverHelper |
| 48 | import org.yuzu.yuzu_emu.utils.MemoryUtil | 48 | import org.yuzu.yuzu_emu.utils.MemoryUtil |
| 49 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 49 | import java.io.BufferedOutputStream | 50 | import java.io.BufferedOutputStream |
| 50 | import java.io.File | 51 | import java.io.File |
| 51 | 52 | ||
| @@ -320,46 +321,25 @@ class GamePropertiesFragment : Fragment() { | |||
| 320 | 321 | ||
| 321 | val smallLayout = resources.getBoolean(R.bool.small_layout) | 322 | val smallLayout = resources.getBoolean(R.bool.small_layout) |
| 322 | if (smallLayout) { | 323 | if (smallLayout) { |
| 323 | val mlpListAll = | 324 | binding.listAll.updateMargins(left = leftInsets, right = rightInsets) |
| 324 | binding.listAll.layoutParams as ViewGroup.MarginLayoutParams | ||
| 325 | mlpListAll.leftMargin = leftInsets | ||
| 326 | mlpListAll.rightMargin = rightInsets | ||
| 327 | binding.listAll.layoutParams = mlpListAll | ||
| 328 | } else { | 325 | } else { |
| 329 | if (ViewCompat.getLayoutDirection(binding.root) == | 326 | if (ViewCompat.getLayoutDirection(binding.root) == |
| 330 | ViewCompat.LAYOUT_DIRECTION_LTR | 327 | ViewCompat.LAYOUT_DIRECTION_LTR |
| 331 | ) { | 328 | ) { |
| 332 | val mlpListAll = | 329 | binding.listAll.updateMargins(right = rightInsets) |
| 333 | binding.listAll.layoutParams as ViewGroup.MarginLayoutParams | 330 | binding.iconLayout!!.updateMargins(top = barInsets.top, left = leftInsets) |
| 334 | mlpListAll.rightMargin = rightInsets | ||
| 335 | binding.listAll.layoutParams = mlpListAll | ||
| 336 | |||
| 337 | val mlpIconLayout = | ||
| 338 | binding.iconLayout!!.layoutParams as ViewGroup.MarginLayoutParams | ||
| 339 | mlpIconLayout.topMargin = barInsets.top | ||
| 340 | mlpIconLayout.leftMargin = leftInsets | ||
| 341 | binding.iconLayout!!.layoutParams = mlpIconLayout | ||
| 342 | } else { | 331 | } else { |
| 343 | val mlpListAll = | 332 | binding.listAll.updateMargins(left = leftInsets) |
| 344 | binding.listAll.layoutParams as ViewGroup.MarginLayoutParams | 333 | binding.iconLayout!!.updateMargins(top = barInsets.top, right = rightInsets) |
| 345 | mlpListAll.leftMargin = leftInsets | ||
| 346 | binding.listAll.layoutParams = mlpListAll | ||
| 347 | |||
| 348 | val mlpIconLayout = | ||
| 349 | binding.iconLayout!!.layoutParams as ViewGroup.MarginLayoutParams | ||
| 350 | mlpIconLayout.topMargin = barInsets.top | ||
| 351 | mlpIconLayout.rightMargin = rightInsets | ||
| 352 | binding.iconLayout!!.layoutParams = mlpIconLayout | ||
| 353 | } | 334 | } |
| 354 | } | 335 | } |
| 355 | 336 | ||
| 356 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) | 337 | val fabSpacing = resources.getDimensionPixelSize(R.dimen.spacing_fab) |
| 357 | val mlpFab = | 338 | binding.buttonStart.updateMargins( |
| 358 | binding.buttonStart.layoutParams as ViewGroup.MarginLayoutParams | 339 | left = leftInsets + fabSpacing, |
| 359 | mlpFab.leftMargin = leftInsets + fabSpacing | 340 | right = rightInsets + fabSpacing, |
| 360 | mlpFab.rightMargin = rightInsets + fabSpacing | 341 | bottom = barInsets.bottom + fabSpacing |
| 361 | mlpFab.bottomMargin = barInsets.bottom + fabSpacing | 342 | ) |
| 362 | binding.buttonStart.layoutParams = mlpFab | ||
| 363 | 343 | ||
| 364 | binding.layoutAll.updatePadding( | 344 | binding.layoutAll.updatePadding( |
| 365 | top = barInsets.top, | 345 | top = barInsets.top, |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt index 1f3578b22..87e130d3e 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt | |||
| @@ -12,7 +12,6 @@ import android.provider.DocumentsContract | |||
| 12 | import android.view.LayoutInflater | 12 | import android.view.LayoutInflater |
| 13 | import android.view.View | 13 | import android.view.View |
| 14 | import android.view.ViewGroup | 14 | import android.view.ViewGroup |
| 15 | import android.view.ViewGroup.MarginLayoutParams | ||
| 16 | import android.widget.Toast | 15 | import android.widget.Toast |
| 17 | import androidx.appcompat.app.AppCompatActivity | 16 | import androidx.appcompat.app.AppCompatActivity |
| 18 | import androidx.core.app.ActivityCompat | 17 | import androidx.core.app.ActivityCompat |
| @@ -44,6 +43,7 @@ import org.yuzu.yuzu_emu.ui.main.MainActivity | |||
| 44 | import org.yuzu.yuzu_emu.utils.FileUtil | 43 | import org.yuzu.yuzu_emu.utils.FileUtil |
| 45 | import org.yuzu.yuzu_emu.utils.GpuDriverHelper | 44 | import org.yuzu.yuzu_emu.utils.GpuDriverHelper |
| 46 | import org.yuzu.yuzu_emu.utils.Log | 45 | import org.yuzu.yuzu_emu.utils.Log |
| 46 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 47 | 47 | ||
| 48 | class HomeSettingsFragment : Fragment() { | 48 | class HomeSettingsFragment : Fragment() { |
| 49 | private var _binding: FragmentHomeSettingsBinding? = null | 49 | private var _binding: FragmentHomeSettingsBinding? = null |
| @@ -408,10 +408,7 @@ class HomeSettingsFragment : Fragment() { | |||
| 408 | bottom = barInsets.bottom | 408 | bottom = barInsets.bottom |
| 409 | ) | 409 | ) |
| 410 | 410 | ||
| 411 | val mlpScrollSettings = binding.scrollViewSettings.layoutParams as MarginLayoutParams | 411 | binding.scrollViewSettings.updateMargins(left = leftInsets, right = rightInsets) |
| 412 | mlpScrollSettings.leftMargin = leftInsets | ||
| 413 | mlpScrollSettings.rightMargin = rightInsets | ||
| 414 | binding.scrollViewSettings.layoutParams = mlpScrollSettings | ||
| 415 | 412 | ||
| 416 | binding.linearLayoutSettings.updatePadding(bottom = spacingNavigation) | 413 | binding.linearLayoutSettings.updatePadding(bottom = spacingNavigation) |
| 417 | 414 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt index 7df8e6bf4..63112dc6f 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/InstallableFragment.kt | |||
| @@ -34,6 +34,7 @@ import org.yuzu.yuzu_emu.model.TaskState | |||
| 34 | import org.yuzu.yuzu_emu.ui.main.MainActivity | 34 | import org.yuzu.yuzu_emu.ui.main.MainActivity |
| 35 | import org.yuzu.yuzu_emu.utils.DirectoryInitialization | 35 | import org.yuzu.yuzu_emu.utils.DirectoryInitialization |
| 36 | import org.yuzu.yuzu_emu.utils.FileUtil | 36 | import org.yuzu.yuzu_emu.utils.FileUtil |
| 37 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 37 | import java.io.BufferedOutputStream | 38 | import java.io.BufferedOutputStream |
| 38 | import java.io.File | 39 | import java.io.File |
| 39 | import java.math.BigInteger | 40 | import java.math.BigInteger |
| @@ -172,16 +173,8 @@ class InstallableFragment : Fragment() { | |||
| 172 | val leftInsets = barInsets.left + cutoutInsets.left | 173 | val leftInsets = barInsets.left + cutoutInsets.left |
| 173 | val rightInsets = barInsets.right + cutoutInsets.right | 174 | val rightInsets = barInsets.right + cutoutInsets.right |
| 174 | 175 | ||
| 175 | val mlpAppBar = binding.toolbarInstallables.layoutParams as ViewGroup.MarginLayoutParams | 176 | binding.toolbarInstallables.updateMargins(left = leftInsets, right = rightInsets) |
| 176 | mlpAppBar.leftMargin = leftInsets | 177 | binding.listInstallables.updateMargins(left = leftInsets, right = rightInsets) |
| 177 | mlpAppBar.rightMargin = rightInsets | ||
| 178 | binding.toolbarInstallables.layoutParams = mlpAppBar | ||
| 179 | |||
| 180 | val mlpScrollAbout = | ||
| 181 | binding.listInstallables.layoutParams as ViewGroup.MarginLayoutParams | ||
| 182 | mlpScrollAbout.leftMargin = leftInsets | ||
| 183 | mlpScrollAbout.rightMargin = rightInsets | ||
| 184 | binding.listInstallables.layoutParams = mlpScrollAbout | ||
| 185 | 178 | ||
| 186 | binding.listInstallables.updatePadding(bottom = barInsets.bottom) | 179 | binding.listInstallables.updatePadding(bottom = barInsets.bottom) |
| 187 | 180 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt index b6e9129f7..f17f621f8 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LicensesFragment.kt | |||
| @@ -7,7 +7,6 @@ import android.os.Bundle | |||
| 7 | import android.view.LayoutInflater | 7 | import android.view.LayoutInflater |
| 8 | import android.view.View | 8 | import android.view.View |
| 9 | import android.view.ViewGroup | 9 | import android.view.ViewGroup |
| 10 | import android.view.ViewGroup.MarginLayoutParams | ||
| 11 | import androidx.appcompat.app.AppCompatActivity | 10 | import androidx.appcompat.app.AppCompatActivity |
| 12 | import androidx.core.view.ViewCompat | 11 | import androidx.core.view.ViewCompat |
| 13 | import androidx.core.view.WindowInsetsCompat | 12 | import androidx.core.view.WindowInsetsCompat |
| @@ -22,6 +21,7 @@ import org.yuzu.yuzu_emu.adapters.LicenseAdapter | |||
| 22 | import org.yuzu.yuzu_emu.databinding.FragmentLicensesBinding | 21 | import org.yuzu.yuzu_emu.databinding.FragmentLicensesBinding |
| 23 | import org.yuzu.yuzu_emu.model.HomeViewModel | 22 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 24 | import org.yuzu.yuzu_emu.model.License | 23 | import org.yuzu.yuzu_emu.model.License |
| 24 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 25 | 25 | ||
| 26 | class LicensesFragment : Fragment() { | 26 | class LicensesFragment : Fragment() { |
| 27 | private var _binding: FragmentLicensesBinding? = null | 27 | private var _binding: FragmentLicensesBinding? = null |
| @@ -122,15 +122,8 @@ class LicensesFragment : Fragment() { | |||
| 122 | val leftInsets = barInsets.left + cutoutInsets.left | 122 | val leftInsets = barInsets.left + cutoutInsets.left |
| 123 | val rightInsets = barInsets.right + cutoutInsets.right | 123 | val rightInsets = barInsets.right + cutoutInsets.right |
| 124 | 124 | ||
| 125 | val mlpAppBar = binding.appbarLicenses.layoutParams as MarginLayoutParams | 125 | binding.appbarLicenses.updateMargins(left = leftInsets, right = rightInsets) |
| 126 | mlpAppBar.leftMargin = leftInsets | 126 | binding.listLicenses.updateMargins(left = leftInsets, right = rightInsets) |
| 127 | mlpAppBar.rightMargin = rightInsets | ||
| 128 | binding.appbarLicenses.layoutParams = mlpAppBar | ||
| 129 | |||
| 130 | val mlpScrollAbout = binding.listLicenses.layoutParams as MarginLayoutParams | ||
| 131 | mlpScrollAbout.leftMargin = leftInsets | ||
| 132 | mlpScrollAbout.rightMargin = rightInsets | ||
| 133 | binding.listLicenses.layoutParams = mlpScrollAbout | ||
| 134 | 127 | ||
| 135 | binding.listLicenses.updatePadding(bottom = barInsets.bottom) | 128 | binding.listLicenses.updatePadding(bottom = barInsets.bottom) |
| 136 | 129 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt index f95d545bf..a135b80b4 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SettingsSearchFragment.kt | |||
| @@ -29,6 +29,7 @@ import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem | |||
| 29 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter | 29 | import org.yuzu.yuzu_emu.features.settings.ui.SettingsAdapter |
| 30 | import org.yuzu.yuzu_emu.model.SettingsViewModel | 30 | import org.yuzu.yuzu_emu.model.SettingsViewModel |
| 31 | import org.yuzu.yuzu_emu.utils.NativeConfig | 31 | import org.yuzu.yuzu_emu.utils.NativeConfig |
| 32 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 32 | 33 | ||
| 33 | class SettingsSearchFragment : Fragment() { | 34 | class SettingsSearchFragment : Fragment() { |
| 34 | private var _binding: FragmentSettingsSearchBinding? = null | 35 | private var _binding: FragmentSettingsSearchBinding? = null |
| @@ -174,15 +175,14 @@ class SettingsSearchFragment : Fragment() { | |||
| 174 | bottom = barInsets.bottom | 175 | bottom = barInsets.bottom |
| 175 | ) | 176 | ) |
| 176 | 177 | ||
| 177 | val mlpSettingsList = binding.settingsList.layoutParams as ViewGroup.MarginLayoutParams | 178 | binding.settingsList.updateMargins( |
| 178 | mlpSettingsList.leftMargin = leftInsets + sideMargin | 179 | left = leftInsets + sideMargin, |
| 179 | mlpSettingsList.rightMargin = rightInsets + sideMargin | 180 | right = rightInsets + sideMargin |
| 180 | binding.settingsList.layoutParams = mlpSettingsList | 181 | ) |
| 181 | 182 | binding.divider.updateMargins( | |
| 182 | val mlpDivider = binding.divider.layoutParams as ViewGroup.MarginLayoutParams | 183 | left = leftInsets + sideMargin, |
| 183 | mlpDivider.leftMargin = leftInsets + sideMargin | 184 | right = rightInsets + sideMargin |
| 184 | mlpDivider.rightMargin = rightInsets + sideMargin | 185 | ) |
| 185 | binding.divider.layoutParams = mlpDivider | ||
| 186 | 186 | ||
| 187 | windowInsets | 187 | windowInsets |
| 188 | } | 188 | } |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt index 54380323e..23ca49b53 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/GamesFragment.kt | |||
| @@ -8,7 +8,6 @@ import android.os.Bundle | |||
| 8 | import android.view.LayoutInflater | 8 | import android.view.LayoutInflater |
| 9 | import android.view.View | 9 | import android.view.View |
| 10 | import android.view.ViewGroup | 10 | import android.view.ViewGroup |
| 11 | import android.view.ViewGroup.MarginLayoutParams | ||
| 12 | import androidx.appcompat.app.AppCompatActivity | 11 | import androidx.appcompat.app.AppCompatActivity |
| 13 | import androidx.core.view.ViewCompat | 12 | import androidx.core.view.ViewCompat |
| 14 | import androidx.core.view.WindowInsetsCompat | 13 | import androidx.core.view.WindowInsetsCompat |
| @@ -27,6 +26,7 @@ import org.yuzu.yuzu_emu.databinding.FragmentGamesBinding | |||
| 27 | import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager | 26 | import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager |
| 28 | import org.yuzu.yuzu_emu.model.GamesViewModel | 27 | import org.yuzu.yuzu_emu.model.GamesViewModel |
| 29 | import org.yuzu.yuzu_emu.model.HomeViewModel | 28 | import org.yuzu.yuzu_emu.model.HomeViewModel |
| 29 | import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins | ||
| 30 | 30 | ||
| 31 | class GamesFragment : Fragment() { | 31 | class GamesFragment : Fragment() { |
| 32 | private var _binding: FragmentGamesBinding? = null | 32 | private var _binding: FragmentGamesBinding? = null |
| @@ -169,15 +169,16 @@ class GamesFragment : Fragment() { | |||
| 169 | 169 | ||
| 170 | val leftInsets = barInsets.left + cutoutInsets.left | 170 | val leftInsets = barInsets.left + cutoutInsets.left |
| 171 | val rightInsets = barInsets.right + cutoutInsets.right | 171 | val rightInsets = barInsets.right + cutoutInsets.right |
| 172 | val mlpSwipe = binding.swipeRefresh.layoutParams as MarginLayoutParams | 172 | val left: Int |
| 173 | val right: Int | ||
| 173 | if (ViewCompat.getLayoutDirection(view) == ViewCompat.LAYOUT_DIRECTION_LTR) { | 174 | if (ViewCompat.getLayoutDirection(view) == ViewCompat.LAYOUT_DIRECTION_LTR) { |
| 174 | mlpSwipe.leftMargin = leftInsets + spacingNavigationRail | 175 | left = leftInsets + spacingNavigationRail |
| 175 | mlpSwipe.rightMargin = rightInsets | 176 | right = rightInsets |
| 176 | } else { | 177 | } else { |
| 177 | mlpSwipe.leftMargin = leftInsets | 178 | left = leftInsets |
| 178 | mlpSwipe.rightMargin = rightInsets + spacingNavigationRail | 179 | right = rightInsets + spacingNavigationRail |
| 179 | } | 180 | } |
| 180 | binding.swipeRefresh.layoutParams = mlpSwipe | 181 | binding.swipeRefresh.updateMargins(left = left, right = right) |
| 181 | 182 | ||
| 182 | binding.noticeText.updatePadding(bottom = spacingNavigation) | 183 | binding.noticeText.updatePadding(bottom = spacingNavigation) |
| 183 | 184 | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt index b3967d294..4df4ac4c6 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt | |||
| @@ -34,7 +34,6 @@ import kotlinx.coroutines.launch | |||
| 34 | import org.yuzu.yuzu_emu.HomeNavigationDirections | 34 | import org.yuzu.yuzu_emu.HomeNavigationDirections |
| 35 | import org.yuzu.yuzu_emu.NativeLibrary | 35 | import org.yuzu.yuzu_emu.NativeLibrary |
| 36 | import org.yuzu.yuzu_emu.R | 36 | import org.yuzu.yuzu_emu.R |
| 37 | import org.yuzu.yuzu_emu.activities.EmulationActivity | ||
| 38 | import org.yuzu.yuzu_emu.databinding.ActivityMainBinding | 37 | import org.yuzu.yuzu_emu.databinding.ActivityMainBinding |
| 39 | import org.yuzu.yuzu_emu.features.settings.model.Settings | 38 | import org.yuzu.yuzu_emu.features.settings.model.Settings |
| 40 | import org.yuzu.yuzu_emu.fragments.AddGameFolderDialogFragment | 39 | import org.yuzu.yuzu_emu.fragments.AddGameFolderDialogFragment |
| @@ -177,9 +176,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider { | |||
| 177 | } | 176 | } |
| 178 | } | 177 | } |
| 179 | 178 | ||
| 180 | // Dismiss previous notifications (should not happen unless a crash occurred) | ||
| 181 | EmulationActivity.stopForegroundService(this) | ||
| 182 | |||
| 183 | setInsets() | 179 | setInsets() |
| 184 | } | 180 | } |
| 185 | 181 | ||
| @@ -298,11 +294,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider { | |||
| 298 | super.onResume() | 294 | super.onResume() |
| 299 | } | 295 | } |
| 300 | 296 | ||
| 301 | override fun onDestroy() { | ||
| 302 | EmulationActivity.stopForegroundService(this) | ||
| 303 | super.onDestroy() | ||
| 304 | } | ||
| 305 | |||
| 306 | private fun setInsets() = | 297 | private fun setInsets() = |
| 307 | ViewCompat.setOnApplyWindowInsetsListener( | 298 | ViewCompat.setOnApplyWindowInsetsListener( |
| 308 | binding.root | 299 | binding.root |
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ForegroundService.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ForegroundService.kt deleted file mode 100644 index 086d17606..000000000 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ForegroundService.kt +++ /dev/null | |||
| @@ -1,70 +0,0 @@ | |||
| 1 | // SPDX-FileCopyrightText: 2023 yuzu Emulator Project | ||
| 2 | // SPDX-License-Identifier: GPL-2.0-or-later | ||
| 3 | |||
| 4 | package org.yuzu.yuzu_emu.utils | ||
| 5 | |||
| 6 | import android.app.PendingIntent | ||
| 7 | import android.app.Service | ||
| 8 | import android.content.Intent | ||
| 9 | import android.os.IBinder | ||
| 10 | import androidx.core.app.NotificationCompat | ||
| 11 | import androidx.core.app.NotificationManagerCompat | ||
| 12 | import org.yuzu.yuzu_emu.R | ||
| 13 | import org.yuzu.yuzu_emu.activities.EmulationActivity | ||
| 14 | |||
| 15 | /** | ||
| 16 | * A service that shows a permanent notification in the background to avoid the app getting | ||
| 17 | * cleared from memory by the system. | ||
| 18 | */ | ||
| 19 | class ForegroundService : Service() { | ||
| 20 | companion object { | ||
| 21 | const val EMULATION_RUNNING_NOTIFICATION = 0x1000 | ||
| 22 | |||
| 23 | const val ACTION_STOP = "stop" | ||
| 24 | } | ||
| 25 | |||
| 26 | private fun showRunningNotification() { | ||
| 27 | // Intent is used to resume emulation if the notification is clicked | ||
| 28 | val contentIntent = PendingIntent.getActivity( | ||
| 29 | this, | ||
| 30 | 0, | ||
| 31 | Intent(this, EmulationActivity::class.java), | ||
| 32 | PendingIntent.FLAG_IMMUTABLE | ||
| 33 | ) | ||
| 34 | val builder = | ||
| 35 | NotificationCompat.Builder(this, getString(R.string.emulation_notification_channel_id)) | ||
| 36 | .setSmallIcon(R.drawable.ic_stat_notification_logo) | ||
| 37 | .setContentTitle(getString(R.string.app_name)) | ||
| 38 | .setContentText(getString(R.string.emulation_notification_running)) | ||
| 39 | .setPriority(NotificationCompat.PRIORITY_LOW) | ||
| 40 | .setOngoing(true) | ||
| 41 | .setVibrate(null) | ||
| 42 | .setSound(null) | ||
| 43 | .setContentIntent(contentIntent) | ||
| 44 | startForeground(EMULATION_RUNNING_NOTIFICATION, builder.build()) | ||
| 45 | } | ||
| 46 | |||
| 47 | override fun onBind(intent: Intent): IBinder? { | ||
| 48 | return null | ||
| 49 | } | ||
| 50 | |||
| 51 | override fun onCreate() { | ||
| 52 | showRunningNotification() | ||
| 53 | } | ||
| 54 | |||
| 55 | override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { | ||
| 56 | if (intent == null) { | ||
| 57 | return START_NOT_STICKY | ||
| 58 | } | ||
| 59 | if (intent.action == ACTION_STOP) { | ||
| 60 | NotificationManagerCompat.from(this).cancel(EMULATION_RUNNING_NOTIFICATION) | ||
| 61 | stopForeground(STOP_FOREGROUND_REMOVE) | ||
| 62 | stopSelfResult(startId) | ||
| 63 | } | ||
| 64 | return START_STICKY | ||
| 65 | } | ||
| 66 | |||
| 67 | override fun onDestroy() { | ||
| 68 | NotificationManagerCompat.from(this).cancel(EMULATION_RUNNING_NOTIFICATION) | ||
| 69 | } | ||
| 70 | } | ||
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt index f9a3e4126..ffbfa9337 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/ViewUtils.kt | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | package org.yuzu.yuzu_emu.utils | 4 | package org.yuzu.yuzu_emu.utils |
| 5 | 5 | ||
| 6 | import android.view.View | 6 | import android.view.View |
| 7 | import android.view.ViewGroup | ||
| 7 | 8 | ||
| 8 | object ViewUtils { | 9 | object ViewUtils { |
| 9 | fun showView(view: View, length: Long = 300) { | 10 | fun showView(view: View, length: Long = 300) { |
| @@ -32,4 +33,28 @@ object ViewUtils { | |||
| 32 | view.visibility = View.INVISIBLE | 33 | view.visibility = View.INVISIBLE |
| 33 | }.start() | 34 | }.start() |
| 34 | } | 35 | } |
| 36 | |||
| 37 | fun View.updateMargins( | ||
| 38 | left: Int = -1, | ||
| 39 | top: Int = -1, | ||
| 40 | right: Int = -1, | ||
| 41 | bottom: Int = -1 | ||
| 42 | ) { | ||
| 43 | val layoutParams = this.layoutParams as ViewGroup.MarginLayoutParams | ||
| 44 | layoutParams.apply { | ||
| 45 | if (left != -1) { | ||
| 46 | leftMargin = left | ||
| 47 | } | ||
| 48 | if (top != -1) { | ||
| 49 | topMargin = top | ||
| 50 | } | ||
| 51 | if (right != -1) { | ||
| 52 | rightMargin = right | ||
| 53 | } | ||
| 54 | if (bottom != -1) { | ||
| 55 | bottomMargin = bottom | ||
| 56 | } | ||
| 57 | } | ||
| 58 | this.layoutParams = layoutParams | ||
| 59 | } | ||
| 35 | } | 60 | } |
diff --git a/src/android/app/src/main/jni/android_settings.h b/src/android/app/src/main/jni/android_settings.h index cf93304da..4a3bc8e53 100644 --- a/src/android/app/src/main/jni/android_settings.h +++ b/src/android/app/src/main/jni/android_settings.h | |||
| @@ -60,6 +60,8 @@ struct Values { | |||
| 60 | Settings::Category::Overlay}; | 60 | Settings::Category::Overlay}; |
| 61 | Settings::Setting<bool> show_performance_overlay{linkage, true, "show_performance_overlay", | 61 | Settings::Setting<bool> show_performance_overlay{linkage, true, "show_performance_overlay", |
| 62 | Settings::Category::Overlay}; | 62 | Settings::Category::Overlay}; |
| 63 | Settings::Setting<bool> show_thermal_overlay{linkage, false, "show_thermal_overlay", | ||
| 64 | Settings::Category::Overlay}; | ||
| 63 | Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay", | 65 | Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay", |
| 64 | Settings::Category::Overlay}; | 66 | Settings::Category::Overlay}; |
| 65 | Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay}; | 67 | Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay}; |
diff --git a/src/android/app/src/main/res/layout/fragment_emulation.xml b/src/android/app/src/main/res/layout/fragment_emulation.xml index 0d2bfe8d6..e99a15783 100644 --- a/src/android/app/src/main/res/layout/fragment_emulation.xml +++ b/src/android/app/src/main/res/layout/fragment_emulation.xml | |||
| @@ -140,6 +140,7 @@ | |||
| 140 | android:id="@+id/overlay_container" | 140 | android:id="@+id/overlay_container" |
| 141 | android:layout_width="match_parent" | 141 | android:layout_width="match_parent" |
| 142 | android:layout_height="match_parent" | 142 | android:layout_height="match_parent" |
| 143 | android:layout_marginHorizontal="20dp" | ||
| 143 | android:fitsSystemWindows="true"> | 144 | android:fitsSystemWindows="true"> |
| 144 | 145 | ||
| 145 | <com.google.android.material.textview.MaterialTextView | 146 | <com.google.android.material.textview.MaterialTextView |
| @@ -150,7 +151,19 @@ | |||
| 150 | android:layout_gravity="left" | 151 | android:layout_gravity="left" |
| 151 | android:clickable="false" | 152 | android:clickable="false" |
| 152 | android:focusable="false" | 153 | android:focusable="false" |
| 153 | android:paddingHorizontal="20dp" | 154 | android:textColor="@android:color/white" |
| 155 | android:shadowColor="@android:color/black" | ||
| 156 | android:shadowRadius="3" | ||
| 157 | tools:ignore="RtlHardcoded" /> | ||
| 158 | |||
| 159 | <com.google.android.material.textview.MaterialTextView | ||
| 160 | android:id="@+id/show_thermals_text" | ||
| 161 | style="@style/TextAppearance.Material3.BodySmall" | ||
| 162 | android:layout_width="wrap_content" | ||
| 163 | android:layout_height="wrap_content" | ||
| 164 | android:layout_gravity="right" | ||
| 165 | android:clickable="false" | ||
| 166 | android:focusable="false" | ||
| 154 | android:textColor="@android:color/white" | 167 | android:textColor="@android:color/white" |
| 155 | android:shadowColor="@android:color/black" | 168 | android:shadowColor="@android:color/black" |
| 156 | android:shadowRadius="3" | 169 | android:shadowRadius="3" |
diff --git a/src/android/app/src/main/res/menu/menu_overlay_options.xml b/src/android/app/src/main/res/menu/menu_overlay_options.xml index 363781652..a9e807427 100644 --- a/src/android/app/src/main/res/menu/menu_overlay_options.xml +++ b/src/android/app/src/main/res/menu/menu_overlay_options.xml | |||
| @@ -7,6 +7,11 @@ | |||
| 7 | android:checkable="true" /> | 7 | android:checkable="true" /> |
| 8 | 8 | ||
| 9 | <item | 9 | <item |
| 10 | android:id="@+id/thermal_indicator" | ||
| 11 | android:title="@string/emulation_thermal_indicator" | ||
| 12 | android:checkable="true" /> | ||
| 13 | |||
| 14 | <item | ||
| 10 | android:id="@+id/menu_edit_overlay" | 15 | android:id="@+id/menu_edit_overlay" |
| 11 | android:title="@string/emulation_touch_overlay_edit" /> | 16 | android:title="@string/emulation_touch_overlay_edit" /> |
| 12 | 17 | ||
diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml index 53678f465..41d741847 100644 --- a/src/android/app/src/main/res/values-ar/strings.xml +++ b/src/android/app/src/main/res/values-ar/strings.xml | |||
| @@ -1,9 +1,6 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <string name="emulation_notification_channel_name">المحاكي نشط</string> | ||
| 5 | <string name="emulation_notification_channel_description">اظهار اشعار دائم عندما يكون المحاكي نشطاً</string> | ||
| 6 | <string name="emulation_notification_running">يوزو قيد التشغيل</string> | ||
| 7 | <string name="notice_notification_channel_name">الإشعارات والأخطاء</string> | 4 | <string name="notice_notification_channel_name">الإشعارات والأخطاء</string> |
| 8 | <string name="notice_notification_channel_description">اظهار اشعار عند حصول اي مشكلة.</string> | 5 | <string name="notice_notification_channel_description">اظهار اشعار عند حصول اي مشكلة.</string> |
| 9 | <string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string> | 6 | <string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string> |
diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml index 7e1eb2b8d..827339505 100644 --- a/src/android/app/src/main/res/values-ckb/strings.xml +++ b/src/android/app/src/main/res/values-ckb/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <string name="app_disclaimer">ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی <![CDATA[<b> prod.keys </b>]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">زیاتر فێربە</a>]]></string> | 4 | <string name="app_disclaimer">ئەم نەرمەکاڵایە یارییەکانی کۆنسۆلی نینتێندۆ سویچ کارپێدەکات. هیچ ناونیشانێکی یاری و کلیلی تێدا نییە..<br /><br />پێش ئەوەی دەست پێ بکەیت، تکایە شوێنی فایلی <![CDATA[<b> prod.keys </b>]]> دیاریبکە لە نێو کۆگای ئامێرەکەت.<br /><br /><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">زیاتر فێربە</a>]]></string> |
| 5 | <string name="emulation_notification_channel_name">ئیمولەیشن کارایە</string> | ||
| 6 | <string name="emulation_notification_channel_description">ئاگادارکردنەوەیەکی بەردەوام نیشان دەدات کاتێک ئیمولەیشن کاردەکات.</string> | ||
| 7 | <string name="emulation_notification_running">یوزو کاردەکات</string> | ||
| 8 | <string name="notice_notification_channel_name">ئاگاداری و هەڵەکان</string> | 5 | <string name="notice_notification_channel_name">ئاگاداری و هەڵەکان</string> |
| 9 | <string name="notice_notification_channel_description">ئاگادارکردنەوەکان پیشان دەدات کاتێک شتێک بە هەڵەدا دەچێت.</string> | 6 | <string name="notice_notification_channel_description">ئاگادارکردنەوەکان پیشان دەدات کاتێک شتێک بە هەڵەدا دەچێت.</string> |
| 10 | <string name="notification_permission_not_granted">مۆڵەتی ئاگادارکردنەوە نەدراوە!</string> | 7 | <string name="notification_permission_not_granted">مۆڵەتی ئاگادارکردنەوە نەدراوە!</string> |
diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml index b9a4a11e4..8f8e2848d 100644 --- a/src/android/app/src/main/res/values-cs/strings.xml +++ b/src/android/app/src/main/res/values-cs/strings.xml | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <string name="emulation_notification_channel_name">Emulace je aktivní</string> | ||
| 5 | <string name="notice_notification_channel_name">Upozornění a chyby</string> | 4 | <string name="notice_notification_channel_name">Upozornění a chyby</string> |
| 6 | <string name="notice_notification_channel_description">Ukáže oznámení v případě chyby.</string> | 5 | <string name="notice_notification_channel_description">Ukáže oznámení v případě chyby.</string> |
| 7 | <string name="notification_permission_not_granted">Oznámení nejsou oprávněna!</string> | 6 | <string name="notification_permission_not_granted">Oznámení nejsou oprávněna!</string> |
diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml index 483ea8c88..fb25b3c93 100644 --- a/src/android/app/src/main/res/values-de/strings.xml +++ b/src/android/app/src/main/res/values-de/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Emulation ist aktiv</string> | ||
| 6 | <string name="emulation_notification_channel_description">Zeigt eine dauerhafte Benachrichtigung an, wenn die Emulation läuft.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu läuft</string> | ||
| 8 | <string name="notice_notification_channel_name">Hinweise und Fehler</string> | 5 | <string name="notice_notification_channel_name">Hinweise und Fehler</string> |
| 9 | <string name="notice_notification_channel_description">Zeigt Benachrichtigungen an, wenn etwas schief läuft.</string> | 6 | <string name="notice_notification_channel_description">Zeigt Benachrichtigungen an, wenn etwas schief läuft.</string> |
| 10 | <string name="notification_permission_not_granted">Berechtigung für Benachrichtigungen nicht erlaubt!</string> | 7 | <string name="notification_permission_not_granted">Berechtigung für Benachrichtigungen nicht erlaubt!</string> |
diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml index c3825710b..7ecbeaba4 100644 --- a/src/android/app/src/main/res/values-es/strings.xml +++ b/src/android/app/src/main/res/values-es/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Emulación activa</string> | ||
| 6 | <string name="emulation_notification_channel_description">Muestra una notificación persistente cuando la emulación está activa.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu está ejecutándose</string> | ||
| 8 | <string name="notice_notification_channel_name">Avisos y errores</string> | 5 | <string name="notice_notification_channel_name">Avisos y errores</string> |
| 9 | <string name="notice_notification_channel_description">Mostrar notificaciones cuándo algo vaya mal.</string> | 6 | <string name="notice_notification_channel_description">Mostrar notificaciones cuándo algo vaya mal.</string> |
| 10 | <string name="notification_permission_not_granted">¡Permisos de notificación no concedidos!</string> | 7 | <string name="notification_permission_not_granted">¡Permisos de notificación no concedidos!</string> |
diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml index 667fe33cb..a848b9163 100644 --- a/src/android/app/src/main/res/values-fr/strings.xml +++ b/src/android/app/src/main/res/values-fr/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">L\'émulation est active</string> | ||
| 6 | <string name="emulation_notification_channel_description">Affiche une notification persistante lorsque l\'émulation est en cours d\'exécution.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu est en cours d\'exécution</string> | ||
| 8 | <string name="notice_notification_channel_name">Avis et erreurs</string> | 5 | <string name="notice_notification_channel_name">Avis et erreurs</string> |
| 9 | <string name="notice_notification_channel_description">Affiche des notifications en cas de problème.</string> | 6 | <string name="notice_notification_channel_description">Affiche des notifications en cas de problème.</string> |
| 10 | <string name="notification_permission_not_granted">Permission de notification non accordée !</string> | 7 | <string name="notification_permission_not_granted">Permission de notification non accordée !</string> |
diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml index 41e4450c6..6096605a9 100644 --- a/src/android/app/src/main/res/values-he/strings.xml +++ b/src/android/app/src/main/res/values-he/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">אמולציה פעילה</string> | ||
| 6 | <string name="emulation_notification_channel_description">מציג התראה מתמשכת כאשר האמולציה פועלת.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu רץ</string> | ||
| 8 | <string name="notice_notification_channel_name">התראות ותקלות</string> | 5 | <string name="notice_notification_channel_name">התראות ותקלות</string> |
| 9 | <string name="notice_notification_channel_description">מציג התראות כאשר משהו הולך לא כשורה.</string> | 6 | <string name="notice_notification_channel_description">מציג התראות כאשר משהו הולך לא כשורה.</string> |
| 10 | <string name="notification_permission_not_granted">הרשאות התראות לא ניתנה!</string> | 7 | <string name="notification_permission_not_granted">הרשאות התראות לא ניתנה!</string> |
diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml index 554da0816..f3a29e0c3 100644 --- a/src/android/app/src/main/res/values-hu/strings.xml +++ b/src/android/app/src/main/res/values-hu/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Emuláció aktív</string> | ||
| 6 | <string name="emulation_notification_channel_description">Állandó értesítést jelenít meg, amíg az emuláció fut.</string> | ||
| 7 | <string name="emulation_notification_running">A yuzu fut</string> | ||
| 8 | <string name="notice_notification_channel_name">Megjegyzések és hibák</string> | 5 | <string name="notice_notification_channel_name">Megjegyzések és hibák</string> |
| 9 | <string name="notice_notification_channel_description">Értesítések megjelenítése, ha valami rosszul sül el.</string> | 6 | <string name="notice_notification_channel_description">Értesítések megjelenítése, ha valami rosszul sül el.</string> |
| 10 | <string name="notification_permission_not_granted">Nincs engedély az értesítés megjelenítéséhez!</string> | 7 | <string name="notification_permission_not_granted">Nincs engedély az értesítés megjelenítéséhez!</string> |
diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml index 61b39f57f..433d84f5c 100644 --- a/src/android/app/src/main/res/values-it/strings.xml +++ b/src/android/app/src/main/res/values-it/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">L\'emulatore è attivo</string> | ||
| 6 | <string name="emulation_notification_channel_description">Mostra una notifica persistente quando l\'emulatore è in esecuzione.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu è in esecuzione</string> | ||
| 8 | <string name="notice_notification_channel_name">Avvisi ed errori</string> | 5 | <string name="notice_notification_channel_name">Avvisi ed errori</string> |
| 9 | <string name="notice_notification_channel_description">Mostra le notifiche quando qualcosa va storto.</string> | 6 | <string name="notice_notification_channel_description">Mostra le notifiche quando qualcosa va storto.</string> |
| 10 | <string name="notification_permission_not_granted">Autorizzazione di notifica non concessa!</string> | 7 | <string name="notification_permission_not_granted">Autorizzazione di notifica non concessa!</string> |
diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml index 0cff40bb6..da73ad651 100644 --- a/src/android/app/src/main/res/values-ja/strings.xml +++ b/src/android/app/src/main/res/values-ja/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">エミュレーションが有効です</string> | ||
| 6 | <string name="emulation_notification_channel_description">エミュレーションの実行中に常設通知を表示します。</string> | ||
| 7 | <string name="emulation_notification_running">yuzu は実行中です</string> | ||
| 8 | <string name="notice_notification_channel_name">通知とエラー</string> | 5 | <string name="notice_notification_channel_name">通知とエラー</string> |
| 9 | <string name="notice_notification_channel_description">問題の発生時に通知を表示します。</string> | 6 | <string name="notice_notification_channel_description">問題の発生時に通知を表示します。</string> |
| 10 | <string name="notification_permission_not_granted">通知が許可されていません!</string> | 7 | <string name="notification_permission_not_granted">通知が許可されていません!</string> |
diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml index eaa6c23ce..904353d34 100644 --- a/src/android/app/src/main/res/values-ko/strings.xml +++ b/src/android/app/src/main/res/values-ko/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">에뮬레이션이 활성화됨</string> | ||
| 6 | <string name="emulation_notification_channel_description">에뮬레이션이 실행 중일 때 지속적으로 알림을 표시합니다.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu가 실행 중입니다.</string> | ||
| 8 | <string name="notice_notification_channel_name">알림 및 오류</string> | 5 | <string name="notice_notification_channel_name">알림 및 오류</string> |
| 9 | <string name="notice_notification_channel_description">문제가 발생하면 알림을 표시합니다.</string> | 6 | <string name="notice_notification_channel_description">문제가 발생하면 알림을 표시합니다.</string> |
| 10 | <string name="notification_permission_not_granted">알림 권한이 부여되지 않았습니다!</string> | 7 | <string name="notification_permission_not_granted">알림 권한이 부여되지 않았습니다!</string> |
diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml index e92dc62d9..fe3af5920 100644 --- a/src/android/app/src/main/res/values-nb/strings.xml +++ b/src/android/app/src/main/res/values-nb/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Emulering er aktiv</string> | ||
| 6 | <string name="emulation_notification_channel_description">Viser et vedvarende varsel når emuleringen kjører.</string> | ||
| 7 | <string name="emulation_notification_running">Yuzu kjører</string> | ||
| 8 | <string name="notice_notification_channel_name">Merknader og feil</string> | 5 | <string name="notice_notification_channel_name">Merknader og feil</string> |
| 9 | <string name="notice_notification_channel_description">Viser varsler når noe går galt.</string> | 6 | <string name="notice_notification_channel_description">Viser varsler når noe går galt.</string> |
| 10 | <string name="notification_permission_not_granted">Varslingstillatelse ikke gitt!</string> | 7 | <string name="notification_permission_not_granted">Varslingstillatelse ikke gitt!</string> |
diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml index fbd0ad7e9..2af7fd7b4 100644 --- a/src/android/app/src/main/res/values-pl/strings.xml +++ b/src/android/app/src/main/res/values-pl/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Emulacja jest uruchomiona</string> | ||
| 6 | <string name="emulation_notification_channel_description">Pokaż trwałe powiadomienie gdy emulacja jest uruchomiona.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu jest uruchomiony</string> | ||
| 8 | <string name="notice_notification_channel_name">Powiadomienia błędy</string> | 5 | <string name="notice_notification_channel_name">Powiadomienia błędy</string> |
| 9 | <string name="notice_notification_channel_description">Pokaż powiadomienie gdy coś pójdzie źle</string> | 6 | <string name="notice_notification_channel_description">Pokaż powiadomienie gdy coś pójdzie źle</string> |
| 10 | <string name="notification_permission_not_granted">Nie zezwolono na powiadomienia!</string> | 7 | <string name="notification_permission_not_granted">Nie zezwolono na powiadomienia!</string> |
diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml index a87eb11e4..130252590 100644 --- a/src/android/app/src/main/res/values-pt-rBR/strings.xml +++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">A emulação está Ativa</string> | ||
| 6 | <string name="emulation_notification_channel_description">Mostra uma notificação permanente enquanto a emulação estiver em andamento.</string> | ||
| 7 | <string name="emulation_notification_running">O Yuzu está em execução </string> | ||
| 8 | <string name="notice_notification_channel_name">Notificações e erros</string> | 5 | <string name="notice_notification_channel_name">Notificações e erros</string> |
| 9 | <string name="notice_notification_channel_description">Mostra notificações quando algo dá errado.</string> | 6 | <string name="notice_notification_channel_description">Mostra notificações quando algo dá errado.</string> |
| 10 | <string name="notification_permission_not_granted">Acesso às notificações não concedido!</string> | 7 | <string name="notification_permission_not_granted">Acesso às notificações não concedido!</string> |
diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml index 684a71616..0fdbae4f8 100644 --- a/src/android/app/src/main/res/values-pt-rPT/strings.xml +++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Emulação está Ativa</string> | ||
| 6 | <string name="emulation_notification_channel_description">Mostra uma notificação permanente enquanto a emulação está a correr.</string> | ||
| 7 | <string name="emulation_notification_running">Yuzu está em execução </string> | ||
| 8 | <string name="notice_notification_channel_name">Notificações e erros</string> | 5 | <string name="notice_notification_channel_name">Notificações e erros</string> |
| 9 | <string name="notice_notification_channel_description">Mostra notificações quendo algo corre mal.</string> | 6 | <string name="notice_notification_channel_description">Mostra notificações quendo algo corre mal.</string> |
| 10 | <string name="notification_permission_not_granted">Permissões de notificação não permitidas </string> | 7 | <string name="notification_permission_not_granted">Permissões de notificação não permitidas </string> |
diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml index 099b2c9eb..2dfd4a824 100644 --- a/src/android/app/src/main/res/values-ru/strings.xml +++ b/src/android/app/src/main/res/values-ru/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Эмуляция активна</string> | ||
| 6 | <string name="emulation_notification_channel_description">Показывает постоянное уведомление, когда запущена эмуляция.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu запущен</string> | ||
| 8 | <string name="notice_notification_channel_name">Уведомления и ошибки</string> | 5 | <string name="notice_notification_channel_name">Уведомления и ошибки</string> |
| 9 | <string name="notice_notification_channel_description">Показывать уведомления, когда что-то пошло не так</string> | 6 | <string name="notice_notification_channel_description">Показывать уведомления, когда что-то пошло не так</string> |
| 10 | <string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string> | 7 | <string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string> |
diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml index 361f0b726..9a2804a93 100644 --- a/src/android/app/src/main/res/values-uk/strings.xml +++ b/src/android/app/src/main/res/values-uk/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Емуляція активна</string> | ||
| 6 | <string name="emulation_notification_channel_description">Показує постійне сповіщення, коли запущено емуляцію.</string> | ||
| 7 | <string name="emulation_notification_running">yuzu запущено</string> | ||
| 8 | <string name="notice_notification_channel_name">Сповіщення та помилки</string> | 5 | <string name="notice_notification_channel_name">Сповіщення та помилки</string> |
| 9 | <string name="notice_notification_channel_description">Показувати сповіщення, коли щось пішло не так</string> | 6 | <string name="notice_notification_channel_description">Показувати сповіщення, коли щось пішло не так</string> |
| 10 | <string name="notification_permission_not_granted">Ви не надали дозвіл сповіщень!</string> | 7 | <string name="notification_permission_not_granted">Ви не надали дозвіл сповіщень!</string> |
diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml index 0a722f329..dc06610c7 100644 --- a/src/android/app/src/main/res/values-vi/strings.xml +++ b/src/android/app/src/main/res/values-vi/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">Giả lập đang chạy</string> | ||
| 6 | <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> | ||
| 7 | <string name="emulation_notification_running">yuzu đang chạy</string> | ||
| 8 | <string name="notice_notification_channel_name">Thông báo và lỗi</string> | 5 | <string name="notice_notification_channel_name">Thông báo và lỗi</string> |
| 9 | <string name="notice_notification_channel_description">Hiển thị thông báo khi có sự cố xảy ra.</string> | 6 | <string name="notice_notification_channel_description">Hiển thị thông báo khi có sự cố xảy ra.</string> |
| 10 | <string name="notification_permission_not_granted">Ứng dụng không được cấp quyền thông báo!</string> | 7 | <string name="notification_permission_not_granted">Ứng dụng không được cấp quyền thông báo!</string> |
diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml index b840591a4..6acf6f391 100644 --- a/src/android/app/src/main/res/values-zh-rCN/strings.xml +++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">正在进行模拟</string> | ||
| 6 | <string name="emulation_notification_channel_description">在模拟运行时显示持久通知。</string> | ||
| 7 | <string name="emulation_notification_running">yuzu 正在运行</string> | ||
| 8 | <string name="notice_notification_channel_name">通知及错误提醒</string> | 5 | <string name="notice_notification_channel_name">通知及错误提醒</string> |
| 9 | <string name="notice_notification_channel_description">当发生错误时显示通知。</string> | 6 | <string name="notice_notification_channel_description">当发生错误时显示通知。</string> |
| 10 | <string name="notification_permission_not_granted">未授予通知权限!</string> | 7 | <string name="notification_permission_not_granted">未授予通知权限!</string> |
diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml index d39255714..411fc5947 100644 --- a/src/android/app/src/main/res/values-zh-rTW/strings.xml +++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml | |||
| @@ -2,9 +2,6 @@ | |||
| 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> | 2 | <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation"> |
| 3 | 3 | ||
| 4 | <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> | 4 | <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> |
| 5 | <string name="emulation_notification_channel_name">模擬進行中</string> | ||
| 6 | <string name="emulation_notification_channel_description">在模擬執行時顯示持續通知。</string> | ||
| 7 | <string name="emulation_notification_running">yuzu 正在執行</string> | ||
| 8 | <string name="notice_notification_channel_name">通知和錯誤</string> | 5 | <string name="notice_notification_channel_name">通知和錯誤</string> |
| 9 | <string name="notice_notification_channel_description">發生錯誤時顯示通知。</string> | 6 | <string name="notice_notification_channel_description">發生錯誤時顯示通知。</string> |
| 10 | <string name="notification_permission_not_granted">未授予通知權限!</string> | 7 | <string name="notification_permission_not_granted">未授予通知權限!</string> |
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 3cd1586fd..489e00107 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml | |||
| @@ -4,10 +4,6 @@ | |||
| 4 | <!-- General application strings --> | 4 | <!-- General application strings --> |
| 5 | <string name="app_name" translatable="false">yuzu</string> | 5 | <string name="app_name" translatable="false">yuzu</string> |
| 6 | <string name="app_disclaimer">This software will run games for the Nintendo Switch game console. No game titles or keys are included.<br /><br />Before you begin, please locate your <![CDATA[<b> prod.keys </b>]]> file on your device storage.<br /><br /><![CDATA[<a href="https://yuzu-emu.org/help/quickstart">Learn more</a>]]></string> | 6 | <string name="app_disclaimer">This software will run games for the Nintendo Switch game console. No game titles or keys are included.<br /><br />Before you begin, please locate your <![CDATA[<b> prod.keys </b>]]> file on your device storage.<br /><br /><![CDATA[<a href="https://yuzu-emu.org/help/quickstart">Learn more</a>]]></string> |
| 7 | <string name="emulation_notification_channel_name">Emulation is Active</string> | ||
| 8 | <string name="emulation_notification_channel_id" translatable="false">emulationIsActive</string> | ||
| 9 | <string name="emulation_notification_channel_description">Shows a persistent notification when emulation is running.</string> | ||
| 10 | <string name="emulation_notification_running">yuzu is running</string> | ||
| 11 | <string name="notice_notification_channel_name">Notices and errors</string> | 7 | <string name="notice_notification_channel_name">Notices and errors</string> |
| 12 | <string name="notice_notification_channel_id" translatable="false">noticesAndErrors</string> | 8 | <string name="notice_notification_channel_id" translatable="false">noticesAndErrors</string> |
| 13 | <string name="notice_notification_channel_description">Shows notifications when something goes wrong.</string> | 9 | <string name="notice_notification_channel_description">Shows notifications when something goes wrong.</string> |
| @@ -380,6 +376,7 @@ | |||
| 380 | <string name="emulation_exit">Exit emulation</string> | 376 | <string name="emulation_exit">Exit emulation</string> |
| 381 | <string name="emulation_done">Done</string> | 377 | <string name="emulation_done">Done</string> |
| 382 | <string name="emulation_fps_counter">FPS counter</string> | 378 | <string name="emulation_fps_counter">FPS counter</string> |
| 379 | <string name="emulation_thermal_indicator">Thermal indicator</string> | ||
| 383 | <string name="emulation_toggle_controls">Toggle controls</string> | 380 | <string name="emulation_toggle_controls">Toggle controls</string> |
| 384 | <string name="emulation_rel_stick_center">Relative stick center</string> | 381 | <string name="emulation_rel_stick_center">Relative stick center</string> |
| 385 | <string name="emulation_dpad_slide">D-pad slide</string> | 382 | <string name="emulation_dpad_slide">D-pad slide</string> |